From 7e42badcf7fee5cb4035f0a96ea0fac471839cf1 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 18 Apr 2026 15:31:15 +0300 Subject: [PATCH 001/120] Link llvm dynamicly & implement memo popultaion --- Makefile | 3 + cmake/SetupLLVM.cmake | 2 - flake.nix | 2 + .../stewkk/sql/logic/optimizer/optimizer.hpp | 12 ++ src/stewkk/sql/CMakeLists.txt | 7 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 15 ++ .../sql/logic/optimizer/optimizer_test.cpp | 136 ++++++++++++++++++ test/CMakeLists.txt | 8 +- 8 files changed, 178 insertions(+), 7 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/optimizer.hpp create mode 100644 src/stewkk/sql/logic/optimizer/optimizer.cpp create mode 100644 src/stewkk/sql/logic/optimizer/optimizer_test.cpp diff --git a/Makefile b/Makefile index b7b89d1..0dca4cf 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,9 @@ PARSER_SOURCE_DIR := $(CURRENT_DIR)/src/stewkk/sql/logic/parser build: cmake --build build -- -j 6 +sanitize: + cmake --build build-sanitizers -- -j 8 + codegen: @antlr -Dlanguage=Cpp -visitor -o $(CODEGEN_DIR) -package stewkk::sql::codegen $(PARSER_SOURCE_DIR)/PostgreSQLParser.g4 $(PARSER_SOURCE_DIR)/PostgreSQLLexer.g4 diff --git a/cmake/SetupLLVM.cmake b/cmake/SetupLLVM.cmake index a61d32d..0364d84 100644 --- a/cmake/SetupLLVM.cmake +++ b/cmake/SetupLLVM.cmake @@ -1,6 +1,4 @@ find_package(ZLIB QUIET) - -set(LLVM_DIR "/home/st/c/llvm-project/build/lib/cmake/llvm") find_package(LLVM REQUIRED CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") diff --git a/flake.nix b/flake.nix index d3566d8..0dae742 100644 --- a/flake.nix +++ b/flake.nix @@ -42,6 +42,8 @@ tex plantuml inkscape + llvmPackages_21.llvm + llvmPackages_21.llvm.dev ]; nativeBuildInputs = [ diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp new file mode 100644 index 0000000..287782d --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class Optimizer { + public: + Operator Optimize(Operator expression); +}; + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index be6ee2a..2826b7b 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -23,6 +23,7 @@ add_library(libsql models/executor/tuple.cpp logic/executor/materialization.cpp logic/executor/llvm.cpp + logic/optimizer/optimizer.cpp ) add_library(stewkk::libsql ALIAS libsql) target_compile_features(libsql PUBLIC cxx_std_23) @@ -43,8 +44,12 @@ target_include_directories( ) target_compile_options(libsql PRIVATE ${BASE_COMPILE_FLAGS}) target_link_options(libsql PRIVATE ${BASE_LINK_FLAGS}) -llvm_map_components_to_libnames(llvm_libs Support Core IRReader OrcJIT X86CodeGen X86AsmParser X86Desc X86Info) target_link_directories(libsql PUBLIC ${LLVM_LIBRARY_DIRS}) +if(TARGET LLVM) + set(llvm_libs LLVM) +else() + llvm_map_components_to_libnames(llvm_libs Support Core IRReader OrcJIT X86CodeGen X86AsmParser X86Desc X86Info) +endif() target_link_libraries(libsql PRIVATE antlr4_static ${llvm_libs} diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp new file mode 100644 index 0000000..e213ec4 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -0,0 +1,15 @@ +#include + +namespace stewkk::sql { + +Operator Optimizer::Optimize(Operator expression) { + return expression; +} + +/* +** нам нужно как-то маппить логическое выражение в его группу. +** для этого нужно хотя бы научиться проверять эквивалентны ли выражения. +** +*/ + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp new file mode 100644 index 0000000..68c4053 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -0,0 +1,136 @@ +#include + +#include +#include + +#include +#include +#include + +using ::testing::Eq; + +namespace stewkk::sql { + +TEST(OptimizerTest, Simple) { + std::stringstream s{"SELECT * FROM users;"}; + Operator op = GetAST(s).value(); + Optimizer optimizer; + + auto got = optimizer.Optimize(op); + + ASSERT_EQ(got, op); +} + +template struct Overloaded : Ts... { using Ts::operator()...; }; + +using GroupKey = std::string; + +namespace logical { + +using Table = Table; + +struct Filter { + GroupKey source; + Expression predicate; +}; + +struct Projection { + GroupKey source; + std::vector expressions; +}; + +struct CrossJoin { + GroupKey lhs; + GroupKey rhs; +}; + +struct Join { + GroupKey lhs; + GroupKey rhs; + using Type = JoinType; + Type type; + Expression qual; +}; + +} // namespace logical + + +using LogicalExpr = std::variant; + +class Group { + public: + explicit Group(LogicalExpr expr) : logical_exprs_({std::move(expr)}) {} + private: + std::vector logical_exprs_; +}; + +class Memo { + public: + explicit Memo(const Operator& expr) : mapping_(), root_(AddGroup(expr)) {} + + private: + + GroupKey AddGroup(const Operator& expr) { + return std::visit(Overloaded{ + [this](const Table& t) { + auto key = std::format("Table({})", t.name); + mapping_.insert_or_assign(key, Group(logical::Table(t))); + return key; + }, + [this](const Filter& f) { + auto source_group = AddGroup(*f.source); + auto key = std::format("Filter({}, {})", source_group, ToString(f.expr)); + mapping_.insert_or_assign(key, Group(logical::Filter(source_group, f.expr))); + return key; + }, + [this](const Projection& p) { + auto source_group = AddGroup(*p.source); + auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); + auto key = std::format("Projection({}, {})", source_group, exprs); + mapping_.insert_or_assign(key, Group(logical::Projection(source_group, p.expressions))); + return key; + }, + [this](const CrossJoin& j) { + auto lhs_group = AddGroup(*j.lhs); + auto rhs_group = AddGroup(*j.rhs); + auto key = std::format("CrossJoin({}, {})", lhs_group, rhs_group); + mapping_.insert_or_assign(key, Group(logical::CrossJoin(lhs_group, rhs_group))); + return key; + }, + [this](const Join& j) { + auto lhs_group = AddGroup(*j.lhs); + auto rhs_group = AddGroup(*j.rhs); + auto key = std::format("Join({}, {}, {}, {})", lhs_group, rhs_group, ToString(j.type), ToString(j.qual)); + mapping_.insert_or_assign(key, Group(logical::Join(lhs_group, rhs_group, j.type, j.qual))); + return key; + }, + }, expr); + } + + std::unordered_map mapping_; + GroupKey root_; +}; + +// DSU data-structure needed? + +TEST(OptimizerTest, GetGroup) { + Operator join_ab = Join{ + .type = JoinType::kInner, + .qual = Literal::kTrue, + .lhs = std::make_shared(Table{.name = "A"}), + .rhs = std::make_shared(Table{.name = "B"}), + }; + + Memo memo(join_ab); + + // Operator join_ba = Join{ + // .type = JoinType::kInner, + // .qual = Literal::kTrue, + // .lhs = std::make_shared(Table{.name = "B"}), + // .rhs = std::make_shared(Table{.name = "A"}), + // }; + + // ASSERT_EQ(*memo.GetGroup(join_ab), *memo.GetGroup(join_ba)); +} + +} // namespace stewkk::sql diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 65187f8..face239 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,6 +5,7 @@ add_executable(unittests) target_sources(unittests PRIVATE ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/parser/parser_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/executor/executor_test.cpp + ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/optimizer_test.cpp ) target_compile_features(unittests PRIVATE cxx_std_23) set_target_properties(unittests PROPERTIES @@ -20,12 +21,11 @@ target_include_directories( ) target_compile_options(unittests PRIVATE ${BASE_COMPILE_FLAGS}) target_link_options(unittests PRIVATE ${BASE_COMPILE_FLAGS}) -llvm_map_components_to_libnames(llvm_libs Support Core IRReader OrcJIT X86CodeGen X86AsmParser X86Desc X86Info) -target_link_directories(libsql PUBLIC ${LLVM_LIBRARY_DIRS}) -target_link_libraries(unittests PRIVATE gmock_main libsql antlr4_static +target_link_libraries(unittests PRIVATE + gmock_main + libsql Boost::asio Boost::thread Boost::filesystem - ${llvm_libs} ) gtest_discover_tests(unittests) From 893e292bf09076bc5d0777eab967c2da113dfc55 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 19 Apr 2026 17:59:12 +0300 Subject: [PATCH 002/120] Impl search algorithm --- .../stewkk/sql/logic/optimizer/optimizer.hpp | 4 - src/stewkk/sql/logic/optimizer/optimizer.cpp | 10 - .../sql/logic/optimizer/optimizer_test.cpp | 365 ++++++++++++++++-- 3 files changed, 326 insertions(+), 53 deletions(-) diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index 287782d..f889486 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -4,9 +4,5 @@ namespace stewkk::sql { -class Optimizer { - public: - Operator Optimize(Operator expression); -}; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index e213ec4..f1e70bb 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -2,14 +2,4 @@ namespace stewkk::sql { -Operator Optimizer::Optimize(Operator expression) { - return expression; -} - -/* -** нам нужно как-то маппить логическое выражение в его группу. -** для этого нужно хотя бы научиться проверять эквивалентны ли выражения. -** -*/ - } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 68c4053..ef9652f 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -1,7 +1,9 @@ #include +#include #include #include +#include #include #include @@ -11,16 +13,6 @@ using ::testing::Eq; namespace stewkk::sql { -TEST(OptimizerTest, Simple) { - std::stringstream s{"SELECT * FROM users;"}; - Operator op = GetAST(s).value(); - Optimizer optimizer; - - auto got = optimizer.Optimize(op); - - ASSERT_EQ(got, op); -} - template struct Overloaded : Ts... { using Ts::operator()...; }; using GroupKey = std::string; @@ -54,60 +46,195 @@ struct Join { } // namespace logical - using LogicalExpr = std::variant; +using RuleNumber = size_t; + +class Memo; + +class Rule { + public: + virtual bool IsApplicable(LogicalExpr expr, Memo& memo) = 0; + virtual bool IsTransformationRule() const = 0; + virtual LogicalExpr Apply(const LogicalExpr& expr, Memo& memo) = 0; + virtual ~Rule() = default; +}; + +class Rules { + public: + + explicit Rules(std::vector> rules) : rules_(std::move(rules)) {} + + size_t Count() const { + return rules_.size(); + } + + LogicalExpr Apply(const LogicalExpr& expr, RuleNumber rule, Memo& memo) const { + return rules_[rule]->Apply(expr, memo); + } + + bool IsApplicable(RuleNumber rule, const LogicalExpr& expr, Memo& memo) const { + return rules_[rule]->IsApplicable(expr, memo); + } + + bool IsTransformationRule(RuleNumber rule) const { + return rules_[rule]->IsTransformationRule(); + } + + private: + std::vector> rules_; +}; + +class ExpressionRulesApplier { + public: + ExpressionRulesApplier(LogicalExpr&& expr, const Rules& rules, GroupKey group) + : expr_(std::move(expr)), + rules_(rules), + is_applied_(rules_.Count(), false), + group_(std::move(group)) {} + + ExpressionRulesApplier ApplyRule(RuleNumber rule, Memo& memo) { + is_applied_[rule] = true; + return ExpressionRulesApplier(rules_.Apply(expr_, rule, memo), rules_, group_); + } + + bool IsApplicable(RuleNumber rule, Memo& memo, bool transformation_rules_only=false) const { + return !IsApplied(rule) && (!transformation_rules_only || rules_.IsTransformationRule(rule)) && rules_.IsApplicable(rule, expr_, memo); + } + + bool IsTransformationRule(RuleNumber rule) const { + return rules_.IsTransformationRule(rule); + } + + GroupKey GetGroup() const { return group_; } + const LogicalExpr& GetExpr() const { return expr_; } + + std::vector GetChildren() const { + return std::visit(Overloaded{ + [](const logical::Table&) -> std::vector { return {}; }, + [](const logical::Filter& f) -> std::vector { return {f.source}; }, + [](const logical::Projection& p) -> std::vector { return {p.source}; }, + [](const logical::CrossJoin& j) -> std::vector { return {j.lhs, j.rhs}; }, + [](const logical::Join& j) -> std::vector { return {j.lhs, j.rhs}; }, + }, expr_); + } + + private: + bool IsApplied(RuleNumber rule) const { return is_applied_[rule]; } + + const LogicalExpr expr_; + const Rules& rules_; + GroupKey group_; + std::vector is_applied_; +}; + class Group { public: - explicit Group(LogicalExpr expr) : logical_exprs_({std::move(expr)}) {} + Group(GroupKey key, ExpressionRulesApplier expr) : key_(std::move(key)), logical_exprs_({std::move(expr)}) {} + const GroupKey& GetKey() const { + return key_; + } + std::span GetExpressions() { + return logical_exprs_; + } + ExpressionRulesApplier& AddExpression(ExpressionRulesApplier expr) { + logical_exprs_.emplace_back(std::move(expr)); + return logical_exprs_.back(); + } private: - std::vector logical_exprs_; + const GroupKey key_; + std::vector logical_exprs_; }; class Memo { public: - explicit Memo(const Operator& expr) : mapping_(), root_(AddGroup(expr)) {} + explicit Memo(const Operator& expr, const Rules& rules) : mapping_(), rules_(rules), root_(AddGroup(expr, rules)) {} + + Group& GetRoot() { + return mapping_.find(root_)->second; + } + + GroupKey AddGroup(const LogicalExpr& expr) { + return AddGroup(expr, rules_); + } + + GroupKey AddGroup(const LogicalExpr& expr, const Rules& rules) { + return std::visit(Overloaded{ + [this, &rules](const logical::Table& t) { + auto key = std::format("Table({})", t.name); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(t, rules, key))); + return key; + }, + [this, &rules](const logical::Filter& f) { + auto key = std::format("Filter({}, {})", f.source, ToString(f.predicate)); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(f, rules, key))); + return key; + }, + [this, &rules](const logical::Projection& p) { + auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); + auto key = std::format("Projection({}, {})", p.source, exprs); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(p, rules, key))); + return key; + }, + [this, &rules](const logical::CrossJoin& j) { + auto key = std::format("CrossJoin({}, {})", j.lhs, j.rhs); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); + return key; + }, + [this, &rules](const logical::Join& j) { + auto key = std::format("Join({}, {}, {}, {})", j.lhs, j.rhs, ToString(j.type), ToString(j.qual)); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); + return key; + }, + }, expr); + } + + // TODO: replace with raw ptr (or some non-null wrapper) + Group& GetGroup(GroupKey key) { + return mapping_.find(key)->second; + } private: - GroupKey AddGroup(const Operator& expr) { + GroupKey AddGroup(const Operator& expr, const Rules& rules) { return std::visit(Overloaded{ - [this](const Table& t) { + [this, &rules](const Table& t) { auto key = std::format("Table({})", t.name); - mapping_.insert_or_assign(key, Group(logical::Table(t))); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Table(t), rules, key))); return key; }, - [this](const Filter& f) { - auto source_group = AddGroup(*f.source); + [this, &rules](const Filter& f) { + auto source_group = AddGroup(*f.source, rules); auto key = std::format("Filter({}, {})", source_group, ToString(f.expr)); - mapping_.insert_or_assign(key, Group(logical::Filter(source_group, f.expr))); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Filter(source_group, f.expr), rules, key))); return key; }, - [this](const Projection& p) { - auto source_group = AddGroup(*p.source); + [this, &rules](const Projection& p) { + auto source_group = AddGroup(*p.source, rules); auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); auto key = std::format("Projection({}, {})", source_group, exprs); - mapping_.insert_or_assign(key, Group(logical::Projection(source_group, p.expressions))); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Projection(source_group, p.expressions), rules, key))); return key; }, - [this](const CrossJoin& j) { - auto lhs_group = AddGroup(*j.lhs); - auto rhs_group = AddGroup(*j.rhs); + [this, &rules](const CrossJoin& j) { + auto lhs_group = AddGroup(*j.lhs, rules); + auto rhs_group = AddGroup(*j.rhs, rules); auto key = std::format("CrossJoin({}, {})", lhs_group, rhs_group); - mapping_.insert_or_assign(key, Group(logical::CrossJoin(lhs_group, rhs_group))); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::CrossJoin(lhs_group, rhs_group), rules, key))); return key; }, - [this](const Join& j) { - auto lhs_group = AddGroup(*j.lhs); - auto rhs_group = AddGroup(*j.rhs); + [this, &rules](const Join& j) { + auto lhs_group = AddGroup(*j.lhs, rules); + auto rhs_group = AddGroup(*j.rhs, rules); auto key = std::format("Join({}, {}, {}, {})", lhs_group, rhs_group, ToString(j.type), ToString(j.qual)); - mapping_.insert_or_assign(key, Group(logical::Join(lhs_group, rhs_group, j.type, j.qual))); + mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Join(lhs_group, rhs_group, j.type, j.qual), rules, key))); return key; }, }, expr); } std::unordered_map mapping_; + const Rules& rules_; GroupKey root_; }; @@ -121,16 +248,176 @@ TEST(OptimizerTest, GetGroup) { .rhs = std::make_shared(Table{.name = "B"}), }; - Memo memo(join_ab); + Memo memo(join_ab, Rules{{}}); +} + +class Optimizer { + public: + + explicit Optimizer(const Operator& expr, const Rules& rules) : memo_(expr, rules), rules_count_(rules.Count()) {} + + bool IsExplored(const Group& group) const { + return explored_groups_.contains(group.GetKey()); + } + + void SetExplored(const Group& group) { + explored_groups_.insert(group.GetKey()); + } + + void OptimizeInputs(const ExpressionRulesApplier& expr) { + } + + void ApplyRule(ExpressionRulesApplier& expr, RuleNumber rule) { + auto new_expr = expr.ApplyRule(rule, memo_); + auto group = memo_.GetGroup(new_expr.GetGroup()); + auto new_expr_ref = group.AddExpression(std::move(new_expr)); + if (new_expr.IsTransformationRule(rule)) { + tasks_.emplace([this, &new_expr_ref]() { ExploreExpression(new_expr_ref); }); + } else { + tasks_.emplace([this, &new_expr_ref]() { OptimizeInputs(new_expr_ref); }); + } + } + + void OptimizeExpression(ExpressionRulesApplier& expr) { + for (RuleNumber rule = 0; rule < rules_count_; rule++) { + if (!expr.IsApplicable(rule, memo_)) { + continue; + } + tasks_.emplace([this, &expr, rule]() { + ApplyRule(expr, rule); + }); + } - // Operator join_ba = Join{ - // .type = JoinType::kInner, - // .qual = Literal::kTrue, - // .lhs = std::make_shared(Table{.name = "B"}), - // .rhs = std::make_shared(Table{.name = "A"}), - // }; + for (auto child : expr.GetChildren()) { + auto& group = memo_.GetGroup(child); + if (IsExplored(group)) { + continue; + } + tasks_.emplace([this, &group]() { + ExploreGroup(group); + }); + } + } + + void ExploreExpression(ExpressionRulesApplier& expr) { + for (RuleNumber rule = 0; rule < rules_count_; rule++) { + bool transformation_rules_only = true; + if (!expr.IsApplicable(rule, memo_, transformation_rules_only)) { + continue; + } + tasks_.emplace([this, &expr, rule]() { + ApplyRule(expr, rule); + }); + } + + for (auto child : expr.GetChildren()) { + auto& group = memo_.GetGroup(child); + if (IsExplored(group)) { + continue; + } + tasks_.emplace([this, &group]() { + ExploreGroup(group); + }); + } + } + + void ExploreGroup(Group& group) { + SetExplored(group); + for (auto& expr : group.GetExpressions()) { + tasks_.emplace([this, &expr]() { + ExploreExpression(expr); + }); + } + } + + void OptimizeGroup(Group& group) { + if (!IsExplored(group)) { + tasks_.emplace([this, &group](){ + OptimizeGroup(group); + }); + tasks_.emplace([this, &group](){ + ExploreGroup(group); + }); + return; + } + + for (auto& expr : group.GetExpressions()) { + tasks_.emplace([this, &expr](){ + OptimizeExpression(expr); + }); + } + } + + Operator Optimize() { + tasks_.emplace([this]() { + OptimizeGroup(memo_.GetRoot()); + }); + while (!tasks_.empty()) { + auto next_task = std::move(tasks_.top()); + tasks_.pop(); + next_task(); + } + return Table{"A"}; + } + + private: + Memo memo_; + std::stack> tasks_; + std::unordered_set explored_groups_; + const size_t rules_count_; +}; + +class JoinCommutativity : public Rule { + public: + bool IsApplicable(LogicalExpr expr, Memo&) override { + return std::holds_alternative(expr); + } + + bool IsTransformationRule() const override { return true; } + + LogicalExpr Apply(const LogicalExpr& expr, Memo&) override { + auto join = std::get(expr); + std::swap(join.lhs, join.rhs); + return join; + } +}; + +class JoinAssociativity : public Rule { + public: + bool IsApplicable(LogicalExpr expr, Memo& memo) override { + if (!std::holds_alternative(expr)) return false; + const auto& outer = std::get(expr); + for (auto& applier : memo.GetGroup(outer.lhs).GetExpressions()) { + if (!std::holds_alternative(applier.GetExpr())) return false; + } + return true; + } + + bool IsTransformationRule() const override { return true; } + + LogicalExpr Apply(const LogicalExpr& expr, Memo& memo) override { + const auto& outer = std::get(expr); + for (auto& applier : memo.GetGroup(outer.lhs).GetExpressions()) { + const auto& inner = std::get(applier.GetExpr()); + auto combined_qual = Expression{BinaryExpression{ + std::make_shared(inner.qual), + BinaryOp::kAnd, + std::make_shared(outer.qual), + }}; + auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); + return logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}; + } + return expr; + } +}; + + +TEST(OptimizerTest, Simple) { + std::stringstream s{"SELECT * FROM users;"}; + Operator op = GetAST(s).value(); + Optimizer optimizer(op, Rules{{}}); - // ASSERT_EQ(*memo.GetGroup(join_ab), *memo.GetGroup(join_ba)); + auto got = optimizer.Optimize(); } } // namespace stewkk::sql From 8fe07e491225fe5fea635f2e329b66a8efbe9e68 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 19 Apr 2026 20:15:23 +0300 Subject: [PATCH 003/120] Refactoring --- include/stewkk/sql/logic/optimizer/group.hpp | 41 +++++ .../sql/logic/optimizer/logical_expr.hpp | 44 +++++ include/stewkk/sql/logic/optimizer/memo.hpp | 24 +++ .../sql/logic/optimizer/physical_expr.hpp | 17 ++ include/stewkk/sql/logic/optimizer/rule.hpp | 26 +++ include/stewkk/sql/utils/not_null.hpp | 25 +++ include/stewkk/sql/utils/overloaded.hpp | 7 + .../sql/logic/optimizer/optimizer_test.cpp | 154 +----------------- src/stewkk/sql/logic/optimizer/rule_test.cpp | 122 ++++++++++++++ src/stewkk/sql/utils/non_null.cpp | 1 + test/CMakeLists.txt | 1 + 11 files changed, 310 insertions(+), 152 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/group.hpp create mode 100644 include/stewkk/sql/logic/optimizer/logical_expr.hpp create mode 100644 include/stewkk/sql/logic/optimizer/memo.hpp create mode 100644 include/stewkk/sql/logic/optimizer/physical_expr.hpp create mode 100644 include/stewkk/sql/logic/optimizer/rule.hpp create mode 100644 include/stewkk/sql/utils/not_null.hpp create mode 100644 include/stewkk/sql/utils/overloaded.hpp create mode 100644 src/stewkk/sql/logic/optimizer/rule_test.cpp create mode 100644 src/stewkk/sql/utils/non_null.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp new file mode 100644 index 0000000..d24436c --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -0,0 +1,41 @@ +#pragma once + +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +using LogicalOperator = decltype(LogicalExpr::root_operator); + +class Group { + public: + using LogicalExprPtr = std::unique_ptr; + using PhysicalExprPtr = std::unique_ptr; + + utils::NotNull AddLogicalExpr(LogicalOperator root_operator) { + auto& ptr = logical_exprs_.emplace_back( + std::make_unique(std::move(root_operator), this)); + return ptr.get(); + } + + utils::NotNull AddPhysicalExpr() { + auto& ptr = physical_exprs_.emplace_back( + std::make_unique(this)); + return ptr.get(); + } + + std::span GetLogicalExprs() const { return logical_exprs_; } + + private: + friend class Memo; + Group() = default; + + std::vector logical_exprs_; + std::vector physical_exprs_; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/logical_expr.hpp b/include/stewkk/sql/logic/optimizer/logical_expr.hpp new file mode 100644 index 0000000..cac6bc0 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/logical_expr.hpp @@ -0,0 +1,44 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +struct Group; + +namespace logical { + +using Table = Table; + +struct Filter { + utils::NotNull source; + Expression predicate; +}; + +struct Projection { + utils::NotNull source; + std::vector expressions; +}; + +struct CrossJoin { + utils::NotNull lhs; + utils::NotNull rhs; +}; + +struct Join { + utils::NotNull lhs; + utils::NotNull rhs; + using Type = JoinType; + Type type; + Expression qual; +}; + +} // namespace logical + +struct LogicalExpr { + std::variant root_operator; + utils::NotNull group; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp new file mode 100644 index 0000000..08e1746 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +#include + +namespace stewkk::sql { + +class Memo { + public: + size_t GroupCount() const { return groups_.size(); } + + utils::NotNull AddGroup(LogicalOperator root_operator) { + auto& ptr = groups_.emplace_back(new Group()); + ptr->AddLogicalExpr(std::move(root_operator)); + return ptr.get(); + } + + private: + std::vector> groups_; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp new file mode 100644 index 0000000..bec27bf --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include + +namespace stewkk::sql { + +struct Group; + +namespace physical { + +} // namespace physical + +struct PhysicalExpr { + utils::NotNull group; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rule.hpp b/include/stewkk/sql/logic/optimizer/rule.hpp new file mode 100644 index 0000000..f46a07f --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/rule.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +class Memo; + +class TransformationRule { + public: + virtual bool IsApplicable(utils::NotNull expr) = 0; + virtual utils::NotNull Apply(utils::NotNull expr, Memo& memo) = 0; + virtual ~TransformationRule() = default; +}; + +class ImplementationRule { + public: + virtual bool IsApplicable(utils::NotNull expr) = 0; + virtual utils::NotNull Apply(utils::NotNull, Memo& memo) = 0; + virtual ~ImplementationRule() = default; +}; + +// FIXME: enforcer rules? + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/utils/not_null.hpp b/include/stewkk/sql/utils/not_null.hpp new file mode 100644 index 0000000..72f70bd --- /dev/null +++ b/include/stewkk/sql/utils/not_null.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include +#include + +namespace stewkk::sql::utils { + +template + requires std::is_pointer_v +class NotNull { + public: + NotNull(T ptr) : ptr_(ptr) { assert(ptr_ != nullptr); } // NOLINT(google-explicit-constructor) + NotNull(std::nullptr_t) = delete; + + T get() const { return ptr_; } + auto& operator*() const { return *ptr_; } + T operator->() const { return ptr_; } + + operator T() const { return ptr_; } // NOLINT(google-explicit-constructor) + + private: + T ptr_; +}; + +} // namespace stewkk::sql::utils diff --git a/include/stewkk/sql/utils/overloaded.hpp b/include/stewkk/sql/utils/overloaded.hpp new file mode 100644 index 0000000..9eb1b19 --- /dev/null +++ b/include/stewkk/sql/utils/overloaded.hpp @@ -0,0 +1,7 @@ +#pragma once + +namespace stewkk::sql::utils { + +template struct Overloaded : Ts... { using Ts::operator()...; }; + +} // namespace stewkk::sql::utils diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index ef9652f..5f0483a 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -7,84 +7,14 @@ #include #include +#include #include +#include using ::testing::Eq; namespace stewkk::sql { -template struct Overloaded : Ts... { using Ts::operator()...; }; - -using GroupKey = std::string; - -namespace logical { - -using Table = Table; - -struct Filter { - GroupKey source; - Expression predicate; -}; - -struct Projection { - GroupKey source; - std::vector expressions; -}; - -struct CrossJoin { - GroupKey lhs; - GroupKey rhs; -}; - -struct Join { - GroupKey lhs; - GroupKey rhs; - using Type = JoinType; - Type type; - Expression qual; -}; - -} // namespace logical - -using LogicalExpr = std::variant; - -using RuleNumber = size_t; - -class Memo; - -class Rule { - public: - virtual bool IsApplicable(LogicalExpr expr, Memo& memo) = 0; - virtual bool IsTransformationRule() const = 0; - virtual LogicalExpr Apply(const LogicalExpr& expr, Memo& memo) = 0; - virtual ~Rule() = default; -}; - -class Rules { - public: - - explicit Rules(std::vector> rules) : rules_(std::move(rules)) {} - - size_t Count() const { - return rules_.size(); - } - - LogicalExpr Apply(const LogicalExpr& expr, RuleNumber rule, Memo& memo) const { - return rules_[rule]->Apply(expr, memo); - } - - bool IsApplicable(RuleNumber rule, const LogicalExpr& expr, Memo& memo) const { - return rules_[rule]->IsApplicable(expr, memo); - } - - bool IsTransformationRule(RuleNumber rule) const { - return rules_[rule]->IsTransformationRule(); - } - - private: - std::vector> rules_; -}; - class ExpressionRulesApplier { public: ExpressionRulesApplier(LogicalExpr&& expr, const Rules& rules, GroupKey group) @@ -102,10 +32,6 @@ class ExpressionRulesApplier { return !IsApplied(rule) && (!transformation_rules_only || rules_.IsTransformationRule(rule)) && rules_.IsApplicable(rule, expr_, memo); } - bool IsTransformationRule(RuleNumber rule) const { - return rules_.IsTransformationRule(rule); - } - GroupKey GetGroup() const { return group_; } const LogicalExpr& GetExpr() const { return expr_; } @@ -128,24 +54,6 @@ class ExpressionRulesApplier { std::vector is_applied_; }; -class Group { - public: - Group(GroupKey key, ExpressionRulesApplier expr) : key_(std::move(key)), logical_exprs_({std::move(expr)}) {} - const GroupKey& GetKey() const { - return key_; - } - std::span GetExpressions() { - return logical_exprs_; - } - ExpressionRulesApplier& AddExpression(ExpressionRulesApplier expr) { - logical_exprs_.emplace_back(std::move(expr)); - return logical_exprs_.back(); - } - private: - const GroupKey key_; - std::vector logical_exprs_; -}; - class Memo { public: explicit Memo(const Operator& expr, const Rules& rules) : mapping_(), rules_(rules), root_(AddGroup(expr, rules)) {} @@ -238,19 +146,6 @@ class Memo { GroupKey root_; }; -// DSU data-structure needed? - -TEST(OptimizerTest, GetGroup) { - Operator join_ab = Join{ - .type = JoinType::kInner, - .qual = Literal::kTrue, - .lhs = std::make_shared(Table{.name = "A"}), - .rhs = std::make_shared(Table{.name = "B"}), - }; - - Memo memo(join_ab, Rules{{}}); -} - class Optimizer { public: @@ -367,51 +262,6 @@ class Optimizer { const size_t rules_count_; }; -class JoinCommutativity : public Rule { - public: - bool IsApplicable(LogicalExpr expr, Memo&) override { - return std::holds_alternative(expr); - } - - bool IsTransformationRule() const override { return true; } - - LogicalExpr Apply(const LogicalExpr& expr, Memo&) override { - auto join = std::get(expr); - std::swap(join.lhs, join.rhs); - return join; - } -}; - -class JoinAssociativity : public Rule { - public: - bool IsApplicable(LogicalExpr expr, Memo& memo) override { - if (!std::holds_alternative(expr)) return false; - const auto& outer = std::get(expr); - for (auto& applier : memo.GetGroup(outer.lhs).GetExpressions()) { - if (!std::holds_alternative(applier.GetExpr())) return false; - } - return true; - } - - bool IsTransformationRule() const override { return true; } - - LogicalExpr Apply(const LogicalExpr& expr, Memo& memo) override { - const auto& outer = std::get(expr); - for (auto& applier : memo.GetGroup(outer.lhs).GetExpressions()) { - const auto& inner = std::get(applier.GetExpr()); - auto combined_qual = Expression{BinaryExpression{ - std::make_shared(inner.qual), - BinaryOp::kAnd, - std::make_shared(outer.qual), - }}; - auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); - return logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}; - } - return expr; - } -}; - - TEST(OptimizerTest, Simple) { std::stringstream s{"SELECT * FROM users;"}; Operator op = GetAST(s).value(); diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp new file mode 100644 index 0000000..173e5e2 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -0,0 +1,122 @@ +#include + +#include +#include + +namespace stewkk::sql { + +class JoinCommutativity : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override { + return std::holds_alternative(expr->root_operator); + } + + utils::NotNull Apply(utils::NotNull expr, Memo&) override { + auto join = std::get(expr->root_operator); + std::swap(join.lhs, join.rhs); + return expr->group->AddLogicalExpr(std::move(join)); + } +}; + +class JoinCommutativityTest : public ::testing::Test { + protected: + void SetUp() override { + a = memo.AddGroup(logical::Table{"a"}); + b = memo.AddGroup(logical::Table{"b"}); + } + + Memo memo; + Group* a = nullptr; + Group* b = nullptr; + JoinCommutativity rule; +}; + +TEST_F(JoinCommutativityTest, ReturnsSwappedJoin) { + auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + auto* expr = join_group->GetLogicalExprs()[0].get(); + + auto result = rule.Apply(expr, memo); + + const auto& join = std::get(result->root_operator); + EXPECT_EQ(join.lhs.get(), b); + EXPECT_EQ(join.rhs.get(), a); +} + +TEST_F(JoinCommutativityTest, AddsNewJoinIntoGroup) { + auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + auto* expr = join_group->GetLogicalExprs()[0].get(); + + rule.Apply(expr, memo); + + EXPECT_EQ(join_group->GetLogicalExprs().size(), 2u); + const auto& new_join = std::get(join_group->GetLogicalExprs()[1]->root_operator); + EXPECT_EQ(new_join.lhs.get(), b); + EXPECT_EQ(new_join.rhs.get(), a); +} + +class JoinAssociativity : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& outer = std::get(expr->root_operator); + for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { + if (std::holds_alternative(inner_expr->root_operator)) return true; + } + return false; + } + + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override { + const auto& outer = std::get(expr->root_operator); + for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { + if (!std::holds_alternative(inner_expr->root_operator)) continue; + const auto& inner = std::get(inner_expr->root_operator); + auto combined_qual = Expression{BinaryExpression{ + std::make_shared(inner.qual), + BinaryOp::kAnd, + std::make_shared(outer.qual), + }}; + auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); + return expr->group->AddLogicalExpr(logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}); + } + return expr; + } +}; + +class JoinAssociativityTest : public ::testing::Test { + protected: + void SetUp() override { + a = memo.AddGroup(logical::Table{"a"}); + b = memo.AddGroup(logical::Table{"b"}); + c = memo.AddGroup(logical::Table{"c"}); + ab = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + abc = memo.AddGroup(logical::Join{ab, c, JoinType::kInner, Literal::kFalse}); + } + + Memo memo; + Group* a = nullptr; + Group* b = nullptr; + Group* c = nullptr; + Group* ab = nullptr; + Group* abc = nullptr; + JoinAssociativity rule; +}; + +TEST_F(JoinAssociativityTest, CreatesNewGroup) { + rule.Apply(abc->GetLogicalExprs()[0].get(), memo); + + EXPECT_EQ(memo.GroupCount(), 6u); +} + +TEST_F(JoinAssociativityTest, ReturnsCorrectExpression) { + auto result = rule.Apply(abc->GetLogicalExprs()[0].get(), memo); + + const auto& outer = std::get(result->root_operator); + EXPECT_EQ(outer.lhs.get(), a); + EXPECT_EQ(outer.type, JoinType::kInner); + const auto& inner = std::get(outer.rhs->GetLogicalExprs()[0]->root_operator); + EXPECT_EQ(inner.lhs.get(), b); + EXPECT_EQ(inner.rhs.get(), c); + EXPECT_EQ(inner.qual, Expression{Literal::kTrue}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/utils/non_null.cpp b/src/stewkk/sql/utils/non_null.cpp new file mode 100644 index 0000000..9b62def --- /dev/null +++ b/src/stewkk/sql/utils/non_null.cpp @@ -0,0 +1 @@ +#include diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index face239..092cfbd 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,6 +5,7 @@ add_executable(unittests) target_sources(unittests PRIVATE ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/parser/parser_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/executor/executor_test.cpp + ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rule_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/optimizer_test.cpp ) target_compile_features(unittests PRIVATE cxx_std_23) From 1495fe389188fda0aeeaa6e7ce0b6abd48fc75a2 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 19 Apr 2026 21:23:28 +0300 Subject: [PATCH 004/120] Refactoring --- include/stewkk/sql/logic/optimizer/group.hpp | 17 +- include/stewkk/sql/logic/optimizer/memo.hpp | 9 +- include/stewkk/sql/logic/optimizer/rules.hpp | 20 + .../sql/logic/optimizer/rules_applier.hpp | 20 + .../join_associativity.hpp | 14 + .../join_commutativity.hpp | 14 + src/stewkk/sql/CMakeLists.txt | 5 + src/stewkk/sql/logic/optimizer/group.cpp | 21 + src/stewkk/sql/logic/optimizer/memo.cpp | 15 + .../sql/logic/optimizer/optimizer_test.cpp | 508 +++++++++--------- src/stewkk/sql/logic/optimizer/rule_test.cpp | 47 +- src/stewkk/sql/logic/optimizer/rules.cpp | 15 + .../logic/optimizer/rules_applier_test.cpp | 10 + .../join_associativity.cpp | 33 ++ .../join_commutativity.cpp | 15 + test/CMakeLists.txt | 1 + 16 files changed, 447 insertions(+), 317 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/rules.hpp create mode 100644 include/stewkk/sql/logic/optimizer/rules_applier.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/join_associativity.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp create mode 100644 src/stewkk/sql/logic/optimizer/group.cpp create mode 100644 src/stewkk/sql/logic/optimizer/memo.cpp create mode 100644 src/stewkk/sql/logic/optimizer/rules.cpp create mode 100644 src/stewkk/sql/logic/optimizer/rules_applier_test.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/join_associativity.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index d24436c..0b15171 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -10,25 +10,16 @@ namespace stewkk::sql { using LogicalOperator = decltype(LogicalExpr::root_operator); +using RuleId = size_t; class Group { public: using LogicalExprPtr = std::unique_ptr; using PhysicalExprPtr = std::unique_ptr; - utils::NotNull AddLogicalExpr(LogicalOperator root_operator) { - auto& ptr = logical_exprs_.emplace_back( - std::make_unique(std::move(root_operator), this)); - return ptr.get(); - } - - utils::NotNull AddPhysicalExpr() { - auto& ptr = physical_exprs_.emplace_back( - std::make_unique(this)); - return ptr.get(); - } - - std::span GetLogicalExprs() const { return logical_exprs_; } + utils::NotNull AddLogicalExpr(LogicalOperator root_operator); + utils::NotNull AddPhysicalExpr(); + std::span GetLogicalExprs() const; private: friend class Memo; diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index 08e1746..2e582cd 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -9,13 +9,8 @@ namespace stewkk::sql { class Memo { public: - size_t GroupCount() const { return groups_.size(); } - - utils::NotNull AddGroup(LogicalOperator root_operator) { - auto& ptr = groups_.emplace_back(new Group()); - ptr->AddLogicalExpr(std::move(root_operator)); - return ptr.get(); - } + size_t GroupCount() const; + utils::NotNull AddGroup(LogicalOperator root_operator); private: std::vector> groups_; diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp new file mode 100644 index 0000000..c0c7a7b --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include +#include + +#include +#include +#include + +namespace stewkk::sql { + +template +struct Rules { + std::array, NTransformation> transformation_rules; + std::array, NImplementation> implementation_rules; +}; + +Rules<2, 0> MakeMainRules(); + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp new file mode 100644 index 0000000..9d9ad9f --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include +#include + +#include + +namespace stewkk::sql { + +template +class RulesApplier { +public: + + +private: + Rules rules_; + std::unordered_map> applied_transformation_rules_; +}; + +} // stewkk::sql \ No newline at end of file diff --git a/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp b/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp new file mode 100644 index 0000000..bbf46f6 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +class JoinAssociativity : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp b/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp new file mode 100644 index 0000000..dbfb986 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +class JoinCommutativity : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 2826b7b..090a2d6 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -24,6 +24,11 @@ add_library(libsql logic/executor/materialization.cpp logic/executor/llvm.cpp logic/optimizer/optimizer.cpp + logic/optimizer/group.cpp + logic/optimizer/memo.cpp + logic/optimizer/rules.cpp + logic/transformation_rules/join_commutativity.cpp + logic/transformation_rules/join_associativity.cpp ) add_library(stewkk::libsql ALIAS libsql) target_compile_features(libsql PUBLIC cxx_std_23) diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp new file mode 100644 index 0000000..3f15873 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -0,0 +1,21 @@ +#include + +namespace stewkk::sql { + +utils::NotNull Group::AddLogicalExpr(LogicalOperator root_operator) { + auto& ptr = logical_exprs_.emplace_back( + std::make_unique(std::move(root_operator), this)); + return ptr.get(); +} + +utils::NotNull Group::AddPhysicalExpr() { + auto& ptr = physical_exprs_.emplace_back( + std::make_unique(this)); + return ptr.get(); +} + +std::span Group::GetLogicalExprs() const { + return logical_exprs_; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp new file mode 100644 index 0000000..2afade3 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -0,0 +1,15 @@ +#include + +namespace stewkk::sql { + +size_t Memo::GroupCount() const { + return groups_.size(); +} + +utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { + auto& ptr = groups_.emplace_back(new Group()); + ptr->AddLogicalExpr(std::move(root_operator)); + return ptr.get(); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 5f0483a..7eb2b1b 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -15,259 +15,259 @@ using ::testing::Eq; namespace stewkk::sql { -class ExpressionRulesApplier { - public: - ExpressionRulesApplier(LogicalExpr&& expr, const Rules& rules, GroupKey group) - : expr_(std::move(expr)), - rules_(rules), - is_applied_(rules_.Count(), false), - group_(std::move(group)) {} - - ExpressionRulesApplier ApplyRule(RuleNumber rule, Memo& memo) { - is_applied_[rule] = true; - return ExpressionRulesApplier(rules_.Apply(expr_, rule, memo), rules_, group_); - } - - bool IsApplicable(RuleNumber rule, Memo& memo, bool transformation_rules_only=false) const { - return !IsApplied(rule) && (!transformation_rules_only || rules_.IsTransformationRule(rule)) && rules_.IsApplicable(rule, expr_, memo); - } - - GroupKey GetGroup() const { return group_; } - const LogicalExpr& GetExpr() const { return expr_; } - - std::vector GetChildren() const { - return std::visit(Overloaded{ - [](const logical::Table&) -> std::vector { return {}; }, - [](const logical::Filter& f) -> std::vector { return {f.source}; }, - [](const logical::Projection& p) -> std::vector { return {p.source}; }, - [](const logical::CrossJoin& j) -> std::vector { return {j.lhs, j.rhs}; }, - [](const logical::Join& j) -> std::vector { return {j.lhs, j.rhs}; }, - }, expr_); - } - - private: - bool IsApplied(RuleNumber rule) const { return is_applied_[rule]; } - - const LogicalExpr expr_; - const Rules& rules_; - GroupKey group_; - std::vector is_applied_; -}; - -class Memo { - public: - explicit Memo(const Operator& expr, const Rules& rules) : mapping_(), rules_(rules), root_(AddGroup(expr, rules)) {} - - Group& GetRoot() { - return mapping_.find(root_)->second; - } - - GroupKey AddGroup(const LogicalExpr& expr) { - return AddGroup(expr, rules_); - } - - GroupKey AddGroup(const LogicalExpr& expr, const Rules& rules) { - return std::visit(Overloaded{ - [this, &rules](const logical::Table& t) { - auto key = std::format("Table({})", t.name); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(t, rules, key))); - return key; - }, - [this, &rules](const logical::Filter& f) { - auto key = std::format("Filter({}, {})", f.source, ToString(f.predicate)); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(f, rules, key))); - return key; - }, - [this, &rules](const logical::Projection& p) { - auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); - auto key = std::format("Projection({}, {})", p.source, exprs); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(p, rules, key))); - return key; - }, - [this, &rules](const logical::CrossJoin& j) { - auto key = std::format("CrossJoin({}, {})", j.lhs, j.rhs); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); - return key; - }, - [this, &rules](const logical::Join& j) { - auto key = std::format("Join({}, {}, {}, {})", j.lhs, j.rhs, ToString(j.type), ToString(j.qual)); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); - return key; - }, - }, expr); - } - - // TODO: replace with raw ptr (or some non-null wrapper) - Group& GetGroup(GroupKey key) { - return mapping_.find(key)->second; - } - - private: - - GroupKey AddGroup(const Operator& expr, const Rules& rules) { - return std::visit(Overloaded{ - [this, &rules](const Table& t) { - auto key = std::format("Table({})", t.name); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Table(t), rules, key))); - return key; - }, - [this, &rules](const Filter& f) { - auto source_group = AddGroup(*f.source, rules); - auto key = std::format("Filter({}, {})", source_group, ToString(f.expr)); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Filter(source_group, f.expr), rules, key))); - return key; - }, - [this, &rules](const Projection& p) { - auto source_group = AddGroup(*p.source, rules); - auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); - auto key = std::format("Projection({}, {})", source_group, exprs); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Projection(source_group, p.expressions), rules, key))); - return key; - }, - [this, &rules](const CrossJoin& j) { - auto lhs_group = AddGroup(*j.lhs, rules); - auto rhs_group = AddGroup(*j.rhs, rules); - auto key = std::format("CrossJoin({}, {})", lhs_group, rhs_group); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::CrossJoin(lhs_group, rhs_group), rules, key))); - return key; - }, - [this, &rules](const Join& j) { - auto lhs_group = AddGroup(*j.lhs, rules); - auto rhs_group = AddGroup(*j.rhs, rules); - auto key = std::format("Join({}, {}, {}, {})", lhs_group, rhs_group, ToString(j.type), ToString(j.qual)); - mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Join(lhs_group, rhs_group, j.type, j.qual), rules, key))); - return key; - }, - }, expr); - } - - std::unordered_map mapping_; - const Rules& rules_; - GroupKey root_; -}; - -class Optimizer { - public: - - explicit Optimizer(const Operator& expr, const Rules& rules) : memo_(expr, rules), rules_count_(rules.Count()) {} - - bool IsExplored(const Group& group) const { - return explored_groups_.contains(group.GetKey()); - } - - void SetExplored(const Group& group) { - explored_groups_.insert(group.GetKey()); - } - - void OptimizeInputs(const ExpressionRulesApplier& expr) { - } - - void ApplyRule(ExpressionRulesApplier& expr, RuleNumber rule) { - auto new_expr = expr.ApplyRule(rule, memo_); - auto group = memo_.GetGroup(new_expr.GetGroup()); - auto new_expr_ref = group.AddExpression(std::move(new_expr)); - if (new_expr.IsTransformationRule(rule)) { - tasks_.emplace([this, &new_expr_ref]() { ExploreExpression(new_expr_ref); }); - } else { - tasks_.emplace([this, &new_expr_ref]() { OptimizeInputs(new_expr_ref); }); - } - } - - void OptimizeExpression(ExpressionRulesApplier& expr) { - for (RuleNumber rule = 0; rule < rules_count_; rule++) { - if (!expr.IsApplicable(rule, memo_)) { - continue; - } - tasks_.emplace([this, &expr, rule]() { - ApplyRule(expr, rule); - }); - } - - for (auto child : expr.GetChildren()) { - auto& group = memo_.GetGroup(child); - if (IsExplored(group)) { - continue; - } - tasks_.emplace([this, &group]() { - ExploreGroup(group); - }); - } - } - - void ExploreExpression(ExpressionRulesApplier& expr) { - for (RuleNumber rule = 0; rule < rules_count_; rule++) { - bool transformation_rules_only = true; - if (!expr.IsApplicable(rule, memo_, transformation_rules_only)) { - continue; - } - tasks_.emplace([this, &expr, rule]() { - ApplyRule(expr, rule); - }); - } - - for (auto child : expr.GetChildren()) { - auto& group = memo_.GetGroup(child); - if (IsExplored(group)) { - continue; - } - tasks_.emplace([this, &group]() { - ExploreGroup(group); - }); - } - } - - void ExploreGroup(Group& group) { - SetExplored(group); - for (auto& expr : group.GetExpressions()) { - tasks_.emplace([this, &expr]() { - ExploreExpression(expr); - }); - } - } - - void OptimizeGroup(Group& group) { - if (!IsExplored(group)) { - tasks_.emplace([this, &group](){ - OptimizeGroup(group); - }); - tasks_.emplace([this, &group](){ - ExploreGroup(group); - }); - return; - } - - for (auto& expr : group.GetExpressions()) { - tasks_.emplace([this, &expr](){ - OptimizeExpression(expr); - }); - } - } - - Operator Optimize() { - tasks_.emplace([this]() { - OptimizeGroup(memo_.GetRoot()); - }); - while (!tasks_.empty()) { - auto next_task = std::move(tasks_.top()); - tasks_.pop(); - next_task(); - } - return Table{"A"}; - } - - private: - Memo memo_; - std::stack> tasks_; - std::unordered_set explored_groups_; - const size_t rules_count_; -}; - -TEST(OptimizerTest, Simple) { - std::stringstream s{"SELECT * FROM users;"}; - Operator op = GetAST(s).value(); - Optimizer optimizer(op, Rules{{}}); - - auto got = optimizer.Optimize(); -} +// class ExpressionRulesApplier { +// public: +// ExpressionRulesApplier(LogicalExpr&& expr, const Rules& rules, GroupKey group) +// : expr_(std::move(expr)), +// rules_(rules), +// is_applied_(rules_.Count(), false), +// group_(std::move(group)) {} + +// ExpressionRulesApplier ApplyRule(RuleNumber rule, Memo& memo) { +// is_applied_[rule] = true; +// return ExpressionRulesApplier(rules_.Apply(expr_, rule, memo), rules_, group_); +// } + +// bool IsApplicable(RuleNumber rule, Memo& memo, bool transformation_rules_only=false) const { +// return !IsApplied(rule) && (!transformation_rules_only || rules_.IsTransformationRule(rule)) && rules_.IsApplicable(rule, expr_, memo); +// } + +// GroupKey GetGroup() const { return group_; } +// const LogicalExpr& GetExpr() const { return expr_; } + +// std::vector GetChildren() const { +// return std::visit(Overloaded{ +// [](const logical::Table&) -> std::vector { return {}; }, +// [](const logical::Filter& f) -> std::vector { return {f.source}; }, +// [](const logical::Projection& p) -> std::vector { return {p.source}; }, +// [](const logical::CrossJoin& j) -> std::vector { return {j.lhs, j.rhs}; }, +// [](const logical::Join& j) -> std::vector { return {j.lhs, j.rhs}; }, +// }, expr_); +// } + +// private: +// bool IsApplied(RuleNumber rule) const { return is_applied_[rule]; } + +// const LogicalExpr expr_; +// const Rules& rules_; +// GroupKey group_; +// std::vector is_applied_; +// }; + +// class Memo { +// public: +// explicit Memo(const Operator& expr, const Rules& rules) : mapping_(), rules_(rules), root_(AddGroup(expr, rules)) {} + +// Group& GetRoot() { +// return mapping_.find(root_)->second; +// } + +// GroupKey AddGroup(const LogicalExpr& expr) { +// return AddGroup(expr, rules_); +// } + +// GroupKey AddGroup(const LogicalExpr& expr, const Rules& rules) { +// return std::visit(Overloaded{ +// [this, &rules](const logical::Table& t) { +// auto key = std::format("Table({})", t.name); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(t, rules, key))); +// return key; +// }, +// [this, &rules](const logical::Filter& f) { +// auto key = std::format("Filter({}, {})", f.source, ToString(f.predicate)); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(f, rules, key))); +// return key; +// }, +// [this, &rules](const logical::Projection& p) { +// auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); +// auto key = std::format("Projection({}, {})", p.source, exprs); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(p, rules, key))); +// return key; +// }, +// [this, &rules](const logical::CrossJoin& j) { +// auto key = std::format("CrossJoin({}, {})", j.lhs, j.rhs); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); +// return key; +// }, +// [this, &rules](const logical::Join& j) { +// auto key = std::format("Join({}, {}, {}, {})", j.lhs, j.rhs, ToString(j.type), ToString(j.qual)); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); +// return key; +// }, +// }, expr); +// } + +// // TODO: replace with raw ptr (or some non-null wrapper) +// Group& GetGroup(GroupKey key) { +// return mapping_.find(key)->second; +// } + +// private: + +// GroupKey AddGroup(const Operator& expr, const Rules& rules) { +// return std::visit(Overloaded{ +// [this, &rules](const Table& t) { +// auto key = std::format("Table({})", t.name); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Table(t), rules, key))); +// return key; +// }, +// [this, &rules](const Filter& f) { +// auto source_group = AddGroup(*f.source, rules); +// auto key = std::format("Filter({}, {})", source_group, ToString(f.expr)); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Filter(source_group, f.expr), rules, key))); +// return key; +// }, +// [this, &rules](const Projection& p) { +// auto source_group = AddGroup(*p.source, rules); +// auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); +// auto key = std::format("Projection({}, {})", source_group, exprs); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Projection(source_group, p.expressions), rules, key))); +// return key; +// }, +// [this, &rules](const CrossJoin& j) { +// auto lhs_group = AddGroup(*j.lhs, rules); +// auto rhs_group = AddGroup(*j.rhs, rules); +// auto key = std::format("CrossJoin({}, {})", lhs_group, rhs_group); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::CrossJoin(lhs_group, rhs_group), rules, key))); +// return key; +// }, +// [this, &rules](const Join& j) { +// auto lhs_group = AddGroup(*j.lhs, rules); +// auto rhs_group = AddGroup(*j.rhs, rules); +// auto key = std::format("Join({}, {}, {}, {})", lhs_group, rhs_group, ToString(j.type), ToString(j.qual)); +// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Join(lhs_group, rhs_group, j.type, j.qual), rules, key))); +// return key; +// }, +// }, expr); +// } + +// std::unordered_map mapping_; +// const Rules& rules_; +// GroupKey root_; +// }; + +// class Optimizer { +// public: + +// explicit Optimizer(const Operator& expr, const Rules& rules) : memo_(expr, rules), rules_count_(rules.Count()) {} + +// bool IsExplored(const Group& group) const { +// return explored_groups_.contains(group.GetKey()); +// } + +// void SetExplored(const Group& group) { +// explored_groups_.insert(group.GetKey()); +// } + +// void OptimizeInputs(const ExpressionRulesApplier& expr) { +// } + +// void ApplyRule(ExpressionRulesApplier& expr, RuleNumber rule) { +// auto new_expr = expr.ApplyRule(rule, memo_); +// auto group = memo_.GetGroup(new_expr.GetGroup()); +// auto new_expr_ref = group.AddExpression(std::move(new_expr)); +// if (new_expr.IsTransformationRule(rule)) { +// tasks_.emplace([this, &new_expr_ref]() { ExploreExpression(new_expr_ref); }); +// } else { +// tasks_.emplace([this, &new_expr_ref]() { OptimizeInputs(new_expr_ref); }); +// } +// } + +// void OptimizeExpression(ExpressionRulesApplier& expr) { +// for (RuleNumber rule = 0; rule < rules_count_; rule++) { +// if (!expr.IsApplicable(rule, memo_)) { +// continue; +// } +// tasks_.emplace([this, &expr, rule]() { +// ApplyRule(expr, rule); +// }); +// } + +// for (auto child : expr.GetChildren()) { +// auto& group = memo_.GetGroup(child); +// if (IsExplored(group)) { +// continue; +// } +// tasks_.emplace([this, &group]() { +// ExploreGroup(group); +// }); +// } +// } + +// void ExploreExpression(ExpressionRulesApplier& expr) { +// for (RuleNumber rule = 0; rule < rules_count_; rule++) { +// bool transformation_rules_only = true; +// if (!expr.IsApplicable(rule, memo_, transformation_rules_only)) { +// continue; +// } +// tasks_.emplace([this, &expr, rule]() { +// ApplyRule(expr, rule); +// }); +// } + +// for (auto child : expr.GetChildren()) { +// auto& group = memo_.GetGroup(child); +// if (IsExplored(group)) { +// continue; +// } +// tasks_.emplace([this, &group]() { +// ExploreGroup(group); +// }); +// } +// } + +// void ExploreGroup(Group& group) { +// SetExplored(group); +// for (auto& expr : group.GetExpressions()) { +// tasks_.emplace([this, &expr]() { +// ExploreExpression(expr); +// }); +// } +// } + +// void OptimizeGroup(Group& group) { +// if (!IsExplored(group)) { +// tasks_.emplace([this, &group](){ +// OptimizeGroup(group); +// }); +// tasks_.emplace([this, &group](){ +// ExploreGroup(group); +// }); +// return; +// } + +// for (auto& expr : group.GetExpressions()) { +// tasks_.emplace([this, &expr](){ +// OptimizeExpression(expr); +// }); +// } +// } + +// Operator Optimize() { +// tasks_.emplace([this]() { +// OptimizeGroup(memo_.GetRoot()); +// }); +// while (!tasks_.empty()) { +// auto next_task = std::move(tasks_.top()); +// tasks_.pop(); +// next_task(); +// } +// return Table{"A"}; +// } + +// private: +// Memo memo_; +// std::stack> tasks_; +// std::unordered_set explored_groups_; +// const size_t rules_count_; +// }; + +// TEST(OptimizerTest, Simple) { +// std::stringstream s{"SELECT * FROM users;"}; +// Operator op = GetAST(s).value(); +// Optimizer optimizer(op, Rules{{}}); + +// auto got = optimizer.Optimize(); +// } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index 173e5e2..0699ab9 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -2,22 +2,11 @@ #include #include +#include +#include namespace stewkk::sql { -class JoinCommutativity : public TransformationRule { - public: - bool IsApplicable(utils::NotNull expr) override { - return std::holds_alternative(expr->root_operator); - } - - utils::NotNull Apply(utils::NotNull expr, Memo&) override { - auto join = std::get(expr->root_operator); - std::swap(join.lhs, join.rhs); - return expr->group->AddLogicalExpr(std::move(join)); - } -}; - class JoinCommutativityTest : public ::testing::Test { protected: void SetUp() override { @@ -49,39 +38,11 @@ TEST_F(JoinCommutativityTest, AddsNewJoinIntoGroup) { rule.Apply(expr, memo); EXPECT_EQ(join_group->GetLogicalExprs().size(), 2u); - const auto& new_join = std::get(join_group->GetLogicalExprs()[1]->root_operator); + const auto& new_join = std::get(join_group->GetLogicalExprs()[1].get()->root_operator); EXPECT_EQ(new_join.lhs.get(), b); EXPECT_EQ(new_join.rhs.get(), a); } -class JoinAssociativity : public TransformationRule { - public: - bool IsApplicable(utils::NotNull expr) override { - if (!std::holds_alternative(expr->root_operator)) return false; - const auto& outer = std::get(expr->root_operator); - for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { - if (std::holds_alternative(inner_expr->root_operator)) return true; - } - return false; - } - - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override { - const auto& outer = std::get(expr->root_operator); - for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { - if (!std::holds_alternative(inner_expr->root_operator)) continue; - const auto& inner = std::get(inner_expr->root_operator); - auto combined_qual = Expression{BinaryExpression{ - std::make_shared(inner.qual), - BinaryOp::kAnd, - std::make_shared(outer.qual), - }}; - auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); - return expr->group->AddLogicalExpr(logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}); - } - return expr; - } -}; - class JoinAssociativityTest : public ::testing::Test { protected: void SetUp() override { @@ -113,7 +74,7 @@ TEST_F(JoinAssociativityTest, ReturnsCorrectExpression) { const auto& outer = std::get(result->root_operator); EXPECT_EQ(outer.lhs.get(), a); EXPECT_EQ(outer.type, JoinType::kInner); - const auto& inner = std::get(outer.rhs->GetLogicalExprs()[0]->root_operator); + const auto& inner = std::get(outer.rhs->GetLogicalExprs()[0].get()->root_operator); EXPECT_EQ(inner.lhs.get(), b); EXPECT_EQ(inner.rhs.get(), c); EXPECT_EQ(inner.qual, Expression{Literal::kTrue}); diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp new file mode 100644 index 0000000..961f528 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -0,0 +1,15 @@ +#include + +namespace stewkk::sql { + +Rules<2, 0> MakeMainRules() { + return { + .transformation_rules = { + std::make_unique(), + std::make_unique(), + }, + .implementation_rules = {}, + }; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp new file mode 100644 index 0000000..c59feb2 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp @@ -0,0 +1,10 @@ +#include + +#include + +namespace stewkk::sql { + +TEST(RulesApplierTest, Placeholder) { +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp new file mode 100644 index 0000000..fea44bf --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -0,0 +1,33 @@ +#include + +#include + +namespace stewkk::sql { + +bool JoinAssociativity::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& outer = std::get(expr->root_operator); + for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { + if (std::holds_alternative(inner_expr->root_operator)) return true; + } + return false; +} + +// (A ⋈₁ B) ⋈₂ C → A ⋈₁∧₂ (B ⋈₂ C) +utils::NotNull JoinAssociativity::Apply(utils::NotNull expr, Memo& memo) { + const auto& outer = std::get(expr->root_operator); + for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { + if (!std::holds_alternative(inner_expr->root_operator)) continue; + const auto& inner = std::get(inner_expr->root_operator); + auto combined_qual = Expression{BinaryExpression{ + std::make_shared(inner.qual), + BinaryOp::kAnd, + std::make_shared(outer.qual), + }}; + auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); + return expr->group->AddLogicalExpr(logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}); + } + return expr; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp new file mode 100644 index 0000000..fece6b8 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp @@ -0,0 +1,15 @@ +#include + +namespace stewkk::sql { + +bool JoinCommutativity::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull JoinCommutativity::Apply(utils::NotNull expr, Memo&) { + auto join = std::get(expr->root_operator); + std::swap(join.lhs, join.rhs); + return expr->group->AddLogicalExpr(std::move(join)); +} + +} // namespace stewkk::sql diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 092cfbd..0413bc6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,6 +6,7 @@ target_sources(unittests PRIVATE ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/parser/parser_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/executor/executor_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rule_test.cpp + ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/optimizer_test.cpp ) target_compile_features(unittests PRIVATE cxx_std_23) From d2d6074664aff4b82bd43e5db613ba1b8afd26bc Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 19 Apr 2026 22:04:02 +0300 Subject: [PATCH 005/120] Implement RulesApplier --- include/stewkk/sql/logic/optimizer/rule.hpp | 6 +++++- .../sql/logic/optimizer/rules_applier.hpp | 20 +++++++++++++++---- .../join_associativity.hpp | 2 +- .../join_commutativity.hpp | 2 +- src/stewkk/sql/CMakeLists.txt | 1 + src/stewkk/sql/logic/optimizer/rule.cpp | 9 +++++++++ .../logic/optimizer/rules_applier_test.cpp | 14 ++++++++++++- .../join_associativity.cpp | 7 ++++--- .../join_commutativity.cpp | 4 ++-- 9 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 src/stewkk/sql/logic/optimizer/rule.cpp diff --git a/include/stewkk/sql/logic/optimizer/rule.hpp b/include/stewkk/sql/logic/optimizer/rule.hpp index f46a07f..3960ecb 100644 --- a/include/stewkk/sql/logic/optimizer/rule.hpp +++ b/include/stewkk/sql/logic/optimizer/rule.hpp @@ -2,6 +2,7 @@ #include #include +#include namespace stewkk::sql { @@ -10,8 +11,11 @@ class Memo; class TransformationRule { public: virtual bool IsApplicable(utils::NotNull expr) = 0; - virtual utils::NotNull Apply(utils::NotNull expr, Memo& memo) = 0; + utils::NotNull Apply(utils::NotNull expr, Memo& memo); virtual ~TransformationRule() = default; + + private: + virtual LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) = 0; }; class ImplementationRule { diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp index 9d9ad9f..b6ff5e3 100644 --- a/include/stewkk/sql/logic/optimizer/rules_applier.hpp +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -4,17 +4,29 @@ #include #include +#include namespace stewkk::sql { template class RulesApplier { -public: + public: + explicit RulesApplier(Rules rules) + : rules_(std::move(rules)) {} - -private: + bool IsApplicable(RuleId rule, utils::NotNull expr) { + return !applied_transformation_rules_[expr.get()][rule] && + rules_.transformation_rules[rule]->IsApplicable(expr); + } + + utils::NotNull Apply(RuleId rule, utils::NotNull expr, Memo& memo) { + applied_transformation_rules_[expr.get()][rule] = 1; + return rules_.transformation_rules[rule]->Apply(expr, memo); + } + + private: Rules rules_; std::unordered_map> applied_transformation_rules_; }; -} // stewkk::sql \ No newline at end of file +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp b/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp index bbf46f6..b4a2281 100644 --- a/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp +++ b/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp @@ -8,7 +8,7 @@ namespace stewkk::sql { class JoinAssociativity : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp b/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp index dbfb986..ccaf13b 100644 --- a/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp +++ b/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp @@ -8,7 +8,7 @@ namespace stewkk::sql { class JoinCommutativity : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 090a2d6..0190406 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -27,6 +27,7 @@ add_library(libsql logic/optimizer/group.cpp logic/optimizer/memo.cpp logic/optimizer/rules.cpp + logic/optimizer/rule.cpp logic/transformation_rules/join_commutativity.cpp logic/transformation_rules/join_associativity.cpp ) diff --git a/src/stewkk/sql/logic/optimizer/rule.cpp b/src/stewkk/sql/logic/optimizer/rule.cpp new file mode 100644 index 0000000..13ad570 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/rule.cpp @@ -0,0 +1,9 @@ +#include + +namespace stewkk::sql { + +utils::NotNull TransformationRule::Apply(utils::NotNull expr, Memo& memo) { +return expr->group->AddLogicalExpr(ApplyImpl(expr, memo)); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp index c59feb2..9023624 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp @@ -4,7 +4,19 @@ namespace stewkk::sql { -TEST(RulesApplierTest, Placeholder) { +TEST(RulesApplierTest, ChecksThatRuleAlreadyApplied) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"}); + auto b = memo.AddGroup(logical::Table{"b"}); + auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + auto* expr = join_group->GetLogicalExprs()[0].get(); + + RulesApplier applier(MakeMainRules()); + constexpr RuleId kJoinCommutativity = 0; + + EXPECT_TRUE(applier.IsApplicable(kJoinCommutativity, expr)); + applier.Apply(kJoinCommutativity, expr, memo); + EXPECT_FALSE(applier.IsApplicable(kJoinCommutativity, expr)); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index fea44bf..0544238 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -14,7 +14,7 @@ bool JoinAssociativity::IsApplicable(utils::NotNull expr) { } // (A ⋈₁ B) ⋈₂ C → A ⋈₁∧₂ (B ⋈₂ C) -utils::NotNull JoinAssociativity::Apply(utils::NotNull expr, Memo& memo) { +LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, Memo& memo) { const auto& outer = std::get(expr->root_operator); for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { if (!std::holds_alternative(inner_expr->root_operator)) continue; @@ -25,9 +25,10 @@ utils::NotNull JoinAssociativity::Apply(utils::NotNull(outer.qual), }}; auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); - return expr->group->AddLogicalExpr(logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}); + // FIXME: should return more than one operators!!! + return logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}; } - return expr; + throw std::runtime_error{"cant perform JoinAssociativity"}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp index fece6b8..18bff95 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp @@ -6,10 +6,10 @@ bool JoinCommutativity::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull JoinCommutativity::Apply(utils::NotNull expr, Memo&) { +LogicalOperator JoinCommutativity::ApplyImpl(utils::NotNull expr, Memo&) { auto join = std::get(expr->root_operator); std::swap(join.lhs, join.rhs); - return expr->group->AddLogicalExpr(std::move(join)); + return join; } } // namespace stewkk::sql From 28cec906ce1b4e5acbf3f20826810ea65fc2a219 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 20 Apr 2026 01:15:25 +0300 Subject: [PATCH 006/120] Add deduptication in Memo --- include/stewkk/sql/logic/optimizer/group.hpp | 5 +- .../sql/logic/optimizer/logical_expr.hpp | 8 +++ include/stewkk/sql/logic/optimizer/memo.hpp | 3 + include/stewkk/sql/utils/not_null.hpp | 2 + src/stewkk/sql/logic/optimizer/group.cpp | 4 ++ src/stewkk/sql/logic/optimizer/memo.cpp | 38 +++++++++++- src/stewkk/sql/logic/optimizer/memo_test.cpp | 29 +++++++++ .../sql/logic/optimizer/optimizer_test.cpp | 62 ------------------- test/CMakeLists.txt | 1 + 9 files changed, 88 insertions(+), 64 deletions(-) create mode 100644 src/stewkk/sql/logic/optimizer/memo_test.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index 0b15171..78d06e7 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -21,10 +21,13 @@ class Group { utils::NotNull AddPhysicalExpr(); std::span GetLogicalExprs() const; + size_t id() const; + private: friend class Memo; - Group() = default; + explicit Group(size_t id) : id_(id) {} + size_t id_; std::vector logical_exprs_; std::vector physical_exprs_; }; diff --git a/include/stewkk/sql/logic/optimizer/logical_expr.hpp b/include/stewkk/sql/logic/optimizer/logical_expr.hpp index cac6bc0..6a74cf2 100644 --- a/include/stewkk/sql/logic/optimizer/logical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/logical_expr.hpp @@ -14,16 +14,22 @@ using Table = Table; struct Filter { utils::NotNull source; Expression predicate; + + bool operator==(const Filter&) const = default; }; struct Projection { utils::NotNull source; std::vector expressions; + + bool operator==(const Projection&) const = default; }; struct CrossJoin { utils::NotNull lhs; utils::NotNull rhs; + + bool operator==(const CrossJoin&) const = default; }; struct Join { @@ -32,6 +38,8 @@ struct Join { using Type = JoinType; Type type; Expression qual; + + bool operator==(const Join&) const = default; }; } // namespace logical diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index 2e582cd..dd01cce 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -2,6 +2,8 @@ #include #include +#include +#include #include @@ -14,6 +16,7 @@ class Memo { private: std::vector> groups_; + std::unordered_map expr_index_; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/utils/not_null.hpp b/include/stewkk/sql/utils/not_null.hpp index 72f70bd..d48d54f 100644 --- a/include/stewkk/sql/utils/not_null.hpp +++ b/include/stewkk/sql/utils/not_null.hpp @@ -18,6 +18,8 @@ class NotNull { operator T() const { return ptr_; } // NOLINT(google-explicit-constructor) + bool operator==(const NotNull& other) const = default; + private: T ptr_; }; diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp index 3f15873..6395d92 100644 --- a/src/stewkk/sql/logic/optimizer/group.cpp +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -18,4 +18,8 @@ std::span Group::GetLogicalExprs() const { return logical_exprs_; } +size_t Group::id() const { + return id_; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 2afade3..40a3c3d 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -1,14 +1,50 @@ #include +#include namespace stewkk::sql { +namespace { + +std::string ToKey(const LogicalOperator& op) { + return std::visit(utils::Overloaded{ + [](const logical::Table& t) { + return "Table(" + t.name + ")"; + }, + [](const logical::Filter& f) { + return "Filter(" + ToString(f.predicate) + "," + std::to_string(f.source->id()) + ")"; + }, + [](const logical::Projection& p) { + std::string exprs; + for (const auto& e : p.expressions) { + exprs += ToString(e) + ","; + } + return "Projection(" + exprs + std::to_string(p.source->id()) + ")"; + }, + [](const logical::CrossJoin& j) { + return "CrossJoin(" + std::to_string(j.lhs->id()) + "," + std::to_string(j.rhs->id()) + ")"; + }, + [](const logical::Join& j) { + return "Join(" + ToString(j.type) + "," + ToString(j.qual) + "," + + std::to_string(j.lhs->id()) + "," + std::to_string(j.rhs->id()) + ")"; + }, + }, op); +} + +} // namespace + size_t Memo::GroupCount() const { return groups_.size(); } utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { - auto& ptr = groups_.emplace_back(new Group()); + auto key = ToKey(root_operator); + auto it = expr_index_.find(key); + if (it != expr_index_.end()) { + return it->second; + } + auto& ptr = groups_.emplace_back(new Group(groups_.size())); ptr->AddLogicalExpr(std::move(root_operator)); + expr_index_[key] = ptr.get(); return ptr.get(); } diff --git a/src/stewkk/sql/logic/optimizer/memo_test.cpp b/src/stewkk/sql/logic/optimizer/memo_test.cpp new file mode 100644 index 0000000..923eb5b --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/memo_test.cpp @@ -0,0 +1,29 @@ +#include + +#include + +namespace stewkk::sql { + +TEST(MemoTest, AddGroup) { + Memo memo; + EXPECT_EQ(memo.GroupCount(), 0); + + auto group = memo.AddGroup(logical::Table{"t"}); + EXPECT_EQ(memo.GroupCount(), 1); + + auto exprs = group->GetLogicalExprs(); + ASSERT_EQ(exprs.size(), 1); + EXPECT_TRUE(std::holds_alternative(exprs[0]->root_operator)); + EXPECT_EQ(std::get(exprs[0]->root_operator).name, "t"); +} + +TEST(MemoTest, AddSameGroupSecondReturnsIt) { + Memo memo; + auto first = memo.AddGroup(logical::Table{"t"}); + auto second = memo.AddGroup(logical::Table{"t"}); + + EXPECT_EQ(first, second); + EXPECT_EQ(memo.GroupCount(), 1); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 7eb2b1b..bd84ccd 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -15,57 +15,6 @@ using ::testing::Eq; namespace stewkk::sql { -// class ExpressionRulesApplier { -// public: -// ExpressionRulesApplier(LogicalExpr&& expr, const Rules& rules, GroupKey group) -// : expr_(std::move(expr)), -// rules_(rules), -// is_applied_(rules_.Count(), false), -// group_(std::move(group)) {} - -// ExpressionRulesApplier ApplyRule(RuleNumber rule, Memo& memo) { -// is_applied_[rule] = true; -// return ExpressionRulesApplier(rules_.Apply(expr_, rule, memo), rules_, group_); -// } - -// bool IsApplicable(RuleNumber rule, Memo& memo, bool transformation_rules_only=false) const { -// return !IsApplied(rule) && (!transformation_rules_only || rules_.IsTransformationRule(rule)) && rules_.IsApplicable(rule, expr_, memo); -// } - -// GroupKey GetGroup() const { return group_; } -// const LogicalExpr& GetExpr() const { return expr_; } - -// std::vector GetChildren() const { -// return std::visit(Overloaded{ -// [](const logical::Table&) -> std::vector { return {}; }, -// [](const logical::Filter& f) -> std::vector { return {f.source}; }, -// [](const logical::Projection& p) -> std::vector { return {p.source}; }, -// [](const logical::CrossJoin& j) -> std::vector { return {j.lhs, j.rhs}; }, -// [](const logical::Join& j) -> std::vector { return {j.lhs, j.rhs}; }, -// }, expr_); -// } - -// private: -// bool IsApplied(RuleNumber rule) const { return is_applied_[rule]; } - -// const LogicalExpr expr_; -// const Rules& rules_; -// GroupKey group_; -// std::vector is_applied_; -// }; - -// class Memo { -// public: -// explicit Memo(const Operator& expr, const Rules& rules) : mapping_(), rules_(rules), root_(AddGroup(expr, rules)) {} - -// Group& GetRoot() { -// return mapping_.find(root_)->second; -// } - -// GroupKey AddGroup(const LogicalExpr& expr) { -// return AddGroup(expr, rules_); -// } - // GroupKey AddGroup(const LogicalExpr& expr, const Rules& rules) { // return std::visit(Overloaded{ // [this, &rules](const logical::Table& t) { @@ -96,12 +45,6 @@ namespace stewkk::sql { // }, // }, expr); // } - -// // TODO: replace with raw ptr (or some non-null wrapper) -// Group& GetGroup(GroupKey key) { -// return mapping_.find(key)->second; -// } - // private: // GroupKey AddGroup(const Operator& expr, const Rules& rules) { @@ -141,11 +84,6 @@ namespace stewkk::sql { // }, expr); // } -// std::unordered_map mapping_; -// const Rules& rules_; -// GroupKey root_; -// }; - // class Optimizer { // public: diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0413bc6..0f6c674 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -8,6 +8,7 @@ target_sources(unittests PRIVATE ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rule_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/optimizer_test.cpp + ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/memo_test.cpp ) target_compile_features(unittests PRIVATE cxx_std_23) set_target_properties(unittests PROPERTIES From a62c354a6a0cc1f89b590ac81fb7be5d7492cd30 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 20 Apr 2026 01:35:56 +0300 Subject: [PATCH 007/120] Impl Memo population --- include/stewkk/sql/logic/optimizer/memo.hpp | 3 +- src/stewkk/sql/logic/optimizer/memo.cpp | 34 ++++++++++++++++--- src/stewkk/sql/logic/optimizer/memo_test.cpp | 22 ++++++++++-- src/stewkk/sql/logic/optimizer/rule_test.cpp | 18 +++++----- .../logic/optimizer/rules_applier_test.cpp | 6 ++-- .../join_associativity.cpp | 2 +- 6 files changed, 64 insertions(+), 21 deletions(-) diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index dd01cce..e188f26 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -12,7 +12,8 @@ namespace stewkk::sql { class Memo { public: size_t GroupCount() const; - utils::NotNull AddGroup(LogicalOperator root_operator); + utils::NotNull AddGroup(LogicalOperator root_operator); + utils::NotNull Populate(const Operator& op); private: std::vector> groups_; diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 40a3c3d..687e866 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -36,16 +36,42 @@ size_t Memo::GroupCount() const { return groups_.size(); } -utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { +utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { auto key = ToKey(root_operator); auto it = expr_index_.find(key); if (it != expr_index_.end()) { - return it->second; + return it->second->GetLogicalExprs()[0].get(); } auto& ptr = groups_.emplace_back(new Group(groups_.size())); - ptr->AddLogicalExpr(std::move(root_operator)); + auto expr = ptr->AddLogicalExpr(std::move(root_operator)); expr_index_[key] = ptr.get(); - return ptr.get(); + return expr; +} + +utils::NotNull Memo::Populate(const Operator& op) { + return std::visit(utils::Overloaded{ + [this](const Table& t) { + return AddGroup(logical::Table{t.name}); + }, + [this](const Filter& f) { + auto source = Populate(*f.source); + return AddGroup(logical::Filter{source->group, f.expr}); + }, + [this](const Projection& p) { + auto source = Populate(*p.source); + return AddGroup(logical::Projection{source->group, p.expressions}); + }, + [this](const CrossJoin& j) { + auto lhs = Populate(*j.lhs); + auto rhs = Populate(*j.rhs); + return AddGroup(logical::CrossJoin{lhs->group, rhs->group}); + }, + [this](const Join& j) { + auto lhs = Populate(*j.lhs); + auto rhs = Populate(*j.rhs); + return AddGroup(logical::Join{lhs->group, rhs->group, j.type, j.qual}); + }, + }, op); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/memo_test.cpp b/src/stewkk/sql/logic/optimizer/memo_test.cpp index 923eb5b..e5348c4 100644 --- a/src/stewkk/sql/logic/optimizer/memo_test.cpp +++ b/src/stewkk/sql/logic/optimizer/memo_test.cpp @@ -1,6 +1,9 @@ #include +#include + #include +#include namespace stewkk::sql { @@ -8,10 +11,10 @@ TEST(MemoTest, AddGroup) { Memo memo; EXPECT_EQ(memo.GroupCount(), 0); - auto group = memo.AddGroup(logical::Table{"t"}); + auto expr = memo.AddGroup(logical::Table{"t"}); EXPECT_EQ(memo.GroupCount(), 1); - auto exprs = group->GetLogicalExprs(); + auto exprs = expr->group->GetLogicalExprs(); ASSERT_EQ(exprs.size(), 1); EXPECT_TRUE(std::holds_alternative(exprs[0]->root_operator)); EXPECT_EQ(std::get(exprs[0]->root_operator).name, "t"); @@ -22,8 +25,21 @@ TEST(MemoTest, AddSameGroupSecondReturnsIt) { auto first = memo.AddGroup(logical::Table{"t"}); auto second = memo.AddGroup(logical::Table{"t"}); - EXPECT_EQ(first, second); + EXPECT_EQ(first->group, second->group); EXPECT_EQ(memo.GroupCount(), 1); } +TEST(MemoTest, PopulateWithWholeQuery) { + std::stringstream s{"SELECT * FROM users, orders;"}; + Operator op = GetAST(s).value(); + Memo memo; + + auto root = memo.Populate(op); + + ASSERT_EQ(memo.GroupCount(), 3); + const auto& cross_join = std::get(root->root_operator); + EXPECT_EQ(std::get(cross_join.lhs->GetLogicalExprs()[0]->root_operator).name, "users"); + EXPECT_EQ(std::get(cross_join.rhs->GetLogicalExprs()[0]->root_operator).name, "orders"); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index 0699ab9..700b8cc 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -10,8 +10,8 @@ namespace stewkk::sql { class JoinCommutativityTest : public ::testing::Test { protected: void SetUp() override { - a = memo.AddGroup(logical::Table{"a"}); - b = memo.AddGroup(logical::Table{"b"}); + a = memo.AddGroup(logical::Table{"a"})->group; + b = memo.AddGroup(logical::Table{"b"})->group; } Memo memo; @@ -21,7 +21,7 @@ class JoinCommutativityTest : public ::testing::Test { }; TEST_F(JoinCommutativityTest, ReturnsSwappedJoin) { - auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; auto* expr = join_group->GetLogicalExprs()[0].get(); auto result = rule.Apply(expr, memo); @@ -32,7 +32,7 @@ TEST_F(JoinCommutativityTest, ReturnsSwappedJoin) { } TEST_F(JoinCommutativityTest, AddsNewJoinIntoGroup) { - auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; auto* expr = join_group->GetLogicalExprs()[0].get(); rule.Apply(expr, memo); @@ -46,11 +46,11 @@ TEST_F(JoinCommutativityTest, AddsNewJoinIntoGroup) { class JoinAssociativityTest : public ::testing::Test { protected: void SetUp() override { - a = memo.AddGroup(logical::Table{"a"}); - b = memo.AddGroup(logical::Table{"b"}); - c = memo.AddGroup(logical::Table{"c"}); - ab = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); - abc = memo.AddGroup(logical::Join{ab, c, JoinType::kInner, Literal::kFalse}); + a = memo.AddGroup(logical::Table{"a"})->group; + b = memo.AddGroup(logical::Table{"b"})->group; + c = memo.AddGroup(logical::Table{"c"})->group; + ab = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; + abc = memo.AddGroup(logical::Join{ab, c, JoinType::kInner, Literal::kFalse})->group; } Memo memo; diff --git a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp index 9023624..7ec6be9 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp @@ -6,9 +6,9 @@ namespace stewkk::sql { TEST(RulesApplierTest, ChecksThatRuleAlreadyApplied) { Memo memo; - auto a = memo.AddGroup(logical::Table{"a"}); - auto b = memo.AddGroup(logical::Table{"b"}); - auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue}); + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; auto* expr = join_group->GetLogicalExprs()[0].get(); RulesApplier applier(MakeMainRules()); diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index 0544238..d6cf49c 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -24,7 +24,7 @@ LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, BinaryOp::kAnd, std::make_shared(outer.qual), }}; - auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue}); + auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue})->group; // FIXME: should return more than one operators!!! return logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}; } From c1657a75fa7203ab47726f912456036d2031ad3d Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 20 Apr 2026 02:19:53 +0300 Subject: [PATCH 008/120] Impl implementation rules handling in RulesApplier --- include/stewkk/sql/logic/optimizer/group.hpp | 1 - include/stewkk/sql/logic/optimizer/rule.hpp | 2 + .../sql/logic/optimizer/rules_applier.hpp | 28 +- src/stewkk/sql/CMakeLists.txt | 1 + .../sql/logic/optimizer/optimizer_test.cpp | 345 ++++++++---------- .../sql/logic/optimizer/rules_applier.cpp | 33 ++ .../logic/optimizer/rules_applier_test.cpp | 6 +- 7 files changed, 209 insertions(+), 207 deletions(-) create mode 100644 src/stewkk/sql/logic/optimizer/rules_applier.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index 78d06e7..d5c6b7a 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -10,7 +10,6 @@ namespace stewkk::sql { using LogicalOperator = decltype(LogicalExpr::root_operator); -using RuleId = size_t; class Group { public: diff --git a/include/stewkk/sql/logic/optimizer/rule.hpp b/include/stewkk/sql/logic/optimizer/rule.hpp index 3960ecb..a764cce 100644 --- a/include/stewkk/sql/logic/optimizer/rule.hpp +++ b/include/stewkk/sql/logic/optimizer/rule.hpp @@ -1,5 +1,7 @@ #pragma once +#include + #include #include #include diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp index b6ff5e3..b57b4d2 100644 --- a/include/stewkk/sql/logic/optimizer/rules_applier.hpp +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -8,21 +8,25 @@ namespace stewkk::sql { + +struct TransformationRuleId { + size_t value; +}; + +struct ImplementationRuleId { + size_t value; +}; + template class RulesApplier { public: - explicit RulesApplier(Rules rules) - : rules_(std::move(rules)) {} - - bool IsApplicable(RuleId rule, utils::NotNull expr) { - return !applied_transformation_rules_[expr.get()][rule] && - rules_.transformation_rules[rule]->IsApplicable(expr); - } - - utils::NotNull Apply(RuleId rule, utils::NotNull expr, Memo& memo) { - applied_transformation_rules_[expr.get()][rule] = 1; - return rules_.transformation_rules[rule]->Apply(expr, memo); - } + explicit RulesApplier(Rules rules); + + bool IsApplicable(TransformationRuleId rule, utils::NotNull expr); + utils::NotNull Apply(TransformationRuleId rule, utils::NotNull expr, Memo& memo); + + bool IsApplicable(ImplementationRuleId rule, utils::NotNull expr); + utils::NotNull Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo); private: Rules rules_; diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 0190406..5cbde49 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -27,6 +27,7 @@ add_library(libsql logic/optimizer/group.cpp logic/optimizer/memo.cpp logic/optimizer/rules.cpp + logic/optimizer/rules_applier.cpp logic/optimizer/rule.cpp logic/transformation_rules/join_commutativity.cpp logic/transformation_rules/join_associativity.cpp diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index bd84ccd..ec4a896 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -10,202 +10,161 @@ #include #include #include +#include +#include +#include using ::testing::Eq; namespace stewkk::sql { - -// GroupKey AddGroup(const LogicalExpr& expr, const Rules& rules) { -// return std::visit(Overloaded{ -// [this, &rules](const logical::Table& t) { -// auto key = std::format("Table({})", t.name); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(t, rules, key))); -// return key; -// }, -// [this, &rules](const logical::Filter& f) { -// auto key = std::format("Filter({}, {})", f.source, ToString(f.predicate)); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(f, rules, key))); -// return key; -// }, -// [this, &rules](const logical::Projection& p) { -// auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); -// auto key = std::format("Projection({}, {})", p.source, exprs); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(p, rules, key))); -// return key; -// }, -// [this, &rules](const logical::CrossJoin& j) { -// auto key = std::format("CrossJoin({}, {})", j.lhs, j.rhs); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); -// return key; -// }, -// [this, &rules](const logical::Join& j) { -// auto key = std::format("Join({}, {}, {}, {})", j.lhs, j.rhs, ToString(j.type), ToString(j.qual)); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(j, rules, key))); -// return key; -// }, -// }, expr); -// } -// private: - -// GroupKey AddGroup(const Operator& expr, const Rules& rules) { -// return std::visit(Overloaded{ -// [this, &rules](const Table& t) { -// auto key = std::format("Table({})", t.name); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Table(t), rules, key))); -// return key; -// }, -// [this, &rules](const Filter& f) { -// auto source_group = AddGroup(*f.source, rules); -// auto key = std::format("Filter({}, {})", source_group, ToString(f.expr)); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Filter(source_group, f.expr), rules, key))); -// return key; -// }, -// [this, &rules](const Projection& p) { -// auto source_group = AddGroup(*p.source, rules); -// auto exprs = p.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(',') | std::ranges::to(); -// auto key = std::format("Projection({}, {})", source_group, exprs); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Projection(source_group, p.expressions), rules, key))); -// return key; -// }, -// [this, &rules](const CrossJoin& j) { -// auto lhs_group = AddGroup(*j.lhs, rules); -// auto rhs_group = AddGroup(*j.rhs, rules); -// auto key = std::format("CrossJoin({}, {})", lhs_group, rhs_group); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::CrossJoin(lhs_group, rhs_group), rules, key))); -// return key; -// }, -// [this, &rules](const Join& j) { -// auto lhs_group = AddGroup(*j.lhs, rules); -// auto rhs_group = AddGroup(*j.rhs, rules); -// auto key = std::format("Join({}, {}, {}, {})", lhs_group, rhs_group, ToString(j.type), ToString(j.qual)); -// mapping_.emplace(key, Group(key, ExpressionRulesApplier(logical::Join(lhs_group, rhs_group, j.type, j.qual), rules, key))); -// return key; -// }, -// }, expr); -// } - -// class Optimizer { -// public: - -// explicit Optimizer(const Operator& expr, const Rules& rules) : memo_(expr, rules), rules_count_(rules.Count()) {} - -// bool IsExplored(const Group& group) const { -// return explored_groups_.contains(group.GetKey()); -// } - -// void SetExplored(const Group& group) { -// explored_groups_.insert(group.GetKey()); -// } - -// void OptimizeInputs(const ExpressionRulesApplier& expr) { -// } - -// void ApplyRule(ExpressionRulesApplier& expr, RuleNumber rule) { -// auto new_expr = expr.ApplyRule(rule, memo_); -// auto group = memo_.GetGroup(new_expr.GetGroup()); -// auto new_expr_ref = group.AddExpression(std::move(new_expr)); -// if (new_expr.IsTransformationRule(rule)) { -// tasks_.emplace([this, &new_expr_ref]() { ExploreExpression(new_expr_ref); }); -// } else { -// tasks_.emplace([this, &new_expr_ref]() { OptimizeInputs(new_expr_ref); }); -// } -// } - -// void OptimizeExpression(ExpressionRulesApplier& expr) { -// for (RuleNumber rule = 0; rule < rules_count_; rule++) { -// if (!expr.IsApplicable(rule, memo_)) { -// continue; -// } -// tasks_.emplace([this, &expr, rule]() { -// ApplyRule(expr, rule); -// }); -// } - -// for (auto child : expr.GetChildren()) { -// auto& group = memo_.GetGroup(child); -// if (IsExplored(group)) { -// continue; -// } -// tasks_.emplace([this, &group]() { -// ExploreGroup(group); -// }); -// } -// } - -// void ExploreExpression(ExpressionRulesApplier& expr) { -// for (RuleNumber rule = 0; rule < rules_count_; rule++) { -// bool transformation_rules_only = true; -// if (!expr.IsApplicable(rule, memo_, transformation_rules_only)) { -// continue; -// } -// tasks_.emplace([this, &expr, rule]() { -// ApplyRule(expr, rule); -// }); -// } - -// for (auto child : expr.GetChildren()) { -// auto& group = memo_.GetGroup(child); -// if (IsExplored(group)) { -// continue; -// } -// tasks_.emplace([this, &group]() { -// ExploreGroup(group); -// }); -// } -// } - -// void ExploreGroup(Group& group) { -// SetExplored(group); -// for (auto& expr : group.GetExpressions()) { -// tasks_.emplace([this, &expr]() { -// ExploreExpression(expr); -// }); -// } -// } - -// void OptimizeGroup(Group& group) { -// if (!IsExplored(group)) { -// tasks_.emplace([this, &group](){ -// OptimizeGroup(group); -// }); -// tasks_.emplace([this, &group](){ -// ExploreGroup(group); -// }); -// return; -// } - -// for (auto& expr : group.GetExpressions()) { -// tasks_.emplace([this, &expr](){ -// OptimizeExpression(expr); -// }); -// } -// } - -// Operator Optimize() { -// tasks_.emplace([this]() { -// OptimizeGroup(memo_.GetRoot()); -// }); -// while (!tasks_.empty()) { -// auto next_task = std::move(tasks_.top()); -// tasks_.pop(); -// next_task(); -// } -// return Table{"A"}; -// } - -// private: -// Memo memo_; -// std::stack> tasks_; -// std::unordered_set explored_groups_; -// const size_t rules_count_; -// }; - -// TEST(OptimizerTest, Simple) { -// std::stringstream s{"SELECT * FROM users;"}; -// Operator op = GetAST(s).value(); -// Optimizer optimizer(op, Rules{{}}); - -// auto got = optimizer.Optimize(); -// } + +// FIXME: проверить, не возникает ли висячих ссылок нигде? + +std::vector> GetChildren(utils::NotNull expr) { + return std::visit(utils::Overloaded{ + [](const logical::Table&) -> std::vector> { + return {}; + }, + [](const logical::Filter& f) -> std::vector> { + return {f.source}; + }, + [](const logical::Projection& p) -> std::vector> { + return {p.source}; + }, + [](const logical::CrossJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + [](const logical::Join& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + }, expr->root_operator); +} + +template +class Optimizer { + public: + Optimizer(const Operator& expr, Rules&& rules) + : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)) { + } + +private: + bool IsExplored(utils::NotNull group) const { + return explored_groups_.contains(group.get()); + } + + void SetExplored(utils::NotNull group) { + explored_groups_.insert(group); + } + + void OptimizeInputs() { + } + + // void ApplyRule(ExpressionRulesApplier& expr, RuleNumber rule) { + // auto new_expr = expr.ApplyRule(rule, memo_); + // auto group = memo_.GetGroup(new_expr.GetGroup()); + // auto new_expr_ref = group.AddExpression(std::move(new_expr)); + // if (new_expr.IsTransformationRule(rule)) { + // tasks_.emplace([this, &new_expr_ref]() { ExploreExpression(new_expr_ref); }); + // } else { + // tasks_.emplace(root->root_operator[this, &new_expr_ref]() { + // OptimizeInputs(new_expr_ref); }); + // } + // } + + void OptimizeExpression(utils::NotNull expr) { + for (size_t rule = 0; rule < NImplementation; rule++) { + if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { + continue; + } + tasks_.emplace([this, expr, rule]() { + rules_applier_.Apply(ImplementationRuleId{rule}, expr, memo_); + }); + } + + for (auto child : GetChildren(expr)) { + if (IsExplored(child)) { + continue; + } + tasks_.emplace([this, child]() { + ExploreGroup(child); + }); + } + } + + void ExploreExpression(utils::NotNull expr) { + for (size_t rule = 0; rule < NTransformation; rule++) { + if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { + continue; + } + tasks_.emplace([this, expr, rule]() { + rules_applier_.Apply(TransformationRuleId{rule}, expr, memo_); + }); + } + + for (auto child : GetChildren(expr)) { + if (IsExplored(child)) { + continue; + } + tasks_.emplace([this, child]() { + ExploreGroup(child); + }); + } + } + + void ExploreGroup(utils::NotNull group) { + SetExplored(group); + for (auto& expr : group->GetLogicalExprs()) { + tasks_.emplace([this, expr = expr.get()]() { + ExploreExpression(expr); + }); + } + } + + void OptimizeGroup(utils::NotNull group) { + if (!IsExplored(group)) { + tasks_.emplace([this, group](){ + OptimizeGroup(group); + }); + tasks_.emplace([this, group](){ + ExploreGroup(group); + }); + return; + } + + for (auto& expr : group->GetLogicalExprs()) { + tasks_.emplace([this, expr = expr.get()](){ + OptimizeExpression(expr); + }); + } + } + + public: + Operator Optimize() { + tasks_.emplace([this]() { + OptimizeGroup(root_->group); + }); + while (!tasks_.empty()) { + auto next_task = std::move(tasks_.top()); + tasks_.pop(); + next_task(); + } + return Table{"A"}; + } + + private: + Memo memo_; + RulesApplier rules_applier_; + std::stack> tasks_; + std::unordered_set explored_groups_; + utils::NotNull root_; +}; + +TEST(OptimizerTest, Simple) { + std::stringstream s{"SELECT * FROM users;"}; + Operator op = GetAST(s).value(); + Optimizer optimizer(op, MakeMainRules()); + + auto got = optimizer.Optimize(); +} } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp new file mode 100644 index 0000000..3a43141 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -0,0 +1,33 @@ +#include + +namespace stewkk::sql { + +template +RulesApplier::RulesApplier(Rules rules) + : rules_(std::move(rules)) {} + +template +bool RulesApplier::IsApplicable(TransformationRuleId rule, utils::NotNull expr) { + return !applied_transformation_rules_[expr.get()][rule.value] && + rules_.transformation_rules[rule.value]->IsApplicable(expr); +} + +template +utils::NotNull RulesApplier::Apply(TransformationRuleId rule, utils::NotNull expr, Memo& memo) { + applied_transformation_rules_[expr.get()][rule.value] = 1; + return rules_.transformation_rules[rule.value]->Apply(expr, memo); +} + +template +bool RulesApplier::IsApplicable(ImplementationRuleId rule, utils::NotNull expr) { + return rules_.implementation_rules[rule.value]->IsApplicable(expr); +} + +template +utils::NotNull RulesApplier::Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo) { + return rules_.implementation_rules[rule.value]->Apply(expr, memo); +} + +template class RulesApplier<2, 0>; + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp index 7ec6be9..6be13d4 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp @@ -12,11 +12,15 @@ TEST(RulesApplierTest, ChecksThatRuleAlreadyApplied) { auto* expr = join_group->GetLogicalExprs()[0].get(); RulesApplier applier(MakeMainRules()); - constexpr RuleId kJoinCommutativity = 0; + constexpr TransformationRuleId kJoinCommutativity{0}; EXPECT_TRUE(applier.IsApplicable(kJoinCommutativity, expr)); applier.Apply(kJoinCommutativity, expr, memo); EXPECT_FALSE(applier.IsApplicable(kJoinCommutativity, expr)); } +TEST(RulesApplierTest, ApplyImplementationRule) { + // FIXME +} + } // namespace stewkk::sql From 20286694ea11ff185da807806e285e19bfc7a1dc Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 20 Apr 2026 13:33:39 +0300 Subject: [PATCH 009/120] Refactor --- include/stewkk/sql/logic/optimizer/group.hpp | 23 ++++---- include/stewkk/sql/logic/optimizer/memo.hpp | 7 ++- src/stewkk/sql/logic/optimizer/group.cpp | 14 ++--- src/stewkk/sql/logic/optimizer/memo.cpp | 16 +++--- .../sql/logic/optimizer/optimizer_test.cpp | 53 ++++++++++++------- src/stewkk/sql/logic/optimizer/rule_test.cpp | 12 ++--- .../logic/optimizer/rules_applier_test.cpp | 2 +- .../join_associativity.cpp | 4 +- 8 files changed, 74 insertions(+), 57 deletions(-) diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index d5c6b7a..e269a15 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -1,8 +1,7 @@ #pragma once -#include -#include -#include +#include +#include #include #include @@ -12,23 +11,29 @@ namespace stewkk::sql { using LogicalOperator = decltype(LogicalExpr::root_operator); class Group { + private: + struct ToNotNull { + utils::NotNull operator()(LogicalExpr& e) const { return &e; } + }; + public: - using LogicalExprPtr = std::unique_ptr; - using PhysicalExprPtr = std::unique_ptr; + using LogicalExprs = std::ranges::transform_view< + std::ranges::ref_view>, + ToNotNull>; utils::NotNull AddLogicalExpr(LogicalOperator root_operator); utils::NotNull AddPhysicalExpr(); - std::span GetLogicalExprs() const; + LogicalExprs GetLogicalExprs(); - size_t id() const; + size_t GetId() const; private: friend class Memo; explicit Group(size_t id) : id_(id) {} size_t id_; - std::vector logical_exprs_; - std::vector physical_exprs_; + std::deque logical_exprs_; + std::deque physical_exprs_; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index e188f26..6e41920 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -1,7 +1,6 @@ #pragma once -#include -#include +#include #include #include @@ -16,8 +15,8 @@ class Memo { utils::NotNull Populate(const Operator& op); private: - std::vector> groups_; - std::unordered_map expr_index_; + std::deque groups_; + std::unordered_map expr_index_; }; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp index 6395d92..9a7478a 100644 --- a/src/stewkk/sql/logic/optimizer/group.cpp +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -3,22 +3,18 @@ namespace stewkk::sql { utils::NotNull Group::AddLogicalExpr(LogicalOperator root_operator) { - auto& ptr = logical_exprs_.emplace_back( - std::make_unique(std::move(root_operator), this)); - return ptr.get(); + return &logical_exprs_.emplace_back(std::move(root_operator), this); } utils::NotNull Group::AddPhysicalExpr() { - auto& ptr = physical_exprs_.emplace_back( - std::make_unique(this)); - return ptr.get(); + return &physical_exprs_.emplace_back(this); } -std::span Group::GetLogicalExprs() const { - return logical_exprs_; +Group::LogicalExprs Group::GetLogicalExprs() { + return std::views::transform(logical_exprs_, ToNotNull{}); } -size_t Group::id() const { +size_t Group::GetId() const { return id_; } diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 687e866..89e48c5 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -11,21 +11,21 @@ std::string ToKey(const LogicalOperator& op) { return "Table(" + t.name + ")"; }, [](const logical::Filter& f) { - return "Filter(" + ToString(f.predicate) + "," + std::to_string(f.source->id()) + ")"; + return "Filter(" + ToString(f.predicate) + "," + std::to_string(f.source->GetId()) + ")"; }, [](const logical::Projection& p) { std::string exprs; for (const auto& e : p.expressions) { exprs += ToString(e) + ","; } - return "Projection(" + exprs + std::to_string(p.source->id()) + ")"; + return "Projection(" + exprs + std::to_string(p.source->GetId()) + ")"; }, [](const logical::CrossJoin& j) { - return "CrossJoin(" + std::to_string(j.lhs->id()) + "," + std::to_string(j.rhs->id()) + ")"; + return "CrossJoin(" + std::to_string(j.lhs->GetId()) + "," + std::to_string(j.rhs->GetId()) + ")"; }, [](const logical::Join& j) { return "Join(" + ToString(j.type) + "," + ToString(j.qual) + "," + - std::to_string(j.lhs->id()) + "," + std::to_string(j.rhs->id()) + ")"; + std::to_string(j.lhs->GetId()) + "," + std::to_string(j.rhs->GetId()) + ")"; }, }, op); } @@ -40,11 +40,11 @@ utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { auto key = ToKey(root_operator); auto it = expr_index_.find(key); if (it != expr_index_.end()) { - return it->second->GetLogicalExprs()[0].get(); + return it->second; } - auto& ptr = groups_.emplace_back(new Group(groups_.size())); - auto expr = ptr->AddLogicalExpr(std::move(root_operator)); - expr_index_[key] = ptr.get(); + auto& group = groups_.emplace_back(Group(groups_.size())); + auto expr = group.AddLogicalExpr(std::move(root_operator)); + expr_index_[key] = expr; return expr; } diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index ec4a896..0cdc198 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -19,6 +19,9 @@ using ::testing::Eq; namespace stewkk::sql { // FIXME: проверить, не возникает ли висячих ссылок нигде? +// FIXME: branch and bound +// FIXME: физические операторы! +// FIXME: сделать API в виде DoStep(), которое возвращает какой-то внутренний стейт оптимизатора std::vector> GetChildren(utils::NotNull expr) { return std::visit(utils::Overloaded{ @@ -40,6 +43,10 @@ std::vector> GetChildren(utils::NotNull exp }, expr->root_operator); } +std::vector> GetChildren(utils::NotNull expr) { + return {}; +} + template class Optimizer { public: @@ -56,20 +63,30 @@ class Optimizer { explored_groups_.insert(group); } - void OptimizeInputs() { + void OptimizeInputs(utils::NotNull expr, size_t child_index = 0) { + auto children = GetChildren(expr); + if (child_index >= children.size()) { + // FIXME: update best plan + return; + } + tasks_.emplace([this, expr, child_index]() { + OptimizeInputs(expr, child_index+1); + }); + tasks_.emplace([this, expr]() { + OptimizeGroup(expr->group); + }); + } + + void ApplyRule(TransformationRuleId rule, utils::NotNull expr) { + auto new_expr = rules_applier_.Apply(rule, expr, memo_); + tasks_.emplace([this, new_expr]() { ExploreExpression(new_expr); }); } - // void ApplyRule(ExpressionRulesApplier& expr, RuleNumber rule) { - // auto new_expr = expr.ApplyRule(rule, memo_); - // auto group = memo_.GetGroup(new_expr.GetGroup()); - // auto new_expr_ref = group.AddExpression(std::move(new_expr)); - // if (new_expr.IsTransformationRule(rule)) { - // tasks_.emplace([this, &new_expr_ref]() { ExploreExpression(new_expr_ref); }); - // } else { - // tasks_.emplace(root->root_operator[this, &new_expr_ref]() { - // OptimizeInputs(new_expr_ref); }); - // } - // } + void ApplyRule(ImplementationRuleId rule, utils::NotNull expr) { + auto new_expr = rules_applier_.Apply(rule, expr, memo_); + tasks_.emplace( + [this, new_expr]() { OptimizeInputs(new_expr); }); + } void OptimizeExpression(utils::NotNull expr) { for (size_t rule = 0; rule < NImplementation; rule++) { @@ -77,7 +94,7 @@ class Optimizer { continue; } tasks_.emplace([this, expr, rule]() { - rules_applier_.Apply(ImplementationRuleId{rule}, expr, memo_); + ApplyRule(ImplementationRuleId{rule}, expr); }); } @@ -97,7 +114,7 @@ class Optimizer { continue; } tasks_.emplace([this, expr, rule]() { - rules_applier_.Apply(TransformationRuleId{rule}, expr, memo_); + ApplyRule(TransformationRuleId{rule}, expr); }); } @@ -113,8 +130,8 @@ class Optimizer { void ExploreGroup(utils::NotNull group) { SetExplored(group); - for (auto& expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr = expr.get()]() { + for (auto expr : group->GetLogicalExprs()) { + tasks_.emplace([this, expr]() { ExploreExpression(expr); }); } @@ -131,8 +148,8 @@ class Optimizer { return; } - for (auto& expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr = expr.get()](){ + for (auto expr : group->GetLogicalExprs()) { + tasks_.emplace([this, expr](){ OptimizeExpression(expr); }); } diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index 700b8cc..572e4bb 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -22,7 +22,7 @@ class JoinCommutativityTest : public ::testing::Test { TEST_F(JoinCommutativityTest, ReturnsSwappedJoin) { auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; - auto* expr = join_group->GetLogicalExprs()[0].get(); + auto expr = join_group->GetLogicalExprs()[0]; auto result = rule.Apply(expr, memo); @@ -33,12 +33,12 @@ TEST_F(JoinCommutativityTest, ReturnsSwappedJoin) { TEST_F(JoinCommutativityTest, AddsNewJoinIntoGroup) { auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; - auto* expr = join_group->GetLogicalExprs()[0].get(); + auto expr = join_group->GetLogicalExprs()[0]; rule.Apply(expr, memo); EXPECT_EQ(join_group->GetLogicalExprs().size(), 2u); - const auto& new_join = std::get(join_group->GetLogicalExprs()[1].get()->root_operator); + const auto& new_join = std::get(join_group->GetLogicalExprs()[1]->root_operator); EXPECT_EQ(new_join.lhs.get(), b); EXPECT_EQ(new_join.rhs.get(), a); } @@ -63,18 +63,18 @@ class JoinAssociativityTest : public ::testing::Test { }; TEST_F(JoinAssociativityTest, CreatesNewGroup) { - rule.Apply(abc->GetLogicalExprs()[0].get(), memo); + rule.Apply(abc->GetLogicalExprs()[0], memo); EXPECT_EQ(memo.GroupCount(), 6u); } TEST_F(JoinAssociativityTest, ReturnsCorrectExpression) { - auto result = rule.Apply(abc->GetLogicalExprs()[0].get(), memo); + auto result = rule.Apply(abc->GetLogicalExprs()[0], memo); const auto& outer = std::get(result->root_operator); EXPECT_EQ(outer.lhs.get(), a); EXPECT_EQ(outer.type, JoinType::kInner); - const auto& inner = std::get(outer.rhs->GetLogicalExprs()[0].get()->root_operator); + const auto& inner = std::get(outer.rhs->GetLogicalExprs()[0]->root_operator); EXPECT_EQ(inner.lhs.get(), b); EXPECT_EQ(inner.rhs.get(), c); EXPECT_EQ(inner.qual, Expression{Literal::kTrue}); diff --git a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp index 6be13d4..d49d40e 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp @@ -9,7 +9,7 @@ TEST(RulesApplierTest, ChecksThatRuleAlreadyApplied) { auto a = memo.AddGroup(logical::Table{"a"})->group; auto b = memo.AddGroup(logical::Table{"b"})->group; auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; - auto* expr = join_group->GetLogicalExprs()[0].get(); + auto expr = join_group->GetLogicalExprs()[0]; RulesApplier applier(MakeMainRules()); constexpr TransformationRuleId kJoinCommutativity{0}; diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index d6cf49c..915ad0f 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -7,7 +7,7 @@ namespace stewkk::sql { bool JoinAssociativity::IsApplicable(utils::NotNull expr) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& outer = std::get(expr->root_operator); - for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { + for (auto inner_expr : outer.lhs->GetLogicalExprs()) { if (std::holds_alternative(inner_expr->root_operator)) return true; } return false; @@ -16,7 +16,7 @@ bool JoinAssociativity::IsApplicable(utils::NotNull expr) { // (A ⋈₁ B) ⋈₂ C → A ⋈₁∧₂ (B ⋈₂ C) LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, Memo& memo) { const auto& outer = std::get(expr->root_operator); - for (const auto& inner_expr : outer.lhs->GetLogicalExprs()) { + for (auto inner_expr : outer.lhs->GetLogicalExprs()) { if (!std::holds_alternative(inner_expr->root_operator)) continue; const auto& inner = std::get(inner_expr->root_operator); auto combined_qual = Expression{BinaryExpression{ From 6f6c19919107837c5b34ad57390e1a629a5d4b17 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 20 Apr 2026 23:04:41 +0300 Subject: [PATCH 010/120] Update flake --- flake.lock | 11 ++++++----- flake.nix | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index 1ff1a60..b75d055 100644 --- a/flake.lock +++ b/flake.lock @@ -36,15 +36,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1760027740, - "narHash": "sha256-53qTARbdnAAmHU29yOivHQCh4Ir1orhhOBtJdol23xk=", - "owner": "NixOS", + "lastModified": 1776548001, + "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "4b3a7fbda14c1310e607b79caefe103cbffb1fa9", + "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 0dae742..2d2563e 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "An example project using flutter"; inputs.nixpkgs = { - url = "github:NixOS/nixpkgs"; + url = "github:nixos/nixpkgs/nixos-unstable"; }; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.flake-compat = { @@ -22,6 +22,9 @@ ps.pip ps.virtualenv ps.pygments + ps.jupyter + ps.ipykernel + ps.notebook ]); tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full @@ -30,7 +33,16 @@ in { devShells.default = pkgs.mkShell.override {stdenv = pkgs.llvmPackages_21.stdenv;} { buildInputs = with pkgs; [ - code-cursor-fhs + (pkgs.vscode-with-extensions.override { + vscode = pkgs.vscode-fhs; + vscodeExtensions = with pkgs.vscode-extensions; [ + ms-python.python + ms-python.vscode-pylance + ms-toolsai.jupyter + anthropic.claude-code + ms-vscode.cpptools + ]; + }) pythonEnv antlr cmake @@ -44,6 +56,7 @@ inkscape llvmPackages_21.llvm llvmPackages_21.llvm.dev + nodejs_20 ]; nativeBuildInputs = [ @@ -74,6 +87,8 @@ pip install -r requirements.txt fi + python -m ipykernel install --user --name iu9-sql-compiler --display-name "Python (iu9-sql-compiler)" + python --version ''; }; From 8898de918927070fcf1a3d36c0cf9038eb87d051 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 22 Apr 2026 23:25:43 +0300 Subject: [PATCH 011/120] Add limit passing --- .../sql/logic/optimizer/optimizer_test.cpp | 62 ++++++++++--------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 0cdc198..48c0267 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -43,6 +43,8 @@ std::vector> GetChildren(utils::NotNull exp }, expr->root_operator); } +using Limit = std::optional; + std::vector> GetChildren(utils::NotNull expr) { return {}; } @@ -63,38 +65,40 @@ class Optimizer { explored_groups_.insert(group); } - void OptimizeInputs(utils::NotNull expr, size_t child_index = 0) { + void OptimizeInputs(utils::NotNull expr, Limit limit, size_t child_index = 0) { auto children = GetChildren(expr); if (child_index >= children.size()) { // FIXME: update best plan return; } - tasks_.emplace([this, expr, child_index]() { - OptimizeInputs(expr, child_index+1); + tasks_.emplace([this, expr, child_index, limit]() { + OptimizeInputs(expr, limit, child_index+1); }); - tasks_.emplace([this, expr]() { - OptimizeGroup(expr->group); + // FIXME: UpdateCostLimit + tasks_.emplace([this, expr, limit]() { + OptimizeGroup(expr->group, limit); }); } - void ApplyRule(TransformationRuleId rule, utils::NotNull expr) { + void ApplyRule(TransformationRuleId rule, utils::NotNull expr, Limit limit) { auto new_expr = rules_applier_.Apply(rule, expr, memo_); - tasks_.emplace([this, new_expr]() { ExploreExpression(new_expr); }); + tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); } - void ApplyRule(ImplementationRuleId rule, utils::NotNull expr) { + void ApplyRule(ImplementationRuleId rule, utils::NotNull expr, Limit limit) { auto new_expr = rules_applier_.Apply(rule, expr, memo_); + // FIXME: UpdateCostLimit! tasks_.emplace( - [this, new_expr]() { OptimizeInputs(new_expr); }); + [this, new_expr, limit]() { OptimizeInputs(new_expr, limit); }); } - void OptimizeExpression(utils::NotNull expr) { + void OptimizeExpression(utils::NotNull expr, Limit limit) { for (size_t rule = 0; rule < NImplementation; rule++) { if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { continue; } - tasks_.emplace([this, expr, rule]() { - ApplyRule(ImplementationRuleId{rule}, expr); + tasks_.emplace([this, expr, rule, limit]() { + ApplyRule(ImplementationRuleId{rule}, expr, limit); }); } @@ -102,19 +106,19 @@ class Optimizer { if (IsExplored(child)) { continue; } - tasks_.emplace([this, child]() { - ExploreGroup(child); + tasks_.emplace([this, child, limit]() { + ExploreGroup(child, limit); }); } } - void ExploreExpression(utils::NotNull expr) { + void ExploreExpression(utils::NotNull expr, Limit limit) { for (size_t rule = 0; rule < NTransformation; rule++) { if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { continue; } - tasks_.emplace([this, expr, rule]() { - ApplyRule(TransformationRuleId{rule}, expr); + tasks_.emplace([this, expr, rule, limit]() { + ApplyRule(TransformationRuleId{rule}, expr, limit); }); } @@ -122,35 +126,35 @@ class Optimizer { if (IsExplored(child)) { continue; } - tasks_.emplace([this, child]() { - ExploreGroup(child); + tasks_.emplace([this, child, limit]() { + ExploreGroup(child, limit); }); } } - void ExploreGroup(utils::NotNull group) { + void ExploreGroup(utils::NotNull group, Limit limit) { SetExplored(group); for (auto expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr]() { - ExploreExpression(expr); + tasks_.emplace([this, expr, limit]() { + ExploreExpression(expr, limit); }); } } - void OptimizeGroup(utils::NotNull group) { + void OptimizeGroup(utils::NotNull group, Limit limit=std::nullopt) { if (!IsExplored(group)) { - tasks_.emplace([this, group](){ - OptimizeGroup(group); + tasks_.emplace([this, group, limit](){ + OptimizeGroup(group, limit); }); - tasks_.emplace([this, group](){ - ExploreGroup(group); + tasks_.emplace([this, group, limit](){ + ExploreGroup(group, limit); }); return; } for (auto expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr](){ - OptimizeExpression(expr); + tasks_.emplace([this, expr, limit](){ + OptimizeExpression(expr, limit); }); } } From 3d998588932c63c92322fdea74dbc4953b28df1a Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Thu, 23 Apr 2026 22:57:00 +0300 Subject: [PATCH 012/120] Implement branch & bound --- .gitignore | 2 + .gitmodules | 6 + flake.nix | 2 + .../implement_cross_join.hpp | 13 + .../implementation_rules/implement_filter.hpp | 13 + .../implementation_rules/implement_join.hpp | 13 + .../implement_projection.hpp | 13 + .../implementation_rules/implement_table.hpp | 13 + include/stewkk/sql/logic/optimizer/group.hpp | 3 +- .../sql/logic/optimizer/physical_expr.hpp | 42 ++ include/stewkk/sql/logic/optimizer/rules.hpp | 7 +- research/datasets | 1 + research/docker-compose.yaml | 12 + research/extractor.py | 16 + research/imdb-sqlserver | 1 + research/ms-sql-rules-list.txt | 448 ++++++++++++++++++ research/ms_sql_server_extractor.py | 171 +++++++ research/research.ipynb | 101 ++++ research/show_rules.sql | 13 + research/tmp.py | 23 + src/stewkk/sql/CMakeLists.txt | 5 + .../implement_cross_join.cpp | 14 + .../implementation_rules/implement_filter.cpp | 14 + .../implementation_rules/implement_join.cpp | 15 + .../implement_projection.cpp | 14 + .../implementation_rules/implement_table.cpp | 14 + src/stewkk/sql/logic/optimizer/group.cpp | 4 +- .../sql/logic/optimizer/optimizer_test.cpp | 132 +++++- src/stewkk/sql/logic/optimizer/rules.cpp | 10 +- .../sql/logic/optimizer/rules_applier.cpp | 1 + 30 files changed, 1115 insertions(+), 21 deletions(-) create mode 100644 .gitmodules create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_filter.hpp create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_join.hpp create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_projection.hpp create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_table.hpp create mode 160000 research/datasets create mode 100644 research/docker-compose.yaml create mode 100644 research/extractor.py create mode 160000 research/imdb-sqlserver create mode 100644 research/ms-sql-rules-list.txt create mode 100644 research/ms_sql_server_extractor.py create mode 100644 research/research.ipynb create mode 100644 research/show_rules.sql create mode 100644 research/tmp.py create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_filter.cpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_join.cpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_projection.cpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_table.cpp diff --git a/.gitignore b/.gitignore index b5c418b..2ebf72d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ FlameGraph/ /perf.data.old **/.auctex-auto/ **/build/ +/.odbc/ +**/__pycache__ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..68eabaa --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "research/datasets"] + path = research/datasets + url = git@github.com:ronaldbradford/data.git +[submodule "research/imdb-sqlserver"] + path = research/imdb-sqlserver + url = git@github.com:sqlsunday/imdb-to-sqlserver.git diff --git a/flake.nix b/flake.nix index 2d2563e..da6ce7d 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ ps.jupyter ps.ipykernel ps.notebook + ps.pymssql ]); tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full @@ -41,6 +42,7 @@ ms-toolsai.jupyter anthropic.claude-code ms-vscode.cpptools + asvetliakov.vscode-neovim ]; }) pythonEnv diff --git a/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp new file mode 100644 index 0000000..fd0bd40 --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementCrossJoin : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp b/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp new file mode 100644 index 0000000..ff48d4a --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementFilter : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_join.hpp new file mode 100644 index 0000000..7838bef --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementJoin : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp b/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp new file mode 100644 index 0000000..f0c2716 --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementProjection : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_table.hpp b/include/stewkk/sql/logic/implementation_rules/implement_table.hpp new file mode 100644 index 0000000..1d554f9 --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_table.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementTable : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index e269a15..d66c54e 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -9,6 +9,7 @@ namespace stewkk::sql { using LogicalOperator = decltype(LogicalExpr::root_operator); +using PhysicalOperator = decltype(PhysicalExpr::root_operator); class Group { private: @@ -22,7 +23,7 @@ class Group { ToNotNull>; utils::NotNull AddLogicalExpr(LogicalOperator root_operator); - utils::NotNull AddPhysicalExpr(); + utils::NotNull AddPhysicalExpr(PhysicalOperator root_operator); LogicalExprs GetLogicalExprs(); size_t GetId() const; diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index bec27bf..7e4af52 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -1,6 +1,10 @@ #pragma once +#include +#include + #include +#include namespace stewkk::sql { @@ -8,9 +12,47 @@ struct Group; namespace physical { +struct SeqScan { + std::string table; + + bool operator==(const SeqScan&) const = default; +}; + +struct Projection { + utils::NotNull source; + std::vector expressions; + + bool operator==(const Projection&) const = default; +}; + +struct Filter { + utils::NotNull source; + Expression predicate; + + bool operator==(const Filter&) const = default; +}; + +struct NestedLoopJoin { + utils::NotNull lhs; + utils::NotNull rhs; + JoinType type; + Expression qual; + + bool operator==(const NestedLoopJoin&) const = default; +}; + +struct NestedLoopCrossJoin { + utils::NotNull lhs; + utils::NotNull rhs; + + bool operator==(const NestedLoopCrossJoin&) const = default; +}; + } // namespace physical struct PhysicalExpr { + std::variant root_operator; utils::NotNull group; }; diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index c0c7a7b..a4b3174 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -6,6 +6,11 @@ #include #include #include +#include +#include +#include +#include +#include namespace stewkk::sql { @@ -15,6 +20,6 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<2, 0> MakeMainRules(); +Rules<2, 5> MakeMainRules(); } // namespace stewkk::sql diff --git a/research/datasets b/research/datasets new file mode 160000 index 0000000..e761ca3 --- /dev/null +++ b/research/datasets @@ -0,0 +1 @@ +Subproject commit e761ca32458a9d6640e5127a6c23b2cfd8e46118 diff --git a/research/docker-compose.yaml b/research/docker-compose.yaml new file mode 100644 index 0000000..51933a8 --- /dev/null +++ b/research/docker-compose.yaml @@ -0,0 +1,12 @@ +services: + mssql: + image: mcr.microsoft.com/mssql/server:2025-latest + container_name: research-mssql + environment: + ACCEPT_EULA: "Y" + MSSQL_SA_PASSWORD: "Password123!" + MSSQL_PID: Developer + ports: + - "1433:1433" + volumes: + - ./datasets:/datasets:ro diff --git a/research/extractor.py b/research/extractor.py new file mode 100644 index 0000000..769d85c --- /dev/null +++ b/research/extractor.py @@ -0,0 +1,16 @@ +from abc import ABC, abstractmethod + + +class PlanExtractor(ABC): + def __init__(self, dataset: str): + self.dataset = dataset + self.load_dataset() + + @abstractmethod + def load_dataset(self) -> None: + pass + + @abstractmethod + def extract(self, request) -> str: + pass + diff --git a/research/imdb-sqlserver b/research/imdb-sqlserver new file mode 160000 index 0000000..876c8f4 --- /dev/null +++ b/research/imdb-sqlserver @@ -0,0 +1 @@ +Subproject commit 876c8f4a2261c1dac8edf90813ddeec88e15d7f8 diff --git a/research/ms-sql-rules-list.txt b/research/ms-sql-rules-list.txt new file mode 100644 index 0000000..348588b --- /dev/null +++ b/research/ms-sql-rules-list.txt @@ -0,0 +1,448 @@ +JNtoNL +LOJNtoNL +LSJNtoNL +LASJNtoNL +JNtoSM +FOJNtoSM +LOJNtoSM +ROJNtoSM +LSJNtoSM +RSJNtoSM +LASJNtoSM +RASJNtoSM +IdxJNtoSM +FOJnoneqToSM +JNtoHS +FOJNtoHS +LOJNtoHS +ROJNtoHS +LSJNtoHS +RSJNtoHS +LASJNtoHS +RASJNtoHS +IdxJNtoHS +PSJNtoHS +HJwBMtoHS +JoinCommute +JoinSwitch +JoinLinearize +JoinLeftAssociate +JoinRightAssociate +JoinExchange +ColocatedJoin +StarJoinToIdxStrategy +StarSelJoinToIdxStrategy +StarJoinToHashJoinsWithBitmap +StarSelJoinToHashJoinsWithBitmap +GbTopToGbAgg +GbTopAfterJoin +GenGbApplySimple +GenKeyBatch +GenGbApplyAgg +GbApplyAfterJoin +CommFOJN +CommLOJN +CommLSJN +CommLASJN +CommROJN +CommRSJN +CommRASJN +CommPSJN +JoinOJSwitch +OJJoinSwitch +SelOJJoinSwitch +OJOJSwitch +SelOJOJSwitch +ReorderLOJN +LSJNtoDistOnJN +LSJNtoJNonDist +SubLSJNtoJNonDist +LASJNtoLASJNonDist +LSJOnLclDist +LASJOnLclDist +LSJIsNullToDist +LASJIsNullToDist +FOJNtoLSJNandLASJN +DiscardLSJN +DiscardRSJN +PullJoinAboveLSJN +PullJoinAboveLASJN +PullJoinAboveApply +PullJoinAboveSelApply +JNtoJNSELNotNull +JNonPrjLeft +JNonPrjRight +RedundantLOJN +RedundantROJN +RedundantApplyOJ +SimplifyJoinWithCTG +JoinWithCTGToSel +ExpandDistinctGbAgg +ReduceGbAgg +GbAggWithNoReqdCol +NormalizeGbAgg +NormalizeTop +GbAggOnPrj +GbAggOnRestrRemap +SelOnGbAgg +SelOnSeqPrj +GbAggToPrj +GbAggSmpfyEmptyT +ReduceGbAggExpr +GbAggToStrm +GbAggToHS +GbAggToSort +GbAggToUde +GbAggAfterJoin +GbAggAfterJoinSel +GbAggAfterLOJ +GbAggBeforeJoin +GbAggUnderTopBeforeJoin +GbAggUnderTopJoinBeforeJoin +GbAggBeforeLOJ +ScalarGbAggToTop +GbAggToConstScanOrTop +GbAggJNtoLSJN +GbAggIFFPredicateUnderJoin +GenLGAgg +GenLGTop +ReduceForDistinctAggs +LocalAggBelowJoin +LocalAggBelowPrjJoin +LocalAggBelowLOJ +LocalAggBelowFOJ +PushLocalAgg +LocalAggBelowUniAll +GbAggBelowUniAll +JoinOnGbAgg +RmtEmptyVectorAgg +DiscardPrj +ReducePrjExpr +SelOnPrj +TOpOnPrj +PrjOnConstTbl +AddCompSca +AddCCPrjToGet +AddCCPrjToInsert +AddCCPrjToUpdate +AddCCPrjToDelete +SelPredNorm +JoinPredNorm +ImpliedPredInnerAndAllLeftJn +SimplifyMultiColumnJoinPred +EnforceSort +OrderByToNOP +SELonUNI +SELonUNIA +ReduceUnionCol +ReduceUnionAllCol +ReduceSwitchUnionCol +UNIAtoCON +SWUtoSWU +UNIAtoMERGE +UNItoDISonUNIA +UNItoMERGE +UNItoHASH +CollapseUNI +CollapseUNIA +JNonUNIA +LOJonUNIA +LSJonUNIA +LASJonUNIA +CorrelateJNonUNIA +JNonUNIAUNIA +LOJonUNIAUNIA +LSJonUNIAUNIA +LASJonUNIAUNIA +UNIAReorderInputs +SplitUniIntoDistCompat +SelOnRestrRemap +SELonJN +CleanupNaryJoin +SELonNaryJoin +SELonLOJ +SELonROJ +SELonSJ +SELonApply +SimplifyLOJN +SimplifyROJN +SimplifyFOJN +LOJToLASJ +ROJToLASJ +SelOnTFP +ApplyToNL +ApplyCnstToNL +RemoveSubqInSel +RemoveSubqInPrj +RemoveSubqInGbAgg +RemoveSubqInRollup +RemoveSubqInCube +RemoveSubqInJN +RemoveSubqInLOJN +RemoveSubqInLSJN +RemoveSubqInLASJN +RemoveSubqInFOJN +RemoveSubqInTop +RemoveSubqInSwitchUN +RemoveSubqInTFP +RemoveSubqInTVF +RemoveSubqInSTVF +FOJNtoUnionAll +ApplyHandler +SelApplyHandler +PrjApplyHandler +ApplyUAtoUniSJ +LSJNtoApply +LASJNtoApply +LOJNtoApply +JNtoApplySTVF +LOJPrjGetToApply +LOJSelPrjGetToApply +SplitLASJN +SplitApplyLASJN +LSJNtoAgg +LASJNtoAgg +PushApplyBelowJN +PullApplyOverJoin +PullSelApplyOverJoin +PullLSJOverJoin +PullLASJOverJoin +PullColumnRestrPrjOverJoin +PullColumnRestrPrjOverJoinSel +LASJDistincttoLASJ +LSJDistincttoLSJ +PushTFPBelowJoin +GetToScan +GetToAssert +SelectToFilter +ConstGetToConstScan +ImplRestrRemap +ProjectToComputeScalar +ReduceSequenceProjectExpr +ImplementSequenceProject +ImplementLocalSequenceProject +ImplementGlobalSequenceProject +SplitSequenceProject +EnforceBatch +EnforceRow +FetchToApply +SelToIdxStrategy +SelSTVFToSTVF +SelSeqPrjToTop +SelSeqPrjToAnyAgg +SelToTrivialFilter +GetToTrivialScan +SelPrjGetToTrivialScan +GetIdxToRng +GetToIdxScan +SelResToFilter +AppIdxToApp +SelIdxToRng +CrsFtchToUnionAll +JNtoIdxLookup +LeftSideJNtoIdxLookup +PSJNtoIdxLookup +WCJNonSELtoIdxLookup +PSJNonSELtoIdxLookup +SelToIndexOnTheFly +JoinToIndexOnTheFly +SelIterToIdxOnFly +JoinIterToIdxOnFly +SelOnFetch +JNFetchGetToApply +JNSelFetchGetToApply +RemoveViewAnchor +AnyOnEmptyTrivial +RmtUpdateOnEmpty +RmtDeleteOnEmpty +RmtInsertOnEmpty +SelectOnEmpty +GbAggOnEmpty +RollupOnEmpty +CubeOnEmpty +PrjOnEmpty +SpoolOnEmpty +UpdateOnEmpty +DeleteOnEmpty +InsertOnEmpty +ApplyOnEmpty +NaryJoinOnEmpty +IJOnEmpty +LSJOnEmpty +RSJOnEmpty +LASJOnEmpty +RASJOnEmpty +LOJOnEmpty +ROJOnEmpty +FOJOnEmpty +LASJOnEmptyRight +RASJOnEmptyLeft +LOJOnEmptyRight +ROJOnEmptyLeft +FOJOnOneEmpty +SELonTrue +TopOnEmpty +DiscardTop +EmptyIterator +SelToLSJ +SelToLASJ +SelInToJoinGb +ImplementFastFwd +ImplementFastFwdAsInsert +EnforceHPandAccCard +InsertSpoolForPlanForcing +BuildSpool +AddNOPToCSRootSpool +ScrollLockAsFetch +ScrollLockAsDynamic +SpoolGetToGet +UpdateToStreamUpdate +DeleteToStreamUpdate +InsertToStreamUpdate +PutToPhysicalPut +ExpandUpdateCons +ExpandDeleteCons +ExpandInsertCons +ExpandUpdateImplicitAssignments +ExpandInsertImplicitAssignments +ExpandInsertToPut +ExpandPtnViewIns +ExpandPtnViewUpd +ExpandPtnViewDel +AssertToStreamCheck +ExpandVerifyCnst +BuildSplit +BuildCollapse +BuildSequence +IndexCreate +IndexCreateOnPrj +SplitDictionaryBuild +ExpandInsteadOfTriggerIns +ExpandInsteadOfTriggerUpd +ExpandInsteadOfTriggerDel +ColocatedInsert +ResumableIndexBuild +MatchAggGraphOp +MatchJoin +MatchPrjJoin +MatchSelectGet +MatchPrjSelectGet +MatchGet +MatchPrjGet +MatchGbNAryJoin +MatchGbJoin +CubeSimpleAgg +RollupSimpleAgg +CubeToRollup +CubeNaive +CubeGbAgg +CubeNoGbAgg +ReduceRollupExpr +ReduceCubeExpr +RollupGbAgg +RollupToStrm +BuildTop +BuildGlobalTop +BuildLocalTop +TopRowcountGbPrj +BuildGbTop +BuildGbApply +BuildKeyBatchApply +BuildUde +BuildBsl +BuildTFP +IJtoIJSEL +LSJtoLSJSEL +RSJtoRSJSEL +LASJtoLASJSEL +RASJtoRASJSEL +LOJtoLOJSEL +ROJtoROJSEL +ApplyToSM +ApplyCnstToSM +PushImpliedIsNotNull +ExpandNAryJoinNoSnowflake +ExpandNAryJoinWithSnowflake +GatherDistrCompatJoins +ExpandNAryJoinToBatchSnowflake +ExpandPivot +ExpandUnpivot +ExpandPivotLOJ +SelOnPivot +SpoolOnIterator +IterateToDepthFirst +RecRefToConstTble +IteratorToAnchor +SelOnIterator +LogTVFToPhyTVF +LogSTVFToPhySTVF +STVFOrderCheck +JoinToStarJoin +JoinOnStarJoin +JoinOnSelStarJoin +GetToRmtScan +SpoolOverRmtScan +BuildRmtQuery +SpoolOverRmtQuery +LogRmtQToPhyRmtQ +RmtInsertToRmtModify +RmtUpdateToRmtModify +RmtDeleteToRmtModify +ParametrizeRmtUpdate +ParametrizeRmtUpdateNoPrj +ParametrizeRmtDelete +ParametrizeRmtDeleteNoPrj +GetIdxToRmtRange +SelIdxToRmtRange +FtchToRmtFtch +RemoteHint +JoinToApply +NAryJoinToApply +SplitSelects +CollapseSelects +TopOnRmtGet +TopOnRmtQuery +OffsetOnRmtGet +OffsetOnRmtQuery +SpatialIntersectFilterOverGridIndex +JoinExtToPrimaryFilter +JoinExtToPrimaryFilterOverSelect +SpatialJointoApply +SpatialNearestNeighbor +SelSTVFToIdxOnFly +SelSTVFToSTVFExp +NormalizeSequenceProject +BuildNOP +BuildExternalComputation +SpoolOverExtStrTable +RefIntegrityMaintainer +CollapseIdenticalScalarSubquery +GetToExtExtractScan +SelOnChoose +GraphIterateToDepthFirst +GraphIterateWithOneJoin +GenLGSequenceProject +LocalGlobalCube +SinglePassCube +SplitSemiApplyUnionAll +ExpCubeToRollup +PutSemijoinUnderGbApply +GraphIterateOnGraphIterator +GbAggSplitToRanges +SelOnGbAggSplitToRanges +BuildRemotePut +EnforceDistribution +ImplementDistribution +BuildDataExportPut +SelectToFilteredExternalGet +LogicalToPhysicalSort +RedundantCseSpool +SelOnPrjGet +JsonFilterToJsonIndex +SpoolDecorrelation +BuildANN +SimplifyApplyOJ +TightenRestrictsUnderChoose +ApplyOpenjsonToJsonIndex +ApplyOpenjsonFilterAboveToJsonIndex +BuildBitmapProcessor diff --git a/research/ms_sql_server_extractor.py b/research/ms_sql_server_extractor.py new file mode 100644 index 0000000..2889812 --- /dev/null +++ b/research/ms_sql_server_extractor.py @@ -0,0 +1,171 @@ +import re +from pathlib import Path + +import pymssql + +from extractor import PlanExtractor + +_SUBMODULE = Path(__file__).parent / "imdb-sqlserver" + +# (tsv filename, raw staging table, column count) +_RAW_FILES = [ + ("name.basics.tsv", "[Raw].[name.basics.tsv.gz]", 6), + ("title.basics.tsv", "[Raw].[title.basics.tsv.gz]", 9), + ("title.akas.tsv", "[Raw].[title.akas.tsv.gz]", 8), + ("title.crew.tsv", "[Raw].[title.crew.tsv.gz]", 3), + ("title.episode.tsv", "[Raw].[title.episode.tsv.gz]", 4), + ("title.principals.tsv", "[Raw].[title.principals.tsv.gz]", 6), + ("title.ratings.tsv", "[Raw].[title.ratings.tsv.gz]", 3), +] + + +def _run_sql_file(cursor, path: Path) -> None: + sql = path.read_text(encoding="utf-8") + for stmt in re.split(r'^\s*GO\s*$', sql, flags=re.MULTILINE | re.IGNORECASE): + stmt = stmt.strip() + if stmt: + cursor.execute(stmt) + + +def _drop_raw_pks(cursor) -> None: + cursor.execute(""" + SELECT kc.name, t.name + FROM sys.key_constraints kc + JOIN sys.tables t ON t.object_id = kc.parent_object_id + JOIN sys.schemas s ON s.schema_id = t.schema_id + WHERE s.name = 'Raw' AND kc.type = 'PK' + """) + rows = cursor.fetchall() + for pk_name, table_name in rows: + cursor.execute(f"ALTER TABLE [Raw].[{table_name}] DROP CONSTRAINT [{pk_name}]") + + +def _get_raw_columns(cursor, raw_table_name: str) -> list[str]: + cursor.execute(""" + SELECT COLUMN_NAME + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = 'Raw' AND TABLE_NAME = %s + ORDER BY ORDINAL_POSITION + """, (raw_table_name,)) + return [row[0] for row in cursor.fetchall()] + + +def _load_raw_table(cursor, tsv_path: Path, raw_table: str, n_cols: int, server_path: str, max_rows: int | None = None) -> None: + if not tsv_path.exists(): + print(f" skipping {tsv_path.name} (not found)") + return + + # raw_table looks like [Raw].[name.basics.tsv.gz] — extract just the table name + raw_table_name = raw_table[len("[Raw].["):-1] + stage_table = f"[Stage].[{raw_table_name}]" + + col_defs = ", ".join(f"c{i} varchar(max) NULL" for i in range(1, n_cols + 1)) + cursor.execute(f"CREATE TABLE {stage_table} ({col_defs})") + + lastrow_clause = f"LASTROW = {max_rows + 1}," if max_rows is not None else "" + cursor.execute(f""" + BULK INSERT {stage_table} + FROM '{server_path}' + WITH ( + FIRSTROW = 2, + {lastrow_clause} + FIELDTERMINATOR = '\\t', + ROWTERMINATOR = '0x0a', + TABLOCK + ) + """) + + col_names = _get_raw_columns(cursor, raw_table_name) + raw_cols = ", ".join(f"[{c}]" for c in col_names) + nullif_sel = ", ".join(f"NULLIF(c{i}, '\\N')" for i in range(1, n_cols + 1)) + + cursor.execute(f""" + INSERT INTO {raw_table} WITH (TABLOCK) ({raw_cols}) + SELECT {nullif_sel} + FROM {stage_table} + """) + + cursor.execute(f"DROP TABLE {stage_table}") + + +class MsSqlServerExtractor(PlanExtractor): + def __init__( + self, + dataset: str, + host: str, + port: int, + user: str, + password: str, + server_dataset: str = "/datasets/mysql-data/imdb", + max_rows: int | None = None, + ): + self._host = host + self._port = port + self._user = user + self._password = password + self._server_dataset = server_dataset.rstrip("/") + self._max_rows = max_rows + super().__init__(dataset) + + def _conn(self, database="master"): + c = pymssql.connect( + server=self._host, + port=str(self._port), + user=self._user, + password=self._password, + database=database, + autocommit=True, + ) + return c + + def load_dataset(self) -> None: + dataset_dir = Path(self.dataset) + + print("Recreating database...") + with self._conn("master") as conn: + cur = conn.cursor() + cur.execute("SELECT COUNT(*) FROM sys.databases WHERE name=N'imdb'") + row = cur.fetchone() + if row and row[0]: + cur.execute("ALTER DATABASE imdb SET SINGLE_USER WITH ROLLBACK IMMEDIATE") + cur.execute("DROP DATABASE imdb") + cur.execute("CREATE DATABASE imdb") + + with self._conn("imdb") as conn: + cur = conn.cursor() + + print("Creating schema and tables...") + _run_sql_file(cur, _SUBMODULE / "Create IMDB-schema.sql") + + cur.execute("CREATE SCHEMA [Stage]") + _drop_raw_pks(cur) + + for tsv_name, raw_table, n_cols in _RAW_FILES: + print(f"Loading {tsv_name}...") + server_path = f"{self._server_dataset}/{tsv_name}" + _load_raw_table(cur, dataset_dir / tsv_name, raw_table, n_cols, server_path, self._max_rows) + + cur.execute("DROP SCHEMA [Stage]") + + print("Transforming into relational tables...") + if self._max_rows is not None: + cur.execute(""" + DECLARE @sql NVARCHAR(MAX) = ''; + SELECT @sql += 'ALTER TABLE [dbo].[' + t.name + '] NOCHECK CONSTRAINT ALL; ' + FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id WHERE s.name = 'dbo'; + EXEC(@sql) + """) + _run_sql_file(cur, _SUBMODULE / "Load IMDB relational tables.sql") + + print("Dataset loaded.") + + def extract(self, request: str) -> str: + with self._conn("imdb") as conn: + cur = conn.cursor() + cur.execute("SET STATISTICS XML ON") + cur.execute(request) + while cur.nextset(): + row = cur.fetchone() + if row and isinstance(row[0], str) and row[0].startswith("here for more info. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mCanceled future for execute_request message before replies were done" + ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mCanceled future for execute_request message before replies were done. \n", + "\u001b[1;31mView Jupyter log for further details." + ] + } + ], + "source": [ + "import extractor, ms_sql_server_extractor\n", + "\n", + "from ms_sql_server_extractor import MsSqlServerExtractor\n", + "\n", + "extractor_obj = MsSqlServerExtractor(\n", + " dataset=\"/home/st/c/iu9-sql-compiler/research/datasets/mysql-data/imdb\",\n", + " host=\"localhost\",\n", + " port=1433,\n", + " user=\"sa\",\n", + " password=\"Password123!\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70ba9fa9", + "metadata": {}, + "outputs": [], + "source": [ + "query = \"\"\"\n", + "SELECT p.primaryName, t.averageRating\n", + "FROM dbo.TitlePrincipals tp\n", + "JOIN dbo.Principals p ON p.principalId = tp.principalId\n", + "JOIN dbo.Titles t ON t.titleId = tp.titleId\n", + "WHERE t.averageRating IS NOT NULL\n", + "\"\"\"\n", + "\n", + "plan = extractor_obj.extract(query)\n", + "print(plan)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/research/show_rules.sql b/research/show_rules.sql new file mode 100644 index 0000000..b832053 --- /dev/null +++ b/research/show_rules.sql @@ -0,0 +1,13 @@ +USE master; +GO + +DBCC TRACEON(3604); +GO + +PRINT '=== ENABLED RULES ==='; +DBCC SHOWONRULES; +GO + +PRINT '=== DISABLED RULES ==='; +DBCC SHOWOFFRULES; +GO diff --git a/research/tmp.py b/research/tmp.py new file mode 100644 index 0000000..c6c559b --- /dev/null +++ b/research/tmp.py @@ -0,0 +1,23 @@ +import extractor, ms_sql_server_extractor + +from ms_sql_server_extractor import MsSqlServerExtractor + +extractor_obj = MsSqlServerExtractor( + dataset="/home/st/c/iu9-sql-compiler/research/datasets/mysql-data/imdb", + host="localhost", + port=1433, + user="sa", + password="Password123!", + max_rows=10_000, +) + +query = """ +SELECT p.primaryName, t.averageRating +FROM dbo.TitlePrincipals tp +JOIN dbo.Principals p ON p.principalId = tp.principalId +JOIN dbo.Titles t ON t.titleId = tp.titleId +WHERE t.averageRating IS NOT NULL +""" + +plan = extractor_obj.extract(query) +print(plan) \ No newline at end of file diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 5cbde49..f9b2e17 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -31,6 +31,11 @@ add_library(libsql logic/optimizer/rule.cpp logic/transformation_rules/join_commutativity.cpp logic/transformation_rules/join_associativity.cpp + logic/implementation_rules/implement_table.cpp + logic/implementation_rules/implement_filter.cpp + logic/implementation_rules/implement_projection.cpp + logic/implementation_rules/implement_join.cpp + logic/implementation_rules/implement_cross_join.cpp ) add_library(stewkk::libsql ALIAS libsql) target_compile_features(libsql PUBLIC cxx_std_23) diff --git a/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp new file mode 100644 index 0000000..c9a2677 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp @@ -0,0 +1,14 @@ +#include + +namespace stewkk::sql { + +bool ImplementCrossJoin::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull ImplementCrossJoin::Apply(utils::NotNull expr, Memo&) { + auto& cj = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr(physical::NestedLoopCrossJoin{cj.lhs, cj.rhs}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp b/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp new file mode 100644 index 0000000..96b8b21 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp @@ -0,0 +1,14 @@ +#include + +namespace stewkk::sql { + +bool ImplementFilter::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull ImplementFilter::Apply(utils::NotNull expr, Memo&) { + auto& filter = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr(physical::Filter{filter.source, filter.predicate}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_join.cpp new file mode 100644 index 0000000..d7110f9 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_join.cpp @@ -0,0 +1,15 @@ +#include + +namespace stewkk::sql { + +bool ImplementJoin::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull ImplementJoin::Apply(utils::NotNull expr, Memo&) { + auto& join = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr( + physical::NestedLoopJoin{join.lhs, join.rhs, join.type, join.qual}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp b/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp new file mode 100644 index 0000000..b447330 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp @@ -0,0 +1,14 @@ +#include + +namespace stewkk::sql { + +bool ImplementProjection::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull ImplementProjection::Apply(utils::NotNull expr, Memo&) { + auto& proj = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr(physical::Projection{proj.source, proj.expressions}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_table.cpp b/src/stewkk/sql/logic/implementation_rules/implement_table.cpp new file mode 100644 index 0000000..b164175 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_table.cpp @@ -0,0 +1,14 @@ +#include + +namespace stewkk::sql { + +bool ImplementTable::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull ImplementTable::Apply(utils::NotNull expr, Memo&) { + auto& table = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr(physical::SeqScan{table.name}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp index 9a7478a..d896259 100644 --- a/src/stewkk/sql/logic/optimizer/group.cpp +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -6,8 +6,8 @@ utils::NotNull Group::AddLogicalExpr(LogicalOperator root_operator return &logical_exprs_.emplace_back(std::move(root_operator), this); } -utils::NotNull Group::AddPhysicalExpr() { - return &physical_exprs_.emplace_back(this); +utils::NotNull Group::AddPhysicalExpr(PhysicalOperator root_operator) { + return &physical_exprs_.emplace_back(std::move(root_operator), this); } Group::LogicalExprs Group::GetLogicalExprs() { diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 48c0267..f8969d8 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -18,10 +18,9 @@ using ::testing::Eq; namespace stewkk::sql { -// FIXME: проверить, не возникает ли висячих ссылок нигде? // FIXME: branch and bound -// FIXME: физические операторы! // FIXME: сделать API в виде DoStep(), которое возвращает какой-то внутренний стейт оптимизатора +// FIXME: применение правила (по крайней мере трансформации), должно создавать несколько выражений std::vector> GetChildren(utils::NotNull expr) { return std::visit(utils::Overloaded{ @@ -46,14 +45,88 @@ std::vector> GetChildren(utils::NotNull exp using Limit = std::optional; std::vector> GetChildren(utils::NotNull expr) { - return {}; + return std::visit(utils::Overloaded{ + [](const physical::SeqScan&) -> std::vector> { + return {}; + }, + [](const physical::Filter& f) -> std::vector> { + return {f.source}; + }, + [](const physical::Projection& p) -> std::vector> { + return {p.source}; + }, + [](const physical::NestedLoopJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + [](const physical::NestedLoopCrossJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + }, expr->root_operator); +} + +class CardinalityEstimates { +public: + int64_t GetCardinality(utils::NotNull group) { + if (auto it = cache_.find(group.get()); it != cache_.end()) { + return it->second; + } + auto cardinality = GetCardinality(group->GetLogicalExprs().front()->root_operator); + cache_[group.get()] = cardinality; + return cardinality; + } + + private: + int64_t GetCardinality(const LogicalOperator& op) { + return std::visit(utils::Overloaded{ + [](const logical::Table&) -> int64_t { + return 10; + }, + [this](const logical::Filter& f) -> int64_t { + return GetCardinality(f.source); + }, + [this](const logical::Projection& p) -> int64_t { + return GetCardinality(p.source); + }, + [this](const logical::CrossJoin& j) -> int64_t { + return GetCardinality(j.lhs) * GetCardinality(j.rhs); + }, + [this](const logical::Join& j) -> int64_t { + return GetCardinality(j.lhs) * GetCardinality(j.rhs); + }, + }, op); + } + + std::unordered_map cache_; +}; + +int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::Filter&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::Projection&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::NestedLoopJoin& j) -> int64_t { + return 3 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs) + + cardinality.GetCardinality(expr->group); + }, + [&](const physical::NestedLoopCrossJoin& j) -> int64_t { + return 3 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs) + + cardinality.GetCardinality(expr->group); + }, + }, expr->root_operator); } template class Optimizer { public: Optimizer(const Operator& expr, Rules&& rules) - : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)) { + : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), + cardinality_() { } private: @@ -68,15 +141,28 @@ class Optimizer { void OptimizeInputs(utils::NotNull expr, Limit limit, size_t child_index = 0) { auto children = GetChildren(expr); if (child_index >= children.size()) { - // FIXME: update best plan + int64_t total = local_cost_[expr.get()] + accum_child_cost_[expr.get()]; + auto* g = expr->group.get(); + if (!best_cost_.contains(g) || total < best_cost_.at(g)) { + best_cost_[g] = total; + best_plan_[g] = expr.get(); + } return; } - tasks_.emplace([this, expr, child_index, limit]() { - OptimizeInputs(expr, limit, child_index+1); + + auto child = children[child_index]; + + tasks_.emplace([this, expr, child, child_index, limit]() { + if (!best_cost_.contains(child.get())) return; + auto cc = best_cost_.at(child.get()); + accum_child_cost_[expr.get()] += cc; + Limit next = limit ? std::optional{*limit - local_cost_[expr.get()] - accum_child_cost_[expr.get()]} : std::nullopt; + if (next && *next < 0) return; + OptimizeInputs(expr, next, child_index + 1); }); - // FIXME: UpdateCostLimit - tasks_.emplace([this, expr, limit]() { - OptimizeGroup(expr->group, limit); + + tasks_.emplace([this, child, limit]() { + OptimizeGroup(child, limit); }); } @@ -87,9 +173,15 @@ class Optimizer { void ApplyRule(ImplementationRuleId rule, utils::NotNull expr, Limit limit) { auto new_expr = rules_applier_.Apply(rule, expr, memo_); - // FIXME: UpdateCostLimit! - tasks_.emplace( - [this, new_expr, limit]() { OptimizeInputs(new_expr, limit); }); + // FIXME: missing physical properties + auto lc = CalcCost(new_expr, cardinality_); + local_cost_[new_expr.get()] = lc; + accum_child_cost_[new_expr.get()] = 0; + + if (limit && lc >= *limit) return; + + Limit child_limit = limit ? std::optional{*limit - lc} : std::nullopt; + tasks_.emplace([this, new_expr, child_limit]() { OptimizeInputs(new_expr, child_limit); }); } void OptimizeExpression(utils::NotNull expr, Limit limit) { @@ -142,6 +234,10 @@ class Optimizer { } void OptimizeGroup(utils::NotNull group, Limit limit=std::nullopt) { + if (auto it = best_cost_.find(group.get()); it != best_cost_.end()) { + if (!limit || it->second < *limit) return; + } + if (!IsExplored(group)) { tasks_.emplace([this, group, limit](){ OptimizeGroup(group, limit); @@ -160,7 +256,7 @@ class Optimizer { } public: - Operator Optimize() { + PhysicalExpr* Optimize() { tasks_.emplace([this]() { OptimizeGroup(root_->group); }); @@ -169,7 +265,8 @@ class Optimizer { tasks_.pop(); next_task(); } - return Table{"A"}; + auto it = best_plan_.find(root_->group.get()); + return it != best_plan_.end() ? it->second : nullptr; } private: @@ -178,6 +275,11 @@ class Optimizer { std::stack> tasks_; std::unordered_set explored_groups_; utils::NotNull root_; + CardinalityEstimates cardinality_; + std::unordered_map local_cost_; + std::unordered_map accum_child_cost_; + std::unordered_map best_cost_; + std::unordered_map best_plan_; }; TEST(OptimizerTest, Simple) { diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index 961f528..c0ace93 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -2,13 +2,19 @@ namespace stewkk::sql { -Rules<2, 0> MakeMainRules() { +Rules<2, 5> MakeMainRules() { return { .transformation_rules = { std::make_unique(), std::make_unique(), }, - .implementation_rules = {}, + .implementation_rules = { + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + }, }; } diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 3a43141..3f3b659 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -29,5 +29,6 @@ utils::NotNull RulesApplier::Ap } template class RulesApplier<2, 0>; +template class RulesApplier<2, 5>; } // namespace stewkk::sql From ecdcca72112e414547c86e237f77778876a180a9 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 1 May 2026 00:55:39 +0300 Subject: [PATCH 013/120] Add report wip --- report/Makefile | 2 +- report/header.tex | 483 ++++++++++++ report/thesis.tex | 714 ++++++++++++++++++ .../sql/logic/optimizer/optimizer_test.cpp | 1 + 4 files changed, 1199 insertions(+), 1 deletion(-) create mode 100644 report/header.tex create mode 100644 report/thesis.tex diff --git a/report/Makefile b/report/Makefile index bca1c92..4694b53 100644 --- a/report/Makefile +++ b/report/Makefile @@ -3,7 +3,7 @@ all: build build: - @latexmk -f -pdf -output-directory=build -shell-escape ./report.tex + @latexmk -f -pdf -output-directory=build -shell-escape ./thesis.tex bib: @cp ./biblio.bib ./build diff --git a/report/header.tex b/report/header.tex new file mode 100644 index 0000000..b279b1a --- /dev/null +++ b/report/header.tex @@ -0,0 +1,483 @@ +\let\counterwithout\relax +\let\counterwithin\relax +\usepackage{float} +\usepackage{xcolor} +\usepackage{subfig} +\usepackage[export]{adjustbox} +\usepackage{tocvsec2} % возможность менять учитываемую глубину разделов в оглавлении +\usepackage[subfigure]{tocloft} +\usepackage[newfloat]{minted} +\captionsetup[listing]{position=top} + +\makeatletter +\AddToHook{begindocument/before}{\@ifpackageloaded{minted}{\removefromtoclist[float]{lol}}{}} +\makeatother + +\AtBeginEnvironment{figure}{\vspace{0.5cm}} +\AtBeginEnvironment{table}{\vspace{0.5cm}} +\AtBeginEnvironment{listing}{\vspace{0.5cm}} +\AtBeginEnvironment{algorithm}{\vspace{0.5cm}} +\AtBeginEnvironment{minted}{\vspace{-0.5cm}} + +\usepackage{fancyvrb} +\usepackage{ulem,bm,mathrsfs,ifsym} %зачеркивания, особо жирный стиль и RSFS начертание +\usepackage{sectsty} % переопределение стилей подразделов +%%%%%%%%%%%%%%%%%%%%%%% + +%%% Поля и разметка страницы %%% +\usepackage{pdflscape} % Для включения альбомных страниц +\usepackage{geometry} % Для последующего задания полей +\geometry{a4paper,tmargin=2cm,bmargin=2cm,lmargin=3cm,rmargin=1cm,includefoot} % тоже самое, но лучше + +%%% Математические пакеты %%% +\usepackage{amsthm,amsfonts,amsmath,amssymb,amscd} % Математические дополнения от AMS +\usepackage{mathtools} % Добавляет окружение multlined +\usepackage[perpage]{footmisc} +%\usepackage{times} + +%%%% Установки для размера шрифта 14 pt %%%% +%% Формирование переменных и констант для сравнения (один раз для всех подключаемых файлов)%% +%% должно располагаться до вызова пакета fontspec или polyglossia, потому что они сбивают его работу +%\newlength{\curtextsize} +%\newlength{\bigtextsize} +%\setlength{\bigtextsize}{13pt} +\KOMAoptions{fontsize=14pt} + +\makeatletter +\def\showfontsize{\f@size{} point} +\makeatother + +\makeatletter +\setlength{\@fptop}{0pt} +\makeatother + +%\makeatletter +%\show\f@size % неплохо для отслеживания, но вызывает стопорение процесса, если документ компилируется без команды -interaction=nonstopmode +%\setlength{\curtextsize}{\f@size pt} +%\makeatother + +%шрифт times +\usepackage{tempora} +%\usepackage{pscyr} +%\setmainfont[Ligatures={TeX,Historic}]{Times New Roman} + +%%% Решение проблемы копирования текста в буфер кракозябрами +% \input glyphtounicode.tex +% \input glyphtounicode-cmr.tex %from pdfx package +% \pdfgentounicode=1 +\usepackage{cmap} % Улучшенный поиск русских слов в полученном pdf-файле +\usepackage[T2A]{fontenc} % Поддержка русских букв +\usepackage[utf8]{inputenc} % Кодировка utf8 +\usepackage[english, main=russian]{babel} % Языки: русский, английский +% \IfFileExists{pscyr.sty}{\usepackage{pscyr}}{} % Красивые русские шрифты +%\renewcommand{\rmdefault}{ftm} +%%% Оформление абзацев %%% +\usepackage{indentfirst} % Красная строка +%\usepackage{eskdpz} + +%%% Таблицы %%% +\usepackage{longtable} % Длинные таблицы +\usepackage{multirow,makecell,array} % Улучшенное форматирование таблиц +\usepackage{booktabs} % Возможность оформления таблиц в классическом книжном стиле (при правильном использовании не противоречит ГОСТ) + +%%% Общее форматирование +\usepackage{soulutf8} % Поддержка переносоустойчивых подчёркиваний и зачёркиваний +\usepackage{icomma} % Запятая в десятичных дробях + +\usepackage{tikz} +\usetikzlibrary{automata,patterns, positioning, arrows,shadows,shapes,datavisualization} +\usetikzlibrary{decorations.pathreplacing} +\usetikzlibrary{arrows.meta,patterns.meta,graphs} + + +%%% Изображения %%% +\usepackage{graphicx} % Подключаем пакет работы с графикой +\usepackage{wrapfig} + +%%% Списки %%% +\usepackage{enumitem} + +%%% Подписи %%% +\usepackage{caption} % Для управления подписями (рисунков и таблиц) % Может управлять номерами рисунков и таблиц с caption %Иногда может управлять заголовками в списках рисунков и таблиц +%% Использование: +%\begin{table}[h!]\ContinuedFloat - чтобы не переключать счетчик +%\captionsetup{labelformat=continued}% должен стоять до самого caption +%\caption{} +% либо ручками \caption*{Продолжение таблицы~\ref{...}.} :) + +%%% Интервалы %%% +\addto\captionsrussian{% + \renewcommand{\listingname}{Листинг}% +} +%%% Счётчики %%% +\usepackage[figure,table,section]{totalcount} % Счётчик рисунков и таблиц +\DeclareTotalCounter{lstlisting} +\usepackage{totcount} % Пакет создания счётчиков на основе последнего номера подсчитываемого элемента (может требовать дважды компилировать документ) +\usepackage{totpages} % Счётчик страниц, совместимый с hyperref (ссылается на номер последней страницы). Желательно ставить последним пакетом в преамбуле + +%%% Продвинутое управление групповыми ссылками (пока только формулами) %%% +%% Кодировки и шрифты %%% + +% \newfontfamily{\cyrillicfont}{Times New Roman} +% \newfontfamily{\cyrillicfonttt}{CMU Typewriter Text} +%\setmainfont{Times New Roman} +%\newfontfamily\cyrillicfont{Times New Roman} +%\setsansfont{Times New Roman} %% задаёт шрифт без засечек +% \setmonofont{Liberation Mono} %% задаёт моноширинный шрифт +% \IfFileExists{pscyr.sty}{\renewcommand{\rmdefault}{ftm}}{} +%%% Интервалы %%% +%linespread-реализация ближе к реализации полуторного интервала в ворде. +%setspace реализация заточена под шрифты 10, 11, 12pt, под остальные кегли хуже, но всё же ближе к типографской классике. +\linespread{1.3} % Полуторный интервал (ГОСТ Р 7.0.11-2011, 5.3.6) +%\renewcommand{\@biblabel}[1]{#1} + +%%% Гиперссылки %%% +\usepackage{hyperref} + +%%% Выравнивание и переносы %%% +\sloppy % Избавляемся от переполнений +\clubpenalty=10000 % Запрещаем разрыв страницы после первой строки абзаца +\widowpenalty=10000 % Запрещаем разрыв страницы после последней строки абзаца + +\makeatletter % малые заглавные, small caps shape +\let\@@scshape=\scshape +\renewcommand{\scshape}{% + \ifnum\strcmp{\f@series}{bx}=\z@ + \usefont{T1}{cmr}{bx}{sc}% + \else + \ifnum\strcmp{\f@shape}{it}=\z@ + \fontshape{scsl}\selectfont + \else + \@@scshape + \fi + \fi} +\makeatother + +%%% Подписи %%% +%\captionsetup{% +%singlelinecheck=off, % Многострочные подписи, например у таблиц +%skip=2pt, % Вертикальная отбивка между подписью и содержимым рисунка или таблицы определяется ключом +%justification=centering, % Центрирование подписей, заданных командой \caption +%} +%%% Подключение пакетов %%% +\usepackage{ifthen} % добавляет ifthenelse +%%% Инициализирование переменных, не трогать! %%% +\newcounter{intvl} +\newcounter{otstup} +\newcounter{contnumeq} +\newcounter{contnumfig} +\newcounter{contnumtab} +\newcounter{pgnum} +\newcounter{bibliosel} +\newcounter{chapstyle} +\newcounter{headingdelim} +\newcounter{headingalign} +\newcounter{headingsize} +\newcounter{tabcap} +\newcounter{tablaba} +\newcounter{tabtita} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% Область упрощённого управления оформлением %%% + +%% Интервал между заголовками и между заголовком и текстом +% Заголовки отделяют от текста сверху и снизу тремя интервалами (ГОСТ Р 7.0.11-2011, 5.3.5) +\setcounter{intvl}{3} % Коэффициент кратности к размеру шрифта + +%% Отступы у заголовков в тексте +\setcounter{otstup}{0} % 0 --- без отступа; 1 --- абзацный отступ + +%% Нумерация формул, таблиц и рисунков +\setcounter{contnumeq}{1} % Нумерация формул: 0 --- пораздельно (во введении подряд, без номера раздела); 1 --- сквозная нумерация по всей диссертации +\setcounter{contnumfig}{1} % Нумерация рисунков: 0 --- пораздельно (во введении подряд, без номера раздела); 1 --- сквозная нумерация по всей диссертации +\setcounter{contnumtab}{1} % Нумерация таблиц: 0 --- пораздельно (во введении подряд, без номера раздела); 1 --- сквозная нумерация по всей диссертации + +%% Оглавление +\setcounter{pgnum}{0} % 0 --- номера страниц никак не обозначены; 1 --- Стр. над номерами страниц (дважды компилировать после изменения) + +%% Библиография +\setcounter{bibliosel}{1} % 0 --- встроенная реализация с загрузкой файла через движок bibtex8; 1 --- реализация пакетом biblatex через движок biber + +%% Текст и форматирование заголовков +\setcounter{chapstyle}{1} % 0 --- разделы только под номером; 1 --- разделы с названием "Глава" перед номером +\setcounter{headingdelim}{1} % 0 --- номер отделен пропуском в 1em или \quad; 1 --- номера разделов и приложений отделены точкой с пробелом, подразделы пропуском без точки; 2 --- номера разделов, подразделов и приложений отделены точкой с пробелом. + +%% Выравнивание заголовков в тексте +\setcounter{headingalign}{0} % 0 --- по центру; 1 --- по левому краю + +%% Размеры заголовков в тексте +\setcounter{headingsize}{0} % 0 --- по ГОСТ, все всегда 14 пт; 1 --- пропорционально изменяющийся размер в зависимости от базового шрифта + +%% Подпись таблиц +\setcounter{tabcap}{0} % 0 --- по ГОСТ, номер таблицы и название разделены тире, выровнены по левому краю, при необходимости на нескольких строках; 1 --- подпись таблицы не по ГОСТ, на двух и более строках, дальнейшие настройки: +%Выравнивание первой строки, с подписью и номером +\setcounter{tablaba}{2} % 0 --- по левому краю; 1 --- по центру; 2 --- по правому краю +%Выравнивание строк с самим названием таблицы +\setcounter{tabtita}{1} % 0 --- по левому краю; 1 --- по центру; 2 --- по правому краю + +%%% Рисунки %%% +\DeclareCaptionLabelSeparator*{emdash}{~--- } % (ГОСТ 2.105, 4.3.1) +\captionsetup[figure]{labelsep=emdash,font=onehalfspacing,position=bottom} + +%%% Таблицы %%% +\ifthenelse{\equal{\thetabcap}{0}}{% + \newcommand{\tabcapalign}{\raggedright} % по левому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetablaba}{0} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabcapalign}{\raggedright} % по левому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetablaba}{1} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabcapalign}{\centering} % по центру страницы или аналога parbox +} + +\ifthenelse{\equal{\thetablaba}{2} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabcapalign}{\raggedleft} % по правому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetabtita}{0} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabtitalign}{\raggedright} % по левому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetabtita}{1} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabtitalign}{\centering} % по центру страницы или аналога parbox +} + +\ifthenelse{\equal{\thetabtita}{2} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabtitalign}{\raggedleft} % по правому краю страницы или аналога parbox +} + +\DeclareCaptionFormat{tablenocaption}{\tabcapalign #1\strut} % Наименование таблицы отсутствует +\ifthenelse{\equal{\thetabcap}{0}}{% + \DeclareCaptionFormat{tablecaption}{\tabcapalign #1#2#3} + \captionsetup[table]{labelsep=emdash} % тире как разделитель идентификатора с номером от наименования +}{% + \DeclareCaptionFormat{tablecaption}{\tabcapalign #1#2\par% % Идентификатор таблицы на отдельной строке + \tabtitalign{#3}} % Наименование таблицы строкой ниже + \captionsetup[table]{labelsep=space} % пробельный разделитель идентификатора с номером от наименования +} +\captionsetup[table]{format=tablecaption,singlelinecheck=off,font=onehalfspacing,position=top,skip=-5pt} % многострочные наименования и прочее +\DeclareCaptionLabelFormat{continued}{Продолжение таблицы~#2} +\setlength{\belowcaptionskip}{.2cm} +\setlength{\intextsep}{0ex} + +%%% Подписи подрисунков %%% +\renewcommand{\thesubfigure}{\asbuk{subfigure}} % Буквенные номера подрисунков +\captionsetup[subfigure]{font={normalsize}, % Шрифт подписи названий подрисунков (не отличается от основного) + labelformat=brace, % Формат обозначения подрисунка + justification=centering, % Выключка подписей (форматирование), один из вариантов +} +%\DeclareCaptionFont{font12pt}{\fontsize{12pt}{13pt}\selectfont} % объявляем шрифт 12pt для использования в подписях, тут же надо интерлиньяж объявлять, если не наследуется +%\captionsetup[subfigure]{font={font12pt}} % Шрифт подписи названий подрисунков (всегда 12pt) + +%%% Настройки гиперссылок %%% + +\definecolor{linkcolor}{rgb}{0.0,0,0} +\definecolor{citecolor}{rgb}{0,0.0,0} +\definecolor{urlcolor}{rgb}{0,0,0} + +\hypersetup{ + linktocpage=true, % ссылки с номера страницы в оглавлении, списке таблиц и списке рисунков + % linktoc=all, % both the section and page part are links + % pdfpagelabels=false, % set PDF page labels (true|false) + plainpages=true, % Forces page anchors to be named by the Arabic form of the page number, rather than the formatted form + colorlinks, % ссылки отображаются раскрашенным текстом, а не раскрашенным прямоугольником, вокруг текста + linkcolor={linkcolor}, % цвет ссылок типа ref, eqref и подобных + citecolor={citecolor}, % цвет ссылок-цитат + urlcolor={urlcolor}, % цвет гиперссылок + pdflang={ru}, +} +\urlstyle{same} +%%% Шаблон %%% +%\DeclareRobustCommand{\todo}{\textcolor{red}} % решаем проблему превращения названия цвета в результате \MakeUppercase, http://tex.stackexchange.com/a/187930/79756 , \DeclareRobustCommand protects \todo from expanding inside \MakeUppercase +\setlength{\parindent}{2.5em} % Абзацный отступ. Должен быть одинаковым по всему тексту и равен пяти знакам (ГОСТ Р 7.0.11-2011, 5.3.7). + +%%% Списки %%% +% Используем дефис для ненумерованных списков (ГОСТ 2.105-95, 4.1.7) +%\renewcommand{\labelitemi}{\normalfont\bfseries~{---}} +\renewcommand{\labelitemi}{\bfseries~{---}} +\setlist{nosep,% % Единый стиль для всех списков (пакет enumitem), без дополнительных интервалов. + labelindent=\parindent,leftmargin=*% % Каждый пункт, подпункт и перечисление записывают с абзацного отступа (ГОСТ 2.105-95, 4.1.8) +} +%%%%%%%%%%%%%%%%%%%%%% +%\usepackage{xltxtra} % load xunicode + +\usepackage{ragged2e} +\usepackage[explicit]{titlesec} +\usepackage{placeins} +\usepackage{xparse} +\usepackage{csquotes} + +\usepackage{listingsutf8} +\usepackage{url} %пакеты расширений +\usepackage{algorithm, algorithmicx} +\usepackage[noend]{algpseudocode} +\usepackage{blkarray} +\usepackage{chngcntr} +\usepackage{tabularx} +\usepackage[backend=biber, + bibstyle=gost-numeric, + citestyle=nature]{biblatex} +\newcommand*\template[1]{\text{<}#1\text{>}} + +\titleformat{name=\section,numberless}[block]{\normalfont\Large\centering}{}{0em}{#1} +\titleformat{\section}[block]{\normalfont\Large\bfseries\raggedright}{}{0em}{\thesection\hspace{0.25em}#1} +\titleformat{\subsection}[block]{\normalfont\Large\bfseries\raggedright}{}{0em}{\thesubsection\hspace{0.25em}#1} +\titleformat{\subsubsection}[block]{\normalfont\large\bfseries\raggedright}{}{0em}{\thesubsubsection\hspace{0.25em}#1} + +\newcounter{subsubsubsection}[subsubsection] +\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}} +\setcounter{secnumdepth}{4} +\setcounter{tocdepth}{4} +\titleclass{\subsubsubsection}{straight}[\subsubsection] +\titleformat{\subsubsubsection}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{\thesubsubsubsection\hspace{0.25em}#1} +\titlespacing*{\subsubsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} +\makeatletter +\newcommand*\l@subsubsubsection{\@dottedtocline{4}{0pt}{5em}} +\makeatother + +\let\Algorithm\algorithm +\renewcommand\algorithm[1][]{\Algorithm[#1]\setstretch{1.5}} +%\renewcommand{\listingscaption}{Листинг} + +\usepackage{pifont} +\usepackage{calc} +\usepackage{suffix} +\usepackage{csquotes} +\DeclareQuoteStyle{russian} +{\guillemotleft}{\guillemotright}[0.025em] +{\quotedblbase}{\textquotedblleft} +\ExecuteQuoteOptions{style=russian} +\newcommand{\enq}[1]{\enquote{#1}} +\newcommand{\eng}[1]{\begin{english}#1\end{english}} +% Подчиненные счетчики в окружениях http://old.kpfu.ru/journals/izv_vuz/arch/sample1251.tex +\newcounter{cTheorem} +\newcounter{cDefinition} +\newcounter{cConsequent} +\newcounter{cExample} +\newcounter{cLemma} +\newcounter{cConjecture} +\newtheorem{Theorem}{Теорема}[cTheorem] +\newtheorem{Definition}{Определение}[cDefinition] +\newtheorem{Consequent}{Следствие}[cConsequent] +\newtheorem{Example}{Пример}[cExample] +\newtheorem{Lemma}{Лемма}[cLemma] +\newtheorem{Conjecture}{Гипотеза}[cConjecture] + +\renewcommand{\theTheorem}{\arabic{Theorem}} +\renewcommand{\theDefinition}{\arabic{Definition}} +\renewcommand{\theConsequent}{\arabic{Consequent}} +\renewcommand{\theExample}{\arabic{Example}} +\renewcommand{\theLemma}{\arabic{Lemma}} +\renewcommand{\theConjecture}{\arabic{Conjecture}} +%\makeatletter +\NewDocumentCommand{\Newline}{}{\text{\\}} +\newcommand{\sequence}[2]{\ensuremath \left(#1,\ \dots,\ #2\right)} + +\definecolor{mygreen}{rgb}{0,0.6,0} +\definecolor{mygray}{rgb}{0.5,0.5,0.5} +\definecolor{mymauve}{rgb}{0.58,0,0.82} +\renewcommand{\listalgorithmname}{Список алгоритмов} +\floatname{algorithm}{Листинг} +\renewcommand{\lstlistingname}{Листинг} +\renewcommand{\thealgorithm}{\arabic{algorithm}} + +\newcommand{\refAlgo}[1]{(листинг \ref{#1})} +\newcommand{\refImage}[1]{(рисунок \ref{#1})} + +\renewcommand{\theenumi}{\arabic{enumi}.}% Меняем везде перечисления на цифра.цифра +\renewcommand{\labelenumi}{\arabic{enumi}.}% Меняем везде перечисления на цифра.цифра +\renewcommand{\theenumii}{\arabic{enumii}}% Меняем везде перечисления на цифра.цифра +\renewcommand{\labelenumii}{(\arabic{enumii})}% Меняем везде перечисления на цифра.цифра +\renewcommand{\theenumiii}{\roman{enumiii}}% Меняем везде перечисления на цифра.цифра +\renewcommand{\labelenumiii}{(\roman{enumiii})}% Меняем везде перечисления на цифра.цифра +\renewcommand{\labelitemi}{---} +\renewcommand{\labelitemii}{---} + +\makeatletter +\def\p@subsection{} +\def\p@subsubsection{\thesection\,\thesubsection\,} +\makeatother +\newcommand{\anonsection}[1]{\cleardoublepage + \phantomsection + \addcontentsline{toc}{section}{\protect\numberline{}#1} + \section*{#1}\vspace*{2.5ex} % По госту положены 3 пустые строки после заголовка ненумеруемого раздела +} +\newcommand{\sectionbreak}{\clearpage} +\renewcommand{\sectionfont}{\normalsize} % Сбиваем стиль оглавления в стандартный +\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % Точки в оглавлении напротив разделов + +\renewcommand{\cftsecfont}{\normalfont\large} % Переключение на times в содержании +\renewcommand{\cftsubsecfont}{\normalfont\large} % Переключение на times в содержании + +\setlength{\cftsecindent}{0pt}% Убираем отступы в содержании для \section +\setlength{\cftsubsecindent}{0pt}% Убираем отступы в содержании для \subsection +\setlength{\cftsubsubsecindent}{0pt}% Убираем отступы в содержании для \subsubsection + +\usepackage{caption} +%\captionsetup[table]{justification=raggedleft} +%\captionsetup[figure]{justification=centering,labelsep=endash} +\usepackage{amsmath} % \bar (матрицы и проч. ...) +\usepackage{amsfonts} % \mathbb (символ для множества действительных чисел и проч. ...) +\usepackage{mathtools} % \abs, \norm +\DeclarePairedDelimiter\abs{\lvert}{\rvert} % операция модуля +\DeclarePairedDelimiter\norm{\lVert}{\rVert} % операция нормы +\DeclareTextCommandDefault{\textvisiblespace}{% + \mbox{\kern.06em\vrule \@height.3ex}% + \vbox{\hrule \@width.3em}% + \hbox{\vrule \@height.3ex}} +\newsavebox{\spacebox} +\begin{lrbox}{\spacebox} + \verb*! ! +\end{lrbox} +\newcommand{\aspace}{\usebox{\spacebox}} +\DeclareTotalCounter{listing} +\def\figurename{Рисунок} + +\makeatletter +\renewcommand*{\p@subsubsection}{} +\makeatother + +\newcommand{\bmstuheader} +{\vspace*{-30pt} + \hspace{-45pt} + \begin{minipage}{0.17\textwidth} + \hspace*{-20pt}\centering + \includegraphics[width=1.3\textwidth]{emblem.png} + \end{minipage} + \begin{minipage}{0.82\textwidth}\small \textbf{ + \vspace*{-0.7ex} + \hspace*{-10pt}\centerline{Министерство науки и высшего образования Российской Федерации} + \vspace*{-0.7ex} + \centerline{Федеральное государственное автономное образовательное учреждение } + \vspace*{-0.7ex} + \centerline{высшего образования} + \vspace*{-0.7ex} + \centerline{<<Московский государственный технический университет} + \vspace*{-0.7ex} + \centerline{имени Н.Э. Баумана} + \vspace*{-0.7ex} + \centerline{(национальный исследовательский университет)>>} + \vspace*{-0.7ex} + \centerline{(МГТУ им. Н.Э. Баумана)}} + \end{minipage} + + \vspace{-2pt} + \hspace{-34.5pt}\rule{\textwidth}{0.5pt} + + \vspace*{-18.3pt} + \hspace{-34.5pt}\rule{\textwidth}{2.5pt} + + \vspace{0.5ex} + \noindent \small ФАКУЛЬТЕТ\hspace{80pt} <<Информатика и системы управления>> + + \vspace*{-16pt} + \hspace{35pt}\rule{0.855\textwidth}{0.4pt} + + \vspace{0.5ex} + \noindent \small КАФЕДРА\hspace{50pt} <<Теоретическая информатика и компьютерные технологии>> + + \vspace*{-16pt} + \hspace{25pt}\rule{0.875\textwidth}{0.4pt} +} diff --git a/report/thesis.tex b/report/thesis.tex new file mode 100644 index 0000000..0f3728c --- /dev/null +++ b/report/thesis.tex @@ -0,0 +1,714 @@ +% !TeX TXS-program:bibliography = txs:///biber +\documentclass[fontsize=14pt, russian]{scrartcl} +\input{header.tex} +\addbibresource{biblio.bib} + +\begin{document} +\sloppy + +\def\figurename{Рисунок} + +\begin{titlepage} + \thispagestyle{empty} + \newpage + + \bmstuheader + + \vspace{3em} + + \begin{center} + {\Large\bfseries РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА\\\textbf{\textit{К НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ\\НА ТЕМУ:}} \\} + \end{center} + + \vspace*{-6ex} + \begin{center} + \Large{\textit{\textbf{<<}}} + + \vspace*{-3ex} + \rule{1\textwidth}{1.2pt} + + \vspace*{-0.2ex} + + \Large{\textit{\textbf{>>}}} + + \vspace*{-3ex} + \rule{1\textwidth}{1.2pt} + + \vspace*{-0.2ex} + \rule{1\textwidth}{1.2pt} + + \vspace*{-0.2ex} + \rule{1\textwidth}{1.2pt} + \end{center} + + \vspace{\fill} + + + \newlength{\ML} + \settowidth{\ML}{«\underline{\hspace{0.7cm}}» \underline{\hspace{2cm}}} + + \noindent Студент \underline{\hspace{1.5cm}} \hfill \underline{\hspace{4cm}}\quad + \underline{\hspace{4cm}} + + \vspace{-2.1ex} + \noindent\hspace{9ex}\scriptsize{(Группа)}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize + + \bigskip + + \noindent Руководитель НИР \hfill \underline{\hspace{4cm}}\quad + \underline{\hspace{4cm}} + + \vspace{-2ex} + \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize + \bigskip + + \noindent Нормоконтролер \hfill \underline{\hspace{4cm}}\quad + \underline{\hspace{4cm}} + + \vspace{-2ex} + \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize + \vfill + + \begin{center} + \textsl{\the\year{} г.} + \end{center} +\end{titlepage} + +\setlength{\tabcolsep}{3pt} +\newpage +\setcounter{page}{2} +%---------------------------------------------------------------------------- +% ОТСЮДА --- СОБСТВЕННО ТЕКСТ +%---------------------------------------------------------------------------- + +\newpage +\renewcommand\contentsname{\hfill{\normalfont{СОДЕРЖАНИЕ}}\hfill} +\tableofcontents +\newpage +\anonsection{ВВЕДЕНИЕ} + +В эпоху стремительного роста объемов данных системы управления базами данных +(СУБД) являются ключевой частью информационных систем. По данным аналитических +исследований, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено +как расширением круга решаемых задач, так и усложнением структуры обрабатываемых +данных. Реляционные СУБД, работающие с различными диалектами языка SQL, +продолжают занимать доминирующее положение в сегменте обработки транзакций и +аналитических запросов. + +Одним из определяющих факторов конкурентоспособности между различными СУБД +является качество оптимизатора запросов. Оптимизатор представляет собой +компонент, ответственный за преобразование декларативного SQL-запроса в +эффективный физический план исполнения. Именно от качества работы оптимизатора в +значительной степени зависит производительность системы: выбор неоптимального +плана исполнения может привести к увеличению времени выполнения запроса в +десятки раз. + +Также оптимизатор запросов считается наиболее сложной составной частью любой +СУБД. Задача нахождения оптимального плана является NP-полной в общем случае, +что обусловливает необходимость применения эвристических методов и алгоритмов +ограниченного перебора. Современные коммерческие и открытые СУБД используют +различные архитектуры оптимизаторов, среди них наиболее популярны устоявшиеся и +проверенные временем архитектуры Cascades и Volcano. + +Архитектура Cascades используется в таких промышленных системах, как Microsoft +SQL Server, Apache Orca, а также в ряде исследовательских проектов, включая +Columbia и CockroachDB. Преимущества этой архитектуры заключаются в +расширяемости, модульности, а также понятном и эффективном алгоритме поиска, +допускающим параллельность исполнения. + +Целью данной работы является разработка и реализация оптимизатора подмножества +SQL-запросов на основе архитектуры Cascades. + +{\color{red} TODO: переформулировать} +Для достижения поставленной цели необходимо решить следующие задачи: +\begin{enumerate} + \item провести обзор существующих архитектур оптимизаторов запросов, + включая System~R, Volcano и Cascades; + \item формализовать подмножество реляционной алгебры, подлежащее + оптимизации; + \item разработать структуру данных Memo и алгоритм поиска оптимального + плана на основе архитектуры Cascades; + \item реализовать набор правил трансформации и реализации для + основных операторов реляционной алгебры; + \item реализовать метод ветвей и границ для эффективного отсечения + неоптимальных планов; + \item предложить метод дифференциального анализа физических планов + для автоматизированного сравнения с существующими СУБД. +\end{enumerate} + +\section{Оптимизатор как составная часть СУБД} + +\subsection{Архитектура системы управления базами данных} + +Система управления базами данных представляет собой программный комплекс, +обеспечивающий хранение, извлечение и модификацию структурированных +данных. Несмотря на разнообразие существующих реализаций, архитектура +большинства реляционных СУБД включает ряд типовых компонентов, +взаимодействие которых обеспечивает выполнение пользовательских запросов. + +К основным компонентам СУБД относятся: транспортный уровень, принимающий +клиентские подключения и запросы; синтаксический анализатор (парсер), +выполняющий разбор текста SQL-запроса и построение синтаксического дерева; +оптимизатор запросов, преобразующий логическое представление запроса в +эффективный физический план исполнения; исполнитель, непосредственно реализующий +физический план; менеджер хранения данных, управляющий размещением данных на +физических носителях; менеджер транзакций и менеджер блокировок, обеспечивающие +гарантии транзакций; а также менеджер страниц памяти, отвечающий за кэширование +страниц данных в оперативной памяти~\refImage{fig::dbms_arch}. + +{\color{red} TODO: диаграмму можно поинтереснее} + +\begin{figure}[!htb]\centering + \begin{tikzpicture}[ + layer/.style={rectangle, draw, minimum width=10cm, minimum height=0.8cm, align=center, font=\small}, + node distance=0.15cm + ] + \node[layer] (net) {Сетевой протокол и менеджер соединений}; + \node[layer, below=of net] (parse) {Парсер и семантический анализатор SQL}; + \node[layer, below=of parse, fill=gray!20] (opt) {\textbf{Оптимизатор запросов}}; + \node[layer, below=of opt] (exec) {Исполнитель физического плана}; + \node[layer, below=of exec] (tx) {Менеджер транзакций}; + \node[layer, below=of tx] (buf) {Менеджер страниц памяти}; + \node[layer, below=of buf] (acc) {Методы доступа: индексы, кучи}; + \node[layer, below=of acc] (disk) {Дисковая подсистема хранения}; + \end{tikzpicture} + \caption{Архитектура реляционной системы управления базами данных} + \label{fig::dbms_arch} +\end{figure} + +\subsection{Процесс исполнения SQL-запроса} + +Процесс исполнения SQL-запроса в реляционной СУБД проходит несколько +последовательных этапов. + +\begin{enumerate} + \item \emph{Синтаксический анализ} --- текст SQL-запроса подвергается + лексическому и синтаксическому разбору. Результатом данного этапа + является синтаксическое дерево, узлы которого соответствуют конструкциям + языка SQL: операторам \texttt{SELECT}, \texttt{FROM}, \texttt{WHERE}, + \texttt{JOIN}, \texttt{GROUP BY}, \texttt{ORDER BY} и другим. На этом же + этапе выполняется семантический анализ: проверяется существование + указанных таблиц и столбцов, разрешаются имена объектов и определяются + типы выражений. + + \item \emph{Оптимизация} --- синтаксическое дерево преобразуется в логический + план запроса, выраженный в терминах реляционной алгебры. Оптимизатор + исследует пространство эквивалентных логических планов и для каждого из + них рассматривает возможные физические реализации операторов. С помощью + модели стоимости оптимизатор оценивает затраты на выполнение каждого + плана и выбирает план с наименьшей оценочной стоимостью. Результатом + этого этапа является физический план исполнения --- дерево физических + операторов с указанием конкретных алгоритмов соединения, методов доступа + к данным и порядка операций. + + \item \emph{Исполнение физического плана} --- движок выполнения реализует + физический план, порождая потоки кортежей. Данные извлекаются из + хранилища, обрабатываются операторами плана и формируют результирующий + набор, возвращаемый клиенту. +\end{enumerate} + + +\section{Реляционная алгебра} + +\subsection{Определение реляционной алгебры} + +Реляционная алгебра представляет собой формальный язык для описания операций над +отношениями реляционной базы данных. В отличие от декларативного языка SQL, +реляционная алгебра является процедурным языком: она определяет конкретную +последовательность операций, необходимых для получения результата. + +Отношение определяется как конечное множество кортежей, каждый из которых +представляет собой упорядоченный набор значений атрибутов: + +\[ + R \subseteq \text{dom}(A_1) \times \text{dom}(A_2) \times \ldots \times \text{dom}(A_n). +\] + +\subsection{Основные операторы реляционной алгебры} + +Среди основных операторов реляционной алгебры выделяют следующие. + +\begin{enumerate} + \item \emph{Фильтрация} \(\sigma_p(R)\) --- возвращает подмножество кортежей + отношения \(R\), удовлетворяющих предикату \(p\). Например, + \(\sigma_{\text{age} > 30}(\text{Employee})\) вернет всех + сотрудников старше 30 лет. + + \item \emph{Проекция} \(\pi_{A_1, \ldots, A_k}(R)\) --- формирует новое + отношение, содержащее только указанные атрибуты. + + \item \emph{Декартово произведение} \(R \times S\) --- формирует отношение, + каждый кортеж которого является конкатенацией кортежа из \(R\) и кортежа + из \(S\), при этом в результате получается + \(|R \times S| = |R| \cdot |S|\) кортежей. + + \item \emph{Соединение} \(R \bowtie_p S\) --- комбинирует кортежи двух + отношений на основании предиката \(p\). Внутреннее соединение + определяется как + \(R \bowtie_{R.a = S.b} S = \sigma_{R.a = S.b}(R \times S)\). + + \item \emph{Объединение} \(R \cup S\) --- возвращает все кортежи, + принадлежащие хотя бы одному из двух совместимых по схеме отношений. + + \item \emph{Разность} \(R - S\) --- выбирает кортежи, принадлежащие \(R\), но + отсутствующие в \(S\). + + \item \emph{Агрегация} \(\gamma_{G, f}(R)\) --- разбивает отношение \(R\) на + непересекающиеся множества по множеству атрибутов \(G\) и вычисляет + агрегированные значения функции \(f\) (такие как \texttt{COUNT}, + \texttt{SUM}, \texttt{AVG}, \texttt{MIN}, \texttt{MAX}) по каждому + такому множеству. +\end{enumerate} + +\subsection{Преобразование синтаксического дерева к реляционной алгебре} + +Полученное после лексического и синтаксического разбора абстракное +синтаксическое дерево обычно преобразовывают в форму операторов реляционной +алгебры. + +Это преобразование выполняется по фиксированному +набору правил, отражающих семантику конструкций SQL: блок +\texttt{SELECT--FROM--WHERE} превращается в проекцию над селекцией над +произведением соединяемых таблиц; конструкция \texttt{GROUP BY} +порождает оператор группировки; \texttt{ORDER BY} --- запрос на +требуемое физическое свойство сортированности; вложенные подзапросы --- +оператор Apply, который впоследствии может быть удалён процедурой +декорреляции. + +Данное преобразование необходимо по нескольким причинам. Во-первых, +реляционная алгебра обладает формализованным набором правил эквивалентности, которые позволяют оптимизатору корректно +преобразовывать план запроса без изменения семантики. Во-вторых, +алгебраическое представление позволяет единообразно обрабатывать +различные синтаксические формы SQL-запросов, порождающие одинаковые +логические планы. Наконец, разделение на логические и физические +операторы позволяет оптимизатору независимо исследовать порядок +операций и алгоритмы их реализации. + + +\section{Цель оптимизатора} + +Сформулируем задачу, которую решает оптимизатор: по запросу, представленному в +форме дерева операторов реляционной алгебры, построить эквивалентный и +оптимальный, с точки зрения необходимых для исполнения ресурсов, план +исполнения. Итоговый план является деревом, узлы которого помечены конкретными +указаниями на алгоритмы, реализующими один или несколько операторов реляционной +алгебры. Эквивалентность означает, что итоговый физический план и исходный +запрос при исполнении на любом наборе данных порождают одинаковые отношения с +точностью до требуемых свойств, таких как сортировка. + +Запрос в форме реляционной алгебры также называют логическим планом, а операторы +реляционной алгебры --- логическими операторами. + +Для каждого логического оператора существует несколько возможных физических +реализаций. Например, оператор соединения \(\bowtie\) может быть реализован как +соединение вложенными циклами, хеш-соединение или соединение слиянием. +Аналогично, оператор доступа к данным может быть реализован как последовательное +сканирование таблицы или сканирование индекса. Еще одним важным примером +является эквивалентность сканирования индекса с предикатом и двух логических +операторов, примененных последовательно: доступ к данным и фильтрация по тому же +предикату. + +Эквивалентность планов обеспечивается свойствами реляционной алгебры. Например, +коммутативность и ассоциативность соединения: +\[ + R \bowtie S = S \bowtie R, \qquad (R \bowtie S) \bowtie T = R \bowtie (S \bowtie T). +\] + +Оптимальность запроса оценивается с помощью стоимостной функции +\(\mathrm{cost} \colon \mathcal{P}_L \to \mathbb{R}_{\ge 0}\), где +\(\mathcal{P}_{L}\) --- множество эквивалентных физических планов. Это +отображение оценивает затраты на исполнение плана исходя из модели работы +операторов, а также основываясь на эвристиках и статистике о данных в +отношениях. Другими словами, цель оптимизатора состоит в том, чтобы для входного +запроса найти план \(P^* \in \mathcal{P}_L\), минимизирующий \(\mathrm{cost}\): +\[ + P^* = \arg\min_{P \in \mathcal{P}_L} \mathrm{cost}(P). +\] + +Одной из подзадач рамках построения оптимального плана является определение +порядка выполнения соединений. Для соединения \(n\) отношений количество +возможных порядков соединения выражается как \(O((n-1)! \cdot C_{n-1})\), где +\(C_k\) --- \(k\)-е число Каталана. Таким образом, пространство поиска растет +экспоненциально с увеличением числа соединяемых таблиц. + +{\color{red}: TODO: ссылка на источник} + +Поскольку полный перебор \(\mathcal{P}_L\) в общем случае невозможен из-за +экспоненциального роста числа альтернатив, на практике речь идёт о поиске плана +с приемлемо малой стоимостью в определенном подмножестве пространства поиска. +Именно эта задача и определяет архитектуру современных оптимизаторов: +расширяемое описание пространства поиска через правила преобразования, +эффективный алгоритм его исследования и стоимостная модель, позволяющая отсекать +заведомо неоптимальные ветви. + +Выбор плана исполнения запроса может оказывать кардинальное влияние на объем +требуемых вычислительных ресурсов. В качестве примера оценим количества +страничных чтений с диска для различных физических операторов. Пусть имеется три отношения: таблица +\texttt{customer} с \(|C| = 10^5\) строк, таблица \texttt{orders} с +\(|O| = 10^7\) строк и таблица \texttt{lineitem} с \(|L| = 5 \cdot 10^7\) +строк. Размер страницы --- \(8\) КБ; в одну страницу укладывается +\(100\) строк \texttt{customer}, \(80\) строк \texttt{orders} и \(50\) +строк \texttt{lineitem}. Соответственно, общее число страниц составляет +\(P_C = 10^3\), \(P_O = 1{,}25 \cdot 10^5\), \(P_L = 10^6\). + +Запрос состоит в соединении трёх таблиц по внешним ключам с +последующей агрегацией. Рассмотрим два альтернативных плана. + +\begin{itemize} + \item План \(P_1\): + \((\texttt{customer} \bowtie \texttt{orders}) \bowtie \texttt{lineitem}\) + с реализацией обоих соединений через Hash Join, для чего сначала + полностью считываются \(P_C + P_O = 1{,}26 \cdot 10^5\) страниц для + построения хеш-таблицы, после чего промежуточный результат размером + \(10^7\) строк (равный \(|O|\)) соединяется с \texttt{lineitem}, требуя + считывания ещё \(P_L = 10^6\) страниц. В сумме --- порядка + \(1{,}126 \cdot 10^6\) операций чтения с диска. + \item План \(P_2\): тот же запрос, но реализованный как соединение с помощью + вложенных циклов без использования индексов: для каждой строки + \texttt{customer} полностью просматривается \texttt{orders}, для каждой + результирующей пары --- \texttt{lineitem}. Совокупный объём ввода-вывода + оценивается величиной + \(P_C \cdot P_O \cdot P_L \approx 1{,}25 \cdot 10^{14}\) операций + чтения, что на восемь порядков превышает \(P_1\). +\end{itemize} + +{\color{red} TODO: пример посложнее} + +Различие на восемь порядков иллюстрирует, что разница между удачным и неудачным +планами может составлять сотни миллионов раз. Если исполнение \(P_1\) на +современной системе занимает порядка секунд, то наивный \(P_2\) --- десятки лет +реального времени. Более того, если в плане \(P_1\) дополнительно использовать +индекс по внешнему ключу при соединении с \texttt{lineitem}, стоимость может +снизиться ещё в несколько раз. + +Этот пример наглядно демонстрирует, что оптимизатор отвечает не за доли +процентов производительности, а за принципиальную возможность исполнения сложных +аналитических запросов в приемлемое время. Именно поэтому разработка +качественного оптимизатора занимает центральное место в проектировании любой +реляционной СУБД. + +\section{Обзор архитектур оптимизаторов} + +\subsection{System R} + +Оптимизатор System~R, разработанный в IBM Research в конце 1970-х годов, стал +первым стоимостным оптимизатором запросов и заложил фундаментальные принципы, +используемые во всех последующих системах. + +Оптимизатор, построенный по архитектуре System~R, разбивает запрос на блоки, +каждый из которых оптимизируется индивидуально. Блок запроса состоит из +конструкции \texttt{SELECT}, конструкции \texttt{FROM}, ссылающейся на одну или +несколько таблиц, и дерева предикатов \texttt{WHERE}. Несколько блоков +появляется в случае запроса с вложенными подзапросами. + +Для каждого блока оптимизатор выполняет два основных действия. Во-первых, для +запросов к одному отношению выбирается наилучший метод доступа на основании +стоимостной модели. Во-вторых, для запросов с несколькими отношениями +определяется оптимальный порядок соединений методом восходящего динамического +программирования: сначала выбираются оптимальные планы доступа к отдельным +таблицам, затем перебираются двухтабличные соединения, трехтабличные и так +далее. + +Стоимость плана вычисляется по формуле +\(\text{COST} = \text{PageFetches} + w \cdot \text{RSICalls}\), учитывающей +ожидаемый объем операций ввода-вывода и потребление ресурсов процессора, где +\(w\) --- весовой коэффициент. + +Важным нововведением System~R стало понятие интересных порядков. Стоимость плана +зависит не только от непосредственных затрат на выполнение оператора, но и от +того, обеспечивает ли он упорядоченность результата, требуемую вышестоящими +операторами. Например, использование соединения слиянием вместо хеш-соединения +может быть выгодно, если результат должен быть отсортирован для последующей +операции \texttt{ORDER BY}. + +К ограничениям архитектуры System~R относятся: + +\begin{itemize} + \item рассмотрение только левосторонних + деревьев соединений; + \item независимая оптимизация вложенных подзапросов; + \item невозможность гибкого расширения набора правил преобразования, что + необходимо при добавлении новых операторов языка SQL. +\end{itemize} + +Эти ограничения послужили мотивацией для создания расширяемых архитектур +оптимизаторов. + +Архитектуру, аналогичную System~R, используют PostgreSQL и ранние версии IBM +DB2. + +\subsection{Volcano} + +Volcano --- расширяемый, основанный на правилах, стоимостной +оптимизатор запросов, разработанный Грефе и Маккенной в 1993 году. +Volcano представил ряд концепций, ставших основой для последующих +расширяемых оптимизаторов: физические свойства выражений, +энфорсеры (обобщение интересных порядков System~R), структуру данных +Memo и нисходящий алгоритм поиска на основе динамического +программирования. + +Volcano разделяет поиск на две фазы: + +\begin{itemize} + \item \emph{фаза генерации} --- оптимизатор применяет правила трансформации + для порождения всех эквивалентных логических выражений. Применяется + рекурсивный нисходящий обход дерева: для каждого выражения сначала + исследуются дочерние выражения, затем применяются правила трансформации + к текущему выражению. Все порожденные выражения кэшируются в структуре + данных Memo для предотвращения дублирования. + + \item \emph{фаза стоимостного анализа} --- по завершении генерации всех + эквивалентных логических выражений оптимизатор ищет наилучший физический + план. Для каждого логического выражения применяются правила реализации, + порождающие физические операторы. Стоимость каждого физического плана + оценивается рекурсивно, и сохраняется наилучший найденный план. +\end{itemize} + +Поиск осуществляется нисходящим динамическим программированием с использованием +стратегии ветвей и границ: текущая верхняя граница стоимости передается при +рекурсивных вызовах и используется для отсечения заведомо неоптимальных планов. + +Основным недостаткам Volcano является полное раскрытие всех классов +эквивалентности на фазе генерации до начала стоимостного анализа, что приводит к +избыточным вычислениям. + +\section{Архитектура Cascades} + +\subsection{Основные понятия Cascades} + +Cascades --- это расширяемая архитектура оптимизатора запросов, являющаяся +логическим продолжением идеи Volcano. + +Основными объектами Cascades являются: + +\begin{itemize} + \item выражение --- дерево или фрагмент дерева, корнем которого является + логический либо физический оператор; + \item групповое выражение --- выражение, дочерние узлы которого являются + ссылками на группы Memo; + \item группа --- множество логически эквивалентных выражений, возвращающих + один и тот же результат; + \item правило трансформации --- правило, преобразующее логическое выражение в + логически эквивалентное выражение; + \item правило реализации --- правило, преобразующее логический оператор в + физический оператор; + \item физическое свойство --- требование относительно порядка, распределения, + разбиения или уникальности результата; + \item задача --- элементарная единица работы оптимизатора, например + исследование группы, применение правила или оптимизация выражения под + заданное свойство. +\end{itemize} + +Важным принципом Cascades является то, что правила являются объектами. Они +определяются условиями применимости и собственно алгоритмом применения. +Предполагается, что система легко расширяется добавленимем новых правил, потому +что все правила наследуются от общего интерфейса. + +\subsection{Группы эквивалентности и групповые выражения} + +Группа в Memo представляет собой множество выражений, которые эквивалентны с +точки зрения логического результата. Например, для трех отношений \(A\), \(B\) и +\(C\) выражения + +\[ + A \bowtie (B \bowtie C) = (A \bowtie B) \bowtie C +\] + +при выполнении условий ассоциативности соединения принадлежат одной группе, +поскольку возвращают одинаковый результат. Причем физические реализации этих +выражений могут отличаться, а стоимость может зависеть от кардинальности +промежуточных результатов. + +Групповое выражение хранит оператор и ссылки на дочерние группы. Например, +выражение \(Join(G_1, G_2)\) не указывает конкретное дерево для левого и правого +входов, а ссылается на группы \(G_1\) и \(G_2\), каждая из которых может +содержать множество альтернатив. Поэтому одно групповое выражение кодирует +комбинацию многих конкретных деревьев, храня эту информацию компактно. + +\subsection{Структура Memo} + +Memo является основной структурой данных Cascades. Оно выполняет сразу +несколько функций: устраняет дублирующиеся выражения, хранит альтернативы, +фиксирует результаты оптимизации под разными физическими свойствами и обеспечивает +точку синхронизации для задач поиска. + +Структура группы Memo включает следующие поля: + +\begin{itemize} + \item уникальный идентификатор группы; + \item список логических групповых выражений; + \item список физических групповых выражений; + \item логические свойства группы; + \item статистику и оценку кардинальности; + \item множество примененных правил, предотвращающее повторное применение + одного и того же правила к одному и тому же выражению; + \item состояние исследования группы. +\end{itemize} + +Групповое выражение, в свою очередь, содержит оператор, массив идентификаторов +дочерних групп, локальные свойства оператора, рассчитанную стоимость самого +оператора и служебные признаки. Для физического выражения дополнительно могут +храниться предоставляемые физические свойства, например порядок выходного потока +или способ распределения данных. + +На рисунке~\ref{fig:memo-structure} показан пример Memo для запроса с тремя +отношениями. Группа \(G_5\) представляет результат соединения трех отношений, а +внутри нее находятся два логически эквивалентных выражения с разной +ассоциацией соединений. Дочерние выражения ссылаются на группы, поэтому общие +подпланы не дублируются. + +{\color{red} TODO: поправить схему} +\begin{figure}[H] + \centering + \begin{tikzpicture}[ + group/.style={draw, rounded corners, align=left, minimum width=4.0cm, minimum height=1.5cm}, + expr/.style={draw, align=center, fill=white, minimum width=3.3cm, minimum height=0.6cm}, + arrow/.style={-{Stealth[length=2mm]}, thick} + ] + \node[group] (g1) at (0,0) {\textbf{Группа G1}\\Scan(A)}; + \node[group] (g2) at (5,0) {\textbf{Группа G2}\\Scan(B)}; + \node[group] (g3) at (10,0) {\textbf{Группа G3}\\Scan(C)}; + \node[group] (g4) at (2.5,-3) {\textbf{Группа G4}\\Join(G1,G2)\\HashJoin(G1,G2)}; + \node[group] (g6) at (7.5,-3) {\textbf{Группа G6}\\Join(G2,G3)\\HashJoin(G2,G3)}; + \node[group] (g5) at (5,-6) {\textbf{Группа G5}\\Join(G4,G3)\\Join(G1,G6)}; + + \draw[arrow] (g4) -- (g1); + \draw[arrow] (g4) -- (g2); + \draw[arrow] (g6) -- (g2); + \draw[arrow] (g6) -- (g3); + \draw[arrow] (g5) -- (g4); + \draw[arrow] (g5) -- (g6); + \draw[arrow] (g5) -- (g3); + \draw[arrow] (g5) -- (g1); + \end{tikzpicture} + \caption{Пример структуры Memo с группами эквивалентных выражений} + \label{fig:memo-structure} +\end{figure} + +При добавлении нового выражения Memo выполняет нормализацию и проверку на +дубликаты. Если выражение уже существует в некоторой группе, оно не добавляется +повторно. Если выражение обнаруживает эквивалентность двух ранее различных +групп, группы могут быть объединены. Операция объединения требует аккуратного +обновления ссылок, таблиц победителей и состояния правил, поэтому в практической +реализации она является одной из наиболее сложных частей структуры Memo. + +\subsection{Задачи и взаимодействие компонентов поиска} + +Cascades организует оптимизацию как выполнение набора задач. Задача может +исследовать группу, исследовать выражение, применить правило, реализовать +логический оператор, оптимизировать дочернюю группу под заданное физическое +свойство или построить вспомогательный оператор для обеспечения свойства. Такой +подход позволяет гибко управлять порядком работы и откладывать дорогостоящие +действия до тех пор, пока они не станут необходимыми. + +На рисунке~\ref{fig:cascades-tasks} показана схема взаимодействия задач в +оптимизаторе. Все подписи намеренно приведены на русском языке, поскольку схема +является частью русскоязычного отчета. + +\begin{figure}[H] + \centering + \begin{tikzpicture}[ + node distance=0.9cm and 1.1cm, + block/.style={draw, rounded corners, align=center, minimum width=3.4cm, minimum height=0.9cm}, + small/.style={draw, rounded corners, align=center, minimum width=2.9cm, minimum height=0.8cm}, + arrow/.style={-{Stealth[length=2mm]}, thick} + ] + \node[block] (root) {запрос\\к оптимизации}; + \node[block, right=of root] (memo) {вставка\\в Memo}; + \node[block, right=of memo] (optgroup) {задача\\оптимизации группы}; + \node[small, below left=of optgroup] (explore) {исследовать\\группу}; + \node[small, below=of optgroup] (implement) {реализовать\\выражение}; + \node[small, below right=of optgroup] (enforce) {обеспечить\\свойство}; + \node[small, below=of explore] (rules) {применить\\правила}; + \node[small, below=of implement] (cost) {оценить\\стоимость}; + \node[small, below=of enforce] (winner) {обновить\\победителя}; + + \draw[arrow] (root) -- (memo); + \draw[arrow] (memo) -- (optgroup); + \draw[arrow] (optgroup) -- (explore); + \draw[arrow] (optgroup) -- (implement); + \draw[arrow] (optgroup) -- (enforce); + \draw[arrow] (explore) -- (rules); + \draw[arrow] (rules) -| (memo); + \draw[arrow] (implement) -- (cost); + \draw[arrow] (cost) -- (winner); + \draw[arrow] (enforce) -- (winner); + \draw[arrow] (winner) -| (optgroup); + \end{tikzpicture} + \caption{Взаимодействие задач в оптимизаторе Cascades} + \label{fig:cascades-tasks} +\end{figure} + +В практической реализации задачи могут храниться в стеке, очереди с приоритетом +или специализированном планировщике. Приоритет задачи определяется ожидаемой +полезностью, ограничением стоимости, глубиной поиска и типом правила. Например, +применение правила проталкивания предиката обычно имеет высокий приоритет, +поскольку оно может уменьшить кардинальности и тем самым усилить последующее +отсечение ветвей. + +\subsection{Псевдокод алгоритма поиска} + +Ниже приведен упрощенный псевдокод поиска физического плана в архитектуре +Cascades. + +\begin{algorithm}[H] + \caption{Top-down Cascades search} + \label{alg:cascades-search} + \begin{algorithmic}[1] + \Function{Optimize}{$rootExpr, requiredProps$} + \State $rootGroup \gets Memo.Insert(rootExpr)$ + \State $upperBound \gets +\infty$ + \State \Return \Call{OptimizeGroup}{$rootGroup, requiredProps, upperBound$} + \EndFunction + \Statex + \Function{OptimizeGroup}{$group, props, bound$} + \If{$group$ has winner for $props$ with cost $\le bound$} + \State \Return stored winner + \EndIf + \State \Call{ExploreGroup}{$group$} + \State $bestPlan \gets null$ + \State $bestCost \gets bound$ + \ForAll{$expr \in group.expressions$} + \State $candidate \gets$ \Call{OptimizeExpression}{$expr, props, bestCost$} + \If{$candidate.cost < bestCost$} + \State $bestPlan \gets candidate$ + \State $bestCost \gets candidate.cost$ + \EndIf + \EndFor + \State \Call{StoreWinner}{$group, props, bestPlan, bestCost$} + \State \Return $bestPlan$ + \EndFunction + \Statex + \Function{ExploreGroup}{$group$} + \ForAll{$expr \in group.logicalExpressions$} + \ForAll{$rule \in MatchingRules(expr)$} + \If{\Call{IsApplicable}{$rule, expr$}} + \State $newExpr \gets$ \Call{ApplyRule}{$rule, expr$} + \State \Call{Memo.InsertIntoEquivalentGroup}{$newExpr, group$} + \EndIf + \EndFor + \EndFor + \EndFunction + \Statex + \Function{OptimizeExpression}{$expr, props, bound$} + \If{$expr$ is logical} + \State generate physical expressions using implementation rules + \EndIf + \State optimize children with derived required properties + \State prune expression if lower bound exceeds $bound$ + \State add local operator cost and enforcer cost if needed + \State \Return physical candidate + \EndFunction + \end{algorithmic} +\end{algorithm} + + + +\renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} +\clearpage +{\catcode`"\active\def"{\relax} + \addcontentsline{toc}{section}{\protect\numberline{}\refname}% + \printbibliography +} +\newpage +\end{document} diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index f8969d8..8a972eb 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -256,6 +256,7 @@ class Optimizer { } public: + // FIXME: сделать генерацию лучшего плана в виде просто дерева. PhysicalExpr* Optimize() { tasks_.emplace([this]() { OptimizeGroup(root_->group); From 93ae0890e3a52b4cb65554d5b3e8cd96eed0af8b Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 2 May 2026 19:46:50 +0300 Subject: [PATCH 014/120] wip --- report/thesis.tex | 714 +++++++++++++++++++++++++++++++++------------- 1 file changed, 523 insertions(+), 191 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index 0f3728c..c49cc15 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -22,14 +22,14 @@ \vspace*{-6ex} \begin{center} - \Large{\textit{\textbf{<<}}} + \Large{\textit{\textbf{}}} \vspace*{-3ex} \rule{1\textwidth}{1.2pt} \vspace*{-0.2ex} - \Large{\textit{\textbf{>>}}} + \Large{\textit{\textbf{}}} \vspace*{-3ex} \rule{1\textwidth}{1.2pt} @@ -91,22 +91,22 @@ (СУБД) являются ключевой частью информационных систем. По данным аналитических исследований, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено как расширением круга решаемых задач, так и усложнением структуры обрабатываемых -данных. Реляционные СУБД, работающие с различными диалектами языка SQL, -продолжают занимать доминирующее положение в сегменте обработки транзакций и -аналитических запросов. - -Одним из определяющих факторов конкурентоспособности между различными СУБД -является качество оптимизатора запросов. Оптимизатор представляет собой -компонент, ответственный за преобразование декларативного SQL-запроса в -эффективный физический план исполнения. Именно от качества работы оптимизатора в -значительной степени зависит производительность системы: выбор неоптимального -плана исполнения может привести к увеличению времени выполнения запроса в -десятки раз. +данных и увеличением их объема. Реляционные базы данных, работающие с различными +диалектами языка SQL, продолжают занимать доминирующее положение в сегменте +обработки транзакций и аналитических запросов. + +Одним из определяющих факторов конкурентоспособности между различными +реализациями СУБД является качество оптимизатора запросов. Оптимизатор +представляет собой компонент, ответственный за преобразование декларативного +SQL-запроса в эффективный физический план исполнения. Именно от качества работы +оптимизатора в значительной степени зависит производительность всей системы: +выбор неоптимального плана исполнения может привести к увеличению времени +выполнения запроса в десятки раз относительно оптимального случая. Также оптимизатор запросов считается наиболее сложной составной частью любой СУБД. Задача нахождения оптимального плана является NP-полной в общем случае, -что обусловливает необходимость применения эвристических методов и алгоритмов -ограниченного перебора. Современные коммерческие и открытые СУБД используют +что обуславливает необходимость применения эвристических методов и алгоритмов +ограниченного перебора. Современные коммерческие и открытые системы используют различные архитектуры оптимизаторов, среди них наиболее популярны устоявшиеся и проверенные временем архитектуры Cascades и Volcano. @@ -117,28 +117,26 @@ допускающим параллельность исполнения. Целью данной работы является разработка и реализация оптимизатора подмножества -SQL-запросов на основе архитектуры Cascades. +SQL-запросов на основе архитектуры Cascades, а также создание фреймворка для его +итеративного улучшения путем сравнения с промышленными реализациями. -{\color{red} TODO: переформулировать} Для достижения поставленной цели необходимо решить следующие задачи: -\begin{enumerate} - \item провести обзор существующих архитектур оптимизаторов запросов, - включая System~R, Volcano и Cascades; - \item формализовать подмножество реляционной алгебры, подлежащее - оптимизации; - \item разработать структуру данных Memo и алгоритм поиска оптимального - плана на основе архитектуры Cascades; - \item реализовать набор правил трансформации и реализации для - основных операторов реляционной алгебры; - \item реализовать метод ветвей и границ для эффективного отсечения - неоптимальных планов; - \item предложить метод дифференциального анализа физических планов - для автоматизированного сравнения с существующими СУБД. -\end{enumerate} - -\section{Оптимизатор как составная часть СУБД} +\begin{itemize} + \item изучить существующие архитектуры оптимизаторов запросов, включая + System~R, Volcano и Cascades; + \item формализовать подмножество SQL и соответствующее подмножество + реляционной алгебры; + \item реализовать структуру данных Memo и алгоритм поиска оптимального плана + на основе архитектуры Cascades; + \item реализовать набор правил трансформации и реализации для основных + операторов реляционной алгебры; + \item реализовать метод ветвей и границ для эффективного отсечения + неоптимальных планов; + \item реализовать метод дифференциального анализа физических планов для + автоматизированного поиска примеров неоптимальных планов. +\end{itemize} -\subsection{Архитектура системы управления базами данных} +\section{Архитектура СУБД} Система управления базами данных представляет собой программный комплекс, обеспечивающий хранение, извлечение и модификацию структурированных @@ -146,32 +144,67 @@ \subsection{Архитектура системы управления база большинства реляционных СУБД включает ряд типовых компонентов, взаимодействие которых обеспечивает выполнение пользовательских запросов. -К основным компонентам СУБД относятся: транспортный уровень, принимающий -клиентские подключения и запросы; синтаксический анализатор (парсер), -выполняющий разбор текста SQL-запроса и построение синтаксического дерева; -оптимизатор запросов, преобразующий логическое представление запроса в -эффективный физический план исполнения; исполнитель, непосредственно реализующий -физический план; менеджер хранения данных, управляющий размещением данных на -физических носителях; менеджер транзакций и менеджер блокировок, обеспечивающие -гарантии транзакций; а также менеджер страниц памяти, отвечающий за кэширование -страниц данных в оперативной памяти~\refImage{fig::dbms_arch}. +К основным компонентам СУБД относятся~\refImage{fig::dbms_arch}: -{\color{red} TODO: диаграмму можно поинтереснее} +\begin{itemize} + \item транспортный уровень, принимающий клиентские подключения и запросы; + \item синтаксический анализатор (парсер), выполняющий разбор текста +SQL-запроса и построение синтаксического дерева; + \item оптимизатор запросов, преобразующий логическое представление запроса в +эффективный физический план исполнения; + \item исполнитель, непосредственно реализующий физический план; + \item менеджер хранения данных, управляющий размещением данных на физических +носителях; + \item менеджер транзакций и менеджер блокировок, обеспечивающие гарантии +транзакций; + \item менеджер страниц памяти, отвечающий за кэширование страниц данных в +оперативной памяти. +\end{itemize} \begin{figure}[!htb]\centering - \begin{tikzpicture}[ - layer/.style={rectangle, draw, minimum width=10cm, minimum height=0.8cm, align=center, font=\small}, - node distance=0.15cm - ] - \node[layer] (net) {Сетевой протокол и менеджер соединений}; - \node[layer, below=of net] (parse) {Парсер и семантический анализатор SQL}; - \node[layer, below=of parse, fill=gray!20] (opt) {\textbf{Оптимизатор запросов}}; - \node[layer, below=of opt] (exec) {Исполнитель физического плана}; - \node[layer, below=of exec] (tx) {Менеджер транзакций}; - \node[layer, below=of tx] (buf) {Менеджер страниц памяти}; - \node[layer, below=of buf] (acc) {Методы доступа: индексы, кучи}; - \node[layer, below=of acc] (disk) {Дисковая подсистема хранения}; - \end{tikzpicture} +\usetikzlibrary{fit} +\begin{tikzpicture}[ + box/.style={rectangle, draw, minimum width=4.1cm, minimum height=1cm, + align=center, font=\small}, + wbox/.style={rectangle, draw, minimum width=9.1cm, minimum height=1cm, + align=center, font=\small}, + grp/.style={draw, dashed, inner sep=0.3cm}, + lbl/.style={font=\small}, +] + \node[box] (clust) at (-2.5, 0) {Кластерные\\соединения}; + \node[box] (client) at ( 2.5, 0) {Клиентские\\соединения}; + \node[grp, fit=(clust)(client)] (TG) {}; + \node[lbl, anchor=south west] at (TG.north west) {Транспорт}; + + \node[wbox] (parser) at (0, -2.8) {Синтаксический анализатор}; + \node[wbox, fill=gray!20] (optim) at (0, -4.05) {\textbf{Оптимизатор запросов}}; + \node[grp, fit=(parser)(optim)] (QPG) {}; + \node[lbl, anchor=south west] at (QPG.north west) {Обработчик запросов}; + + \node[box] (remote) at (-2.5, -6.85) {Удалённое\\исполнение}; + \node[box] (local) at ( 2.5, -6.85) {Локальное\\исполнение}; + \node[grp, fit=(remote)(local)] (EEG) {}; + \node[lbl, anchor=south west] at (EEG.north west) {Исполнитель}; + + \node[box] (txmgr) at (-2.5, -9.65) {Менеджер\\транзакций}; + \node[box] (lockmgr) at ( 2.5, -9.65) {Менеджер\\блокировок}; + \node[wbox] (access) at ( 0, -10.9) {Методы доступа}; + \node[box] (bufmgr) at (-2.5, -12.15) {Менеджер\\страниц}; + \node[box] (recmgr) at ( 2.5, -12.15) {Менеджер\\восстановления}; + \node[grp, fit=(txmgr)(lockmgr)(access)(bufmgr)(recmgr)] (SEG) {}; + \node[lbl, anchor=south west] at (SEG.north west) {Подсистема хранения}; + + \draw[<->, thick, >=stealth] + ([xshift=0.4cm]TG.south east) -- ([xshift=0.4cm]QPG.north east); + \draw[<->, thick, >=stealth] + ([xshift=0.4cm]QPG.south east) -- ([xshift=0.4cm]EEG.north east); + \draw[<->, thick, >=stealth] + ([xshift=0.4cm]EEG.south east) -- ([xshift=0.4cm]SEG.north east); + + \draw[thick] ([xshift=-0.5cm]clust.west) -- ([xshift=-0.5cm]remote.west); + \draw[->, thick, >=stealth] ([xshift=-0.5cm]clust.west) -- (clust.west); + \draw[->, thick, >=stealth] ([xshift=-0.5cm]remote.west) -- (remote.west); +\end{tikzpicture} \caption{Архитектура реляционной системы управления базами данных} \label{fig::dbms_arch} \end{figure} @@ -182,8 +215,7 @@ \subsection{Процесс исполнения SQL-запроса} последовательных этапов. \begin{enumerate} - \item \emph{Синтаксический анализ} --- текст SQL-запроса подвергается - лексическому и синтаксическому разбору. Результатом данного этапа + \item \emph{Синтаксический анализ} --- запроса проходит лексический и синтаксический разбор. Результатом данного этапа является синтаксическое дерево, узлы которого соответствуют конструкциям языка SQL: операторам \texttt{SELECT}, \texttt{FROM}, \texttt{WHERE}, \texttt{JOIN}, \texttt{GROUP BY}, \texttt{ORDER BY} и другим. На этом же @@ -197,31 +229,29 @@ \subsection{Процесс исполнения SQL-запроса} них рассматривает возможные физические реализации операторов. С помощью модели стоимости оптимизатор оценивает затраты на выполнение каждого плана и выбирает план с наименьшей оценочной стоимостью. Результатом - этого этапа является физический план исполнения --- дерево физических + этого этапа является физический план исполнения. Под этим понимается дерево физических операторов с указанием конкретных алгоритмов соединения, методов доступа к данным и порядка операций. \item \emph{Исполнение физического плана} --- движок выполнения реализует физический план, порождая потоки кортежей. Данные извлекаются из хранилища, обрабатываются операторами плана и формируют результирующий - набор, возвращаемый клиенту. + набор, возвращаемый пользователю. \end{enumerate} \section{Реляционная алгебра} -\subsection{Определение реляционной алгебры} - Реляционная алгебра представляет собой формальный язык для описания операций над -отношениями реляционной базы данных. В отличие от декларативного языка SQL, -реляционная алгебра является процедурным языком: она определяет конкретную +отношениями реляционной базы данных. В отличие от декларативного SQL, +реляционная алгебра процедурной, так как она определяет конкретную последовательность операций, необходимых для получения результата. Отношение определяется как конечное множество кортежей, каждый из которых представляет собой упорядоченный набор значений атрибутов: \[ - R \subseteq \text{dom}(A_1) \times \text{dom}(A_2) \times \ldots \times \text{dom}(A_n). + R \subseteq \text{dom}(A_1) \times \text{dom}(A_2) \times \ldots \times \text{dom}(A_n). \] \subsection{Основные операторы реляционной алгебры} @@ -231,30 +261,24 @@ \subsection{Основные операторы реляционной алге \begin{enumerate} \item \emph{Фильтрация} \(\sigma_p(R)\) --- возвращает подмножество кортежей отношения \(R\), удовлетворяющих предикату \(p\). Например, - \(\sigma_{\text{age} > 30}(\text{Employee})\) вернет всех - сотрудников старше 30 лет. - + \(\sigma_{\text{age} > 30}(\text{Employee})\) вернет все кортежи из + отношения Employee, для которых значение атрибута age больше 30. \item \emph{Проекция} \(\pi_{A_1, \ldots, A_k}(R)\) --- формирует новое - отношение, содержащее только указанные атрибуты. - + отношение, содержащее только перечисленные атрибуты. \item \emph{Декартово произведение} \(R \times S\) --- формирует отношение, каждый кортеж которого является конкатенацией кортежа из \(R\) и кортежа - из \(S\), при этом в результате получается - \(|R \times S| = |R| \cdot |S|\) кортежей. - + из \(S\), при этом результат содержит \(|R \times S| = |R| \cdot |S|\) + элементов. \item \emph{Соединение} \(R \bowtie_p S\) --- комбинирует кортежи двух отношений на основании предиката \(p\). Внутреннее соединение определяется как \(R \bowtie_{R.a = S.b} S = \sigma_{R.a = S.b}(R \times S)\). - \item \emph{Объединение} \(R \cup S\) --- возвращает все кортежи, принадлежащие хотя бы одному из двух совместимых по схеме отношений. - \item \emph{Разность} \(R - S\) --- выбирает кортежи, принадлежащие \(R\), но отсутствующие в \(S\). - \item \emph{Агрегация} \(\gamma_{G, f}(R)\) --- разбивает отношение \(R\) на - непересекающиеся множества по множеству атрибутов \(G\) и вычисляет + непересекающиеся множества по набору атрибутов \(G\) и вычисляет агрегированные значения функции \(f\) (такие как \texttt{COUNT}, \texttt{SUM}, \texttt{AVG}, \texttt{MIN}, \texttt{MAX}) по каждому такому множеству. @@ -266,35 +290,38 @@ \subsection{Преобразование синтаксического дере синтаксическое дерево обычно преобразовывают в форму операторов реляционной алгебры. -Это преобразование выполняется по фиксированному -набору правил, отражающих семантику конструкций SQL: блок -\texttt{SELECT--FROM--WHERE} превращается в проекцию над селекцией над -произведением соединяемых таблиц; конструкция \texttt{GROUP BY} -порождает оператор группировки; \texttt{ORDER BY} --- запрос на -требуемое физическое свойство сортированности; вложенные подзапросы --- -оператор Apply, который впоследствии может быть удалён процедурой -декорреляции. - -Данное преобразование необходимо по нескольким причинам. Во-первых, -реляционная алгебра обладает формализованным набором правил эквивалентности, которые позволяют оптимизатору корректно -преобразовывать план запроса без изменения семантики. Во-вторых, -алгебраическое представление позволяет единообразно обрабатывать -различные синтаксические формы SQL-запросов, порождающие одинаковые -логические планы. Наконец, разделение на логические и физические -операторы позволяет оптимизатору независимо исследовать порядок -операций и алгоритмы их реализации. +Это преобразование выполняется по фиксированному набору правил, отражающих +семантику конструкций SQL: + +\begin{itemize} + \item блок \texttt{SELECT-FROM-WHERE} превращается в проекцию над селекцией + над декартовым произведением соединяемых таблиц; + \item конструкция \texttt{GROUP BY} порождает оператор группировки; + \item \texttt{ORDER BY} --- запрос на требуемое физическое свойство + сортированности; + \item вложенные подзапросы --- оператор Apply, который впоследствии может быть + удалён процедурой декорреляции. +\end{itemize} +Данное преобразование необходимо по нескольким причинам. Во-первых, реляционная +алгебра обладает формализованным набором правил эквивалентности, которые +позволяют оптимизатору корректно преобразовывать план запроса без изменения +семантики. Во-вторых, алгебраическое представление позволяет единообразно +обрабатывать различные синтаксические формы SQL-запросов, порождающие одинаковые +логические планы. Наконец, разделение на логические и физические операторы +позволяет оптимизатору независимо исследовать порядок операций и алгоритмы их +реализации. \section{Цель оптимизатора} Сформулируем задачу, которую решает оптимизатор: по запросу, представленному в форме дерева операторов реляционной алгебры, построить эквивалентный и оптимальный, с точки зрения необходимых для исполнения ресурсов, план -исполнения. Итоговый план является деревом, узлы которого помечены конкретными -указаниями на алгоритмы, реализующими один или несколько операторов реляционной -алгебры. Эквивалентность означает, что итоговый физический план и исходный -запрос при исполнении на любом наборе данных порождают одинаковые отношения с -точностью до требуемых свойств, таких как сортировка. +исполнения. Итоговый план является деревом, вершины которого помечены +конкретными указаниями на алгоритмы, реализующими один или несколько операторов +реляционной алгебры. Эквивалентность означает, что итоговый физический план и +исходный запрос при исполнении на любом наборе данных порождают одинаковые +отношения с точностью до требуемых свойств, таких как сортировка. Запрос в форме реляционной алгебры также называют логическим планом, а операторы реляционной алгебры --- логическими операторами. @@ -308,17 +335,27 @@ \section{Цель оптимизатора} операторов, примененных последовательно: доступ к данным и фильтрация по тому же предикату. -Эквивалентность планов обеспечивается свойствами реляционной алгебры. Например, -коммутативность и ассоциативность соединения: -\[ - R \bowtie S = S \bowtie R, \qquad (R \bowtie S) \bowtie T = R \bowtie (S \bowtie T). -\] +Эквивалентность планов обеспечивается свойствами реляционной алгебры. + +\begin{Example} + Коммутативность соединения: + \[ + R \bowtie S \equiv S \bowtie R. + \] +\end{Example} -Оптимальность запроса оценивается с помощью стоимостной функции +\begin{Example} + Ассоциативность соединения: + \[ + (R \bowtie S) \bowtie T = R \bowtie (S \bowtie T). + \] +\end{Example} + +Оптимальность запроса оценивается с помощью функции стоимости \(\mathrm{cost} \colon \mathcal{P}_L \to \mathbb{R}_{\ge 0}\), где \(\mathcal{P}_{L}\) --- множество эквивалентных физических планов. Это -отображение оценивает затраты на исполнение плана исходя из модели работы -операторов, а также основываясь на эвристиках и статистике о данных в +отображение оценивает затраты на исполнение плана исходя из конкретных +реализаций алгоритмов, а также основываясь на эвристиках и статистике о данных в отношениях. Другими словами, цель оптимизатора состоит в том, чтобы для входного запроса найти план \(P^* \in \mathcal{P}_L\), минимизирующий \(\mathrm{cost}\): \[ @@ -331,70 +368,79 @@ \section{Цель оптимизатора} \(C_k\) --- \(k\)-е число Каталана. Таким образом, пространство поиска растет экспоненциально с увеличением числа соединяемых таблиц. -{\color{red}: TODO: ссылка на источник} - -Поскольку полный перебор \(\mathcal{P}_L\) в общем случае невозможен из-за -экспоненциального роста числа альтернатив, на практике речь идёт о поиске плана -с приемлемо малой стоимостью в определенном подмножестве пространства поиска. -Именно эта задача и определяет архитектуру современных оптимизаторов: -расширяемое описание пространства поиска через правила преобразования, -эффективный алгоритм его исследования и стоимостная модель, позволяющая отсекать -заведомо неоптимальные ветви. - -Выбор плана исполнения запроса может оказывать кардинальное влияние на объем -требуемых вычислительных ресурсов. В качестве примера оценим количества -страничных чтений с диска для различных физических операторов. Пусть имеется три отношения: таблица -\texttt{customer} с \(|C| = 10^5\) строк, таблица \texttt{orders} с -\(|O| = 10^7\) строк и таблица \texttt{lineitem} с \(|L| = 5 \cdot 10^7\) -строк. Размер страницы --- \(8\) КБ; в одну страницу укладывается -\(100\) строк \texttt{customer}, \(80\) строк \texttt{orders} и \(50\) -строк \texttt{lineitem}. Соответственно, общее число страниц составляет +{\color{red}: TODO: ссылка на статью есть в лекциях Andy} + +Поскольку полный перебор \(\mathcal{P}_L\) для достаточно больших \(n\) +невозможен, на практике речь идёт о поиске плана с приемлемо малой стоимостью в +определенном подмножестве пространства поиска. Именно эта задача и определяет +архитектуру современных оптимизаторов: расширяемое описание пространства поиска +через правила преобразования, эффективный алгоритм его исследования и +стоимостная модель, позволяющая отсекать заведомо неоптимальные ветви. + +Выбор плана исполнения запроса может оказывать огромное влияние на объем +требуемых вычислительных ресурсов. В качестве примера оценим количество чтений +страниц с диска для различных физических операторов. Пусть имеется три +отношения: таблица \texttt{customer} с \(|C| = 10^5\) строк, таблица +\texttt{orders} с \(|O| = 10^7\) строк и таблица \texttt{lineitem} с +\(|L| = 5 \cdot 10^7\) строк. Размер страницы --- \(8\) КБ. В одну страницу +помещается \(100\) строк \texttt{customer}, \(80\) строк \texttt{orders} и +\(50\) строк \texttt{lineitem}. Соответственно, общее число страниц составляет \(P_C = 10^3\), \(P_O = 1{,}25 \cdot 10^5\), \(P_L = 10^6\). Запрос состоит в соединении трёх таблиц по внешним ключам с последующей агрегацией. Рассмотрим два альтернативных плана. +{\color{red} TODO: визуализация планов (tikz) в виде дерева с кардинальностью + отношений на ребрах} + \begin{itemize} \item План \(P_1\): \((\texttt{customer} \bowtie \texttt{orders}) \bowtie \texttt{lineitem}\) с реализацией обоих соединений через Hash Join, для чего сначала полностью считываются \(P_C + P_O = 1{,}26 \cdot 10^5\) страниц для построения хеш-таблицы, после чего промежуточный результат размером - \(10^7\) строк (равный \(|O|\)) соединяется с \texttt{lineitem}, требуя - считывания ещё \(P_L = 10^6\) страниц. В сумме --- порядка - \(1{,}126 \cdot 10^6\) операций чтения с диска. + \(10^7\) строк соединяется с \texttt{lineitem}, требуя считывания ещё % + \(P_L = 10^6\) страниц. В сумме --- порядка \(1{,}126 \cdot 10^6\) + операций чтения с диска. \item План \(P_2\): тот же запрос, но реализованный как соединение с помощью вложенных циклов без использования индексов: для каждой строки - \texttt{customer} полностью просматривается \texttt{orders}, для каждой + \texttt{customer} полностью читается таблица \texttt{orders}, для каждой результирующей пары --- \texttt{lineitem}. Совокупный объём ввода-вывода оценивается величиной \(P_C \cdot P_O \cdot P_L \approx 1{,}25 \cdot 10^{14}\) операций чтения, что на восемь порядков превышает \(P_1\). \end{itemize} -{\color{red} TODO: пример посложнее} +{\color{red} TODO: пример с логическими трансформациями, аналогично визуализация + планов (tikz). Адаптировать абзац ниже.} -Различие на восемь порядков иллюстрирует, что разница между удачным и неудачным -планами может составлять сотни миллионов раз. Если исполнение \(P_1\) на -современной системе занимает порядка секунд, то наивный \(P_2\) --- десятки лет -реального времени. Более того, если в плане \(P_1\) дополнительно использовать -индекс по внешнему ключу при соединении с \texttt{lineitem}, стоимость может -снизиться ещё в несколько раз. +Различие на восемь порядков в первом случае показывает, что разница между +удачным и неудачным планами может составлять сотни миллионов раз. Если +исполнение \(P_1\) на современной системе занимает порядка секунд, то наивный +\(P_2\) будет завершен через десятки лет. Более того, если в плане \(P_1\) +дополнительно использовать индекс по внешнему ключу при соединении с +\texttt{lineitem}, стоимость может снизиться ещё в несколько раз. Этот пример наглядно демонстрирует, что оптимизатор отвечает не за доли процентов производительности, а за принципиальную возможность исполнения сложных -аналитических запросов в приемлемое время. Именно поэтому разработка +аналитических запросов за приемлемое время. Именно поэтому разработка качественного оптимизатора занимает центральное место в проектировании любой реляционной СУБД. \section{Обзор архитектур оптимизаторов} +Рассмотрим наиболее популярные архитектуры оптимизаторов. + \subsection{System R} +{\color{red} TODO: ссылка на статью по System R. Есть в лекциях Andy} + Оптимизатор System~R, разработанный в IBM Research в конце 1970-х годов, стал первым стоимостным оптимизатором запросов и заложил фундаментальные принципы, используемые во всех последующих системах. +Архитектуру, аналогичную System~R, реализуют PostgreSQL и ранние версии IBM DB2. + Оптимизатор, построенный по архитектуре System~R, разбивает запрос на блоки, каждый из которых оптимизируется индивидуально. Блок запроса состоит из конструкции \texttt{SELECT}, конструкции \texttt{FROM}, ссылающейся на одну или @@ -434,18 +480,16 @@ \subsection{System R} Эти ограничения послужили мотивацией для создания расширяемых архитектур оптимизаторов. -Архитектуру, аналогичную System~R, используют PostgreSQL и ранние версии IBM -DB2. - \subsection{Volcano} -Volcano --- расширяемый, основанный на правилах, стоимостной -оптимизатор запросов, разработанный Грефе и Маккенной в 1993 году. -Volcano представил ряд концепций, ставших основой для последующих -расширяемых оптимизаторов: физические свойства выражений, -энфорсеры (обобщение интересных порядков System~R), структуру данных -Memo и нисходящий алгоритм поиска на основе динамического -программирования. +Volcano --- расширяемый, основанный на правилах, стоимостной оптимизатор +запросов, разработанный Грефе в 1993 году. Volcano ввел ряд концепций, ставших +основой для последующих расширяемых оптимизаторов: физические свойства +выражений, обеспечивающие правила, структуру данных Memo и нисходящий алгоритм +поиска на основе динамического программирования. + +{color{red} TODO: ссылка на статью (взять из лекций Andy). Добавить системы + использующие Volcano} Volcano разделяет поиск на две фазы: @@ -474,8 +518,6 @@ \subsection{Volcano} \section{Архитектура Cascades} -\subsection{Основные понятия Cascades} - Cascades --- это расширяемая архитектура оптимизатора запросов, являющаяся логическим продолжением идеи Volcano. @@ -499,19 +541,20 @@ \subsection{Основные понятия Cascades} заданное свойство. \end{itemize} -Важным принципом Cascades является то, что правила являются объектами. Они -определяются условиями применимости и собственно алгоритмом применения. -Предполагается, что система легко расширяется добавленимем новых правил, потому -что все правила наследуются от общего интерфейса. +Важным принципом данной архитектуры является то, что правила являются объектами +первого класса. Они определяются условиями применимости и собственно алгоритмом +применения. Предполагается, что система легко расширяется добавленимем новых +правил, потому что все правила наследуются от общего интерфейса и имеют +одинаковую структуру. -\subsection{Группы эквивалентности и групповые выражения} +\subsection{Группы эквивалентности и выражения} Группа в Memo представляет собой множество выражений, которые эквивалентны с -точки зрения логического результата. Например, для трех отношений \(A\), \(B\) и +точки зрения логического результата. Например, для отношений \(A\), \(B\) и \(C\) выражения \[ - A \bowtie (B \bowtie C) = (A \bowtie B) \bowtie C + A \bowtie (B \bowtie C) ; \qquad{} (A \bowtie B) \bowtie C \] при выполнении условий ассоциативности соединения принадлежат одной группе, @@ -532,24 +575,21 @@ \subsection{Структура Memo} фиксирует результаты оптимизации под разными физическими свойствами и обеспечивает точку синхронизации для задач поиска. -Структура группы Memo включает следующие поля: +Группа в Memo включает следующую информацию: \begin{itemize} - \item уникальный идентификатор группы; - \item список логических групповых выражений; - \item список физических групповых выражений; - \item логические свойства группы; - \item статистику и оценку кардинальности; - \item множество примененных правил, предотвращающее повторное применение - одного и того же правила к одному и тому же выражению; - \item состояние исследования группы. + \item уникальный идентификатор группы; + \item список логических выражений; + \item список физических выражений; + \item логические свойства группы; + \item статистику и оценку кардинальности; + \item состояние исследования группы. \end{itemize} -Групповое выражение, в свою очередь, содержит оператор, массив идентификаторов -дочерних групп, локальные свойства оператора, рассчитанную стоимость самого -оператора и служебные признаки. Для физического выражения дополнительно могут -храниться предоставляемые физические свойства, например порядок выходного потока -или способ распределения данных. +Выражение, в свою очередь, содержит сам оператор, массив идентификаторов +дочерних групп. Для физического выражения дополнительно могут храниться +предоставляемые физические свойства, например сортировка выходного потока, и +рассчитанная стоимость исполнения этого оператора. На рисунке~\ref{fig:memo-structure} показан пример Memo для запроса с тремя отношениями. Группа \(G_5\) представляет результат соединения трех отношений, а @@ -558,6 +598,7 @@ \subsection{Структура Memo} подпланы не дублируются. {\color{red} TODO: поправить схему} +{\color{red} TODO: привести сам запрос} \begin{figure}[H] \centering \begin{tikzpicture}[ @@ -585,25 +626,27 @@ \subsection{Структура Memo} \label{fig:memo-structure} \end{figure} -При добавлении нового выражения Memo выполняет нормализацию и проверку на -дубликаты. Если выражение уже существует в некоторой группе, оно не добавляется -повторно. Если выражение обнаруживает эквивалентность двух ранее различных -групп, группы могут быть объединены. Операция объединения требует аккуратного -обновления ссылок, таблиц победителей и состояния правил, поэтому в практической -реализации она является одной из наиболее сложных частей структуры Memo. +При добавлении нового выражения Memo выполняет проверку на дубликаты. Если +выражение уже существует в некоторой группе, оно не добавляется повторно. Если +алгоритм в процессе работы обнаруживает эквивалентность двух ранее различных +групп, то они могут быть объединены. При этом требуется обновление ссылок и +состояния правил. -\subsection{Задачи и взаимодействие компонентов поиска} +\subsection{Алгоритм поиска} Cascades организует оптимизацию как выполнение набора задач. Задача может исследовать группу, исследовать выражение, применить правило, реализовать логический оператор, оптимизировать дочернюю группу под заданное физическое свойство или построить вспомогательный оператор для обеспечения свойства. Такой подход позволяет гибко управлять порядком работы и откладывать дорогостоящие -действия до тех пор, пока они не станут необходимыми. +действия до тех пор, пока они не станут необходимыми, а также разбивать поиск на +несколько этапов и распараллеливать исполнение независимых веток. При этом +однопоточные реализации хранят задачи в обычной очереди. На рисунке~\ref{fig:cascades-tasks} показана схема взаимодействия задач в -оптимизаторе. Все подписи намеренно приведены на русском языке, поскольку схема -является частью русскоязычного отчета. +оптимизаторе. + +{\color{red} TODO: поправить рисунок} \begin{figure}[H] \centering @@ -639,17 +682,10 @@ \subsection{Задачи и взаимодействие компонентов \label{fig:cascades-tasks} \end{figure} -В практической реализации задачи могут храниться в стеке, очереди с приоритетом -или специализированном планировщике. Приоритет задачи определяется ожидаемой -полезностью, ограничением стоимости, глубиной поиска и типом правила. Например, -применение правила проталкивания предиката обычно имеет высокий приоритет, -поскольку оно может уменьшить кардинальности и тем самым усилить последующее -отсечение ветвей. +На листинге~\ref{alg:cascades-search} приведен псевдокод алгоритма поиска в +архитектуре Cascades. -\subsection{Псевдокод алгоритма поиска} - -Ниже приведен упрощенный псевдокод поиска физического плана в архитектуре -Cascades. +{color{red} TODO: поправить листинг, убрать в приложение} \begin{algorithm}[H] \caption{Top-down Cascades search} @@ -702,7 +738,303 @@ \subsection{Псевдокод алгоритма поиска} \end{algorithmic} \end{algorithm} +{color{red} TODO: добавить описание алгоритма} + +\section{Правила трансформации и реализации} + +Правило в оптимизаторе Cascades состоит из образца, условия применимости и +алгоритма применения. Образец описывает форму логического выражения, к которому +может быть применено правило. Условие применимости проверяет дополнительные +требования: отсутствие внешних ссылок, тип соединения, сохранение семантики +\texttt{NULL}, совместимость свойств и другие ограничения. + +Формально правило можно представить как отображение: + +\[ + r : pattern(e) \land condition(e) \rightarrow substitute(e), +\] + +где \(e\) --- исходное выражение, \(pattern\) --- структурный образец, +\(condition\) --- предикат применимости, а \(substitute\) --- выражение-замена. +Для правил трансформации результатом применения является новое логическое +выражение в группе, а для правил реализации --- физическое выражение в той же +группе. + +\subsection{Логические правила трансформации} + +Наиболее важные правила трансформации направлены на уменьшение промежуточных +кардинальностей, удаление лишних атрибутов и исследование новых порядков +выполнения соединения. + +Правило проталкивания предиката перемещает выборку ниже оператора соединения, +если предикат обращается только к атрибутам одного входа. Для внутреннего +соединения это правило можно записать следующим образом: + +\[ + \sigma_p(R \bowtie_q S) \Rightarrow (\sigma_p(R)) \bowtie_q S, + \quad attrs(p) \subseteq attrs(R). +\] + +Условие активации требует, чтобы предикат не зависел от атрибутов второго входа +и чтобы его перемещение не меняло семантику внешнего соединения. Для левого +внешнего соединения проталкивание предиката в правый вход может быть +некорректным, если предикат фильтрует строки, которые должны быть дополнены +значениями \texttt{NULL}. + +Правило проталкивания проекции уменьшает ширину промежуточных кортежей. Если +родительские операторы используют только часть атрибутов входа, оптимизатор +может удалить ненужные столбцы раньше, снизив объем памяти и стоимость передачи +данных. Условие активации требует сохранить все атрибуты, необходимые для +предикатов, соединений, группировок и последующих вычисляемых выражений. + +Правила коммутативности и ассоциативности соединений исследуют пространство +возможных порядков применения соединения: + +\[ + R \bowtie S \Rightarrow S \bowtie R, +\] + +\[ + R \bowtie (S \bowtie T) \Rightarrow (R \bowtie S) \bowtie T. +\] + +Эти правила безопасны для внутренних соединений при корректном переносе +предикатов, однако для внешних соединений их условия применимости значительно +сложнее. Поэтому промышленные системы часто используют специальные алгоритмы, +учитывающие зависимости в предикатах с помощью представлений в виде графов. + +Правило объединения выборок заменяет два последовательных фильтра одним с +конъюнкцией предикатов: + +\[ + \sigma_p(\sigma_q(R)) \Rightarrow \sigma_{p \land q}(R). +\] + +Такое преобразование упрощает дальнейший анализ селективности и позволяет +сопоставить составной предикат с составным индексом. Обратное правило также +может быть полезно, если оптимизатору нужно разнести конъюнкты по разным ветвям +плана. + +Правило удаления лишнего соединения применимо, если соединяемая таблица не +вносит атрибутов в результат, а ограничения ключей и внешних ключей гарантируют, +что соединение не изменяет множество строк. Например, соединение таблицы заказов +с таблицей клиентов может быть удалено, если результат использует только +атрибуты заказов, а ограничение внешнего ключа гарантирует существование +соответствующего клиента. + +{color{red}: дописать, мб примеры?} + +\subsection{Правила реализации} + +Правила реализации переводят логические операторы в физические. Например, для +логического оператора чтения таблицы могут быть применены правила: + +\begin{itemize} + \item \texttt{LogicalGet} \(\Rightarrow\) \texttt{SeqScan}; + \item \texttt{LogicalGet} \(\Rightarrow\) \texttt{IndexScan}, если имеется + индекс, совместимый с предикатом или требуемым порядком. +\end{itemize} + +Для логического соединения могут быть созданы физические операторы +\texttt{NestedLoopJoin}, \texttt{HashJoin} и \texttt{MergeJoin}. Хеш-соединение +обычно требует предиката равенства по ключам, поскольку именно по ним строится +хеш-таблица. Сортировочное соединение требует, чтобы оба входа были +отсортированы по ключам соединения, либо чтобы оптимизатор мог добавить +сортировки как обеспечивающие операторы. Вложенные циклы применимы всегда, но +стоимость этого оператора может быть высокой без доступа к внутреннему отношению +с использованием индекса. + +Правила реализации агрегации выбирают между хеш-агрегацией и потоковой +агрегацией. Хеш-агрегация не требует предварительного порядка, но потребляет +память пропорционально числу групп. Потоковая агрегация эффективна при уже +отсортированном входе, поскольку каждая группа обрабатывается последовательно. +Если требуемый порядок нужен также родительскому оператору, потоковая агрегация +может оказаться выгодной даже учитывая затраты на сортировку. + +{color{red} TODO: псевдокод алгоритмов} + +\subsection{Обеспечивающие операторы} + +Физические свойства в Cascades обрабатываются через требуемые и предоставляемые +свойства. Если родительский оператор требует вход, отсортированный по атрибуту +\(a\), а выбранный дочерний план такого порядка не предоставляет, оптимизатор +может добавить обеспечивающий оператор \texttt{Sort}. + +Обеспечивающие операторы не изменяют логический результат, но меняют физические +свойства и увеличивают стоимость. Поэтому они рассматриваются наравне с другими +физическими альтернативами. Например, план с хеш-соединением и последующей +сортировкой может конкурировать с планом на основе соединения слиянием, которое +сохраняет порядок результата. + +\section{Метод ветвей и границ} + +Метод ветвей и границ используется для сокращения пространства поиска и, как +следствие, неасимптотическим улучшением скорости работы алгоритма. В контексте +Cascades ветвями являются альтернативные выражения и комбинации физических +реализаций дочерних групп, а границей является текущая лучшая стоимость плана +для заданной группы и требуемых физических свойств. Если нижняя оценка стоимости +частично построенного плана уже превышает текущую лучшую, дальнейшее +исследование по этой ветке не имеет смысла. + +Пусть для группы \(G\) и требуемого свойства \(P\) уже найден план стоимости +\(C^*\). Рассматривается физическое выражение \(e\), имеющее локальную стоимость +\(C_{local}(e)\) и дочерние группы \(G_1, \ldots, G_k\). Если даже минимально +возможная оценка дочерних групп приводит к неравенству + +\[ + C_{local}(e) + \sum_{i=1}^{k} LB(G_i, P_i) \geq C^*, +\] + +то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает нижнюю границу +стоимости оптимизации дочерней группы под требуемым свойством \(P_i\). Чем +точнее нижняя граница, тем эффективнее отсечение. + +\subsection{Оценка кардинальности} + +Оценка кардинальности является процессом предсказания числа кортежей, +возвращаемых оператором. + +Для выборки используется селективность предиката \(sel(p)\), после чего +кардинальность результата оценивается как + +\[ + |\sigma_p(R)| = |R| \cdot sel(p). +\] + +Для соединения на основе предиката равенства независимых атрибутов часто +применяется эвристика: + +\[ + |R \bowtie_{R.a = S.b} S| \approx + \frac{|R| \cdot |S|}{\max(NDV(R.a), NDV(S.b))}, +\] + +где \(NDV\) --- число различных значений атрибута. Такая оценка удобна, но может +быть грубой, если данные имеют корреляции, сильный перекос или сложные +зависимости между атрибутами. Экспериментальные исследования показывают, что +ошибки кардинальности часто являются одной из основных причин выбора неудачных +планов~\cite{leis2015}. + +Для повышения качества оценок используются гистограммы, статистики по +многоколоночным ключам, сведения об уникальности, функциональные зависимости, +ограничения на схему, а в современных исследованиях также модели машинного +обучения. + +\subsection{Оценка стоимости} + +Функция стоимости сопоставляет физическому плану численную оценку затрат. В +простейшем случае стоимость можно представить как взвешенную сумму операций +чтения страниц, операций записи, вычислительных операций и сетевой передачи: + +\[ + Cost(p) = w_{io} \cdot IO(p) + w_{cpu} \cdot CPU(p) + + w_{mem} \cdot MEM(p) + w_{net} \cdot NET(p). +\] + +Коэффициенты \(w_{io}\), \(w_{cpu}\), \(w_{mem}\) и \(w_{net}\) зависят от +конкретной аппаратной конфигурации. + +Стоимость физического выражения обычно вычисляется рекурсивно: + +\[ + Cost(node) = LocalCost(node) + \sum_{child \in children(node)} Cost(child). +\] + +При этом локальная стоимость зависит от кардинальности входов и физических +свойств, а также конкретного физического оператора. + +{\color{red} TODO: табличка формул для разных операторов} + +\section{Дифференциальный анализ физических планов} + +Множество правил трансформации и реализации, используемых в +оптимизаторах запросов, изучено довольно хорошо и описано в +академической литературе. Вместе с тем условия активации правил +существенно различаются от системы к системе. Многие реализации +оптимизаторов упускают возможности для оптимизации из-за слишком +строгих условий активации правил или отсутствия определенных правил +в их наборе. + +{\color{red} TODO: почему нет формализации?} + +Данная проблема особенно актуальна при разработке нового оптимизатора: после +реализации базового набора правил возникает вопрос о полноте и корректности +этого набора по сравнению с устоявшимися и проверенными временем промышленными +системами. Такие системы аккумулировали обратную связь от пользователей и +уточняли условия активации своих правил в течение многих лет. Не имея такого +преимущества сложно добиться отличного качества построенных планов. + +\subsection{Предлагаемый метод} + +Для поиска несоответствий между поведением реализуемой системы и внешней +эталонной системы предлагается применить дифференциальный анализ планов. + +Первым шагом нужно сформировать набор данных состоящий из схем таблиц и данных. +Далее, по заданным схемам генерируются случайные SQL-запросы различной структуры +и сложности. Такой подход исключает тривиальные планы и приближает условия +работы оптимизатора к реальным нагрузкам при дальнейшем построении планов +запросов. + +Следующим шагом сгенерированные запросы транспилируются в диалекты SQL целевых +промышленных СУБД: Oracle, Microsoft SQL Server, PostgreSQL и т.д. Затем для +получения физических планов исполняется аналог \texttt{EXPLAIN ANALYZE}. + +Полученные физические планы промышленных СУБД конвертируются в формат +сериализованного плана разрабатываемого оптимизатора. Для этого необходимо +создать набор отображений между физическими операторами различных систем. +Например, \texttt{Hash Match} в SQL Server отображается в \texttt{HashJoin} в +разрабатываемой системе, \texttt{Clustered Index Scan} --- в \texttt{IndexScan} +и так далее. + +Корректность конвертации плана можно проверить путем исполнения исходого плана +на внешней системе и полученного плана на разрабатываемой системе и сравнения +полученных результатов. + +Конвертированные планы сравниваются с планами, порождаемыми разрабатываемым +оптимизатором на исходных запросах, с целью определить, мог ли существующий +набор правил разрабатываемого оптимизатора породить план, эквивалентный плану +промышленной системы. Для корректности сравнения необходимо полное исследование +пространства эквивалентных планов. Если разрабатываемая система не может +породить ``эталонный'' план, то условия активации или набор правил требует +уточнения. Определение требуемых изменений лежит на разработчике системы, +поэтому найденный запрос и примеры планов сохраняются для последующего анализа. +В дальнейшем, полученные после конвертации ``эталонные'' планы можно +использовать как тесты для оптимизатора, которые будут успешно выполняться после +уточнения соответвующих правил активации. + +\subsection{Поиск ближайшего плана} + +В случае невозможности построить ``эталонный'' план разрабатываемым +оптимизатором, предлагается искать ближайший план, т.е. план из пространства +поиска разрабатываемого оптимизатора, максимально близкий к плану промышленной +системы. При этом метрика расстояния между планами может быть определена как +расстояние редактирования деревьев. + +Анализ ближайшего плана может помочь упростить выявление трансформаций, которые +разрабатываемый план по какой-то причине не применил. + +\subsection{Область применения} + +Предлагаемый метод дифференциального анализа применим не только для сравнения с +проприетарными системами, но и с СУБД с открытым исходным кодом, позволяя +уточнять условия применения правил. + +Систематическое применение этого подхода позволяет построить итеративный процесс +совершенствования оптимизатора: + +\begin{itemize} + \item генерация запросов; + \item запуск и сбор планов; + \item приведение к единому виду, сравнение и выявление расхождений; + \item добавление или корректировка правил; + \item повторное сравнение. +\end{itemize} + +Таким образом, дифференциальный анализ обеспечивает управляемое и измеримое +улучшение качества оптимизатора и позволяет новым или открытым оптимизаторам +быстрее достигать качества устоявшихся промышленных оптимизаторов. +{\color{red} TODO: описать как нормализовать и т.п.} \renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} \clearpage From ea46c0e2f8cf2146275a3016cc501ba93a122e09 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 5 May 2026 01:25:41 +0300 Subject: [PATCH 015/120] Add pdf --- report/thesis.pdf | Bin 0 -> 573217 bytes report/thesis.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 report/thesis.pdf diff --git a/report/thesis.pdf b/report/thesis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c5566253fd684f5173cb6d41d3f1ea5bbc35f367 GIT binary patch literal 573217 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

K@qYVIM-U> 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

t^EmDPfT2j06 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

5HK|+mV|(8~v`dRN?O@IfyTsQC|E!Kax8< zy!*k~b@dtgw%0P+6_-)_ectSVKYwdxrG)O($1w-LTq~(ak6Lb-Ire#I=WxT3fm5qg z7LnO3Dp?`kalA(t`R=J4sZ-?y*G_JuNhNILw0coV=CPT|>bsFxnfr#_&E>d2p4V(g z<;59T&}*Wx`U$ux9tQuyztUDx*Y8=9RHQtVHiN{f+29VX;I4^wDgv>^|8>1d%Pd$4 ze)=r!ZNtu=Bskr5pgFuZT{8W1C`sjJqEr-)Xhbd7^HwRupeo1Kam7z#P%$9$x;4ZB zwe1F__glC181P2-5&Y%s2lpq)hN;cU>8wIg#6C^N^kmyItJi5)vbIutsf_mXxGvwz z`F-a(7_+Pojd8LmQZnm^8z)R1V~$f8dAC&qwttXmH(Kv+Gyd4jpj`YOw~&fcSZ$Ls z4W8lA0^fnco6EFO?IC883C|vK2NINo6myNT+D((0&;9)QqHjxCVCHEPtp*M(rftqY z*=O{VUWf>s+xd{FGjg~a;{PI41I(lj)}_q3rR}L!X8OBs2=J( zmDZyv8F?F+?9^xLO-}SlVFfZN$Yw{j3&&2=atVh^Hm=Xp=sxQ3QjU~&LseJQwzZ{? zN!1eE9Q%S(s(%Y|NOlVPK4XPy-$8D!A{{2F=Zj6m>-{Xu*k#a&$r(iwsvEs-=k5j; zF4X~S4=Q()w=JyV3fyiusL0u7dr_iG!=(cOakM-n3W?hO=#iMNLaZ+=I{4%BwonZH zdr=E6B+EQd>*_D2Ky1?|SDLvhs2(`EsrTf>wZyRwMhMU3IH^Oamxt(xdX%Zx`1y~Y@`X!gH&l`F3R-@*XK6`mtosL?mg=UHbv^cG#A@XB}w*-{Zk;O&s zdZxoXKyR^F%4^OGg;j<2;$=$~-7mA;<3728xB`e16wQ;*VgNwJ$jBeE4JO zQqd3@i-Y7Na;I;QUwtCjpS390`fJMFAQfliNQoQO)S#0dKH6|1Z-(XaL*~)m$O%^O zE0Tnnof~{{vN8SHE0GLQ$*%nMie)$bO!8W*4?`*Ntx!p~a^k*S{BC`UT_0EE3 zb9J1xh(v*w@ip6&%&5aHB>h?o$s)n=0sTYuC93As3##B|Ih-}Ow0c?;6BLzAZq(4w z-;w><@k%_%18xs6vHhixuB&g^eZ;Kh|!WWmb4281Lxxl{k6?$&y-O zo9~)--1NojFZF&`Uz8SGXBgE++BriF^`BZTZ3w)fd(y`T*`OhaX;j#0+5ZX2_AksY z6_eDok}yVlsXo)_OuCn0uy6u74@8{DL$dWVfSM_0x8i1la;K|!W$*;tg0=5{IJ_Q^$2Mg+?NG^ry{I&=YV?O)B1#=9n z$;8f1dr>B`rXQ8LB#v~ytNT~u>$9Rb4~Z3)-!$B8s};8p-6NrT!SXB(OApY9?&_Sj zvZ$JS>1K~ML&tI<-UY|d##9B!nzIhI2!qD&Xta3jA7h4whfMzh0^G*xBJ$(*o0&xCns>4aq?Zx&W@V#IRN)lnyC6n3r-a#^+M;NraR3722JkE1>40Yi>i9)!k^)l*-M2bY zD|{_dgd|)(+Xw{yY*$rfg8_}q7N}3L1 z&(M*o&UL77o{N#$Ds+LAvUYldxx z+A_l&*jIlJ+8jMwkdEFa$sPTmg9;D-govR~wJQcb|6y8=8oBoKko+?oLQ6mW4s(N{ zkP5;9>J_)Mo z%Yw&#JSf-DyFn_lz*m`~&9m~xN#(Nq+I*@@Cm9XxJs-a1HoRj7x18#NCvGvdD{;PaTd-|#KC&t9? zqM^_yjz!iVEgU_>>_Lab1h6zNV0VXL*MdCgSquRwJ6FVy0fl@_!1 z>+(9tuf*gDRY|9y&-rAdL;CVX6LQ4SaUOoIpq1j2hfw_sg;K8 zn2FNLV(-K4-oZmNg^l;v_OWH&CYFQ)l=9F5~Qc%&6cUrxC;Xrm~`b&?*;p|<+rOC{^f$vWL2W1Y9znSfQVS+!g zi}Ajqo5YC>JxSChRp7Rv1t67Ya*`9TY+Qg{%FU-ZenshH4DS}S_|g=S&Orh#`k&@!jR>wk;(_Z1 z@bA`tyX)t%=6WiGx3DOZ>Xx!%!-4MXq>Lmsog9T#u9*-j~ zj#se^#s^mZrr90cI|lC+IeUDKWpM1%DYZsWl5Nc~a?gKz?vRCH!A@yJ!zr&5%is_v z0=+;_V0{BJ4*$XU82*{v#<4LI*w$-KA>tIo*y2X{SK=ZaLu8*iYS6>s;-&WM zDMS)6Nk#4`&DU=;bvR@RPCm>s6Q&FXP#*3690Jmgs3vG&LCIp*l#q*Gi!l^+mbCx4 zot%jy)OlF6wnXQCyz*bNbA1fil-O@dwrs^?0(Uew1g|kCdD*4iIM-sRtw{n21XO~K zeDe>$fO6;7BedEs7nfqMw+g}H_C55_#kaJ$9iRk!yAC#cFMX^%XE$*6S&*S3X^i(Z>T3V1Cnny=zx|#D&T3>r#Mz zmNzY#PQ^es6wUyJ(?(F5=h4WQl6}E8X|`L(-zFAt(e)uF1JG=}G$lm=?9GqO@=10_ z>Re@)ELnN%=XQFJ2O00lyD{qg3e8A?gUjF`o?n3kkvbR*Lpi@SiQ1d?tYG}kczWvg za$Lv5<{WX+00SUWKDkzWd17nf0SZg9JJSG-vOR5oEudmag6ZgPT6I-A+DMI^iUh|A zYWm5XV?%q?Et+A`8s?~}708Y_GQppvmIb9{9-nU1l)IQ{68kZ%b`B}ze)VlTiWIF^ z6;wwF2E*_;le9a2Q4Bal!Tw{dCk5{u33BK4d8ELsEe1bFM<4Z$RqOIJs=$kuD&85< z6vc2H*X*+FbsO;FdRafQSCyKj`e`M~*+lT1nIf*ys==?A?v6%6hnix-0*I2V##Y5q z$o%pmucO&GHx(E2=_A&LLUf9Lso{p5E6ZFDFq*K)ns{GoBT^JWk*{QV! zT|14bHf?tD!x)Q~OcKeYgcxh`riU>Kz)V*%QaN0tL80zIw7dA)WVqx@ZxzVcE%+#^ zqzFLa+CmW4Z#^ORG?*(a&^jIK;!dGI>-%U-xnXKh9e}6UJ<}RT>2mbsdXC^aZj;}) z4!uEl)QAIuI@TC1E964w2oFUQJh$};C@;$ja?>s1|8FUq?MU4zaEwN=!Q~`W67)^G zd^orwnE&SvgfBky&#_i1ojGoV3bpN|mB~Kl^iOh;lnsCI$#_=B_Um~^{+|rxsFLt=9M}3yaKaR(yb@GH-wDfppelR@Yw@y=%6J^V zse@$1s%_6_NOoRdRkr#VTh&!#^nZ)kR)tA!RaH?@ijxy5@+S+$D*htQ9m)+mstKkg z!y0;@#}pG_b&i4$6D;$mw+nll9JQJA?;~oyKRsB|y=)v>80(P2&iK+0>Ak8j;p!NS zyKr8g7FbaWJf;RhJmia#4eD1c25iMVwY7A|4dR&d4;RDloeNI zl?hv~b!?rUyOmro89P5UCtkX)ph3rP4v6mbItNb9Rg8eP^YAg2lQ1+nMTN*GFt$YI z=?ulO>75SY*O12+tJ-_?!d6SA`a1l!A>x@Uxj^iL%Y)*GBP2PoS?LeA#H+2KEVaNRy&W95!fEQEgLF)-P7q7fN{M;GI>bxBZXQSq17>s@;R0icB^(jVoUq4?qF~dD; zg^Wr*`fT(R>T;4@Ag%x3)Kj*j-M@zN#nav@;nXjWCy$=0kG^4qTaF}FwerKeMn1F| ztbwKW#5R6_s^c|t#f4U13-$8fevDS?ybsh1(rSf1MpQe_>Ww6NL9q74N}#+4+AQX| z1G;W60iZZ-EZ)PX{c|@TS5A$iKTbrPt=SVH4>Fh)j5D8-xn(rl>~i^K)mBf;z}LVa zN+D9=XK}SO(<*O6SVn|X?lLs&(K2%4JtS-O_i4=(ItCtA(q3%eYoF<;KRW&?{gTkR z)N{Gf@1_j3vGv6P_?6HTcIbGvu>Pnef!PuNt2Sl_tV8JO*~Q-b*h8}2J%x~@Zud2* z{DrcWeOIR{P%n9(w0=ti`ysFiA4DlZtyzEHyUAn4^Ie0)1-3C*XO2Dr+jmRd2(;Uz zxC(e7^{&cBSUZ>(zb1gqpGxKs+D-w)*gR{SUiFVgoRVu;KZlT{+T%IgQmCt0C-F%r z_G-hS$7#S&5q7t9*U$eKIq#KmIphucH=L8I2EwWsyvo`PHc7MGbbhpHGTzl`1mWw4 zAI>ab*?KC;k80{T^e~+!k|O2ZRRix+IKDRfk_$H55Co`=#bOJu=6L+dk==M{knh@* z!eKKy`NK^OL0G8-cDNFg&bh(3-|-rlvTu&gEKCNJ#%a*y0z@;lPniaWD$Z5%>#>~> zRx<;ECQ<^`jt7Xo`SwtP9tO)>(G}Ho*EDDkNf!!T{rqFb?!woFg*6kNkZo|J#MYu% z_OTNyzwN3czXH1ASY#P@M@+8HN0357umUF2G;WmE{UCV|tWiU*&uxIasrC8a20)4r zDcJzYMqU`e#LFzqy)CC;glhcn=+CB)2SwV@Hdud6fNg^a_8#PSH~$$Z({?c<9Wv~? zKFs8e{2WX*x~9td8A)W^`Br6Upls-csWaE9^pVExAS50nz5 z*%aKF15)JwhJ*8GS_1v~X1$Ih@p=>59bDX)1;wdPel7{qL#?Ssw2?8HN(h>?L2Fw zyQoIgf3ed9S7{iGEX!q(S@Is>bhu%ius&v`lZ7x8?G7PE_N6w(HI;%sP)=IYlC?tL z1JEDmKiDZ*q7>Fv74#;lw8jR@L}*?$@Vx3 z$TLgW1a@kq_n&x-&v>9oUsU;2zSXW{s~FRd;z3>=y!I5DZoWv707+be!S?1Z$*?<@ z1<9;}(_)DgG&JSFjCXRyIzJF30jzdJnxa-p7!aLU`bHj ziYXyKcB!ze=zlEf4xKYtLk2*lDY487b^N=lf_$ha4UI(#twwEl(fN;k?+(2w#pL7) z9Ppy;z1}Oa6g7VE_O(5|NBk~BHk{J@^3Nm^N`Y~J{>4~aBdftT;99rQ@%4uPBN@R%iwC>kV`(lf#VO-brxqI4%{h2btE#8U!5B_ll z!#u= zelsiPFTQD1{vWTChh6|#&;HRjWkB)FYW&yFzM@~<2OsEY_O=6NvuyGVkSj;`)}JEA zx%7XtVJ~d~Kn8SA^F7NY-w-Fn!Ie8fvJ>_&sgIOj=W$>2NLveEq??5Wq!#J!?gjzrZt3o&S&;5tkWPuEyW?FyU;Mq#AFw<3nVDzK z+lXBZ6dzwfzgyYJP zQY^S&6 zhuW4Y_ZSzXE+Wsv!vVufd2`Mu$2iX7u6Hy1!XCdZ^f3_{(}8_mZ9TzoHv=wr&1_|% zU@PP|22;_~5OaMEe3;ftUQQh!l$jtJc#qqq4#l?Jh>E_-?bk&HG%Mdm0Cx7=- z0dU!8TC|HHqjB3>4+w$BI7m7@X!w+p1MjaF&7zVD zV5KBzIwEV+4voc!H}xW8|JQOABWGJFACr?0hbx#L+iwQk+kO!5r$Q>B-tp;^&0Kv` zyB#Q5gD3NwC1!{8_XcwqTHq-AsVsSskOu$1(E$G=6uJNDb~Gw5Mi-YHXq4|S{w|c3 zAC_@L!s;iejV=bK!g#^Z;BG06J z>Mx8|mhKykCX`26WL=!MO}`oq%?D~GKf1dj(Gnq1(=Ay{qM7aJic(*rmd^i)bdu`7 z#4OWSAH2Jr{rOJ|l*)%bQMV?*RWZ2jvw;WX)5mZUb{9e3?ST7$Lzz_4`RlRS2vxty zoWXHKFCAFD#-_|kM+&Y5VNDB|GbNU>{k~W!PgiPfU$UFIx0|AKFR^*`UwL`!GeA2T zM>~5rGz0slVEX0NWGK>4u~t1(d$^&Qpi_IQ0QIR!=Exg+xHl3a>+29c@==+cGhQ;f ztF8!_NEs6npkk^oQh5H&MP`o!PJsPq#qK1_%7ZO|f@=1m^vc{>ONzU9N#6W}i{jet z_@pW=s7BEwWc%^-TQIQP*D}K=3SxVVC8JZ2nE2mK` zJU!uCxYA4BZ(tE(c?K1Zm}V1xt%o^7@i0N62bi~P7Bh$}eLAH4Z#8O2QKQnkc8vyRF6z;p$f= zH{gg9T>L6u8S&1lTm(->ylPb|(w zox@~inz{=*l`Xo>@O8jZ^}{c2#p|op5VeSe26!{A++KXB;TNDL%w*0hgXPC2B!abu zLwp8zaKfjMNB^X%F&u#CfP;uj;YKl0YAJO4W(g73--%V88=2%roLqN5Gg;aziK_4S zK&a_Uj$BtX{lQOD6S>w<`t3sho>3t7x3R-k)No^x3@U0gu+M-EQymWX1OAeI%%LTc zDBJBCkh&p~!?%@fArLAgB$1`5oRilXx3Fh?z6G^dx2}BB8~CX4KB#pOb!F z$$jQeddH)r!C#O5&9a59Z(!NZWJMa`xYH3;mFGOm&(`()r0wCfM`p&CQ$^gNj;AWp z?Oc4DhlWFFY|j4+ph;eQ@DF`26txC(f&e9bk3bMJYzMxiOFhQZ3(S2?>|8v>*~9u{ zRxgRjUiFnY`5u-uNo>0pdki6vFqZz9Sl48H4ycUvU2p%ug=AOa_{GwDERl}#<{wrH z`u=5DbtN0frJptU4{2IrcMxM+ypm}1efIXL2e#3+cRhcTX6z5CG3mY44eTc9vE8gK zm(j_h}Qtn)=-&z@MZ z-{r{;lcopP{hvJJ;#Y`+{K;WuizRE#c#s;u4lqYbOjR{NtmbY57h%dZs>EEeA7YpQ z7E=~K?QA=ZpVU7xWl4Avhr3=ra~W0GA)$4DuJl^`F^%u`dGNGvB27fJyOO>t$}f(< zf&$v_HGZDtXul&qyL8NG+^3B1`RBxvVU~Zk7qJ?J*~>Nu^CZOm5%A|!iaK3!rYa1j z#m0sX2vfz+9*WiRsdZfz7gn2`BdrVj@5(N}yilR3HTUauCiXXz1 zz3}NeH-X!xA-&+~VOlUw4))w(9`}NbiwxW7-rrQ5OhA%4d;~7tBiWysAkF>9p$X1= zwDTLCvyg!W7_UH*=BB*0cUwZl2R*`@0iIMs_Bg&sqsCd}by-gQypDXh+Wh@8;GdKf z=lno_i{AG@5|$!!g08Z)pit%)g_Op@90ttWs@cgDp+z;g6Y|^c1G9(P&7A_3nAD`1 z7`Z%^LHSHujxH%QSptMc<14p+^3;xSCR`AsTNWEM4o{Pxva{IE!{xUwL)M%qq|e^| z9Os>&vRNA|<8Y6B%ya8)I*$9X#MA`=nX+=Q3xU)O|F?_n$XiD3={Xyc@o^?|Kok3Z zzbJm&`zn}L;sz1CbX?iWocOd%#Uyiqi$)p(+lF1nQz=u+eB{pY**_%2os|xG=ebPnts$6Ry5PU5GEGFo@uu6C zh5J)?ZK@W&(*!V;LCI1*F@Cy+sQQ5{k)RBFFjkxe9oE_h!QpT1s$)v07MU}lvgs1f zgO(g30Nc<1PbAmUnp^za_rO*I?80i)FVMvftGPwd0P4+8jO{=wj5tSxW3SfspYl*? z7}3>l`{Kxqy;!krW*D!~R^U^jSg5=g7khGiow~{TM1V-a8luXs>-gU&eY790 zcqXd*nm%?aAX!~GWqq+7ZuaDd7^fD%ura~4@>16p_PCPN1oOin!b~m{gTvOn```pq z|8mqituZ-Fr;_Rdo*Wd$;i!M=(u3&4>($J!*(ZUUbHGWfByO3#LP`R}Z6ZuHYZOFJ z$bSJFkd!f~#oZypB4oH&nEtF!-#-SRq$Gs6skS z4(AvC(&)wSksU+rPZNJf_)^zNqoT=xYwWae-Q9w@mlsx0OYV8-8SfZYAmQVx29@uZ z{mS?D%A{;!ypn#cV@LRGuV~}@mq&nI|J<3j#Xbg%f0&jvn94C-;BbE`j?;I#O5>Q& zp|~uZ_I!IP0)635^R*Wl(K9=;T&cy*qgf|!@TXC>U!Ec>1|bxMV%oQTERGGF?SK3P zK5}3G4cYtY_bR{%|BvL3Q%$@jPX+twf#Qs!o19p?P^P;BunIS@;rN(3|8tF=nMGEE zK`McDY@~|lH;?a9xDy?X!KpwKYTJF@m##kVDgc|qiETcT}>@R|PZ|>W08aY>ynEj&Y zZBJj}SjKsF--@9OeDb@%7fY$2L)l;QWtBfNzXX_408VqqrFSC!pblqvZoQ@5HYNv= zcJ&d|NIzUMUIo0o`y}slI(7OM{}hYvVg6GE7sJPte|1S#k+2@?9^n3Tp97L=eZ=_A zZx69F5O9uj^>zEpqDD&9hq#o)dux&x@u!p%+RUYe_n$d< zVTjy%aPVKE&QC<|e#DhJe5ZqZ6==f{~SQBGBAh~&~ zftv+}LB26gX@P_a%~o~!*8+vCc=;^!SLEzHoB7Ir;y&*FeKbLj2pug5-55oxaSLJP&k zayyw}&qSX{SaJx->?@ldm@gyd8(%^}2*^ID<=R3sY{fw68i$=5@so(>5QD8JrZ?YW zNHa^T`xp5}A!&K{VKG@l5s@Qf@nzjOy@|Yx?<-fO&|V?)!I5bGA??d$btTDRQxpeG zJyVa|O%IZU3GfhUv7wC4Yt&DFf71JVRgvnVX0dH`_t78Ur}fjTLLIWjb9SMg(w>!U z19q6>*zXGw%|K%@kdr0s(;|LR(Sjls9R6wT=IKSal?fD&5_wTnROJipqkk;l2k>~( zvp41AlnC_|N==iMJkUu*bcCXi=Lk}`y5Ufs3V%XY~BEum%WcHI`0>mu%9)m!~%?2Tb4M=pCy=1W9paf;2Z zcv}V{amWXbHZj{N=+L%gcT~3k-l2(wF9l5$Cyv}$6BUHFtDBzcxdt(+K_lg8cN#^K z@s_p7#~zy9F8n)Pk1N2t5`#z_*OCVz6DiGH*pACz0{ea?052T7oe+V9r0s%Eq!H~V z0_==2h00;c1wfO5*;*FKfUGm7l-m4s1(XdFyB{T&DF2y|k`B%mVHlotAK6FK+-bUl zi(hhOt6~lf^F@m&sZX*WWu**kpY#t*s<;N@$EjFNis}>&W!nJa&{J9C` zT^ydg`}ab*bKFlB#prlD8XDPt0~SOyGBlFAE|<`;zkN3;4fUXQT8^}m5y(xCZ0Ro< ztU9iMN@$BLlt>QKCBM{%k6fE*%}6%q!UsKko&4;@=IY{JP5c#7{aN!NZDiSXO2suW zXTU2Y!knGM=Jftz2J5I_NPTkBasB)LmZ-<*aTc`?{-oH~<1RCkCF2`icE(@fI`=~>=rW}NA+WskDhI$y8oK1V{%Z3=Wp19{zXOF&9@!7Kx|kZAOydEi(gx=Cm+wzp>_D2SxI{3#XF#DT`!6%x6Cro+X2ZsW(hUe&q}P zdV~0j+X_T7(>)@QtNcLWTmoSTb;{}bA>-1f&vicZ`WHzH$Ru_HBt=KZAd^>1IG#6d zRtR+9SGOm@ypS@@8k-W_kjvPs(kQ($39$Wp6G1$eqY^mR`;8J*l|ta%XQ*UW-#B8_ ztuzwlD=U^>wMBN)Fu(I2VRZzWjEMY9%ZIwBT{N}ai2xMba^#96!=FQVfu zvM7!SkfFSe0iP?Uq8=_nHmp~r-o|;Co>+WvVXOXmSI3&wT*EKQd{MXZ zqbQy7zhQdv4Vp4H+OxV63i{(~z3Ot1lu@?BrtR-IqDar^;s$^Ffs zt=>LZRUw56$P(f*YtJIM>l?Oz6 zxD5v}$XinD4Rf)?4i`6Ub~^5rQM(4G4DFp(P&|u7D|)7w%eQqET%(NFM9lPnhpAU` zVIhnsik$ptDz0N*UAacmCODI(SiGb z6I3et8mma@&$yP|u1oRYJO_G2?KQ1py_hn4PR9m^b%;EbyMx8}c1=6-ugk9c!=d0E z^HR3{`U3BgX08|%qQ|*?q2_4itGQ=-ff?o%UV9U`!=cPl&FHy$v1&w;0EHRb@oD)2 z^prU7`lTUp%FY_QR2t%WVa2tTPSxUnS0Uo@R->tLnI7X=;(4~T6)04`*Gl8O9QPn} zNe|T2L3Z;%6|i1fPh$&>lK5tGPgawHhKG8A-?!yvY0erd{JTG;vb4n_&2I-GdG*Wb zFTmj5p_{wYs8BYwpFBf8@NlOVB|pmIHDDaqC8OZUEe?qM>N6@lFI`kC@`)OzI&?I| zRwEr2lAe1L>Z}YwR`dudBOptlSC25HOx}3}?r-1J^tLirgL@5K%dZMW>Z-F(ufxVC z_XAou>=zf604)fT)`gbvC!h@-CFvj|URq750Ley@x_+Vj#(Ebc&NOme;5CC;jc!urY)(pIH$vowQUWpI5GX5ISO0N(=NIFZ zJcEsS@NZ@>=ZRq37!(}#|Gm0Ho0V>Z^2tpHVVJMwjR-1RgTnJ2QJmtf*L0Fp3{mCB zF9B%xh&@4TRTtV{#C^R{aut`cM26>)BGg%(SUNQO+C_jHY1)tE#lsQ_C0gn$Z!cnN z%oZza1A4v` zK8CJ63~k?)Etbs*J$RDhiXRZaJbP%|yWg!nb3Cb4HRqahJ%F^L`3XK`v!4qM^&l$YNoR%c zaEH>&GPN=W!eW(LkrgGl%MtZ8A~I#Vl#9if81zy)3i z6balRqdM3zFoG4{XyXM>D_XI8ZtDXcZzAm_kE#->|V-E-w=f#%k@$Q10Mx+ zv50ozMHgX)4_CQS+8-u_9W8le)lOp@I4Yp|12P}_6laaQs@&FW3J zS1;f}Vk+)w4nh{VI8IFdfi&OlN+y&@-iMv*|=We0}QN@&kM=t0Y{Ya*+Yfo768>2&i( z2CwhWCQk3zK?*jMoPGA#M=2`HiCThs(Z$HkE7>Ml_);5}@towHoj9Ph*-hhzt0cR5 z4@)0`_&4MVGBmKQ0z3O`{(@|m)24Ee@oNCntI(aUiQ_D}-+sLZ zEE%cMkue>I zQsCjZsB#vzz)9u265EwlMV}XQO#}}JAgdnpciz!8p3O%b05jsf)3>&%@t9)=eABu3VT-cBt3y7ziuB{BHD?_Hgg4$Jjx%>N4WyocBE=HC@SlE=fe zE>W(wdfMm5q))vG%y#X_8Qz6J`OgrZO_83H@vq#koL!jD30v6sBFnIMD90>fPo`HJ zKjGR*&B$P#k4YQEt(o0Q4-CFzj4;%C_y_vI(@lM~I#F>!AF+$s5Cs0q_wSzJjO!i) zt=PP=V?bd4Jki;A;YE8_W}=OxQevXx4sgSuHA&tJ8y-0WwH(RZ5eD1X3c!Wqe(klb z=L8T@FI;}#qM>N-X$lc9;VNpIU;NQ(XQ(6I@y%87G@NYk({D3h-+xK;M0Lm5 zy?MiJMd%d1hL=K7!(0AMop?ub%y__W0-j9-8zY(bc@3e z!*a3(Bjjbk4o%MSWl_ty)tP5zqH6zAABb8UVf2Tl(Ed-wC)=OPt5W2qx-KUk3bg{MM2@ zacn>-mmkl3qg`!8TXWV=B(kIyRYiL_Q&{)FLbr}O-tQs(AiGy!dzJ99_K#M-$&*)2 z5DvS7R0yicW=TX~T*8784%hI`8QMPct;-#8Da~u~iK;6@F+0A>NqIUs*9p3Y3Z>K6 zHE-lTUBjC;O?W1|}U;YOYHce$dP=*@DV50*cHU>0T+8r@)lBWBPnQMuNSc(L?- z7|+xHf8EDE6Ef${Kgu#=Z3Sas`m63>Rp|rr2Ip{avp&a)mrHqQjQ{vdMGSS4i{mV; zG^X2gr^fQflLnwR6=9C)#-ex@8h8?6udK(VSifN8?p$5w8MNS$vJ;NXUiwJOL%{B8 z2taGzvUGF9y_(ljEzB(5($uP8<#@mY<4u&AX2RP2>}#VR z*#VIOcY63Uga6B9lmL_=cHs5=S+0ZnC*kngX+2g zO%pF>FqL|NI9Dqp<@iDpc3i;;LGn(1hXuH$tm4eFI z{EmTB#fLO&E6NT+AeU6c@I;?nxF;%r{a5>5$zrk$R}cl|ktbe}*d_XRv23{vdnGCH z*?F0eqJfF{k9h4PoB03k9Z-o7F|?07*eMh?gWLTygy^KU4@kOohn7 zyMVi3+&+qJl&w8jr(}wX?+KZ!2Q%?RNq0T?F4&4-V7VTMg znOr^kf;xIc*v;Bj-`(w}{tI}Y?8TIqcFvXztRO%vLz#be{m07Becz~UzGetP-)tuWgLScL+JT`9G@L{@ zsLz!|JB7Ek{c#q-leyEfB&awGk&7;ii!JuA@F-n$KJ!ZYNr~`;kRD$Mk*X+xx87dJ zM%QM<|7&jb4)Q@Iz0mm?9Rp(RsU+wop8R#X#4w{IWX6nO1ffB}dwsK7lbQfg7PV(P z8hT!WQ*=z1_QEMnzh>tz4TXh@8qsYX!pS%0_M2vEbOs#zOA2Ywa2N;L2e1tZ-eCBg z!{V`Qv*UcUWOy|aaX-D^AAIY3`_^5&CEs3dd@zf&_NxCWWBP{zyh&Nj<1ggZ241O1Mlz@D<`nlH)$8OH>hW=RL^5VQHPG+AZ$4)0mkyKdN`JUjfmK`k;x&f zFs~XahiT#g>S|^eAdCufml1tijv%clm*Fhr5R_p2_?#0XsHJ6z`KgzIcFUd;$ zIeOCbT!V|^2t6-R07kTXU5O-Dbo3e|;j0>N)PCgs{{B)56bV6Xfve){sDuW~o$FK1 z+R-(NF?#iU$$zVx_`j&VgR;3(%Zvl@lk;Nln{9cAbK5TeT=Ok326C$%Vf)qKN*`c$ zr*ojFNcrK27TFwGvbk<=i<-QA=U|8Dp80WMfKKvj)pqUL5pIx_88~81O=aj>=V!yD zt>FYP`KdvdsscvDLEhWvsCW+Ot26T{_%*LlH|=sDhYou7Maf%Pcl#=hBUM&P+M((6 zElwNI7S=*vA7+VT)BW7arYp(e%9Cho(4a<+_z6b&7?@lE?DKVX7a@;=2P<+(_;LN^ zBXegdh#_gVX1P9AMv1`3jHp1!z}_tG3{Z6tP?tU_^;qC|^3rz)uV67F@O2J?^l}mOk^ZgSNO%JH9MRQ}E7BRGXFPcAk8tjw=GN$_Is4Ru zkmOc5E&MJJda@09Q56@MHi!oH z4P=fR0-9zZ521E8vqbS|L)`Od@Zxr581LA1PopDaz7{kA`V|;&$S2)|<6Gedinv}r z&X1A+%VRX#9XL~W*?&3W(a=rnckPrFi(Xb1Czwh*??;@qT!JZUX)*XjxyR@XJ~5*L zlJyyzN?ocprvtXl7sO)}ZLs28KzZ-h?=Cx<;B$4u+q~|?xAu;EqoMLxHWlyW(afr^ z-q^>BDsGu?;*2iJAxjY?sXXD<(h@a~+ z>tO5&%I;Q-o`n1z2r-AmSFQUU=yuB*p}Xs_u$4`in-M9mt0=114LiijOP%w%k=t7r zx=$O=E7G~6)6)Zk*5H-<+aIYRy~!)a`+D<(IFm3;8XBwAu|QCF`cRX0pDQ2`0>>97coRG zdqZjxoJj(ip+`N9N$;7WWl%kV4_o%Cuh6}x2dT71#sh? z;aL%M+{64|X7?LcJ(I4$N`Vk-WOpTRDiKc8FGyh4DZYT8^&soJycR^^R!P5zO$1ob zYZuZWEyd|U&jr_?y>8&D%o23p)Qa)U9N_Q5QMOB+a}DoCSSBFx9yNa$@8?Idnwn@9 zwELQxwt}K$4b%nVvoC>>c8->k3gGEf5hT!kZz7N zS$x%;Z@0V0SOUvoLmAk(!ps7)Q+|H1{Mw0Yaj`HS;K^ht;wnk$Pnp(9eHLjdWnQKu z4hik2DMu~(6n-Ecso9@cqd;YXn_U<(_W|EU#B2f=05=UjA^gAA&zLr>f`%*qY^%Pr zKF=BUl_jK=&jRO>R<#GS$k2S1D4x(3ePyc8IA-^~GGRPXgP~QI6thpcYij9VX`$RX zoeCdy={}h_p4VL}hBlmtucAlElm>F#Jo8(x})8R0A!4)dY<3~L!chsV5#{Od8*5R?VAfNYsB6}G&X&x%q*VR*gaJh+bb>y)$S z%)@rc;Q=)xR<{MJ?2X8w3LgbKYExQ%NTC7fP~W(^x0^xPZCqNo+ zvh}U-T*rREj1WK~nHC-$n#dJEW_SG?abzvJOc%n`vSCiHxs4XqYfT7!et%Rxvvy7_ z>ZK(V){;8036(Z-rD1cmew%tx>sl96<_tz2y42mOOi^Ak?9t}xE>*Bfd>Lwqt4+(C zacunq9MFOb^cxqvAcUo78q|3F{oSaTmxBoC&p_XvSe`faT*5`a2kajRJt z@%Ie-)J}N(X)VZ4lkXa33z_h_j0a|;e@J!KwM6IyO6YPz2@(qG9+RQ@qD(o@W`=Hq zDiVYPRepV{Xh=VAL-p8?C>rK6&a0>&ysy$PNAz>ce2#{u7Vm88IJ_>)5)&=5gFA>& z=@ip4E_yk5qB3s@@e&tQCGxf=_DLLL&W>%i|D@V?Q^-C!FIw7WzqYwUb8VPPqUi@W zjWv{CMuZ_m`|2XtELu&8-}4GY;-ewG0y3d3WTXX%2qV~mClCB}lli9IS;i6M1{5`f z8+BIh3GZJ<*b96WrBJ{7{xqs-i$4*(3m;YC+J4yCrS(6Bf!Qt)JlLnM!fM}EAeHaG5P_c&q-KZg3n(Y3vY_N zG(ESSw-l>HI7w{&8L1=dlQVp~rC#QL3><<|TvP;Dz&&{Jj5ui|Jt?RreS{*2R`rDs zx3|Xe_ZJrHAoo>NdF$Dyl3cTdyd$Gfm%9Wc*$`O4^hg!jQtdnsX~Wv!O5qFjdfQA& z99z&V_q`i`?OC?4li-{$1Tk3>kLotRmXLj?2uV$8y9&Hr6Xv!zp~_^%DcC8 z1_^4a&Z%?{Mzm0T4Lo{($yr%IlEUK`0z+O?5vQ|Ax_5F?>m@d}phKS=zN@)MRpxx0 z($udm4bvtDMU8K-0zI3K$SuTfamYg!a>obHR=bX#Jd3Au7mrL=JR3IitSl7(b>ghT zycb1bpzlhVb8g$p0Xh1gXB(5!Hr42O8=KuYpzkxZQ+P#KEPR`v@m~7@vxOIp%Z!Pe zoNWaxtplss_OZ{9J`K%H3V0`qewg^vOjDPaYPFm3OKd!yxR;&~P<+{OaT_B;Cf!j+ z#)fH^FdPA&lF&3}e3x-aPZ?1tTde9T49b?Pm0_TQ1uZZ+7s)ga6zy1hM)wm`s(G$c zz3<5Z`&~?aGE;IO5s@@?yTtfgZTS0)gw$(5gDQ^=mDVS`*LsCwL2OREb87njj^X=Bgn%2So)1aukyrxxBilbC-n(w+KVJaW2^~Sj z#^=mFm;j@1e5*jNQK;*G5G*NOth*UvJ|m(F#hYfBRu!(gXtT($9+|TgAei9g>MCHu zF@!jMKi5Z#*q_xtpa;?-Fs8#??h9P7mYi}4Mj&Y|BjVoDnE80+U_x;-)&tTe2|XOB9-CaNVZ%!+P&j zA?y+z6bow{b{7(*Iw8aI@ajB>snVly-A~?RJl`E_4hz}ufJP!pahS>w286OVLb07W z8lEPC=0RH~0g9258gNQU>m&jz1uvX}Hh-*(a)JkcCs>^(;g%|eUVFO|{BH`K)g`h* z!zRtOZBZ7kqfCJg4xS!_17zb}4cd!kE&SW{M~bJR zp)(C$c#Zx)Jh$HD4d1Gw#HeV^beSqwV`A!kLQD!ouPOll}UpZfmnd zYVCst(KOld_`sKr>y6NiVvDn$HMpn^$8zmvi3eEI!1G9VXnRG%)sE3z9~AL+Qf_rA z1iY{Mb}IdZLQd#^K|cBB18Tew`?&#^E6Gr`Tn)PSCsPERQoe(`dZQJ7D3c;sNz=@8 ztYDdw+ViQK4Wm28vB1*pT_eWM9xLJ&c<9l~J3`b=h0JbgU|SD&Bcx^Kn=*wIkY;#{ zq?lVyy51=y0=DJYYrPr8tswa3r6J}5%X`an^W#AWPpb zuI}O;yPX%oFct0Dx$T_}AUn?Hy&&TJ)At!p(H0XW9Sgl$3Sr8FX7?}tj_uh7xw)uw z7Alzh12^Fy`0hS?eipt!_<}O0lnKIBYdeDdwvH>xvWaZ`qt>}@TI*ZCQK=KD8vuK= zHgo4W58%|KfR%`&Qjs!Go(9k0XHr`K>M*nK$Y{6#x^QE9ewJ8JgSMQpkc;7KP7=v- zV;KjM8E1h*(1@(`c@RvHQs^#o+3R`@-N~frefl0UWetbOv#=|w7f?v|p*Wvg+m`sP z0dJI?!nF#o@~b!^+1MWb^6Z=}QT`RZ+?3O6`uo~J!b-xb>EQ?>^CZ+`q@HruL6Yav1Z!g)C+)WRHn)gg z?uvhD4EaCPB3nEMY6vs-p!}8+hf$BZ_xp72JHIwDL1$@nr z8Q@}l$`mVfICaSJWK>yJ&jnKPMYft;UG_+tAwug1Ztj_e1tgsP5i(fg_J(%kD|zS{ z@Dwd{D~r?C;6$I2F;$zac;t~3#`>`jJMx6Jk0k6B;zE9+L1lVoTDY#G$0z_38d&){ z>M{zh6PIUB6jNSLOhFO!O>cOMxM~(01MM}9aBp9um4=UPojFviJEBz(5TU-mV{c2F zNjH;c8;YRr!84HEzuhj)Z^>i30z1dYEqwXgdupXT+q^Jmo(?G-vyw-$!pJdX zAF;VH9}IVNT{yL=U%LyPA2`aAB?ZNP^hW;Qo~$RRU#YHO;MB6hIQrU+8jeJQPNoN!A-j!IPBYmT?HBdT1$M- zHaV=OGR~I!BhIbxo;)%7^AWa}71??2uE?{;_to$hgFvPRG7>OHAGYQ>HpMa$I%#jx8ew|D13s8;{S&$$>WMC(Q11H?-4#ec9iIZ@);$ zpg4OoSfcv%$1ulRt#hFtdNvMo({6 z`+}*PbN5na`Xd_=zOs}fq@RgZ*m*>zdN1O3h`R+JY`mHaPAkMoO7obU>Y(S`4vqP8 z^5X&+03IQ>#qn^<)m6neKDRL;yF7V+R@`{01vf?6<_5t{|t= z(O32wsHBfkbG>qmlx$iCM01UlkC-6Kn%S!764bUDE5Cr;m%qqu1D|*lGA$z|+5fVs zpK!^-KsAH3CpN1*8;hsZdQpg#)~lN1scpZn=mZ*MSu1!!|ejK?2AnXxu4%{eX4-wTx=}D*lf~PPi3Be zJag&{9oOJn7tG60GgidXbn;IWO}@LLT|@!by@pQ6_E8Bfo=)^LHZR=XPmv0jcbC&d zSIk!CW*qL)KnH%-x^{SI3w5dWDP@m4yMhl3Wi?+7%?8F}xrHCH@ifAb1T(q>a?Zv@ z-&@(#XV<)MZG+lGwmg=g_@2E{m2;m-R|01>fP-k!o)z!6B#13q5oV~Yoj#${Hx7^w zwJQQ_H;NUM@-3-c{6>{G5uwr=J0TOIqpt@`(~T(mOX4v)LI$Q81uZ_fKXCb`n23iS zf2Q1gvAZ=MvdZ?H^0)xD#mr#B8AufOlGWiT>t=GO9sT;_m8u z^d_?NnEaH*xSjvT>*V!ZgfE7>7Ky2i^SjNvweEFhBHB|P#f`bSgqi{t6hYO>U_##h zmr3D<2GtG{8Mv}KL-|x%m|UsYD*e9K;vJ4FoA%DYii=k)_?eQaukl%3Lnw$X?xTKCb?LI48Mgb%r#pK zDKIh~&!LBBXxK!b1C0Tibhh`)6+WfYJu zlpAh0u7i*q`rMb&boUt9udd2H^!YK)ljiQ9Rg@@#O@ka-R)t36%5@tiJmHoa;n^Vg zp-FA>@HePXC8!IMv?!4`4V-qXx-`r~=o2R9sf!!kJy*&ufAuX~SKP^}O~w`sOXQwY zu}OReaD7Ln%DZZswNuS%)H#tA(c(65%CX{vkO(S2|4@!RD4$;&|ExhOp|~$kRUzBL zD?Ryit|_j0ViUVaF7+)7k%392xre?*i|SXm)YBYiYN`U?%mRCeav?-fU7cEe!lvcO zzS@rN9{(uO`962<(YC%oDr<0k|~Gm?lAhsf7E#-VPR zC=6+yDp=XUgHW4#O!=Erp#*3GW}$md#gl;%vnVA^GBuM}S zB)Dd4SJeg(_JqA+H?g=LOVWFb@woy1pWRS4p69KFeJ!1Yt8Vje#Sw99KQv2P;y%ud zjGv>fxtmbSg(e-1<#5#0fb&w_dD)z@5F3$c`}d9oNu0IrJ!hmg<{!gO)C0+?317zR z-bd#T#-HjQ&DfPgyBAUFft1zGG7 z`&?r5h6pE|8K*esC_@i4Kn?Tpw7GPog&<5hUMg=ClEUBd3P=!wtyE5%f%_qm*hSH{ z@Uq>{C&mHjLij?qWG@zM4D%fVCQ(vDEDL6gF`cQuiMJwP-Rqd19I+kpnY5np#elCM zI=eltw0ElD4E(e$y-9>9n9h?R1gOhvC|9qOK6UH&VhdX7C-ZN7DR?p!wY9z?I^AuN zwcT`@I<6dY7as~b$QsYeW5yw&Agsxbi2$Go7AFvDy(#*{hfw!5xx^jGDz(8EE4Ri{ ztbc32;lh_@==XAy45^^dJ7_~ zvRa~diQe0?s|!}QdWmj#v8)zE@2nnt`@2`}_x=U%IcLt9nP;APM#^|*L zn^YDl{&--(Kqx zR|!=P^<~t;+wV-oiZLZBLbdDsZUZvZa*^4V6x<4gY{Z4>lKc)!F0K})?tO@v3TCg$ z)V%4~76D#`$Q;Q4o1Q#sf`aev)kM5?*<2$&j4}UZ7eC}w-R?c1UWF=C<%vsrZMWBwqWz5i1&5rv@1m8cDRD+MREQZ zD_5!gM_B0)m4#n#zp15Oi3JMgcppF9*)4|1hG3G&XfotWGgFW4-!%FDm ze@3Q4UXRmTvx6u0{*EK}nMt*XO`HGHoofmYDdXueituITsEXVjr78=T|nzevAn^hfr*}tyAFRGtF`M!nAQl|(34EedpZcMPi}$e3e2OAHk^7tI+`CcN!%^^nP)Z_CEzly2eA;2T#i%>=SoJ9geSe z;y16>RuH-RUsgw$mq@XF_fWAi`m<5kGY~t$i9MG`gZJXL%u}%UI>^%^*>jr&J)y71 zoqulfEXpv?=TQ~2WNFe+dPgOD&dZ$PZ!g=K8qJwNt)g(8Xd|vA%PX8!mt(?J zExzNbjrCF-`>ie;wsb|s@JJ296DH!5OK&x#D92FwPq7x`%^6;6R?;kXyAk}t=jiTT)%`W0QR`U zTMwnMjW(Jr#42oet~W3)X5Qb|-tat{zpH*u%nrQ0SnneHp`2F|39cit(+5%Cfa8UL zXpZ$L|6CCT%HiBxX2OvpZF9jAB1?zR-)3lR*NGlZatV}WAn4D)6x_OvL)&9gnV-G);PQ*E*7EVrXq%E9j+~oU3*E4E)iXuVB`RJlEI^omqSS{!y-z*VVExmX zhc#_G!pr$7OP}k7T}e=e_0cq)ldK%2|KDG6CWfWdq4$$As;>(9Nr+e9SMGc=)ruam z*Lo;gNR*H83aKc%AcIhC#J6hjfspk)NX=Bx?(*#qh_L1i>c>?KFaUK zQ6`0P?)m&;^S|}Fe`<)Jk`Vm+ znZoFouksn$Fl2Qmv*BkxGe>}j#9=8urGvGo{cKT8ZLk@dD*(cJ9A>pif1<_ zlGEFJAXwK{7gQ)qzfGy*H)eTOCCp$#kqJo6Z8sqJV{=+z#BBW>(SE_Hrfa9Dtx>77 z%AN=dc3Q4s1$z@jJ-wqKXQVD0@b9Ro`x}GCTjApW2?US5V}y+q&)h`kCGLTFW`vtx4T&F zOC1PqtFym8=HM7R++Ygvc*M69C6x$CEDguoYFd2U@xgVk=vO(jQnr-u{2hMu1Wv^f zc-aunM3hW<|H}8A-bd{4URES!`MmUz@jA%Y{l05mY9z%(|LGJ)$mmSTX_?xDm$!mucz6Lw&msEWa+4`>x_cm>OoKw~V@u9k<;H~OMg?Oive!lgs zGaP!06ZD8FM%Iodi!D#cD4B{pt}LO6X$ol{<*u&C2CFJu$N#a;zW>#-%jcXLuv~M4 zs$c%6m!b}oN7nLq_VP2fd8#pLpK&q8@H9$lW1_a}Y*mk~nxJjQtvd-3gxfpM0O^Dw z5yhn$+29_2l-6sNjvXB!OM$nF^5vWIY%}RG0%h$yAPeGWigGL^pt0`ZyaEL5w(*h- zIP!+qeqx-jr)<0ZAalO!dvlbT!-t0-Z;QZR?@U$cv`zob?7(|b)+kq(bT#7Z96N7D z1EDwhK%$HnPF9?_Wx+cG2B~>w-&MC48PZfXpEz$}l1nd_pF~h@;8JM0;vzM_O@it3 z`i|nW*>vR&_J_*cHk-`?u=s;YF??il@0}O_`DuO7WyGfUqFt90q6&WS)&O$Tdyp~Fv&Ck`u-D4Tx2oJMy-e)wQ$UWw%M3<$u46D#&Ps4zYOZ_piBKco&%$~`R~j34;W`n*8f zS+p@tKWaZUk$NtS{o*mf`gW0K&m~cSsCU!V)rHX}n`9y6bJ+O0uWXC$a>_zBV>7C8 z@u)ocPN!*x`K62>*NiIN-}mf8)(Ga(3eHOtd+O)3ZXK3pW5 z9`0WtBfcb(?%RVb)cR+JyrflLQ$COPqx5mtUH z6NK;>lOVv~WF3*tW#YchU7Sxsx7-X|EEY0^B8s2QotjkA+euRr)nq-LAUkNM%9-rI zH)p7gDe$`p9OGjn(!c1$0-njF)u0iSq*UNY7-e~44A^zC;BfPObRQ4(#HZ2})=!=@ zjSuJgt70~lDT~Z6ChUVl(6_8@aIMF$=DH~MbQ zqZtJuN*4R(w$_aTk+mXmh9#3FzR86Sqtvs@X zR0Gsxiiar{e~Dms*?Vs4GTU-5y)CVN`ED4m|6}D59>%;zH&_U-m;&p|q`CBX=1NJEZgSNfeAA84(hP^044-y?BZo$BT~ zX^PQrAF@*?g?}fh{AF0uyjLiG?5xa0pA@C$Ds_7@ zH6Ie^vr$WFf*Xuk*G0DCJp*~+G0anfa#@|>HPxVU)1|Y`ZsE~b0p*8+Bi^xzdvped zSslBP2G>eK_3s2{Ke(Ye1}NAKZX=`LhAJu1)FuWUX{{g~ysWbb+`T*ajQZPr9r%R& z1BL?#IcFsA3g04b^Ab~WN74rs*H@Xz+Cbd`kZ~khAu+2hy zl^eB9jq<^A_GhyhyH^;rS;lZMx+IDE8x8C=Kak)NZ^fmY3>K?7X$=8^9`!#e(<9?M zGf8cY?LDM2<_ss~NsE9dsL}<8Y^LI8=d@*|zZo5M_R94Fk+6S|H3GDyOf~ zxX9D}sbgXxo9NRoJFup?>+ ztW(o4bZ@~<2w;dYkH?oU-+C2U_53%z-WiUE3>=;RoVRZcQ)6okS;IVsN4C9YJ5u=|n6 z8=AE@liY=>&3;z_uw5_kt0&W%qxFqyJ0mtC+2}bBz7|wcmQHpFDG|d%1p#X7^f9lZ zhpm;(lvH%Cl#aZjzrdFAr;A)|;@@6mB~t1-KI9sXBeamWP5)kTv=N<@G2o}fqz{vj z6T9j*$MC^MoO*3DU5D41^MMsFDGo<6+Oe2a*I?B6Z$k%>fj#J?HtRxrg+f)^d@h63 z%U!$Tk5KeGIpy$#7ED6tqZ)B#60Ls@E+s@Ky9zKh)})w6=>%NMcmtL@nTC#{U`H*5 zscyc>DKGh7yVzI^yNH_186w68R57UmI>a+u?CW9`bCppuvs2fGliFOt5=Dc(t6l{o zg)!AoakLJri<^i6Bs<{Z8(rPCc@dl@1-=8|9pHy?uFWEyO8m5A+(f1;M-(?xTjv8F zAhD}Df+qS71hn|X!~!TFD;*ZkYSO=0sBsMhu>K&!vp4p!)aNXeD=a0c1&zGwtf6t= zHNc3(k41OQo&J72+{3qrsu0CTO?T8dX_W_{Q!JLdk9Ztz-^Z_bUny3!VwPTQ!T&&u zGnL3rb#7SPciXNmlPH~@@=V!NN%%~J%e8=Y@+iyAjMsG`(xDK}<^p=(H>BdGh8Ghy zc{?~!94RZ^Yf|ojsfnvglSK`uBZPj3;#PDKA0lDDR8#lh|%)Msn$v4h=CP!;6 z7U%U3^YkK6NUP}K;ZUe)%%mW3Kl~&bUKd+z4H+s)bex;I9w54}%#-Ju zy?1H`&{q_TXiAAt*-S6x5C^m*eD;7*Zneq^R(erDs64pnpSbAK4;+E`lA&r*Fozc zL)>Yyun|vTghI?A^~DK~M)m+_iJzCf-3(Xa>HhW?QnLF@PJZ@Tdt++3Pu#N~mrDN0 zw=Yf6b8;W1pj0d2&uadS_zw9y@@FN_RXUZi?s|(hAczu%6&d+NkaJI7P`gjLmg#Gt z*5tu?3)n(iyAjwX_g{!wP4#RTc(hhLHM8BgJJXghqIA6NZKHHq4_SiH1QwLays;>+ zdp77ZQ7y7<1*tx7bnjkNYa;P3bO|3(QYrZiULmAr${HLwRwM8&dxE|tVc;~dvm5*x zSz3>r9z1?@{BXHQ6a48Lg(2j;&!=CpUEEQ2{^(+q9bF+j5tbXtVi|N(-bn zxoSpN>~4sO`=HIHjk7XSq};nG%B=FZZ%;|XI63wTnuWQDhk1y}0w&|(B<6BV@tT7E z=fzQ7gUb3Yoru^EdWTe%F)~7uuPNtda@{WiN!4y3pX4zfP!%*(Co4GzEhQ(jxiB9M z`5U%`RE(0j^cAe5y|35LA!}z)z5H@~qiCS(adPFqs7C6IcjJ$Kd3(S4lc`V2O7q?= z>jf*r2sHuE1WyxYvRA%b1)hAAPX35V*q?*sy$DN)y^{Oi$1#ke*=wINN+w|YJ2{o= z85d-)k9X>T8$pjpLL$|U56%BFuEa%5K6Z#3H%ENgOTz|uO@YHZR&YVTlnW+zR6mMFKISmdW+A+Z z^|9!X*PW6?)`E+0mmP`^@~v`?cmj&ed$GfT^l{?Wl#2Dt|6`#Xw#5EPHPzOYjDq~L9q{pvO^uv49-sVv9O#BYx8 zm?=he`1#2hNH^LBFJbbDH6$?i$Yq-V5fYIqw12 z9$iA;JgK%N;%c_|h*LIF8toiLlRF*P%1|o8+WW%%a0hq3!AppFvq?TR@D#k1Aru`U zFZ7PeH^Mvwn^2CgcWHpG@^(&F`O$+bn}5d5qMo!G;RSKJ!LNc>^U1aV^;SBd5`GMC zl0$!yXA@P?+w`Aj^loRofs}>TDn2`}e@S?^?ed`!a3xQ%Ib^w!y}HuOOpA?thIhGM zf`H`Ou+7YY;&2^1$Ae%?kJjt+CbdEJi*?Yqsn4O&b{>de#3jzElJj*%nKDv^d|g$e+qBM_8`UXm>wFWUGyATS&M-?V15 z1pS4g=%fapaGcp3e23Yw9wy}SWh{x*QK0kwHwG1qSb{-KS*H!%@NrOeRq(cQnb&Px znEM!6fI-C19~zh7-k;P&>jkiQjO%EDDjSt2BfRysXLr=grLy$QUXy8y)iep|ej}Hc zaPy`#A5|mEHX+J4L8MpA%e5M0o7QZ}p0T-{*ArMX6LXRFO-f=Hh<%tM?guMne+IXv znDougs8*hzr}sMXriz_%UQ6Wv@#bIj7=i`EZ*na6THFb$smiIC`Hc25&f(S`;^)pV zD?TozaILDmd22P8XQS8SaGlW_j8Q9IfxTqjy-R2uy5mO-R}+~6aBV|hWSkipr6=~t z|4S;`SVw#V$*lC}|B4Ar1z?bl-lvxV*0@n@qBWW<9cm#U-H(1=Y2!3u!kg7aEV&Y} zB+Xjf7i28bVBh9slK7j&dSJV@eSd?PRmn7In-`{0Q+_na&aY1DN(qC1EY+0qi%LN#pHA~buf zEO(km=U?S?7uhhq{Q*eCrSy^GR4pBOt}1hUP%ml_dt^B@|8NwXmc=B!_4_i0s@`YK z-g!lz_fRf$cQuytU~|%3Mz)b}eKwEsUpYb5iW&?ebd`7f!s;78R*=KJkU!D90i>E~ zd*;{#W!NtA$+Nks-9ehOJ=A*r%Km(Hg&~p5iBWt1yv*qAT(HDv>Krj7v{SsWDcs1P zR#K1`s>7oH3z<2lTEiT zP;O|>GX!&?Y2IBjQP&2`R%>r(*<{m1>cX5c;59GDM4h^<#o6HlksKR*+=>+3_E5k_X(jr*Y;h%wCm zo}xuoVjY~mvxox8txYe?ne&N!uxb{Bw4AwBB~wQU4KoT*06Kl}O%N?xCx>3?s;9@> zNcSjYGoGTW1Q*cDn?&t>Kz-HxRbs^lmE^;%?-x1J192I*;6)itSZMZlE_h3=IZaSrp-VF zH;~8bY@-t31lhs>GP^nR5nc(6BD+v@m3M>Lu!#@*IgHfQCBn_=y_@28Pp}Dq_oMse z944~J_ZcYN=RQgypq-xzCv{5p)wm)2(I3B*+7(iqIBZ!u+VW2dlw*txi7~v0zt%Z2 zIS+5ocNVwKG(TC2h#DGwL*rW|ZdJVtBAJ> zpiqWu%8{XIYqxj}1X@kj-wGWi4Tz0{8%t(6xD#1)mb(r4TbLnd<;Og8I(@6S#$IK%=a3<1IS>SkV;Qq9Bu%xJsXV6H;hhu8#@)NwiM+f9mauEgQ>~rlHiy{5R6$HDxbv5Wu+#-M8&n{&Dx-Y@O6U z9OC-B94|-tJF}hKgr46#&GmEh`|)*`MJY-08I?1n1v&)}WpmP%cKp7APeS8b_6CeK zFylwXq&kKpJ6jZQdb+pk7klj=IAFAXsO#?*?*TpCMEjubEHN!_M@4i(CN^<K6Z)QNEYjgI9S$$uiB#QRvah1FP6nuB=wM5 zFO@|j<83uSZjM`%Ob?DnEAo%81@m2<{41Abct)(aM2D5RiqN{%3vYGS)E3^GX$ETg zLynq%yNf&TR!qyLH%}b))CpnSN7mN^?UAH1HIe4>-aCECr z2x2(K+0QI0-s$!R1l20ZP#tfvd$z3)5odAdR5Z0v{Z|%Se&ysO@Y2K813D?}HDn6F zqZ>EzatefUT5ZM(a24Z|iw+e9Pgh&*bicKS(TWtE9NbebIWL1fOx7#PRi_eH(N`DW zixZhqSXtUf=-oHTO1Vy+XA?vx#Jbzdm8uH?8R!Q<$YLIe%&b_YSAbK|CU$*So%M$I z6z9)?sryGMC0k+wzks0A-dbGJEXh03)p*o@5S#@X7Kl}TdP6dW6) zvWe1|DNWI`VmlNFvoPrdv^%BU&04RZ@A;m#g={!d0!( zlGGA?w_D5gbE(~AED5*7On|Kg1N=y5S>ZLLzI z&h$&l@G<51dPq;^rswz{RxbJ%6P6Zac%Phau5YdZiX`?uQIsfa2$|C{mTW|}*OXzx z=9eg@?zIN4DXXI-Ks0|ZgJp6%Im^XaD7IixH&6x30~*3pBN0D`8QAECG%ZlLgs|I-ev3~wPU@p@c8wbhxNU+uc}e;A z{a$byBUd_E*oizc<5|Bv7st-}XD@4us6*>MEs3PoIqgv^av3JGXb>KY%Nf0j(K3Mv zTafE&kvE(jjZZZI6=^cleS3S-L!^k-)ktdHWF4K*vsT$!Vvg-J7lu6HaMi+z)?#?L zK1vAib34fnaYtvfSfF-ycj0_vQdw^#L?)r0$SrO8JPDlWz`2M9VrPLn8gUjFOiPhg ziru(;G^G(x6Dzk8`~qrz8s|}Cm6wPfmv2j2;r6m&wEcHRlZt@5AH|#m_nyre?Ud-1?Pvt6s|-n6H>O!F;_v*me^TGqILry^|*^Y569{XcA?ZR^iXn+4+-t##DgQB?ur9nxe6? z^xm6+O`JDjUW^5~98gRLVs&tn`}@SisA>DJYyx?k@)pedZ)|Ir6feN-3K5I#*E*$l zN1Bb^g{DwnwM`0}Y-U|;ps#T(i{Nrn7o!0ft7+thk23_ATrpJJlZ;>a^-Aq@02$?u z|25`(KOduceK>>cHhQya$)m=Xk&~8Y>WM^d2fTQk)m=qlhh31)W=56F8Jr^m=&sx-dwQD03pKV$u~xW%>PYEoi;Z z!l14GONaTn)6e2gZsPyZywV{+C|xVY8=mJr{mR1`vc0|#WByRrR!}FpWI?0yCw*>E z-oa>qPSCYf<+T0aIeJ@C)lQSir>tXGPrm435!z`DDNhSYdvY$`@wscQFJm~PrbgWM zz2QaaJ&23Rz{i$(>Dr*Owxrf$+;wqW!;fV80b-D0Iee2^c5k$4Wtic zIA&^!O>*xCn-~5kpZ(v5>earM8Gvh=AgOrXIi4~9ZE=IiW^{{&)|Ui1pW}o)5?isE ziZeoKd}j|@tu1gKF>0JJvjm)B=G!c!B|t$IJ$A zpqTu}j-M~Io_sjIL*>^}^mEYL>_q5)7l*U|eVaK6XLHEiwDa{JM5`msOF1rt?uJTx zETyUR#4v&AZXsXs1|$dCc(>`d`}CGYvO1_i+aZx#`j4B0?e*54;755j!^%l!MA16e za;I2!qo3aa{Wp)@ypx(*xnsHP%Yk7UysPGmwrry-r33u6?*NlKiYbh;8}F;P1%kbE zgeJWvT3h{p2zb6GSFQ0CJl6|f?3Fz~EIK+Hh?N%{M`~kgHUM(s9h~LHGIm4uL^Ct##Ktbkw4BzuTa20rcl8o@TzxHTr#xd~J_0TaR^>Lyzak@g6GM~(z zhs%Pnz{2@L1F21%c!XfRs%3+j-P~V^kpi6`9nZiaffV8`Ee|DFAG7IrrjPv;4?}sA zuPE1B@xhI`y&|m01q{&hQ3Q7#i(Y#2e5WYqum79R?34KOf94EeSJdF>;l2jEC-Ia`3WmH@MNY%v~2LvsSx;vDMoYvD%8;WFsUbmNp zcdN05(y%rh3Z|+*@Jnd0Qps+>f{BOwhx=~z?e|57UZ7P2qEAFoc2E+<6D2ti^qB-p zTcsw91SDW!Xu_3kRTzsTN>HsuFaodU)4*G8n)S|MNBMV&RkUC0L2fOHo1tXrA{Hxg z;ob5LSDGBFLZp}PDEhl*8=xv*>VJ;WrN4j+AqvJ`D{x5qrMfI*`j10JL7%{)?HT2E zvdIF%dw|u;ANFN)@{m7NrKb)=#eO<{_nIfFOil)()~38*BgEL+@ltnT+}QhtS*8$2 z>KHd!SxV+*m{LL@c@?3K*cHUkjSo#s6SWx@ZU4#ia$Yg%QK?_PARbe!K zg+9S^!bhcydmYvDs3V{DSzGSVT1(&J#$QFHO=-|`R(o_W!w3nh3Y9vx!QvEsp?)QI z&nQ&`$}&^&!@zmj6W(&CL+O*IAa{|y<((E&_42q^{Ih?4AmmQEIB-YmOReE%AI0zd zri)Ns{d4`CO;o9x7#{l4dZn6P7JejJ&l@$RAdR&2NI0vh4s`R zJL7frBKbSN zU*2~W@GC*%<;5eG#s-CvRxmN@NIaKM0eej}HK6^YSM^$9!kx-VVHCr97pA7;M^1}9 zK?UDKMF7)NdW>u4y&?j1Swb%AoNR2lQQUSRq+y~G1n`qg?2>@H7dsQXb7C)VjboP* zJL@di7pnJN>!3E3+o-QuzJDEVJdWl03n!ok~CgJ$3H(K_*bIJEEYBGr|wPNjrr%;+tYi_5)u5hjROKltT-qbk_ ze!tctznLj(RS|R|gdB%20Z6S~p7JY)pV_n8Ll2@G^IH`Nc4VvU3~~4ug*iVK{iPF` zXgS*z9{vqmAsh&J&k6&pxDP&M8kn|Z;L#;K?sJG$8@4KLC3jrzhJ!H4BIW|HeXqWF zfB z{ZwdcU*n~*246c!p0AkWgs*F2f7nP<(APNtxz6N~$YWh*jygpi;r&dv{`6AyQKyv1 z2fq|J<7a%w|Eu0{1QtM2ysdGiKE|w5gCOr0*Rr-^NPl2`6K?FxmlszW{m1T;dZ{ce z=H~^geZL9wp~h zwfWBZsM?MyOmx*KG7FhRtqA!VNkaG*oXKO~F;-iuuve63qD$*=`6@;4Iqv0KZ%xBz zkHA~r-tE%=Hg#1a>saZlK&)gFGqc6A&%X6u)8ID|EoB2d@#l}xmRjjaI%NKvrMaj6 zhBUoz_~4{b)6eW=&#SYpf|gvXh*$zH zY^u8kao++*#P>=RU7HXm6k?2;qAEtYKMC7@qLxeW#|CLPybIN0sLxa3FMBr&Kh!D? zT&T2^zvGvza56)_DpDa>sMqrt1BSec8G7ptuM_=7ZS^7W-(B*}P2g3T7#`cdo41bb zt4kl`9dmf@X*RP)E62NOU6`WtMMH$Y)!D=lj*ciUDKwktc{Ql??bX}~p4)pJ_c$!0 zy?jlMTE%SKWmZT|h!h9fop1752xUFBE_ePRz3C0tsf<;=yHQedByvJOx0k{TCz#4g@bGJz3@aqx^sR@y@L}=E~)|qv6D_4hfSBD4idMxcIi#BOHIiBJ zZK&8YHCJ1vlWq}8Wr>d&GM30}I)7?Iaf!#Vd15Lm$Oqj<2|%{36aKFI`Tx9vQ9+MX z4L-QAbug1e3%}$Udd^|3fH!U1)Vh#=LJ?0LP-IiHh=}Fea%|#lt@GvUADEtWbUqV< zeTulo$NtkRa#+NNL}%By#D+imnj7%-`Ey;z=cW@%X7VK7o(gFQwy~|L#TjzQb+mUT zCt#>PLpKr_5ibW`X*5aLJG6uP6R})~pH=_p*EnVGarn1sHnEY>h&tT2)T@`1xvzX? z+&GQo_kzk$vD-wc2+PRs-TdO0qF`k}Ye4S&_7t2?vW)r{_Q{0zt+FhY^1_1kTn^>it-^7RDieCX`;|Epm&~qW?J`-7pCly5r;t}SvU}!t z7h}0xOo7Iwa4Qq7 zI(L#;$l!9C8&Ug?=5{^;&MZ|Ybj-!n$0emE5Vm#EniLGyQB|^*ZF}0QUK+VaH20qW za(!caQ`6DDgmyqJ*LDMPM))6K@rwUWm8UyD4rS3I9z;=Cs`*Gt@+mbswg0*8QNJyb zx?D_hgj8uto=u6A*2j&1Ab1>Ji7BdHgEVXNlodUOUxW7@$#+2R&gm{^lx%E7+^Cx# zPQD_wG$DYx7*UUWEK`?Rf>z;hUMi`ZIyrf>#fp816>K(OA)NYoC&hX>Q zS99kq!$ef|Uk(eTZgLgB`%84`U64ca1)Q?gTQLXRA zg#T-DOQnuHd=*``PODRi2uC>h`mhET>@R1^p7+A|MbQ?e>)%Tn=D9)n2%m>3nyfLy zQK3BiGUX%jpXv2dhiYlLxrk?silWyq$+6NB$gg1}QHK7&1S3IJW@3REkwwD4-#1!! z<`-vCli|(_V)ySi!&gGUowYlA#+A+=d8jK>C^<+iMZZ%3y4J7=;L0K{oBFL?H;~yG zv{r*w{x~$HMQ7yzPpwN%z|>BEKqHzgI#D4i$^K0k`9>%x49c+|Iy)r-uJ)ax2!3TxD=ywjls>e)gYDHcQdP?Nv5$IB`(pT+ zB2n`{x0?E_cSt7-={~)8l{hDZ2U}zy^K@E>Z$4@E`LkU1a!ng(^h_{5u43oxKk|<0 zyDnM*~VB*~x5DpF5+Ps;4e&u(6G&;f%SW9sX?b+RWc- z+q(I=Tie?AvdhTkU`77={c<%S`D&G?v)!8LsC=&@MQB!&P^&xC=7p9%z5%q5NelMV zb8ezY#?TNhp+Nhpp!LV_SfdI#aXER#epuDdP;pPjh9uu{4A$k?5RzX35+n(mO0iUP z8h`Yh&;iDV*WF1q8Lin%109^l$79Y!)#daVUE%h(R?_=#ao1iX`YW@srL+09X+s8( z5Vpd(TUkFGoRkoXl}@@gH9Cd3A**NGSZund#hnjoOYVfnlY_OfK?c@t)`Hd&LR*yt zf%w#sA4zJ7>hFw;+5~*nnf+vnu(9M;PYZn-L|n5_QKb4UH+T*tHDDoR@F2yw@M!_OQmAj;B-+;y+WKkrXx6Rq)UK2 z6RlfVd?@nEIgvKIIw?Eg$9&(jD!9A(r(Ij3e<^TZdn|S$M;Dm3ZY}zYXLM<5C}Y>D zb2F|ZQd5K^p^y|aUK%48!WF&NMjmQ!b?8ihrT_1(Tn4b6uXjeSvs(X_|7O(3F~^#; zw;V28sT70Q8T77+J)q$YW#KTSDTnu}I*ex8BySUbL{D8e)W&Q85fo6d)9NUOR&QEm z?OSt7eSVi8>IO5Y0tEp#Q}nFF^^S6bd4~t|2l!aFncrTyTlXa#kR|6REi+*~(itjZ zmsOcgA#x>#o&0|k2Sh#s3k8#%?7WEQu2}Lh?yVO<()8Fz`;3z zg2^OC*pW|b5Ev@brpT4;I~Eof*oMj>h`%6cqm^M0m&eKA+h5}53HAz)8hkynUF_0# zwSE>wX=;IMK+o>|0gUnTxO@duC?CEs9{Hq}xy-%x9<$UMWt!}n%J7=G2ohy$5pH`I z9Bb6nZ;BP5aqn7-6YiI@7v7nuuxS_Z>-TBMlHw``i(QFJ8A>PGrsl65Oj-&Id$zim zjJjjHsE6+aw8Q>!$s2?Rx}r3!ha#!xM7HS|Kk2B?RSp~KKAqHEtm1ahpT)0^@iCuE z$-%rI5?#b9Df`6!POe*0k@xXAT2nNeeZz`-pwiye$Kf=4M(?^T)4f8rkZf-wqZB%wn`7AA<7Mm-GUvqr8#(Eg+@+&Co|M)Ar#EZ(gT$uOd z6M`uUk=7K3Of8pxWaAox_iUl1U%>N(_cvptYXjZwaUDf-L%Ju;eNccFrJEOF%?2xK zhlIx;e*C*Js?%@<1#8x(nXz?!&YC#cur^Qe68`FS){x#WUJ6&}h&hqWrTJ)-spFI( z1*MITB)@@lt+{HNfaRcRUj?weC(^mCGA|n?v12sO979cESOv{L-2W06@Yq#v{!R7+ z>@EfMaJ+DiPw`~`HW(R1MZMQ$T5ZV^b!0KVLC|#lxD@dR+tWRk8?Zk5H8f?c`#@nD zBZ6eeIFn#3r26KiD}embK*GVFEErL~eZbsTsuydR!m=iBq-{{-~dV*Y1>( z;vIT9y7re)&3LByNyR2ACBfN|BkIL=K*HjH2Cb^y%6gD;JdG*eSIQ(07R2ed(@?z(eT65%%|JCxb*!iM3V>ay#nEVGeZIPdrDB{acl3o>w zslq-E6K2HZYp@5-G&Sd_=snhQ({}A^%bnTY4A(HP|3}nY$2I+akKY)GfRuDA-Q6il zcXvoPi1a7{0qO2$bjRqDmWI(SATc^d4FpItU`aBQaUy;@F;4U;m zpwGN$q?C^l?|xHWP3Tpk*^df2l-!h`#gbxnQd;(RoTWxYSW;nKQtXYLdAz5Spbz<| zk&o>z4~^ve*1}+FjFpnT<(%z1d=ru|VHiujjY6=t7}Oc|5pH+dcF2E833$lEFaroh zN&jb7zwRE{WVg;R=jM_0h|tQGRpya=M7st$D%?2)of9j181m-(3_p;|kg7xJqOyh) za!5>qNs1-`<4b+uf$p2`x9lU%R^VG!sQ^(9Jhh9CR-B@4P=WF2R(ju5WV69?Je{x| zpsjZ;8J}Tygk||c%~J?=+2+3GA1z(=!G6O>XXvtA)KyVb4TMc1OPJ1Ph39Y8CDmQv zKDvy__H9T^Int$tbeUu(ZXG1w^Zq%Ow+browbgKyo-^EF|0(;qA)8T!IbhVa>^<>F zJlgwyPNi(mip07;2Q%sFg&mf^|5PFtO#-LUq)RXE1Wn6W~L!W%d?mU|x^$5r#L<~u?I^#8i>VXWbr*N#SR8R2i z7uUG2g@!A#IdSR!vDsWTpi@sDE05DvlCbuH(y}Qu?rR1QAoVpyScIUrAEPKg+O@>j zX~a~@MlieDtzf?87;&`(bj#;vt$Yo2lk2&};`&pQvDrPXIF>+k>^h4LR*e}}1paM` znVhAG4;E*sQMYHQk^_hz+iVZI#TcZhhO}d;Gf`wSluR>di4co3f|Es6 z?bJb~-`!f}s}|%VnYyYfKc3eOjl|ff+B$U9)o7Fl-(x+w%8c~3jdB?fC-`@7dkPhLN|_d7(+ zm?U|l2|{vJDy>#0ngDGOjJBMy(=i^CrDVov5PGJ4dH}W&L-)CiIi4@V;)^2OL-wXDH{-F+f7r%PO9LImd9Ylt54cF8k#3> z9PM*DI{}X&kAM$Ph@52wsr!@;vFXj}$JMVx>Rs9S z%?iucWaOKrf>U|A62tSS``tSWGi%AGRf{byIvRa&JISh;>boNHsT$9ljw@fz8%(D5n-+fJRa7<8_89* zgq64-`;#DpN~Ow`+}@pm7PeQn0t>t!L7E;wRGH`uzgY&18y=~{6^-++0fe^xi>sya z-j)bn5+(q;?JB=yVX|N$_Wzs6=|sP*8k}`I1r#4TlFv_--+WGCJGP-LJi*3oZ7Z0yeWin)<{MCo z$;)(mF@00QK*ZOFlJ4$2Gn$26N>_RZV_Qx5z7M?yvtBN^!% zZ8E5;0|hZLQSn*fdvGkGL{V#&-NGq+&+p&PtsH0)YPVRn737Uf^PFs+<7urROc6G( zeud?0yPbGN8B)9*)7QA)(@jIVAFh)EDd9*6rrjlQUOJXs!4}P{L)`e$zh$PqYA%@n z!L93Y$-RP%2e03OwfE-Xrq~C#(z9}AOo~C$xkK$ff1@7@J`zExEB(tcN-?NExiK^j3atQU8>f` zVg`2#c?>29HPv4oxsPAx|0NMC#sX&9sLOPpnrUVp83}vH#7Nlc=XLw#C{M)X3_aQmSb&359Vr7YUAXqGmV0%B_|dC-vIcFw!g zAF+9N4Frt-=kxtWkz7?vK6}lm^+M`l^R0TeoxW;%_0f+#YLud{wMB739MzcGpya)Ru6h!N>R7pjEz znMEzqM9&PZTtt@-{I88SZEy$iiU+)GtG|y9e@s!LVxXr* zO+*8q{1IW|;eGwAYX^~<^aCJP9?Ewe5-%o&4u%fT0sy1iQ+sv%PG(_xYnR623XUG~ z-CO)*A+32MtY)au*|{h1Sv2mpJATotBd@-jllW3V!%U!b=@5Wj+i@Ko9Gd^D0rY& zH0}8CO)~S9s3qs^g>-RlQ*xa4?a1vp>*axIYzDfv$3R|}P<-*trlfu|SOK18qBK#n zz1iR?T9gg(n4)Q^-{gJ1&9UJHN2#%0Z@vhO-Bg7^>Pv9TW-_+EAu6Vj?qCZVgiSSc zAv_?|ThTaFE+@E=iB@Ho>Aaj_8;&E75F#5@VV8{tf9;x!KjvboXvTbLu&m~fWqN}s z1y6!AuNE3!pI_blAMn@7Qr{qQ@N_HokSZW&PgeTwuNSK_I2>O(@2CnRplCtnQ^O=O zE)pcB&GPj9e7eO_LuDcJeDb&ETBfUAEgif=elAzbAuesc*`#uC*g${^#a!#NTPr5e zC5o@msh=}KJnG6!b*@~Hu`f_o9o{>sDZG+n-e$aW$5M37 z<#os{47&>zV0M?qQu1&!m9n#&B|?0S<*LU&#>_8^({#uV$Ne`K3lfykpnB;5(GPz& zp6+UPm1lSd!4VYFlPS9>;u8=Li9S?r_7T0TnWYe0oFZC`jE4QN;6+);qB}bJ-Jo~z zwCuV_PHg_^cgr&Rpu-*5bQLhXwI=htL@jI{<7&>zA6pWTT=k>CL?h>CS6tmz+&KHDTMda^Ql7Y1u)G$J8q=bvwRf z%;W$#1FN@P(m-oUg9N|uh|WH<0bUFp8Eb1(Fb)C-#jMF)XGAnqHt}M}t2op4rRRQ4 zF7yAjL@mcS|H-1qn%>Mz4U6W!<Oi8Q-oE|awSj&)4s!<9)jd*+iEmJd|Thg$qFRb{n zqu~BgHdV)gt?DZe4l71w2~M&8c*kc~*xJs(txH!&yg=M~s#HK=M3&Yn`03%$%HfW_ zLOn-(urQGz3@1R_jdC>fCj^8FVyk1&NGR|~$_8Q=8`vm8&y_ZK+BB1bczHzm!^apN zjy!cgKnSb;R6Ff%zXOj|{N2Q3(V_ECjE+R^eW_=u zZhxE@nI;h|H!IBmj>OpUmp@K~>zCeRmpK)n9q!|itPWnC+sMyrg|?Fkm&?1 zlIVCX*Px-PZkAmQm6e9smXvL{R&L_4;CdaAVakS2(P%gStn`=Kol>Jryx<^#e>;Ir zSM4i1LvzOSZf8O~RyzEh2XAcd(Gu!M;CCw!D-?sN(A9ZrR0%bDFv9da;EsLYFMgDc0&itpg@BK%R-1?S>Vp9A3I z*tC<>`rYhlwU=LC@^!T@T^NQ)nmFEz{EED^@Z@MPh&z?^PIcw=qq-7H&3h#kNu*yukEolS890nDSaj#1Ei&v#9O`8*c|IjmT)rm|GNfAr4j=nxK{j0veAcV zJgaGT%p{?i`!YVN$t9T11wp9?t4#;>rs!pDr_rVeh-{VqgAh!Vl=vOxYs&9IU?vbh zPy2T{ha%P=v)0KC{YQ0JSC%Q|3c_HH0L+S~ zA$*GZQ=-1*RXUNBgT-{ydI&Vu<;<;lqdhs2(dc(Hf)Ukyy<(_u%8kVqBbFsoyigLB zUfq1NDkPs{Z1*~O?NO3ob!;(*OParS3Kylyb)O2LrX0MkS%UgsW(?^E)-MK8j|061 z>d%PODF8vpn!#a$DMr>Gc)RtEeG`^4S+5hRAy+D+!*9F1ZR+wk^)@QhNM4vbxiNM? za25K#+PUrYgZ0!S`uyuWpXWHU=(l0Q>7#Uvbgavb}KrzD+#P*O$AQ)2zu9i){vL0${=y7KIG# zy{9B@L-tPF9a(87MF+vC2z6#O2OafXtGHPWpE|#6KvfYi$nmL&lN|5S=s%1J|GyR*JLN{Q_V;`p1E(Qf73;#$#W_%y>J1SG(q z+jS3*%;S2n3c%Ff_l0x65(n@;+>1Yv$18gFn4&CwnV|02Up}RNze0_6ok3&4s#F-p zYT10=$h>53W}Bbh_n7o#RIUPPerT1{TT+GsOHcxN zt<^yknASYYE1sWlX<5Z9KO|=8JFKQX>b}^DF5zBvOm2 zdJ9g!c$(f9I4N}=iieRF=T;suAi@b_S|>=T&nJ6&<%_T#Z!anr8xs!_M|+${ZF5Tc zXhqEhBf76tnscz!Hs6&eY@4I0GY~eAreVveIn~m=aP2He>@!r0L!hUjI<|%;g z*qp`8GX5~NL3*;9+;<8)K-;8h@n{t8jAzmPRhFO?Np4F)^c~$Qa+%udNHTQdb$(4s zxx0#HfEc|-F4GL3or|^g!8G~pA*FU?q+^F6gWd57MJh$1FX=8)j@~9aw4Ai5#_3Y? zpIoE8LC(doV+A2Z^@c`xd)=Hp=3J5A9IP1XRUG+IxnvQl79QAlR96!9cYG)Kgzw85 zqkXw+-KlL+iHy*g-n-$3%LLQrtp}*G@?~BvDs5-{g{wsB91}TUfr8)^`Z=}E`v!h4 zrn1m5sswNfo-B4IjeeF5(kd?^^wfByRz%OWn`CGRjw7PaRBQyBG(D=&Qr#k7gB9$wx zeYMU)VYHy}oISCXQ4cY-WRqi!NEq{E5tZ>kJ|BLCzXILH-!hNrZBpe->E*-{15@88 zD;KELvcNe;D{nt{bRVK)i=e9jmwSaW?1Np0*38+p^^|h>jy~`*QS8%bj2T zDB_I%O}~|w)B^94)Pcea_NVGs^3sr%-phjIQ=3|GdX}7+Xyd?QB%!aPu8`6(q3%Z_ zuwX&GumfkSN)vPi?ZKL)^!R9Xft^iALp~GDF@I zi9PAYFWcZd=|tQt*_>S<;+wVNa7{46C(FBBNa$`kJon|mw;(PGU|UDgm?{xqDQ@|; zRiI74B)d zfj&35ApJmjLusVB^I_<_$LuxDk4BTs*}8jirh%l$+*GX=0YJOFS%gqExhZ9C^Hl_lwzy%-IXM!Q1Y6z zS5fH1N~4#r*Snbii9wakguiuU|99PHQg+O|FVCb_8pPIw4uyu*{yCR*${RIOZ_} zM(U`JourcbDDS$a>mjXg<+m9^c2%H9+A&WlDF7#soBbm_5Pe2Fdu=X}4D$OIXCLSX1ku zXMtYRYHfR&%`);OE16~D_yf@3yok?p-xm^5H1Gob-SgKVDOn7Blpke+i1{`>%vuaL z*~LYb_1X;%hGXz^c3Pa4AnH7Nno{fHJK_@op5zCSyO2k3lyWp?PW5`df|;GxgZTJ_ zTRo58Okq~)SIK9G5()6B2p3;f(?f0C9Y=yt%Mq&X5$ESaqL<35!gWY4CEq@k%%~K| zFMJ`9#X!iQlvorDI}8DA9Qv5icB$J%Go@Tq!R9B;FI4ollKrU2c0yXzuUoP`Rd}z0 z{f7T9?>ROPj`4@XfipmfthK3)ugCp_OO4)0Joyenne12DuC`YSiuNaJGyVt_c$aJI zc+V&$8hMT@Q}yIfI^DMIZ;29de+E8yC!$W8Gu7#~X3Eeez*XQ9n&R;+wjV3oj8B_V zt-}dBSMc!^8Ju{^Js6K|QcA|siJVQffXjq&aRi=M_f6{fNSkKO@RxD}lYriEab|9? z6Kg5HRq*EnTge{d1_@*F*fPa;+q0uFrzE>&Y9S8Ep6Hc+dXz`Pxw~P}uEKYvHxfHQ zJwyi%13}|S&R$98W=y*prE|%!4Pe~M9<`+1tcI*}-RrxE%pO4@Ceg*4b^4V9dzbS1 z&lv;D9X8u82d+1haJAWGRUoe??5W|Vi6e$NVE(KZ{neLOuMj_sS5}2T!icKgVJM-K zh%ggZv8+`v6K7Of)B-Fy`eF80BVbGpFNx9~WDL@Y`-Tb)qiUwq(FvInp9wYF*_mwR z2Q{q|A$R}1BN?-_gNIsT9ABs4B!9beN`V-MzG=%R4D;^iV?)ZpP`ZClNKOv>(Sj1W zK*`Fc5a!-#=%c{wHX4+aa%P4YRTC;W-EWL;FU3Q2CaM#>pMn<^1dzK~lu2!ah<9h( zS?*%zvjF}=zNSv%_C6GeWLoUF8U(1-34))q|0$py+r0JFd@{NB&U%`39*ErCnLHkv zo^CHK6>sRK!uT{gcd6U@K~a7&nMOmH-ArcKg`glcIs{|-wNKGB0~~FS*P|Fb! zEO2g{uE;vsrM7J{BOgaAK@=tyX(QE97pg>LOBGNKQcXei{@6g6mYOaj!=-&(8nzs1 z2bi#?*ivV|<_YC7stL^~BzeuasdQdSuz}PgKH3%F)_qi2$pY6$xw~VA&GH^c9$818 z!Gt$oDZOhGfj+oKLJN*c`jj;|7wROT4|4aaIh8#2Xj?u!&{@^Rf#YxJjAPlQYT^|G zZ1@X%GZyWU@*$M|$$zF(7j#ZmYE!w=B-8Lpq?dMPAa_NV1?I~-ZJ6fOFE7@!R$m2! zLMQ*{rTk9(;GqhcGMl$nOSsiKX>B*ev@xM8R`rx5}G~H+v_$4T;8r4<@LYeo6 z8#|%}#ydIX6KiHd@G08A{mE32P4xTdd@}_!H-=D@U?P_X?PXQ^BoCX0@Jy9W+Z>S0 z-$`gMo`5>;*@HnMHR7^j@c_YGO+W$9{j~nh>nx7T#cd)?+W$9!A*&o(mwe7 zLQ&sS#VYSt@vqbttKmeUALyNxlHBMKSBIOcT>wgY%B#fk$B2t*fv4QqdY0RlW@dsY>Xrl)Mx}bqI1>;v;T!jGHKsz7p$$-RTv2 z4uE+oI=m>8EoanMUL$+HPR25D;GS+hWh)7YvnUer9BxUKVJGzw0Lw5ujy)KQkg|6F zb`MmYt;+49UPbpC>_ zc2(`-?b_{Ra_<{u^xnEi*~HC}XPZT&?Zqp?J-@f3t`qT&bRI>$pk>3OZU0toUU!k$ ztJaqALHi@i-uvC7ZNVc-&$yXGSEObJ{hYHbP{D{FC3$qGw<5n2P&Wt`SY6{sO?HfSWP+()mIC8h|U?F#KK4R>$$er76rF5Bm>FwPN$ zV)YR&9x!WC@awVfeX3Z%JGijBw<(0*Uw?OI<&*7!Yvh}u8~%$h*jOKJ(t;)~1DePD zDNnRF*Nj6=fcSieoQf^&dOzvMP1~&mtS^Meo)0-t5(#$KRz`9@rG#sxF93f=O(s#- z0gv@7-Qr8U+v$e}1n#MbK8O~#JauiC%?JC|0R2D3{9~`@Zl|%-AjPxwGI6B&SSGPR zI@$d9=g1hu>d~dwkb2(sU;GI=-t}3-D)yFI6tb&FoMnr&6YH|kOv9t~`?4na?F{ul z(UREWf&Dr-Lsn}q*z=`V%-BZ@wEc~FO*%5TYL?y4I4`FCG#|vDPM>bPy{DgUYhb{L zeNWSK%LCt#f&Jyl^3_bK&us#z7VmFt;x}gci&C>pib%)-TrwGWCW{HT3F)609QD0Z zvm>3}7t5@lAv)n0qAY9P!}J4M{?z1`d{jzv>vC%(_fy!4bcNh2`lIW2t)Ptgk0kB# zu@L-Gg)^q=laxdUH#B!x`BV3jacvt#%8(^SMr+^j4~0fRg({ zU+j2x%FOqBa1h_}>hRU=1t52#_i=jmWmqXdKNekiZkmy2+D*x|Q`&M~YPX_{@)7gP zX$>XiuGljE!a{D@FaH|}DdZ5Gu6i1H>ZAOaWpzZUk zGl|Wsb`^EQTmnjM$x|YR%hnIYaAb&AL}`t}l0uM>_*rZGBP%z1#H*e>eY||%4(6C_ zorue1#-z!D?|XuDb02z*(<14##8Fk;8aObMOMdviBbWPAFmNBtv-5^Uorz@Mig;Wq z^D;8QzlEYMFgjA2QVhx%#&Hd*?d8Nwp&s!+uqq!krfF*12YRFaAiJl1bl`|cfne+a z^@Uefp4A{yRK8gER5{Iw0wyK>vzb z#0qQ5g7;5EI&$7k>}R>yw%(7}*Qa-phrn*JF^>-wU02@Du#SJ+rtI0U)0XOf#Ibtms;hCTAhnuZ=vvC?PUgAtftP|Qm&3Nn!lhR6al|rZ z@coQkY*6ZpeY$!{NfHLf=e>cH$dNpYrDb2G z?Qc=id6XDIB0LE*YUXmOi1b|UpOT3`<|4%*0gs1*<5EwPPjDj9s-cmZ0}lgZKJ9sb zfYR=CVKApooc?Zl@`k8M${fkRCH_eA5urbpkK7a|w08*J=(L7@YnpNm?3jMLFNPvW z?tmS8<6@0DqaeCmC*#KEgoHUxT<GHy6YMyo#JGV8Bf1pPa$1lD8S~eAEZ+RZ@+2 z&z!b%)Kw;}MII(sQn6RN8EaOq-enkpI{RNx6#k~84YpPEDDvg$USn(4iplXTi`>W* zi1=e?E(;&ua%E@$0^-7ig_#7@*$iNKU%a$^FCB+}m(){K9qfMbeWUG9F{yI+D2eSp z-X>G0fGaG+c0G{DH{d$1T;UQ}B=nTD$GOQsc-Br=C^PMd0TQGJaBvp*wl(}55Zgp)0DvbMiE>s6j}4!@@6RpL*! z*3;8furDvmK}~W?A$5(u3}8g|P$^=LoHSS8=v_4XW6>rNbz5u%!+m%#6G`2$zcA*3ZbDnGBt(A#r%)QeB*vAt;l^f zKeyj(5gK=HdCzPIq~Afse&;2xIY4Ch!tlqH@=rCBwj|WDI$g}-A4WeU^ZJz79H8yF z7R?)%We|p3%eye}-e+G?HC0v`>n4KI9yw*q34JBe})hL>t`e3xb}DsLVvceCzG zZ}DE26}bAO_3Y+8!MiC(Bf&3xe;t=^&D?6KWt*_IoqTmTYIg`~QKTl|{J3G1krh%P zuo|WN>9X841I6Fy3OE_ z$iq*JOt!fYY}j7I_*}6%+TiS#0b0b;Ey>NtC*x%|6Zx4c{N~#X(n+$u)q3Rsd*_q? z&ksd6xxUOrO-6EZ*IV*8ACjY`MIl$;Q#ut=BHknK7;Cfd4X8*9KweiGB@VLcc1~Sq zsF$DfWW*fA4>i06@99wCySHPC{h*1ue7dXZ-RGAu=Id4)U<1RG_X^~ZN%L-~UVL7gl)vuG@P7BDw-u%p zQ`DwXSbjp7a*wFnx*FJ45!e)_QdCxR`7V+7wt{iEqV#ajqImtuT|u;G#S15MOcw&x zSIKSK_WQZB+x@f`J9Js_bZ&A*`3RhZa=d@}=-tD88w4uWSP4PKAhUz=`q48^BEp$w zljxre$Shr*OJb{LOeMTm1YmIs9&P}S=Qg0bm4{Wr~fFZ2T8;`~CuE4^f z$szDTa=EwQ54oD+4S{||Pvq0CWn9CbKv9YKw$e}S9k%0(^U_=;^r`iRf@J-=7rss= z(X%Mx!m!l!-1`iDGtY#Q*tNSjhvKKpfKi!?0+&Z|hJx<*b9V!r?IQwNE9=sIe{{jB z>ctxan-{*M0}T`Ol{(4H+etYt(nX~~XOjVfCy~=pN?55YDVkFu%dx_mv0|PDRI>IY zyR#o5k$#%GX89*=1H%cQymhA(#ccWgV(DO+gsHcr|I65W_DgMVl}e9-?Nfe&VD_gF z!x2}08+YHg+sUVR=@O&-fI5aO!sEq-*%^IzQX0^#{vEfOz&@dEwvAyJ7zZ5d*6WB{ zc&%mep|!dy*ihhCd5>bRji#w;q_ntls?W#F>Q+&I=##i3vZsEiexG~_$_?r4GCjn$R$tJ+OTh?LCur}1BLYJ+Rl`Cu(l3# zQKPxa+e^{*jVSs4A4u^=mXOC2>9!~Li|2gK-=;r@*F-AzVIC6TrML-`kKc0~k4vDK z#{D)g2DW~rAfoZg%Rb&H=1$ZqD*DlXws7Uq$sbZ~50)q6Fi8L>D_nj!Cu#nN8v!&_ zT8l~H<>-qrmRX&4qegQ^b78!=QHI0>wSxL483PEkTRllJ_Isuio z(-XOV<_gsEUu{j13axkf2?f=jUfJ9h+c?~AU!wT|$9sD2{ulY8Rv*4~H^rXh=u^VA zL~}0ScCP+&Ou*RU9j?oRbz#jV6C&>RzwNSY9>kH{CwDn-$EB|KVya1s{BL0glF{JN z!Gu*?tLn>Gx8!`rc+9`2P~kQ5q3CXRYhH5J&$i)8hlof=2|q@y z=#(U{u&IRLbptHfH4eIfuSF9v7jEBoWaO=&Io}t;GQ~*;&Gb$dY%p6Xg%5NeeH(VIUDka& z%lyCALQ0BuGd|-kA6#f`&-M@1oP5x?%CWS{QCM;j+%Hrq<5(pUK@Q3icGdTqF7{iJ z*>S9(Nh%B8Wo|XPY=X8!1%Ry#U#B{7XOH{mOIP*H(>3BX;#exg*`uU%ABd>snI&tswS-qDRX(QW7d5|^ z?zo=e)K8v}-QDSEQ7@e~S9k0S!Wcb{rS>)eC3)zH9rmhuPN(K+;o1{Fn%dM`pDG7Y z=FsHg4^1~Z>#{KSPB#YQP#IyHr=MLapdDUDMmi5(HUP1%3D;hSIQ=<8#u)hElC}h`;>`fDrG25`!D4wHZUUK7Mos>4#T;kO|s!|$~ zlaY-rsTJ2d8R`WBD>I{vR$iAKo%AX&?N@budb35{*tm5^WX1dV^LbqAZ)hI=j)g1= z>#LdBT!R7x#JKBZ7k#+ZTdw0%4nYFwXCW_y-bl*$o$TC*)Am3iGo5SiP+&pZa0c%6Sy=Cb8^8Yj$7;!Z<|JI#Pu90?2Sovv3iqPohXl2LNV@tcuL zGt$jku~w-Tr^TxJva!}y|Jc*9zrb8T7)J{n2Gh7WyxTo>AOHxA( zX>%3XcGEz+rdS1jUFn4luq6CGha}+Vc~zTm2z;7mTR;IgJQ>g4n);j!_#GCk9j|8W z9MsztgT8%6(n?oVY+ILJ?7x^oe{9?OW(_T|Y@7FtzheG@1XUfW8#yOSn z$kF~swk0nszqq*sMIN<-9#7LPFNX-}g^(1@u?-eQSy3o*V|QyUE|jdlf(xIUj#k}m zIxuq*N!+3B2S8E9&)*}q9VGI!DV{{$sl_z&f9_K3KdIaedQ;BQR5lK5zL?dzcXano z17cA|{tB`$j#CCMECv$(a^zg+;3@5~zzzvVQOwj}_%cNd$v?|)1DCtay~8BH1<9Bgk@XFM%s@jI*_-KeO&W&5%!?7wtcpNKS+ZJmusp* zu0fAQmJ3Ry3i=nmoCLEedL+))jl;o)+IrE}#xe<&v-(}-i-nAwGU-{O_^R~gDI!|rZmVSUZ3 zz9V%=@FUFSv3JIciTHR>ffl&R*_Vl1L8CBbL`V4%Im=*E+1z!EI8EruSiaaGx&rFX zloqoQf`hpGggXA(VcvZsPE1yv$F8dZ5*y(Wq5gnh3PWs4mkA0}B7_I7qfW+YDkzF3 zQvp)zozt#A+ULny7Ccu^#fwY0Zp6w7fX8d7xABS>1@ej?uN)t;pDn^~^EfT*$qbwB zR((mB4@q(BPdA36eKxLIpoB50-rJ>ySv8J%RGBdTg?J5oZ^c;_X2W!VsBXonWq6sw z0!$b#_Q%Uk3tXS@&lO#ks0|RYdecw~+`HDI`*pI0S=kXvj)-kc4NvG8a-Ob@P?zM* z&hf@Qd8{}qxOj!ircP*p5<-wao7JQXcfWsE1?8;EY`i9x2P%kH=-o;COS_W5PjLPjsqoj<=-aWDj9!u)&9Qi74W8RwA zCG-E=RfhC;)5gSjyI@IAFy+gsBy3E}C$|nU5L#8a-G;whsG$#c85v^urGCL;=`?o^ z=zKDCPY?Nwqpv!Fq^o@crOpR@ciF`CFDb~!g7 ziBcoWrsdkVN!44r`#Q)CPlU%`q0^qErZwn|m5W3xzRww!;%Zw&OU_7erN?bxi>1l1 z8XCF8av{baf5|r68-G#-_jO+@`j*ZrXemEwpE0v<<=r{uwxhB~171rqFYIkmNZ5+D zdMtE?A|G;a7_DiImAKGnCElMb?|qQFitIcwl}7V?Si~lLebo%R8Q}=`amM$m8zl- zmnP_5(*aMDlpKVexV&u`V9P|Tg@6fimU{QWLD;mJhPfktmI@!vDxGszOJUV?l(l9A zK#n&O)6$PD=l-y-pza2Y?8DFR(v(lXyaDk{dHn)i#n1cEsZeA?(4zcMoF{jNnAo+Q zj`<~YDA)M89UBSh%nQ%`kUlxYA%8&gHs ztBm7;Zr+KJikdhvV9}ynu)R|nJ1Z@CMB_bM7o z8jU4JEBi}$>j~@DG}Sh>K#J^LLQ-l8EOq1@p)WcKO9*{Zp=gA(30o_I3LNv-y=p>3 zY9~CXWR_~5yW2cs22;W@sb3Yl&FcM(eP76%@IB#PPK$T4!p6?T_(tuH=zV>uooD3q z6qaUIB$=45067EB*lK7 zbVWLIOH#0wwi{2=y<6i-pSPh*2ph$iw~-o4m@qoV9$dgfHC~$cFL|3W`euqzvQBT; z!bD;QnUG#s&tf^X1+#jL#f&EEivn?%VXZhL3ch<%%!RUEwN(;6{AybyQoJr;-otRn z=j%@FZf*&ARSAy#UXvqfTLN$$&MIwdC)8Ziy#mUT)mlM6Vh+yvw>q&zHjNw466Eob z*of>mPgB16rnzm-EcKjW>7$<}MIu|Q*q?)898hFLsm<$dJ8Ib?pMNEdd5X=1L2iUJ z3nH8l&jCpimbG_)(Bibt-%kHa)Rqhs5<^z>1!O-HuzjO&wZ^ffl{(yEOXol6{dP)^ z(ph}mCm{Er2Uw;OCaIEXmN3i54uLShPyT(*#JCK#nrr*+4^Dv5VEXgYqToLUo>U@; zfz`gQKkL+c4z{FiHp#B3r&%Xe;=mvL5@d@7o+y8^t)Y6aja>FsMk7@tmO*ZocZ%#h*wvlqkq}FmOtqQ*n^RaH&cpI>C{SzT{W?}F_ zU$Hb=JPEUr2>Z#A-EMxSbUI4XW?;fM(4%YEec&Bchrk3KjNfP!1EG%<`Kz7;!Aj`f z=vb}^DF@eAU8+H?t_}5GEH(O_1{B+YtE1}or?Ql4H4TZZ6wJBYJT$D60k@P6La-m| zfQ%6T6}dE_^}p(4OWW89%0mt?k^AD>pp_4e57pSeO{mw4z2&gJl29X=M@wYaN1bHs z=36lJx0i_3o;zV#B7DFZO@!>h$M^4SV`>#UJ$29VZ@4lCBMt4got!iph6VY4WcXthbGbVU{g;Df6;Dt#Nv*Cv>3{b5wk& z>ZDLF8gNusk{@j-=*_n5ODOJ|hOfk*XcyhWgU#np z*ZC;ay4K#7{WnaC^mis-sQa~T=k+ChrCoEO%m5saPEy4Q=?2iYBT!r%VQ+mmH_o@J zskr{wIZ@IxnCZWD4%!0XFtRR27nE_{F;v+hXWG>y;v?Up_ojL2Ly5|$goBjdvwt=_ zIBBAvwTa=qa@pFjJ2$pkH|^+u{5^6xIvGMo{jS-z4pZAG2Wo8%Au>WWmM{S2mqyFjaZe$P{Uq zgV|~C#-&}h>9yp3xu`X1wZSwU?(?IaOz}hf%KE8Y{Iiw*z3?0HpM0!wAYnZEk~4s* z7N~usAI;sj>R>~hCk9)RRTgEIz|P2DNfnBME_Q_R;0(Zb96Jm8TbNEwc9OybYnSW7 zPtIxP<8!$!8+X42qA!Oh(hM3kdX^()l*ZS3l{My;=S0*JU)m)fcO|C*&B$V8EX_I zNjn~rZssf0znvc1Ifs;JogptA}u*jQlZ?Y~4~DB_Xwu{>cOok0lyb zikVq{uJ1;hdvP1sql)dPh9I7(aLiC0u^4#7SSgJ*mE}d%*ytVl-B&!qqM{MLG2RVV zMovsb$)b@vBhOy|^Cl|1Bv2J=c)H`kduUQ9;N|X5OmLSR-bSxdyig|BKx@0YE=}hyFYy$L$3$kEY z7T_CR7(lHFRCl3TQ+70P2!axEX3Xh2%C7^-g_ycivu@~H_XA`pFClH{Jz!aGtZX@>6WB)g5B2J3Q_7z9vU&ybqMOM z+xOqu15E)fx7nC%1m(K@qbd-kel)hR1BQFz9d|>X4(VjEka-R7Idvc*sr@23(C3R> z7Zro5)FyS;B=XnqwiedHjPQ}b%RYaK-RPqJoSC;n#uIiX&UAD^Zlv#C#y~6!Kr`=k z*+<#;Qo1gJ^kDegnWLCq>$R{sO&Q{eaXYz$n;Y@wP!bPXe;a~Rp^7el>!etimEd96 zcJ)N=w8`8n8X(W=M6QIIG;Vz4=;0L$;QpdKO-qPGGX}$WGp)|yF=?n+ipwtEnAF;t zq&NGwzgpn|8)3|4cxu! z9c{NTbz=Y{tHp_SO1(+e=V)o8jKTXGK@C7hTKvU8jUoGRcVFt@G)L4T*h3FhaA$+d(5|iesNK1Xc4Z(?TWJ4AE5ajoM4)5CL(=L$C9j3hcWSs(2lGS zVKZTlhuUePO>Ch=_u8hjb&|ARyh{gLH$y5Q7XTiU>n9Ff`KLJ*0HQ z(2X=hcY|l%^EnT{_xuO<-uK#juf5iFeRsOJZI^e{)FqocF-XPRopdos_SVm(R0O!l zbN+$sCle7md)Vq{2Gi=@5rue4wL-aq9(RcVr`8W!vXRldcZyv2R2lJ7Juz(v>?F?V zgzFH_!sWxmUS@E8DSXpj-`&|{(ZGdaw6ym$R!KfXOMl)y6uWHL zDn(7oJ@H#)A~&k;0WOD|2Kj4p4sAQ>s$3eO8n6UPsSY%2DWsP2#65`4Pk$%h>Ze;w z|5rOg`g*jO zxn$g|j$tZcVnV2zf58>C2-lCG)rqTN6&{|{*V3!(2LcKUicZ2f8}g@-OVmL0xe^{& z4=c#i-v)nuq+!VxSiGRZYg7L`Af|KY=8kq4yq^cUaOT-g0k{T?RHu|@ zLCb2vcdzJ1*M1EJvD2Ad^R^>I3RTBmMeHY#$V}EX!x)E1IG<`-<7rf`zaU%7{~i2) z&Pt#*AV78P{9M9t&z;LCTMWI4}9 z1NP%7t$B|;MxAx-T2SJNL+eGP??O!16+PZ13_ICVfTsaPAyhnPDgOSrdr44oDPdK! znrX>!#6Cm3|H-mr5$B-EKQgPv5TnTc#jv%13O|%sZbaxKzuV@Ym|s@(A`u-wR-OMU zy$cO$jedda+1NBIuG3|m?w3gMgFgO3?i`v2G96w85%IxA;pf}q4wSK(4Y6x>DDmWB zALJofXI||z5?tLsxl9xwyKIG{Y*{-fmKFP5+{x65nS>!L^!jK{eNmiqUF*h0j{=d@ zujSQP53Dq~7s4x1YYr;iYVb6d@$@<)PVb)1O(pOj=zOwUi2JX%=SeuzG>$$B|}>@;=CNAhRt51axfn>uAXtl?+( zGOpyqC!4|?^8aO&XcBa1pA#1exK^|Z#F^u%S^a#@@R%f*{p4kRnsroL8|e8w4awaY zstp?RvuoWvV#f`m#cnrCOUPaXk}%^M`U^v(p@ezeg~mCV%d$cu*F0;fJUa(xNjHXt z6V|GX7-7OJW@(g*&l|+!@3BrZ12v3p?Zs=j=#*bIM|*_TkbeXNsM-}*2c!hvVeM=G z@yZ=w9wLcoBy?xFck%m;M2dM7X!_d5KlkkuP<<+8B)AWWK3)Izbz-GzXTgX++hR%M ztS(THDDEZSj5xmdJYo5z3!3Fpo`-H01XuL+QLMdL2xm0yU2d9Xz=1{`RPbk*lK)S29Pqx*|U#Th5_7^04sI zas@+&aS+4!v?3x$&0f~?EB!;#>P*kdZN;}25AqyI;XzDy&RmzY< zNAK?!tij=e6GIE`cyjOKO)Oer3Z}y6->2rPFM#U`NI#}jg*X~d@t6<^H*pw$9?c zQN?~$OlGWk%FpA&@P3h}#qJ{OdmiyeH|7DJ{W;AXDC+gN-4(Yct1lZJIwsoK;?rlhd=0c@4WJ2I43TJHJY~d$xsDbjdN= zw#+`4#t&!C8!g1T0UEYF(!yjVFR4r=El*D0_J^tnuwAGCfm)B^{^AH;f?X zkkut|mF_3hRc!<}Yi(PkcX8qtQ}wF}yOP;R zBc^^duDXV08VtuibHlu01zRh!b>_znHuUdECu4`~4Z@E@zjxM|zj2?fKESn!RfSeC z4gbWm-`Ra;TlvBNn>l(UxK4$}`hX?lqNkqhlwd>ZG<2Y!Q6YAqc;@2anS~sx&K+$g zo;X(Kk`)v&P=V2pdJv=w{H2m~?dUPWzmjJ<0PMOPs#TK*ASZLzCEt6Qrt&q-#_1|{ z*mdMgSm2mgMnL(b4?0IVtE%0!nozunuR&~Elb409G^v+=RU&kbUlV+zJ9x^wR+iGp zcRg_|E?PS2eZOr*LJ_N9n3Ja|R{KV)^!$}!ukW%LTn}^+E|J7}{)X)UxoEYT3U?WA z5!=5CtxO+5&2$^c==2F4>gBA249>%JOGOzTe&0}xYOScLOz15pq7+QCC9Gfs>z{qT&|$!i93g ze3C`s)-TnS!yk+f6`CplQO*W5E|0>7zol2ZJ+pXU#397{(995g77@8{Rvp{A`gj8G z;|=siJ1Cj8C)-QF<;{VJ=QUSr#sp!fz^ZoSlS>wXWWB8W(fH99Ef^BCNt(k|6o^2R&fAjw}doRch#vN_r55|J~; zRdNHXS(X-3BIbyBp7RPMVS~>)k7ev-K(Ok)zlF2AB38@AGpiv98W}0%H3cNn13m5ai~k1 zGwKKA%g^tNYQ9Ri9`l~1X zXW_1hvHLOm*qZdRgEr4m{){3ij0@ClOOG)^D|zr_GZABvrBou6*z|HKQr(mP;Rb<_ zYRsPr>iQO!m;I_rge9rT0Rq2A+{s|v5!p#V!`uNtaW#dp@)%){+0cu-lN*UvRglIE zQWZC9ouv2zu$7iyovp$<_Gdt@07%P8PRi-uwGf?<3*1QVKH2wTrjAp6XV=Y}L_$)h z)7^a=cRveJPP)VC2n1S}g~tj0mTOp#<9rFu>`}T2d?>7>IXa|t+AAlaYML> z`3-Lk=_HDMuI@Qb73gAVv;A@&mL?A(QW365t`O_Va$uVf{Tr zkP55ASywLplg+9b8@Tqxcm{-BU;Qvm!XNCybAHZIG_3B49&!8{pmT6EA$(oip5T{s zi4kPF@Lc$xiMS=_Cj@&OPxBSM=J7$nSyLBYp2MKN*2!FEqVI%tBl!Xkw3PgfAD0!| z?mCjzJkFaf?1`6?-(iT$+dBHVM8yLh4#M6o6<(d=aU&44mmfD`!fw3fiY{%wJD%Xp zL+Rs^x*|aBC7`e!b((JIwEu#QU(0K0(dU1J6dpjFQi*^bd)Q;JI2txatVEP#wi7p)Cc7)AVMPO86@8)f*@{!ZY4oNWY% zAE{WAsAQAzAlK{?=B}?3s6=~Rh4P2E1on`=?^f?#>V>PqaOvyoIepj^!ilo@MDo9A z!1O-GRHC`#6A;Crx*E&}cNE<(h8rTyU>qOxJ)RyQ|Av3ztPEyVS8SB!qqz}xZ_?~e`N?viG1C=#>f=3)AhhO6Gu z9oYYs;nDs!MC)#qgb-}V{ia-8H_@6S4Q2cz@ZO4$vV8{e_VB%l8-`(twr%j0fNW2- z09Pd)zfoQ~ZEad?C9tCw3y&^ni~vK;rgU-dIr0YUWZb}ptue+WcLwn(RKQI|OftuF z;!9g4F6~5xTMP8&dr*7k_;e!08d7J(RL?BkOb;g{?>Kg6b{NbK3zqxit1vvSL)RTN zD(s<-NruIjYbTPa=p@=hI-^;nBEC<;oi584TrPCPKl0WaqDiG@o8l+Zuo<*Q*vaME zBYf>0VXm%}6J!Mhtk_c4hCqg`O0N(8IkFBT)0QJ<$8u~CU9G+KhSFDI(FSk zPMpIvuv)^DM~@1rt<-V4)U<7$F!=CV=uHr)X(Gw?SzldcKaQ*yfd|xy8KIrq$7|Pa z84RuCIR#!bNCrurX>tDoz+;FvGKbx~Fi^2Ftj5XW%an>W`FuPl-4v1?ES;i|nt`{HU}QXV(dh(WADhk^Uh! zJCfC0F5;7~&O$kI|EtmY3YbEmu7wZ*nInFH@U70d3$R^X z>gpQWzc`}dhihBTjMjQz#sz4;^9K`gtjRVSGGE$#HO{w$boG3n|I<4kNtegRj(d)9%sb|FU45q=8jXv z22+&dXJ(~)SyEr+*cUQLy}G^i@2-Bwpse^)Rh5`R=ctcvf7ODGe5UEoo82T5yBt&q z?_n4)rv)vwq}4XCyn6IES%ff#2v_NC>IUOnmwOkXAa<%IfmvPqN50-2?Xo^UNBa$1 z&%DD`n`{^UtFTylM)U${TEw(cr0EEkQRK-@^fNu`lDg3Bvh)$H5Ak7RXl~)()xpHE z^VXDc{*asXZ*c>6Zz6EV>v-*6ysW9{exnkWlDzj)B(d?MD`1mKb=YlHzWMWgCoR`r z&8}BrQ=ZkH$EoxO1>u7Sj#0Hr+zi z5}6xCu%p8>&xfl{d?Oy04NQ`-hSW8q<*Gki#pN*mr!6OPnZtE1@E-#QIeU zW2UV|(p9wj)@(Ved}^_7YCH}3+xD3xYa83nqO!guT%VP5i?)K;)zwFS6Huyo+bsI$ zo$tE_*Q2Lg6ObW(|0|mj&5~&Qsda(w&yLku9m+dsHTb_1__IENXVJEmT?uT^WcQfo zv|>^ar_wB{Q)<^Y;3G{oTae4PP@zX;>Wo&VEj3-%s=h9h0#fwGBBk+7@%>TP9< zJ$>vR{pXJFcf0ai3ZInSo-rWUI&m+LmP#eXsUEdOPeAEqdXlo@G2oh3Xk96{H>nXk)ulBZ%?)Z+7 zg>r5m#@n5l1V!+c?4X*Bn2SkyOj!I%`o*FpjSO zZx-6H4jGbhL5}!|3%xhqze!Yo&W`l;h5y|8?hSaHtrh`)zJJV#JVnQG^#eC`gJMPk zCvs+7#!ts%(!0Jfpn*5Gn8HtAb0Wz@KRbE`S?$i?qd&pw`je7r=kj*)jj^>m;olp; zwKYn78+80Tb=5#aa>?|rdPmyffHa+8cV9Xsl=#X}yr4&vF^)TDV7&GjTqPx~8Ch@r zPs!`}+0(Fg$$y^sv->5lzR18uy+3{2NbGM{(yW`FY&Eql&;43~6|5-kM@(p`jR8*g zS2~pQz-GEg^r$Cc(nsDeZsk-sqh2NFP-GYJQ`VtK7u?3XF2)L5tGN@zjL5T3$7Z*B zr<%s+>~aTm;w!m#!p}YO*7~P&^ZlX8 zKzJ|{;@wE({h+P2Que5X`MQfsJVf0BHvniH`O}RZet=jQQ5v^LFY`$%PPPE|!a2S8 zL;sYHSi+++2fI*5XgCp)oqJ-My4^rROw$-Ykfc0s`?WV9JUSC5&KT~Az_m3Uqtryt;_+v|f(6Ws&$|yH6##5UK6~ zZVvGwupL5{Kn>=E;Q}4X#$H|Y=Zp# z*jbd6H*a~)f#zy!#CN6qpX?9q6DhV4fl!HoZJ(u`8%NWc z9i@D@f2#iY_(?b!$K{e;^Hu89t}Y1qH0_VNBi;16J(Ivu|!zo&A6j|VgyZ&sI)65eLd>!m3h>|SL8fcu zf@i8p0o$CTcj~<4-g+zJsKUg?trSp8)=Ooqlxi7k*5;w3z2Z9QHk6hxNAW7_6*Hsz ze(Z-Ocsn)kyb(|dSN@1VDTq}H5U@8@75UzZD1QBpidxwDOYM`sQC zOD&_bLq-ICY#*s^fhRN^NtNXW%o+3?L_(K@TW}!~@fsfRb#BC!)>)<$AbGjm(#^EM zlgs}weX!r5#aq9R*n4*Lw|a`o`Ybx82jq!`4BP-a;me5^r$`A3Sion#w1XH|6(UnF zRe-K_1`K0Kr<%k+378;yI9ugNyxAwhOOZ@S)s_!Ebad7gPt*zo?)gqowPi#$a2oY;`zWlO{ZCH@0K zA%x#_mXUqo_6P&}v?1iE&oi#UsT1}IpP<6{p^*(@z_+;=urP=3MpA}sckrN{3j z#r8~dY7yGirPo%KqyEH^euAW%ardMw3^n>zzOZknr z6c1ZVA|NIAfhE)gnBn-Zgw~U~JGcdedn(=Cdcdj+>OXx`Q;#r4hvi+^kE3&E;WoK8>l zpHAgFu-sN&+BU&HHqN3GI}f*sp(!fZbsyKU853A`8u$$q+YQUbCc*&uDv2BieBR59 zeo-|lp>Pmg_wctijB;{!JJCi(DR#ej7U1*^kut&|)8INdH{vt@f(0C`zIUeW`$kzr z2GNji0iP-{~p15={6P)nfYgSzPcI4U4(?x7AH>3?$Q(h`ypN*xt>y1G<0J z`z;0!j75`q`dKX2S53IYfNMN(LX9N_0*<-5js8lnRuTI9jggZ23zgkNv#nsUTRAqz zfxIx}vF+$nQ_lVq-T9O7VyeGw)an1$`Yb@sjofbqNIi1ltLV-fs4hHPasn?9u-C2ca&asKvbkf;?y)g_0 zNEiM5epr8e{WoaT}H0zg*bla$iA>(Md&~)2w)gx<`n}{D1 z9lbqL?<=~HKOJG`H}dqKZFGwxmpnJjz6}`j)ix`2d20Mh#efg%Wvp6ZKdn*PIQQoy zs9xhH8tfOx162+u)k2hQS9FJ zxRfSZ>JNj8a*QXB6AMDah6{5qS3?syDc`8y_hmYL>We$Mjiz80A-Q1@e_FbHXY`xw z&EH3WG};kETQT}T6LvH2=s*i;qMT8iT*u2zsngR4b@Dvo(hL`P*f|ZUaUl~5al#XD z5Tar9)5GIy>gh?qNZNoXs`Kd!*ES6iXFHVgm&lFq*Jv`SqZX~)dl9FfJGPr)1Du|T zT1W%-nw)o>a)cGwwr6DytniFI+=z=ftSXYl93PPg{PFZfG@XK?$iczB1$KAI?dXBv z&NktkxB*U_W&Krbda041Qu(_m9CN>+TI?F3<2b==%)1*uFJGd19EY_*Nx8W3oNWrJ zjtJ@{bzw2r?|fk$GmMC z{!^BM^>eO!nBloTr{XB2`WNb@=jvY(_>!ukPvT6JKo+_S^|qcC~mAmxeiq>C)v;1_~Z60 za<#y-iX9N@ba5E<>KGNHXKO}wvMr$MaLumCegaY|C#FcGtTpdmW{^9x(LyKj`aEv> z2jhO^xnrDZ&3-}9f15K}+bP`yL2~t#Cv0_;t*-fab8e(+=g#rh#fI*M^d7zQ24CIh z!{6!FZaV<2Ao1A~>o6Hhs@%1$nTMAj6ErmvVkf51U%Ra zUy)Ofxxw0QjE(EaR`hqd25D0?nU5~n#YyRO(%qT`vu$2DN0rn27)&-P^WSrq9x*-t zZy;@Xa)2785DVcviHhC`F)|-~0+e6~_H%mL%va@gNrWW^ek%@?r}VB=Zt1X~y{t2c zticY}nMmV$pl^1VSM$)oBhJaofn~ym>Y|}YM`g^dE!g@92bXq>&w?=bn8l+B5wUS6 zSzX*K8Rk(ib@!Q`(DL*{t31yeRX5SfW~S@4$Vp4@%vo}$v%$%T+6{l6YLwg~!k_Mp z4CMtd6&HWmEzr7s>mh%TTULf+(CeI&{w^St3Pg?+fvQ4UY5yAtngstk&1<7$Bule% z1+}rLenXG`a`j(lm8R{1-6C1Ki8x~sJD^D3ZPu~H-0*OY4pR0lGwb|E5aR9HdtqIfRB!n2p>j$%V4WS(c~Eq zgY2c-hS|n#;jYiMg2@08X-9F6sm?+qK~Bph2!m1G5x#jdx|pJi&c#Ol@2Cpp2iM(- zRg`rqE8EJ>hwPpRu-99b9G`LAy-!V=K22XZq917?oQnD5+yw5QL+5obv3cxF05&L>6_fzD=mTa7JQVN zusTz4R@QX>M;BwSY}TX*`1CD|vK6KyR?5K2#Zxunitjscv)q(MSPgF7W?)20$CaOV z5I$|fQCFT-gw;6!O8x4r^2f5V7|dk6xuzOU5I)S?acsL=WR&cfCRkWpoa#v9Gp(Lw zqC=$e$VjT!MG2^i9qNFx7WFHlOtxw19nozlgcpxgzsE|J(1H-NEKaf28hlnlamcUb z%%HEzbwv6b5hdnAgStH8U05CXB~%vlrTN`sevfvvB80uB8Ajz&Z3I1+4W!HoI&CBb zfB@Z){@Nd6E0pXTYl@n5%k?Ls7T0Ye7KwGqyRw8CS)8Pca_F(WrHO(>frZ@;`XvGz5(V1`xM^t;=p?T3&=Ef+Zv7@cWqd<~`j_jaL&&PKQwdDWbLJz*D4_FAAK0aAHf;SOeONV!+8Z~^b%AYHR zz^7NePi9uzaF)n}Q2$?D`zzWj%luePovgEE4>QXvwXgIocjK2Pd&ThungR60$wYgZ zG}RoJ)$w)X{5{#LEDFqDT45!2i0+wJCliN12{QK_51x06m-3s@2tZ z<^4B1ckXP{+RA{tK;Qj)g)^bAoe{zE>X^r?nMV=$FjdrzJ zM>Q{a(aCqj0B65HS@mxz3lm&#x!jf_4f*#uk@U)mDSoD23tgwXqosLvKjPRVm$kK6 zoWInt*^50OLjl!QB$Piv&ViS0z5$)0$Bw7uN-wmHO-(~C z+Qb7U3e)TBFM3A*r1l`#AIN-z>+e20KE1pz7?!EAGZC7pN#C5Uo99Vvq-od`SJ$M6 zanNtfT5kB(pO44!TAiz&Ej@-?+vz7s9p=9ClZl->n$!5|Y)ZCjuATVPOr_U#Zy`qg zR7DH(BAwKc^aI2IE%YY5CN7MKBJa8Nd&dw3^SR50v4Sk|W$9E0u7kpmaK-Ig3BDai z)~V1N&K?AQ= zBG+)RlHRrpiH-2l#Ieyyj5CPdQ?G4>#vUV2~~a zHWK~7jeNluc0XYk3--VnJ@Mjc7krZsRQ$1{Fd% z7q7KEc5DjFF|k|5ONKk$$6z{Ye5c^p{9syI5D=LW`OFg24^UH9)_S2?z^*p1U>rrz z6#ra|x&YVOdaL|W_L&(lHz;na$A{cV2^oI3k8%bpHf=L>0l-_C*K6>$q*9wEyJ2

uhBz%+3wG+_szZKzz$O6suh2^o&Qs0bx?|~ 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 e}Q`0FM8HfDY#W(Ne;}%+cK1!4jb6X7Z01F6RFy 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

3irKZ@Z-BAA^R!P^jrA?^Z6>3C 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

{2loWFzyCe!X(&?$uZV~7!AX*Rw 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

MrpTE>exEy;|{yK+mK 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

mz>6Wt*i2L=SO#hmV9-`I^PbJ&$^3B1szzfA006 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 NIW;y4B_%~qMha(@n05dF diff --git a/report/thesis.tex b/report/thesis.tex index b3315ea..c1ef71f 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -822,7 +822,22 @@ \subsection{Алгоритм поиска} однопоточные реализации хранят задачи в обычной очереди. На рисунке~\ref{fig:cascades-tasks} показана схема взаимодействия задач в -оптимизаторе. +оптимизаторе, а на +листингах~\ref{alg:cascades-search}-\ref{alg:cascades-search-3} приведен +псевдокод алгоритма поиска в архитектуре Cascades~\cite{DingNarasayya2024}. + +Алгоритм реализуется в виде управляемого стеком поиска в пространстве +эквивалентных планов: сначала запускается оптимизация корневой группы, +\textsc{OptimizeGroup} в свою очередь исследует группу, а затем оптимизирует +каждое ее логическое выражение. Исследование выполняется через +\textsc{ExploreGroup} и \textsc{ExploreExpression}, которые сохраняют в Memo +новые логические выражения и группы с помощью правил преобразования. После этого +\textsc{OptimizeExpression} применяет правила реализации, превращая логические +выражения в физические. Для каждого физического варианта +\textsc{ApplyImplementation} проверяет локальную стоимость и передает план в +\textsc{OptimizeInputs}, где последовательно оптимизируются дочерние группы, +накапливается полная стоимость и обновляется информация о лучшем плане. Параметр +\texttt{limit} используется для отсечения заведомо дорогих вариантов. \begin{figure}[H] \centering @@ -831,10 +846,6 @@ \subsection{Алгоритм поиска} \label{fig:cascades-tasks} \end{figure} -На листингах~\ref{alg:cascades-search}-\ref{alg:cascades-search-3} приведен псевдокод алгоритма поиска в -архитектуре Cascades. - - \section{Правила трансформации и реализации} Правило в оптимизаторе Cascades состоит из образца, условия применимости и @@ -855,7 +866,7 @@ \section{Правила трансформации и реализации} выражение в группе, а для правил реализации --- физическое выражение в той же группе. -\subsection{Логические правила трансформации} +\subsection{Правила трансформации} Наиболее важные правила трансформации направлены на уменьшение промежуточных кардинальностей, удаление лишних атрибутов и исследование новых порядков @@ -917,7 +928,8 @@ \subsection{Логические правила трансформации} атрибуты заказов, а ограничение внешнего ключа гарантирует существование соответствующего клиента. -{\color{red} TODO: дописать, мб примеры?} +{\color{red} TODO: вообще плохо написан раздел про трансформации. Расширить и + более четко описать} \subsection{Правила реализации} From 470d60e60057652e0c67c37b3116f516d5463713 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Thu, 7 May 2026 19:23:40 +0300 Subject: [PATCH 020/120] Fix --- report/thesis.pdf | Bin 702601 -> 720779 bytes report/thesis.tex | 266 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 224 insertions(+), 42 deletions(-) diff --git a/report/thesis.pdf b/report/thesis.pdf index fe3913a016f2138fd34ee6ff852a04458b96ab1a..c2c815f89219d33f57f495c0c64233b5a7a548b7 100644 GIT binary patch delta 131789 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 J2_;Fm{{!4nSb+cl delta 113671 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%0DFA7<}YHhHHH+~FOQ|P60Pv2lQrK5avYR2 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 Date: Sat, 9 May 2026 18:51:39 +0300 Subject: [PATCH 021/120] Impl building optimal plan --- include/stewkk/sql/logic/executor/plan.hpp | 55 ++++++++++ .../stewkk/sql/models/parser/expression.hpp | 78 ++++++++++++++ .../stewkk/sql/models/parser/join_type.hpp | 16 +++ .../models/parser/relational_algebra_ast.hpp | 80 +------------- src/stewkk/sql/CMakeLists.txt | 3 + src/stewkk/sql/logic/executor/plan.cpp | 21 ++++ .../sql/logic/optimizer/optimizer_test.cpp | 50 ++++++++- src/stewkk/sql/models/parser/expression.cpp | 95 ++++++++++++++++ src/stewkk/sql/models/parser/join_type.cpp | 18 ++++ .../models/parser/relational_algebra_ast.cpp | 101 ------------------ 10 files changed, 335 insertions(+), 182 deletions(-) create mode 100644 include/stewkk/sql/logic/executor/plan.hpp create mode 100644 include/stewkk/sql/models/parser/expression.hpp create mode 100644 include/stewkk/sql/models/parser/join_type.hpp create mode 100644 src/stewkk/sql/logic/executor/plan.cpp create mode 100644 src/stewkk/sql/models/parser/expression.cpp create mode 100644 src/stewkk/sql/models/parser/join_type.cpp diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp new file mode 100644 index 0000000..6d84d9e --- /dev/null +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -0,0 +1,55 @@ +#include +#include +#include + +#include +#include +#include + +namespace stewkk::sql { + +struct SeqScan; +struct PhysicalProjection; +struct PhysicalFilter; +struct NestedLoopJoin; +struct NestedLoopCrossJoin; + +using PhysicalPlanNode = std::variant; + +struct SeqScan { + std::string table; + + bool operator==(const SeqScan&) const = default; +}; + +struct PhysicalProjection { + std::shared_ptr source; + std::vector expressions; + + bool operator==(const PhysicalProjection&) const; +}; + +struct PhysicalFilter { + std::shared_ptr source; + Expression predicate; + + bool operator==(const PhysicalFilter&) const; +}; + +struct NestedLoopJoin { + std::shared_ptr lhs; + std::shared_ptr rhs; + JoinType type; + Expression qual; + + bool operator==(const NestedLoopJoin&) const; +}; + +struct NestedLoopCrossJoin { + std::shared_ptr lhs; + std::shared_ptr rhs; + + bool operator==(const NestedLoopCrossJoin&) const; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/models/parser/expression.hpp b/include/stewkk/sql/models/parser/expression.hpp new file mode 100644 index 0000000..21006f9 --- /dev/null +++ b/include/stewkk/sql/models/parser/expression.hpp @@ -0,0 +1,78 @@ +#pragma once + +#include +#include +#include +#include + +namespace stewkk::sql { + +struct Attribute { + std::string table; + std::string name; + + auto operator<=>(const Attribute& other) const = default; +}; + +std::string ToString(const Attribute& attr); + +using IntConst = std::int64_t; + +enum class Literal { + kNull, + kTrue, + kFalse, + kUnknown, +}; + +std::string ToString(Literal literal); + +enum class BinaryOp { + kGt, + kLt, + kLe, + kGe, + kNotEq, + kEq, + kOr, + kAnd, + kPlus, + kMinus, + kMul, + kDiv, + kMod, + kPow, +}; + +std::string ToString(BinaryOp binop); + +enum class UnaryOp { + kNot, + kMinus, +}; + +std::string ToString(UnaryOp op); + +struct BinaryExpression; +struct UnaryExpression; + +using Expression = std::variant; + +std::string ToString(const Expression& expr); + +struct BinaryExpression { + std::shared_ptr lhs; + BinaryOp binop; + std::shared_ptr rhs; + + bool operator==(const BinaryExpression& other) const; +}; + +struct UnaryExpression { + UnaryOp op; + std::shared_ptr child; + + bool operator==(const UnaryExpression& other) const; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/models/parser/join_type.hpp b/include/stewkk/sql/models/parser/join_type.hpp new file mode 100644 index 0000000..c0eeae9 --- /dev/null +++ b/include/stewkk/sql/models/parser/join_type.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include + +namespace stewkk::sql { + +enum class JoinType { + kInner, + kFull, + kLeft, + kRight, +}; + +std::string ToString(JoinType type); + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/models/parser/relational_algebra_ast.hpp b/include/stewkk/sql/models/parser/relational_algebra_ast.hpp index 0f8ea9d..8c66a27 100644 --- a/include/stewkk/sql/models/parser/relational_algebra_ast.hpp +++ b/include/stewkk/sql/models/parser/relational_algebra_ast.hpp @@ -5,21 +5,13 @@ #include #include +#include +#include + namespace stewkk::sql { constexpr static std::string kEmptyTableName = "_EMPTY_TABLE_"; -struct Attribute { - std::string table; - std::string name; - - auto operator<=>(const Attribute& other) const = default; -}; - -std::string ToString(const Attribute& attr); - -using IntConst = std::int64_t; - struct Table; struct Projection; struct Filter; @@ -34,22 +26,6 @@ struct Table { auto operator<=>(const Table& other) const = default; }; -struct BinaryExpression; -struct UnaryExpression; - -enum class Literal { - kNull, - kTrue, - kFalse, - kUnknown, -}; - -std::string ToString(Literal literal); - -using Expression = std::variant; - -std::string ToString(const Expression& expr); - struct Projection { std::vector expressions; std::shared_ptr source; @@ -57,47 +33,6 @@ struct Projection { bool operator==(const Projection& other) const; }; -enum class BinaryOp { - kGt, - kLt, - kLe, - kGe, - kNotEq, - kEq, - kOr, - kAnd, - kPlus, - kMinus, - kMul, - kDiv, - kMod, - kPow, -}; - -std::string ToString(BinaryOp binop); - -struct BinaryExpression { - std::shared_ptr lhs; - BinaryOp binop; - std::shared_ptr rhs; - - bool operator==(const BinaryExpression& other) const; -}; - -enum class UnaryOp { - kNot, - kMinus, -}; - -std::string ToString(UnaryOp op); - -struct UnaryExpression { - UnaryOp op; - std::shared_ptr child; - - bool operator==(const UnaryExpression& other) const; -}; - struct Filter { Expression expr; std::shared_ptr source; @@ -112,15 +47,6 @@ struct CrossJoin { bool operator==(const CrossJoin& other) const; }; -enum class JoinType { - kInner, - kFull, - kLeft, - kRight, -}; - -std::string ToString(JoinType type); - struct Join { JoinType type; Expression qual; diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index f9b2e17..1bfa039 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -15,9 +15,12 @@ add_library(libsql logic/parser/PostgreSQLParserBase.cpp logic/parser/parser.cpp logic/parser/visitor.cpp + models/parser/expression.cpp + models/parser/join_type.cpp models/parser/relational_algebra_ast.cpp logic/result/error.cpp logic/result/result.cpp + logic/executor/plan.cpp logic/executor/executor.cpp logic/executor/sequential_scan.cpp models/executor/tuple.cpp diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp new file mode 100644 index 0000000..3649726 --- /dev/null +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -0,0 +1,21 @@ +#include + +namespace stewkk::sql { + +bool PhysicalProjection::operator==(const PhysicalProjection& other) const { + return *source == *other.source && expressions == other.expressions; +} + +bool PhysicalFilter::operator==(const PhysicalFilter& other) const { + return *source == *other.source && predicate == other.predicate; +} + +bool NestedLoopJoin::operator==(const NestedLoopJoin& other) const { + return *lhs == *other.lhs && *rhs == *other.rhs && type == other.type && qual == other.qual; +} + +bool NestedLoopCrossJoin::operator==(const NestedLoopCrossJoin& other) const { + return *lhs == *other.lhs && *rhs == *other.rhs; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 1119055..ba26055 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -13,6 +13,7 @@ #include #include #include +#include using ::testing::Eq; @@ -255,10 +256,52 @@ class Optimizer { }); } } + + PhysicalPlanNode BuildOptimalPlan(Group* group) { + auto best_expr = best_plan_[group]; + if (!best_expr) { + throw std::runtime_error{"no optimal plan for group"}; + } + return std::visit( + utils::Overloaded{ + [](const physical::SeqScan& op) -> PhysicalPlanNode { + return SeqScan{ + .table = op.table, + }; + }, + [this](const physical::Projection& op) -> PhysicalPlanNode { + return PhysicalProjection{ + .source + = std::make_shared(BuildOptimalPlan(op.source.get())), + .expressions = op.expressions, + }; + }, + [this](const physical::Filter& op) -> PhysicalPlanNode { + return PhysicalFilter{ + .source = std::make_shared(BuildOptimalPlan(op.source.get())), + .predicate = op.predicate, + }; + }, + [this](const physical::NestedLoopJoin& op) -> PhysicalPlanNode { + return NestedLoopJoin{ + .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), + .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), + .type = op.type, + .qual = op.qual, + }; + }, + [this](const physical::NestedLoopCrossJoin& op) -> PhysicalPlanNode { + return NestedLoopCrossJoin{ + .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), + .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), + }; + }, + }, + best_expr->root_operator); + } public: - // FIXME: сделать генерацию лучшего плана в виде просто дерева. - PhysicalExpr* Optimize() { + PhysicalPlanNode Optimize() { tasks_.emplace([this]() { OptimizeGroup(root_->group); }); @@ -267,8 +310,7 @@ class Optimizer { tasks_.pop(); next_task(); } - auto it = best_plan_.find(root_->group.get()); - return it != best_plan_.end() ? it->second : nullptr; + return BuildOptimalPlan(root_->group.get()); } private: diff --git a/src/stewkk/sql/models/parser/expression.cpp b/src/stewkk/sql/models/parser/expression.cpp new file mode 100644 index 0000000..090ccb7 --- /dev/null +++ b/src/stewkk/sql/models/parser/expression.cpp @@ -0,0 +1,95 @@ +#include + +#include + +namespace stewkk::sql { + +bool BinaryExpression::operator==(const BinaryExpression& other) const { + return *lhs == *other.lhs && binop == other.binop && *rhs == *other.rhs; +} + +bool UnaryExpression::operator==(const UnaryExpression& other) const { + return op == other.op && *child == *other.child; +} + +std::string ToString(const Attribute& attr) { + return std::format("{}.{}", attr.table, attr.name); +} + +std::string ToString(Literal literal) { + switch (literal) { + case Literal::kNull: + return "NULL"; + case Literal::kTrue: + return "TRUE"; + case Literal::kFalse: + return "FALSE"; + case Literal::kUnknown: + return "UNKNOWN"; + } +} + +std::string ToString(BinaryOp binop) { + switch (binop) { + case BinaryOp::kGt: + return ">"; + case BinaryOp::kOr: + return "or"; + case BinaryOp::kAnd: + return "and"; + case BinaryOp::kEq: + return "="; + case BinaryOp::kPlus: + return "+"; + case BinaryOp::kMinus: + return "-"; + case BinaryOp::kMul: + return "*"; + case BinaryOp::kDiv: + return "/"; + case BinaryOp::kMod: + return "%"; + case BinaryOp::kPow: + return "^"; + case BinaryOp::kLt: + return "<"; + case BinaryOp::kLe: + return "<="; + case BinaryOp::kGe: + return ">="; + case BinaryOp::kNotEq: + return "!="; + } +} + +std::string ToString(UnaryOp op) { + switch (op) { + case UnaryOp::kNot: + return "not"; + case UnaryOp::kMinus: + return "-"; + } +} + +std::string ToString(const Expression& expr) { + struct Formatter { + std::string operator()(const BinaryExpression& expr) { + return std::format("{} {} {}", ToString(*expr.lhs), ToString(expr.binop), ToString(*expr.rhs)); + } + std::string operator()(const Attribute& expr) { + return ToString(expr); + } + std::string operator()(const IntConst& expr) { + return std::to_string(expr); + } + std::string operator()(const UnaryExpression& expr) { + return std::format("{} {}", ToString(expr.op), ToString(*expr.child)); + } + std::string operator()(const Literal& expr) { + return ToString(expr); + } + }; + return std::visit(Formatter{}, expr); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/models/parser/join_type.cpp b/src/stewkk/sql/models/parser/join_type.cpp new file mode 100644 index 0000000..9d47aff --- /dev/null +++ b/src/stewkk/sql/models/parser/join_type.cpp @@ -0,0 +1,18 @@ +#include + +namespace stewkk::sql { + +std::string ToString(JoinType type) { + switch (type) { + case JoinType::kInner: + return "⋈"; + case JoinType::kFull: + return "⟗"; + case JoinType::kLeft: + return "⟕"; + case JoinType::kRight: + return "⟖"; + } +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/models/parser/relational_algebra_ast.cpp b/src/stewkk/sql/models/parser/relational_algebra_ast.cpp index 1518f35..9fadfcf 100644 --- a/src/stewkk/sql/models/parser/relational_algebra_ast.cpp +++ b/src/stewkk/sql/models/parser/relational_algebra_ast.cpp @@ -10,14 +10,6 @@ bool Filter::operator==(const Filter& other) const { return expr == other.expr && *source == *other.source; } -bool BinaryExpression::operator==(const BinaryExpression& other) const { - return *lhs == *other.lhs && binop == other.binop && *rhs == *other.rhs; -} - -bool UnaryExpression::operator==(const UnaryExpression& other) const { - return op == other.op && *child == *other.child; -} - bool CrossJoin::operator==(const CrossJoin& other) const { return *lhs == *other.lhs && *rhs == *other.rhs; } @@ -26,97 +18,4 @@ bool Join::operator==(const Join& other) const { return type == other.type && qual == other.qual && *lhs == *other.lhs && *rhs == *other.rhs; } -std::string ToString(BinaryOp binop) { - switch (binop) { - case BinaryOp::kGt: - return ">"; - case BinaryOp::kOr: - return "or"; - case BinaryOp::kAnd: - return "and"; - case BinaryOp::kEq: - return "="; - case BinaryOp::kPlus: - return "+"; - case BinaryOp::kMinus: - return "-"; - case BinaryOp::kMul: - return "*"; - case BinaryOp::kDiv: - return "/"; - case BinaryOp::kMod: - return "%"; - case BinaryOp::kPow: - return "^"; - case BinaryOp::kLt: - return "<"; - case BinaryOp::kLe: - return "<="; - case BinaryOp::kGe: - return ">="; - case BinaryOp::kNotEq: - return "!="; - } -} - -std::string ToString(const Attribute& attr) { - return std::format("{}.{}", attr.table, attr.name); -} - -std::string ToString(UnaryOp op) { - switch (op) { - case UnaryOp::kNot: - return "not"; - case UnaryOp::kMinus: - return "-"; - } -} - -std::string ToString(Literal literal) { - switch (literal) { - case Literal::kNull: - return "NULL"; - case Literal::kTrue: - return "TRUE"; - case Literal::kFalse: - return "FALSE"; - case Literal::kUnknown: - return "UNKNOWN"; - } -} - -std::string ToString(const Expression& expr) { - struct Formatter { - std::string operator()(const BinaryExpression& expr) { - return std::format("{} {} {}", ToString(*expr.lhs), ToString(expr.binop), ToString(*expr.rhs)); - } - std::string operator()(const Attribute& expr) { - return ToString(expr); - } - std::string operator()(const IntConst& expr) { - return std::to_string(expr); - } - std::string operator()(const UnaryExpression& expr) { - return std::format("{} {}", ToString(expr.op), ToString(*expr.child)); - } - std::string operator()(const Literal& expr) { - return ToString(expr); - } - }; - return std::visit(Formatter{}, expr); -} - -std::string ToString(JoinType type) { - switch (type) { - case JoinType::kInner: - return "⋈"; - case JoinType::kFull: - return "⟗"; - case JoinType::kLeft: - return "⟕"; - case JoinType::kRight: - return "⟖"; - } -} - } // namespace stewkk::sql From 095da0a183e4223809eb77008ab7db233ada0b86 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 9 May 2026 23:24:16 +0300 Subject: [PATCH 022/120] Impl plan serializer --- include/stewkk/sql/logic/executor/plan.hpp | 2 + .../sql/logic/executor/plan_serializer.hpp | 15 + src/stewkk/sql/CMakeLists.txt | 1 + .../sql/logic/executor/plan_serializer.cpp | 385 ++++++++++++++++++ .../logic/executor/plan_serializer_test.cpp | 180 ++++++++ .../sql/logic/optimizer/optimizer_test.cpp | 3 + test/CMakeLists.txt | 1 + 7 files changed, 587 insertions(+) create mode 100644 include/stewkk/sql/logic/executor/plan_serializer.hpp create mode 100644 src/stewkk/sql/logic/executor/plan_serializer.cpp create mode 100644 src/stewkk/sql/logic/executor/plan_serializer_test.cpp diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 6d84d9e..a708649 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -1,3 +1,5 @@ +#pragma once + #include #include #include diff --git a/include/stewkk/sql/logic/executor/plan_serializer.hpp b/include/stewkk/sql/logic/executor/plan_serializer.hpp new file mode 100644 index 0000000..2c6c4e9 --- /dev/null +++ b/include/stewkk/sql/logic/executor/plan_serializer.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include +#include + +#include + +namespace stewkk::sql { + +std::string Serialize(const PhysicalPlanNode& node); +PhysicalPlanNode Deserialize(std::string_view text); + +std::string SerializeDot(const PhysicalPlanNode& node); + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 1bfa039..102883f 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -21,6 +21,7 @@ add_library(libsql logic/result/error.cpp logic/result/result.cpp logic/executor/plan.cpp + logic/executor/plan_serializer.cpp logic/executor/executor.cpp logic/executor/sequential_scan.cpp models/executor/tuple.cpp diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp new file mode 100644 index 0000000..3290d55 --- /dev/null +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -0,0 +1,385 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace stewkk::sql { + +namespace { + +std::string SerializeExpr(const Expression& expr); +std::string SerializeNode(const PhysicalPlanNode& node); + +std::string SerializeJoinType(JoinType t) { + switch (t) { + case JoinType::kInner: return "Inner"; + case JoinType::kFull: return "Full"; + case JoinType::kLeft: return "Left"; + case JoinType::kRight: return "Right"; + } +} + +std::string SerializeBinaryOp(BinaryOp op) { + switch (op) { + case BinaryOp::kGt: return ">"; + case BinaryOp::kLt: return "<"; + case BinaryOp::kLe: return "<="; + case BinaryOp::kGe: return ">="; + case BinaryOp::kNotEq: return "!="; + case BinaryOp::kEq: return "="; + case BinaryOp::kOr: return "or"; + case BinaryOp::kAnd: return "and"; + case BinaryOp::kPlus: return "+"; + case BinaryOp::kMinus: return "-"; + case BinaryOp::kMul: return "*"; + case BinaryOp::kDiv: return "/"; + case BinaryOp::kMod: return "%"; + case BinaryOp::kPow: return "^"; + } +} + +std::string SerializeUnaryOp(UnaryOp op) { + switch (op) { + case UnaryOp::kNot: return "not"; + case UnaryOp::kMinus: return "uminus"; + } +} + +std::string SerializeExpr(const Expression& expr) { + struct Visitor { + std::string operator()(const BinaryExpression& e) const { + return std::format("({} {} {})", SerializeBinaryOp(e.binop), + SerializeExpr(*e.lhs), SerializeExpr(*e.rhs)); + } + std::string operator()(const Attribute& a) const { + return std::format("(attr {} {})", a.table, a.name); + } + std::string operator()(IntConst n) const { + return std::to_string(n); + } + std::string operator()(const UnaryExpression& e) const { + return std::format("({} {})", SerializeUnaryOp(e.op), SerializeExpr(*e.child)); + } + std::string operator()(Literal l) const { + switch (l) { + case Literal::kNull: return "NULL"; + case Literal::kTrue: return "TRUE"; + case Literal::kFalse: return "FALSE"; + case Literal::kUnknown: return "UNKNOWN"; + } + } + }; + return std::visit(Visitor{}, expr); +} + +std::string SerializeNode(const PhysicalPlanNode& node) { + struct Visitor { + std::string operator()(const SeqScan& n) const { + return std::format("(SeqScan {})", n.table); + } + std::string operator()(const PhysicalFilter& n) const { + return std::format("(PhysicalFilter {} {})", + SerializeExpr(n.predicate), SerializeNode(*n.source)); + } + std::string operator()(const PhysicalProjection& n) const { + std::string exprs; + for (const auto& e : n.expressions) { + if (!exprs.empty()) exprs += ' '; + exprs += SerializeExpr(e); + } + return std::format("(PhysicalProjection (exprs {}) {})", + exprs, SerializeNode(*n.source)); + } + std::string operator()(const NestedLoopCrossJoin& n) const { + return std::format("(NestedLoopCrossJoin {} {})", + SerializeNode(*n.lhs), SerializeNode(*n.rhs)); + } + std::string operator()(const NestedLoopJoin& n) const { + return std::format("(NestedLoopJoin {} {} {} {})", + SerializeJoinType(n.type), SerializeExpr(n.qual), + SerializeNode(*n.lhs), SerializeNode(*n.rhs)); + } + }; + return std::visit(Visitor{}, node); +} + +enum class TokenKind { LParen, RParen, Atom }; + +struct Token { + TokenKind kind; + std::string text; +}; + +std::vector Tokenize(std::string_view input) { + std::vector tokens; + size_t i = 0; + while (i < input.size()) { + if (std::isspace(static_cast(input[i]))) { ++i; continue; } + if (input[i] == '(') { tokens.push_back({TokenKind::LParen, "("}); ++i; continue; } + if (input[i] == ')') { tokens.push_back({TokenKind::RParen, ")"}); ++i; continue; } + size_t j = i; + while (j < input.size() + && !std::isspace(static_cast(input[j])) + && input[j] != '(' && input[j] != ')') + ++j; + tokens.push_back({TokenKind::Atom, std::string(input.substr(i, j - i))}); + i = j; + } + return tokens; +} + +struct ParseState { + const std::vector& tokens; + size_t pos = 0; + + const Token& Peek() const { + if (pos >= tokens.size()) + throw std::runtime_error("unexpected end of input"); + return tokens[pos]; + } + + const Token& Consume() { + if (pos >= tokens.size()) + throw std::runtime_error("unexpected end of input"); + return tokens[pos++]; + } + + void ExpectLParen() { + const auto& t = Consume(); + if (t.kind != TokenKind::LParen) + throw std::runtime_error(std::format("expected '(' but got '{}'", t.text)); + } + + void ExpectRParen() { + const auto& t = Consume(); + if (t.kind != TokenKind::RParen) + throw std::runtime_error(std::format("expected ')' but got '{}'", t.text)); + } + + std::string ExpectAtom() { + const auto& t = Consume(); + if (t.kind != TokenKind::Atom) + throw std::runtime_error(std::format("expected atom but got '{}'", t.text)); + return t.text; + } +}; + +const std::unordered_map kBinaryOps = { + {">", BinaryOp::kGt}, {"<", BinaryOp::kLt}, {"<=", BinaryOp::kLe}, + {">=", BinaryOp::kGe}, {"!=", BinaryOp::kNotEq}, {"=", BinaryOp::kEq}, + {"or", BinaryOp::kOr}, {"and", BinaryOp::kAnd}, {"+", BinaryOp::kPlus}, + {"-", BinaryOp::kMinus}, {"*", BinaryOp::kMul}, {"/", BinaryOp::kDiv}, + {"%", BinaryOp::kMod}, {"^", BinaryOp::kPow}, +}; + +const std::unordered_map kUnaryOps = { + {"not", UnaryOp::kNot}, {"uminus", UnaryOp::kMinus}, +}; + +const std::unordered_map kJoinTypes = { + {"Inner", JoinType::kInner}, {"Full", JoinType::kFull}, + {"Left", JoinType::kLeft}, {"Right", JoinType::kRight}, +}; + +const std::unordered_map kLiterals = { + {"NULL", Literal::kNull}, {"TRUE", Literal::kTrue}, + {"FALSE", Literal::kFalse}, {"UNKNOWN", Literal::kUnknown}, +}; + +Expression ParseExpr(ParseState& s); +PhysicalPlanNode ParseNode(ParseState& s); + +Expression ParseExpr(ParseState& s) { + const auto& t = s.Peek(); + + if (t.kind == TokenKind::Atom) { + auto text = s.ExpectAtom(); + try { + size_t idx; + IntConst n = std::stoll(text, &idx); + if (idx == text.size()) return n; + } catch (...) {} + if (auto it = kLiterals.find(text); it != kLiterals.end()) return it->second; + throw std::runtime_error(std::format("unexpected atom in expression: '{}'", text)); + } + + if (t.kind == TokenKind::LParen) { + s.ExpectLParen(); + auto head = s.ExpectAtom(); + + if (head == "attr") { + auto table = s.ExpectAtom(); + auto name = s.ExpectAtom(); + s.ExpectRParen(); + return Attribute{std::move(table), std::move(name)}; + } + if (auto it = kBinaryOps.find(head); it != kBinaryOps.end()) { + auto lhs = ParseExpr(s); + auto rhs = ParseExpr(s); + s.ExpectRParen(); + return BinaryExpression{ + std::make_shared(std::move(lhs)), + it->second, + std::make_shared(std::move(rhs)), + }; + } + if (auto it = kUnaryOps.find(head); it != kUnaryOps.end()) { + auto child = ParseExpr(s); + s.ExpectRParen(); + return UnaryExpression{it->second, std::make_shared(std::move(child))}; + } + throw std::runtime_error(std::format("unknown expression head: '{}'", head)); + } + + throw std::runtime_error("expected expression"); +} + +PhysicalPlanNode ParseNode(ParseState& s) { + s.ExpectLParen(); + auto head = s.ExpectAtom(); + + if (head == "SeqScan") { + auto table = s.ExpectAtom(); + s.ExpectRParen(); + return SeqScan{std::move(table)}; + } + if (head == "PhysicalFilter") { + auto pred = ParseExpr(s); + auto source = ParseNode(s); + s.ExpectRParen(); + return PhysicalFilter{ + std::make_shared(std::move(source)), + std::move(pred), + }; + } + if (head == "PhysicalProjection") { + s.ExpectLParen(); + auto kw = s.ExpectAtom(); + if (kw != "exprs") + throw std::runtime_error(std::format("expected 'exprs' but got '{}'", kw)); + std::vector exprs; + while (s.Peek().kind != TokenKind::RParen) + exprs.push_back(ParseExpr(s)); + s.ExpectRParen(); + auto source = ParseNode(s); + s.ExpectRParen(); + return PhysicalProjection{ + std::make_shared(std::move(source)), + std::move(exprs), + }; + } + if (head == "NestedLoopCrossJoin") { + auto lhs = ParseNode(s); + auto rhs = ParseNode(s); + s.ExpectRParen(); + return NestedLoopCrossJoin{ + std::make_shared(std::move(lhs)), + std::make_shared(std::move(rhs)), + }; + } + if (head == "NestedLoopJoin") { + auto type_str = s.ExpectAtom(); + auto it = kJoinTypes.find(type_str); + if (it == kJoinTypes.end()) + throw std::runtime_error(std::format("unknown join type: '{}'", type_str)); + auto qual = ParseExpr(s); + auto lhs = ParseNode(s); + auto rhs = ParseNode(s); + s.ExpectRParen(); + return NestedLoopJoin{ + std::make_shared(std::move(lhs)), + std::make_shared(std::move(rhs)), + it->second, + std::move(qual), + }; + } + + throw std::runtime_error(std::format("unknown plan node: '{}'", head)); +} + +std::string EscapeLabel(std::string_view s) { + std::string out; + out.reserve(s.size()); + for (char c : s) { + if (c == '"' || c == '\\') out += '\\'; + out += c; + } + return out; +} + +struct DotBuilder { + std::ostringstream os; + int next_id = 0; + + int Emit(std::string_view label) { + int id = next_id++; + os << std::format(" n{} [label=\"{}\"]\n", id, EscapeLabel(label)); + return id; + } + + void EmitEdge(int from, int to) { + os << std::format(" n{} -> n{}\n", from, to); + } + + int operator()(const SeqScan& n) { + return Emit(std::format("SeqScan\\n{}", n.table)); + } + int operator()(const PhysicalFilter& n) { + int src = std::visit(*this, *n.source); + int id = Emit(std::format("σ {}", ToString(n.predicate))); + EmitEdge(src, id); + return id; + } + int operator()(const PhysicalProjection& n) { + int src = std::visit(*this, *n.source); + auto exprs = n.expressions + | std::views::transform([](const Expression& e) { return ToString(e); }) + | std::views::join_with(std::string(", ")) + | std::ranges::to(); + int id = Emit(std::format("π {}", exprs)); + EmitEdge(src, id); + return id; + } + int operator()(const NestedLoopCrossJoin& n) { + int lhs = std::visit(*this, *n.lhs); + int rhs = std::visit(*this, *n.rhs); + int id = Emit("×"); + EmitEdge(lhs, id); + EmitEdge(rhs, id); + return id; + } + int operator()(const NestedLoopJoin& n) { + int lhs = std::visit(*this, *n.lhs); + int rhs = std::visit(*this, *n.rhs); + int id = Emit(std::format("{}\\nON {}", ToString(n.type), ToString(n.qual))); + EmitEdge(lhs, id); + EmitEdge(rhs, id); + return id; + } +}; + +} // namespace + +std::string Serialize(const PhysicalPlanNode& node) { + return SerializeNode(node); +} + +PhysicalPlanNode Deserialize(std::string_view text) { + auto tokens = Tokenize(text); + ParseState s{tokens}; + return ParseNode(s); +} + +std::string SerializeDot(const PhysicalPlanNode& node) { + DotBuilder b; + std::visit(b, node); + return std::format("digraph G {{ rankdir=BT;\n{}}}\n", b.os.str()); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp new file mode 100644 index 0000000..6bc63da --- /dev/null +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -0,0 +1,180 @@ +#include + +#include + +using ::testing::Eq; + +namespace stewkk::sql { + +namespace { + +PhysicalPlanNode RoundTrip(const PhysicalPlanNode& node) { + return Deserialize(Serialize(node)); +} + +} // namespace + +TEST(PlanSerializerTest, SeqScan) { + PhysicalPlanNode plan = SeqScan{"users"}; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + EXPECT_THAT(Serialize(plan), Eq("(SeqScan users)")); +} + +TEST(PlanSerializerTest, PhysicalFilter) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"users"}), + BinaryExpression{ + std::make_shared(Attribute{"users", "age"}), + BinaryOp::kLt, + std::make_shared(IntConst{10}), + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, PhysicalProjection) { + PhysicalPlanNode plan = PhysicalProjection{ + std::make_shared(SeqScan{"users"}), + {Attribute{"users", "id"}, Attribute{"users", "age"}}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, PhysicalProjectionEmpty) { + PhysicalPlanNode plan = PhysicalProjection{ + std::make_shared(SeqScan{"t"}), + {}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, NestedLoopCrossJoin) { + PhysicalPlanNode plan = NestedLoopCrossJoin{ + std::make_shared(SeqScan{"users"}), + std::make_shared(SeqScan{"books"}), + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, NestedLoopJoinInner) { + PhysicalPlanNode plan = NestedLoopJoin{ + std::make_shared(SeqScan{"a"}), + std::make_shared(SeqScan{"b"}), + JoinType::kInner, + BinaryExpression{ + std::make_shared(Attribute{"a", "x"}), + BinaryOp::kEq, + std::make_shared(Attribute{"b", "x"}), + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, NestedLoopJoinAllTypes) { + for (auto type : {JoinType::kInner, JoinType::kFull, JoinType::kLeft, JoinType::kRight}) { + PhysicalPlanNode plan = NestedLoopJoin{ + std::make_shared(SeqScan{"a"}), + std::make_shared(SeqScan{"b"}), + type, + Literal::kTrue, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + } +} + +TEST(PlanSerializerTest, ExprIntConst) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + IntConst{-42}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, ExprLiterals) { + for (auto lit : {Literal::kNull, Literal::kTrue, Literal::kFalse, Literal::kUnknown}) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + lit, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + } +} + +TEST(PlanSerializerTest, ExprUnaryNot) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + UnaryExpression{UnaryOp::kNot, std::make_shared(Attribute{"t", "x"})}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, ExprUnaryMinus) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + UnaryExpression{UnaryOp::kMinus, std::make_shared(IntConst{5})}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, ExprAllBinaryOps) { + for (auto op : {BinaryOp::kGt, BinaryOp::kLt, BinaryOp::kLe, BinaryOp::kGe, + BinaryOp::kNotEq, BinaryOp::kEq, BinaryOp::kOr, BinaryOp::kAnd, + BinaryOp::kPlus, BinaryOp::kMinus, BinaryOp::kMul, BinaryOp::kDiv, + BinaryOp::kMod, BinaryOp::kPow}) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + BinaryExpression{ + std::make_shared(IntConst{1}), + op, + std::make_shared(IntConst{2}), + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + } +} + +TEST(PlanSerializerTest, DeepNestedPlan) { + PhysicalPlanNode plan = PhysicalProjection{ + std::make_shared(PhysicalFilter{ + std::make_shared(NestedLoopJoin{ + std::make_shared(SeqScan{"employees"}), + std::make_shared(SeqScan{"departments"}), + JoinType::kLeft, + BinaryExpression{ + std::make_shared(Attribute{"employees", "dept_id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"departments", "id"}), + }, + }), + BinaryExpression{ + std::make_shared(Attribute{"departments", "id"}), + BinaryOp::kGt, + std::make_shared(IntConst{3}), + }, + }), + {Attribute{"employees", "id"}, Attribute{"departments", "id"}}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerDotTest, SmokeTest) { + PhysicalPlanNode plan = NestedLoopJoin{ + std::make_shared(SeqScan{"a"}), + std::make_shared(SeqScan{"b"}), + JoinType::kInner, + BinaryExpression{ + std::make_shared(Attribute{"a", "x"}), + BinaryOp::kEq, + std::make_shared(Attribute{"b", "x"}), + }, + }; + auto dot = SerializeDot(plan); + EXPECT_THAT(dot, ::testing::HasSubstr("digraph G")); + EXPECT_THAT(dot, ::testing::HasSubstr("rankdir=BT")); + EXPECT_THAT(dot, ::testing::HasSubstr("SeqScan")); + EXPECT_THAT(dot, ::testing::HasSubstr("ON a.x = b.x")); + EXPECT_THAT(dot, ::testing::HasSubstr("n0 -> n2")); + EXPECT_THAT(dot, ::testing::HasSubstr("n1 -> n2")); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index ba26055..94636d0 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -14,6 +14,7 @@ #include #include #include +#include using ::testing::Eq; @@ -332,6 +333,8 @@ TEST(OptimizerTest, Simple) { Optimizer optimizer(op, MakeMainRules()); auto got = optimizer.Optimize(); + + ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n n0 [label=\"SeqScan\\\\nusers\"]\n}\n")); } } // namespace stewkk::sql diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0f6c674..f13e258 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,6 +5,7 @@ add_executable(unittests) target_sources(unittests PRIVATE ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/parser/parser_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/executor/executor_test.cpp + ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/executor/plan_serializer_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rule_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/optimizer_test.cpp From af7fe0d4a7290a0eea1938a15ada64933a86b07b Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 14:16:53 +0300 Subject: [PATCH 023/120] Impl execution of physical plan --- benchmarks/main.cpp | 44 ++++++++- .../stewkk/sql/logic/executor/executor.hpp | 52 ++++++----- .../sql/logic/executor/materialization.hpp | 1 + src/stewkk/sql/logic/executor/executor.cpp | 2 +- .../sql/logic/executor/executor_test.cpp | 90 ++++++++++++++++--- .../sql/logic/executor/materialization.cpp | 5 ++ .../sql/logic/optimizer/optimizer_test.cpp | 29 ++++-- 7 files changed, 177 insertions(+), 46 deletions(-) diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 4356209..0e2d2bd 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -11,9 +11,49 @@ #include #include #include +#include +#include namespace stewkk::sql { +namespace { + +PhysicalPlanNode ToPhysicalPlan(const Operator& op) { + return std::visit(utils::Overloaded{ + [](const Table& t) -> PhysicalPlanNode { + return SeqScan{.table = t.name}; + }, + [](const Projection& p) -> PhysicalPlanNode { + return PhysicalProjection{ + .source = std::make_shared(ToPhysicalPlan(*p.source)), + .expressions = p.expressions, + }; + }, + [](const Filter& f) -> PhysicalPlanNode { + return PhysicalFilter{ + .source = std::make_shared(ToPhysicalPlan(*f.source)), + .predicate = f.expr, + }; + }, + [](const CrossJoin& j) -> PhysicalPlanNode { + return NestedLoopCrossJoin{ + .lhs = std::make_shared(ToPhysicalPlan(*j.lhs)), + .rhs = std::make_shared(ToPhysicalPlan(*j.rhs)), + }; + }, + [](const Join& j) -> PhysicalPlanNode { + return NestedLoopJoin{ + .lhs = std::make_shared(ToPhysicalPlan(*j.lhs)), + .rhs = std::make_shared(ToPhysicalPlan(*j.rhs)), + .type = j.type, + .qual = j.qual, + }; + }, + }, op); +} + +} // namespace + const static std::string kProjectDir = std::getenv("PWD"); static constexpr char kSimpleSelectSmall[]{"SELECT users.id FROM users;"}; @@ -35,7 +75,7 @@ void BM_SQL(benchmark::State& state) { ctx, [&state]() -> boost::asio::awaitable { std::stringstream s{Query}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -88,7 +128,7 @@ void BM_SQL_Multithreaded(benchmark::State& state) { [&state]() -> boost::asio::awaitable { boost::asio::thread_pool pool{4}; std::stringstream s{Query}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), pool.executor()); diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 8cb3765..af2c88a 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -17,9 +17,11 @@ #include #include #include -#include +#include #include +// FIXME: add explicit instantiations and move implementations to .cpp + namespace stewkk::sql { using ExecExpression = std::function; @@ -54,20 +56,20 @@ class Executor { const std::string& table_name, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor); - boost::asio::awaitable> Execute(const Operator& op); + boost::asio::awaitable> Execute(const PhysicalPlanNode& op); private: - boost::asio::awaitable Execute(const Operator& op, AttributesInfoChannel& attr_chan, + boost::asio::awaitable Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable ExecuteProjection(const Projection& proj, AttributesInfoChannel& attr_chan, + boost::asio::awaitable ExecuteProjection(const PhysicalProjection& proj, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable ExecuteFilter(const Filter& filter, AttributesInfoChannel& attr_chan, + boost::asio::awaitable ExecuteFilter(const PhysicalFilter& filter, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable ExecuteCrossJoin(const CrossJoin& cross_join, + boost::asio::awaitable ExecuteCrossJoin(const NestedLoopCrossJoin& cross_join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable ExecuteJoin(const Join& join, AttributesInfoChannel& attr_chan, + boost::asio::awaitable ExecuteJoin(const NestedLoopJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable SpawnExecutor(const Operator& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); + boost::asio::awaitable SpawnExecutor(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); private: SequentialScan sequential_scan_; @@ -76,7 +78,7 @@ class Executor { Type GetExpressionType(const Expression& expr, const AttributesInfo& available_attrs); Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& available_attrs); -AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const Projection& proj); +AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const PhysicalProjection& proj); template requires std::invocable @@ -118,7 +120,7 @@ Executor::Executor(SequentialScan seq_scan, boost::asio::any : sequential_scan_(std::move(seq_scan)), expression_executor_(executor) {} template -boost::asio::awaitable> Executor::Execute(const Operator& op) { +boost::asio::awaitable> Executor::Execute(const PhysicalPlanNode& op) { auto [attr_chan, tuples_chan] = co_await GetChannels(); co_await SpawnExecutor(op, attr_chan, tuples_chan); @@ -146,27 +148,27 @@ boost::asio::awaitable> Executor::Execute(c } template -boost::asio::awaitable Executor::Execute(const Operator& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { +boost::asio::awaitable Executor::Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { struct ExecuteVisitor{ - boost::asio::awaitable operator()(const Table& table) { - co_await executor.sequential_scan_(table.name, attr_chan, tuples_chan); + boost::asio::awaitable operator()(const SeqScan& seq_scan) { + co_await executor.sequential_scan_(seq_scan.table, attr_chan, tuples_chan); co_return; } - boost::asio::awaitable operator()(const Projection& projection) { + boost::asio::awaitable operator()(const PhysicalProjection& projection) { // NOTE: We are using multiset relational algebra projection (i.e. not // eleminating duplicate tuples) co_await executor.ExecuteProjection(projection, attr_chan, tuples_chan); co_return; } - boost::asio::awaitable operator()(const Filter& filter) { + boost::asio::awaitable operator()(const PhysicalFilter& filter) { co_await executor.ExecuteFilter(filter, attr_chan, tuples_chan); co_return; } - boost::asio::awaitable operator()(const Join& join) { + boost::asio::awaitable operator()(const NestedLoopJoin& join) { co_await executor.ExecuteJoin(join, attr_chan, tuples_chan); co_return; } - boost::asio::awaitable operator()(const CrossJoin& cross_join) { + boost::asio::awaitable operator()(const NestedLoopCrossJoin& cross_join) { co_await executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); co_return; } @@ -180,7 +182,7 @@ boost::asio::awaitable Executor::Execute(const Operato } template -boost::asio::awaitable Executor::ExecuteProjection(const Projection& proj, +boost::asio::awaitable Executor::ExecuteProjection(const PhysicalProjection& proj, AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { #ifdef DEBUG @@ -219,7 +221,7 @@ boost::asio::awaitable Executor::ExecuteProjection(con } template -boost::asio::awaitable Executor::ExecuteFilter(const Filter& filter, +boost::asio::awaitable Executor::ExecuteFilter(const PhysicalFilter& filter, AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { #ifdef DEBUG @@ -233,7 +235,7 @@ boost::asio::awaitable Executor::ExecuteFilter(const F std::clog << "Filter received attrs\n"; #endif - if (GetExpressionType(filter.expr, attrs) != Type::kBool) { + if (GetExpressionType(filter.predicate, attrs) != Type::kBool) { throw std::logic_error{"filter expr should return bool"}; } @@ -246,7 +248,7 @@ boost::asio::awaitable Executor::ExecuteFilter(const F std::clog << "Filter sent attrs\n"; #endif - auto filter_executor = co_await expression_executor_.GetExpressionExecutor(filter.expr, attrs); + auto filter_executor = co_await expression_executor_.GetExpressionExecutor(filter.predicate, attrs); Tuples output_buf; output_buf.reserve(kBufSize); @@ -287,7 +289,7 @@ boost::asio::awaitable Executor::ExecuteFilter(const F } template -boost::asio::awaitable Executor::ExecuteCrossJoin(const CrossJoin& cross_join, +boost::asio::awaitable Executor::ExecuteCrossJoin(const NestedLoopCrossJoin& cross_join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { std::clog << "Executing cross join\n"; @@ -314,6 +316,7 @@ boost::asio::awaitable Executor::ExecuteCrossJoin(cons } std::clog << std::format("Received {} tuples in cross join as rhs\n", buf_rhs.size()); + reader.Rewind(); for (;;) { auto buf_lhs = reader.Read(); if (buf_lhs.empty()) { @@ -340,7 +343,7 @@ boost::asio::awaitable Executor::ExecuteCrossJoin(cons } template -boost::asio::awaitable Executor::ExecuteJoin(const Join& join, +boost::asio::awaitable Executor::ExecuteJoin(const NestedLoopJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { #ifdef DEBUG @@ -384,6 +387,7 @@ boost::asio::awaitable Executor::ExecuteJoin(const Joi #endif std::vector used(buf_rhs.size(), false); + reader.Rewind(); for (;;) { auto buf_lhs = reader.Read(); if (buf_lhs.empty()) { @@ -443,7 +447,7 @@ boost::asio::awaitable Executor::ExecuteJoin(const Joi } template -boost::asio::awaitable Executor::SpawnExecutor(const Operator& op, +boost::asio::awaitable Executor::SpawnExecutor(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan) { auto executor = co_await boost::asio::this_coro::executor; diff --git a/include/stewkk/sql/logic/executor/materialization.hpp b/include/stewkk/sql/logic/executor/materialization.hpp index e8a3387..75ed8ce 100644 --- a/include/stewkk/sql/logic/executor/materialization.hpp +++ b/include/stewkk/sql/logic/executor/materialization.hpp @@ -17,6 +17,7 @@ class DiskFileReader { DiskFileReader(DiskFileReader&& other) = default; DiskFileReader& operator=(DiskFileReader&& other) = default; Tuples Read(); + void Rewind(); private: fs::path path_; std::ifstream f_; diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 322a550..1d304e2 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -113,7 +113,7 @@ Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& av return std::visit(ExpressionTypeVisitor{available_attrs}, expr); } -AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const Projection& proj) { +AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const PhysicalProjection& proj) { AttributesInfo result_attributes; result_attributes.reserve(proj.expressions.size()); for (const auto& target : proj.expressions) { diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index 73e182e..2cc8314 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -10,11 +10,51 @@ #include #include #include +#include +#include using ::testing::Eq; namespace stewkk::sql { +namespace { + +PhysicalPlanNode ToPhysicalPlan(const Operator& op) { + return std::visit(utils::Overloaded{ + [](const Table& t) -> PhysicalPlanNode { + return SeqScan{.table = t.name}; + }, + [](const Projection& p) -> PhysicalPlanNode { + return PhysicalProjection{ + .source = std::make_shared(ToPhysicalPlan(*p.source)), + .expressions = p.expressions, + }; + }, + [](const Filter& f) -> PhysicalPlanNode { + return PhysicalFilter{ + .source = std::make_shared(ToPhysicalPlan(*f.source)), + .predicate = f.expr, + }; + }, + [](const CrossJoin& j) -> PhysicalPlanNode { + return NestedLoopCrossJoin{ + .lhs = std::make_shared(ToPhysicalPlan(*j.lhs)), + .rhs = std::make_shared(ToPhysicalPlan(*j.rhs)), + }; + }, + [](const Join& j) -> PhysicalPlanNode { + return NestedLoopJoin{ + .lhs = std::make_shared(ToPhysicalPlan(*j.lhs)), + .rhs = std::make_shared(ToPhysicalPlan(*j.rhs)), + .type = j.type, + .qual = j.qual, + }; + }, + }, op); +} + +} // namespace + const static std::string kProjectDir = std::getenv("PWD"); namespace { @@ -39,7 +79,7 @@ TEST(ExecutorTest, SimpleSelect) { ctx, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM users;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -65,7 +105,7 @@ TEST(ExecutorTest, SimpleSelectWithParallelism) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM users;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -91,7 +131,7 @@ TYPED_TEST_P(ExecutorTest, Projection) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT users.id FROM users;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -117,7 +157,7 @@ TYPED_TEST_P(ExecutorTest, Filter) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT users.id FROM users WHERE users.age < 10;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -143,7 +183,7 @@ TYPED_TEST_P(ExecutorTest, FilterMany) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT users.id FROM users WHERE users.age > 10;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -169,7 +209,7 @@ TYPED_TEST_P(ExecutorTest, CrossJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM users, books WHERE users.age < 10;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -199,7 +239,7 @@ TYPED_TEST_P(ExecutorTest, InnerJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM employees JOIN departments ON employees.department_id = departments.id;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -228,7 +268,7 @@ TYPED_TEST_P(ExecutorTest, LeftJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM employees LEFT OUTER JOIN departments ON employees.department_id = departments.id;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -257,7 +297,7 @@ TYPED_TEST_P(ExecutorTest, RightJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM employees RIGHT JOIN departments ON employees.department_id = departments.id;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -286,7 +326,7 @@ TYPED_TEST_P(ExecutorTest, ComplexJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT departments.id*2, employees.id+1 FROM employees RIGHT JOIN departments ON employees.department_id = departments.id AND departments.id > 3 AND departments.id*2*2/2 < 30;"}; - Operator op = GetAST(s).value(); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -308,6 +348,36 @@ TYPED_TEST_P(ExecutorTest, ComplexJoin) { pool.join(); } +TEST(ExecutorTest, InnerJoinLargeRhsBug) { + boost::asio::thread_pool pool{4}; + boost::asio::co_spawn( + pool, + []() -> boost::asio::awaitable> { + Expression qual{BinaryExpression{ + .lhs = std::make_shared(Attribute{"employees", "id"}), + .binop = BinaryOp::kGt, + .rhs = std::make_shared(IntConst{0}), + }}; + PhysicalPlanNode op = NestedLoopJoin{ + .lhs = std::make_shared(SeqScan{.table = "employees"}), + .rhs = std::make_shared(SeqScan{.table = "departments_4000"}), + .type = JoinType::kInner, + .qual = std::move(qual), + }; + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); + + auto got = co_await executor.Execute(op); + + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + ASSERT_THAT(got.value().tuples.size(), Eq(44000u)); + }); + pool.join(); +} + REGISTER_TYPED_TEST_SUITE_P(ExecutorTest, Projection, Filter, FilterMany, CrossJoin, InnerJoin, LeftJoin, RightJoin, ComplexJoin); using ExecutorTypes = ::testing::Types; INSTANTIATE_TYPED_TEST_SUITE_P(TypedExecutorTest, ExecutorTest, ExecutorTypes); diff --git a/src/stewkk/sql/logic/executor/materialization.cpp b/src/stewkk/sql/logic/executor/materialization.cpp index 3dcbfe0..e1018e2 100644 --- a/src/stewkk/sql/logic/executor/materialization.cpp +++ b/src/stewkk/sql/logic/executor/materialization.cpp @@ -34,6 +34,11 @@ DiskFileReader::~DiskFileReader() { fs::remove(path_); } +void DiskFileReader::Rewind() { + f_.clear(); + f_.seekg(0, std::ios::beg); +} + Tuples DiskFileReader::Read() { Tuples buf; buf.reserve(kBufSize); diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 94636d0..c881338 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include using ::testing::Eq; @@ -67,7 +68,10 @@ std::vector> GetChildren(utils::NotNull ex } class CardinalityEstimates { -public: +public: + CardinalityEstimates(std::unordered_map table_sizes = {}) + : table_sizes_(std::move(table_sizes)) {} + int64_t GetCardinality(utils::NotNull group) { if (auto it = cache_.find(group.get()); it != cache_.end()) { return it->second; @@ -76,11 +80,14 @@ class CardinalityEstimates { cache_[group.get()] = cardinality; return cardinality; } - + private: int64_t GetCardinality(const LogicalOperator& op) { return std::visit(utils::Overloaded{ - [](const logical::Table&) -> int64_t { + [this](const logical::Table& t) -> int64_t { + if (auto it = table_sizes_.find(t.name); it != table_sizes_.end()) { + return it->second; + } return 10; }, [this](const logical::Filter& f) -> int64_t { @@ -98,6 +105,7 @@ class CardinalityEstimates { }, op); } + std::unordered_map table_sizes_; std::unordered_map cache_; }; @@ -113,12 +121,14 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi return cardinality.GetCardinality(expr->group); }, [&](const physical::NestedLoopJoin& j) -> int64_t { - return 3 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs) - + cardinality.GetCardinality(expr->group); + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); }, [&](const physical::NestedLoopCrossJoin& j) -> int64_t { - return 3 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs) - + cardinality.GetCardinality(expr->group); + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); }, }, expr->root_operator); } @@ -126,9 +136,10 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi template class Optimizer { public: - Optimizer(const Operator& expr, Rules&& rules) + Optimizer(const Operator& expr, Rules&& rules, + CardinalityEstimates cardinality = {}) : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), - cardinality_() { + cardinality_(std::move(cardinality)) { } private: From 5708c10689edd37f4ced9162c4da018430ca5fe8 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 14:17:34 +0300 Subject: [PATCH 024/120] Add test --- src/stewkk/sql/logic/optimizer/optimizer_test.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index c881338..ecd1cda 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -348,4 +348,17 @@ TEST(OptimizerTest, Simple) { ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n n0 [label=\"SeqScan\\\\nusers\"]\n}\n")); } +TEST(OptimizerTest, JoinCommutativity) { + std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + Operator op = GetAST(s).value(); + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"users", 10000}, + {"orders", 100}, + })); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), ::testing::HasSubstr("(SeqScan orders) (SeqScan users)")); +} + } // namespace stewkk::sql From aadd4973f81ace3976f0938f182f5e09096b164d Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 14:47:31 +0300 Subject: [PATCH 025/120] Fix review issues --- report/thesis.tex | 195 +++++++++++++++++----------------------------- 1 file changed, 73 insertions(+), 122 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index f35aae0..432bc1f 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -1,4 +1,5 @@ % !TeX TXS-program:bibliography = txs:///biber +% chktex-file 1 \documentclass[fontsize=14pt, russian]{scrartcl} \input{header.tex} \addbibresource{biblio.bib} @@ -10,74 +11,29 @@ \def\figurename{Рисунок} -\begin{titlepage} - \thispagestyle{empty} - \newpage - - \bmstuheader - - \vspace{3em} - - \begin{center} - {\Large\bfseries РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА\\\textbf{\textit{К НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ\\НА ТЕМУ:}} \\} - \end{center} - - \vspace*{-6ex} - \begin{center} - \Large{\textit{\textbf{}}} - - \vspace*{-3ex} - \rule{1\textwidth}{1.2pt} - - \vspace*{-0.2ex} - - \Large{\textit{\textbf{}}} - - \vspace*{-3ex} - \rule{1\textwidth}{1.2pt} - - \vspace*{-0.2ex} - \rule{1\textwidth}{1.2pt} - - \vspace*{-0.2ex} - \rule{1\textwidth}{1.2pt} - \end{center} - - \vspace{\fill} - - - \newlength{\ML} - \settowidth{\ML}{«\underline{\hspace{0.7cm}}» \underline{\hspace{2cm}}} - - \noindent Студент \underline{\hspace{1.5cm}} \hfill \underline{\hspace{4cm}}\quad - \underline{\hspace{4cm}} - - \vspace{-2.1ex} - \noindent\hspace{9ex}\scriptsize{(Группа)}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize - - \bigskip - - \noindent Руководитель НИР \hfill \underline{\hspace{4cm}}\quad - \underline{\hspace{4cm}} - - \vspace{-2ex} - \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize - \bigskip - - \noindent Нормоконтролер \hfill \underline{\hspace{4cm}}\quad - \underline{\hspace{4cm}} - - \vspace{-2ex} - \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize - \vfill - - \begin{center} - \textsl{\the\year{} г.} - \end{center} -\end{titlepage} +\newcommand{\sqlkw}[1]{\texttt{#1}} +\newcommand{\SELECT}{\sqlkw{SELECT}} +\newcommand{\FROM}{\sqlkw{FROM}} +\newcommand{\WHERE}{\sqlkw{WHERE}} +\newcommand{\JOIN}{\sqlkw{JOIN}} +\newcommand{\GROUPBY}{\sqlkw{GROUP BY}} +\newcommand{\ORDERBY}{\sqlkw{ORDER BY}} + +\newcommand{\COUNT}{\sqlkw{COUNT}} +\newcommand{\SUM}{\sqlkw{SUM}} +\newcommand{\AVG}{\sqlkw{AVG}} +\newcommand{\MIN}{\sqlkw{MIN}} +\newcommand{\MAX}{\sqlkw{MAX}} + +\newcommand{\LogicalGet}{\sqlkw{LogicalGet}} +\newcommand{\SeqScan}{\sqlkw{SeqScan}} +\newcommand{\IndexScan}{\sqlkw{IndexScan}} +\newcommand{\NestedLoopJoin}{\sqlkw{NestedLoopJoin}} +\newcommand{\HashJoin}{\sqlkw{HashJoin}} +\newcommand{\MergeJoin}{\sqlkw{MergeJoin}} +\newcommand{\Sort}{\sqlkw{Sort}} \setlength{\tabcolsep}{3pt} -\newpage \setcounter{page}{2} %---------------------------------------------------------------------------- % ОТСЮДА --- СОБСТВЕННО ТЕКСТ @@ -90,7 +46,7 @@ \anonsection{ВВЕДЕНИЕ} В эпоху стремительного роста объемов данных системы управления базами данных -(СУБД) являются ключевой частью информационных систем. По данным аналитических +(СУБД) являются важной частью информационных систем. По данным аналитических исследований, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено как расширением круга решаемых задач, так и усложнением структуры обрабатываемых данных и увеличением их объема. Реляционные базы данных, работающие с различными @@ -114,12 +70,12 @@ Архитектура Cascades используется в таких промышленных системах, как Microsoft SQL Server, Apache Orca, а также в ряде исследовательских проектов, включая -Columbia и CockroachDB. Преимущества этой архитектуры заключаются в +Columbia и CockroachDB\@. Преимущества этой архитектуры заключаются в расширяемости, модульности, а также понятном и эффективном алгоритме поиска, допускающим параллельность исполнения. Целью данной работы является разработка и реализация оптимизатора подмножества -SQL-запросов на основе архитектуры Cascades, а также создание фреймворка для его +SQL-запросов на основе архитектуры Cascades, а также создание каркаса для его итеративного улучшения путем сравнения с промышленными реализациями. Для достижения поставленной цели необходимо решить следующие задачи: @@ -207,7 +163,7 @@ \section{Архитектура СУБД} \draw[->, thick, >=stealth] ([xshift=-0.5cm]clust.west) -- (clust.west); \draw[->, thick, >=stealth] ([xshift=-0.5cm]remote.west) -- (remote.west); \end{tikzpicture} - \caption{Архитектура реляционной системы управления базами данных} + \caption{Архитектура реляционной системы управления базами данных}% \label{fig::dbms_arch} \end{figure} @@ -217,10 +173,10 @@ \subsection{Процесс исполнения SQL-запроса} последовательных этапов. \begin{enumerate} - \item \emph{Синтаксический анализ} --- запроса проходит лексический и синтаксический разбор. Результатом данного этапа - является синтаксическое дерево, узлы которого соответствуют конструкциям - языка SQL: операторам \texttt{SELECT}, \texttt{FROM}, \texttt{WHERE}, - \texttt{JOIN}, \texttt{GROUP BY}, \texttt{ORDER BY} и другим. На этом же + \item \emph{Синтаксический анализ} --- запроса проходит лексический и + синтаксический разбор. Результатом данного этапа является синтаксическое + дерево, узлы которого соответствуют конструкциям языка SQL: операторам + \SELECT, \FROM, \WHERE, \JOIN, \GROUPBY, \ORDERBY{} и другим. На этом же этапе выполняется семантический анализ: проверяется существование указанных таблиц и столбцов, разрешаются имена объектов и определяются типы выражений. @@ -231,9 +187,9 @@ \subsection{Процесс исполнения SQL-запроса} них рассматривает возможные физические реализации операторов. С помощью модели стоимости оптимизатор оценивает затраты на выполнение каждого плана и выбирает план с наименьшей оценочной стоимостью. Результатом - этого этапа является физический план исполнения. Под этим понимается дерево физических - операторов с указанием конкретных алгоритмов соединения, методов доступа - к данным и порядка операций. + этого этапа является физический план исполнения. Под этим понимается + дерево физических операторов с указанием конкретных алгоритмов + соединения, методов доступа к данным и порядка операций. \item \emph{Исполнение физического плана} --- движок выполнения реализует физический план, порождая потоки кортежей. Данные извлекаются из @@ -246,7 +202,7 @@ \section{Реляционная алгебра} Реляционная алгебра представляет собой формальный язык для описания операций над отношениями реляционной базы данных. В отличие от декларативного SQL, -реляционная алгебра процедурной, так как она определяет конкретную +реляционная алгебра является процедурной, так как она определяет конкретную последовательность операций, необходимых для получения результата. Отношение определяется как конечное множество кортежей, каждый из которых @@ -281,8 +237,8 @@ \subsection{Основные операторы реляционной алге отсутствующие в \(S\). \item \emph{Агрегация} \(\gamma_{G, f}(R)\) --- разбивает отношение \(R\) на непересекающиеся множества по набору атрибутов \(G\) и вычисляет - агрегированные значения функции \(f\) (такие как \texttt{COUNT}, - \texttt{SUM}, \texttt{AVG}, \texttt{MIN}, \texttt{MAX}) по каждому + агрегированные значения функции \(f\) (такие как \COUNT, + \SUM, \AVG, \MIN, \MAX) по каждому такому множеству. \end{enumerate} @@ -298,8 +254,8 @@ \subsection{Преобразование синтаксического дере \begin{itemize} \item блок \texttt{SELECT-FROM-WHERE} превращается в проекцию над селекцией над декартовым произведением соединяемых таблиц; - \item конструкция \texttt{GROUP BY} порождает оператор группировки; - \item \texttt{ORDER BY} --- запрос на требуемое физическое свойство + \item конструкция \GROUPBY{} порождает оператор группировки; + \item \ORDERBY{} --- запрос на требуемое физическое свойство сортированности; \item вложенные подзапросы --- оператор Apply, который впоследствии может быть удалён процедурой декорреляции. @@ -432,7 +388,7 @@ \section{Цель оптимизатора} \draw[->] (p2o) -- (p2j1); \node[font=\small\bfseries] at (4.4, 4.0) {План \(P_2\)}; \end{tikzpicture} -\caption{Сравнение планов для запроса из листинга~\ref{lst:join_query}.} +\caption{Сравнение планов для запроса из листинга~\ref{lst:join_query}.}% \label{fig::join_plan_comparison} \end{figure} @@ -507,7 +463,7 @@ \section{Цель оптимизатора} \draw[->] (p2dept) -- (p2sig); \end{tikzpicture} \caption{Сравнение планов для запроса из - листинга~\ref{lst:logical_transform_query}.} + листинга~\ref{lst:logical_transform_query}.}% \label{fig::logical_transform_plans} \end{figure} @@ -537,14 +493,14 @@ \section{Цель оптимизатора} \] \end{itemize} -Оба приведенных примера наглядно демонстрируют, что оптимизатор отвечает не за -доли процентов производительности, а за принципиальную возможность исполнения -сложных аналитических запросов за приемлемое время. В первом случае разница -между физическими планами составляет восемь порядков: если \(P_1\) завершается -за секунды, то наивный \(P_2\) потребует десятков лет. Во втором случае даже -единственное логическое преобразование, в виде проталкивания предиката, снижает -число чтений с диска в \(1{,}900\) раз. Именно поэтому качественный оптимизатор -является конкурентным преимуществом и одной из самых важных частей СУБД. +Оба приведенных примера наглядно демонстрируют, что оптимизатор отвечает за +принципиальную возможность исполнения сложных аналитических запросов за +приемлемое время. В первом случае разница между физическими планами составляет +восемь порядков: если \(P_1\) завершается за секунды, то наивный \(P_2\) +потребует десятков лет. Во втором случае даже единственное логическое +преобразование, в виде проталкивания предиката, снижает число чтений с диска в +\(1{,}900\) раз. Именно поэтому качественный оптимизатор является конкурентным +преимуществом и одной из самых важных частей СУБД. \section{Обзор архитектур оптимизаторов} @@ -560,8 +516,8 @@ \subsection{System R} Оптимизатор, построенный по архитектуре System~R, разбивает запрос на блоки, каждый из которых оптимизируется индивидуально. Блок запроса состоит из -конструкции \texttt{SELECT}, конструкции \texttt{FROM}, ссылающейся на одну или -несколько таблиц, и дерева предикатов \texttt{WHERE}. Несколько блоков +конструкции \SELECT, конструкции \FROM, ссылающейся на одну или +несколько таблиц, и дерева предикатов \WHERE. Несколько блоков появляется в случае запроса с вложенными подзапросами. Для каждого блока оптимизатор выполняет два основных действия. Во-первых, для @@ -578,11 +534,11 @@ \subsection{System R} \(w\) --- весовой коэффициент. Важным нововведением System~R стало понятие интересных порядков. Стоимость плана -зависит не только от непосредственных затрат на выполнение оператора, но и от +зависит от непосредственных затрат на выполнение оператора и от того, обеспечивает ли он упорядоченность результата, требуемую вышестоящими операторами. Например, использование соединения слиянием вместо хеш-соединения может быть выгодно, если результат должен быть отсортирован для последующей -операции \texttt{ORDER BY}. +операции \ORDERBY. К ограничениям архитектуры System~R относятся: @@ -591,7 +547,7 @@ \subsection{System R} деревьев соединений; \item независимая оптимизация вложенных подзапросов; \item невозможность гибкого расширения набора правил преобразования, что - необходимо при добавлении новых операторов языка SQL. + необходимо при добавлении новых операторов языка SQL\@. \end{itemize} Эти ограничения послужили мотивацией для создания расширяемых архитектур @@ -657,7 +613,7 @@ \section{Архитектура Cascades} Важным принципом данной архитектуры является то, что правила являются объектами первого класса. Они определяются условиями применимости и собственно алгоритмом -применения. Предполагается, что система легко расширяется добавленимем новых +применения. Предполагается, что система легко расширяется добавлением новых правил, потому что все правила наследуются от общего интерфейса и имеют одинаковую структуру. @@ -665,12 +621,7 @@ \subsection{Группы эквивалентности и выражения} Группа в Memo представляет собой множество выражений, которые эквивалентны с точки зрения логического результата. Например, для отношений \(A\), \(B\) и -\(C\) выражения - -\[ - A \bowtie (B \bowtie C) ; \qquad{} (A \bowtie B) \bowtie C -\] - +\(C\) выражения \( A \bowtie (B \bowtie C) ; \qquad{} (A \bowtie B) \bowtie C \) при выполнении условий ассоциативности соединения принадлежат одной группе, поскольку возвращают одинаковый результат. Причем физические реализации этих выражений могут отличаться, а стоимость может зависеть от кардинальности @@ -717,7 +668,7 @@ \subsection{Структура Memo} листинга~\ref{lst:query}. Например, группа \(G_5\) представляет результат соединения трех отношений, в ней находятся два логически эквивалентных выражения с разной ассоциацией соединений и четыре физические реализации для них. Входными -данными для операторов являются группы группы, поэтому общие подвыражения не +данными для операторов являются группы, поэтому общие подвыражения не дублируются. \begin{figure}[H] @@ -800,7 +751,7 @@ \subsection{Структура Memo} \draw[arrow] (g6) -- (g2); \draw[arrow] (g6) -- (g3); \end{tikzpicture} - \caption{Пример структуры Memo.} + \caption{Пример структуры Memo.}% \label{fig:memo-structure} \end{figure} @@ -842,7 +793,7 @@ \subsection{Алгоритм поиска} \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{cascades.pdf} -\caption{Схема взаимодействия задач в оптимизаторе Cascades} +\caption{Схема взаимодействия задач в оптимизаторе Cascades}% \label{fig:cascades-tasks} \end{figure} @@ -1072,8 +1023,8 @@ \subsection{Правила трансформации} где \(G\) --- ключи группировки, \(F\) --- набор агрегатных функций, \(G_R = G \cap attrs(R)\), \(F_R\) --- частичные агрегаты по атрибутам \(R\), а -\(F'\) --- финальные комбинаторы. Например, \texttt{SUM} раскладывается в сумму -частичных сумм, а \texttt{AVG} --- в пару \texttt{SUM} и \texttt{COUNT}. +\(F'\) --- финальные комбинаторы. Например, \SUM{} раскладывается в сумму +частичных сумм, а \AVG{} --- в пару \SUM{} и \COUNT{}. Условиями активации проталкивания агрегации ниже соединения являются: \begin{itemize} @@ -1119,13 +1070,13 @@ \subsection{Правила реализации} логического оператора чтения таблицы могут быть применены правила: \begin{itemize} - \item \texttt{LogicalGet} \(\Rightarrow\) \texttt{SeqScan}; - \item \texttt{LogicalGet} \(\Rightarrow\) \texttt{IndexScan}, если имеется + \item \LogicalGet{} \(\Rightarrow\) \SeqScan; + \item \LogicalGet{} \(\Rightarrow\) \IndexScan, если имеется индекс, совместимый с предикатом или требуемым порядком. \end{itemize} Для логического соединения могут быть созданы физические операторы -\texttt{NestedLoopJoin}, \texttt{HashJoin} и \texttt{MergeJoin}. Хеш-соединение +\NestedLoopJoin, \HashJoin{} и \MergeJoin. Хеш-соединение обычно требует предиката равенства по ключам, поскольку именно по ним строится хеш-таблица. Сортировочное соединение требует, чтобы оба входа были отсортированы по ключам соединения, либо чтобы оптимизатор мог добавить @@ -1147,7 +1098,7 @@ \subsection{Обеспечивающие операторы} Физические свойства в Cascades обрабатываются через требуемые и предоставляемые свойства. Если родительский оператор требует вход, отсортированный по атрибуту \(a\), а выбранный дочерний план такого порядка не предоставляет, оптимизатор -может добавить обеспечивающий оператор \texttt{Sort}. +может добавить обеспечивающий оператор \Sort. Обеспечивающие операторы не изменяют логический результат, но меняют физические свойства и увеличивают стоимость. Поэтому они рассматриваются наравне с другими @@ -1185,7 +1136,7 @@ \section{Метод ветвей и границ} стоимость служит нижней границей. Если же группа \(G_i\) под свойством \(P_i\) ещё не рассматривалась, используется тривиальная граница \(LB = 0\), или, при условии наличия минимальной стоимости на кортеж, можно принимать -\(LB(G_i, P_i) = |G_i| \cdot min_cost_per_row\). +\(LB(G_i, P_i) = |G_i| \cdot \mathit{minCostPerRow}\). Требуемые свойства дочерних групп \(P_i\) определяются оператором выражения \(e\) совместно с требованием родителя \(P\). Каждый физический оператор описывает, какие @@ -1286,9 +1237,9 @@ \subsection{Предлагаемый метод} Полученные физические планы промышленных СУБД конвертируются в формат сериализованного плана разрабатываемого оптимизатора. Для этого необходимо создать набор отображений между физическими операторами различных систем. -Например, \texttt{Hash Match} в SQL Server отображается в \texttt{HashJoin} в -разрабатываемой системе, \texttt{Clustered Index Scan} --- в \texttt{IndexScan} -и так далее. +Например, \texttt{Hash Match} в SQL Server отображается в \HashJoin{} в +разрабатываемой системе, \texttt{Clustered Index Scan} --- в \IndexScan{} и так +далее. Корректность конвертации плана можно проверить путем исполнения исходого плана на внешней системе и полученного плана на разрабатываемой системе и сравнения @@ -1319,8 +1270,8 @@ \subsection{Поиск ближайшего плана} \subsection{Область применения} -Предлагаемый метод дифференциального анализа применим не только для сравнения с -проприетарными системами, но и с СУБД с открытым исходным кодом, позволяя +Предлагаемый метод дифференциального анализа применим для сравнения как с +проприетарными системами, так и с СУБД с открытым исходным кодом, позволяя уточнять условия применения правил. Систематическое применение этого подхода позволяет построить итеративный процесс @@ -1353,7 +1304,7 @@ \subsection{Область применения} \vspace{-30pt} \begin{algorithm}[H] - \caption{Алгоритм поиска (часть 1).} + \caption{Алгоритм поиска (часть 1).}% \label{alg:cascades-search} \begin{algorithmic}[1] @@ -1389,7 +1340,7 @@ \subsection{Область применения} \end{algorithm} \begin{algorithm}[H] - \caption{Алгоритм поиска (часть 2).} + \caption{Алгоритм поиска (часть 2).}% \label{alg:cascades-search-2} \begin{algorithmic}[1] \Procedure{ExploreExpression}{$expr, limit$} @@ -1432,7 +1383,7 @@ \subsection{Область применения} \end{algorithm} \begin{algorithm}[H] - \caption{Алгоритм поиска (часть 3).} + \caption{Алгоритм поиска (часть 3).}% \label{alg:cascades-search-3} \begin{algorithmic}[1] \Procedure{OptimizeInputs}{$expr, limit, i$} From d164eaa0992ede7a9d71b1f926784779f072e7ef Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 15:53:34 +0300 Subject: [PATCH 026/120] Fix --- report/thesis.tex | 168 ++++++++++++++++++++++++---------------------- 1 file changed, 89 insertions(+), 79 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index 432bc1f..750ace7 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -33,6 +33,20 @@ \newcommand{\MergeJoin}{\sqlkw{MergeJoin}} \newcommand{\Sort}{\sqlkw{Sort}} +\newcommand{\SelOp}[1]{\sigma_{#1}} +\newcommand{\ProjectionOp}[1]{\pi_{#1}} + +\newcommand{\Sel}[2]{\sigma_{#1}(#2)} +\newcommand{\Projection}[2]{\pi_{#1}(#2)} +\newcommand{\Agg}[3]{\gamma_{#1;\,#2}(#3)} +\newcommand{\AggP}[3]{\gamma_{#1;\,#2}^{partial}(#3)} +\newcommand{\NJoin}[2]{#1 \bowtie #2} +\newcommand{\InnerJoin}[3]{#1 \bowtie_{#2} #3} +\newcommand{\CProd}[2]{#1 \times #2} +\newcommand{\LOJ}[3]{#1 \ltimes_{#2} #3} +\newcommand{\ROJ}[3]{#1 \rtimes_{#2} #3} +\newcommand{\FOJ}[3]{#1 \mathbin{\ltimes\!\!\!\rtimes}_{#2} #3} + \setlength{\tabcolsep}{3pt} \setcounter{page}{2} %---------------------------------------------------------------------------- @@ -198,6 +212,27 @@ \subsection{Процесс исполнения SQL-запроса} \end{enumerate} +Сформулируем задачу, которую решает оптимизатор: по запросу, представленному в +форме дерева операторов реляционной алгебры, построить эквивалентный и +оптимальный, с точки зрения необходимых для исполнения ресурсов, план +исполнения. Итоговый план является деревом, вершины которого помечены +конкретными указаниями на алгоритмы, реализующими один или несколько операторов +реляционной алгебры. Эквивалентность означает, что итоговый физический план и +исходный запрос при исполнении на любом наборе данных порождают одинаковые +отношения с точностью до требуемых свойств, таких как сортировка. + +Запрос в форме реляционной алгебры также называют логическим планом, а операторы +реляционной алгебры --- логическими операторами. + +Для каждого логического оператора существует несколько возможных физических +реализаций. Например, оператор соединения \(\bowtie\) может быть реализован как +соединение вложенными циклами, хеш-соединение или соединение слиянием. +Аналогично, оператор доступа к данным может быть реализован как последовательное +сканирование таблицы или сканирование индекса. Еще одним важным примером +является эквивалентность сканирования индекса с предикатом и двух логических +операторов, примененных последовательно: доступ к данным и фильтрация по тому же +условию. + \section{Реляционная алгебра} Реляционная алгебра представляет собой формальный язык для описания операций над @@ -217,25 +252,25 @@ \subsection{Основные операторы реляционной алге Среди основных операторов реляционной алгебры выделяют следующие. \begin{enumerate} - \item \emph{Фильтрация} \(\sigma_p(R)\) --- возвращает подмножество кортежей + \item \emph{Фильтрация} \(\Sel{p}{R}\) --- возвращает подмножество кортежей отношения \(R\), удовлетворяющих предикату \(p\). Например, - \(\sigma_{\text{age} > 30}(\text{Employee})\) вернет все кортежи из + \(\Sel{\text{age} > 30}{\text{Employee}}\) вернет все кортежи из отношения Employee, для которых значение атрибута age больше 30. - \item \emph{Проекция} \(\pi_{A_1, \ldots, A_k}(R)\) --- формирует новое + \item \emph{Проекция} \(\Projection{A_1, \ldots, A_k}{R}\) --- формирует новое отношение, содержащее только перечисленные атрибуты. - \item \emph{Декартово произведение} \(R \times S\) --- формирует отношение, + \item \emph{Декартово произведение} \(\CProd{R}{S}\) --- формирует отношение, каждый кортеж которого является конкатенацией кортежа из \(R\) и кортежа - из \(S\), при этом результат содержит \(|R \times S| = |R| \cdot |S|\) + из \(S\), при этом результат содержит \(|\CProd{R}{S}| = |R| \cdot |S|\) элементов. - \item \emph{Соединение} \(R \bowtie_p S\) --- комбинирует кортежи двух + \item \emph{Соединение} \(\InnerJoin{R}{p}{S}\) --- комбинирует кортежи двух отношений на основании предиката \(p\). Внутреннее соединение определяется как - \(R \bowtie_{R.a = S.b} S = \sigma_{R.a = S.b}(R \times S)\). + \(\InnerJoin{R}{R.a = S.b}{S} = \Sel{R.a = S.b}{\CProd{R}{S}}\). \item \emph{Объединение} \(R \cup S\) --- возвращает все кортежи, принадлежащие хотя бы одному из двух совместимых по схеме отношений. \item \emph{Разность} \(R - S\) --- выбирает кортежи, принадлежащие \(R\), но отсутствующие в \(S\). - \item \emph{Агрегация} \(\gamma_{G, f}(R)\) --- разбивает отношение \(R\) на + \item \emph{Агрегация} \(\Agg{G}{f}{R}\) --- разбивает отношение \(R\) на непересекающиеся множества по набору атрибутов \(G\) и вычисляет агрегированные значения функции \(f\) (такие как \COUNT, \SUM, \AVG, \MIN, \MAX) по каждому @@ -254,7 +289,7 @@ \subsection{Преобразование синтаксического дере \begin{itemize} \item блок \texttt{SELECT-FROM-WHERE} превращается в проекцию над селекцией над декартовым произведением соединяемых таблиц; - \item конструкция \GROUPBY{} порождает оператор группировки; + \item конструкция \GROUPBY{} порождает оператор агрегации \(\Agg{G}{f}{R}\); \item \ORDERBY{} --- запрос на требуемое физическое свойство сортированности; \item вложенные подзапросы --- оператор Apply, который впоследствии может быть @@ -270,42 +305,21 @@ \subsection{Преобразование синтаксического дере позволяет оптимизатору независимо исследовать порядок операций и алгоритмы их реализации. -\section{Цель оптимизатора} - -Сформулируем задачу, которую решает оптимизатор: по запросу, представленному в -форме дерева операторов реляционной алгебры, построить эквивалентный и -оптимальный, с точки зрения необходимых для исполнения ресурсов, план -исполнения. Итоговый план является деревом, вершины которого помечены -конкретными указаниями на алгоритмы, реализующими один или несколько операторов -реляционной алгебры. Эквивалентность означает, что итоговый физический план и -исходный запрос при исполнении на любом наборе данных порождают одинаковые -отношения с точностью до требуемых свойств, таких как сортировка. - -Запрос в форме реляционной алгебры также называют логическим планом, а операторы -реляционной алгебры --- логическими операторами. - -Для каждого логического оператора существует несколько возможных физических -реализаций. Например, оператор соединения \(\bowtie\) может быть реализован как -соединение вложенными циклами, хеш-соединение или соединение слиянием. -Аналогично, оператор доступа к данным может быть реализован как последовательное -сканирование таблицы или сканирование индекса. Еще одним важным примером -является эквивалентность сканирования индекса с предикатом и двух логических -операторов, примененных последовательно: доступ к данным и фильтрация по тому же -условию. +\section{Поиск оптимального плана} Эквивалентность планов обеспечивается свойствами реляционной алгебры. \begin{Example} Коммутативность соединения: \[ - R \bowtie S \equiv S \bowtie R. + \NJoin{R}{S} \equiv \NJoin{S}{R}. \] \end{Example} \begin{Example} Ассоциативность соединения: \[ - (R \bowtie S) \bowtie T \equiv R \bowtie (S \bowtie T). + \NJoin{(\NJoin{R}{S})}{T} \equiv \NJoin{R}{(\NJoin{S}{T})}. \] \end{Example} @@ -394,7 +408,7 @@ \section{Цель оптимизатора} \begin{itemize} \item План \(P_1\): - \((\texttt{customer} \bowtie \texttt{orders}) \bowtie \texttt{lineitem}\) + \(\NJoin{(\NJoin{\texttt{customer}}{\texttt{orders}})}{\texttt{lineitem}}\) с реализацией обоих соединений через Hash Join, для чего сначала полностью считываются \(P_C + P_O = 1{,}26 \cdot 10^5\) страниц для построения хеш-таблицы, после чего промежуточный результат размером @@ -437,10 +451,10 @@ \section{Цель оптимизатора} minimum height=1.2cm, align=center, font=\small} ] \node[font=\small\bfseries] at (-3.5, 8.8) {План \(P_1\)}; - \node[op] (p1proj) at (-3.5, 7.7) {\(\pi_{\texttt{ename}}\)}; - \node[op] (p1sig2) at (-3.5, 6.2) {\(\sigma_{\texttt{dname}=\texttt{'Toy'}}\)}; - \node[op] (p1sig1) at (-3.5, 4.7) {\(\sigma_{\texttt{Emp.did}=\texttt{Dept.did}}\)}; - \node[op] (p1cp) at (-3.5, 3.2) {\(\texttt{Emp} \times \texttt{Dept}\)\\\scriptsize \(50{,}050\) чтений}; + \node[op] (p1proj) at (-3.5, 7.7) {\(\ProjectionOp{\texttt{ename}}\)}; + \node[op] (p1sig2) at (-3.5, 6.2) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)}; + \node[op] (p1sig1) at (-3.5, 4.7) {\(\SelOp{\texttt{Emp.did}=\texttt{Dept.did}}\)}; + \node[op] (p1cp) at (-3.5, 3.2) {\(\CProd{\texttt{Emp}}{\texttt{Dept}}\)\\\scriptsize \(50{,}050\) чтений}; \node[rel] (p1emp) at (-5.2, 1.7) {\texttt{Emp}}; \node[rel] (p1dept) at (-1.8, 1.7) {\texttt{Dept}}; @@ -451,10 +465,10 @@ \section{Цель оптимизатора} \draw[->] (p1sig2) -- (p1proj); \node[font=\small\bfseries] at (3.5, 8.8) {План \(P_2\)}; - \node[op] (p2proj) at (3.5, 7.7) {\(\pi_{\texttt{ename}}\)}; + \node[op] (p2proj) at (3.5, 7.7) {\(\ProjectionOp{\texttt{ename}}\)}; \node[op] (p2join) at (3.5, 5.5) {Index NL Join\\\(\texttt{Emp.did}=\texttt{Dept.did}\)\\\scriptsize \(23\) чтения}; \node[rel] (p2emp) at (1.6, 3.5) {\texttt{Emp}}; - \node[op] (p2sig) at (5.4, 3.5) {\(\sigma_{\texttt{dname}=\texttt{'Toy'}}\)\\\scriptsize \(3\) чтения}; + \node[op] (p2sig) at (5.4, 3.5) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)\\\scriptsize \(3\) чтения}; \node[rel] (p2dept) at (5.4, 1.8) {\texttt{Dept}}; \draw[->] (p2emp) -- (p2join); @@ -621,7 +635,7 @@ \subsection{Группы эквивалентности и выражения} Группа в Memo представляет собой множество выражений, которые эквивалентны с точки зрения логического результата. Например, для отношений \(A\), \(B\) и -\(C\) выражения \( A \bowtie (B \bowtie C) ; \qquad{} (A \bowtie B) \bowtie C \) +\(C\) выражения \( \NJoin{A}{(\NJoin{B}{C})} ; \qquad{} \NJoin{(\NJoin{A}{B})}{C} \) при выполнении условий ассоциативности соединения принадлежат одной группе, поскольку возвращают одинаковый результат. Причем физические реализации этих выражений могут отличаться, а стоимость может зависеть от кардинальности @@ -828,9 +842,9 @@ \subsection{Правила трансформации} вычисления и выбрать тот, при котором стоимость физического плана меньше. \[ - R \bowtie_{\theta} S + \InnerJoin{R}{\theta}{S} \Rightarrow - S \bowtie_{\theta} R. + \InnerJoin{S}{\theta}{R}. \] Это правило применимо для внутренних и полных внешних соединений. @@ -841,9 +855,9 @@ \subsection{Правила трансформации} выбрать тот, при котором промежуточные результаты имеют наименьший размер. \[ - (R \bowtie_{\theta_1} S) \bowtie_{\theta_2} T + \InnerJoin{(\InnerJoin{R}{\theta_1}{S})}{\theta_2}{T} \Rightarrow - R \bowtie_{\theta'_1} (S \bowtie_{\theta'_2} T), + \InnerJoin{R}{\theta'_1}{(\InnerJoin{S}{\theta'_2}{T})}, \] где \(\theta'_1\) и \(\theta'_2\) --- результат перераспределения конъюнктов @@ -865,16 +879,16 @@ \subsection{Правила трансформации} кардинальность входа. \[ - \sigma_p(R \bowtie_{\theta} S) + \Sel{p}{\InnerJoin{R}{\theta}{S}} \Rightarrow - \sigma_p(R) \bowtie_{\theta} S, + \InnerJoin{\Sel{p}{R}}{\theta}{S}, \quad attrs(p) \subseteq attrs(R), \] \[ - \sigma_p(R \bowtie_{\theta} S) + \Sel{p}{\InnerJoin{R}{\theta}{S}} \Rightarrow - R \bowtie_{\theta} \sigma_p(S), + \InnerJoin{R}{\theta}{\Sel{p}{S}}, \quad attrs(p) \subseteq attrs(S). \] @@ -892,18 +906,18 @@ \subsection{Правила трансформации} хеш-соединение или соединение слиянием. \[ - \sigma_p(R \bowtie_{\theta} S) + \Sel{p}{\InnerJoin{R}{\theta}{S}} \Rightarrow - R \bowtie_{\theta \land p} S. + \InnerJoin{R}{\theta \land p}{S}. \] Частный случай для декартова произведения превращает его в полноценное соединение с предикатом: \[ - \sigma_p(R \times S) + \Sel{p}{\CProd{R}{S}} \Rightarrow - R \bowtie_p S. + \InnerJoin{R}{p}{S}. \] Условиями активации переноса фильтрации в предикат соединения являются: @@ -918,9 +932,9 @@ \subsection{Правила трансформации} или открывают другие возможности применения правил. \[ - \sigma_p(R) \bowtie_{\theta} S + \InnerJoin{\Sel{p}{R}}{\theta}{S} \Rightarrow - \sigma_p(R \bowtie_{\theta} S), + \Sel{p}{\InnerJoin{R}{\theta}{S}}, \quad attrs(p) \subseteq attrs(R). \] @@ -939,9 +953,9 @@ \subsection{Правила трансформации} удален. \[ - \sigma_{p_1 \land p_2 \land \ldots \land p_n}(R) + \Sel{p_1 \land p_2 \land \ldots \land p_n}{R} \Rightarrow - \sigma_{p_1}(\sigma_{p_2}(\ldots\sigma_{p_n}(R)\ldots)). + \Sel{p_1}{\Sel{p_2}{\ldots\Sel{p_n}{R}\ldots}}. \] Правило проталкивания проекции добавляет на каждый из входов соединения @@ -950,13 +964,11 @@ \subsection{Правила трансформации} кортежей и сокращают объем данных, передаваемых между операторами. \[ - \pi_L(R \bowtie_{\theta} S) + \Projection{L}{\InnerJoin{R}{\theta}{S}} \Rightarrow - \pi_L\bigl( - \pi_{L_R \cup J_R}(R) - \bowtie_{\theta} - \pi_{L_S \cup J_S}(S) - \bigr), + \Projection{L}{ + \InnerJoin{\Projection{L_R \cup J_R}{R}}{\theta}{\Projection{L_S \cup J_S}{S}} + }, \] где \(L_R = L \cap attrs(R)\), \(L_S = L \cap attrs(S)\), @@ -975,21 +987,21 @@ \subsection{Правила трансформации} ассоциативность, проталкивание фильтрации и другие. \[ - \sigma_p(R \operatorname{LOJ}_{\theta} S) + \Sel{p}{\LOJ{R}{\theta}{S}} \Rightarrow - \sigma_p(R \bowtie_{\theta} S), + \Sel{p}{\InnerJoin{R}{\theta}{S}}, \] \[ - \sigma_p(R \operatorname{ROJ}_{\theta} S) + \Sel{p}{\ROJ{R}{\theta}{S}} \Rightarrow - \sigma_p(R \bowtie_{\theta} S), + \Sel{p}{\InnerJoin{R}{\theta}{S}}, \] \[ - \sigma_p(R \operatorname{FOJ}_{\theta} S) + \Sel{p}{\FOJ{R}{\theta}{S}} \Rightarrow - \sigma_p(R \bowtie_{\theta} S). + \Sel{p}{\InnerJoin{R}{\theta}{S}}. \] Условиями активации преобразования внешнего соединения во внутреннее являются: @@ -1012,13 +1024,11 @@ \subsection{Правила трансформации} часть нагрузки с финальной агрегации. \[ - \gamma_{G; F}(R \bowtie_{R.k = S.k} S) + \Agg{G}{F}{\InnerJoin{R}{R.k = S.k}{S}} \Rightarrow - \gamma_{G; F'}\bigl( - \gamma_{G_R \cup \{R.k\}; F_R}^{partial}(R) - \bowtie_{R.k = S.k} - S - \bigr), + \Agg{G}{F'}{ + \InnerJoin{\AggP{G_R \cup \{R.k\}}{F_R}{R}}{R.k = S.k}{S} + }, \] где \(G\) --- ключи группировки, \(F\) --- набор агрегатных функций, @@ -1043,9 +1053,9 @@ \subsection{Правила трансформации} теряет строки агрегируемой стороны. \[ - \gamma_{G; F_R}(R \bowtie_{R.k = S.k} S) + \Agg{G}{F_R}{\InnerJoin{R}{R.k = S.k}{S}} \Rightarrow - \gamma_{G; F_R}(R) \bowtie_{R.k = S.k} S. + \InnerJoin{\Agg{G}{F_R}{R}}{R.k = S.k}{S}. \] Условиями активации перестановки агрегации и соединения являются: @@ -1155,14 +1165,14 @@ \subsection{Оценка кардинальности} кардинальность результата оценивается как \[ - |\sigma_p(R)| = |R| \cdot sel(p). + |\Sel{p}{R}| = |R| \cdot sel(p). \] Для соединения на основе предиката равенства независимых атрибутов часто применяется эвристика: \[ - |R \bowtie_{R.a = S.b} S| \approx + |\InnerJoin{R}{R.a = S.b}{S}| \approx \frac{|R| \cdot |S|}{\max(NDV(R.a), NDV(S.b))}, \] From 456171fdfc7263bc145189a5371b12d7fbdd6097 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 17:01:11 +0300 Subject: [PATCH 027/120] Fix --- report/thesis.tex | 69 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index 750ace7..ff01f7e 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -46,6 +46,8 @@ \newcommand{\LOJ}[3]{#1 \ltimes_{#2} #3} \newcommand{\ROJ}[3]{#1 \rtimes_{#2} #3} \newcommand{\FOJ}[3]{#1 \mathbin{\ltimes\!\!\!\rtimes}_{#2} #3} +\newcommand{\Tr}[1]{[\![ #1 ]\!]} +\newcommand{\Apply}[2]{#1 \mathbin{\mathcal{A}} #2} \setlength{\tabcolsep}{3pt} \setcounter{page}{2} @@ -272,29 +274,62 @@ \subsection{Основные операторы реляционной алге отсутствующие в \(S\). \item \emph{Агрегация} \(\Agg{G}{f}{R}\) --- разбивает отношение \(R\) на непересекающиеся множества по набору атрибутов \(G\) и вычисляет - агрегированные значения функции \(f\) (такие как \COUNT, - \SUM, \AVG, \MIN, \MAX) по каждому - такому множеству. + агрегированные значения функции \(f\) по каждому такому множеству. + Примеры функций: \COUNT, \SUM, \AVG, \MIN, \MAX. + \item \emph{Apply} \(\Apply{R}{S(t)}\) --- для каждого кортежа \(t\) + отношения \(R\) вычисляет параметризованное им отношение \(S(t)\) и + конкатенирует \(t\) с каждым кортежем результата: + \[ + \Apply{R}{S(t)} = \bigcup_{t \in R} \{t\} \times S(t). + \] + В отличие от соединения, правая сторона зависит от текущего кортежа + левой и используется для представления коррелированных подзапросов. \end{enumerate} \subsection{Преобразование синтаксического дерева к реляционной алгебре} -Полученное после лексического и синтаксического разбора абстракное -синтаксическое дерево обычно преобразовывают в форму операторов реляционной -алгебры. +Полученное после лексического и синтаксического разбора абстрактное +синтаксическое дерево преобразуется в выражение реляционной алгебры. Этот +процесс определяется структурной индукцией по дереву запроса. Введём оператор +конверсии \(\Tr{\cdot}\), сопоставляющий узлу синтаксического дерева его +алгебраическое представление. Тогда правила трансляции записываются в виде +правил вывода. Если для всех поддеревьев известны алгебраические представления, +то алгебраическое представление составной конструкции выражается через них. -Это преобразование выполняется по фиксированному набору правил, отражающих -семантику конструкций SQL: - -\begin{itemize} - \item блок \texttt{SELECT-FROM-WHERE} превращается в проекцию над селекцией - над декартовым произведением соединяемых таблиц; - \item конструкция \GROUPBY{} порождает оператор агрегации \(\Agg{G}{f}{R}\); - \item \ORDERBY{} --- запрос на требуемое физическое свойство - сортированности; - \item вложенные подзапросы --- оператор Apply, который впоследствии может быть +\begin{enumerate} + \item \emph{Базовый случай.} Для ссылки на таблицу \(T\) выполняется + \(\Tr{T} = T\). + \item \emph{Блок \texttt{SELECT-FROM-WHERE}.} Пусть \(\bar{T} = T_1, \ldots, + T_n\) --- ссылки на таблицы или вложенные подзапросы, \(p\) --- + предикат фильтрации, \(\bar{a} = a_1, \ldots, a_k\) --- список + выражений проекции. Тогда + \[ + \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} + {\Tr{\SELECT\ \bar{a}\ \FROM\ \bar{T}\ \WHERE\ p} + = \Projection{\bar{a}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. + \] + \item \emph{Группировка.} Пусть \(\bar{g} = g_1, \ldots, g_m\) --- список + группирующих атрибутов, \(\bar{f} = f_1, \ldots, f_l\) --- список + агрегирующих функций. Тогда + \[ + \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} + {\Tr{\SELECT\ \bar{g}, \bar{f}\ \FROM\ \bar{T}\ \WHERE\ p\ \GROUPBY\ \bar{g}} + = \Agg{\bar{g}}{\bar{f}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. + \] + \item \emph{Вложенные подзапросы.} Пусть \(Q\) --- внешний блок, а \(Q'(t)\) + --- коррелированный подзапрос, зависящий от кортежа \(t\) из + \(\Tr{Q}\). Тогда + \[ + \frac{\Tr{Q} = E \quad \Tr{Q'(t)} = E'(t)} + {\Tr{Q\ \text{с подзапросом}\ Q'} = \Apply{E}{E'(t)}}, + \] + где \(\mathcal{A}\) --- оператор Apply, который впоследствии может быть удалён процедурой декорреляции. -\end{itemize} + \item \emph{Сортировка.} Конструкция \ORDERBY{} не выражается в виде + операторов реляционной алгебры. Вместо этого она задает требуемое + физическое свойство упорядоченности результата, учитываемое на этапе + выбора физического плана. +\end{enumerate} Данное преобразование необходимо по нескольким причинам. Во-первых, реляционная алгебра обладает формализованным набором правил эквивалентности, которые From ca548b38d6e7e75707c8792ead86e5f93416ddec Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 17:18:36 +0300 Subject: [PATCH 028/120] Add example --- report/thesis.tex | 89 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 81 insertions(+), 8 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index ff01f7e..7784cbc 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -331,14 +331,87 @@ \subsection{Преобразование синтаксического дере выбора физического плана. \end{enumerate} -Данное преобразование необходимо по нескольким причинам. Во-первых, реляционная -алгебра обладает формализованным набором правил эквивалентности, которые -позволяют оптимизатору корректно преобразовывать план запроса без изменения -семантики. Во-вторых, алгебраическое представление позволяет единообразно -обрабатывать различные синтаксические формы SQL-запросов, порождающие одинаковые -логические планы. Наконец, разделение на логические и физические операторы -позволяет оптимизатору независимо исследовать порядок операций и алгоритмы их -реализации. +Приведём пример применения этих правил к SQL-запросу из +листинга~\ref{lst:correlated_subquery}. Трансляция этого запроса в реляционную +алгебру выполняется по следующим шагам: + +\begin{listing}[H] + \caption{Запрос с коррелированным подзапросом.} + \label{lst:correlated_subquery} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT e.name + FROM Employee e + WHERE e.salary > ( + SELECT AVG(salary) + FROM Employee + WHERE dept = e.dept + ) + \end{minted} +\end{listing} + +\begin{enumerate} + \item По базовому правилу оба вхождения таблицы остаются как есть + \(\Tr{\text{Employee}} = \text{Employee}\). + \item Внутренний подзапрос + \(Q'(e) = (\SELECT\ \AVG(\text{salary})\ \FROM\ \ldots \WHERE\ \ldots\)) + транслируется по правилу группировки, где \(\bar{g} = \varnothing\), + \(\bar{f} = \AVG(\text{salary})\): + \[ + \Tr{Q'(e)} = \Agg{\varnothing}{\AVG(\text{salary})}{\Sel{\text{dept} = e.\text{dept}}{\text{Employee}}}. + \] + Подзапрос коррелирован, так как зависит от атрибута \(e.\text{dept}\) + внешнего кортежа. + \item По правилу вложенных подзапросов результат \(\Tr{Q'(e)}\) присоединяется + к внешнему блоку оператором \(\mathcal{A}\), добавляя к каждому кортежу + столбец \(c\) с вычисленным значением средней зарплаты. + \item Оставшаяся часть внешнего запроса переводится по правилу + \texttt{SELECT-FROM-WHERE} с \(\bar{a} = (e.\text{name})\) и + \(p = (e.\text{salary} > c)\). +\end{enumerate} + +Итоговое алгебраическое выражение имеет вид +\[ + \Projection{e.\text{name}}{\Sel{e.\text{salary} > c}{\Apply{\text{Employee}\;e}{\Agg{\varnothing}{\text{AVG}(\text{salary}) \to c}{\Sel{\text{dept} = e.\text{dept}}{\text{Employee}}}}}}. +\] +Соответствующее дерево операторов изображено на +рисунке~\ref{fig:correlated_subquery_tree}. + +\begin{figure}[!htb]\centering +\begin{tikzpicture}[ + rel/.style={rectangle, draw, rounded corners=2pt, minimum width=2.2cm, + minimum height=0.8cm, align=center, font=\small}, + op/.style={rectangle, draw, fill=gray!12, minimum width=2.6cm, + minimum height=0.9cm, align=center, font=\small}, + level distance=1.15cm +] + \node[op] (proj) at (0, 6.5) {\(\Projection{e.\text{name}}{}\)}; + \node[op] (sel1) at (0, 5.2) {\(\Sel{e.\text{salary} > c}{}\)}; + \node[op] (apply) at (0, 3.9) {\(\mathcal{A}\)}; + \node[rel] (emp1) at (-2.8, 2.6) {\texttt{Employee} \(e\)}; + \node[op] (agg) at (2.8, 2.6) {\(\Agg{\varnothing}{\text{AVG}(\text{salary}) \to c}{}\)}; + \node[op] (sel2) at (2.8, 1.3) {\(\Sel{\text{dept} = e.\text{dept}}{}\)}; + \node[rel] (emp2) at (2.8, 0) {\texttt{Employee}}; + + \draw[->] (sel1) -- (proj); + \draw[->] (apply) -- (sel1); + \draw[->] (emp1) -- (apply); + \draw[->] (agg) -- (apply); + \draw[->] (sel2) -- (agg); + \draw[->] (emp2) -- (sel2); +\end{tikzpicture} +\caption{Дерево реляционной алгебры для запроса из +листинга~\ref{lst:correlated_subquery}.}% +\label{fig:correlated_subquery_tree} +\end{figure} + +Преобразование в форму реляционной алгебры необходимо по нескольким причинам. +Во-первых, это позволяет использовать формализованный набор правил +эквивалентности, который позволяют оптимизатору корректно преобразовывать план +запроса без изменения семантики. Во-вторых, алгебраическое представление +позволяет единообразно обрабатывать различные синтаксические формы SQL-запросов, +порождающие одинаковые логические планы. Наконец, разделение на логические и +физические операторы позволяет оптимизатору независимо исследовать порядок +операций и алгоритмы их реализации. \section{Поиск оптимального плана} From bb99b46dad6004e05d0c8aa70f6b6d4624c8f338 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 17:28:27 +0300 Subject: [PATCH 029/120] Fix --- report/thesis.tex | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index 7784cbc..a30b6d4 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -415,16 +415,22 @@ \subsection{Преобразование синтаксического дере \section{Поиск оптимального плана} -Эквивалентность планов обеспечивается свойствами реляционной алгебры. - -\begin{Example} +Эквивалентность планов, исследуемых в процессе поиска оптимального, +обеспечивается применением алгебраических тождеств +(пример~\ref{ex:join_comm},~\ref{ex:join_ass}). Подробнее правила +эквивалентности реляционной алгебры рассматриваются в +разделе~\ref{sec:transformation_rules}. + +\begin{Example}% + \label{ex:join_comm} Коммутативность соединения: \[ \NJoin{R}{S} \equiv \NJoin{S}{R}. \] \end{Example} -\begin{Example} +\begin{Example}% + \label{ex:join_ass} Ассоциативность соединения: \[ \NJoin{(\NJoin{R}{S})}{T} \equiv \NJoin{R}{(\NJoin{S}{T})}. @@ -919,7 +925,7 @@ \subsection{Алгоритм поиска} \label{fig:cascades-tasks} \end{figure} -\section{Правила трансформации и реализации} +\section{Правила трансформации и реализации}\label{sec:transformation_rules} Правило в оптимизаторе Cascades состоит из образца, условия применимости и алгоритма применения. Образец описывает форму логического выражения, к которому From dae5cac79879358552201acd374a00636471305e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 17:33:45 +0300 Subject: [PATCH 030/120] Fix --- report/thesis.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index a30b6d4..45ba780 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -437,9 +437,9 @@ \section{Поиск оптимального плана} \] \end{Example} -Оптимальность запроса оценивается с помощью функции стоимости -\(\mathrm{cost} \colon \mathcal{P}_L \to \mathbb{R}_{\ge 0}\), где -\(\mathcal{P}_{L}\) --- множество эквивалентных физических планов. Это +Оптимальность запроса принято оценивать с помощью функции стоимости +\(\mathrm{cost} \colon \mathcal{P}_L \to \mathbb{R}_{\ge 0}\)~\cite{Selinger1979}, +где \(\mathcal{P}_{L}\) --- множество эквивалентных физических планов. Это отображение оценивает затраты на исполнение плана исходя из конкретных реализаций алгоритмов, а также основываясь на эвристиках и статистике о данных в отношениях. Другими словами, цель оптимизатора состоит в том, чтобы для входного From 2795f12aa3a155e09e8826a4eacd5249031e8bb6 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 17:43:17 +0300 Subject: [PATCH 031/120] Fix --- report/thesis.tex | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index 45ba780..f40837c 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -286,7 +286,7 @@ \subsection{Основные операторы реляционной алге левой и используется для представления коррелированных подзапросов. \end{enumerate} -\subsection{Преобразование синтаксического дерева к реляционной алгебре} +\subsection{Преобразование синтаксического дерева к реляционной алгебре}\label{sec:translation} Полученное после лексического и синтаксического разбора абстрактное синтаксическое дерево преобразуется в выражение реляционной алгебры. Этот @@ -416,26 +416,9 @@ \subsection{Преобразование синтаксического дере \section{Поиск оптимального плана} Эквивалентность планов, исследуемых в процессе поиска оптимального, -обеспечивается применением алгебраических тождеств -(пример~\ref{ex:join_comm},~\ref{ex:join_ass}). Подробнее правила -эквивалентности реляционной алгебры рассматриваются в -разделе~\ref{sec:transformation_rules}. - -\begin{Example}% - \label{ex:join_comm} - Коммутативность соединения: - \[ - \NJoin{R}{S} \equiv \NJoin{S}{R}. - \] -\end{Example} - -\begin{Example}% - \label{ex:join_ass} - Ассоциативность соединения: - \[ - \NJoin{(\NJoin{R}{S})}{T} \equiv \NJoin{R}{(\NJoin{S}{T})}. - \] -\end{Example} +обеспечивается применением алгебраических тождеств, например ассоциативности и +коммутативности соединений. Правила эквивалентности реляционной алгебры подробно +рассматриваются в разделе~\ref{sec:transformation_rules}. Оптимальность запроса принято оценивать с помощью функции стоимости \(\mathrm{cost} \colon \mathcal{P}_L \to \mathbb{R}_{\ge 0}\)~\cite{Selinger1979}, @@ -448,9 +431,14 @@ \section{Поиск оптимального плана} P^* = \arg\min_{P \in \mathcal{P}_L} \mathrm{cost}(P). \] -Одной из подзадач рамках построения оптимального плана является определение -порядка выполнения соединений. Для соединения \(n\) отношений количество -возможных порядков их выполнения выражается как +Одной из подзадач в рамках построения оптимального плана является определение +порядка выполнения соединений. Благодаря правилам эквивалентости, таким как +ассоциативность и коммутативность соединения +(раздел~\ref{sec:transformation_rules}), одно и то же множество соединяемых +отношений допускает большое количество эквивалентных порядков вычисления. +Различные порядки имеют кардинально разные стоимости, ввиду особенностей +алгоритмов, реализующих соединение. Для \(n\) отношений количество таких +порядков выражается как \(O(n! \cdot C_{n-1}) = O(\frac{(2n-2)!}{(n-1)!})\)~\cite{IntroToTheJoinOrderingProblem}, где \(C_k\) --- \(k\)-е число Каталана. Таким образом, пространство поиска растет экспоненциально с увеличением числа соединяемых таблиц. @@ -599,7 +587,8 @@ \section{Поиск оптимального плана} \begin{itemize} \item План \(P_1\) соответствует прямому преобразованию запроса в реляционную - алгебру. Если рассматривать стоимость исполнения такого плана в модели + алгебру, выполненному по алгоритму из раздела~\ref{sec:translation}. + Если рассматривать стоимость исполнения такого плана в модели итераторов, то каждый оператор запрашивает у дочернего следующий кортеж через вызов \texttt{next()}, поэтому \(\sigma\) и~\(\pi\) работают в режиме конвейера и не инициируют обращений к диску. Вся стоимость From 3c571b997c8f035f7bfc7278ba5586431b85b1ff Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 20:42:13 +0300 Subject: [PATCH 032/120] Fix --- report/thesis.tex | 442 ++++++++++++++++++---------------------------- 1 file changed, 176 insertions(+), 266 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index f40837c..20bd546 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -48,6 +48,15 @@ \newcommand{\FOJ}[3]{#1 \mathbin{\ltimes\!\!\!\rtimes}_{#2} #3} \newcommand{\Tr}[1]{[\![ #1 ]\!]} \newcommand{\Apply}[2]{#1 \mathbin{\mathcal{A}} #2} +\newcommand{\TransRule}[3]{% + \ensuremath{% + \begin{array}{c} + #1 \\[1pt] + \xRightarrow{\,#2\,} \\[1pt] + #3 + \end{array}% + }% +} \setlength{\tabcolsep}{3pt} \setcounter{page}{2} @@ -922,289 +931,45 @@ \section{Правила трансформации и реализации}\labe требования: отсутствие внешних ссылок, тип соединения, сохранение семантики \texttt{NULL}, совместимость свойств и другие ограничения. -Формально правило можно представить как отображение: - +Формально правило записывается в виде \[ - r : pattern(e) \land condition(e) \rightarrow substitute(e), + r : \TransRule{pattern(e)}{condition(e)}{substitute(e)}, \] - где \(e\) --- исходное выражение, \(pattern\) --- структурный образец, -\(condition\) --- предикат применимости, а \(substitute\) --- выражение-замена. +\(condition\) --- предикат применимости, \(substitute\) --- выражение-замена. Для правил трансформации результатом применения является новое логическое -выражение в группе, а для правил реализации --- физическое выражение в той же +выражение в группе, а для правил реализации физическое выражение в той же группе. \subsection{Правила трансформации} -Правила трансформации применяются для исследования пространства эквивалентных -планов. Каждое из них задается тремя частями: паттерном, выражением-заменой и -условием активации. - -Правило коммутативности соединения переставляет местами левый и правый входы -соединения. Эти преобразования позволяют оптимизатору рассмотреть оба порядка -вычисления и выбрать тот, при котором стоимость физического плана меньше. - -\[ - \InnerJoin{R}{\theta}{S} - \Rightarrow - \InnerJoin{S}{\theta}{R}. -\] - -Это правило применимо для внутренних и полных внешних соединений. - -Правило ассоциативности соединения изменяет группировку цепочки соединений и -перераспределяет конъюнкты предикатов по ее узлам. Эти преобразования также -позволяют оптимизатору исследовать различные порядки выполнения соединений и -выбрать тот, при котором промежуточные результаты имеют наименьший размер. - -\[ - \InnerJoin{(\InnerJoin{R}{\theta_1}{S})}{\theta_2}{T} - \Rightarrow - \InnerJoin{R}{\theta'_1}{(\InnerJoin{S}{\theta'_2}{T})}, -\] - -где \(\theta'_1\) и \(\theta'_2\) --- результат перераспределения конъюнктов -исходных предикатов \(\theta_1 \land \theta_2\) по тем узлам, в схемы которых -попадают все необходимые им атрибуты. - -Условиями активации ассоциативности соединения являются: -\begin{itemize} - \item оба соединения являются внутренними; - \item конъюнкты предиката \(\theta_1 \land \theta_2\) можно перераспределить - так, что атрибуты каждого конъюнкта в \(\theta'_2\) принадлежат - \(attrs(S) \cup attrs(T)\), конъюнкты, ссылающиеся на \(attrs(R)\), - остаются в \(\theta'_1\). -\end{itemize} - -Правило проталкивания фильтрации через соединение перемещает фильтрующий -предикат над соединением в один из его входов. Эти преобразования позволяют -применить селективный предикат до соединения и тем самым уменьшить -кардинальность входа. - -\[ - \Sel{p}{\InnerJoin{R}{\theta}{S}} - \Rightarrow - \InnerJoin{\Sel{p}{R}}{\theta}{S}, - \quad attrs(p) \subseteq attrs(R), -\] - -\[ - \Sel{p}{\InnerJoin{R}{\theta}{S}} - \Rightarrow - \InnerJoin{R}{\theta}{\Sel{p}{S}}, - \quad attrs(p) \subseteq attrs(S). -\] - -Условиями активации проталкивания фильтрации через соединение являются: -\begin{itemize} - \item атрибуты предиката \(p\) принадлежат только одному из входов соединения; - \item соединение является внутренним, либо проталкивание выполняется в - сохраняющий вход внешнего соединения. -\end{itemize} - -Правило переноса фильтрации в предикат соединения объединяет фильтр над -соединением и предикат соединения в одно условие. Эти преобразования раскрывают -дополнительные равенства внутри предиката соединения, по которым физические -правила реализации могут построить эффективный алгоритм соединения, например -хеш-соединение или соединение слиянием. - -\[ - \Sel{p}{\InnerJoin{R}{\theta}{S}} - \Rightarrow - \InnerJoin{R}{\theta \land p}{S}. -\] - -Частный случай для декартова произведения превращает его в полноценное -соединение с предикатом: - -\[ - \Sel{p}{\CProd{R}{S}} - \Rightarrow - \InnerJoin{R}{p}{S}. -\] - -Условиями активации переноса фильтрации в предикат соединения являются: -\begin{itemize} - \item соединение является внутренним; - \item атрибуты предиката \(p\) принадлежат \(attrs(R) \cup attrs(S)\). -\end{itemize} - -Правило поднятия фильтрации над соединением переносит фильтр из одного из входов -соединения на уровень над самим соединением. Эти преобразования позволяют -объединить локальный фильтр с другими предикатами, расположенными выше по плану, -или открывают другие возможности применения правил. - -\[ - \InnerJoin{\Sel{p}{R}}{\theta}{S} - \Rightarrow - \Sel{p}{\InnerJoin{R}{\theta}{S}}, - \quad attrs(p) \subseteq attrs(R). -\] - -Условиями активации поднятия фильтрации над соединением являются: -\begin{itemize} - \item атрибуты предиката \(p\) принадлежат только той ветви, из которой он - поднимается; - \item соединение является внутренним, либо подъем выполняется с сохраняющей - стороны внешнего соединения. -\end{itemize} - -Правило разбиения выборки на конъюнкты заменяет фильтр с конъюнктивным -предикатом на цепочку фильтров с отдельными подвыражениями. Эти преобразования -дают оптимизатору большую гранулярность для последующих трансформаций: каждый -конъюнкт может быть независимо протолкнут в нужную ветвь плана, переписан или -удален. - -\[ - \Sel{p_1 \land p_2 \land \ldots \land p_n}{R} - \Rightarrow - \Sel{p_1}{\Sel{p_2}{\ldots\Sel{p_n}{R}\ldots}}. -\] - -Правило проталкивания проекции добавляет на каждый из входов соединения -проекцию, удаляющую атрибуты, не используемые ни предикатом соединения, ни -операторами выше по плану. Эти преобразования уменьшают ширину промежуточных -кортежей и сокращают объем данных, передаваемых между операторами. - -\[ - \Projection{L}{\InnerJoin{R}{\theta}{S}} - \Rightarrow - \Projection{L}{ - \InnerJoin{\Projection{L_R \cup J_R}{R}}{\theta}{\Projection{L_S \cup J_S}{S}} - }, -\] - -где \(L_R = L \cap attrs(R)\), \(L_S = L \cap attrs(S)\), -\(J_R = attrs(\theta) \cap attrs(R)\), \(J_S = attrs(\theta) \cap attrs(S)\). - -Условием активации проталкивания проекции является нетривиальность хотя бы -одной из внутренних проекций: \(L_R \cup J_R \subsetneq attrs(R)\) или -\(L_S \cup J_S \subsetneq attrs(S)\). Иначе правило не уменьшает ширину -кортежей и его применение бесполезно. - -Правило преобразования внешнего соединения во внутреннее заменяет левое и -правое, а также полное внешнее соединение на внутреннее соединение, если -расположенный над ними фильтр гарантированно отбрасывает все строки с -\texttt{NULL}-дополнением. Эти преобразования открывают для подплана с внешним -соединением правила, ограниченные внутренним соединением: коммутативность, -ассоциативность, проталкивание фильтрации и другие. - -\[ - \Sel{p}{\LOJ{R}{\theta}{S}} - \Rightarrow - \Sel{p}{\InnerJoin{R}{\theta}{S}}, -\] - -\[ - \Sel{p}{\ROJ{R}{\theta}{S}} - \Rightarrow - \Sel{p}{\InnerJoin{R}{\theta}{S}}, -\] - -\[ - \Sel{p}{\FOJ{R}{\theta}{S}} - \Rightarrow - \Sel{p}{\InnerJoin{R}{\theta}{S}}. -\] - -Условиями активации преобразования внешнего соединения во внутреннее являются: -\begin{itemize} - \item для левого внешнего соединения предикат \(p\) является - null-отбрасывающим относительно атрибутов \(S\); - \item для правого внешнего соединения предикат \(p\) является - null-отбрасывающим относительно атрибутов \(R\); - \item для полного внешнего соединения предикат \(p\) является - null-отбрасывающим относительно атрибутов как \(R\), так и \(S\). -\end{itemize} +Правила трансформации задают эквивалентные преобразования логических выражений и +тем самым определяют пространство планов, исследуемое оптимизатором. Наиболее +важные из них представлены в таблице~\ref{tbl:transformation_rules}. +\begin{Definition} Null-отбрасывающим называется предикат, который при замене всех атрибутов соответствующей стороны на \texttt{NULL} принимает значение, отличное от \texttt{TRUE}. +\end{Definition} -Правило проталкивания агрегации ниже соединения добавляет частичную группировку -на одном из входов соединения, оставляя финальную комбинацию на верхнем уровне. -Эти преобразования уменьшают число строк, участвующих в соединении, и снимают -часть нагрузки с финальной агрегации. - -\[ - \Agg{G}{F}{\InnerJoin{R}{R.k = S.k}{S}} - \Rightarrow - \Agg{G}{F'}{ - \InnerJoin{\AggP{G_R \cup \{R.k\}}{F_R}{R}}{R.k = S.k}{S} - }, -\] - -где \(G\) --- ключи группировки, \(F\) --- набор агрегатных функций, -\(G_R = G \cap attrs(R)\), \(F_R\) --- частичные агрегаты по атрибутам \(R\), а -\(F'\) --- финальные комбинаторы. Например, \SUM{} раскладывается в сумму -частичных сумм, а \AVG{} --- в пару \SUM{} и \COUNT{}. +\begin{Definition} +Конъюнкты \(\theta_1 \land \theta_2\) называются перераспределяемыми, если их +можно разбить на две группы \(\theta'_1\) и \(\theta'_2\) такие, что атрибуты +\(\theta'_2\) принадлежат \(attrs(S) \cup attrs(T)\), а конъюнкты с атрибутами +из \(attrs(R)\) остаются в \(\theta'_1\). +\end{Definition} -Условиями активации проталкивания агрегации ниже соединения являются: -\begin{itemize} - \item каждая агрегатная функция в \(F\) представима композицией частичной - агрегации и финального комбинатора; - \item соединение является внутренним эквивалентным соединением по - \(R.k = S.k\); - \item частичная агрегация группирует по объединению ключей группировки стороны - \(R\) и ключа соединения \(R.k\). -\end{itemize} - -Правило перестановки агрегации и соединения полностью выполняет агрегацию до -соединения. От проталкивания агрегации ниже соединения этот случай отличается -тем, что финальная комбинация после соединения не требуется. Это возможно -тогда, когда соединение не меняет результат агрегации: оно не дублирует и не -теряет строки агрегируемой стороны. - -\[ - \Agg{G}{F_R}{\InnerJoin{R}{R.k = S.k}{S}} - \Rightarrow - \InnerJoin{\Agg{G}{F_R}{R}}{R.k = S.k}{S}. -\] - -Условиями активации перестановки агрегации и соединения являются: -\begin{itemize} - \item соединение является внутренним с предикатом равенства \(R.k = S.k\); - \item агрегатные функции \(F_R\) вычисляются только по атрибутам \(R\), что - позволяет выполнить агрегацию до того, как станут доступны атрибуты - \(S\); - \item каждой строке \(R\) при соединении соответствует ровно одна строка - \(S\) с равным значением ключа, то есть \(S.k\) уникален и каждое - значение \(R.k\) присутствует в \(S\). При нарушении уникальности - соединение размножит строки \(R\), при нарушении ссылочной целостности - часть строк \(R\) исчезнет; - \item ключи группировки \(G\) содержат \(R.k\), то есть \(R.k \in G\). - Без этого после агрегации значения \(R.k\) теряются и предикат - соединения нельзя вычислить. -\end{itemize} +\begin{Definition} +Функция агрегации называется разделяемой, если она представима композицией +частичного агрегата и финального комбинатора. Например, \SUM{} раскладывается в +сумму частичных сумм, \AVG{} --- в пару \SUM{} и \COUNT{}. +\end{Definition} \subsection{Правила реализации} -Правила реализации переводят логические операторы в физические. Например, для -логического оператора чтения таблицы могут быть применены правила: - -\begin{itemize} - \item \LogicalGet{} \(\Rightarrow\) \SeqScan; - \item \LogicalGet{} \(\Rightarrow\) \IndexScan, если имеется - индекс, совместимый с предикатом или требуемым порядком. -\end{itemize} - -Для логического соединения могут быть созданы физические операторы -\NestedLoopJoin, \HashJoin{} и \MergeJoin. Хеш-соединение -обычно требует предиката равенства по ключам, поскольку именно по ним строится -хеш-таблица. Сортировочное соединение требует, чтобы оба входа были -отсортированы по ключам соединения, либо чтобы оптимизатор мог добавить -сортировки как обеспечивающие операторы. Вложенные циклы применимы всегда, но -стоимость этого оператора может быть высокой без доступа к внутреннему отношению -с использованием индекса. - -Правила реализации агрегации выбирают между хеш-агрегацией и потоковой -агрегацией. Хеш-агрегация не требует предварительного порядка, но потребляет -память пропорционально числу групп. Потоковая агрегация эффективна при уже -отсортированном входе, поскольку каждая группа обрабатывается последовательно. -Если требуемый порядок нужен также родительскому оператору, потоковая агрегация -может оказаться выгодной даже учитывая затраты на сортировку. - -% {\color{red} TODO: псевдокод алгоритмов} +Правила реализации переводят логические операторы в физические. Используемые в +настоящей работе правила собраны в таблице~\ref{tbl:implementation_rules}. \subsection{Обеспечивающие операторы} @@ -1516,4 +1281,149 @@ \subsection{Область применения} \end{algorithmic} \end{algorithm} +\newpage{} + +\begin{scriptsize} +\begin{longtable}{|c|p{2.6cm}|c|p{4.2cm}|} + \caption{Правила трансформации.}\label{tbl:transformation_rules}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endfirsthead + \multicolumn{4}{l}{\small Продолжение таблицы~\ref{tbl:transformation_rules}}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endhead + \hline + \endfoot + \hline + \endlastfoot + + 1 & Коммутативность соединения & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{внутреннее или полное внешнее соединение}}{\InnerJoin{S}{\theta}{R}}\) & + Перестановка входов соединения. Позволяет рассмотреть оба порядка вычисления. \\ + \hline + + 2 & Ассоциативность соединения & + \(\TransRule{\InnerJoin{(\InnerJoin{R}{\theta_1}{S})}{\theta_2}{T}}{\substack{\text{оба соединения внутренние;}\\ \theta_1 \land \theta_2 \text{ перераспределяемы}}}{\InnerJoin{R}{\theta'_1}{(\InnerJoin{S}{\theta'_2}{T})}}\) & + Изменяет группировку цепочки соединений. Открывает альтернативные порядки и уменьшает размер промежуточных результатов. \\ + \hline + + 3 & Проталкивание фильтра в левый вход & + \(\TransRule{\Sel{p}{\InnerJoin{R}{\theta}{S}}}{\substack{attrs(p) \subseteq attrs(R); \\ \text{внутреннее соединение или сохраняющий вход}}}{\InnerJoin{\Sel{p}{R}}{\theta}{S}}\) & + Применяет селективный предикат до соединения, уменьшая кардинальность входа. \\ + \hline + + 4 & Проталкивание фильтра в правый вход & + \(\TransRule{\Sel{p}{\InnerJoin{R}{\theta}{S}}}{\substack{attrs(p) \subseteq attrs(S); \\ \text{внутреннее соединение или сохраняющий вход}}}{\InnerJoin{R}{\theta}{\Sel{p}{S}}}\) & + Симметричный случай для правого входа. \\ + \hline + + 5 & Перенос фильтра в предикат соединения & + \(\TransRule{\Sel{p}{\InnerJoin{R}{\theta}{S}}}{\substack{\text{соединение внутреннее;} \\ attrs(p) \subseteq attrs(R) \cup attrs(S)}}{\InnerJoin{R}{\theta \land p}{S}}\) & + Объединяет фильтр и предикат соединения. Может позволить применить хеш-соединение или соединение слиянием. \\ + \hline + + 6 & Превращение декартова произведения в соединение & + \(\TransRule{\Sel{p}{\CProd{R}{S}}}{\top}{\InnerJoin{R}{p}{S}}\) & + Частный случай правила~5. \\ + \hline + + 7 & Поднятие фильтра над соединением & + \(\TransRule{\InnerJoin{\Sel{p}{R}}{\theta}{S}}{\substack{attrs(p) \subseteq attrs(R); \\ \text{внутреннее соединение или сохраняющая сторона}}}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Переносит фильтр выше соединения для объединения с предикатами родительских операторов. \\ + \hline + + 8 & Разбиение фильтра на конъюнкты & + \(\TransRule{\Sel{p_1 \land \ldots \land p_n}{R}}{\top}{\Sel{p_1}{\ldots \Sel{p_n}{R} \ldots}}\) & + Позволяет обрабатывать каждый конъюнкт независимо. \\ + \hline + + 9 & Проталкивание проекции через соединение & + \(\TransRule{\Projection{L}{\InnerJoin{R}{\theta}{S}}}{\substack{L_R \cup J_R \subsetneq attrs(R) \\ \text{или}\ L_S \cup J_S \subsetneq attrs(S)}}{\Projection{L}{\InnerJoin{\Projection{L_R \cup J_R}{R}}{\theta}{\Projection{L_S \cup J_S}{S}}}}\) & + Удаляет неиспользуемые атрибуты до соединения, сокращая ширину кортежей. \\ + \hline + + 10 & Левое внешнее соединение во внутреннее & + \(\TransRule{\Sel{p}{\LOJ{R}{\theta}{S}}}{p\ \text{null-отбрасывающий по}\ attrs(S)}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Открывает для подплана правила, ограниченные внутренним соединением. \\ + \hline + + 11 & Правое внешнее соединение во внутреннее & + \(\TransRule{\Sel{p}{\ROJ{R}{\theta}{S}}}{p\ \text{null-отбрасывающий по}\ attrs(R)}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Симметричный случай. \\ + \hline + + 12 & Полное внешнее соединение во внутреннее & + \(\TransRule{\Sel{p}{\FOJ{R}{\theta}{S}}}{p\ \text{null-отбрасывающий по}\ attrs(R)\ \text{и}\ attrs(S)}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Требует null-отбрасывания с обеих сторон. \\ + \hline + + 13 & Проталкивание агрегации ниже соединения & + \(\TransRule{\Agg{G}{F}{\InnerJoin{R}{R.k = S.k}{S}}}{\substack{F\text{ разделяема;}\\ \text{внутреннее соединение по равенству}}}{\Agg{G}{F'}{\InnerJoin{\AggP{G_R \cup \{R.k\}}{F_R}{R}}{R.k=S.k}{S}}}\) & + Снижает кардинальность входа частичной группировкой. \(G_R = G \cap attrs(R)\); \(F_R\) --- частичные агрегаты по атрибутам \(R\); \(F'\) --- финальные комбинаторы. \\ + \hline + + 14 & Перестановка агрегации и соединения & + \(\TransRule{\Agg{G}{F_R}{\InnerJoin{R}{R.k=S.k}{S}}}{\substack{\text{внутреннее соединение по равенству;}\\ F_R\subseteq attrs(R);\ R.k \in G; \\ S.k\text{ уникален и полон}}}{\InnerJoin{\Agg{G}{F_R}{R}}{R.k=S.k}{S}}\) & + Полностью переносит агрегацию до соединения. \(S.k\) уникален: соединение не дублирует строки \(R\). \(S.k\) полон относительно \(R.k\): соединение не теряет строки \(R\). \\ + \hline +\end{longtable} + +\newpage{} + +\begin{longtable}{|c|p{2.8cm}|c|p{4.5cm}|} + \caption{Правила реализации.}\label{tbl:implementation_rules}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endfirsthead + \multicolumn{4}{l}{\small Продолжение таблицы~\ref{tbl:implementation_rules}}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endhead + \hline + \endfoot + \hline + \endlastfoot + + 1 & Последовательное сканирование & + \(\TransRule{\LogicalGet}{\top}{\SeqScan}\) & + Применимо к любому отношению. \\ + \hline + + 2 & Сканирование по индексу & + \(\TransRule{\LogicalGet}{\text{есть совместимый индекс}}{\IndexScan}\) & + Индекс должен быть совместим с предикатом или требуемым порядком. \\ + \hline + + 3 & Соединение вложенными циклами & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\top}{\NestedLoopJoin}\) & + Применимо при любом виде предиката. Стоимость высока без доступа по индексу к внутреннему отношению. \\ + \hline + + 4 & Хеш-соединение & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\theta\ \text{содержит равенство по ключам}}{\HashJoin}\) & + Хеш-таблица строится по ключам равенства. \\ + \hline + + 5 & Соединение слиянием & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{входы упорядочены по ключам соединения}}{\MergeJoin}\) & + Требуемый порядок может быть обеспечен явным оператором \Sort{}. \\ + \hline + + 6 & Хеш-агрегация & + \(\TransRule{\Agg{G}{F}{R}}{\top}{\sqlkw{HashAggregate}}\) & + Не требует упорядоченности входа. Потребляет память пропорционально числу групп. \\ + \hline + + 7 & Потоковая агрегация & + \(\TransRule{\Agg{G}{F}{R}}{\text{вход упорядочен по } G}{\sqlkw{StreamAggregate}}\) & + Эффективна при уже отсортированном входе. Может быть выгодна, если требуемый порядок нужен и родительскому оператору. \\ + \hline +\end{longtable} +\end{scriptsize} + \end{document} From 38c53e90a0744a37b28445439ccc138f39672536 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 20:44:26 +0300 Subject: [PATCH 033/120] Add todos --- report/thesis.tex | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/report/thesis.tex b/report/thesis.tex index 20bd546..d02ee14 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -986,6 +986,9 @@ \subsection{Обеспечивающие операторы} \section{Метод ветвей и границ} +{\color{red} FIXME: Тут, конечно, маловато конкретики - хотелось бы видеть, + какую стоимостную модель вы выбрали для своей системы} + Метод ветвей и границ используется для сокращения пространства поиска и, как следствие, неасимптотического улучшения скорости работы алгоритма. В контексте Cascades ветвями являются альтернативные выражения и комбинации физических @@ -1082,6 +1085,13 @@ \subsection{Оценка стоимости} \section{Дифференциальный анализ физических планов} +{\color{red} FIXME: Тут крайне мало конкретики: пока что раздел выглядит как "за + всё хорошее и против всего плохого". Непонятно, какие конкретно системы + считаются эталонами, как конкретно вы собираетесь конвертировать извлеченный + физический план в свою модель, и не получится ли после этого преобразования + совсем другая производительность, а также почему эквивалентность планов + достаточно проверить на единственном наборе таблиц.} + Множество правил трансформации и реализации, используемых в оптимизаторах запросов, изучено довольно хорошо и описано в академической литературе. Вместе с тем условия активации правил From 84bea1fd399c50da71f0d6e0a5669170f3a3f43d Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 21:08:53 +0300 Subject: [PATCH 034/120] Refactor --- benchmarks/main.cpp | 1 + .../stewkk/sql/logic/executor/executor.hpp | 376 +----------------- .../sql/logic/optimizer/cardinality.hpp | 25 ++ .../stewkk/sql/logic/optimizer/optimizer.hpp | 54 ++- include/stewkk/sql/utils/log.hpp | 21 + src/stewkk/sql/CMakeLists.txt | 1 + src/stewkk/sql/logic/executor/executor.cpp | 335 ++++++++++++++++ .../sql/logic/optimizer/cardinality.cpp | 42 ++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 264 ++++++++++++ .../sql/logic/optimizer/optimizer_test.cpp | 328 +-------------- 10 files changed, 745 insertions(+), 702 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/cardinality.hpp create mode 100644 include/stewkk/sql/utils/log.hpp create mode 100644 src/stewkk/sql/logic/optimizer/cardinality.cpp diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 0e2d2bd..3b60b8d 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index af2c88a..9added1 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -1,18 +1,12 @@ #pragma once -#include -#include -#include -#include #include #include +#include -#include -#include #include #include -#include #include #include #include @@ -20,8 +14,6 @@ #include #include -// FIXME: add explicit instantiations and move implementations to .cpp - namespace stewkk::sql { using ExecExpression = std::function; @@ -80,32 +72,6 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& available_attrs); AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const PhysicalProjection& proj); -template - requires std::invocable - && std::same_as, Ret> -Value ApplyIntegersOperator(Value lhs, Value rhs) { - if (lhs.is_null || rhs.is_null) { - return Value{true}; - } - return Value{false, Op{}(lhs.value.int_value, rhs.value.int_value)}; -} - -template - requires std::invocable - && std::same_as, bool> -Value ApplyBooleanOperator(Value lhs, Value rhs) { - if (lhs.is_null || rhs.is_null) { - return Value{true}; - } - return Value{false, Op{}(lhs.value.bool_value, rhs.value.bool_value)}; -} - -struct IntPow { - int64_t operator()(int64_t base, int64_t exp) const { - return static_cast(std::pow(base, exp)); - } -}; - Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, const Expression& expr); Tuple ApplyProjection(const Tuple& source, const AttributesInfo& source_attrs, const std::vector& expressions); bool ApplyFilter(const Tuple& source, const AttributesInfo& source_attrs, const ExecExpression& filter); @@ -115,344 +81,4 @@ boost::asio::awaitable ConcatAttrs(AttributesInfoChannel& lhs_at boost::asio::awaitable MaterializeChannel(TuplesChannel& tuples_chan); Tuple ConcatTuples(const Tuple& lhs, const Tuple& rhs); -template -Executor::Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor) - : sequential_scan_(std::move(seq_scan)), expression_executor_(executor) {} - -template -boost::asio::awaitable> Executor::Execute(const PhysicalPlanNode& op) { - auto [attr_chan, tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(op, attr_chan, tuples_chan); - - auto attrs = co_await attr_chan.async_receive(boost::asio::use_awaitable); -#ifdef DEBUG - std::clog << "Received attrs in root\n"; -#endif - - Tuples result; - for (;;) { - auto buf = co_await ReceiveTuples(tuples_chan); - if (buf.empty()) { - break; - } -#ifdef DEBUG - std::clog << std::format("Received {} tuples in root\n", buf.size()); -#endif - std::move(buf.begin(), buf.end(), std::back_inserter(result)); - } - -#ifdef DEBUG - std::clog << std::format("Total {} tuples in root\n", result.size()); -#endif - co_return Ok(Relation{std::move(attrs), std::move(result)}); -} - -template -boost::asio::awaitable Executor::Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { - struct ExecuteVisitor{ - boost::asio::awaitable operator()(const SeqScan& seq_scan) { - co_await executor.sequential_scan_(seq_scan.table, attr_chan, tuples_chan); - co_return; - } - boost::asio::awaitable operator()(const PhysicalProjection& projection) { - // NOTE: We are using multiset relational algebra projection (i.e. not - // eleminating duplicate tuples) - co_await executor.ExecuteProjection(projection, attr_chan, tuples_chan); - co_return; - } - boost::asio::awaitable operator()(const PhysicalFilter& filter) { - co_await executor.ExecuteFilter(filter, attr_chan, tuples_chan); - co_return; - } - boost::asio::awaitable operator()(const NestedLoopJoin& join) { - co_await executor.ExecuteJoin(join, attr_chan, tuples_chan); - co_return; - } - boost::asio::awaitable operator()(const NestedLoopCrossJoin& cross_join) { - co_await executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); - co_return; - } - - AttributesInfoChannel& attr_chan; - TuplesChannel& tuples_chan; - Executor& executor; - }; - co_await std::visit(ExecuteVisitor{attr_chan, tuples_chan, *this}, op); - co_return; -} - -template -boost::asio::awaitable Executor::ExecuteProjection(const PhysicalProjection& proj, - AttributesInfoChannel& out_attr_chan, - TuplesChannel& out_tuples_chan) { -#ifdef DEBUG - std::clog << "Executing projection\n"; -#endif - auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*proj.source, in_attrs_chan, in_tuples_chan); - - auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); - auto attrs_after = GetAttributesAfterProjection(attrs, proj); - co_await out_attr_chan.async_send(boost::system::error_code{}, attrs_after, - boost::asio::use_awaitable); - out_attr_chan.close(); - - std::vector executors; - executors.reserve(proj.expressions.size()); - for (const auto& expr : proj.expressions) { - executors.push_back(co_await expression_executor_.GetExpressionExecutor(expr, attrs)); - } - - for (;;) { - auto buf = co_await ReceiveTuples(in_tuples_chan); - if (buf.empty()) { - break; - } -#ifdef DEBUG - std::clog << std::format("Received {} tuples in projection\n", buf.size()); -#endif - buf = buf | std::views::transform([&](const auto& tuple) { - return ApplyProjection(tuple, attrs, executors); - }) | std::ranges::to(); - co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(buf), - boost::asio::use_awaitable); - } - out_tuples_chan.close(); -} - -template -boost::asio::awaitable Executor::ExecuteFilter(const PhysicalFilter& filter, - AttributesInfoChannel& out_attr_chan, - TuplesChannel& out_tuples_chan) { -#ifdef DEBUG - std::clog << "Executing filter\n"; -#endif - auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*filter.source, in_attrs_chan, in_tuples_chan); - - auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); -#ifdef DEBUG - std::clog << "Filter received attrs\n"; -#endif - - if (GetExpressionType(filter.predicate, attrs) != Type::kBool) { - throw std::logic_error{"filter expr should return bool"}; - } - -#ifdef DEBUG - std::clog << "Filter sending attrs\n"; -#endif - co_await out_attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); - out_attr_chan.close(); -#ifdef DEBUG - std::clog << "Filter sent attrs\n"; -#endif - - auto filter_executor = co_await expression_executor_.GetExpressionExecutor(filter.predicate, attrs); - - Tuples output_buf; - output_buf.reserve(kBufSize); - for (;;) { - auto input_buf = co_await ReceiveTuples(in_tuples_chan); - if (input_buf.empty()) { - break; - } -#ifdef DEBUG - std::clog << std::format("Received {} tuples in filter\n", input_buf.size()); -#endif - auto filtered_view = input_buf | std::views::filter([&](const auto& tuple) { - return ApplyFilter(tuple, attrs, filter_executor); - }) | std::views::as_rvalue; - for (auto&& tuple : filtered_view) { - output_buf.push_back(std::move(tuple)); - if (output_buf.size() == kBufSize) { -#ifdef DEBUG - std::clog << std::format("Sending {} tuples in filter\n", output_buf.size()); -#endif - co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(output_buf), - boost::asio::use_awaitable); - output_buf.clear(); - } - } - } -#ifdef DEBUG - std::clog << std::format("{} tuples left in output_buf\n", output_buf.size()); -#endif - if (!output_buf.empty()) { -#ifdef DEBUG - std::clog << std::format("Sending {} tuples in filter\n", output_buf.size()); -#endif - co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(output_buf), - boost::asio::use_awaitable); - } - out_tuples_chan.close(); -} - -template -boost::asio::awaitable Executor::ExecuteCrossJoin(const NestedLoopCrossJoin& cross_join, - AttributesInfoChannel& attr_chan, - TuplesChannel& tuples_chan) { - std::clog << "Executing cross join\n"; - auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*cross_join.lhs, lhs_attrs_chan, lhs_tuples_chan); - auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*cross_join.rhs, rhs_attrs_chan, rhs_tuples_chan); - - auto attrs = co_await ConcatAttrs(lhs_attrs_chan, rhs_attrs_chan); - std::clog << "Cross join received attrs\n"; - - std::clog << "Cross join sending attrs\n"; - co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); - attr_chan.close(); - std::clog << "Cross join sent attrs\n"; - - auto reader = co_await MaterializeChannel(lhs_tuples_chan); - std::clog << std::format("Materialized tuples in cross join\n"); - - for (;;) { - auto buf_rhs = co_await ReceiveTuples(rhs_tuples_chan); - if (buf_rhs.empty()) { - break; - } - std::clog << std::format("Received {} tuples in cross join as rhs\n", buf_rhs.size()); - - reader.Rewind(); - for (;;) { - auto buf_lhs = reader.Read(); - if (buf_lhs.empty()) { - break; - } - std::clog << std::format("Read {} tuples back from materialized form\n", buf_lhs.size()); - for (const auto& tuple_lhs : buf_lhs) { - Tuples buf_joined; - buf_joined.reserve(kBufSize); - // NOTE: not optimal if rhs is a small table (<< kBufSize tuples) - for (const auto& tuple_rhs : buf_rhs) { - auto joined_tuple = ConcatTuples(tuple_lhs, tuple_rhs); - buf_joined.push_back(std::move(joined_tuple)); - } -#ifdef DEBUG - std::clog << std::format("Sending {} tuples from cross join\n", buf_joined.size()); -#endif - co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_joined), - boost::asio::use_awaitable); - } - } - } - tuples_chan.close(); -} - -template -boost::asio::awaitable Executor::ExecuteJoin(const NestedLoopJoin& join, - AttributesInfoChannel& attr_chan, - TuplesChannel& tuples_chan) { -#ifdef DEBUG - std::clog << "Executing join\n"; -#endif - if (join.type == JoinType::kFull) { - throw std::logic_error{"Full joins are not supported by executor"}; - } - if (join.type == JoinType::kLeft) { - std::swap(*join.lhs, *join.rhs); - } - auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*join.lhs, lhs_attrs_chan, lhs_tuples_chan); - auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*join.rhs, rhs_attrs_chan, rhs_tuples_chan); - - auto attrs = co_await ConcatAttrs(lhs_attrs_chan, rhs_attrs_chan); -#ifdef DEBUG - std::clog << "Join received attrs\n"; -#endif - -#ifdef DEBUG - std::clog << "Join sending attrs\n"; -#endif - co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); - attr_chan.close(); -#ifdef DEBUG - std::clog << "Join sent attrs\n"; -#endif - - auto qual_executor = co_await expression_executor_.GetExpressionExecutor(join.qual, attrs); - - auto reader = co_await MaterializeChannel(lhs_tuples_chan); - for (;;) { - auto buf_rhs = co_await ReceiveTuples(rhs_tuples_chan); - if (buf_rhs.empty()) { - break; - } -#ifdef DEBUG - std::clog << std::format("Received {} tuples in join as rhs\n", buf_rhs.size()); -#endif - - std::vector used(buf_rhs.size(), false); - reader.Rewind(); - for (;;) { - auto buf_lhs = reader.Read(); - if (buf_lhs.empty()) { - break; - } -#ifdef DEBUG - std::clog << std::format("Read {} tuples back from materialized form\n", buf_lhs.size()); -#endif - - for (const auto& tuple_lhs : buf_lhs) { - Tuples buf_res; - buf_res.reserve(kBufSize); - for (const auto& [rhs_index, tuple_rhs] : buf_rhs | std::views::enumerate) { - auto joined_tuple = ConcatTuples(tuple_lhs, tuple_rhs); - auto qual_expr_res = qual_executor(joined_tuple, attrs); - if (qual_expr_res.value.bool_value) { - buf_res.push_back(std::move(joined_tuple)); - used[rhs_index] = true; - } - } - if (!buf_res.empty()) { -#ifdef DEBUG - std::clog << std::format("Sending {} tuples from join\n", buf_res.size()); -#endif - co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_res), - boost::asio::use_awaitable); - } - } - } - - if (join.type == JoinType::kRight || join.type == JoinType::kLeft) { - Tuples buf_res; - buf_res.reserve(kBufSize); - for (auto [rhs_index, is_used] : used | std::views::enumerate) { - if (is_used) { - continue; - } - - auto rhs_tuple = std::move(buf_rhs[rhs_index]); - - auto lhs_size = attrs.size() - rhs_tuple.size(); - Tuple lhs_tuple(lhs_size, Value{true}); - - auto joined_tuple = ConcatTuples(lhs_tuple, rhs_tuple); - buf_res.push_back(std::move(joined_tuple)); - } - if (!buf_res.empty()) { -#ifdef DEBUG - std::clog << std::format("Sending {} tuples from join\n", buf_res.size()); -#endif - co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_res), - boost::asio::use_awaitable); - } - } - } - tuples_chan.close(); -} - -template -boost::asio::awaitable Executor::SpawnExecutor(const PhysicalPlanNode& op, - AttributesInfoChannel& attr_chan, - TuplesChannel& tuple_chan) { - auto executor = co_await boost::asio::this_coro::executor; - boost::asio::co_spawn(executor, Execute(op, attr_chan, tuple_chan), boost::asio::detached); -} - - } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/cardinality.hpp b/include/stewkk/sql/logic/optimizer/cardinality.hpp new file mode 100644 index 0000000..7be0dc3 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/cardinality.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +class CardinalityEstimates { +public: + CardinalityEstimates(std::unordered_map table_sizes = {}); + + int64_t GetCardinality(utils::NotNull group); + +private: + int64_t GetCardinality(const LogicalOperator& op); + + std::unordered_map table_sizes_; + std::unordered_map cache_; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index f889486..864e5d0 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -1,8 +1,60 @@ #pragma once -#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include namespace stewkk::sql { +std::vector> GetChildren(utils::NotNull expr); +std::vector> GetChildren(utils::NotNull expr); + +template +class Optimizer { +public: + Optimizer(const Operator& expr, Rules&& rules, + CardinalityEstimates cardinality = {}); + + PhysicalPlanNode Optimize(); + +private: + using Limit = std::optional; + + bool IsExplored(utils::NotNull group) const; + void SetExplored(utils::NotNull group); + + void OptimizeInputs(utils::NotNull expr, Limit limit, size_t child_index = 0); + + void ApplyRule(TransformationRuleId rule, utils::NotNull expr, Limit limit); + void ApplyRule(ImplementationRuleId rule, utils::NotNull expr, Limit limit); + + void OptimizeExpression(utils::NotNull expr, Limit limit); + void ExploreExpression(utils::NotNull expr, Limit limit); + void ExploreGroup(utils::NotNull group, Limit limit); + void OptimizeGroup(utils::NotNull group, Limit limit = std::nullopt); + + PhysicalPlanNode BuildOptimalPlan(Group* group); + + Memo memo_; + RulesApplier rules_applier_; + std::stack> tasks_; + std::unordered_set explored_groups_; + utils::NotNull root_; + CardinalityEstimates cardinality_; + std::unordered_map local_cost_; + std::unordered_map accum_child_cost_; + std::unordered_map best_cost_; + std::unordered_map best_plan_; +}; } // namespace stewkk::sql diff --git a/include/stewkk/sql/utils/log.hpp b/include/stewkk/sql/utils/log.hpp new file mode 100644 index 0000000..a0f3e1c --- /dev/null +++ b/include/stewkk/sql/utils/log.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace stewkk::sql { + +inline constexpr bool kDebug = +#ifdef DEBUG + true; +#else + false; +#endif + +template +void Log(std::format_string fmt, Args&&... args) { + if constexpr (kDebug) { + std::println(stderr, fmt, std::forward(args)...); + } +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 102883f..b06974f 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -28,6 +28,7 @@ add_library(libsql logic/executor/materialization.cpp logic/executor/llvm.cpp logic/optimizer/optimizer.cpp + logic/optimizer/cardinality.cpp logic/optimizer/group.cpp logic/optimizer/memo.cpp logic/optimizer/rules.cpp diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 1d304e2..fc32211 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -1,7 +1,45 @@ #include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + namespace stewkk::sql { +template + requires std::invocable + && std::same_as, Ret> +Value ApplyIntegersOperator(Value lhs, Value rhs) { + if (lhs.is_null || rhs.is_null) { + return Value{true}; + } + return Value{false, Op{}(lhs.value.int_value, rhs.value.int_value)}; +} + +template + requires std::invocable + && std::same_as, bool> +Value ApplyBooleanOperator(Value lhs, Value rhs) { + if (lhs.is_null || rhs.is_null) { + return Value{true}; + } + return Value{false, Op{}(lhs.value.bool_value, rhs.value.bool_value)}; +} + +struct IntPow { + int64_t operator()(int64_t base, int64_t exp) const { + return static_cast(std::pow(base, exp)); + } +}; + Type GetExpressionType(const Expression& expr, const AttributesInfo& available_attrs) { struct ExpressionTypeVisitor { Type operator()(const BinaryExpression& binop) const { @@ -345,4 +383,301 @@ boost::asio::awaitable CachedJitCompiledExpressionExecutor::GetE CachedJitCompiledExpressionExecutor::CachedJitCompiledExpressionExecutor(boost::asio::any_io_executor executor) : compiler_(executor) {} +template +Executor::Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor) + : sequential_scan_(std::move(seq_scan)), expression_executor_(executor) {} + +template +boost::asio::awaitable> Executor::Execute(const PhysicalPlanNode& op) { + auto [attr_chan, tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(op, attr_chan, tuples_chan); + + auto attrs = co_await attr_chan.async_receive(boost::asio::use_awaitable); + Log("Received attrs in root"); + + Tuples result; + for (;;) { + auto buf = co_await ReceiveTuples(tuples_chan); + if (buf.empty()) { + break; + } + Log("Received {} tuples in root", buf.size()); + std::move(buf.begin(), buf.end(), std::back_inserter(result)); + } + + Log("Total {} tuples in root", result.size()); + co_return Ok(Relation{std::move(attrs), std::move(result)}); +} + +template +boost::asio::awaitable Executor::Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + struct ExecuteVisitor{ + boost::asio::awaitable operator()(const SeqScan& seq_scan) { + co_await executor.sequential_scan_(seq_scan.table, attr_chan, tuples_chan); + co_return; + } + boost::asio::awaitable operator()(const PhysicalProjection& projection) { + // NOTE: We are using multiset relational algebra projection (i.e. not + // eleminating duplicate tuples) + co_await executor.ExecuteProjection(projection, attr_chan, tuples_chan); + co_return; + } + boost::asio::awaitable operator()(const PhysicalFilter& filter) { + co_await executor.ExecuteFilter(filter, attr_chan, tuples_chan); + co_return; + } + boost::asio::awaitable operator()(const NestedLoopJoin& join) { + co_await executor.ExecuteJoin(join, attr_chan, tuples_chan); + co_return; + } + boost::asio::awaitable operator()(const NestedLoopCrossJoin& cross_join) { + co_await executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); + co_return; + } + + AttributesInfoChannel& attr_chan; + TuplesChannel& tuples_chan; + Executor& executor; + }; + co_await std::visit(ExecuteVisitor{attr_chan, tuples_chan, *this}, op); + co_return; +} + +template +boost::asio::awaitable Executor::ExecuteProjection(const PhysicalProjection& proj, + AttributesInfoChannel& out_attr_chan, + TuplesChannel& out_tuples_chan) { + Log("Executing projection"); + auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(*proj.source, in_attrs_chan, in_tuples_chan); + + auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); + auto attrs_after = GetAttributesAfterProjection(attrs, proj); + co_await out_attr_chan.async_send(boost::system::error_code{}, attrs_after, + boost::asio::use_awaitable); + out_attr_chan.close(); + + std::vector executors; + executors.reserve(proj.expressions.size()); + for (const auto& expr : proj.expressions) { + executors.push_back(co_await expression_executor_.GetExpressionExecutor(expr, attrs)); + } + + for (;;) { + auto buf = co_await ReceiveTuples(in_tuples_chan); + if (buf.empty()) { + break; + } + Log("Received {} tuples in projection", buf.size()); + buf = buf | std::views::transform([&](const auto& tuple) { + return ApplyProjection(tuple, attrs, executors); + }) | std::ranges::to(); + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(buf), + boost::asio::use_awaitable); + } + out_tuples_chan.close(); +} + +template +boost::asio::awaitable Executor::ExecuteFilter(const PhysicalFilter& filter, + AttributesInfoChannel& out_attr_chan, + TuplesChannel& out_tuples_chan) { + Log("Executing filter"); + auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(*filter.source, in_attrs_chan, in_tuples_chan); + + auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); + Log("Filter received attrs"); + + if (GetExpressionType(filter.predicate, attrs) != Type::kBool) { + throw std::logic_error{"filter expr should return bool"}; + } + + Log("Filter sending attrs"); + co_await out_attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); + out_attr_chan.close(); + Log("Filter sent attrs"); + + auto filter_executor = co_await expression_executor_.GetExpressionExecutor(filter.predicate, attrs); + + Tuples output_buf; + output_buf.reserve(kBufSize); + for (;;) { + auto input_buf = co_await ReceiveTuples(in_tuples_chan); + if (input_buf.empty()) { + break; + } + Log("Received {} tuples in filter", input_buf.size()); + auto filtered_view = input_buf | std::views::filter([&](const auto& tuple) { + return ApplyFilter(tuple, attrs, filter_executor); + }) | std::views::as_rvalue; + for (auto&& tuple : filtered_view) { + output_buf.push_back(std::move(tuple)); + if (output_buf.size() == kBufSize) { + Log("Sending {} tuples in filter", output_buf.size()); + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(output_buf), + boost::asio::use_awaitable); + output_buf.clear(); + } + } + } + Log("{} tuples left in output_buf", output_buf.size()); + if (!output_buf.empty()) { + Log("Sending {} tuples in filter", output_buf.size()); + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(output_buf), + boost::asio::use_awaitable); + } + out_tuples_chan.close(); +} + +template +boost::asio::awaitable Executor::ExecuteCrossJoin(const NestedLoopCrossJoin& cross_join, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan) { + Log("Executing cross join"); + auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(*cross_join.lhs, lhs_attrs_chan, lhs_tuples_chan); + auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(*cross_join.rhs, rhs_attrs_chan, rhs_tuples_chan); + + auto attrs = co_await ConcatAttrs(lhs_attrs_chan, rhs_attrs_chan); + Log("Cross join received attrs"); + Log("Cross join sending attrs"); + co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); + attr_chan.close(); + Log("Cross join sent attrs"); + + auto reader = co_await MaterializeChannel(lhs_tuples_chan); + Log("Materialized tuples in cross join"); + + for (;;) { + auto buf_rhs = co_await ReceiveTuples(rhs_tuples_chan); + if (buf_rhs.empty()) { + break; + } + Log("Received {} tuples in cross join as rhs", buf_rhs.size()); + + reader.Rewind(); + for (;;) { + auto buf_lhs = reader.Read(); + if (buf_lhs.empty()) { + break; + } + Log("Read {} tuples back from materialized form", buf_lhs.size()); + for (const auto& tuple_lhs : buf_lhs) { + Tuples buf_joined; + buf_joined.reserve(kBufSize); + // NOTE: not optimal if rhs is a small table (<< kBufSize tuples) + for (const auto& tuple_rhs : buf_rhs) { + auto joined_tuple = ConcatTuples(tuple_lhs, tuple_rhs); + buf_joined.push_back(std::move(joined_tuple)); + } + Log("Sending {} tuples from cross join", buf_joined.size()); + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_joined), + boost::asio::use_awaitable); + } + } + } + tuples_chan.close(); +} + +template +boost::asio::awaitable Executor::ExecuteJoin(const NestedLoopJoin& join, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan) { + Log("Executing join"); + if (join.type == JoinType::kFull) { + throw std::logic_error{"Full joins are not supported by executor"}; + } + if (join.type == JoinType::kLeft) { + std::swap(*join.lhs, *join.rhs); + } + auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(*join.lhs, lhs_attrs_chan, lhs_tuples_chan); + auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); + co_await SpawnExecutor(*join.rhs, rhs_attrs_chan, rhs_tuples_chan); + + auto attrs = co_await ConcatAttrs(lhs_attrs_chan, rhs_attrs_chan); + Log("Join received attrs"); + Log("Join sending attrs"); + co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); + attr_chan.close(); + Log("Join sent attrs"); + + auto qual_executor = co_await expression_executor_.GetExpressionExecutor(join.qual, attrs); + + auto reader = co_await MaterializeChannel(lhs_tuples_chan); + for (;;) { + auto buf_rhs = co_await ReceiveTuples(rhs_tuples_chan); + if (buf_rhs.empty()) { + break; + } + Log("Received {} tuples in join as rhs", buf_rhs.size()); + + std::vector used(buf_rhs.size(), false); + reader.Rewind(); + for (;;) { + auto buf_lhs = reader.Read(); + if (buf_lhs.empty()) { + break; + } + Log("Read {} tuples back from materialized form", buf_lhs.size()); + + for (const auto& tuple_lhs : buf_lhs) { + Tuples buf_res; + buf_res.reserve(kBufSize); + for (const auto& [rhs_index, tuple_rhs] : buf_rhs | std::views::enumerate) { + auto joined_tuple = ConcatTuples(tuple_lhs, tuple_rhs); + auto qual_expr_res = qual_executor(joined_tuple, attrs); + if (qual_expr_res.value.bool_value) { + buf_res.push_back(std::move(joined_tuple)); + used[rhs_index] = true; + } + } + if (!buf_res.empty()) { + Log("Sending {} tuples from join", buf_res.size()); + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_res), + boost::asio::use_awaitable); + } + } + } + + if (join.type == JoinType::kRight || join.type == JoinType::kLeft) { + Tuples buf_res; + buf_res.reserve(kBufSize); + for (auto [rhs_index, is_used] : used | std::views::enumerate) { + if (is_used) { + continue; + } + + auto rhs_tuple = std::move(buf_rhs[rhs_index]); + + auto lhs_size = attrs.size() - rhs_tuple.size(); + Tuple lhs_tuple(lhs_size, Value{true}); + + auto joined_tuple = ConcatTuples(lhs_tuple, rhs_tuple); + buf_res.push_back(std::move(joined_tuple)); + } + if (!buf_res.empty()) { + Log("Sending {} tuples from join", buf_res.size()); + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_res), + boost::asio::use_awaitable); + } + } + } + tuples_chan.close(); +} + +template +boost::asio::awaitable Executor::SpawnExecutor(const PhysicalPlanNode& op, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuple_chan) { + auto executor = co_await boost::asio::this_coro::executor; + boost::asio::co_spawn(executor, Execute(op, attr_chan, tuple_chan), boost::asio::detached); +} + +template class Executor; +template class Executor; +template class Executor; + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/cardinality.cpp b/src/stewkk/sql/logic/optimizer/cardinality.cpp new file mode 100644 index 0000000..1252680 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/cardinality.cpp @@ -0,0 +1,42 @@ +#include + +#include + +namespace stewkk::sql { + +CardinalityEstimates::CardinalityEstimates(std::unordered_map table_sizes) + : table_sizes_(std::move(table_sizes)) {} + +int64_t CardinalityEstimates::GetCardinality(utils::NotNull group) { + if (auto it = cache_.find(group.get()); it != cache_.end()) { + return it->second; + } + auto cardinality = GetCardinality(group->GetLogicalExprs().front()->root_operator); + cache_[group.get()] = cardinality; + return cardinality; +} + +int64_t CardinalityEstimates::GetCardinality(const LogicalOperator& op) { + return std::visit(utils::Overloaded{ + [this](const logical::Table& t) -> int64_t { + if (auto it = table_sizes_.find(t.name); it != table_sizes_.end()) { + return it->second; + } + return 10; + }, + [this](const logical::Filter& f) -> int64_t { + return GetCardinality(f.source); + }, + [this](const logical::Projection& p) -> int64_t { + return GetCardinality(p.source); + }, + [this](const logical::CrossJoin& j) -> int64_t { + return GetCardinality(j.lhs) * GetCardinality(j.rhs); + }, + [this](const logical::Join& j) -> int64_t { + return GetCardinality(j.lhs) * GetCardinality(j.rhs); + }, + }, op); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index f1e70bb..36554a3 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -1,5 +1,269 @@ #include +#include + +#include +#include + namespace stewkk::sql { +std::vector> GetChildren(utils::NotNull expr) { + return std::visit(utils::Overloaded{ + [](const logical::Table&) -> std::vector> { + return {}; + }, + [](const logical::Filter& f) -> std::vector> { + return {f.source}; + }, + [](const logical::Projection& p) -> std::vector> { + return {p.source}; + }, + [](const logical::CrossJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + [](const logical::Join& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + }, expr->root_operator); +} + +std::vector> GetChildren(utils::NotNull expr) { + return std::visit(utils::Overloaded{ + [](const physical::SeqScan&) -> std::vector> { + return {}; + }, + [](const physical::Filter& f) -> std::vector> { + return {f.source}; + }, + [](const physical::Projection& p) -> std::vector> { + return {p.source}; + }, + [](const physical::NestedLoopJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + [](const physical::NestedLoopCrossJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, + }, expr->root_operator); +} + +static int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::Filter&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::Projection&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::NestedLoopJoin& j) -> int64_t { + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); + }, + [&](const physical::NestedLoopCrossJoin& j) -> int64_t { + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); + }, + }, expr->root_operator); +} + +template +Optimizer::Optimizer( + const Operator& expr, Rules&& rules, + CardinalityEstimates cardinality) + : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), + cardinality_(std::move(cardinality)) {} + +template +bool Optimizer::IsExplored(utils::NotNull group) const { + return explored_groups_.contains(group.get()); +} + +template +void Optimizer::SetExplored(utils::NotNull group) { + explored_groups_.insert(group); +} + +template +void Optimizer::OptimizeInputs( + utils::NotNull expr, Limit limit, size_t child_index) { + auto children = GetChildren(expr); + if (child_index >= children.size()) { + int64_t total = local_cost_[expr.get()] + accum_child_cost_[expr.get()]; + auto* g = expr->group.get(); + if (!best_cost_.contains(g) || total < best_cost_.at(g)) { + best_cost_[g] = total; + best_plan_[g] = expr.get(); + } + return; + } + + auto child = children[child_index]; + + tasks_.emplace([this, expr, child, child_index, limit]() { + if (!best_cost_.contains(child.get())) return; + auto cc = best_cost_.at(child.get()); + accum_child_cost_[expr.get()] += cc; + Limit next = limit ? std::optional{*limit - local_cost_[expr.get()] - accum_child_cost_[expr.get()]} : std::nullopt; + if (next && *next < 0) return; + OptimizeInputs(expr, next, child_index + 1); + }); + + tasks_.emplace([this, child, limit]() { + OptimizeGroup(child, limit); + }); +} + +template +void Optimizer::ApplyRule( + TransformationRuleId rule, utils::NotNull expr, Limit limit) { + auto new_expr = rules_applier_.Apply(rule, expr, memo_); + tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); +} + +template +void Optimizer::ApplyRule( + ImplementationRuleId rule, utils::NotNull expr, Limit limit) { + auto new_expr = rules_applier_.Apply(rule, expr, memo_); + auto lc = CalcCost(new_expr, cardinality_); + local_cost_[new_expr.get()] = lc; + accum_child_cost_[new_expr.get()] = 0; + + if (limit && lc >= *limit) return; + + Limit child_limit = limit ? std::optional{*limit - lc} : std::nullopt; + tasks_.emplace([this, new_expr, child_limit]() { OptimizeInputs(new_expr, child_limit); }); +} + +template +void Optimizer::OptimizeExpression( + utils::NotNull expr, Limit limit) { + for (size_t rule = 0; rule < NImplementation; rule++) { + if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { + continue; + } + tasks_.emplace([this, expr, rule, limit]() { + ApplyRule(ImplementationRuleId{rule}, expr, limit); + }); + } + + for (auto child : GetChildren(expr)) { + if (IsExplored(child)) { + continue; + } + tasks_.emplace([this, child, limit]() { + ExploreGroup(child, limit); + }); + } +} + +template +void Optimizer::ExploreExpression( + utils::NotNull expr, Limit limit) { + for (size_t rule = 0; rule < NTransformation; rule++) { + if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { + continue; + } + tasks_.emplace([this, expr, rule, limit]() { + ApplyRule(TransformationRuleId{rule}, expr, limit); + }); + } + + for (auto child : GetChildren(expr)) { + if (IsExplored(child)) { + continue; + } + tasks_.emplace([this, child, limit]() { + ExploreGroup(child, limit); + }); + } +} + +template +void Optimizer::ExploreGroup( + utils::NotNull group, Limit limit) { + SetExplored(group); + for (auto expr : group->GetLogicalExprs()) { + tasks_.emplace([this, expr, limit]() { + ExploreExpression(expr, limit); + }); + } +} + +template +void Optimizer::OptimizeGroup( + utils::NotNull group, Limit limit) { + if (auto it = best_cost_.find(group.get()); it != best_cost_.end()) { + if (!limit || it->second < *limit) return; + } + + if (!IsExplored(group)) { + tasks_.emplace([this, group, limit]() { OptimizeGroup(group, limit); }); + tasks_.emplace([this, group, limit]() { ExploreGroup(group, limit); }); + return; + } + + for (auto expr : group->GetLogicalExprs()) { + tasks_.emplace([this, expr, limit]() { OptimizeExpression(expr, limit); }); + } +} + +template +PhysicalPlanNode Optimizer::BuildOptimalPlan(Group* group) { + auto best_expr = best_plan_[group]; + if (!best_expr) { + throw std::runtime_error{"no optimal plan for group"}; + } + return std::visit( + utils::Overloaded{ + [](const physical::SeqScan& op) -> PhysicalPlanNode { + return SeqScan{.table = op.table}; + }, + [this](const physical::Projection& op) -> PhysicalPlanNode { + return PhysicalProjection{ + .source = std::make_shared(BuildOptimalPlan(op.source.get())), + .expressions = op.expressions, + }; + }, + [this](const physical::Filter& op) -> PhysicalPlanNode { + return PhysicalFilter{ + .source = std::make_shared(BuildOptimalPlan(op.source.get())), + .predicate = op.predicate, + }; + }, + [this](const physical::NestedLoopJoin& op) -> PhysicalPlanNode { + return NestedLoopJoin{ + .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), + .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), + .type = op.type, + .qual = op.qual, + }; + }, + [this](const physical::NestedLoopCrossJoin& op) -> PhysicalPlanNode { + return NestedLoopCrossJoin{ + .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), + .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), + }; + }, + }, + best_expr->root_operator); +} + +template +PhysicalPlanNode Optimizer::Optimize() { + tasks_.emplace([this]() { OptimizeGroup(root_->group); }); + while (!tasks_.empty()) { + auto next_task = std::move(tasks_.top()); + tasks_.pop(); + next_task(); + } + return BuildOptimalPlan(root_->group.get()); +} + +template class Optimizer<2, 5>; + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index ecd1cda..ef38df2 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -1,343 +1,19 @@ #include -#include -#include -#include -#include - #include #include -#include -#include -#include -#include +#include #include -#include -#include -#include #include using ::testing::Eq; namespace stewkk::sql { - + // FIXME: branch and bound // FIXME: сделать API в виде DoStep(), которое возвращает какой-то внутренний стейт оптимизатора // FIXME: применение правила (по крайней мере трансформации), должно создавать несколько выражений -std::vector> GetChildren(utils::NotNull expr) { - return std::visit(utils::Overloaded{ - [](const logical::Table&) -> std::vector> { - return {}; - }, - [](const logical::Filter& f) -> std::vector> { - return {f.source}; - }, - [](const logical::Projection& p) -> std::vector> { - return {p.source}; - }, - [](const logical::CrossJoin& j) -> std::vector> { - return {j.lhs, j.rhs}; - }, - [](const logical::Join& j) -> std::vector> { - return {j.lhs, j.rhs}; - }, - }, expr->root_operator); -} - -using Limit = std::optional; - -std::vector> GetChildren(utils::NotNull expr) { - return std::visit(utils::Overloaded{ - [](const physical::SeqScan&) -> std::vector> { - return {}; - }, - [](const physical::Filter& f) -> std::vector> { - return {f.source}; - }, - [](const physical::Projection& p) -> std::vector> { - return {p.source}; - }, - [](const physical::NestedLoopJoin& j) -> std::vector> { - return {j.lhs, j.rhs}; - }, - [](const physical::NestedLoopCrossJoin& j) -> std::vector> { - return {j.lhs, j.rhs}; - }, - }, expr->root_operator); -} - -class CardinalityEstimates { -public: - CardinalityEstimates(std::unordered_map table_sizes = {}) - : table_sizes_(std::move(table_sizes)) {} - - int64_t GetCardinality(utils::NotNull group) { - if (auto it = cache_.find(group.get()); it != cache_.end()) { - return it->second; - } - auto cardinality = GetCardinality(group->GetLogicalExprs().front()->root_operator); - cache_[group.get()] = cardinality; - return cardinality; - } - - private: - int64_t GetCardinality(const LogicalOperator& op) { - return std::visit(utils::Overloaded{ - [this](const logical::Table& t) -> int64_t { - if (auto it = table_sizes_.find(t.name); it != table_sizes_.end()) { - return it->second; - } - return 10; - }, - [this](const logical::Filter& f) -> int64_t { - return GetCardinality(f.source); - }, - [this](const logical::Projection& p) -> int64_t { - return GetCardinality(p.source); - }, - [this](const logical::CrossJoin& j) -> int64_t { - return GetCardinality(j.lhs) * GetCardinality(j.rhs); - }, - [this](const logical::Join& j) -> int64_t { - return GetCardinality(j.lhs) * GetCardinality(j.rhs); - }, - }, op); - } - - std::unordered_map table_sizes_; - std::unordered_map cache_; -}; - -int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { - return std::visit(utils::Overloaded{ - [&](const physical::SeqScan&) -> int64_t { - return cardinality.GetCardinality(expr->group); - }, - [&](const physical::Filter&) -> int64_t { - return cardinality.GetCardinality(expr->group); - }, - [&](const physical::Projection&) -> int64_t { - return cardinality.GetCardinality(expr->group); - }, - [&](const physical::NestedLoopJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); - }, - [&](const physical::NestedLoopCrossJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); - }, - }, expr->root_operator); -} - -template -class Optimizer { - public: - Optimizer(const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality = {}) - : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), - cardinality_(std::move(cardinality)) { - } - -private: - bool IsExplored(utils::NotNull group) const { - return explored_groups_.contains(group.get()); - } - - void SetExplored(utils::NotNull group) { - explored_groups_.insert(group); - } - - void OptimizeInputs(utils::NotNull expr, Limit limit, size_t child_index = 0) { - auto children = GetChildren(expr); - if (child_index >= children.size()) { - int64_t total = local_cost_[expr.get()] + accum_child_cost_[expr.get()]; - auto* g = expr->group.get(); - if (!best_cost_.contains(g) || total < best_cost_.at(g)) { - best_cost_[g] = total; - best_plan_[g] = expr.get(); - } - return; - } - - auto child = children[child_index]; - - tasks_.emplace([this, expr, child, child_index, limit]() { - if (!best_cost_.contains(child.get())) return; - auto cc = best_cost_.at(child.get()); - accum_child_cost_[expr.get()] += cc; - // FIXME add -LB(children[child_index+1..k]) - Limit next = limit ? std::optional{*limit - local_cost_[expr.get()] - accum_child_cost_[expr.get()]} : std::nullopt; - if (next && *next < 0) return; - OptimizeInputs(expr, next, child_index + 1); - }); - - tasks_.emplace([this, child, limit]() { - OptimizeGroup(child, limit); - }); - } - - void ApplyRule(TransformationRuleId rule, utils::NotNull expr, Limit limit) { - auto new_expr = rules_applier_.Apply(rule, expr, memo_); - tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); - } - - void ApplyRule(ImplementationRuleId rule, utils::NotNull expr, Limit limit) { - auto new_expr = rules_applier_.Apply(rule, expr, memo_); - // FIXME: missing physical properties - auto lc = CalcCost(new_expr, cardinality_); - local_cost_[new_expr.get()] = lc; - accum_child_cost_[new_expr.get()] = 0; - - if (limit && lc >= *limit) return; - - Limit child_limit = limit ? std::optional{*limit - lc} : std::nullopt; - tasks_.emplace([this, new_expr, child_limit]() { OptimizeInputs(new_expr, child_limit); }); - } - - void OptimizeExpression(utils::NotNull expr, Limit limit) { - for (size_t rule = 0; rule < NImplementation; rule++) { - if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { - continue; - } - tasks_.emplace([this, expr, rule, limit]() { - ApplyRule(ImplementationRuleId{rule}, expr, limit); - }); - } - - for (auto child : GetChildren(expr)) { - if (IsExplored(child)) { - continue; - } - tasks_.emplace([this, child, limit]() { - ExploreGroup(child, limit); - }); - } - } - - void ExploreExpression(utils::NotNull expr, Limit limit) { - for (size_t rule = 0; rule < NTransformation; rule++) { - if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { - continue; - } - tasks_.emplace([this, expr, rule, limit]() { - ApplyRule(TransformationRuleId{rule}, expr, limit); - }); - } - - for (auto child : GetChildren(expr)) { - if (IsExplored(child)) { - continue; - } - tasks_.emplace([this, child, limit]() { - ExploreGroup(child, limit); - }); - } - } - - void ExploreGroup(utils::NotNull group, Limit limit) { - SetExplored(group); - for (auto expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr, limit]() { - ExploreExpression(expr, limit); - }); - } - } - - void OptimizeGroup(utils::NotNull group, Limit limit=std::nullopt) { - if (auto it = best_cost_.find(group.get()); it != best_cost_.end()) { - if (!limit || it->second < *limit) return; - } - - if (!IsExplored(group)) { - tasks_.emplace([this, group, limit](){ - OptimizeGroup(group, limit); - }); - tasks_.emplace([this, group, limit](){ - ExploreGroup(group, limit); - }); - return; - } - - for (auto expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr, limit](){ - OptimizeExpression(expr, limit); - }); - } - } - - PhysicalPlanNode BuildOptimalPlan(Group* group) { - auto best_expr = best_plan_[group]; - if (!best_expr) { - throw std::runtime_error{"no optimal plan for group"}; - } - return std::visit( - utils::Overloaded{ - [](const physical::SeqScan& op) -> PhysicalPlanNode { - return SeqScan{ - .table = op.table, - }; - }, - [this](const physical::Projection& op) -> PhysicalPlanNode { - return PhysicalProjection{ - .source - = std::make_shared(BuildOptimalPlan(op.source.get())), - .expressions = op.expressions, - }; - }, - [this](const physical::Filter& op) -> PhysicalPlanNode { - return PhysicalFilter{ - .source = std::make_shared(BuildOptimalPlan(op.source.get())), - .predicate = op.predicate, - }; - }, - [this](const physical::NestedLoopJoin& op) -> PhysicalPlanNode { - return NestedLoopJoin{ - .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), - .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), - .type = op.type, - .qual = op.qual, - }; - }, - [this](const physical::NestedLoopCrossJoin& op) -> PhysicalPlanNode { - return NestedLoopCrossJoin{ - .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), - .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), - }; - }, - }, - best_expr->root_operator); - } - - public: - PhysicalPlanNode Optimize() { - tasks_.emplace([this]() { - OptimizeGroup(root_->group); - }); - while (!tasks_.empty()) { - auto next_task = std::move(tasks_.top()); - tasks_.pop(); - next_task(); - } - return BuildOptimalPlan(root_->group.get()); - } - - private: - Memo memo_; - RulesApplier rules_applier_; - std::stack> tasks_; - std::unordered_set explored_groups_; - utils::NotNull root_; - CardinalityEstimates cardinality_; - std::unordered_map local_cost_; - std::unordered_map accum_child_cost_; - std::unordered_map best_cost_; - std::unordered_map best_plan_; -}; - TEST(OptimizerTest, Simple) { std::stringstream s{"SELECT * FROM users;"}; Operator op = GetAST(s).value(); From 847b183214f2aba6ea06d7d2e848948683d8fd83 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 11 May 2026 22:05:32 +0300 Subject: [PATCH 035/120] Refactor, add debug logs, fix bug --- CMakeLists.txt | 4 ++++ include/stewkk/sql/logic/optimizer/memo.hpp | 3 +++ include/stewkk/sql/utils/log.hpp | 2 +- src/stewkk/sql/logic/optimizer/memo.cpp | 14 +++++++++++++- src/stewkk/sql/logic/optimizer/optimizer.cpp | 12 ++++++++++++ src/stewkk/sql/logic/optimizer/rule.cpp | 10 +++++++++- 6 files changed, 42 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 96a5572..3eefa3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,10 @@ if (SANITIZE_THREADS) add_link_options(-fsanitize=thread) endif() +if(STEWKK_SQL_DEBUG) + add_definitions(-DSTEWKK_SQL_DEBUG) +endif() + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index 6e41920..9518ef3 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -12,9 +12,12 @@ class Memo { public: size_t GroupCount() const; utils::NotNull AddGroup(LogicalOperator root_operator); + LogicalExpr* GetGroup(LogicalOperator root_operator) const; utils::NotNull Populate(const Operator& op); private: + LogicalExpr* GetGroup(const std::string& key) const; + std::deque groups_; std::unordered_map expr_index_; }; diff --git a/include/stewkk/sql/utils/log.hpp b/include/stewkk/sql/utils/log.hpp index a0f3e1c..ee99705 100644 --- a/include/stewkk/sql/utils/log.hpp +++ b/include/stewkk/sql/utils/log.hpp @@ -5,7 +5,7 @@ namespace stewkk::sql { inline constexpr bool kDebug = -#ifdef DEBUG +#ifdef STEWKK_SQL_DEBUG true; #else false; diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 89e48c5..4627e04 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -36,12 +36,24 @@ size_t Memo::GroupCount() const { return groups_.size(); } -utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { +LogicalExpr* Memo::GetGroup(LogicalOperator root_operator) const { auto key = ToKey(root_operator); + return GetGroup(key); +} + +LogicalExpr* Memo::GetGroup(const std::string& key) const { auto it = expr_index_.find(key); if (it != expr_index_.end()) { return it->second; } + return nullptr; +} + +utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { + auto key = ToKey(root_operator); + if (auto g = GetGroup(key); g) { + return g; + } auto& group = groups_.emplace_back(Group(groups_.size())); auto expr = group.AddLogicalExpr(std::move(root_operator)); expr_index_[key] = expr; diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 36554a3..8093109 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -3,6 +3,7 @@ #include #include +#include #include namespace stewkk::sql { @@ -96,6 +97,7 @@ void Optimizer::OptimizeInputs( int64_t total = local_cost_[expr.get()] + accum_child_cost_[expr.get()]; auto* g = expr->group.get(); if (!best_cost_.contains(g) || total < best_cost_.at(g)) { + Log("New best plan for group {} with cost {}", g->GetId(), total); best_cost_[g] = total; best_plan_[g] = expr.get(); } @@ -121,6 +123,7 @@ void Optimizer::OptimizeInputs( template void Optimizer::ApplyRule( TransformationRuleId rule, utils::NotNull expr, Limit limit) { + Log("Applying transformation rule {} to group {}", rule.value, expr->group->GetId()); auto new_expr = rules_applier_.Apply(rule, expr, memo_); tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); } @@ -128,8 +131,10 @@ void Optimizer::ApplyRule( template void Optimizer::ApplyRule( ImplementationRuleId rule, utils::NotNull expr, Limit limit) { + Log("Applying implementation rule {} to group {}", rule.value, expr->group->GetId()); auto new_expr = rules_applier_.Apply(rule, expr, memo_); auto lc = CalcCost(new_expr, cardinality_); + Log("Local cost for group {} expression: {}", new_expr->group->GetId(), lc); local_cost_[new_expr.get()] = lc; accum_child_cost_[new_expr.get()] = 0; @@ -142,6 +147,7 @@ void Optimizer::ApplyRule( template void Optimizer::OptimizeExpression( utils::NotNull expr, Limit limit) { + Log("Optimizing expression in group {}", expr->group->GetId()); for (size_t rule = 0; rule < NImplementation; rule++) { if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { continue; @@ -164,6 +170,7 @@ void Optimizer::OptimizeExpression( template void Optimizer::ExploreExpression( utils::NotNull expr, Limit limit) { + Log("Exploring expression in group {}", expr->group->GetId()); for (size_t rule = 0; rule < NTransformation; rule++) { if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { continue; @@ -186,6 +193,7 @@ void Optimizer::ExploreExpression( template void Optimizer::ExploreGroup( utils::NotNull group, Limit limit) { + Log("Exploring group {}", group->GetId()); SetExplored(group); for (auto expr : group->GetLogicalExprs()) { tasks_.emplace([this, expr, limit]() { @@ -197,6 +205,7 @@ void Optimizer::ExploreGroup( template void Optimizer::OptimizeGroup( utils::NotNull group, Limit limit) { + Log("Optimizing group {}", group->GetId()); if (auto it = best_cost_.find(group.get()); it != best_cost_.end()) { if (!limit || it->second < *limit) return; } @@ -214,6 +223,7 @@ void Optimizer::OptimizeGroup( template PhysicalPlanNode Optimizer::BuildOptimalPlan(Group* group) { + Log("Building optimal plan for group {}", group->GetId()); auto best_expr = best_plan_[group]; if (!best_expr) { throw std::runtime_error{"no optimal plan for group"}; @@ -255,12 +265,14 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G template PhysicalPlanNode Optimizer::Optimize() { + Log("Starting optimization"); tasks_.emplace([this]() { OptimizeGroup(root_->group); }); while (!tasks_.empty()) { auto next_task = std::move(tasks_.top()); tasks_.pop(); next_task(); } + Log("Optimization complete, building plan"); return BuildOptimalPlan(root_->group.get()); } diff --git a/src/stewkk/sql/logic/optimizer/rule.cpp b/src/stewkk/sql/logic/optimizer/rule.cpp index 13ad570..9961b89 100644 --- a/src/stewkk/sql/logic/optimizer/rule.cpp +++ b/src/stewkk/sql/logic/optimizer/rule.cpp @@ -1,9 +1,17 @@ #include +#include + namespace stewkk::sql { utils::NotNull TransformationRule::Apply(utils::NotNull expr, Memo& memo) { -return expr->group->AddLogicalExpr(ApplyImpl(expr, memo)); + // FIXME: maybe it should be Memo's responsibility to check for duplicates? + auto op = ApplyImpl(expr, memo); + auto existing = memo.GetGroup(op); + if (existing) { + return existing; + } + return expr->group->AddLogicalExpr(std::move(op)); } } // namespace stewkk::sql From 0ede4e040e7305fd3053bece3c971e074daaf28d Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Thu, 14 May 2026 00:22:31 +0300 Subject: [PATCH 036/120] Fix --- report/thesis.tex | 120 ++++++++++++++++++++++++++++++---------------- 1 file changed, 79 insertions(+), 41 deletions(-) diff --git a/report/thesis.tex b/report/thesis.tex index d02ee14..5c1fd68 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -29,9 +29,12 @@ \newcommand{\SeqScan}{\sqlkw{SeqScan}} \newcommand{\IndexScan}{\sqlkw{IndexScan}} \newcommand{\NestedLoopJoin}{\sqlkw{NestedLoopJoin}} +\newcommand{\NestedLoopCrossJoin}{\sqlkw{NestedLoopCrossJoin}} \newcommand{\HashJoin}{\sqlkw{HashJoin}} \newcommand{\MergeJoin}{\sqlkw{MergeJoin}} \newcommand{\Sort}{\sqlkw{Sort}} +\newcommand{\FilterOp}{\sqlkw{Filter}} +\newcommand{\ProjOp}{\sqlkw{Projection}} \newcommand{\SelOp}[1]{\sigma_{#1}} \newcommand{\ProjectionOp}[1]{\pi_{#1}} @@ -986,9 +989,6 @@ \subsection{Обеспечивающие операторы} \section{Метод ветвей и границ} -{\color{red} FIXME: Тут, конечно, маловато конкретики - хотелось бы видеть, - какую стоимостную модель вы выбрали для своей системы} - Метод ветвей и границ используется для сокращения пространства поиска и, как следствие, неасимптотического улучшения скорости работы алгоритма. В контексте Cascades ветвями являются альтернативные выражения и комбинации физических @@ -1060,38 +1060,59 @@ \subsection{Оценка кардинальности} \subsection{Оценка стоимости} -Функция стоимости сопоставляет физическому плану численную оценку затрат. В -простейшем случае стоимость можно представить как взвешенную сумму операций -чтения страниц, операций записи, вычислительных операций и сетевой передачи: +Функция стоимости сопоставляет физическому плану численную оценку затрат на его +исполнение. Классическим считается представление стоимости в виде взвешенной +суммы операций чтения и записи страниц на диск, а также числа обработанных +кортежей и операций над ними~\cite{GraefeMcKenna1993,Graefe1995}: \[ - Cost(p) = w_{io} \cdot IO(p) + w_{cpu} \cdot CPU(p) + - w_{mem} \cdot MEM(p) + w_{net} \cdot NET(p). + Cost(p) = w_{io} \cdot IO(p) + w_{cpu} \cdot CPU(p). \] -Коэффициенты \(w_{io}\), \(w_{cpu}\), \(w_{mem}\) и \(w_{net}\) зависят от -конкретной аппаратной конфигурации. +Коэффициенты \(w_{io}\), \(w_{cpu}\) зависят от конкретной аппаратной +конфигурации. -Стоимость физического выражения обычно вычисляется рекурсивно: +Стоимость является аддитивной и вычисляется рекурсивно по дереву физического +плана: \[ Cost(node) = LocalCost(node) + \sum_{child \in children(node)} Cost(child). \] -При этом локальная стоимость зависит от кардинальности входов и физических -свойств, а также конкретного физического оператора. +Локальная стоимость оператора определяется его типом и кардинальностью его +входов. Пусть \(|R|\) --- кардинальность отношения \(R\), \(b\) --- блочный +фактор (число кортежей на странице), тогда \(P(R) = \lceil|R|/b\rceil\) --- +число страниц, занимаемых \(R\); \(c_\theta\) --- стоимость вычисления +предиката \(\theta\) на одной паре кортежей; \(\sigma_\theta\) --- +селективность предиката \(\theta\) (доля кортежей входа, удовлетворяющих +\(\theta\)); \(M\) --- число страниц буфера, доступных оператору. Формулы +локальной стоимости физических операторов приведены в +таблице~\ref{tbl:local-cost}. + +\begin{longtable}{|l|c|c|} + \caption{Локальная стоимость физических операторов.}\label{tbl:local-cost}\\ + \hline + Оператор & \(IO(op)\) & \(CPU(op)\) \\ + \hline + \endfirsthead + \hline + \endfoot + + \(\SeqScan(T)\) & \(P(T)\) & \(|T|\) \\ \hline + \(\IndexScan(T, \theta)\) & \(\lceil \sigma_\theta \cdot P(T) \rceil\) & \(\sigma_\theta \cdot |T|\) \\ \hline + \(\FilterOp(R, \theta)\) & \(0\) & \(|R| \cdot c_\theta\) \\ \hline + \(\ProjOp(R)\) & \(0\) & \(|R|\) \\ \hline + \(\NestedLoopJoin(L, R, \theta)\) & \(P(L) \cdot (1 + P(R))\) & \(|L| \cdot |R| \cdot c_\theta\) \\ \hline + \(\NestedLoopCrossJoin(L, R)\) & \(P(L) \cdot (1 + P(R))\) & \(|L| \cdot |R|\) \\ \hline + \(\HashJoin(L, R, \theta)\) & \(P(L) + P(R)\) & \(|L| + |R| \cdot (1 + c_\theta)\) \\ \hline + \(\MergeJoin(L, R)\) & \(P(L) + P(R)\) & \(|L| + |R|\) \\ \hline + \(\Sort(R)\) & \(2 P(R) \cdot \lceil \log_M P(R) \rceil\) & \(|R| \cdot \log_2 |R|\) +\end{longtable} -% {\color{red} TODO: табличка формул для разных операторов} +Для операторов \(\FilterOp\) и \(\ProjOp\) стоимость ввода-вывода равна \(0\), потому что это конвейерные операторы, которые не используют диск. \section{Дифференциальный анализ физических планов} -{\color{red} FIXME: Тут крайне мало конкретики: пока что раздел выглядит как "за - всё хорошее и против всего плохого". Непонятно, какие конкретно системы - считаются эталонами, как конкретно вы собираетесь конвертировать извлеченный - физический план в свою модель, и не получится ли после этого преобразования - совсем другая производительность, а также почему эквивалентность планов - достаточно проверить на единственном наборе таблиц.} - Множество правил трансформации и реализации, используемых в оптимизаторах запросов, изучено довольно хорошо и описано в академической литературе. Вместе с тем условия активации правил @@ -1112,38 +1133,55 @@ \subsection{Предлагаемый метод} Для поиска несоответствий между поведением реализуемой системы и внешней эталонной системы предлагается применить дифференциальный анализ планов. -Первым шагом нужно сформировать набор данных состоящий из схем таблиц и данных. +Первым шагом нужно сформировать несколько наборов данных, состоящих из схем +таблиц и их наполнения. Разные данные позволяют всесторонне исследовать правила +активации, потому что они зависят от кардинальности отношений, наличия индексов +и т.п. + Далее, по заданным схемам генерируются случайные SQL-запросы различной структуры и сложности. Такой подход исключает тривиальные планы и приближает условия работы оптимизатора к реальным нагрузкам при дальнейшем построении планов запросов. Следующим шагом сгенерированные запросы транспилируются в диалекты SQL целевых -промышленных СУБД: Oracle, Microsoft SQL Server, PostgreSQL и т.д. Затем для -получения физических планов исполняется аналог \texttt{EXPLAIN ANALYZE}. +промышленных СУБД. В качестве эталонных систем рассматриваются PostgreSQL, +DuckDB, Umbra и Microsoft SQL Server. Эти системы являются зрелыми, имеют +документированный формат вывода планов и представляют разные архитектурные +подходы. Затем для получения физических планов исполняется аналог +\texttt{EXPLAIN ANALYZE}. Полученные физические планы промышленных СУБД конвертируются в формат -сериализованного плана разрабатываемого оптимизатора. Для этого необходимо -создать набор отображений между физическими операторами различных систем. -Например, \texttt{Hash Match} в SQL Server отображается в \HashJoin{} в -разрабатываемой системе, \texttt{Clustered Index Scan} --- в \IndexScan{} и так -далее. - -Корректность конвертации плана можно проверить путем исполнения исходого плана -на внешней системе и полученного плана на разрабатываемой системе и сравнения -полученных результатов. +сериализованного плана разрабатываемого оптимизатора. Современные СУБД +предоставляют вывод планов в виде XML или JSON, что позволяет легко реализовать +их разбор. Для конвертации используется отображение между физическими +операторами разрабатываемой системы и операторами эталонной СУБД. Например, +\texttt{Hash Match} в SQL Server отображается в \HashJoin{} в разрабатываемой +системе, \texttt{Clustered Index Scan} --- в \IndexScan{} и так далее. +Восстановление предикатов, ключей соединения и выражений проекции выполняется +путем разбора соответствующих полей плана, причем не нужно поддерживать весь +синтаксис предикатов, так как генератор запросов и схемы данных ограничивают +множество допустимых выражений в планах. + +Корректность конвертации выполняется по построению, но дополнительно проверяется +путем исполнения исходного плана на внешней системе и сконвертированного плана +на разрабатываемой системе с последующим сравнением полученных результатов при +фиксированной схеме и различных вариантах сгенерированных для нее данных. Конвертированные планы сравниваются с планами, порождаемыми разрабатываемым оптимизатором на исходных запросах, с целью определить, мог ли существующий набор правил разрабатываемого оптимизатора породить план, эквивалентный плану -промышленной системы. Для корректности сравнения необходимо полное исследование -пространства эквивалентных планов. Если разрабатываемая система не может -породить ``эталонный'' план, то условия активации или набор правил требует -уточнения. Определение требуемых изменений лежит на разработчике системы, -поэтому найденный запрос и примеры планов сохраняются для последующего анализа. -В дальнейшем, полученные после конвертации ``эталонные'' планы можно -использовать как тесты для оптимизатора, которые будут успешно выполняться после -уточнения соответвующих правил активации. +промышленной системы. Стоимостные модели и реализации операторов в разных СУБД +различаются, поэтому план, оптимальный для эталонной системы, не обязательно +будет оптимальным для разрабатываемой. По этоу причине сравнение направлено на +исследование полноты пространства поиска разрабатываемого оптимизатора, и не +предполагает сравнение эффективности планов. + +Для корректности структурного сравнения необходимо полное исследование +пространства эквивалентных планов. Определение требуемых изменений лежит на +разработчике системы, поэтому найденный запрос и примеры планов сохраняются для +последующего анализа. В дальнейшем, полученные после конвертации ``эталонные'' +планы можно использовать как тесты для оптимизатора, которые будут успешно +выполняться после уточнения соответвующих правил активации. \subsection{Поиск ближайшего плана} From 6c2d5f07ef551f7814934fd1063bbb4dfd6c4884 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 20 May 2026 18:24:55 +0300 Subject: [PATCH 037/120] Add lazy loading of dataset --- flake.nix | 1 + research/ms_sql_server_extractor.py | 19 +++++++++++++++++++ research/research.ipynb | 16 ++++++++++++++-- research/{tmp.py => run.py} | 0 research/test_converter.py | 4 ++++ .../sql/logic/optimizer/optimizer_test.cpp | 3 ++- 6 files changed, 40 insertions(+), 3 deletions(-) rename research/{tmp.py => run.py} (100%) create mode 100644 research/test_converter.py diff --git a/flake.nix b/flake.nix index 2e59869..ef3113a 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,7 @@ ps.ipykernel ps.notebook ps.pymssql + ps.pytest ]); tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full diff --git a/research/ms_sql_server_extractor.py b/research/ms_sql_server_extractor.py index 2889812..18771b7 100644 --- a/research/ms_sql_server_extractor.py +++ b/research/ms_sql_server_extractor.py @@ -118,7 +118,26 @@ def _conn(self, database="master"): ) return c + def _is_dataset_loaded(self) -> bool: + with self._conn("master") as conn: + cur = conn.cursor() + cur.execute("SELECT COUNT(*) FROM sys.databases WHERE name=N'imdb'") + if not cur.fetchone()[0]: + return False + with self._conn("imdb") as conn: + cur = conn.cursor() + cur.execute(""" + SELECT COUNT(*) FROM sys.tables t + JOIN sys.schemas s ON s.schema_id = t.schema_id + WHERE s.name = 'dbo' + """) + return cur.fetchone()[0] > 0 + def load_dataset(self) -> None: + if self._is_dataset_loaded(): + print("Dataset already loaded, skipping.") + return + dataset_dir = Path(self.dataset) print("Recreating database...") diff --git a/research/research.ipynb b/research/research.ipynb index 24db12a..3af90cd 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -59,10 +59,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "70ba9fa9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'extractor_obj' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 9\u001b[39m\n\u001b[32m 1\u001b[39m query = \u001b[33m\"\"\"\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[33mSELECT p.primaryName, t.averageRating\u001b[39m\n\u001b[32m 3\u001b[39m \u001b[33mFROM dbo.TitlePrincipals tp\u001b[39m\n\u001b[32m (...)\u001b[39m\u001b[32m 6\u001b[39m \u001b[33mWHERE t.averageRating IS NOT NULL\u001b[39m\n\u001b[32m 7\u001b[39m \u001b[33m\"\"\"\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m plan = \u001b[43mextractor_obj\u001b[49m.extract(query)\n\u001b[32m 10\u001b[39m \u001b[38;5;28mprint\u001b[39m(plan)\n", + "\u001b[31mNameError\u001b[39m: name 'extractor_obj' is not defined" + ] + } + ], "source": [ "query = \"\"\"\n", "SELECT p.primaryName, t.averageRating\n", diff --git a/research/tmp.py b/research/run.py similarity index 100% rename from research/tmp.py rename to research/run.py diff --git a/research/test_converter.py b/research/test_converter.py new file mode 100644 index 0000000..2751330 --- /dev/null +++ b/research/test_converter.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 + +def test_converter(): + assert 2 == 3 diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index ef38df2..ebb35b5 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -32,9 +32,10 @@ TEST(OptimizerTest, JoinCommutativity) { {"orders", 100}, })); + auto got = optimizer.Optimize(); - ASSERT_THAT(Serialize(got), ::testing::HasSubstr("(SeqScan orders) (SeqScan users)")); + ASSERT_THAT(Serialize(got), Eq("(NestedLoopJoin Inner (= (attr users id) (attr orders user_id)) (SeqScan orders) (SeqScan users))")); } } // namespace stewkk::sql From 6b292d7ab027432ba09ebbe3728b2dffb1f0b509 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 20 May 2026 19:27:46 +0300 Subject: [PATCH 038/120] Add missing physical ops --- include/stewkk/sql/logic/executor/plan.hpp | 22 ++++++++++- src/stewkk/sql/logic/executor/executor.cpp | 8 ++++ src/stewkk/sql/logic/executor/plan.cpp | 8 ++++ .../sql/logic/executor/plan_serializer.cpp | 38 +++++++++++++++++-- .../logic/executor/plan_serializer_test.cpp | 28 ++++++++++++++ 5 files changed, 99 insertions(+), 5 deletions(-) diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index a708649..25bfb9f 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -15,8 +15,10 @@ struct PhysicalProjection; struct PhysicalFilter; struct NestedLoopJoin; struct NestedLoopCrossJoin; +struct HashJoin; +struct MergeJoin; -using PhysicalPlanNode = std::variant; +using PhysicalPlanNode = std::variant; struct SeqScan { std::string table; @@ -54,4 +56,22 @@ struct NestedLoopCrossJoin { bool operator==(const NestedLoopCrossJoin&) const; }; +struct HashJoin { + std::shared_ptr lhs; + std::shared_ptr rhs; + JoinType type; + Expression qual; + + bool operator==(const HashJoin&) const; +}; + +struct MergeJoin { + std::shared_ptr lhs; + std::shared_ptr rhs; + JoinType type; + Expression qual; + + bool operator==(const MergeJoin&) const; +}; + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index fc32211..9816729 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -434,6 +434,14 @@ boost::asio::awaitable Executor::Execute(const Physica co_await executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); co_return; } + boost::asio::awaitable operator()(const HashJoin&) { + throw std::runtime_error("HashJoin execution not implemented"); + co_return; + } + boost::asio::awaitable operator()(const MergeJoin&) { + throw std::runtime_error("MergeJoin execution not implemented"); + co_return; + } AttributesInfoChannel& attr_chan; TuplesChannel& tuples_chan; diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 3649726..8029ac9 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -18,4 +18,12 @@ bool NestedLoopCrossJoin::operator==(const NestedLoopCrossJoin& other) const { return *lhs == *other.lhs && *rhs == *other.rhs; } +bool HashJoin::operator==(const HashJoin& other) const { + return *lhs == *other.lhs && *rhs == *other.rhs && type == other.type && qual == other.qual; +} + +bool MergeJoin::operator==(const MergeJoin& other) const { + return *lhs == *other.lhs && *rhs == *other.rhs && type == other.type && qual == other.qual; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 3290d55..df91bcf 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -105,6 +105,16 @@ std::string SerializeNode(const PhysicalPlanNode& node) { SerializeJoinType(n.type), SerializeExpr(n.qual), SerializeNode(*n.lhs), SerializeNode(*n.rhs)); } + std::string operator()(const HashJoin& n) const { + return std::format("(HashJoin {} {} {} {})", + SerializeJoinType(n.type), SerializeExpr(n.qual), + SerializeNode(*n.lhs), SerializeNode(*n.rhs)); + } + std::string operator()(const MergeJoin& n) const { + return std::format("(MergeJoin {} {} {} {})", + SerializeJoinType(n.type), SerializeExpr(n.qual), + SerializeNode(*n.lhs), SerializeNode(*n.rhs)); + } }; return std::visit(Visitor{}, node); } @@ -283,7 +293,7 @@ PhysicalPlanNode ParseNode(ParseState& s) { std::make_shared(std::move(rhs)), }; } - if (head == "NestedLoopJoin") { + auto ParseJoinNode = [&]() -> JoinT { auto type_str = s.ExpectAtom(); auto it = kJoinTypes.find(type_str); if (it == kJoinTypes.end()) @@ -292,13 +302,17 @@ PhysicalPlanNode ParseNode(ParseState& s) { auto lhs = ParseNode(s); auto rhs = ParseNode(s); s.ExpectRParen(); - return NestedLoopJoin{ + return JoinT{ std::make_shared(std::move(lhs)), std::make_shared(std::move(rhs)), it->second, std::move(qual), }; - } + }; + + if (head == "NestedLoopJoin") return ParseJoinNode.template operator()(); + if (head == "HashJoin") return ParseJoinNode.template operator()(); + if (head == "MergeJoin") return ParseJoinNode.template operator()(); throw std::runtime_error(std::format("unknown plan node: '{}'", head)); } @@ -357,7 +371,23 @@ struct DotBuilder { int operator()(const NestedLoopJoin& n) { int lhs = std::visit(*this, *n.lhs); int rhs = std::visit(*this, *n.rhs); - int id = Emit(std::format("{}\\nON {}", ToString(n.type), ToString(n.qual))); + int id = Emit(std::format("NL {}\\nON {}", ToString(n.type), ToString(n.qual))); + EmitEdge(lhs, id); + EmitEdge(rhs, id); + return id; + } + int operator()(const HashJoin& n) { + int lhs = std::visit(*this, *n.lhs); + int rhs = std::visit(*this, *n.rhs); + int id = Emit(std::format("Hash {}\\nON {}", ToString(n.type), ToString(n.qual))); + EmitEdge(lhs, id); + EmitEdge(rhs, id); + return id; + } + int operator()(const MergeJoin& n) { + int lhs = std::visit(*this, *n.lhs); + int rhs = std::visit(*this, *n.rhs); + int id = Emit(std::format("Merge {}\\nON {}", ToString(n.type), ToString(n.qual))); EmitEdge(lhs, id); EmitEdge(rhs, id); return id; diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index 6bc63da..ad2af53 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -157,6 +157,34 @@ TEST(PlanSerializerTest, DeepNestedPlan) { EXPECT_THAT(RoundTrip(plan), Eq(plan)); } +TEST(PlanSerializerTest, HashJoin) { + PhysicalPlanNode plan = HashJoin{ + std::make_shared(SeqScan{"a"}), + std::make_shared(SeqScan{"b"}), + JoinType::kInner, + BinaryExpression{ + std::make_shared(Attribute{"a", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"b", "id"}), + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + +TEST(PlanSerializerTest, MergeJoin) { + PhysicalPlanNode plan = MergeJoin{ + std::make_shared(SeqScan{"a"}), + std::make_shared(SeqScan{"b"}), + JoinType::kLeft, + BinaryExpression{ + std::make_shared(Attribute{"a", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"b", "id"}), + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); +} + TEST(PlanSerializerDotTest, SmokeTest) { PhysicalPlanNode plan = NestedLoopJoin{ std::make_shared(SeqScan{"a"}), From d4df2e5dc56ea6e80101c31f6544e2558837e284 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 20 May 2026 19:54:18 +0300 Subject: [PATCH 039/120] Implement converter --- include/stewkk/sql/logic/executor/plan.hpp | 10 +- research/converter.py | 309 ++++++++++++++++++ research/dump_plan.py | 20 ++ research/ms-server-plans/cross_join.xml | 71 ++++ research/ms-server-plans/filter_and.xml | 113 +++++++ research/ms-server-plans/filter_eq.xml | 83 +++++ research/ms-server-plans/filter_gt.xml | 95 ++++++ research/ms-server-plans/filter_lt.xml | 95 ++++++ research/ms-server-plans/filter_not.xml | 81 +++++ research/ms-server-plans/filter_or.xml | 95 ++++++ research/ms-server-plans/inner_join.xml | 121 +++++++ .../join_compound_predicate.xml | 137 ++++++++ research/ms-server-plans/join_with_filter.xml | 139 ++++++++ research/ms-server-plans/left_join.xml | 136 ++++++++ research/ms-server-plans/seq_scan.xml | 61 ++++ research/test_converter.py | 103 +++++- src/stewkk/sql/logic/executor/executor.cpp | 4 + src/stewkk/sql/logic/executor/plan.cpp | 4 + .../sql/logic/executor/plan_serializer.cpp | 12 + .../logic/executor/plan_serializer_test.cpp | 13 + 20 files changed, 1699 insertions(+), 3 deletions(-) create mode 100644 research/converter.py create mode 100644 research/dump_plan.py create mode 100644 research/ms-server-plans/cross_join.xml create mode 100644 research/ms-server-plans/filter_and.xml create mode 100644 research/ms-server-plans/filter_eq.xml create mode 100644 research/ms-server-plans/filter_gt.xml create mode 100644 research/ms-server-plans/filter_lt.xml create mode 100644 research/ms-server-plans/filter_not.xml create mode 100644 research/ms-server-plans/filter_or.xml create mode 100644 research/ms-server-plans/inner_join.xml create mode 100644 research/ms-server-plans/join_compound_predicate.xml create mode 100644 research/ms-server-plans/join_with_filter.xml create mode 100644 research/ms-server-plans/left_join.xml create mode 100644 research/ms-server-plans/seq_scan.xml diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 25bfb9f..9e8bea8 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -17,8 +17,9 @@ struct NestedLoopJoin; struct NestedLoopCrossJoin; struct HashJoin; struct MergeJoin; +struct IndexSeek; -using PhysicalPlanNode = std::variant; +using PhysicalPlanNode = std::variant; struct SeqScan { std::string table; @@ -74,4 +75,11 @@ struct MergeJoin { bool operator==(const MergeJoin&) const; }; +struct IndexSeek { + std::string table; + Expression predicate; + + bool operator==(const IndexSeek&) const; +}; + } // namespace stewkk::sql diff --git a/research/converter.py b/research/converter.py new file mode 100644 index 0000000..32ac4d9 --- /dev/null +++ b/research/converter.py @@ -0,0 +1,309 @@ +#!/usr/bin/env python3 +""" +Converter from MS SQL Server ShowPlanXML to serialized physical plan format. + +Serialized format (s-expressions): + (SeqScan table) + (PhysicalFilter EXPR SOURCE) + (PhysicalProjection (exprs EXPR...) SOURCE) + (NestedLoopCrossJoin LHS RHS) + (NestedLoopJoin JoinType EXPR LHS RHS) JoinType: Inner | Full | Left | Right + +Expressions: + 42 NULL TRUE FALSE UNKNOWN + (attr table column) + (OP LHS RHS) OP: = != > < >= <= and or + - * / % ^ + (not EXPR) + (uminus EXPR) + +Known missing operators in the target format (raise NotImplementedError): + - IS NULL / IS NOT NULL (MS SQL CompareOp "IS" / "IS NOT") +""" + +import xml.etree.ElementTree as ET + +NS = "{http://schemas.microsoft.com/sqlserver/2004/07/showplan}" + +_JOIN_TYPES = { + "Inner Join": "Inner", + "Left Outer Join": "Left", + "Right Outer Join":"Right", + "Full Outer Join": "Full", +} + +_COMPARE_OPS = { + "EQ": "=", + "NE": "!=", + "GT": ">", + "LT": "<", + "GE": ">=", + "LE": "<=", +} + +_LOGICAL_OPS = { + "AND": "and", + "OR": "or", +} + +_ARITHMETIC_OPS = { + "ADD": "+", + "SUB": "-", + "MUL": "*", + "DIV": "/", + "MOD": "%", +} + + +def convert(plan_xml: str) -> str: + root = ET.fromstring(plan_xml) + top_relop = root.find(f".//{NS}RelOp") + if top_relop is None: + raise ValueError("no RelOp found in plan XML") + return _convert_relop(top_relop) + + +# ─── Operator conversion ───────────────────────────────────────────────────── + +def _convert_relop(relop: ET.Element) -> str: + phys_op = relop.get("PhysicalOp", "") + logical_op = relop.get("LogicalOp", "") + + if phys_op in ("Clustered Index Scan", "Index Scan", "Table Scan", + "Clustered Index Seek", "Index Seek"): + return _convert_scan(relop) + if phys_op == "Nested Loops": + return _convert_nested_loops(relop, logical_op) + if phys_op == "Hash Match": + return _convert_hash_match(relop, logical_op) + if phys_op == "Merge Join": + return _convert_merge_join(relop, logical_op) + + raise NotImplementedError(f"unhandled PhysicalOp: {phys_op!r} (LogicalOp={logical_op!r})") + + +_SEEK_SCAN_TYPES = {"GT": ">", "GE": ">=", "LT": "<", "LE": "<=", "EQ": "="} + + +def _convert_scan(relop: ET.Element) -> str: + phys_op = relop.get("PhysicalOp", "") + obj = relop.find(f".//{NS}IndexScan/{NS}Object") + if obj is None: + obj = relop.find(f".//{NS}TableScan/{NS}Object") + if obj is None: + raise ValueError("cannot find Object element in scan") + table = (obj.get("Alias") or obj.get("Table", "")).strip("[]") + + if "Seek" in phys_op: + seek_pred = _convert_seek_predicates(relop, table) + if seek_pred is None: + raise ValueError(f"Index Seek node has no SeekPredicates: {phys_op!r}") + base = f"(IndexSeek {seek_pred} {table})" + else: + base = f"(SeqScan {table})" + + # Residual predicate (pushed-down filter evaluated after the scan/seek) + pred_elem = relop.find(f".//{NS}IndexScan/{NS}Predicate/{NS}ScalarOperator") + if pred_elem is None: + pred_elem = relop.find(f".//{NS}TableScan/{NS}Predicate/{NS}ScalarOperator") + if pred_elem is not None: + return f"(PhysicalFilter {_convert_scalar(pred_elem)} {base})" + + return base + + +def _convert_seek_predicates(relop: ET.Element, table: str) -> str | None: + seek_preds = relop.find(f".//{NS}SeekPredicates") + if seek_preds is None: + return None + + conditions = [] + for range_elem in (seek_preds.findall(f".//{NS}StartRange") + + seek_preds.findall(f".//{NS}EndRange")): + op = _SEEK_SCAN_TYPES.get(range_elem.get("ScanType", "")) + if not op: + continue + col_refs = range_elem.findall(f"{NS}RangeColumns/{NS}ColumnReference") + expr_elems = range_elem.findall(f"{NS}RangeExpressions/{NS}ScalarOperator") + for col_ref, expr_elem in zip(col_refs, expr_elems): + col = col_ref.get("Column", "").strip("[]") + col_table = (col_ref.get("Alias") or col_ref.get("Table") or table).strip("[]") + conditions.append(f"({op} (attr {col_table} {col}) {_convert_scalar(expr_elem)})") + + if not conditions: + return None + result = conditions[0] + for c in conditions[1:]: + result = f"(and {result} {c})" + return result + + +def _convert_nested_loops(relop: ET.Element, logical_op: str) -> str: + nl = relop.find(f"{NS}NestedLoops") + if nl is None: + raise ValueError("NestedLoops element missing") + lhs, rhs = _expect_two_relops(nl, "NestedLoops") + + pred_elem = nl.find(f"{NS}Predicate/{NS}ScalarOperator") + if pred_elem is None: + return f"(NestedLoopCrossJoin {_convert_relop(lhs)} {_convert_relop(rhs)})" + + join_type = _JOIN_TYPES.get(logical_op, "Inner") + pred = _convert_scalar(pred_elem) + return f"(NestedLoopJoin {join_type} {pred} {_convert_relop(lhs)} {_convert_relop(rhs)})" + + +def _convert_hash_match(relop: ET.Element, logical_op: str) -> str: + hash_elem = relop.find(f"{NS}Hash") + if hash_elem is None: + raise ValueError("Hash element missing from Hash Match node") + build_relop, probe_relop = _expect_two_relops(hash_elem, "Hash") + + build_refs = hash_elem.findall(f"{NS}HashKeysBuild/{NS}ColumnReference") + probe_refs = hash_elem.findall(f"{NS}HashKeysProbe/{NS}ColumnReference") + if not build_refs or len(build_refs) != len(probe_refs): + raise ValueError("cannot reconstruct Hash Match predicate: key lists empty or mismatched") + + pairs = [f"(= {_col_ref_to_attr(b)} {_col_ref_to_attr(p)})" + for b, p in zip(build_refs, probe_refs)] + pred = pairs[0] + for p in pairs[1:]: + pred = f"(and {pred} {p})" + + join_type = _JOIN_TYPES.get(logical_op, "Inner") + return f"(HashJoin {join_type} {pred} {_convert_relop(build_relop)} {_convert_relop(probe_relop)})" + + +def _convert_merge_join(relop: ET.Element, logical_op: str) -> str: + merge = relop.find(f"{NS}Merge") + if merge is None: + raise ValueError("Merge element missing from Merge Join node") + outer_relop, inner_relop = _expect_two_relops(merge, "Merge") + + pred_elem = merge.find(f"{NS}Residual/{NS}ScalarOperator") + if pred_elem is None: + raise NotImplementedError("Merge Join with no Residual predicate") + + join_type = _JOIN_TYPES.get(logical_op, "Inner") + pred = _convert_scalar(pred_elem) + return f"(MergeJoin {join_type} {pred} {_convert_relop(outer_relop)} {_convert_relop(inner_relop)})" + + +def _expect_two_relops(parent: ET.Element, label: str) -> tuple[ET.Element, ET.Element]: + children = parent.findall(f"{NS}RelOp") + if len(children) != 2: + raise ValueError(f"{label} has {len(children)} RelOp children, expected 2") + return children[0], children[1] + + +def _col_ref_to_attr(cr: ET.Element) -> str: + table = (cr.get("Alias") or cr.get("Table", "")).strip("[]") + col = cr.get("Column", "").strip("[]") + return f"(attr {table} {col})" + + +# ─── Scalar expression conversion ──────────────────────────────────────────── + +def _convert_scalar(scalar: ET.Element) -> str: + convert = scalar.find(f"{NS}Convert") + if convert is not None: + child = convert.find(f"{NS}ScalarOperator") + if child is None: + raise ValueError("Convert has no child ScalarOperator") + return _convert_scalar(child) + + compare = scalar.find(f"{NS}Compare") + if compare is not None: + return _convert_compare(compare) + + logical = scalar.find(f"{NS}Logical") + if logical is not None: + return _convert_logical(logical) + + arithmetic = scalar.find(f"{NS}Arithmetic") + if arithmetic is not None: + return _convert_arithmetic(arithmetic) + + identifier = scalar.find(f"{NS}Identifier") + if identifier is not None: + return _convert_identifier(identifier) + + const = scalar.find(f"{NS}Const") + if const is not None: + return _convert_const(const) + + raise NotImplementedError(f"unhandled ScalarOperator children: {[c.tag.split('}')[1] for c in scalar]}") + + +def _convert_compare(compare: ET.Element) -> str: + op_str = compare.get("CompareOp", "") + + if op_str in ("IS", "IS NOT"): + raise NotImplementedError( + f"CompareOp={op_str!r} (IS NULL / IS NOT NULL) is not supported by the target plan format: " + "BinaryOp in the project has no kIsNull / kIsNotNull" + ) + + op = _COMPARE_OPS.get(op_str) + if op is None: + raise NotImplementedError(f"unhandled CompareOp: {op_str!r}") + + scalars = compare.findall(f"{NS}ScalarOperator") + if len(scalars) != 2: + raise ValueError(f"Compare has {len(scalars)} ScalarOperator children, expected 2") + return f"({op} {_convert_scalar(scalars[0])} {_convert_scalar(scalars[1])})" + + +def _convert_logical(logical: ET.Element) -> str: + op_str = logical.get("Operation", "").upper() + children = [_convert_scalar(s) for s in logical.findall(f"{NS}ScalarOperator")] + + if op_str == "NOT": + if len(children) != 1: + raise ValueError(f"NOT expects 1 child, got {len(children)}") + return f"(not {children[0]})" + + op = _LOGICAL_OPS.get(op_str) + if op is None: + raise NotImplementedError(f"unhandled Logical Operation: {op_str!r}") + # MS SQL AND/OR can be n-ary — fold left into binary pairs. + result = children[0] + for child in children[1:]: + result = f"({op} {result} {child})" + return result + + +def _convert_arithmetic(arithmetic: ET.Element) -> str: + op_str = arithmetic.get("Operation", "").upper() + op = _ARITHMETIC_OPS.get(op_str) + if op is None: + raise NotImplementedError(f"unhandled Arithmetic Operation: {op_str!r}") + scalars = arithmetic.findall(f"{NS}ScalarOperator") + if len(scalars) != 2: + raise ValueError(f"Arithmetic has {len(scalars)} ScalarOperator children, expected 2") + return f"({op} {_convert_scalar(scalars[0])} {_convert_scalar(scalars[1])})" + + +def _convert_identifier(identifier: ET.Element) -> str: + col_ref = identifier.find(f"{NS}ColumnReference") + if col_ref is None: + raise ValueError("Identifier has no ColumnReference") + column = col_ref.get("Column", "").strip("[]") + + if column.startswith("ConstExpr"): + child = col_ref.find(f"{NS}ScalarOperator") + if child is None: + raise ValueError(f"ConstExpr {column!r} has no child ScalarOperator") + return _convert_scalar(child) + + if column.startswith("@"): + raise NotImplementedError( + f"parameter reference {column!r} — use OPTION (RECOMPILE) to embed literal values in the plan" + ) + + table = (col_ref.get("Alias") or col_ref.get("Table", "")).strip("[]") + return f"(attr {table} {column})" + + +def _convert_const(const: ET.Element) -> str: + value = const.get("ConstValue", "").strip("()") + return value diff --git a/research/dump_plan.py b/research/dump_plan.py new file mode 100644 index 0000000..4ccd847 --- /dev/null +++ b/research/dump_plan.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 +"""Phase 0 helper: pretty-print an MS SQL Server execution plan XML.""" + +import sys +import xml.dom.minidom + +from ms_sql_server_extractor import MsSqlServerExtractor + +QUERY = sys.argv[1] if len(sys.argv) > 1 else "SELECT * FROM dbo.Titles WHERE isAdult = 1" + +extractor = MsSqlServerExtractor( + dataset="./datasets", + host="localhost", + port=1433, + user="sa", + password="Password123!", +) + +xml_str = extractor.extract(QUERY) +print(xml.dom.minidom.parseString(xml_str).toprettyxml(indent=" ")) diff --git a/research/ms-server-plans/cross_join.xml b/research/ms-server-plans/cross_join.xml new file mode 100644 index 0000000..c623c97 --- /dev/null +++ b/research/ms-server-plans/cross_join.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/filter_and.xml b/research/ms-server-plans/filter_and.xml new file mode 100644 index 0000000..e2605cb --- /dev/null +++ b/research/ms-server-plans/filter_and.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/filter_eq.xml b/research/ms-server-plans/filter_eq.xml new file mode 100644 index 0000000..97f6e2a --- /dev/null +++ b/research/ms-server-plans/filter_eq.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/filter_gt.xml b/research/ms-server-plans/filter_gt.xml new file mode 100644 index 0000000..d7463d2 --- /dev/null +++ b/research/ms-server-plans/filter_gt.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/filter_lt.xml b/research/ms-server-plans/filter_lt.xml new file mode 100644 index 0000000..13ac111 --- /dev/null +++ b/research/ms-server-plans/filter_lt.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/filter_not.xml b/research/ms-server-plans/filter_not.xml new file mode 100644 index 0000000..a6c9cd8 --- /dev/null +++ b/research/ms-server-plans/filter_not.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/filter_or.xml b/research/ms-server-plans/filter_or.xml new file mode 100644 index 0000000..bc4fc89 --- /dev/null +++ b/research/ms-server-plans/filter_or.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/inner_join.xml b/research/ms-server-plans/inner_join.xml new file mode 100644 index 0000000..aa4ef91 --- /dev/null +++ b/research/ms-server-plans/inner_join.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/join_compound_predicate.xml b/research/ms-server-plans/join_compound_predicate.xml new file mode 100644 index 0000000..4b7078f --- /dev/null +++ b/research/ms-server-plans/join_compound_predicate.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/join_with_filter.xml b/research/ms-server-plans/join_with_filter.xml new file mode 100644 index 0000000..7657b97 --- /dev/null +++ b/research/ms-server-plans/join_with_filter.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/left_join.xml b/research/ms-server-plans/left_join.xml new file mode 100644 index 0000000..2ba5d6b --- /dev/null +++ b/research/ms-server-plans/left_join.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/ms-server-plans/seq_scan.xml b/research/ms-server-plans/seq_scan.xml new file mode 100644 index 0000000..42aeb63 --- /dev/null +++ b/research/ms-server-plans/seq_scan.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/research/test_converter.py b/research/test_converter.py index 2751330..53d14a4 100644 --- a/research/test_converter.py +++ b/research/test_converter.py @@ -1,4 +1,103 @@ #!/usr/bin/env python3 -def test_converter(): - assert 2 == 3 +import pytest + +from ms_sql_server_extractor import MsSqlServerExtractor +from converter import convert + + +@pytest.fixture(scope="session") +def extractor(): + return MsSqlServerExtractor( + dataset="./datasets", + host="localhost", + port=1433, + user="sa", + password="Password123!", + ) + + +def extract_plan(extractor, sql: str) -> str: + """Extract plan with OPTION (RECOMPILE) so literal values appear in the XML instead of @N placeholders.""" + return extractor.extract(sql + " OPTION (RECOMPILE)") + + +def test_seq_scan(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles") + result = convert(plan) + assert result == "(SeqScan Titles)" + + +def test_filter_eq(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.isAdult = 1") + result = convert(plan) + assert result == "(PhysicalFilter (= (attr Titles isAdult) 1) (SeqScan Titles))" + + +def test_filter_gt(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.titleId > 5000") + result = convert(plan) + assert result == "(IndexSeek (> (attr Titles titleId) 5000) Titles)" + + +def test_filter_lt(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.titleId < 5000") + result = convert(plan) + assert result == "(IndexSeek (< (attr Titles titleId) 5000) Titles)" + + +def test_filter_and(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.isAdult = 1 AND Titles.titleId > 5000") + result = convert(plan) + assert result == "(PhysicalFilter (= (attr Titles isAdult) 1) (IndexSeek (> (attr Titles titleId) 5000) Titles))" + + +@pytest.mark.skip(reason="IS NULL not supported in target plan format (BinaryOp lacks kIsNull)") +def test_filter_or(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.isAdult = 0 OR Titles.endYear IS NULL") + result = convert(plan) + assert result == "" + + +def test_filter_not(extractor): + plan = extract_plan(extractor, "SELECT * FROM Titles WHERE NOT Titles.isAdult = 1") + result = convert(plan) + assert result == "(PhysicalFilter (!= (attr Titles isAdult) 1) (SeqScan Titles))" + + +def test_cross_join(extractor): + plan = extract_plan(extractor, "SELECT * FROM TitleTypes CROSS JOIN Genres") + result = convert(plan) + assert result == "(NestedLoopCrossJoin (SeqScan TitleTypes) (SeqScan Genres))" + + +def test_inner_join(extractor): + plan = extract_plan(extractor, + "SELECT * FROM TitlePrincipals JOIN Principals ON TitlePrincipals.principalId = Principals.principalId" + ) + result = convert(plan) + assert result == "(HashJoin Inner (= (attr Principals principalId) (attr TitlePrincipals principalId)) (SeqScan Principals) (SeqScan TitlePrincipals))" + + +def test_left_join(extractor): + plan = extract_plan(extractor, + "SELECT * FROM Titles LEFT OUTER JOIN Episodes ON Titles.titleId = Episodes.episodeId" + ) + result = convert(plan) + assert result == "(MergeJoin Left (= (attr Titles titleId) (attr Episodes episodeId)) (SeqScan Titles) (SeqScan Episodes))" + + +def test_join_with_filter(extractor): + plan = extract_plan(extractor, + "SELECT * FROM TitlePrincipals JOIN Principals ON TitlePrincipals.principalId = Principals.principalId WHERE TitlePrincipals.ordinal > 1" + ) + result = convert(plan) + assert result == "(HashJoin Inner (= (attr Principals principalId) (attr TitlePrincipals principalId)) (SeqScan Principals) (PhysicalFilter (> (attr TitlePrincipals ordinal) 1) (SeqScan TitlePrincipals)))" + + +def test_join_compound_predicate(extractor): + plan = extract_plan(extractor, + "SELECT * FROM TitlePrincipals JOIN Principals ON TitlePrincipals.principalId = Principals.principalId AND TitlePrincipals.ordinal = 1" + ) + result = convert(plan) + assert result == "(HashJoin Inner (= (attr TitlePrincipals principalId) (attr Principals principalId)) (PhysicalFilter (= (attr TitlePrincipals ordinal) 1) (SeqScan TitlePrincipals)) (SeqScan Principals))" diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 9816729..044580e 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -442,6 +442,10 @@ boost::asio::awaitable Executor::Execute(const Physica throw std::runtime_error("MergeJoin execution not implemented"); co_return; } + boost::asio::awaitable operator()(const IndexSeek&) { + throw std::runtime_error("IndexSeek execution not implemented"); + co_return; + } AttributesInfoChannel& attr_chan; TuplesChannel& tuples_chan; diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 8029ac9..e269a93 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -26,4 +26,8 @@ bool MergeJoin::operator==(const MergeJoin& other) const { return *lhs == *other.lhs && *rhs == *other.rhs && type == other.type && qual == other.qual; } +bool IndexSeek::operator==(const IndexSeek& other) const { + return table == other.table && predicate == other.predicate; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index df91bcf..e326353 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -105,6 +105,9 @@ std::string SerializeNode(const PhysicalPlanNode& node) { SerializeJoinType(n.type), SerializeExpr(n.qual), SerializeNode(*n.lhs), SerializeNode(*n.rhs)); } + std::string operator()(const IndexSeek& n) const { + return std::format("(IndexSeek {} {})", SerializeExpr(n.predicate), n.table); + } std::string operator()(const HashJoin& n) const { return std::format("(HashJoin {} {} {} {})", SerializeJoinType(n.type), SerializeExpr(n.qual), @@ -310,6 +313,12 @@ PhysicalPlanNode ParseNode(ParseState& s) { }; }; + if (head == "IndexSeek") { + auto pred = ParseExpr(s); + auto table = s.ExpectAtom(); + s.ExpectRParen(); + return IndexSeek{std::move(table), std::move(pred)}; + } if (head == "NestedLoopJoin") return ParseJoinNode.template operator()(); if (head == "HashJoin") return ParseJoinNode.template operator()(); if (head == "MergeJoin") return ParseJoinNode.template operator()(); @@ -376,6 +385,9 @@ struct DotBuilder { EmitEdge(rhs, id); return id; } + int operator()(const IndexSeek& n) { + return Emit(std::format("IndexSeek\\n{}\\n{}", n.table, ToString(n.predicate))); + } int operator()(const HashJoin& n) { int lhs = std::visit(*this, *n.lhs); int rhs = std::visit(*this, *n.rhs); diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index ad2af53..b617101 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -157,6 +157,19 @@ TEST(PlanSerializerTest, DeepNestedPlan) { EXPECT_THAT(RoundTrip(plan), Eq(plan)); } +TEST(PlanSerializerTest, IndexSeek) { + PhysicalPlanNode plan = IndexSeek{ + "users", + BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kGt, + std::make_shared(IntConst{42}), + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + EXPECT_THAT(Serialize(plan), Eq("(IndexSeek (> (attr users id) 42) users)")); +} + TEST(PlanSerializerTest, HashJoin) { PhysicalPlanNode plan = HashJoin{ std::make_shared(SeqScan{"a"}), From 3157f2ec779c98ce55d077e739f3095a5575b423 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 20 May 2026 20:25:42 +0300 Subject: [PATCH 040/120] Add simple random query generator --- research/query_generator.py | 434 ++++++++++++++++++++++++++++++++++++ 1 file changed, 434 insertions(+) create mode 100644 research/query_generator.py diff --git a/research/query_generator.py b/research/query_generator.py new file mode 100644 index 0000000..9af297f --- /dev/null +++ b/research/query_generator.py @@ -0,0 +1,434 @@ +#!/usr/bin/env python3 +""" +Random SQL query generator. + +Builds queries in a strict SELECT-Project-Filter-Join (SPJ) subset that matches +what the C++ parser accepts, then renders them in pluggable SQL dialects. + +Currently supported dialects: + - PostgresSubsetDialect (the subset the C++ ANTLR visitor accepts) + - MsSqlDialect (T-SQL with bracket quoting and schema prefix) + +Usage: + python query_generator.py \\ + --data-dir ../test/static/executor/test_data \\ + [--seed 42] [--count 5] [--dialect pg|mssql] +""" +from __future__ import annotations + +import argparse +import csv +import re +import random +from dataclasses import dataclass +from pathlib import Path +from typing import Protocol + + +# --------------------------------------------------------------------------- +# Schema +# --------------------------------------------------------------------------- + +@dataclass +class Column: + name: str + type: str # "int" only in current C++ implementation + + +@dataclass +class TableSchema: + name: str + columns: list[Column] + sample_values: dict[str, list[int]] # col_name -> sampled actual values + + +@dataclass +class Schema: + tables: dict[str, TableSchema] + + +def load_schema(csv_dir: Path, max_sample: int = 200) -> Schema: + """ + Read all *.csv files from csv_dir. + Files whose stem ends in _ (e.g. departments_1000) are skipped — + they share a schema with the base table and are only used for benchmarks. + """ + tables: dict[str, TableSchema] = {} + for path in sorted(csv_dir.glob("*.csv")): + if re.search(r"_\d+$", path.stem): + continue + with path.open() as f: + reader = csv.reader(f) + header_row = next(reader) + columns = [] + for h in header_row: + col_name, col_type = h.strip().split(":") + columns.append(Column(col_name.strip(), col_type.strip())) + + sample_values: dict[str, list[int]] = {c.name: [] for c in columns} + for i, row in enumerate(reader): + if i >= max_sample: + break + for col, val in zip(columns, row): + v = val.strip() + if v != "NULL": + try: + sample_values[col.name].append(int(v)) + except ValueError: + pass + + tables[path.stem] = TableSchema(path.stem, columns, sample_values) + return Schema(tables) + + +# --------------------------------------------------------------------------- +# Query IR — only constructs that the C++ parser accepts +# --------------------------------------------------------------------------- + +@dataclass +class Attr: + table: str + column: str + + +@dataclass +class IntLit: + value: int + + +@dataclass +class NullLit: + pass + + +@dataclass +class BoolLit: + value: bool + + +@dataclass +class BinaryExpr: + # Comparison: "=", "!=", "<", ">", "<=", ">=" + # Logical: "and", "or" + # Arithmetic: "+", "-", "*" + op: str + lhs: "Expr" + rhs: "Expr" + + +@dataclass +class UnaryExpr: + op: str # "not" | "uminus" + child: "Expr" + + +@dataclass +class IsNullExpr: + child: "Expr" + negated: bool # False -> IS NULL, True -> IS NOT NULL + + +Expr = Attr | IntLit | NullLit | BoolLit | BinaryExpr | UnaryExpr | IsNullExpr + + +@dataclass +class TableScan: + name: str + + +@dataclass +class ExplicitJoin: + join_type: str # "INNER" | "LEFT" | "RIGHT" | "FULL" + lhs: "TableRef" + rhs: "TableRef" + on: Expr + + +@dataclass +class CrossJoin: + lhs: "TableRef" + rhs: "TableRef" + + +TableRef = TableScan | ExplicitJoin | CrossJoin + + +@dataclass +class SelectQuery: + targets: list[Attr] + from_: TableRef + where: Expr | None + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + +def _tables_in_ref(ref: TableRef) -> list[str]: + if isinstance(ref, TableScan): + return [ref.name] + return _tables_in_ref(ref.lhs) + _tables_in_ref(ref.rhs) + + +def _available_attrs(schema: Schema, ref: TableRef) -> list[Attr]: + return [ + Attr(t, col.name) + for t in _tables_in_ref(ref) + if t in schema.tables + for col in schema.tables[t].columns + ] + + +# --------------------------------------------------------------------------- +# Random query builder +# --------------------------------------------------------------------------- + +_COMPARISON_OPS = ["=", "!=", "<", ">", "<=", ">="] +_LOGICAL_OPS = ["and", "or"] +_ARITHMETIC_OPS = ["+", "-", "*"] +_JOIN_TYPES = ["INNER", "LEFT", "RIGHT", "FULL"] + + +class QueryGenerator: + def __init__(self, schema: Schema, rng: random.Random): + self.schema = schema + self.rng = rng + + def generate(self) -> SelectQuery: + from_ = self._gen_from() + attrs = _available_attrs(self.schema, from_) + + n_targets = self.rng.randint(1, min(3, len(attrs))) + targets = self.rng.sample(attrs, n_targets) + + where = self._gen_predicate(attrs) if self.rng.random() < 0.6 else None + return SelectQuery(targets, from_, where) + + def _gen_from(self) -> TableRef: + names = list(self.schema.tables.keys()) + n = self.rng.randint(1, min(3, len(names))) + chosen = self.rng.sample(names, n) + + ref: TableRef = TableScan(chosen[0]) + for table_name in chosen[1:]: + rhs: TableRef = TableScan(table_name) + + # Try equi-join on a shared column name first. + lhs_col_names = { + c.name + for t in _tables_in_ref(ref) + for c in self.schema.tables[t].columns + } + rhs_col_names = {c.name for c in self.schema.tables[table_name].columns} + shared = sorted(lhs_col_names & rhs_col_names) + + if shared and self.rng.random() < 0.7: + col = self.rng.choice(shared) + # Pick a LHS table that actually has this column. + lhs_candidate = self.rng.choice([ + t for t in _tables_in_ref(ref) + if any(c.name == col for c in self.schema.tables[t].columns) + ]) + on: Expr = BinaryExpr("=", Attr(lhs_candidate, col), Attr(table_name, col)) + jtype = self.rng.choice(_JOIN_TYPES) + ref = ExplicitJoin(jtype, ref, rhs, on) + else: + ref = CrossJoin(ref, rhs) + + return ref + + def _gen_predicate(self, attrs: list[Attr], depth: int = 0) -> Expr: + # Deeper recursion becomes a leaf comparison to avoid runaway trees. + if depth >= 2 or self.rng.random() < 0.45: + return self._gen_comparison(attrs) + + op = self.rng.choice(_LOGICAL_OPS) + lhs = self._gen_predicate(attrs, depth + 1) + rhs = self._gen_predicate(attrs, depth + 1) + return BinaryExpr(op, lhs, rhs) + + def _gen_comparison(self, attrs: list[Attr]) -> Expr: + attr = self.rng.choice(attrs) + + if self.rng.random() < 0.12: + return IsNullExpr(attr, negated=self.rng.random() < 0.5) + + op = self.rng.choice(_COMPARISON_OPS) + rhs = self._gen_int_expr(attr) + return BinaryExpr(op, attr, rhs) + + def _gen_int_expr(self, hint_attr: Attr) -> Expr: + sample = self.schema.tables[hint_attr.table].sample_values.get(hint_attr.column, []) + if sample and self.rng.random() < 0.75: + return IntLit(self.rng.choice(sample)) + return IntLit(self.rng.randint(1, 100)) + + +# --------------------------------------------------------------------------- +# Dialect protocol +# --------------------------------------------------------------------------- + +class Dialect(Protocol): + def fmt_table(self, name: str) -> str: ... + def fmt_col_ref(self, table: str, col: str) -> str: ... + def fmt_not_equals(self) -> str: ... + def fmt_join_keyword(self, join_type: str) -> str: ... + + +class PostgresSubsetDialect: + """Plain identifiers, no schema prefix. Matches the C++ ANTLR visitor.""" + + def fmt_table(self, name: str) -> str: + return name + + def fmt_col_ref(self, table: str, col: str) -> str: + return f"{table}.{col}" + + def fmt_not_equals(self) -> str: + return "!=" + + def fmt_join_keyword(self, join_type: str) -> str: + return { + "INNER": "JOIN", + "LEFT": "LEFT JOIN", + "RIGHT": "RIGHT JOIN", + "FULL": "FULL JOIN", + }[join_type] + + +class MsSqlDialect: + """Bracket-quoted identifiers with an optional schema prefix.""" + + def __init__(self, schema_prefix: str = "dbo"): + self._schema = schema_prefix + + def fmt_table(self, name: str) -> str: + if self._schema: + return f"{self._schema}.{name}" + return name + + def fmt_col_ref(self, table: str, col: str) -> str: + return f"{table}.{col}" + + def fmt_not_equals(self) -> str: + return "<>" + + def fmt_join_keyword(self, join_type: str) -> str: + return { + "INNER": "INNER JOIN", + "LEFT": "LEFT OUTER JOIN", + "RIGHT": "RIGHT OUTER JOIN", + "FULL": "FULL OUTER JOIN", + }[join_type] + + +# --------------------------------------------------------------------------- +# Renderer +# --------------------------------------------------------------------------- + +def render_expr(expr: Expr, d: Dialect) -> str: + match expr: + case Attr(table, col): + return d.fmt_col_ref(table, col) + case IntLit(value): + return str(value) + case NullLit(): + return "NULL" + case BoolLit(value): + return "TRUE" if value else "FALSE" + case BinaryExpr(op, lhs, rhs): + l = render_expr(lhs, d) + r = render_expr(rhs, d) + if op == "!=": + op = d.fmt_not_equals() + elif op in ("and", "or"): + op = op.upper() + return f"({l} {op} {r})" + return f"{l} {op} {r}" + case UnaryExpr("not", child): + return f"NOT ({render_expr(child, d)})" + case UnaryExpr("uminus", child): + return f"-{render_expr(child, d)}" + case IsNullExpr(child, negated): + c = render_expr(child, d) + return f"{c} IS NOT NULL" if negated else f"{c} IS NULL" + raise ValueError(f"unhandled expr type: {type(expr)}") + + +def render_table_ref(ref: TableRef, d: Dialect) -> str: + match ref: + case TableScan(name): + return d.fmt_table(name) + case CrossJoin(lhs, rhs): + return f"{render_table_ref(lhs, d)} CROSS JOIN {render_table_ref(rhs, d)}" + case ExplicitJoin(jtype, lhs, rhs, on): + kw = d.fmt_join_keyword(jtype) + return ( + f"{render_table_ref(lhs, d)}" + f" {kw} {render_table_ref(rhs, d)}" + f" ON {render_expr(on, d)}" + ) + raise ValueError(f"unhandled ref type: {type(ref)}") + + +def render_query(query: SelectQuery, d: Dialect) -> str: + targets = ", ".join(d.fmt_col_ref(a.table, a.column) for a in query.targets) + from_clause = render_table_ref(query.from_, d) + sql = f"SELECT {targets}\nFROM {from_clause}" + if query.where is not None: + sql += f"\nWHERE {render_expr(query.where, d)}" + return sql + + +# --------------------------------------------------------------------------- +# Registry — add new dialects here +# --------------------------------------------------------------------------- + +DIALECTS: dict[str, Dialect] = { + "pg": PostgresSubsetDialect(), + "mssql": MsSqlDialect(), +} + + +# --------------------------------------------------------------------------- +# CLI +# --------------------------------------------------------------------------- + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--data-dir", + default="../test/static/executor/test_data", + help="Directory containing *.csv table files", + ) + parser.add_argument("--seed", type=int, default=None) + parser.add_argument("--count", type=int, default=5) + parser.add_argument( + "--dialect", + choices=list(DIALECTS), + default=None, + help="Print only one dialect. Omit to print all.", + ) + args = parser.parse_args() + + schema = load_schema(Path(args.data_dir)) + print(f"Loaded tables: {', '.join(schema.tables)}\n") + + rng = random.Random(args.seed) + gen = QueryGenerator(schema, rng) + + dialects_to_print: dict[str, Dialect] = ( + {args.dialect: DIALECTS[args.dialect]} if args.dialect else DIALECTS + ) + + for i in range(1, args.count + 1): + query = gen.generate() + print(f"-- Query {i} " + "-" * 60) + for name, dialect in dialects_to_print.items(): + print(f"-- [{name}]") + print(render_query(query, dialect)) + print() + + +if __name__ == "__main__": + main() From 6611f4f743e48cf4637617483f6d200e14c504d7 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Thu, 21 May 2026 22:06:27 +0300 Subject: [PATCH 041/120] Impl reachability check --- include/stewkk/sql/logic/optimizer/group.hpp | 7 ++ .../stewkk/sql/logic/optimizer/optimizer.hpp | 8 ++ .../sql/logic/optimizer/reachability.hpp | 24 ++++ src/stewkk/sql/CMakeLists.txt | 1 + src/stewkk/sql/logic/optimizer/group.cpp | 4 + src/stewkk/sql/logic/optimizer/optimizer.cpp | 17 ++- .../sql/logic/optimizer/optimizer_test.cpp | 80 +++++++++++++ .../sql/logic/optimizer/reachability.cpp | 107 ++++++++++++++++++ 8 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 include/stewkk/sql/logic/optimizer/reachability.hpp create mode 100644 src/stewkk/sql/logic/optimizer/reachability.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index d66c54e..03ca40d 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -16,15 +16,22 @@ class Group { struct ToNotNull { utils::NotNull operator()(LogicalExpr& e) const { return &e; } }; + struct ToNotNullPhysical { + utils::NotNull operator()(PhysicalExpr& e) const { return &e; } + }; public: using LogicalExprs = std::ranges::transform_view< std::ranges::ref_view>, ToNotNull>; + using PhysicalExprs = std::ranges::transform_view< + std::ranges::ref_view>, + ToNotNullPhysical>; utils::NotNull AddLogicalExpr(LogicalOperator root_operator); utils::NotNull AddPhysicalExpr(PhysicalOperator root_operator); LogicalExprs GetLogicalExprs(); + PhysicalExprs GetPhysicalExprs(); size_t GetId() const; diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index 864e5d0..f69082c 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -27,7 +27,15 @@ class Optimizer { PhysicalPlanNode Optimize(); + // Runs exhaustive search (no cost limit), populating all physical_exprs_ in + // every reachable group. Invariant: must not be called with a top-level limit. + // Use GetRootGroup() afterward to drive IsReachable(). + void OptimizeExhaustive(); + + utils::NotNull GetRootGroup() const; + private: + void RunSearch(); using Limit = std::optional; bool IsExplored(utils::NotNull group) const; diff --git a/include/stewkk/sql/logic/optimizer/reachability.hpp b/include/stewkk/sql/logic/optimizer/reachability.hpp new file mode 100644 index 0000000..6bf5edc --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/reachability.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include + +namespace stewkk::sql { + +// FIXME: use std::expected +struct MatchResult { + bool reachable; + std::string mismatch; +}; + +MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target); + +MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, + CardinalityEstimates cardinality = {}); + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index b06974f..893c40c 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -28,6 +28,7 @@ add_library(libsql logic/executor/materialization.cpp logic/executor/llvm.cpp logic/optimizer/optimizer.cpp + logic/optimizer/reachability.cpp logic/optimizer/cardinality.cpp logic/optimizer/group.cpp logic/optimizer/memo.cpp diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp index d896259..cfec2ad 100644 --- a/src/stewkk/sql/logic/optimizer/group.cpp +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -14,6 +14,10 @@ Group::LogicalExprs Group::GetLogicalExprs() { return std::views::transform(logical_exprs_, ToNotNull{}); } +Group::PhysicalExprs Group::GetPhysicalExprs() { + return std::views::transform(physical_exprs_, ToNotNullPhysical{}); +} + size_t Group::GetId() const { return id_; } diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 8093109..a25ae99 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -264,7 +264,7 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G } template -PhysicalPlanNode Optimizer::Optimize() { +void Optimizer::RunSearch() { Log("Starting optimization"); tasks_.emplace([this]() { OptimizeGroup(root_->group); }); while (!tasks_.empty()) { @@ -272,10 +272,25 @@ PhysicalPlanNode Optimizer::Optimize() { tasks_.pop(); next_task(); } +} + +template +PhysicalPlanNode Optimizer::Optimize() { + RunSearch(); Log("Optimization complete, building plan"); return BuildOptimalPlan(root_->group.get()); } +template +void Optimizer::OptimizeExhaustive() { + RunSearch(); +} + +template +utils::NotNull Optimizer::GetRootGroup() const { + return root_->group; +} + template class Optimizer<2, 5>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index ebb35b5..34bacd8 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -4,9 +4,13 @@ #include #include #include +#include #include using ::testing::Eq; +using ::testing::IsTrue; +using ::testing::IsFalse; +using ::testing::HasSubstr; namespace stewkk::sql { @@ -38,4 +42,80 @@ TEST(OptimizerTest, JoinCommutativity) { ASSERT_THAT(Serialize(got), Eq("(NestedLoopJoin Inner (= (attr users id) (attr orders user_id)) (SeqScan orders) (SeqScan users))")); } +TEST(ReachabilityTest, SeqScanReachable) { + std::stringstream s{"SELECT * FROM users;"}; + auto result = IsPlanReachable(s, SeqScan{"users"}); + ASSERT_THAT(result.reachable, IsTrue()); +} + +TEST(ReachabilityTest, SeqScanWrongTable) { + std::stringstream s{"SELECT * FROM users;"}; + auto result = IsPlanReachable(s, SeqScan{"orders"}); + ASSERT_THAT(result.reachable, IsFalse()); + ASSERT_THAT(result.mismatch, HasSubstr("users")); +} + +TEST(ReachabilityTest, WrongOperatorType) { + std::stringstream s{"SELECT * FROM users;"}; + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"orders", "user_id"})}; + auto result = IsPlanReachable(s, HashJoin{ + std::make_shared(SeqScan{"users"}), + std::make_shared(SeqScan{"orders"}), + JoinType::kInner, + qual}); + ASSERT_THAT(result.reachable, IsFalse()); +} + +TEST(ReachabilityTest, BothJoinOrdersReachable) { + std::stringstream s1{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + std::stringstream s2{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"orders", "user_id"})}; + CardinalityEstimates cardinality({{"users", 10000}, {"orders", 100}}); + + auto optimal = IsPlanReachable(s1, NestedLoopJoin{ + std::make_shared(SeqScan{"orders"}), + std::make_shared(SeqScan{"users"}), + JoinType::kInner, qual}, cardinality); + ASSERT_THAT(optimal.reachable, IsTrue()); + + auto suboptimal = IsPlanReachable(s2, NestedLoopJoin{ + std::make_shared(SeqScan{"users"}), + std::make_shared(SeqScan{"orders"}), + JoinType::kInner, qual}, cardinality); + ASSERT_THAT(suboptimal.reachable, IsTrue()); +} + +TEST(ReachabilityTest, HashJoinNotReachable) { + std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"orders", "user_id"})}; + auto result = IsPlanReachable(s, HashJoin{ + std::make_shared(SeqScan{"orders"}), + std::make_shared(SeqScan{"users"}), + JoinType::kInner, qual}); + ASSERT_THAT(result.reachable, IsFalse()); +} + +TEST(ReachabilityTest, WrongJoinQual) { + std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + Expression wrong_qual = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"orders", "id"})}; + auto result = IsPlanReachable(s, NestedLoopJoin{ + std::make_shared(SeqScan{"orders"}), + std::make_shared(SeqScan{"users"}), + JoinType::kInner, wrong_qual}); + ASSERT_THAT(result.reachable, IsFalse()); + ASSERT_THAT(result.mismatch, HasSubstr("qual")); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp new file mode 100644 index 0000000..54fb95b --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -0,0 +1,107 @@ +#include + +#include + +#include +#include +#include +#include + +namespace stewkk::sql { + +namespace { + +struct InternalMatch { + bool ok; + int depth; + std::string reason; +}; + +InternalMatch MatchGroup(Group* group, const PhysicalPlanNode& target, int depth); + +InternalMatch TryMatchExpr(utils::NotNull pe, + const PhysicalPlanNode& target, int depth) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected SeqScan"}; + if (op.table != t->table) + return {false, depth, + std::format("SeqScan table '{}' != '{}'", op.table, t->table)}; + return {true, depth + 1, {}}; + }, + [&](const physical::Filter& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected Filter"}; + if (op.predicate != t->predicate) + return {false, depth, + std::format("Filter predicate '{}' != '{}'", + ToString(op.predicate), ToString(t->predicate))}; + auto child = MatchGroup(op.source.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "Filter.source: " + child.reason; + return child; + }, + [&](const physical::Projection& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected Projection"}; + if (op.expressions != t->expressions) + return {false, depth, "Projection expressions mismatch"}; + auto child = MatchGroup(op.source.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "Projection.source: " + child.reason; + return child; + }, + [&](const physical::NestedLoopJoin& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected NestedLoopJoin"}; + if (op.type != t->type) + return {false, depth, "NestedLoopJoin join type mismatch"}; + if (op.qual != t->qual) + return {false, depth, + std::format("NestedLoopJoin qual '{}' != '{}'", + ToString(op.qual), ToString(t->qual))}; + auto lhs = MatchGroup(op.lhs.get(), *t->lhs, depth + 1); + if (!lhs.ok) { lhs.reason = "NestedLoopJoin.lhs: " + lhs.reason; return lhs; } + auto rhs = MatchGroup(op.rhs.get(), *t->rhs, depth + 1); + if (!rhs.ok) { rhs.reason = "NestedLoopJoin.rhs: " + rhs.reason; return rhs; } + return {true, std::max(lhs.depth, rhs.depth), {}}; + }, + [&](const physical::NestedLoopCrossJoin& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected NestedLoopCrossJoin"}; + auto lhs = MatchGroup(op.lhs.get(), *t->lhs, depth + 1); + if (!lhs.ok) { lhs.reason = "NestedLoopCrossJoin.lhs: " + lhs.reason; return lhs; } + auto rhs = MatchGroup(op.rhs.get(), *t->rhs, depth + 1); + if (!rhs.ok) { rhs.reason = "NestedLoopCrossJoin.rhs: " + rhs.reason; return rhs; } + return {true, std::max(lhs.depth, rhs.depth), {}}; + }, + }, pe->root_operator); +} + +InternalMatch MatchGroup(Group* group, const PhysicalPlanNode& target, int depth) { + InternalMatch best{false, -1, + std::format("group {}: no physical expressions generated", group->GetId())}; + for (auto pe : group->GetPhysicalExprs()) { + auto r = TryMatchExpr(pe, target, depth); + if (r.ok) return r; + if (r.depth > best.depth) best = r; + } + return best; +} + + +} // namespace + +MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target) { + auto r = MatchGroup(root.get(), target, 0); + return {r.ok, r.reason}; +} + +MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, + CardinalityEstimates cardinality) { + auto ast = GetAST(sql).value(); + Optimizer optimizer(ast, MakeMainRules(), std::move(cardinality)); + optimizer.OptimizeExhaustive(); + return IsReachable(optimizer.GetRootGroup(), target); +} + +} // namespace stewkk::sql From 89f826fd6e77d45ff4ad7e4160b0c554804ce278 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 22 May 2026 22:55:42 +0300 Subject: [PATCH 042/120] Add sort order property --- include/stewkk/sql/logic/optimizer/group.hpp | 2 +- .../sql/logic/optimizer/physical_expr.hpp | 2 + .../optimizer/properties/property_set.hpp | 32 +++++++++ .../logic/optimizer/properties/sort_order.hpp | 40 +++++++++++ src/stewkk/sql/CMakeLists.txt | 2 + src/stewkk/sql/logic/optimizer/group.cpp | 4 +- .../optimizer/properties/properties_test.cpp | 67 +++++++++++++++++++ .../optimizer/properties/property_set.cpp | 33 +++++++++ .../logic/optimizer/properties/sort_order.cpp | 37 ++++++++++ test/CMakeLists.txt | 1 + 10 files changed, 217 insertions(+), 3 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/properties/property_set.hpp create mode 100644 include/stewkk/sql/logic/optimizer/properties/sort_order.hpp create mode 100644 src/stewkk/sql/logic/optimizer/properties/properties_test.cpp create mode 100644 src/stewkk/sql/logic/optimizer/properties/property_set.cpp create mode 100644 src/stewkk/sql/logic/optimizer/properties/sort_order.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index 03ca40d..fbd33cf 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -29,7 +29,7 @@ class Group { ToNotNullPhysical>; utils::NotNull AddLogicalExpr(LogicalOperator root_operator); - utils::NotNull AddPhysicalExpr(PhysicalOperator root_operator); + utils::NotNull AddPhysicalExpr(PhysicalOperator root_operator, PropertySet delivered = PropertySet::Any()); LogicalExprs GetLogicalExprs(); PhysicalExprs GetPhysicalExprs(); diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 7e4af52..d3b12dd 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -5,6 +5,7 @@ #include #include +#include namespace stewkk::sql { @@ -54,6 +55,7 @@ struct PhysicalExpr { std::variant root_operator; utils::NotNull group; + PropertySet delivered = PropertySet::Any(); }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/properties/property_set.hpp b/include/stewkk/sql/logic/optimizer/properties/property_set.hpp new file mode 100644 index 0000000..d092408 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/properties/property_set.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include +#include + +#include + +namespace stewkk::sql { + +struct PropertySet { + std::optional sort; + + PropertySet() = default; + explicit PropertySet(std::optional sort); + + bool Satisfies(const PropertySet& required) const; + + static PropertySet Any(); + + bool operator==(const PropertySet&) const = default; +}; + +} // namespace stewkk::sql + +namespace std { + +template <> +struct hash { + size_t operator()(const stewkk::sql::PropertySet& ps) const noexcept; +}; + +} // namespace std diff --git a/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp b/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp new file mode 100644 index 0000000..39160a9 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include + +namespace stewkk::sql { + +enum class Direction { kAsc, kDesc }; + +struct SortKey { + std::string column; + Direction dir; + + bool operator==(const SortKey&) const = default; +}; + +struct SortOrder { + std::vector keys; + + bool Satisfies(const SortOrder& required) const; + + bool operator==(const SortOrder&) const = default; +}; + +} // namespace stewkk::sql + +namespace std { + +template <> +struct hash { + size_t operator()(const stewkk::sql::SortKey& k) const noexcept; +}; + +template <> +struct hash { + size_t operator()(const stewkk::sql::SortOrder& o) const noexcept; +}; + +} // namespace std diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 893c40c..4b09e16 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -42,6 +42,8 @@ add_library(libsql logic/implementation_rules/implement_projection.cpp logic/implementation_rules/implement_join.cpp logic/implementation_rules/implement_cross_join.cpp + logic/optimizer/properties/sort_order.cpp + logic/optimizer/properties/property_set.cpp ) add_library(stewkk::libsql ALIAS libsql) target_compile_features(libsql PUBLIC cxx_std_23) diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp index cfec2ad..55c7aed 100644 --- a/src/stewkk/sql/logic/optimizer/group.cpp +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -6,8 +6,8 @@ utils::NotNull Group::AddLogicalExpr(LogicalOperator root_operator return &logical_exprs_.emplace_back(std::move(root_operator), this); } -utils::NotNull Group::AddPhysicalExpr(PhysicalOperator root_operator) { - return &physical_exprs_.emplace_back(std::move(root_operator), this); +utils::NotNull Group::AddPhysicalExpr(PhysicalOperator root_operator, PropertySet delivered) { + return &physical_exprs_.emplace_back(std::move(root_operator), this, std::move(delivered)); } Group::LogicalExprs Group::GetLogicalExprs() { diff --git a/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp b/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp new file mode 100644 index 0000000..15942d1 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp @@ -0,0 +1,67 @@ +#include + +#include +#include + +using ::testing::IsTrue; +using ::testing::IsFalse; + +namespace stewkk::sql { + +TEST(SortOrderTest, EmptyRequiredAlwaysSatisfied) { + SortOrder delivered{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}; + SortOrder required{}; + ASSERT_THAT(delivered.Satisfies(required), IsTrue()); +} + +TEST(SortOrderTest, ExactMatchSatisfied) { + SortOrder delivered{{{"a", Direction::kAsc}, {"b", Direction::kDesc}}}; + SortOrder required{{{"a", Direction::kAsc}, {"b", Direction::kDesc}}}; + ASSERT_THAT(delivered.Satisfies(required), IsTrue()); +} + +TEST(SortOrderTest, LongerDeliveredSatisfiesPrefix) { + SortOrder delivered{{{"a", Direction::kAsc}, {"b", Direction::kAsc}, {"c", Direction::kAsc}}}; + SortOrder required{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}; + ASSERT_THAT(delivered.Satisfies(required), IsTrue()); +} + +TEST(SortOrderTest, ShorterDeliveredDoesNotSatisfy) { + SortOrder delivered{{{"a", Direction::kAsc}}}; + SortOrder required{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}; + ASSERT_THAT(delivered.Satisfies(required), IsFalse()); +} + +TEST(SortOrderTest, WrongDirectionDoesNotSatisfy) { + SortOrder delivered{{{"a", Direction::kAsc}}}; + SortOrder required{{{"a", Direction::kDesc}}}; + ASSERT_THAT(delivered.Satisfies(required), IsFalse()); +} + +TEST(SortOrderTest, WrongColumnDoesNotSatisfy) { + SortOrder delivered{{{"b", Direction::kAsc}}}; + SortOrder required{{{"a", Direction::kAsc}}}; + ASSERT_THAT(delivered.Satisfies(required), IsFalse()); +} + +TEST(PropertySetTest, AnyAlwaysSatisfied) { + PropertySet delivered{SortOrder{{{"a", Direction::kAsc}}}}; + ASSERT_THAT(delivered.Satisfies(PropertySet::Any()), IsTrue()); +} + +TEST(PropertySetTest, AnySatisfiesAny) { + ASSERT_THAT(PropertySet::Any().Satisfies(PropertySet::Any()), IsTrue()); +} + +TEST(PropertySetTest, AnyDoesNotSatisfySortRequirement) { + PropertySet required{SortOrder{{{"a", Direction::kAsc}}}}; + ASSERT_THAT(PropertySet::Any().Satisfies(required), IsFalse()); +} + +TEST(PropertySetTest, SortSatisfiesSortPrefix) { + PropertySet delivered{SortOrder{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}}; + PropertySet required{SortOrder{{{"a", Direction::kAsc}}}}; + ASSERT_THAT(delivered.Satisfies(required), IsTrue()); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/properties/property_set.cpp b/src/stewkk/sql/logic/optimizer/properties/property_set.cpp new file mode 100644 index 0000000..310c908 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/properties/property_set.cpp @@ -0,0 +1,33 @@ +#include + +#include + +namespace stewkk::sql { + +PropertySet::PropertySet(std::optional s) : sort(std::move(s)) { + // derive implied properties from sort here as new property types are added +} + +PropertySet PropertySet::Any() { return {}; } + +bool PropertySet::Satisfies(const PropertySet& required) const { + if (required.sort) { + if (!sort.has_value() || !sort->Satisfies(required.sort.value())) { + return false; + } + } + return true; +} + +} // namespace stewkk::sql + +namespace std { + +size_t hash::operator()(const stewkk::sql::PropertySet& ps) const noexcept { + size_t h = 0; + if (ps.sort) + boost::hash_combine(h, hash{}(*ps.sort)); + return h; +} + +} // namespace std diff --git a/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp b/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp new file mode 100644 index 0000000..e4c872f --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp @@ -0,0 +1,37 @@ +#include + +#include + +namespace stewkk::sql { + +bool SortOrder::Satisfies(const SortOrder& required) const { + if (required.keys.size() > keys.size()) { + return false; + } + for (size_t i = 0; i < required.keys.size(); ++i) { + if (keys[i] != required.keys[i]) { + return false; + } + } + return true; +} + +} // namespace stewkk::sql + +namespace std { + +size_t hash::operator()(const stewkk::sql::SortKey& k) const noexcept { + size_t h = hash{}(k.column); + boost::hash_combine(h, static_cast(k.dir)); + return h; +} + +size_t hash::operator()(const stewkk::sql::SortOrder& o) const noexcept { + size_t h = 0; + for (const auto& key : o.keys) { + boost::hash_combine(h, hash{}(key)); + } + return h; +} + +} // namespace std diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f13e258..99ea0ac 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,6 +10,7 @@ target_sources(unittests PRIVATE ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/optimizer_test.cpp ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/memo_test.cpp + ${PROJECT_SOURCE_DIR}/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp ) target_compile_features(unittests PRIVATE cxx_std_23) set_target_properties(unittests PROPERTIES From 51fdf3bcd3a706ba06bd2a0b52baa899860fcf3e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 22 May 2026 23:37:12 +0300 Subject: [PATCH 043/120] Add sort operator --- include/stewkk/sql/logic/executor/plan.hpp | 11 ++++- .../sql/logic/optimizer/physical_expr.hpp | 11 ++++- src/stewkk/sql/logic/executor/executor.cpp | 47 +++++++++++++++++++ src/stewkk/sql/logic/executor/plan.cpp | 4 ++ .../sql/logic/executor/plan_serializer.cpp | 41 ++++++++++++++++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 15 ++++++ .../sql/logic/optimizer/reachability.cpp | 9 ++++ 7 files changed, 136 insertions(+), 2 deletions(-) diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 9e8bea8..c07d412 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -18,8 +19,9 @@ struct NestedLoopCrossJoin; struct HashJoin; struct MergeJoin; struct IndexSeek; +struct PhysicalSort; -using PhysicalPlanNode = std::variant; +using PhysicalPlanNode = std::variant; struct SeqScan { std::string table; @@ -82,4 +84,11 @@ struct IndexSeek { bool operator==(const IndexSeek&) const; }; +struct PhysicalSort { + std::shared_ptr source; + SortOrder keys; + + bool operator==(const PhysicalSort&) const; +}; + } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index d3b12dd..58cac10 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -6,6 +6,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -49,11 +50,19 @@ struct NestedLoopCrossJoin { bool operator==(const NestedLoopCrossJoin&) const = default; }; +struct Sort { + utils::NotNull input; + SortOrder keys; + + bool operator==(const Sort&) const = default; +}; + } // namespace physical struct PhysicalExpr { std::variant root_operator; + physical::NestedLoopJoin, physical::NestedLoopCrossJoin, + physical::Sort> root_operator; utils::NotNull group; PropertySet delivered = PropertySet::Any(); }; diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 044580e..5102c2a 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -446,6 +446,53 @@ boost::asio::awaitable Executor::Execute(const Physica throw std::runtime_error("IndexSeek execution not implemented"); co_return; } + // FIXME: that's in-memory sort + boost::asio::awaitable operator()(const PhysicalSort& sort) { + auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); + co_await executor.SpawnExecutor(*sort.source, in_attrs_chan, in_tuples_chan); + + auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); + co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); + attr_chan.close(); + + Tuples all_tuples; + for (;;) { + auto buf = co_await ReceiveTuples(in_tuples_chan); + if (buf.empty()) break; + std::move(buf.begin(), buf.end(), std::back_inserter(all_tuples)); + } + + std::vector> key_indices; + for (const auto& key : sort.keys.keys) { + auto it = std::find_if(attrs.begin(), attrs.end(), + [&](const AttributeInfo& a) { return a.name == key.column; }); + if (it == attrs.end()) + throw std::runtime_error{"sort key column not found: " + key.column}; + key_indices.push_back({static_cast(it - attrs.begin()), key.dir}); + } + + std::sort(all_tuples.begin(), all_tuples.end(), + [&](const Tuple& a, const Tuple& b) { + for (const auto& [idx, dir] : key_indices) { + const auto& va = a[idx]; + const auto& vb = b[idx]; + if (va.is_null && vb.is_null) continue; + if (va.is_null) return false; + if (vb.is_null) return true; + if (va.value.int_value != vb.value.int_value) + return dir == Direction::kAsc + ? va.value.int_value < vb.value.int_value + : va.value.int_value > vb.value.int_value; + } + return false; + }); + + if (!all_tuples.empty()) + co_await tuples_chan.async_send(boost::system::error_code{}, + std::move(all_tuples), boost::asio::use_awaitable); + tuples_chan.close(); + co_return; + } AttributesInfoChannel& attr_chan; TuplesChannel& tuples_chan; diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index e269a93..f7aa541 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -30,4 +30,8 @@ bool IndexSeek::operator==(const IndexSeek& other) const { return table == other.table && predicate == other.predicate; } +bool PhysicalSort::operator==(const PhysicalSort& other) const { + return *source == *other.source && keys == other.keys; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index e326353..e839d6e 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -118,6 +118,15 @@ std::string SerializeNode(const PhysicalPlanNode& node) { SerializeJoinType(n.type), SerializeExpr(n.qual), SerializeNode(*n.lhs), SerializeNode(*n.rhs)); } + std::string operator()(const PhysicalSort& n) const { + std::string keys; + for (const auto& k : n.keys.keys) { + if (!keys.empty()) keys += ' '; + keys += k.column; + keys += k.dir == Direction::kAsc ? " Asc" : " Desc"; + } + return std::format("(Sort (keys {}) {})", keys, SerializeNode(*n.source)); + } }; return std::visit(Visitor{}, node); } @@ -322,6 +331,26 @@ PhysicalPlanNode ParseNode(ParseState& s) { if (head == "NestedLoopJoin") return ParseJoinNode.template operator()(); if (head == "HashJoin") return ParseJoinNode.template operator()(); if (head == "MergeJoin") return ParseJoinNode.template operator()(); + if (head == "Sort") { + s.ExpectLParen(); + auto kw = s.ExpectAtom(); + if (kw != "keys") + throw std::runtime_error(std::format("expected 'keys' but got '{}'", kw)); + std::vector keys; + while (s.Peek().kind != TokenKind::RParen) { + auto col = s.ExpectAtom(); + auto dir_str = s.ExpectAtom(); + Direction dir = dir_str == "Asc" ? Direction::kAsc : Direction::kDesc; + keys.push_back({std::move(col), dir}); + } + s.ExpectRParen(); + auto source = ParseNode(s); + s.ExpectRParen(); + return PhysicalSort{ + std::make_shared(std::move(source)), + SortOrder{std::move(keys)}, + }; + } throw std::runtime_error(std::format("unknown plan node: '{}'", head)); } @@ -404,6 +433,18 @@ struct DotBuilder { EmitEdge(rhs, id); return id; } + int operator()(const PhysicalSort& n) { + int src = std::visit(*this, *n.source); + std::string keys; + for (const auto& k : n.keys.keys) { + if (!keys.empty()) keys += ", "; + keys += k.column; + keys += k.dir == Direction::kAsc ? " asc" : " desc"; + } + int id = Emit(std::format("Sort\\n{}", keys)); + EmitEdge(src, id); + return id; + } }; } // namespace diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index a25ae99..3bf1ef1 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -2,6 +2,8 @@ #include +#include + #include #include #include @@ -45,6 +47,9 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::NestedLoopCrossJoin& j) -> std::vector> { return {j.lhs, j.rhs}; }, + [](const physical::Sort& s) -> std::vector> { + return {s.input}; + }, }, expr->root_operator); } @@ -69,6 +74,10 @@ static int64_t CalcCost(utils::NotNull expr, CardinalityEstimates auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; return p_l * (1 + p_r); }, + [&](const physical::Sort& s) -> int64_t { + auto n = cardinality.GetCardinality(s.input); + return n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n; + }, }, expr->root_operator); } @@ -259,6 +268,12 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), }; }, + [this](const physical::Sort& op) -> PhysicalPlanNode { + return PhysicalSort{ + .source = std::make_shared(BuildOptimalPlan(op.input.get())), + .keys = op.keys, + }; + }, }, best_expr->root_operator); } diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 54fb95b..929d558 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -74,6 +74,15 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!rhs.ok) { rhs.reason = "NestedLoopCrossJoin.rhs: " + rhs.reason; return rhs; } return {true, std::max(lhs.depth, rhs.depth), {}}; }, + [&](const physical::Sort& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected Sort"}; + if (op.keys != t->keys) + return {false, depth, "Sort keys mismatch"}; + auto child = MatchGroup(op.input.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "Sort.input: " + child.reason; + return child; + }, }, pe->root_operator); } From c1e55d1e762c3e308b7e058c009d17746312ccbd Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 23 May 2026 00:56:58 +0300 Subject: [PATCH 044/120] Impl sort by support in optimizer --- include/stewkk/sql/logic/optimizer/group.hpp | 2 +- .../stewkk/sql/logic/optimizer/optimizer.hpp | 39 +- .../sql/logic/optimizer/physical_expr.hpp | 2 +- .../logic/optimizer/properties/sort_order.hpp | 1 + .../sql/logic/optimizer/rules_applier.hpp | 1 + .../sql/logic/optimizer/schema_catalog.hpp | 30 ++ .../stewkk/sql/logic/optimizer/winner_key.hpp | 26 ++ src/stewkk/sql/CMakeLists.txt | 2 + src/stewkk/sql/logic/executor/executor.cpp | 6 +- .../sql/logic/executor/plan_serializer.cpp | 13 +- src/stewkk/sql/logic/optimizer/group.cpp | 4 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 372 +++++++++++++----- .../sql/logic/optimizer/optimizer_test.cpp | 4 + .../optimizer/properties/properties_test.cpp | 30 +- .../logic/optimizer/properties/sort_order.cpp | 3 +- .../sql/logic/optimizer/rules_applier.cpp | 4 +- .../sql/logic/optimizer/schema_catalog.cpp | 61 +++ src/stewkk/sql/logic/optimizer/winner_key.cpp | 15 + 18 files changed, 468 insertions(+), 147 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/schema_catalog.hpp create mode 100644 include/stewkk/sql/logic/optimizer/winner_key.hpp create mode 100644 src/stewkk/sql/logic/optimizer/schema_catalog.cpp create mode 100644 src/stewkk/sql/logic/optimizer/winner_key.cpp diff --git a/include/stewkk/sql/logic/optimizer/group.hpp b/include/stewkk/sql/logic/optimizer/group.hpp index fbd33cf..590aef9 100644 --- a/include/stewkk/sql/logic/optimizer/group.hpp +++ b/include/stewkk/sql/logic/optimizer/group.hpp @@ -29,7 +29,7 @@ class Group { ToNotNullPhysical>; utils::NotNull AddLogicalExpr(LogicalOperator root_operator); - utils::NotNull AddPhysicalExpr(PhysicalOperator root_operator, PropertySet delivered = PropertySet::Any()); + utils::NotNull AddPhysicalExpr(PhysicalOperator root_operator, bool is_enforcer = false); LogicalExprs GetLogicalExprs(); PhysicalExprs GetPhysicalExprs(); diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index f69082c..90587ea 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -12,6 +12,8 @@ #include #include #include +#include +#include #include namespace stewkk::sql { @@ -23,46 +25,55 @@ template class Optimizer { public: Optimizer(const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality = {}); + CardinalityEstimates cardinality = {}, SchemaCatalog schema = {}); - PhysicalPlanNode Optimize(); + PhysicalPlanNode Optimize(PropertySet required = PropertySet::Any()); - // Runs exhaustive search (no cost limit), populating all physical_exprs_ in - // every reachable group. Invariant: must not be called with a top-level limit. - // Use GetRootGroup() afterward to drive IsReachable(). + // Runs exhaustive search, populating all physical_exprs_ in every reachable + // group. void OptimizeExhaustive(); utils::NotNull GetRootGroup() const; private: - void RunSearch(); using Limit = std::optional; + void RunSearch(PropertySet required, Limit limit); bool IsExplored(utils::NotNull group) const; void SetExplored(utils::NotNull group); - void OptimizeInputs(utils::NotNull expr, Limit limit, size_t child_index = 0); + void OptimizeInputs(utils::NotNull expr, PropertySet required, std::vector child_delivered, int64_t accum, Limit limit, size_t child_index = 0); + + // Property-independent admissible lower bound on the cheapest physical plan + // for this group: min over logical alternatives of (best-case local cost + + // sum of children's lower bounds). Cached; safe to memoize once Phase 1 + // exploration has populated the group's logical alternatives. + std::int64_t LowerBoundCost(utils::NotNull group); void ApplyRule(TransformationRuleId rule, utils::NotNull expr, Limit limit); - void ApplyRule(ImplementationRuleId rule, utils::NotNull expr, Limit limit); - void OptimizeExpression(utils::NotNull expr, Limit limit); + void TryRules(utils::NotNull expr, Limit limit); void ExploreExpression(utils::NotNull expr, Limit limit); void ExploreGroup(utils::NotNull group, Limit limit); - void OptimizeGroup(utils::NotNull group, Limit limit = std::nullopt); + void OptimizeGroup(utils::NotNull group, PropertySet required = PropertySet::Any(), Limit limit = std::nullopt); - PhysicalPlanNode BuildOptimalPlan(Group* group); + PhysicalPlanNode BuildOptimalPlan(Group* group, PropertySet required = PropertySet::Any()); Memo memo_; RulesApplier rules_applier_; std::stack> tasks_; std::unordered_set explored_groups_; + std::unordered_set explored_exprs_; utils::NotNull root_; CardinalityEstimates cardinality_; + SchemaCatalog schema_; std::unordered_map local_cost_; - std::unordered_map accum_child_cost_; - std::unordered_map best_cost_; - std::unordered_map best_plan_; + std::unordered_map best_cost_; + std::unordered_map best_plan_; + std::unordered_map best_delivered_; + std::unordered_set enforcers_added_; + std::unordered_map> group_parents_; + std::unordered_map lower_bounds_; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 58cac10..6c4ebd7 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -64,7 +64,7 @@ struct PhysicalExpr { physical::NestedLoopJoin, physical::NestedLoopCrossJoin, physical::Sort> root_operator; utils::NotNull group; - PropertySet delivered = PropertySet::Any(); + bool is_enforcer = false; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp b/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp index 39160a9..de68d97 100644 --- a/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp +++ b/include/stewkk/sql/logic/optimizer/properties/sort_order.hpp @@ -9,6 +9,7 @@ namespace stewkk::sql { enum class Direction { kAsc, kDesc }; struct SortKey { + std::string table; std::string column; Direction dir; diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp index b57b4d2..59aca4f 100644 --- a/include/stewkk/sql/logic/optimizer/rules_applier.hpp +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -31,6 +31,7 @@ class RulesApplier { private: Rules rules_; std::unordered_map> applied_transformation_rules_; + std::unordered_map> applied_implementation_rules_; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp new file mode 100644 index 0000000..93c0446 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include +#include +#include +#include + +#include +#include +#include + +namespace stewkk::sql { + +using Schema = std::vector; + +class SchemaCatalog { +public: + SchemaCatalog(std::unordered_map tables = {}); + + // Returns nullopt when any table in the subtree is unknown to the catalog. + std::optional GetSchema(utils::NotNull group); + +private: + std::optional Derive(const LogicalOperator& op); + + std::unordered_map tables_; + std::unordered_map> cache_; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/winner_key.hpp b/include/stewkk/sql/logic/optimizer/winner_key.hpp new file mode 100644 index 0000000..7c7f791 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/winner_key.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include +#include + +#include +#include + +namespace stewkk::sql { + +struct WinnerKey { + Group* group; + PropertySet required; + bool operator==(const WinnerKey&) const = default; +}; + +} // namespace stewkk::sql + +namespace std { + +template <> +struct hash { + size_t operator()(const stewkk::sql::WinnerKey& k) const noexcept; +}; + +} // namespace std diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 4b09e16..6b72238 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -30,6 +30,8 @@ add_library(libsql logic/optimizer/optimizer.cpp logic/optimizer/reachability.cpp logic/optimizer/cardinality.cpp + logic/optimizer/schema_catalog.cpp + logic/optimizer/winner_key.cpp logic/optimizer/group.cpp logic/optimizer/memo.cpp logic/optimizer/rules.cpp diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 5102c2a..59f095d 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -465,9 +465,11 @@ boost::asio::awaitable Executor::Execute(const Physica std::vector> key_indices; for (const auto& key : sort.keys.keys) { auto it = std::find_if(attrs.begin(), attrs.end(), - [&](const AttributeInfo& a) { return a.name == key.column; }); + [&](const AttributeInfo& a) { + return a.table == key.table && a.name == key.column; + }); if (it == attrs.end()) - throw std::runtime_error{"sort key column not found: " + key.column}; + throw std::runtime_error{"sort key column not found: " + key.table + "." + key.column}; key_indices.push_back({static_cast(it - attrs.begin()), key.dir}); } diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index e839d6e..83e011c 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -122,6 +122,8 @@ std::string SerializeNode(const PhysicalPlanNode& node) { std::string keys; for (const auto& k : n.keys.keys) { if (!keys.empty()) keys += ' '; + keys += k.table; + keys += '.'; keys += k.column; keys += k.dir == Direction::kAsc ? " Asc" : " Desc"; } @@ -338,10 +340,15 @@ PhysicalPlanNode ParseNode(ParseState& s) { throw std::runtime_error(std::format("expected 'keys' but got '{}'", kw)); std::vector keys; while (s.Peek().kind != TokenKind::RParen) { - auto col = s.ExpectAtom(); + auto qualified = s.ExpectAtom(); + auto dot = qualified.find('.'); + if (dot == std::string::npos) + throw std::runtime_error("sort key must be table.column, got: " + qualified); + std::string table = qualified.substr(0, dot); + std::string col = qualified.substr(dot + 1); auto dir_str = s.ExpectAtom(); Direction dir = dir_str == "Asc" ? Direction::kAsc : Direction::kDesc; - keys.push_back({std::move(col), dir}); + keys.push_back({std::move(table), std::move(col), dir}); } s.ExpectRParen(); auto source = ParseNode(s); @@ -438,6 +445,8 @@ struct DotBuilder { std::string keys; for (const auto& k : n.keys.keys) { if (!keys.empty()) keys += ", "; + keys += k.table; + keys += '.'; keys += k.column; keys += k.dir == Direction::kAsc ? " asc" : " desc"; } diff --git a/src/stewkk/sql/logic/optimizer/group.cpp b/src/stewkk/sql/logic/optimizer/group.cpp index 55c7aed..9d63af6 100644 --- a/src/stewkk/sql/logic/optimizer/group.cpp +++ b/src/stewkk/sql/logic/optimizer/group.cpp @@ -6,8 +6,8 @@ utils::NotNull Group::AddLogicalExpr(LogicalOperator root_operator return &logical_exprs_.emplace_back(std::move(root_operator), this); } -utils::NotNull Group::AddPhysicalExpr(PhysicalOperator root_operator, PropertySet delivered) { - return &physical_exprs_.emplace_back(std::move(root_operator), this, std::move(delivered)); +utils::NotNull Group::AddPhysicalExpr(PhysicalOperator root_operator, bool is_enforcer) { + return &physical_exprs_.emplace_back(std::move(root_operator), this, is_enforcer); } Group::LogicalExprs Group::GetLogicalExprs() { diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 3bf1ef1..5de52be 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -1,15 +1,111 @@ #include +#include #include +#include #include +#include + #include #include #include namespace stewkk::sql { +namespace { + +// Top-down: given `required` of this expr, what must child `child_index` deliver? +PropertySet RequiredInputProps(utils::NotNull expr, + PropertySet required, size_t child_index) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) { return PropertySet::Any(); }, + [&](const physical::Filter&) { return required; }, + [&](const physical::Projection&) { return required; }, + [&](const physical::NestedLoopJoin&) -> PropertySet { + return child_index == 0 ? required : PropertySet::Any(); + }, + [&](const physical::NestedLoopCrossJoin&) -> PropertySet { + return child_index == 0 ? required : PropertySet::Any(); + }, + [&](const physical::Sort&) { return PropertySet::Any(); }, + }, expr->root_operator); +} + +// Bottom-up: given what children delivered, what does this expr deliver? +// Sort property is schema-blind — operators that need column access (sort +// enforcer placement, merge join applicability) check the schema separately. +PropertySet DeriveOutputProps(utils::NotNull expr, + const std::vector& child_delivered) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) { return PropertySet::Any(); }, + [&](const physical::Filter&) { return child_delivered[0]; }, + [&](const physical::Projection&) { return child_delivered[0]; }, + [&](const physical::NestedLoopJoin&) { return child_delivered[0]; }, + [&](const physical::NestedLoopCrossJoin&) { return child_delivered[0]; }, + [&](const physical::Sort& s) { return PropertySet{s.keys}; }, + }, expr->root_operator); +} + +// Best-case local cost achievable by any physical impl of this logical +// operator, ignoring required physical properties. Used to compute group lower +// bounds for B&B pruning. Must remain ≤ every CalcCost over physical impls of +// the same logical alternative — update when adding cheaper physical impls. +int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const logical::Table&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const logical::Filter&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const logical::Projection&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const logical::CrossJoin& j) -> int64_t { + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); + }, + [&](const logical::Join& j) -> int64_t { + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); + }, + }, expr->root_operator); +} + +int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::Filter&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::Projection&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, + [&](const physical::NestedLoopJoin& j) -> int64_t { + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); + }, + [&](const physical::NestedLoopCrossJoin& j) -> int64_t { + auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; + auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; + return p_l * (1 + p_r); + }, + [&](const physical::Sort& s) -> int64_t { + auto n = cardinality.GetCardinality(s.input); + return n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n; + }, + }, expr->root_operator); +} + +} // namespace + std::vector> GetChildren(utils::NotNull expr) { return std::visit(utils::Overloaded{ [](const logical::Table&) -> std::vector> { @@ -53,40 +149,36 @@ std::vector> GetChildren(utils::NotNull ex }, expr->root_operator); } -static int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { - return std::visit(utils::Overloaded{ - [&](const physical::SeqScan&) -> int64_t { - return cardinality.GetCardinality(expr->group); - }, - [&](const physical::Filter&) -> int64_t { - return cardinality.GetCardinality(expr->group); - }, - [&](const physical::Projection&) -> int64_t { - return cardinality.GetCardinality(expr->group); - }, - [&](const physical::NestedLoopJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); - }, - [&](const physical::NestedLoopCrossJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); - }, - [&](const physical::Sort& s) -> int64_t { - auto n = cardinality.GetCardinality(s.input); - return n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n; - }, - }, expr->root_operator); -} - template Optimizer::Optimizer( const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality) + CardinalityEstimates cardinality, SchemaCatalog schema) : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), - cardinality_(std::move(cardinality)) {} + cardinality_(std::move(cardinality)), schema_(std::move(schema)) {} + +template +int64_t Optimizer::LowerBoundCost(utils::NotNull group) { + if (auto it = lower_bounds_.find(group.get()); it != lower_bounds_.end()) { + return it->second; + } + // Memo groups form a DAG (no cycles), so recursion terminates. + int64_t best = std::numeric_limits::max(); + for (auto expr : group->GetLogicalExprs()) { + int64_t local = LowerBoundLocalCost(expr, cardinality_); + int64_t children = 0; + bool overflow = false; + for (auto child : GetChildren(expr)) { + auto cb = LowerBoundCost(child); + if (children > std::numeric_limits::max() - cb) { overflow = true; break; } + children += cb; + } + if (overflow) continue; + if (local > std::numeric_limits::max() - children) continue; + best = std::min(best, local + children); + } + lower_bounds_[group.get()] = best; + return best; +} template bool Optimizer::IsExplored(utils::NotNull group) const { @@ -100,32 +192,50 @@ void Optimizer::SetExplored(utils::NotNull void Optimizer::OptimizeInputs( - utils::NotNull expr, Limit limit, size_t child_index) { + utils::NotNull expr, PropertySet required, + std::vector child_delivered, int64_t accum, Limit limit, size_t child_index) { + // accum = local_cost(expr) + cost of children processed so far. + // child_delivered[i] = what child i actually delivered (filled as we go). + WinnerKey self_key{expr->group.get(), required}; + if (auto it = best_cost_.find(self_key); it != best_cost_.end()) { + limit = limit ? Limit{std::min(*limit, it->second)} : Limit{it->second}; + } + if (limit && accum >= *limit) return; auto children = GetChildren(expr); if (child_index >= children.size()) { - int64_t total = local_cost_[expr.get()] + accum_child_cost_[expr.get()]; - auto* g = expr->group.get(); - if (!best_cost_.contains(g) || total < best_cost_.at(g)) { - Log("New best plan for group {} with cost {}", g->GetId(), total); - best_cost_[g] = total; - best_plan_[g] = expr.get(); + auto delivered = DeriveOutputProps(expr, child_delivered); + if (!delivered.Satisfies(required)) return; + WinnerKey key{expr->group.get(), required}; + if (!best_cost_.contains(key) || accum < best_cost_.at(key)) { + Log("New best plan for group {} with cost {}", expr->group->GetId(), accum); + best_cost_[key] = accum; + best_plan_[key] = expr.get(); + best_delivered_[key] = delivered; } return; } auto child = children[child_index]; - - tasks_.emplace([this, expr, child, child_index, limit]() { - if (!best_cost_.contains(child.get())) return; - auto cc = best_cost_.at(child.get()); - accum_child_cost_[expr.get()] += cc; - Limit next = limit ? std::optional{*limit - local_cost_[expr.get()] - accum_child_cost_[expr.get()]} : std::nullopt; - if (next && *next < 0) return; - OptimizeInputs(expr, next, child_index + 1); + auto child_required = RequiredInputProps(expr, required, child_index); + + tasks_.emplace([this, expr, child, child_index, required, child_delivered, accum, limit, child_required]() mutable { + WinnerKey child_key{child.get(), child_required}; + if (!best_cost_.contains(child_key)) return; + auto new_accum = accum + best_cost_.at(child_key); + if (limit && new_accum >= *limit) return; + child_delivered.push_back(best_delivered_.at(child_key)); + OptimizeInputs(expr, required, std::move(child_delivered), new_accum, limit, child_index + 1); }); - tasks_.emplace([this, child, limit]() { - OptimizeGroup(child, limit); + int64_t children_lb = 0; + for (size_t i = child_index + 1; i < children.size(); i++) { + auto cb = LowerBoundCost(children[i]); + if (children_lb > std::numeric_limits::max() - cb) { children_lb = std::numeric_limits::max(); break; } + children_lb += cb; + } + Limit child_limit = limit ? Limit{*limit - accum - children_lb} : std::nullopt; + tasks_.emplace([this, child, child_required, child_limit]() { + OptimizeGroup(child, child_required, child_limit); }); } @@ -135,43 +245,40 @@ void Optimizer::ApplyRule( Log("Applying transformation rule {} to group {}", rule.value, expr->group->GetId()); auto new_expr = rules_applier_.Apply(rule, expr, memo_); tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); + // A new logical alternative in new_expr->group may unlock parent-side rules + // whose patterns inspect child operators. Re-try rules on every parent; + // already-applied (expr, rule) pairs are no-ops thanks to RulesApplier gating. + if (auto it = group_parents_.find(new_expr->group.get()); it != group_parents_.end()) { + for (auto* parent : it->second) { + tasks_.emplace([this, parent, limit]() { + TryRules(utils::NotNull{parent}, limit); + }); + } + } } template -void Optimizer::ApplyRule( - ImplementationRuleId rule, utils::NotNull expr, Limit limit) { - Log("Applying implementation rule {} to group {}", rule.value, expr->group->GetId()); - auto new_expr = rules_applier_.Apply(rule, expr, memo_); - auto lc = CalcCost(new_expr, cardinality_); - Log("Local cost for group {} expression: {}", new_expr->group->GetId(), lc); - local_cost_[new_expr.get()] = lc; - accum_child_cost_[new_expr.get()] = 0; - - if (limit && lc >= *limit) return; - - Limit child_limit = limit ? std::optional{*limit - lc} : std::nullopt; - tasks_.emplace([this, new_expr, child_limit]() { OptimizeInputs(new_expr, child_limit); }); -} - -template -void Optimizer::OptimizeExpression( +void Optimizer::TryRules( utils::NotNull expr, Limit limit) { - Log("Optimizing expression in group {}", expr->group->GetId()); - for (size_t rule = 0; rule < NImplementation; rule++) { - if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { + for (size_t rule = 0; rule < NTransformation; rule++) { + if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { continue; } tasks_.emplace([this, expr, rule, limit]() { - ApplyRule(ImplementationRuleId{rule}, expr, limit); + ApplyRule(TransformationRuleId{rule}, expr, limit); }); } - for (auto child : GetChildren(expr)) { - if (IsExplored(child)) { + for (size_t rule = 0; rule < NImplementation; rule++) { + if (!rules_applier_.IsApplicable(ImplementationRuleId{rule}, expr)) { continue; } - tasks_.emplace([this, child, limit]() { - ExploreGroup(child, limit); + tasks_.emplace([this, expr, rule]() { + Log("Applying implementation rule {} to group {}", rule, expr->group->GetId()); + auto new_expr = rules_applier_.Apply(ImplementationRuleId{rule}, expr, memo_); + auto lc = CalcCost(new_expr, cardinality_); + Log("Local cost for group {} expression: {}", new_expr->group->GetId(), lc); + local_cost_[new_expr.get()] = lc; }); } } @@ -180,16 +287,11 @@ template void Optimizer::ExploreExpression( utils::NotNull expr, Limit limit) { Log("Exploring expression in group {}", expr->group->GetId()); - for (size_t rule = 0; rule < NTransformation; rule++) { - if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { - continue; - } - tasks_.emplace([this, expr, rule, limit]() { - ApplyRule(TransformationRuleId{rule}, expr, limit); - }); - } + TryRules(expr, limit); + if (!explored_exprs_.insert(expr.get()).second) return; for (auto child : GetChildren(expr)) { + group_parents_[child.get()].push_back(expr.get()); if (IsExplored(child)) { continue; } @@ -213,64 +315,118 @@ void Optimizer::ExploreGroup( template void Optimizer::OptimizeGroup( - utils::NotNull group, Limit limit) { + utils::NotNull group, PropertySet required, Limit limit) { Log("Optimizing group {}", group->GetId()); - if (auto it = best_cost_.find(group.get()); it != best_cost_.end()) { - if (!limit || it->second < *limit) return; - } + WinnerKey key{group.get(), required}; + if (best_cost_.contains(key)) return; + + if (IsExplored(group) && limit && LowerBoundCost(group) >= *limit) return; if (!IsExplored(group)) { - tasks_.emplace([this, group, limit]() { OptimizeGroup(group, limit); }); + tasks_.emplace([this, group, required, limit]() { + OptimizeGroup(group, required, limit); + }); tasks_.emplace([this, group, limit]() { ExploreGroup(group, limit); }); return; } - for (auto expr : group->GetLogicalExprs()) { - tasks_.emplace([this, expr, limit]() { OptimizeExpression(expr, limit); }); + // Try every non-enforcer phys expr under `required`. Whether it actually + // serves `required` is decided at the bottom of OptimizeInputs once children + // have resolved and DeriveOutputProps can compute the true delivered. + for (auto phys_expr : group->GetPhysicalExprs()) { + if (phys_expr->is_enforcer) continue; + auto lc = local_cost_[phys_expr.get()]; + if (limit && lc >= *limit) continue; + tasks_.emplace([this, phys_expr, required, lc, limit]() { + OptimizeInputs(phys_expr, required, {}, lc, limit); + }); + } + + // Add Sort enforcer once per (group, required) if required asks for a sort, + // and schedule its OptimizeInputs. Enforcers are scheduled here only — the + // general scan skips them so the enforcer doesn't get picked up under + // required=Any (which would recurse into its own group infinitely). + // A Sort enforcer references the keys' columns by (table, name), so it is + // only placeable when those columns are still in this group's output schema. + // Unknown schema (catalog has no info) is treated permissively. + if (required.sort && !enforcers_added_.contains(key)) { + bool can_enforce = true; + if (auto schema = schema_.GetSchema(group)) { + for (const auto& sk : required.sort->keys) { + bool found = false; + for (const auto& a : *schema) { + if (a.table == sk.table && a.name == sk.column) { found = true; break; } + } + if (!found) { can_enforce = false; break; } + } + } + if (can_enforce) { + enforcers_added_.insert(key); + auto sort_expr = group->AddPhysicalExpr( + physical::Sort{group, *required.sort}, /*is_enforcer=*/true); + auto lc = CalcCost(sort_expr, cardinality_); + Log("Sort enforcer local cost for group {}: {}", group->GetId(), lc); + local_cost_[sort_expr.get()] = lc; + if (!limit || lc < *limit) { + tasks_.emplace([this, sort_expr, required, lc, limit]() { + OptimizeInputs(sort_expr, required, {}, lc, limit); + }); + } + } } } template -PhysicalPlanNode Optimizer::BuildOptimalPlan(Group* group) { +PhysicalPlanNode Optimizer::BuildOptimalPlan(Group* group, PropertySet required) { Log("Building optimal plan for group {}", group->GetId()); - auto best_expr = best_plan_[group]; - if (!best_expr) { + WinnerKey key{group, required}; + auto it = best_plan_.find(key); + if (it == best_plan_.end() || !it->second) { throw std::runtime_error{"no optimal plan for group"}; } + auto* best_expr = it->second; + utils::NotNull best_expr_nn{best_expr}; return std::visit( utils::Overloaded{ [](const physical::SeqScan& op) -> PhysicalPlanNode { return SeqScan{.table = op.table}; }, - [this](const physical::Projection& op) -> PhysicalPlanNode { + [this, best_expr_nn, required](const physical::Projection& op) -> PhysicalPlanNode { return PhysicalProjection{ - .source = std::make_shared(BuildOptimalPlan(op.source.get())), + .source = std::make_shared( + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), .expressions = op.expressions, }; }, - [this](const physical::Filter& op) -> PhysicalPlanNode { + [this, best_expr_nn, required](const physical::Filter& op) -> PhysicalPlanNode { return PhysicalFilter{ - .source = std::make_shared(BuildOptimalPlan(op.source.get())), + .source = std::make_shared( + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), .predicate = op.predicate, }; }, - [this](const physical::NestedLoopJoin& op) -> PhysicalPlanNode { + [this, best_expr_nn, required](const physical::NestedLoopJoin& op) -> PhysicalPlanNode { return NestedLoopJoin{ - .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), - .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), + .lhs = std::make_shared( + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0))), + .rhs = std::make_shared( + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), .type = op.type, .qual = op.qual, }; }, - [this](const physical::NestedLoopCrossJoin& op) -> PhysicalPlanNode { + [this, best_expr_nn, required](const physical::NestedLoopCrossJoin& op) -> PhysicalPlanNode { return NestedLoopCrossJoin{ - .lhs = std::make_shared(BuildOptimalPlan(op.lhs.get())), - .rhs = std::make_shared(BuildOptimalPlan(op.rhs.get())), + .lhs = std::make_shared( + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0))), + .rhs = std::make_shared( + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), }; }, - [this](const physical::Sort& op) -> PhysicalPlanNode { + [this, best_expr_nn, required](const physical::Sort& op) -> PhysicalPlanNode { return PhysicalSort{ - .source = std::make_shared(BuildOptimalPlan(op.input.get())), + .source = std::make_shared( + BuildOptimalPlan(op.input.get(), RequiredInputProps(best_expr_nn, required, 0))), .keys = op.keys, }; }, @@ -279,9 +435,9 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G } template -void Optimizer::RunSearch() { +void Optimizer::RunSearch(PropertySet required, Limit limit) { Log("Starting optimization"); - tasks_.emplace([this]() { OptimizeGroup(root_->group); }); + tasks_.emplace([this, required, limit]() { OptimizeGroup(root_->group, required, limit); }); while (!tasks_.empty()) { auto next_task = std::move(tasks_.top()); tasks_.pop(); @@ -290,15 +446,15 @@ void Optimizer::RunSearch() { } template -PhysicalPlanNode Optimizer::Optimize() { - RunSearch(); +PhysicalPlanNode Optimizer::Optimize(PropertySet required) { + RunSearch(required, std::numeric_limits::max()); Log("Optimization complete, building plan"); - return BuildOptimalPlan(root_->group.get()); + return BuildOptimalPlan(root_->group.get(), required); } template void Optimizer::OptimizeExhaustive() { - RunSearch(); + RunSearch(PropertySet::Any(), std::nullopt); } template diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 34bacd8..fba1769 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -42,6 +42,10 @@ TEST(OptimizerTest, JoinCommutativity) { ASSERT_THAT(Serialize(got), Eq("(NestedLoopJoin Inner (= (attr users id) (attr orders user_id)) (SeqScan orders) (SeqScan users))")); } +TEST(OptimizerTest, OrderBy) { + // TODO: SELECT a FROM T ORDER BY b +} + TEST(ReachabilityTest, SeqScanReachable) { std::stringstream s{"SELECT * FROM users;"}; auto result = IsPlanReachable(s, SeqScan{"users"}); diff --git a/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp b/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp index 15942d1..7263ca1 100644 --- a/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp +++ b/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp @@ -9,43 +9,43 @@ using ::testing::IsFalse; namespace stewkk::sql { TEST(SortOrderTest, EmptyRequiredAlwaysSatisfied) { - SortOrder delivered{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}; + SortOrder delivered{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}}}; SortOrder required{}; ASSERT_THAT(delivered.Satisfies(required), IsTrue()); } TEST(SortOrderTest, ExactMatchSatisfied) { - SortOrder delivered{{{"a", Direction::kAsc}, {"b", Direction::kDesc}}}; - SortOrder required{{{"a", Direction::kAsc}, {"b", Direction::kDesc}}}; + SortOrder delivered{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kDesc}}}; + SortOrder required{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kDesc}}}; ASSERT_THAT(delivered.Satisfies(required), IsTrue()); } TEST(SortOrderTest, LongerDeliveredSatisfiesPrefix) { - SortOrder delivered{{{"a", Direction::kAsc}, {"b", Direction::kAsc}, {"c", Direction::kAsc}}}; - SortOrder required{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}; + SortOrder delivered{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}, {"t", "c", Direction::kAsc}}}; + SortOrder required{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}}}; ASSERT_THAT(delivered.Satisfies(required), IsTrue()); } TEST(SortOrderTest, ShorterDeliveredDoesNotSatisfy) { - SortOrder delivered{{{"a", Direction::kAsc}}}; - SortOrder required{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}; + SortOrder delivered{{{"t", "a", Direction::kAsc}}}; + SortOrder required{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}}}; ASSERT_THAT(delivered.Satisfies(required), IsFalse()); } TEST(SortOrderTest, WrongDirectionDoesNotSatisfy) { - SortOrder delivered{{{"a", Direction::kAsc}}}; - SortOrder required{{{"a", Direction::kDesc}}}; + SortOrder delivered{{{"t", "a", Direction::kAsc}}}; + SortOrder required{{{"t", "a", Direction::kDesc}}}; ASSERT_THAT(delivered.Satisfies(required), IsFalse()); } TEST(SortOrderTest, WrongColumnDoesNotSatisfy) { - SortOrder delivered{{{"b", Direction::kAsc}}}; - SortOrder required{{{"a", Direction::kAsc}}}; + SortOrder delivered{{{"t", "b", Direction::kAsc}}}; + SortOrder required{{{"t", "a", Direction::kAsc}}}; ASSERT_THAT(delivered.Satisfies(required), IsFalse()); } TEST(PropertySetTest, AnyAlwaysSatisfied) { - PropertySet delivered{SortOrder{{{"a", Direction::kAsc}}}}; + PropertySet delivered{SortOrder{{{"t", "a", Direction::kAsc}}}}; ASSERT_THAT(delivered.Satisfies(PropertySet::Any()), IsTrue()); } @@ -54,13 +54,13 @@ TEST(PropertySetTest, AnySatisfiesAny) { } TEST(PropertySetTest, AnyDoesNotSatisfySortRequirement) { - PropertySet required{SortOrder{{{"a", Direction::kAsc}}}}; + PropertySet required{SortOrder{{{"t", "a", Direction::kAsc}}}}; ASSERT_THAT(PropertySet::Any().Satisfies(required), IsFalse()); } TEST(PropertySetTest, SortSatisfiesSortPrefix) { - PropertySet delivered{SortOrder{{{"a", Direction::kAsc}, {"b", Direction::kAsc}}}}; - PropertySet required{SortOrder{{{"a", Direction::kAsc}}}}; + PropertySet delivered{SortOrder{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}}}}; + PropertySet required{SortOrder{{{"t", "a", Direction::kAsc}}}}; ASSERT_THAT(delivered.Satisfies(required), IsTrue()); } diff --git a/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp b/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp index e4c872f..5c51bed 100644 --- a/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp +++ b/src/stewkk/sql/logic/optimizer/properties/sort_order.cpp @@ -21,7 +21,8 @@ bool SortOrder::Satisfies(const SortOrder& required) const { namespace std { size_t hash::operator()(const stewkk::sql::SortKey& k) const noexcept { - size_t h = hash{}(k.column); + size_t h = hash{}(k.table); + boost::hash_combine(h, hash{}(k.column)); boost::hash_combine(h, static_cast(k.dir)); return h; } diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 3f3b659..469a96c 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -20,11 +20,13 @@ utils::NotNull RulesApplier::App template bool RulesApplier::IsApplicable(ImplementationRuleId rule, utils::NotNull expr) { - return rules_.implementation_rules[rule.value]->IsApplicable(expr); + return !applied_implementation_rules_[expr.get()][rule.value] && + rules_.implementation_rules[rule.value]->IsApplicable(expr); } template utils::NotNull RulesApplier::Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo) { + applied_implementation_rules_[expr.get()][rule.value] = 1; return rules_.implementation_rules[rule.value]->Apply(expr, memo); } diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp new file mode 100644 index 0000000..d1d04f1 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -0,0 +1,61 @@ +#include + +#include + +namespace stewkk::sql { + +SchemaCatalog::SchemaCatalog(std::unordered_map tables) + : tables_(std::move(tables)) {} + +std::optional SchemaCatalog::GetSchema(utils::NotNull group) { + if (auto it = cache_.find(group.get()); it != cache_.end()) { + return it->second; + } + auto schema = Derive(group->GetLogicalExprs().front()->root_operator); + cache_[group.get()] = schema; + return schema; +} + +// TODO: refactor to remove duplicate logic: both executor and optimizer derive +// attributes +std::optional SchemaCatalog::Derive(const LogicalOperator& op) { + return std::visit(utils::Overloaded{ + [this](const logical::Table& t) -> std::optional { + auto it = tables_.find(t.name); + if (it == tables_.end()) return std::nullopt; + return it->second; + }, + [this](const logical::Filter& f) -> std::optional { + return GetSchema(f.source); + }, + [](const logical::Projection& p) -> std::optional { + // Schema after projection is exactly the Attributes named in its + // expression list. Computed (non-Attribute) expressions produce + // columns that can't be referenced by (table, name), so they are + // dropped from the schema — sorting on them is impossible anyway. + Schema out; + for (const auto& expr : p.expressions) { + if (const auto* a = std::get_if(&expr)) { + out.push_back(*a); + } + } + return out; + }, + [this](const logical::CrossJoin& j) -> std::optional { + auto l = GetSchema(j.lhs); + auto r = GetSchema(j.rhs); + if (!l || !r) return std::nullopt; + l->insert(l->end(), r->begin(), r->end()); + return l; + }, + [this](const logical::Join& j) -> std::optional { + auto l = GetSchema(j.lhs); + auto r = GetSchema(j.rhs); + if (!l || !r) return std::nullopt; + l->insert(l->end(), r->begin(), r->end()); + return l; + }, + }, op); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/winner_key.cpp b/src/stewkk/sql/logic/optimizer/winner_key.cpp new file mode 100644 index 0000000..3861905 --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/winner_key.cpp @@ -0,0 +1,15 @@ +#include + +#include + +#include + +namespace std { + +size_t hash::operator()(const stewkk::sql::WinnerKey& k) const noexcept { + size_t h = std::hash{}(k.group); + boost::hash_combine(h, std::hash{}(k.required)); + return h; +} + +} // namespace std From 25d1c2114a24dd3a3fe72b87fee6c6dc11a422b0 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 24 May 2026 16:31:50 +0300 Subject: [PATCH 045/120] Fix use after free --- .../stewkk/sql/logic/executor/executor.hpp | 6 ++- src/stewkk/sql/logic/executor/executor.cpp | 42 +++++++++++++------ 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 9added1..94a2d79 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -6,6 +6,8 @@ #include #include +#include +#include #include #include @@ -61,7 +63,9 @@ class Executor { TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteJoin(const NestedLoopJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable SpawnExecutor(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); + boost::asio::experimental::promise SpawnExecutor( + boost::asio::any_io_executor exec, + const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); private: SequentialScan sequential_scan_; diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 59f095d..0135416 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -389,8 +389,9 @@ Executor::Executor(SequentialScan seq_scan, boost::asio::any template boost::asio::awaitable> Executor::Execute(const PhysicalPlanNode& op) { + auto exec = co_await boost::asio::this_coro::executor; auto [attr_chan, tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(op, attr_chan, tuples_chan); + auto task = SpawnExecutor(exec, op, attr_chan, tuples_chan); auto attrs = co_await attr_chan.async_receive(boost::asio::use_awaitable); Log("Received attrs in root"); @@ -405,6 +406,7 @@ boost::asio::awaitable> Executor::Execute(c std::move(buf.begin(), buf.end(), std::back_inserter(result)); } + co_await task(boost::asio::use_awaitable); Log("Total {} tuples in root", result.size()); co_return Ok(Relation{std::move(attrs), std::move(result)}); } @@ -448,8 +450,9 @@ boost::asio::awaitable Executor::Execute(const Physica } // FIXME: that's in-memory sort boost::asio::awaitable operator()(const PhysicalSort& sort) { + auto exec = co_await boost::asio::this_coro::executor; auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); - co_await executor.SpawnExecutor(*sort.source, in_attrs_chan, in_tuples_chan); + auto task = executor.SpawnExecutor(exec, *sort.source, in_attrs_chan, in_tuples_chan); auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); @@ -492,6 +495,7 @@ boost::asio::awaitable Executor::Execute(const Physica if (!all_tuples.empty()) co_await tuples_chan.async_send(boost::system::error_code{}, std::move(all_tuples), boost::asio::use_awaitable); + co_await task(boost::asio::use_awaitable); tuples_chan.close(); co_return; } @@ -509,8 +513,9 @@ boost::asio::awaitable Executor::ExecuteProjection(con AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { Log("Executing projection"); + auto exec = co_await boost::asio::this_coro::executor; auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*proj.source, in_attrs_chan, in_tuples_chan); + auto task = SpawnExecutor(exec, *proj.source, in_attrs_chan, in_tuples_chan); auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); auto attrs_after = GetAttributesAfterProjection(attrs, proj); @@ -536,6 +541,7 @@ boost::asio::awaitable Executor::ExecuteProjection(con co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(buf), boost::asio::use_awaitable); } + co_await task(boost::asio::use_awaitable); out_tuples_chan.close(); } @@ -544,8 +550,9 @@ boost::asio::awaitable Executor::ExecuteFilter(const P AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { Log("Executing filter"); + auto exec = co_await boost::asio::this_coro::executor; auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*filter.source, in_attrs_chan, in_tuples_chan); + auto task = SpawnExecutor(exec, *filter.source, in_attrs_chan, in_tuples_chan); auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); Log("Filter received attrs"); @@ -588,6 +595,7 @@ boost::asio::awaitable Executor::ExecuteFilter(const P co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(output_buf), boost::asio::use_awaitable); } + co_await task(boost::asio::use_awaitable); out_tuples_chan.close(); } @@ -596,10 +604,11 @@ boost::asio::awaitable Executor::ExecuteCrossJoin(cons AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { Log("Executing cross join"); + auto exec = co_await boost::asio::this_coro::executor; auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*cross_join.lhs, lhs_attrs_chan, lhs_tuples_chan); + auto lhs_task = SpawnExecutor(exec, *cross_join.lhs, lhs_attrs_chan, lhs_tuples_chan); auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*cross_join.rhs, rhs_attrs_chan, rhs_tuples_chan); + auto rhs_task = SpawnExecutor(exec, *cross_join.rhs, rhs_attrs_chan, rhs_tuples_chan); auto attrs = co_await ConcatAttrs(lhs_attrs_chan, rhs_attrs_chan); Log("Cross join received attrs"); @@ -639,6 +648,8 @@ boost::asio::awaitable Executor::ExecuteCrossJoin(cons } } } + co_await lhs_task(boost::asio::use_awaitable); + co_await rhs_task(boost::asio::use_awaitable); tuples_chan.close(); } @@ -653,10 +664,11 @@ boost::asio::awaitable Executor::ExecuteJoin(const Nes if (join.type == JoinType::kLeft) { std::swap(*join.lhs, *join.rhs); } + auto exec = co_await boost::asio::this_coro::executor; auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*join.lhs, lhs_attrs_chan, lhs_tuples_chan); + auto lhs_task = SpawnExecutor(exec, *join.lhs, lhs_attrs_chan, lhs_tuples_chan); auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); - co_await SpawnExecutor(*join.rhs, rhs_attrs_chan, rhs_tuples_chan); + auto rhs_task = SpawnExecutor(exec, *join.rhs, rhs_attrs_chan, rhs_tuples_chan); auto attrs = co_await ConcatAttrs(lhs_attrs_chan, rhs_attrs_chan); Log("Join received attrs"); @@ -726,15 +738,19 @@ boost::asio::awaitable Executor::ExecuteJoin(const Nes } } } + co_await lhs_task(boost::asio::use_awaitable); + co_await rhs_task(boost::asio::use_awaitable); tuples_chan.close(); } template -boost::asio::awaitable Executor::SpawnExecutor(const PhysicalPlanNode& op, - AttributesInfoChannel& attr_chan, - TuplesChannel& tuple_chan) { - auto executor = co_await boost::asio::this_coro::executor; - boost::asio::co_spawn(executor, Execute(op, attr_chan, tuple_chan), boost::asio::detached); +boost::asio::experimental::promise +Executor::SpawnExecutor(boost::asio::any_io_executor exec, + const PhysicalPlanNode& op, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuple_chan) { + return boost::asio::co_spawn(exec, Execute(op, attr_chan, tuple_chan), + boost::asio::experimental::use_promise); } template class Executor; From 618a2c5b9989846b0a6765dd610bfae6c5c6d3cf Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 24 May 2026 17:19:24 +0300 Subject: [PATCH 046/120] Refactor --- .gitignore | 1 + .../stewkk/sql/logic/optimizer/optimizer.hpp | 10 +++++--- src/stewkk/sql/logic/optimizer/optimizer.cpp | 25 +++++++++---------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index 2ebf72d..86a6b40 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ FlameGraph/ **/build/ /.odbc/ **/__pycache__ +/build-tsan/ diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index 90587ea..f6852be 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -59,6 +59,12 @@ class Optimizer { PhysicalPlanNode BuildOptimalPlan(Group* group, PropertySet required = PropertySet::Any()); + struct WinnerEntry { + int64_t cost; + PhysicalExpr* plan; + PropertySet delivered; + }; + Memo memo_; RulesApplier rules_applier_; std::stack> tasks_; @@ -68,9 +74,7 @@ class Optimizer { CardinalityEstimates cardinality_; SchemaCatalog schema_; std::unordered_map local_cost_; - std::unordered_map best_cost_; - std::unordered_map best_plan_; - std::unordered_map best_delivered_; + std::unordered_map winner_; std::unordered_set enforcers_added_; std::unordered_map> group_parents_; std::unordered_map lower_bounds_; diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 5de52be..3cd06bc 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -197,8 +197,8 @@ void Optimizer::OptimizeInputs( // accum = local_cost(expr) + cost of children processed so far. // child_delivered[i] = what child i actually delivered (filled as we go). WinnerKey self_key{expr->group.get(), required}; - if (auto it = best_cost_.find(self_key); it != best_cost_.end()) { - limit = limit ? Limit{std::min(*limit, it->second)} : Limit{it->second}; + if (auto it = winner_.find(self_key); it != winner_.end()) { + limit = limit ? Limit{std::min(*limit, it->second.cost)} : Limit{it->second.cost}; } if (limit && accum >= *limit) return; auto children = GetChildren(expr); @@ -206,11 +206,9 @@ void Optimizer::OptimizeInputs( auto delivered = DeriveOutputProps(expr, child_delivered); if (!delivered.Satisfies(required)) return; WinnerKey key{expr->group.get(), required}; - if (!best_cost_.contains(key) || accum < best_cost_.at(key)) { + if (!winner_.contains(key) || accum < winner_.at(key).cost) { Log("New best plan for group {} with cost {}", expr->group->GetId(), accum); - best_cost_[key] = accum; - best_plan_[key] = expr.get(); - best_delivered_[key] = delivered; + winner_[key] = WinnerEntry{accum, expr.get(), delivered}; } return; } @@ -220,10 +218,11 @@ void Optimizer::OptimizeInputs( tasks_.emplace([this, expr, child, child_index, required, child_delivered, accum, limit, child_required]() mutable { WinnerKey child_key{child.get(), child_required}; - if (!best_cost_.contains(child_key)) return; - auto new_accum = accum + best_cost_.at(child_key); + auto child_it = winner_.find(child_key); + if (child_it == winner_.end()) return; + auto new_accum = accum + child_it->second.cost; if (limit && new_accum >= *limit) return; - child_delivered.push_back(best_delivered_.at(child_key)); + child_delivered.push_back(child_it->second.delivered); OptimizeInputs(expr, required, std::move(child_delivered), new_accum, limit, child_index + 1); }); @@ -318,7 +317,7 @@ void Optimizer::OptimizeGroup( utils::NotNull group, PropertySet required, Limit limit) { Log("Optimizing group {}", group->GetId()); WinnerKey key{group.get(), required}; - if (best_cost_.contains(key)) return; + if (winner_.contains(key)) return; if (IsExplored(group) && limit && LowerBoundCost(group) >= *limit) return; @@ -380,11 +379,11 @@ template PhysicalPlanNode Optimizer::BuildOptimalPlan(Group* group, PropertySet required) { Log("Building optimal plan for group {}", group->GetId()); WinnerKey key{group, required}; - auto it = best_plan_.find(key); - if (it == best_plan_.end() || !it->second) { + auto it = winner_.find(key); + if (it == winner_.end() || !it->second.plan) { throw std::runtime_error{"no optimal plan for group"}; } - auto* best_expr = it->second; + auto* best_expr = it->second.plan; utils::NotNull best_expr_nn{best_expr}; return std::visit( utils::Overloaded{ From bfff9d9ca96e6f4951ade8f435f31dac419bae75 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 24 May 2026 23:12:16 +0300 Subject: [PATCH 047/120] Refactor --- .../stewkk/sql/logic/optimizer/enforcer.hpp | 22 +++++++ .../stewkk/sql/logic/optimizer/optimizer.hpp | 1 + .../logic/optimizer/properties/property.hpp | 31 ++++++++++ .../optimizer/properties/property_set.hpp | 48 +++++++++++++--- .../optimizer/properties/sort_property.hpp | 24 ++++++++ include/stewkk/sql/logic/optimizer/rule.hpp | 2 - .../sql/logic/optimizer/sort_enforcer.hpp | 21 +++++++ src/stewkk/sql/CMakeLists.txt | 2 + src/stewkk/sql/logic/optimizer/optimizer.cpp | 51 +++++++---------- .../optimizer/properties/properties_test.cpp | 9 +-- .../optimizer/properties/property_set.cpp | 57 ++++++++++++++++--- .../optimizer/properties/sort_property.cpp | 23 ++++++++ .../sql/logic/optimizer/sort_enforcer.cpp | 26 +++++++++ 13 files changed, 266 insertions(+), 51 deletions(-) create mode 100644 include/stewkk/sql/logic/optimizer/enforcer.hpp create mode 100644 include/stewkk/sql/logic/optimizer/properties/property.hpp create mode 100644 include/stewkk/sql/logic/optimizer/properties/sort_property.hpp create mode 100644 include/stewkk/sql/logic/optimizer/sort_enforcer.hpp create mode 100644 src/stewkk/sql/logic/optimizer/properties/sort_property.cpp create mode 100644 src/stewkk/sql/logic/optimizer/sort_enforcer.cpp diff --git a/include/stewkk/sql/logic/optimizer/enforcer.hpp b/include/stewkk/sql/logic/optimizer/enforcer.hpp new file mode 100644 index 0000000..4a7173d --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/enforcer.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include + +#include +#include +#include +#include + +namespace stewkk::sql { + +class Enforcer { +public: + virtual ~Enforcer() = default; + + virtual std::optional TryBuild( + utils::NotNull group, + const PropertySet& required, + SchemaCatalog& schema) const = 0; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index f6852be..c91dc32 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include diff --git a/include/stewkk/sql/logic/optimizer/properties/property.hpp b/include/stewkk/sql/logic/optimizer/properties/property.hpp new file mode 100644 index 0000000..425425f --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/properties/property.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +class Property { +public: + virtual ~Property() = default; + + virtual std::unique_ptr Clone() const = 0; + virtual bool Satisfies(const Property& required) const = 0; + virtual bool Equals(const Property& other) const = 0; + virtual std::size_t Hash() const = 0; +}; + +template +class PropertyBase : public Property { +public: + bool Satisfies(const Property& other) const final { + return static_cast(this)->SatisfiesTyped( + static_cast(other)); + } + bool Equals(const Property& other) const final { + return static_cast(this)->EqualsTyped( + static_cast(other)); + } +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/properties/property_set.hpp b/include/stewkk/sql/logic/optimizer/properties/property_set.hpp index d092408..c3a006c 100644 --- a/include/stewkk/sql/logic/optimizer/properties/property_set.hpp +++ b/include/stewkk/sql/logic/optimizer/properties/property_set.hpp @@ -1,23 +1,55 @@ #pragma once +#include #include -#include +#include +#include +#include +#include -#include +#include namespace stewkk::sql { -struct PropertySet { - std::optional sort; - +class PropertySet { +public: PropertySet() = default; - explicit PropertySet(std::optional sort); + PropertySet(const PropertySet& other); + PropertySet(PropertySet&&) noexcept = default; + PropertySet& operator=(const PropertySet& other); + PropertySet& operator=(PropertySet&&) noexcept = default; + ~PropertySet() = default; - bool Satisfies(const PropertySet& required) const; + template + requires (sizeof...(Ps) > 0) && + (std::derived_from, Property> && ...) + explicit PropertySet(Ps&&... ps) { + props_.reserve(sizeof...(Ps)); + (props_.push_back(std::make_unique>(std::forward(ps))), ...); + Normalize(); + } static PropertySet Any(); - bool operator==(const PropertySet&) const = default; + bool Satisfies(const PropertySet& required) const; + + template + const T* Get() const noexcept { + for (const auto& p : props_) { + const Property& prop = *p; + if (typeid(prop) == typeid(T)) return static_cast(&prop); + } + return nullptr; + } + + const std::vector>& Items() const noexcept; + + bool operator==(const PropertySet& other) const; + +private: + void Normalize(); + + std::vector> props_; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/properties/sort_property.hpp b/include/stewkk/sql/logic/optimizer/properties/sort_property.hpp new file mode 100644 index 0000000..562a954 --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/properties/sort_property.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +#include +#include + +namespace stewkk::sql { + +class SortProperty final : public PropertyBase { +public: + SortOrder order; + + SortProperty() = default; + explicit SortProperty(SortOrder o) : order(std::move(o)) {} + + std::unique_ptr Clone() const override; + bool SatisfiesTyped(const SortProperty& required) const; + bool EqualsTyped(const SortProperty& other) const; + std::size_t Hash() const override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rule.hpp b/include/stewkk/sql/logic/optimizer/rule.hpp index a764cce..8690454 100644 --- a/include/stewkk/sql/logic/optimizer/rule.hpp +++ b/include/stewkk/sql/logic/optimizer/rule.hpp @@ -27,6 +27,4 @@ class ImplementationRule { virtual ~ImplementationRule() = default; }; -// FIXME: enforcer rules? - } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/sort_enforcer.hpp b/include/stewkk/sql/logic/optimizer/sort_enforcer.hpp new file mode 100644 index 0000000..4273f3b --- /dev/null +++ b/include/stewkk/sql/logic/optimizer/sort_enforcer.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include + +#include +#include +#include +#include +#include + +namespace stewkk::sql { + +class SortEnforcer final : public Enforcer { +public: + std::optional TryBuild( + utils::NotNull group, + const PropertySet& required, + SchemaCatalog& schema) const override; +}; + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 6b72238..daeda1c 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -32,6 +32,7 @@ add_library(libsql logic/optimizer/cardinality.cpp logic/optimizer/schema_catalog.cpp logic/optimizer/winner_key.cpp + logic/optimizer/sort_enforcer.cpp logic/optimizer/group.cpp logic/optimizer/memo.cpp logic/optimizer/rules.cpp @@ -45,6 +46,7 @@ add_library(libsql logic/implementation_rules/implement_join.cpp logic/implementation_rules/implement_cross_join.cpp logic/optimizer/properties/sort_order.cpp + logic/optimizer/properties/sort_property.cpp logic/optimizer/properties/property_set.cpp ) add_library(stewkk::libsql ALIAS libsql) diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 3cd06bc..dc1f16b 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -11,11 +11,19 @@ #include #include #include +#include +#include namespace stewkk::sql { namespace { +static const std::vector> kEnforcers = [] { + std::vector> v; + v.push_back(std::make_unique()); + return v; +}(); + // Top-down: given `required` of this expr, what must child `child_index` deliver? PropertySet RequiredInputProps(utils::NotNull expr, PropertySet required, size_t child_index) { @@ -44,7 +52,7 @@ PropertySet DeriveOutputProps(utils::NotNull expr, [&](const physical::Projection&) { return child_delivered[0]; }, [&](const physical::NestedLoopJoin&) { return child_delivered[0]; }, [&](const physical::NestedLoopCrossJoin&) { return child_delivered[0]; }, - [&](const physical::Sort& s) { return PropertySet{s.keys}; }, + [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, }, expr->root_operator); } @@ -154,7 +162,8 @@ Optimizer::Optimizer( const Operator& expr, Rules&& rules, CardinalityEstimates cardinality, SchemaCatalog schema) : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), - cardinality_(std::move(cardinality)), schema_(std::move(schema)) {} + cardinality_(std::move(cardinality)), schema_(std::move(schema)) { +} template int64_t Optimizer::LowerBoundCost(utils::NotNull group) { @@ -341,34 +350,18 @@ void Optimizer::OptimizeGroup( }); } - // Add Sort enforcer once per (group, required) if required asks for a sort, - // and schedule its OptimizeInputs. Enforcers are scheduled here only — the - // general scan skips them so the enforcer doesn't get picked up under - // required=Any (which would recurse into its own group infinitely). - // A Sort enforcer references the keys' columns by (table, name), so it is - // only placeable when those columns are still in this group's output schema. - // Unknown schema (catalog has no info) is treated permissively. - if (required.sort && !enforcers_added_.contains(key)) { - bool can_enforce = true; - if (auto schema = schema_.GetSchema(group)) { - for (const auto& sk : required.sort->keys) { - bool found = false; - for (const auto& a : *schema) { - if (a.table == sk.table && a.name == sk.column) { found = true; break; } - } - if (!found) { can_enforce = false; break; } - } - } - if (can_enforce) { - enforcers_added_.insert(key); - auto sort_expr = group->AddPhysicalExpr( - physical::Sort{group, *required.sort}, /*is_enforcer=*/true); - auto lc = CalcCost(sort_expr, cardinality_); - Log("Sort enforcer local cost for group {}: {}", group->GetId(), lc); - local_cost_[sort_expr.get()] = lc; + if (!enforcers_added_.contains(key)) { + enforcers_added_.insert(key); + for (const auto& enforcer : kEnforcers) { + auto op = enforcer->TryBuild(group, required, schema_); + if (!op) continue; + auto enf_expr = group->AddPhysicalExpr(*op, /*is_enforcer=*/true); + auto lc = CalcCost(enf_expr, cardinality_); + Log("Enforcer local cost for group {}: {}", group->GetId(), lc); + local_cost_[enf_expr.get()] = lc; if (!limit || lc < *limit) { - tasks_.emplace([this, sort_expr, required, lc, limit]() { - OptimizeInputs(sort_expr, required, {}, lc, limit); + tasks_.emplace([this, enf_expr, required, lc, limit]() { + OptimizeInputs(enf_expr, required, {}, lc, limit); }); } } diff --git a/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp b/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp index 7263ca1..4d61bb4 100644 --- a/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp +++ b/src/stewkk/sql/logic/optimizer/properties/properties_test.cpp @@ -2,6 +2,7 @@ #include #include +#include using ::testing::IsTrue; using ::testing::IsFalse; @@ -45,7 +46,7 @@ TEST(SortOrderTest, WrongColumnDoesNotSatisfy) { } TEST(PropertySetTest, AnyAlwaysSatisfied) { - PropertySet delivered{SortOrder{{{"t", "a", Direction::kAsc}}}}; + PropertySet delivered{SortProperty{SortOrder{{{"t", "a", Direction::kAsc}}}}}; ASSERT_THAT(delivered.Satisfies(PropertySet::Any()), IsTrue()); } @@ -54,13 +55,13 @@ TEST(PropertySetTest, AnySatisfiesAny) { } TEST(PropertySetTest, AnyDoesNotSatisfySortRequirement) { - PropertySet required{SortOrder{{{"t", "a", Direction::kAsc}}}}; + PropertySet required{SortProperty{SortOrder{{{"t", "a", Direction::kAsc}}}}}; ASSERT_THAT(PropertySet::Any().Satisfies(required), IsFalse()); } TEST(PropertySetTest, SortSatisfiesSortPrefix) { - PropertySet delivered{SortOrder{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}}}}; - PropertySet required{SortOrder{{{"t", "a", Direction::kAsc}}}}; + PropertySet delivered{SortProperty{SortOrder{{{"t", "a", Direction::kAsc}, {"t", "b", Direction::kAsc}}}}}; + PropertySet required{SortProperty{SortOrder{{{"t", "a", Direction::kAsc}}}}}; ASSERT_THAT(delivered.Satisfies(required), IsTrue()); } diff --git a/src/stewkk/sql/logic/optimizer/properties/property_set.cpp b/src/stewkk/sql/logic/optimizer/properties/property_set.cpp index 310c908..3286b0c 100644 --- a/src/stewkk/sql/logic/optimizer/properties/property_set.cpp +++ b/src/stewkk/sql/logic/optimizer/properties/property_set.cpp @@ -1,20 +1,58 @@ #include +#include +#include +#include + #include namespace stewkk::sql { -PropertySet::PropertySet(std::optional s) : sort(std::move(s)) { - // derive implied properties from sort here as new property types are added +PropertySet::PropertySet(const PropertySet& other) { + props_.reserve(other.props_.size()); + for (const auto& p : other.props_) props_.push_back(p->Clone()); +} + +PropertySet& PropertySet::operator=(const PropertySet& other) { + if (this == &other) return *this; + std::vector> copy; + copy.reserve(other.props_.size()); + for (const auto& p : other.props_) copy.push_back(p->Clone()); + props_ = std::move(copy); + return *this; } PropertySet PropertySet::Any() { return {}; } +const std::vector>& PropertySet::Items() const noexcept { return props_; } + +void PropertySet::Normalize() { + std::ranges::sort(props_, {}, [](const std::unique_ptr& p) { + const Property& prop = *p; + return std::type_index(typeid(prop)); + }); +} + bool PropertySet::Satisfies(const PropertySet& required) const { - if (required.sort) { - if (!sort.has_value() || !sort->Satisfies(required.sort.value())) { - return false; - } + for (const auto& req : required.props_) { + const Property& req_ref = *req; + auto it = std::ranges::find_if(props_, [&](const std::unique_ptr& d) { + const Property& d_ref = *d; + return typeid(d_ref) == typeid(req_ref); + }); + if (it == props_.end()) return false; + if (!(*it)->Satisfies(*req)) return false; + } + return true; +} + +bool PropertySet::operator==(const PropertySet& other) const { + if (props_.size() != other.props_.size()) return false; + for (std::size_t i = 0; i < props_.size(); ++i) { + const Property& a = *props_[i]; + const Property& b = *other.props_[i]; + if (typeid(a) != typeid(b)) return false; + if (!a.Equals(b)) return false; } return true; } @@ -25,8 +63,11 @@ namespace std { size_t hash::operator()(const stewkk::sql::PropertySet& ps) const noexcept { size_t h = 0; - if (ps.sort) - boost::hash_combine(h, hash{}(*ps.sort)); + for (const auto& p : ps.Items()) { + const stewkk::sql::Property& prop = *p; + boost::hash_combine(h, std::type_index(typeid(prop)).hash_code()); + boost::hash_combine(h, prop.Hash()); + } return h; } diff --git a/src/stewkk/sql/logic/optimizer/properties/sort_property.cpp b/src/stewkk/sql/logic/optimizer/properties/sort_property.cpp new file mode 100644 index 0000000..b0d671b --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/properties/sort_property.cpp @@ -0,0 +1,23 @@ +#include + +#include + +namespace stewkk::sql { + +std::unique_ptr SortProperty::Clone() const { + return std::make_unique(*this); +} + +bool SortProperty::SatisfiesTyped(const SortProperty& required) const { + return order.Satisfies(required.order); +} + +bool SortProperty::EqualsTyped(const SortProperty& other) const { + return order == other.order; +} + +std::size_t SortProperty::Hash() const { + return std::hash{}(order); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp b/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp new file mode 100644 index 0000000..0a183de --- /dev/null +++ b/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp @@ -0,0 +1,26 @@ +#include + +#include +#include + +namespace stewkk::sql { + +std::optional SortEnforcer::TryBuild( + utils::NotNull group, + const PropertySet& required, + SchemaCatalog& schema) const { + const auto* req = required.Get(); + if (!req) return std::nullopt; + if (auto sch = schema.GetSchema(group)) { + for (const auto& sk : req->order.keys) { + bool found = false; + for (const auto& a : *sch) { + if (a.table == sk.table && a.name == sk.column) { found = true; break; } + } + if (!found) return std::nullopt; + } + } + return PhysicalOperator{physical::Sort{group, req->order}}; +} + +} // namespace stewkk::sql From 8e827c3c5f6fcf334983ea762593aab4db6b2db6 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 24 May 2026 23:52:50 +0300 Subject: [PATCH 048/120] Add ORDER BY support to parser --- benchmarks/main.cpp | 4 +- .../stewkk/sql/logic/optimizer/optimizer.hpp | 8 +- include/stewkk/sql/logic/parser/parser.hpp | 9 +- .../sql/logic/executor/executor_test.cpp | 20 ++-- src/stewkk/sql/logic/optimizer/memo_test.cpp | 2 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 17 ++-- .../sql/logic/optimizer/optimizer_test.cpp | 20 +++- .../sql/logic/optimizer/reachability.cpp | 4 +- src/stewkk/sql/logic/parser/parser.cpp | 9 +- src/stewkk/sql/logic/parser/parser_test.cpp | 91 ++++++++++++++++--- src/stewkk/sql/logic/parser/visitor.cpp | 42 ++++++++- src/stewkk/sql/logic/parser/visitor.hpp | 8 ++ 12 files changed, 184 insertions(+), 50 deletions(-) diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 3b60b8d..923eccf 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -76,7 +76,7 @@ void BM_SQL(benchmark::State& state) { ctx, [&state]() -> boost::asio::awaitable { std::stringstream s{Query}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -129,7 +129,7 @@ void BM_SQL_Multithreaded(benchmark::State& state) { [&state]() -> boost::asio::awaitable { boost::asio::thread_pool pool{4}; std::stringstream s{Query}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), pool.executor()); diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index c91dc32..531d4f9 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -26,9 +26,10 @@ template class Optimizer { public: Optimizer(const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality = {}, SchemaCatalog schema = {}); + CardinalityEstimates cardinality = {}, SchemaCatalog schema = {}, + PropertySet required = PropertySet::Any()); - PhysicalPlanNode Optimize(PropertySet required = PropertySet::Any()); + PhysicalPlanNode Optimize(); // Runs exhaustive search, populating all physical_exprs_ in every reachable // group. @@ -38,7 +39,7 @@ class Optimizer { private: using Limit = std::optional; - void RunSearch(PropertySet required, Limit limit); + void RunSearch(Limit limit); bool IsExplored(utils::NotNull group) const; void SetExplored(utils::NotNull group); @@ -74,6 +75,7 @@ class Optimizer { utils::NotNull root_; CardinalityEstimates cardinality_; SchemaCatalog schema_; + PropertySet required_; std::unordered_map local_cost_; std::unordered_map winner_; std::unordered_set enforcers_added_; diff --git a/include/stewkk/sql/logic/parser/parser.hpp b/include/stewkk/sql/logic/parser/parser.hpp index cf99d18..0ccc371 100644 --- a/include/stewkk/sql/logic/parser/parser.hpp +++ b/include/stewkk/sql/logic/parser/parser.hpp @@ -1,13 +1,20 @@ #pragma once #include +#include #include #include +#include namespace stewkk::sql { -Result GetAST(std::istream& in); +struct ParsedQuery { + Operator op; + std::optional required_order; +}; + +Result GetAST(std::istream& in); std::string GetDotRepresentation(const Operator& op); diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index 2cc8314..0d44949 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -79,7 +79,7 @@ TEST(ExecutorTest, SimpleSelect) { ctx, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM users;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -105,7 +105,7 @@ TEST(ExecutorTest, SimpleSelectWithParallelism) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM users;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -131,7 +131,7 @@ TYPED_TEST_P(ExecutorTest, Projection) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT users.id FROM users;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -157,7 +157,7 @@ TYPED_TEST_P(ExecutorTest, Filter) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT users.id FROM users WHERE users.age < 10;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -183,7 +183,7 @@ TYPED_TEST_P(ExecutorTest, FilterMany) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT users.id FROM users WHERE users.age > 10;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -209,7 +209,7 @@ TYPED_TEST_P(ExecutorTest, CrossJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM users, books WHERE users.age < 10;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -239,7 +239,7 @@ TYPED_TEST_P(ExecutorTest, InnerJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM employees JOIN departments ON employees.department_id = departments.id;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -268,7 +268,7 @@ TYPED_TEST_P(ExecutorTest, LeftJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM employees LEFT OUTER JOIN departments ON employees.department_id = departments.id;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -297,7 +297,7 @@ TYPED_TEST_P(ExecutorTest, RightJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT * FROM employees RIGHT JOIN departments ON employees.department_id = departments.id;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -326,7 +326,7 @@ TYPED_TEST_P(ExecutorTest, ComplexJoin) { pool, []() -> boost::asio::awaitable> { std::stringstream s{"SELECT departments.id*2, employees.id+1 FROM employees RIGHT JOIN departments ON employees.department_id = departments.id AND departments.id > 3 AND departments.id*2*2/2 < 30;"}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value()); + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); diff --git a/src/stewkk/sql/logic/optimizer/memo_test.cpp b/src/stewkk/sql/logic/optimizer/memo_test.cpp index e5348c4..0dc6af7 100644 --- a/src/stewkk/sql/logic/optimizer/memo_test.cpp +++ b/src/stewkk/sql/logic/optimizer/memo_test.cpp @@ -31,7 +31,7 @@ TEST(MemoTest, AddSameGroupSecondReturnsIt) { TEST(MemoTest, PopulateWithWholeQuery) { std::stringstream s{"SELECT * FROM users, orders;"}; - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; Memo memo; auto root = memo.Populate(op); diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index dc1f16b..a4f739d 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -160,9 +160,10 @@ std::vector> GetChildren(utils::NotNull ex template Optimizer::Optimizer( const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality, SchemaCatalog schema) + CardinalityEstimates cardinality, SchemaCatalog schema, PropertySet required) : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), - cardinality_(std::move(cardinality)), schema_(std::move(schema)) { + cardinality_(std::move(cardinality)), schema_(std::move(schema)), + required_(std::move(required)) { } template @@ -427,9 +428,9 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G } template -void Optimizer::RunSearch(PropertySet required, Limit limit) { +void Optimizer::RunSearch(Limit limit) { Log("Starting optimization"); - tasks_.emplace([this, required, limit]() { OptimizeGroup(root_->group, required, limit); }); + tasks_.emplace([this, limit]() { OptimizeGroup(root_->group, required_, limit); }); while (!tasks_.empty()) { auto next_task = std::move(tasks_.top()); tasks_.pop(); @@ -438,15 +439,15 @@ void Optimizer::RunSearch(PropertySet required } template -PhysicalPlanNode Optimizer::Optimize(PropertySet required) { - RunSearch(required, std::numeric_limits::max()); +PhysicalPlanNode Optimizer::Optimize() { + RunSearch(std::numeric_limits::max()); Log("Optimization complete, building plan"); - return BuildOptimalPlan(root_->group.get(), required); + return BuildOptimalPlan(root_->group.get(), required_); } template void Optimizer::OptimizeExhaustive() { - RunSearch(PropertySet::Any(), std::nullopt); + RunSearch(std::nullopt); } template diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index fba1769..02517c9 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -5,6 +5,8 @@ #include #include #include +#include +#include #include using ::testing::Eq; @@ -20,17 +22,17 @@ namespace stewkk::sql { TEST(OptimizerTest, Simple) { std::stringstream s{"SELECT * FROM users;"}; - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; Optimizer optimizer(op, MakeMainRules()); auto got = optimizer.Optimize(); - + ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n n0 [label=\"SeqScan\\\\nusers\"]\n}\n")); } TEST(OptimizerTest, JoinCommutativity) { std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ {"users", 10000}, {"orders", 100}, @@ -43,7 +45,17 @@ TEST(OptimizerTest, JoinCommutativity) { } TEST(OptimizerTest, OrderBy) { - // TODO: SELECT a FROM T ORDER BY b + std::stringstream s{"SELECT * FROM users ORDER BY users.id;"}; + auto parsed = GetAST(s).value(); + SchemaCatalog schema({{"users", {Attribute{"users", "id"}, Attribute{"users", "age"}}}}); + PropertySet required = parsed.required_order + ? PropertySet{SortProperty{*parsed.required_order}} + : PropertySet::Any(); + Optimizer optimizer(parsed.op, MakeMainRules(), {}, std::move(schema), std::move(required)); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), Eq("(Sort (keys users.id Asc) (SeqScan users))")); } TEST(ReachabilityTest, SeqScanReachable) { diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 929d558..12ce20c 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -107,8 +107,8 @@ MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& tar MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, CardinalityEstimates cardinality) { - auto ast = GetAST(sql).value(); - Optimizer optimizer(ast, MakeMainRules(), std::move(cardinality)); + auto parsed = GetAST(sql).value(); + Optimizer optimizer(parsed.op, MakeMainRules(), std::move(cardinality)); optimizer.OptimizeExhaustive(); return IsReachable(optimizer.GetRootGroup(), target); } diff --git a/src/stewkk/sql/logic/parser/parser.cpp b/src/stewkk/sql/logic/parser/parser.cpp index 0615f49..e84a997 100644 --- a/src/stewkk/sql/logic/parser/parser.cpp +++ b/src/stewkk/sql/logic/parser/parser.cpp @@ -11,7 +11,7 @@ namespace stewkk::sql { -Result GetAST(std::istream& in) { +Result GetAST(std::istream& in) { antlr4::ANTLRInputStream antlr_input(in); codegen::PostgreSQLLexer lexer(&antlr_input); @@ -44,11 +44,12 @@ Result GetAST(std::istream& in) { return std::unexpected(ex); } - if (Operator* op = std::any_cast(&res)) { - return std::move(*op); + Operator op = Table{kEmptyTableName}; + if (Operator* p = std::any_cast(&res)) { + op = std::move(*p); } - return Table{kEmptyTableName}; + return ParsedQuery{std::move(op), visitor.GetRequiredOrder()}; } std::string GetDotRepresentation(const Expression& expr) { diff --git a/src/stewkk/sql/logic/parser/parser_test.cpp b/src/stewkk/sql/logic/parser/parser_test.cpp index bdb12f9..cc6afd3 100644 --- a/src/stewkk/sql/logic/parser/parser_test.cpp +++ b/src/stewkk/sql/logic/parser/parser_test.cpp @@ -2,12 +2,16 @@ #include #include +#include #include #include +#include using ::testing::Eq; using ::testing::IsTrue; +using ::testing::IsFalse; +using ::testing::Optional; using ::testing::VariantWith; namespace stewkk::sql { @@ -29,7 +33,7 @@ std::string ReadFromFile(std::filesystem::path path) { TEST(ParserTest, SelectAllFromSingleTable) { std::stringstream s{"SELECT * FROM users;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith(Table{"users"})); } @@ -37,7 +41,7 @@ TEST(ParserTest, SelectAllFromSingleTable) { TEST(ParserTest, SelectSingleColumnFromSingleTable) { std::stringstream s{"SELECT users.id FROM users;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith(Projection{std::vector{{Attribute{"users", "id"}}}, std::make_shared(Table{"users"})})); @@ -46,7 +50,7 @@ TEST(ParserTest, SelectSingleColumnFromSingleTable) { TEST(ParserTest, SelectMultipleColumnsFromSingleTable) { std::stringstream s{"SELECT users.id, users.email, users.phone FROM users;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith(Projection{ @@ -57,7 +61,7 @@ TEST(ParserTest, SelectMultipleColumnsFromSingleTable) { TEST(ParserTest, SelectWithWhereClause) { std::stringstream s{"SELECT users.id FROM users WHERE users.age > 18;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith(Projection{ std::vector{Attribute{"users", "id"}}, @@ -70,7 +74,7 @@ TEST(ParserTest, SelectWithWhereClause) { TEST(ParserTest, GetDotRepresentation) { std::stringstream s{"SELECT users.id FROM users WHERE users.age > 18;"}; - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; auto expected = ReadFromFile(kProjectDir + "/test/static/parser/expected.dot"); auto got = GetDotRepresentation(op); @@ -81,7 +85,7 @@ TEST(ParserTest, GetDotRepresentation) { TEST(ParserTest, SelectWithBooleanExpression) { std::stringstream s{"SELECT TRUE AND NULL OR FALSE AND NOT NULL;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith(Projection{ {BinaryExpression{ @@ -104,7 +108,7 @@ TEST(ParserTest, SelectWithBooleanExpression) { TEST(ParserTest, SelectWithArithmeticalOperations) { std::stringstream s{"SELECT 1+2-3;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT( got, VariantWith(Projection{{BinaryExpression{ @@ -122,7 +126,7 @@ TEST(ParserTest, SelectWithArithmeticalOperations) { TEST(ParserTest, GetDotRepresentationOfArithmeticalExpression) { std::stringstream s{"SELECT 1+2-3+4+5-6;"}; - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; auto expected = ReadFromFile(kProjectDir + "/test/static/parser/expected_arithmetical.dot"); auto got = GetDotRepresentation(op); @@ -151,7 +155,7 @@ TEST(ParserTest, NotSupportedError) { TEST(ParserTest, EmptyQuery) { std::stringstream s{""}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith
(Table{"_EMPTY_TABLE_"})); } @@ -159,7 +163,7 @@ TEST(ParserTest, EmptyQuery) { TEST(ParserTest, SelectWithParens) { std::stringstream s{"((SELECT * FROM users));"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith
(Table{"users"})); } @@ -167,7 +171,7 @@ TEST(ParserTest, SelectWithParens) { TEST(ParserTest, EmptySelect) { std::stringstream s{"SELECT;"}; - Operator got = GetAST(s).value(); + Operator got = GetAST(s).value().op; ASSERT_THAT(got, VariantWith
(Table{"_EMPTY_TABLE_"})); } @@ -175,7 +179,7 @@ TEST(ParserTest, EmptySelect) { TEST(ParserTest, SelectWithJoinDot) { std::stringstream s{"SELECT * FROM users, books;"}; auto expected = ReadFromFile(kProjectDir + "/test/static/parser/expected_join.dot"); - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; auto got = GetDotRepresentation(op); @@ -185,15 +189,74 @@ TEST(ParserTest, SelectWithJoinDot) { TEST(ParserTest, SelectWithOuterJoinDot) { std::stringstream s{"SELECT * FROM users LEFT OUTER JOIN books ON users.book = books.id;"}; auto expected = ReadFromFile(kProjectDir + "/test/static/parser/expected_outer_join.dot"); - Operator op = GetAST(s).value(); + Operator op = GetAST(s).value().op; auto got = GetDotRepresentation(op); ASSERT_THAT(got, Eq(expected)); } +TEST(ParserTest, OrderByAscDefault) { + std::stringstream s{"SELECT * FROM users ORDER BY users.id;"}; + + auto parsed = GetAST(s).value(); + + ASSERT_THAT(parsed.op, VariantWith
(Table{"users"})); + ASSERT_THAT(parsed.required_order, Optional(SortOrder{{SortKey{"users", "id", Direction::kAsc}}})); +} + +TEST(ParserTest, OrderByDesc) { + std::stringstream s{"SELECT * FROM users ORDER BY users.id DESC;"}; + + auto parsed = GetAST(s).value(); + + ASSERT_THAT(parsed.required_order, Optional(SortOrder{{SortKey{"users", "id", Direction::kDesc}}})); +} + +TEST(ParserTest, OrderByMultiKey) { + std::stringstream s{"SELECT * FROM users ORDER BY users.id ASC, users.age DESC;"}; + + auto parsed = GetAST(s).value(); + + ASSERT_THAT(parsed.required_order, Optional(SortOrder{{ + SortKey{"users", "id", Direction::kAsc}, + SortKey{"users", "age", Direction::kDesc}, + }})); +} + +TEST(ParserTest, OrderByNoOrderByClause) { + std::stringstream s{"SELECT * FROM users;"}; + + auto parsed = GetAST(s).value(); + + ASSERT_THAT(parsed.required_order.has_value(), IsFalse()); +} + +TEST(ParserTest, OrderByIntOrdinalRejected) { + std::stringstream s{"SELECT * FROM users ORDER BY 1;"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + +TEST(ParserTest, OrderByUnqualifiedColumnRejected) { + std::stringstream s{"SELECT * FROM users ORDER BY id;"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + +TEST(ParserTest, OrderByNullsFirstRejected) { + std::stringstream s{"SELECT * FROM users ORDER BY users.id NULLS FIRST;"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + /* -** ORDER BY ** aggregations: SELECT kind, sum(len) AS total FROM films GROUP BY kind; */ diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index 49b348f..78a787c 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -4,6 +4,7 @@ #include #include +#include namespace stewkk::sql { @@ -368,11 +369,50 @@ std::any Visitor::visitSelect_no_parens(codegen::PostgreSQLParser::Select_no_par auto select_clause = std::any_cast(visit(ctx->select_clause())); - // TODO: remaining clauses + if (ctx->sort_clause_()) { + auto* sortby_list = ctx->sort_clause_()->sort_clause()->sortby_list(); + std::vector keys; + for (auto* sortby : sortby_list->sortby()) { + keys.push_back(std::any_cast(visit(sortby))); + } + required_order_ = SortOrder{std::move(keys)}; + } return select_clause; } +std::any Visitor::visitSortby(codegen::PostgreSQLParser::SortbyContext *ctx) { + if (ctx->USING()) { + throw Error{ErrorType::kQueryNotSupported, "USING in ORDER BY is not supported"}; + } + if (ctx->nulls_order_()) { + throw Error{ErrorType::kQueryNotSupported, "NULLS FIRST/LAST in ORDER BY is not supported"}; + } + + auto expr = std::any_cast(visit(ctx->a_expr())); + auto* attr = std::get_if(&expr); + if (!attr) { + throw Error{ErrorType::kQueryNotSupported, "ORDER BY expression must be a qualified column reference"}; + } + if (attr->table.empty()) { + throw Error{ErrorType::kQueryNotSupported, "ORDER BY requires a qualified column reference (table.column)"}; + } + + Direction dir = Direction::kAsc; + if (ctx->asc_desc_()) { + dir = std::any_cast(visit(ctx->asc_desc_())); + } + + return SortKey{attr->table, attr->name, dir}; +} + +std::any Visitor::visitAsc_desc_(codegen::PostgreSQLParser::Asc_desc_Context *ctx) { + if (ctx->DESC()) { + return Direction::kDesc; + } + return Direction::kAsc; +} + std::any Visitor::visitA_expr_qual(codegen::PostgreSQLParser::A_expr_qualContext *ctx) { if (ctx->qual_op()) { throw Error{ErrorType::kQueryNotSupported, "qualified operators are not supported"}; diff --git a/src/stewkk/sql/logic/parser/visitor.hpp b/src/stewkk/sql/logic/parser/visitor.hpp index 85b5a9b..d7ab26e 100644 --- a/src/stewkk/sql/logic/parser/visitor.hpp +++ b/src/stewkk/sql/logic/parser/visitor.hpp @@ -1,6 +1,9 @@ #pragma once +#include + #include +#include namespace stewkk::sql { @@ -8,6 +11,8 @@ class Visitor : public codegen::PostgreSQLParserBaseVisitor { public: explicit Visitor(codegen::PostgreSQLParser* parser); virtual std::any visit(antlr4::tree::ParseTree *tree) override; + + std::optional GetRequiredOrder() const { return required_order_; } virtual std::any visitRoot(codegen::PostgreSQLParser::RootContext* ctx) override; virtual std::any visitStmt(codegen::PostgreSQLParser::StmtContext *ctx) override; virtual std::any visitStmtmulti(codegen::PostgreSQLParser::StmtmultiContext* ctx) override; @@ -62,9 +67,12 @@ class Visitor : public codegen::PostgreSQLParserBaseVisitor { virtual std::any visitQualified_name(codegen::PostgreSQLParser::Qualified_nameContext *ctx) override; virtual std::any visitJoin_type(codegen::PostgreSQLParser::Join_typeContext *ctx) override; virtual std::any visitJoin_qual(codegen::PostgreSQLParser::Join_qualContext *ctx) override; + virtual std::any visitSortby(codegen::PostgreSQLParser::SortbyContext *ctx) override; + virtual std::any visitAsc_desc_(codegen::PostgreSQLParser::Asc_desc_Context *ctx) override; private: codegen::PostgreSQLParser* parser_; + std::optional required_order_; }; From 0c158bdfaaf8a4ee8c955801d8bc51bb9001b48a Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 25 May 2026 03:32:55 +0300 Subject: [PATCH 049/120] wip: needs review --- benchmarks/generate-multiway-data.sh | 47 + benchmarks/main.cpp | 144 +- include/stewkk/sql/logic/optimizer/memo.hpp | 2 + .../sql/logic/optimizer/cardinality.cpp | 30 +- src/stewkk/sql/logic/optimizer/memo.cpp | 11 + .../sql/logic/optimizer/optimizer_test.cpp | 44 + src/stewkk/sql/logic/optimizer/rule.cpp | 8 +- src/stewkk/sql/logic/optimizer/rule_test.cpp | 3 +- .../join_associativity.cpp | 112 +- test/static/executor/test_data/customers.csv | 501 ++ test/static/executor/test_data/orders.csv | 5001 +++++++++++++++++ test/static/executor/test_data/regions.csv | 11 + 12 files changed, 5846 insertions(+), 68 deletions(-) create mode 100755 benchmarks/generate-multiway-data.sh create mode 100644 test/static/executor/test_data/customers.csv create mode 100644 test/static/executor/test_data/orders.csv create mode 100644 test/static/executor/test_data/regions.csv diff --git a/benchmarks/generate-multiway-data.sh b/benchmarks/generate-multiway-data.sh new file mode 100755 index 0000000..0c58b92 --- /dev/null +++ b/benchmarks/generate-multiway-data.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# Generates three CSV tables for multi-way join benchmarking with skewed +# cardinalities: regions (10) << customers (500) << orders (5000). +# +# Schema (all int): +# regions(id) +# customers(id, region_id) -- region_id is FK into regions +# orders(id, customer_id) -- customer_id is FK into customers +# +# Idempotent: overwrites existing files at OUT_DIR. + +set -euo pipefail + +OUT_DIR="${1:-$(dirname "$0")/../test/static/executor/test_data}" + +n_regions=10 +n_customers=500 +n_orders=5000 + +regions="$OUT_DIR/regions.csv" +customers="$OUT_DIR/customers.csv" +orders="$OUT_DIR/orders.csv" + +{ + echo 'id:int' + seq 1 "$n_regions" +} > "$regions" + +{ + echo 'id:int,region_id:int' + awk -v n="$n_customers" -v r="$n_regions" 'BEGIN { + srand(1); + for (i = 1; i <= n; ++i) printf "%d,%d\n", i, 1 + int(rand() * r); + }' +} > "$customers" + +{ + echo 'id:int,customer_id:int' + awk -v n="$n_orders" -v c="$n_customers" 'BEGIN { + srand(2); + for (i = 1; i <= n; ++i) printf "%d,%d\n", i, 1 + int(rand() * c); + }' +} > "$orders" + +echo "wrote $regions ($(wc -l < "$regions") lines)" +echo "wrote $customers ($(wc -l < "$customers") lines)" +echo "wrote $orders ($(wc -l < "$orders") lines)" diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 923eccf..8a5ed45 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -12,6 +12,9 @@ #include #include #include +#include +#include +#include #include #include @@ -19,6 +22,7 @@ namespace stewkk::sql { namespace { +// FIXME: ORDER BY support missing PhysicalPlanNode ToPhysicalPlan(const Operator& op) { return std::visit(utils::Overloaded{ [](const Table& t) -> PhysicalPlanNode { @@ -53,6 +57,37 @@ PhysicalPlanNode ToPhysicalPlan(const Operator& op) { }, op); } +CardinalityEstimates MakeBenchCardinality() { + return CardinalityEstimates({ + {"users", 17}, + {"employees", 11}, + {"employees_200", 200}, + {"departments", 5}, + {"departments_500", 1000}, + {"departments_1000", 1000}, + {"departments_2000", 2000}, + {"departments_4000", 4000}, + {"departments_8000", 8000}, + {"departments_16000", 16000}, + {"books", 3}, + {"regions", 10}, + {"customers", 500}, + {"orders", 5000}, + }); +} + +enum class PlannerMode { kNaive, kOptimized }; + +template +PhysicalPlanNode MakePlan(const Operator& op) { + if constexpr (Mode == PlannerMode::kNaive) { + return ToPhysicalPlan(op); + } else { + Optimizer optimizer(op, MakeMainRules(), MakeBenchCardinality()); + return optimizer.Optimize(); + } +} + } // namespace const static std::string kProjectDir = std::getenv("PWD"); @@ -67,7 +102,20 @@ static constexpr char kComplex4000[]{"SELECT departments_4000.id*2, employees_20 static constexpr char kComplex8000[]{"SELECT departments_8000.id*2, employees_200.id+1 FROM employees_200 RIGHT JOIN departments_8000 ON employees_200.department_id = departments_8000.id AND departments_8000.id > 3 AND departments_8000.id*2*2/2/2*2 < 30;"}; static constexpr char kComplex16000[]{"SELECT departments_16000.id*2, employees_200.id+1 FROM employees_200 RIGHT JOIN departments_16000 ON employees_200.department_id = departments_16000.id AND departments_16000.id > 3 AND departments_16000.id*2*2/2/2*2 < 30;"}; -template +// 3-way joins on skewed tables (regions=10, customers=500, orders=5000). +// Naive textual order (orders ⋈ customers) ⋈ regions builds a ~2.5M-tuple +// intermediate. JoinAssociativity + JoinCommutativity let the optimizer pick a +// shape with much smaller intermediates. +static constexpr char kMultiwayOCR[]{ + "SELECT orders.id, customers.id, regions.id FROM orders " + "JOIN customers ON orders.customer_id = customers.id " + "JOIN regions ON customers.region_id = regions.id;"}; +static constexpr char kMultiwayROC[]{ + "SELECT orders.id, customers.id, regions.id FROM regions " + "JOIN customers ON customers.region_id = regions.id " + "JOIN orders ON orders.customer_id = customers.id;"}; + +template void BM_SQL(benchmark::State& state) { std::ofstream nullstream("/dev/null"); std::clog.rdbuf(nullstream.rdbuf()); @@ -76,7 +124,7 @@ void BM_SQL(benchmark::State& state) { ctx, [&state]() -> boost::asio::awaitable { std::stringstream s{Query}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + PhysicalPlanNode op = MakePlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); @@ -92,34 +140,30 @@ void BM_SQL(benchmark::State& state) { ctx.run(); } -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -BENCHMARK(BM_SQL)->UseRealTime(); -BENCHMARK(BM_SQL)->UseRealTime(); - -template +#define REGISTER_BM_SQL(Query) \ + BENCHMARK(BM_SQL)->UseRealTime(); \ + BENCHMARK(BM_SQL) \ + ->UseRealTime(); \ + BENCHMARK(BM_SQL) \ + ->UseRealTime(); \ + BENCHMARK(BM_SQL) \ + ->UseRealTime(); + +REGISTER_BM_SQL(kSimpleSelectSmall) +REGISTER_BM_SQL(kJoinSmall) +REGISTER_BM_SQL(kComplex5) +REGISTER_BM_SQL(kComplex500) +REGISTER_BM_SQL(kComplex1000) +REGISTER_BM_SQL(kComplex2000) +REGISTER_BM_SQL(kComplex4000) +REGISTER_BM_SQL(kComplex8000) +REGISTER_BM_SQL(kComplex16000) +// FIXME: Optimizer search does not terminate within minutes on 3-way joins. +// Re-enable once that perf bug is fixed; see kMultiwayOCR/kMultiwayROC. +// REGISTER_BM_SQL(kMultiwayOCR) +// REGISTER_BM_SQL(kMultiwayROC) + +template void BM_SQL_Multithreaded(benchmark::State& state) { std::ofstream nullstream("/dev/null"); std::clog.rdbuf(nullstream.rdbuf()); @@ -129,7 +173,7 @@ void BM_SQL_Multithreaded(benchmark::State& state) { [&state]() -> boost::asio::awaitable { boost::asio::thread_pool pool{4}; std::stringstream s{Query}; - PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + PhysicalPlanNode op = MakePlan(GetAST(s).value().op); CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; Executor executor(std::move(seq_scan), pool.executor()); @@ -148,26 +192,24 @@ void BM_SQL_Multithreaded(benchmark::State& state) { ctx.run(); } -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); - -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); - -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); - -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); - -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); - -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); - -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); -BENCHMARK(BM_SQL_Multithreaded)->UseRealTime(); +#define REGISTER_BM_SQL_MT(Query) \ + BENCHMARK(BM_SQL_Multithreaded) \ + ->UseRealTime(); \ + BENCHMARK(BM_SQL_Multithreaded) \ + ->UseRealTime(); \ + BENCHMARK(BM_SQL_Multithreaded) \ + ->UseRealTime(); \ + BENCHMARK( \ + BM_SQL_Multithreaded) \ + ->UseRealTime(); + +REGISTER_BM_SQL_MT(kComplex5) +REGISTER_BM_SQL_MT(kComplex500) +REGISTER_BM_SQL_MT(kComplex1000) +REGISTER_BM_SQL_MT(kComplex2000) +REGISTER_BM_SQL_MT(kComplex4000) +REGISTER_BM_SQL_MT(kComplex8000) +REGISTER_BM_SQL_MT(kComplex16000) } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index 9518ef3..b62a57d 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -13,6 +13,8 @@ class Memo { size_t GroupCount() const; utils::NotNull AddGroup(LogicalOperator root_operator); LogicalExpr* GetGroup(LogicalOperator root_operator) const; + utils::NotNull AddLogicalExprToGroup(utils::NotNull group, + LogicalOperator root_operator); utils::NotNull Populate(const Operator& op); private: diff --git a/src/stewkk/sql/logic/optimizer/cardinality.cpp b/src/stewkk/sql/logic/optimizer/cardinality.cpp index 1252680..28c5a83 100644 --- a/src/stewkk/sql/logic/optimizer/cardinality.cpp +++ b/src/stewkk/sql/logic/optimizer/cardinality.cpp @@ -1,9 +1,33 @@ #include +#include + #include namespace stewkk::sql { +namespace { + +// System R: each `attr = attr` conjunct contributes 1/max(lhs_card, rhs_card); +// AND multiplies; anything else (including TRUE) contributes 1.0. +double JoinSelectivity(const Expression& qual, int64_t lhs_card, int64_t rhs_card) { + const auto* b = std::get_if(&qual); + if (!b) return 1.0; + if (b->binop == BinaryOp::kAnd) { + return JoinSelectivity(*b->lhs, lhs_card, rhs_card) + * JoinSelectivity(*b->rhs, lhs_card, rhs_card); + } + if (b->binop == BinaryOp::kEq + && std::holds_alternative(*b->lhs) + && std::holds_alternative(*b->rhs)) { + auto m = std::max(1, std::max(lhs_card, rhs_card)); + return 1.0 / static_cast(m); + } + return 1.0; +} + +} // namespace + CardinalityEstimates::CardinalityEstimates(std::unordered_map table_sizes) : table_sizes_(std::move(table_sizes)) {} @@ -34,7 +58,11 @@ int64_t CardinalityEstimates::GetCardinality(const LogicalOperator& op) { return GetCardinality(j.lhs) * GetCardinality(j.rhs); }, [this](const logical::Join& j) -> int64_t { - return GetCardinality(j.lhs) * GetCardinality(j.rhs); + auto lhs_c = GetCardinality(j.lhs); + auto rhs_c = GetCardinality(j.rhs); + auto out = static_cast(lhs_c) * static_cast(rhs_c) + * JoinSelectivity(j.qual, lhs_c, rhs_c); + return std::max(1, static_cast(out)); }, }, op); } diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 4627e04..51653c7 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -60,6 +60,17 @@ utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { return expr; } +utils::NotNull Memo::AddLogicalExprToGroup(utils::NotNull group, + LogicalOperator root_operator) { + auto key = ToKey(root_operator); + if (auto g = GetGroup(key); g) { + return g; + } + auto expr = group->AddLogicalExpr(std::move(root_operator)); + expr_index_[key] = expr; + return expr; +} + utils::NotNull Memo::Populate(const Operator& op) { return std::visit(utils::Overloaded{ [this](const Table& t) { diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 02517c9..6381a6c 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -44,6 +44,50 @@ TEST(OptimizerTest, JoinCommutativity) { ASSERT_THAT(Serialize(got), Eq("(NestedLoopJoin Inner (= (attr users id) (attr orders user_id)) (SeqScan orders) (SeqScan users))")); } +TEST(OptimizerTest, MultiwayJoinOCR) { + std::stringstream s{ + "SELECT orders.id, customers.id, regions.id FROM orders " + "JOIN customers ON orders.customer_id = customers.id " + "JOIN regions ON customers.region_id = regions.id;"}; + Operator op = GetAST(s).value().op; + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"regions", 10}, + {"customers", 500}, + {"orders", 5000}, + })); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + Eq("(PhysicalProjection (exprs (attr orders id) (attr customers id) (attr regions id))" + " (NestedLoopJoin Inner (= (attr customers region_id) (attr regions id))" + " (NestedLoopJoin Inner (= (attr orders customer_id) (attr customers id))" + " (SeqScan customers) (SeqScan orders)) (SeqScan regions)))")); +} + +TEST(OptimizerTest, MultiwayJoinROC) { + std::stringstream s{ + "SELECT orders.id, customers.id, regions.id FROM regions " + "JOIN customers ON customers.region_id = regions.id " + "JOIN orders ON orders.customer_id = customers.id;"}; + Operator op = GetAST(s).value().op; + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"regions", 10}, + {"customers", 500}, + {"orders", 5000}, + })); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + Eq("(PhysicalProjection (exprs (attr orders id) (attr customers id) (attr regions id))" + " (NestedLoopJoin Inner (= (attr orders customer_id) (attr customers id))" + " (NestedLoopJoin Inner (= (attr customers region_id) (attr regions id))" + " (SeqScan customers) (SeqScan regions)) (SeqScan orders)))")); +} + TEST(OptimizerTest, OrderBy) { std::stringstream s{"SELECT * FROM users ORDER BY users.id;"}; auto parsed = GetAST(s).value(); diff --git a/src/stewkk/sql/logic/optimizer/rule.cpp b/src/stewkk/sql/logic/optimizer/rule.cpp index 9961b89..81c387a 100644 --- a/src/stewkk/sql/logic/optimizer/rule.cpp +++ b/src/stewkk/sql/logic/optimizer/rule.cpp @@ -5,13 +5,7 @@ namespace stewkk::sql { utils::NotNull TransformationRule::Apply(utils::NotNull expr, Memo& memo) { - // FIXME: maybe it should be Memo's responsibility to check for duplicates? - auto op = ApplyImpl(expr, memo); - auto existing = memo.GetGroup(op); - if (existing) { - return existing; - } - return expr->group->AddLogicalExpr(std::move(op)); + return memo.AddLogicalExprToGroup(expr->group, ApplyImpl(expr, memo)); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index 572e4bb..da720d4 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -77,7 +77,8 @@ TEST_F(JoinAssociativityTest, ReturnsCorrectExpression) { const auto& inner = std::get(outer.rhs->GetLogicalExprs()[0]->root_operator); EXPECT_EQ(inner.lhs.get(), b); EXPECT_EQ(inner.rhs.get(), c); - EXPECT_EQ(inner.qual, Expression{Literal::kTrue}); + EXPECT_EQ(inner.qual, Expression{Literal::kFalse}); + EXPECT_EQ(outer.qual, Expression{Literal::kTrue}); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index 915ad0f..d021c08 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -1,9 +1,87 @@ #include +#include #include +#include +#include + +#include namespace stewkk::sql { +namespace { + +bool IsTrue(const Expression& e) { + return std::holds_alternative(e) && std::get(e) == Literal::kTrue; +} + +void CollectConjuncts(const Expression& e, std::vector& out) { + if (IsTrue(e)) return; + if (const auto* b = std::get_if(&e); b && b->binop == BinaryOp::kAnd) { + CollectConjuncts(*b->lhs, out); + CollectConjuncts(*b->rhs, out); + return; + } + out.push_back(e); +} + +Expression AndConjuncts(const std::vector& conjs) { + if (conjs.empty()) return Literal::kTrue; + Expression acc = conjs[0]; + for (size_t i = 1; i < conjs.size(); i++) { + acc = BinaryExpression{ + std::make_shared(std::move(acc)), + BinaryOp::kAnd, + std::make_shared(conjs[i]), + }; + } + return acc; +} + +void CollectAttrTables(const Expression& e, std::unordered_set& out) { + std::visit(utils::Overloaded{ + [&](const Attribute& a) { out.insert(a.table); }, + [&](const BinaryExpression& b) { + CollectAttrTables(*b.lhs, out); + CollectAttrTables(*b.rhs, out); + }, + [&](const UnaryExpression& u) { CollectAttrTables(*u.child, out); }, + [&](const IntConst&) {}, + [&](const Literal&) {}, + }, e); +} + +// Equivalent logical exprs in a memo group all expose the same output tables, +// so one expression suffices. Recurses across child groups via their fronts. +void CollectGroupTables(utils::NotNull g, std::unordered_set& out, + std::unordered_set& seen) { + if (!seen.insert(g.get()).second) return; + auto exprs = g->GetLogicalExprs(); + if (exprs.empty()) return; + std::visit(utils::Overloaded{ + [&](const logical::Table& t) { out.insert(t.name); }, + [&](const logical::Filter& f) { CollectGroupTables(f.source, out, seen); }, + [&](const logical::Projection& p) { CollectGroupTables(p.source, out, seen); }, + [&](const logical::CrossJoin& j) { + CollectGroupTables(j.lhs, out, seen); + CollectGroupTables(j.rhs, out, seen); + }, + [&](const logical::Join& j) { + CollectGroupTables(j.lhs, out, seen); + CollectGroupTables(j.rhs, out, seen); + }, + }, (*exprs.begin())->root_operator); +} + +std::unordered_set GroupTables(utils::NotNull g) { + std::unordered_set out; + std::unordered_set seen; + CollectGroupTables(g, out, seen); + return out; +} + +} // namespace + bool JoinAssociativity::IsApplicable(utils::NotNull expr) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& outer = std::get(expr->root_operator); @@ -13,20 +91,38 @@ bool JoinAssociativity::IsApplicable(utils::NotNull expr) { return false; } -// (A ⋈₁ B) ⋈₂ C → A ⋈₁∧₂ (B ⋈₂ C) +// (A ⋈_p1 B) ⋈_p2 C → A ⋈_pa (B ⋈_pbc C) +// where pbc collects every conjunct of (p1 ∧ p2) whose attributes lie inside +// B ∪ C, and pa keeps the rest. Avoids the degenerate ⋈_TRUE inner that drops +// otherwise-pushable predicates onto the outer join. LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, Memo& memo) { const auto& outer = std::get(expr->root_operator); for (auto inner_expr : outer.lhs->GetLogicalExprs()) { if (!std::holds_alternative(inner_expr->root_operator)) continue; const auto& inner = std::get(inner_expr->root_operator); - auto combined_qual = Expression{BinaryExpression{ - std::make_shared(inner.qual), - BinaryOp::kAnd, - std::make_shared(outer.qual), - }}; - auto new_rhs = memo.AddGroup(logical::Join{inner.rhs, outer.rhs, outer.type, Literal::kTrue})->group; + + auto bc_tables = GroupTables(inner.rhs); + auto c_tables = GroupTables(outer.rhs); + bc_tables.insert(c_tables.begin(), c_tables.end()); + + std::vector conjs; + CollectConjuncts(inner.qual, conjs); + CollectConjuncts(outer.qual, conjs); + + std::vector inner_quals; + std::vector outer_quals; + for (auto& q : conjs) { + std::unordered_set q_tables; + CollectAttrTables(q, q_tables); + bool fits_inner = std::all_of(q_tables.begin(), q_tables.end(), + [&](const auto& t) { return bc_tables.contains(t); }); + (fits_inner ? inner_quals : outer_quals).push_back(std::move(q)); + } + + auto new_rhs = memo.AddGroup(logical::Join{ + inner.rhs, outer.rhs, outer.type, AndConjuncts(inner_quals)})->group; // FIXME: should return more than one operators!!! - return logical::Join{inner.lhs, new_rhs, inner.type, combined_qual}; + return logical::Join{inner.lhs, new_rhs, inner.type, AndConjuncts(outer_quals)}; } throw std::runtime_error{"cant perform JoinAssociativity"}; } diff --git a/test/static/executor/test_data/customers.csv b/test/static/executor/test_data/customers.csv new file mode 100644 index 0000000..4d48d7c --- /dev/null +++ b/test/static/executor/test_data/customers.csv @@ -0,0 +1,501 @@ +id:int,region_id:int +1,10 +2,6 +3,4 +4,6 +5,8 +6,8 +7,5 +8,4 +9,8 +10,2 +11,8 +12,9 +13,8 +14,5 +15,5 +16,10 +17,9 +18,8 +19,2 +20,2 +21,10 +22,9 +23,5 +24,8 +25,4 +26,7 +27,7 +28,4 +29,6 +30,10 +31,2 +32,8 +33,2 +34,6 +35,10 +36,9 +37,5 +38,10 +39,8 +40,2 +41,6 +42,10 +43,3 +44,1 +45,9 +46,8 +47,8 +48,2 +49,8 +50,5 +51,5 +52,8 +53,4 +54,1 +55,9 +56,10 +57,7 +58,2 +59,5 +60,10 +61,10 +62,5 +63,5 +64,7 +65,2 +66,3 +67,3 +68,6 +69,6 +70,3 +71,6 +72,6 +73,7 +74,9 +75,1 +76,1 +77,1 +78,5 +79,4 +80,2 +81,5 +82,4 +83,6 +84,1 +85,7 +86,4 +87,8 +88,5 +89,2 +90,10 +91,3 +92,2 +93,8 +94,8 +95,1 +96,10 +97,9 +98,5 +99,3 +100,7 +101,5 +102,10 +103,1 +104,7 +105,1 +106,3 +107,3 +108,5 +109,1 +110,7 +111,9 +112,8 +113,10 +114,5 +115,3 +116,1 +117,5 +118,8 +119,2 +120,1 +121,2 +122,6 +123,2 +124,8 +125,10 +126,8 +127,4 +128,5 +129,3 +130,5 +131,1 +132,9 +133,1 +134,9 +135,3 +136,9 +137,3 +138,3 +139,4 +140,7 +141,6 +142,8 +143,10 +144,8 +145,10 +146,6 +147,10 +148,7 +149,9 +150,2 +151,9 +152,8 +153,10 +154,9 +155,2 +156,6 +157,10 +158,8 +159,3 +160,4 +161,9 +162,5 +163,10 +164,5 +165,5 +166,4 +167,2 +168,9 +169,4 +170,1 +171,9 +172,8 +173,2 +174,8 +175,9 +176,2 +177,8 +178,10 +179,8 +180,5 +181,4 +182,6 +183,8 +184,4 +185,5 +186,4 +187,9 +188,8 +189,5 +190,8 +191,6 +192,1 +193,2 +194,2 +195,1 +196,4 +197,9 +198,2 +199,7 +200,2 +201,10 +202,5 +203,7 +204,1 +205,10 +206,6 +207,9 +208,9 +209,7 +210,9 +211,4 +212,7 +213,6 +214,2 +215,1 +216,6 +217,3 +218,7 +219,2 +220,3 +221,7 +222,3 +223,8 +224,6 +225,10 +226,8 +227,7 +228,1 +229,10 +230,6 +231,10 +232,2 +233,5 +234,7 +235,3 +236,3 +237,7 +238,9 +239,3 +240,4 +241,4 +242,2 +243,2 +244,3 +245,2 +246,4 +247,4 +248,3 +249,8 +250,10 +251,4 +252,5 +253,9 +254,2 +255,9 +256,6 +257,10 +258,5 +259,1 +260,9 +261,2 +262,7 +263,8 +264,7 +265,9 +266,8 +267,7 +268,6 +269,8 +270,5 +271,4 +272,1 +273,7 +274,4 +275,4 +276,4 +277,9 +278,3 +279,8 +280,4 +281,5 +282,4 +283,6 +284,4 +285,8 +286,7 +287,1 +288,10 +289,3 +290,2 +291,4 +292,9 +293,7 +294,9 +295,7 +296,2 +297,5 +298,5 +299,5 +300,9 +301,9 +302,8 +303,6 +304,7 +305,7 +306,1 +307,7 +308,4 +309,10 +310,3 +311,9 +312,6 +313,10 +314,8 +315,7 +316,5 +317,1 +318,7 +319,3 +320,5 +321,9 +322,3 +323,8 +324,3 +325,8 +326,8 +327,4 +328,1 +329,2 +330,9 +331,6 +332,7 +333,3 +334,7 +335,7 +336,8 +337,4 +338,3 +339,7 +340,2 +341,10 +342,7 +343,10 +344,1 +345,2 +346,9 +347,2 +348,3 +349,1 +350,1 +351,2 +352,8 +353,4 +354,2 +355,10 +356,8 +357,9 +358,3 +359,5 +360,10 +361,6 +362,7 +363,2 +364,4 +365,10 +366,2 +367,3 +368,5 +369,6 +370,4 +371,8 +372,8 +373,9 +374,2 +375,4 +376,1 +377,6 +378,1 +379,7 +380,3 +381,4 +382,5 +383,8 +384,2 +385,5 +386,10 +387,3 +388,8 +389,3 +390,2 +391,8 +392,1 +393,2 +394,6 +395,1 +396,6 +397,3 +398,2 +399,1 +400,5 +401,6 +402,10 +403,5 +404,4 +405,7 +406,9 +407,8 +408,3 +409,6 +410,10 +411,2 +412,1 +413,5 +414,6 +415,10 +416,1 +417,3 +418,9 +419,1 +420,8 +421,2 +422,7 +423,7 +424,7 +425,3 +426,7 +427,8 +428,10 +429,2 +430,8 +431,8 +432,10 +433,6 +434,3 +435,8 +436,8 +437,7 +438,2 +439,6 +440,4 +441,7 +442,10 +443,7 +444,7 +445,1 +446,7 +447,8 +448,1 +449,9 +450,9 +451,10 +452,8 +453,7 +454,3 +455,7 +456,8 +457,7 +458,2 +459,5 +460,10 +461,2 +462,1 +463,4 +464,2 +465,1 +466,9 +467,10 +468,6 +469,4 +470,2 +471,5 +472,9 +473,1 +474,2 +475,5 +476,10 +477,7 +478,9 +479,8 +480,6 +481,9 +482,10 +483,5 +484,4 +485,9 +486,9 +487,2 +488,1 +489,6 +490,2 +491,8 +492,7 +493,3 +494,5 +495,7 +496,9 +497,5 +498,9 +499,9 +500,5 diff --git a/test/static/executor/test_data/orders.csv b/test/static/executor/test_data/orders.csv new file mode 100644 index 0000000..efe6f8c --- /dev/null +++ b/test/static/executor/test_data/orders.csv @@ -0,0 +1,5001 @@ +id:int,customer_id:int +1,447 +2,113 +3,23 +4,319 +5,190 +6,304 +7,358 +8,23 +9,410 +10,397 +11,163 +12,352 +13,165 +14,169 +15,271 +16,300 +17,446 +18,436 +19,34 +20,58 +21,191 +22,56 +23,401 +24,436 +25,432 +26,248 +27,233 +28,218 +29,371 +30,384 +31,388 +32,338 +33,248 +34,191 +35,441 +36,206 +37,483 +38,364 +39,29 +40,359 +41,107 +42,178 +43,426 +44,289 +45,418 +46,283 +47,207 +48,389 +49,28 +50,310 +51,405 +52,357 +53,488 +54,225 +55,268 +56,333 +57,467 +58,293 +59,279 +60,138 +61,337 +62,252 +63,253 +64,240 +65,311 +66,102 +67,108 +68,348 +69,73 +70,116 +71,369 +72,199 +73,354 +74,436 +75,496 +76,307 +77,84 +78,447 +79,239 +80,263 +81,113 +82,336 +83,397 +84,122 +85,227 +86,280 +87,381 +88,362 +89,82 +90,323 +91,134 +92,172 +93,224 +94,185 +95,124 +96,369 +97,353 +98,108 +99,48 +100,142 +101,324 +102,404 +103,128 +104,236 +105,302 +106,142 +107,257 +108,93 +109,341 +110,8 +111,386 +112,411 +113,393 +114,281 +115,145 +116,193 +117,390 +118,273 +119,418 +120,231 +121,199 +122,252 +123,314 +124,315 +125,95 +126,406 +127,194 +128,494 +129,81 +130,339 +131,239 +132,497 +133,319 +134,418 +135,480 +136,224 +137,126 +138,365 +139,498 +140,10 +141,70 +142,48 +143,244 +144,72 +145,260 +146,47 +147,175 +148,289 +149,371 +150,125 +151,243 +152,406 +153,289 +154,372 +155,278 +156,432 +157,14 +158,146 +159,74 +160,461 +161,133 +162,477 +163,109 +164,321 +165,380 +166,343 +167,294 +168,52 +169,365 +170,115 +171,88 +172,298 +173,108 +174,249 +175,340 +176,115 +177,192 +178,461 +179,290 +180,56 +181,405 +182,365 +183,329 +184,136 +185,481 +186,411 +187,373 +188,420 +189,214 +190,481 +191,293 +192,138 +193,226 +194,107 +195,47 +196,119 +197,130 +198,422 +199,270 +200,410 +201,191 +202,313 +203,322 +204,464 +205,286 +206,141 +207,252 +208,293 +209,9 +210,398 +211,458 +212,315 +213,352 +214,323 +215,88 +216,184 +217,126 +218,96 +219,367 +220,459 +221,418 +222,364 +223,421 +224,420 +225,419 +226,172 +227,6 +228,227 +229,122 +230,335 +231,303 +232,157 +233,38 +234,279 +235,460 +236,312 +237,74 +238,233 +239,204 +240,178 +241,335 +242,229 +243,495 +244,281 +245,172 +246,272 +247,29 +248,346 +249,403 +250,5 +251,460 +252,121 +253,464 +254,171 +255,455 +256,221 +257,206 +258,88 +259,71 +260,426 +261,233 +262,472 +263,165 +264,127 +265,429 +266,33 +267,235 +268,264 +269,12 +270,37 +271,347 +272,200 +273,104 +274,233 +275,260 +276,257 +277,120 +278,224 +279,235 +280,221 +281,20 +282,184 +283,45 +284,299 +285,36 +286,279 +287,346 +288,307 +289,272 +290,223 +291,274 +292,429 +293,236 +294,334 +295,419 +296,267 +297,285 +298,434 +299,329 +300,32 +301,181 +302,284 +303,249 +304,308 +305,135 +306,325 +307,452 +308,20 +309,491 +310,118 +311,28 +312,427 +313,264 +314,288 +315,348 +316,331 +317,292 +318,379 +319,247 +320,59 +321,322 +322,81 +323,400 +324,63 +325,382 +326,41 +327,10 +328,343 +329,262 +330,463 +331,440 +332,265 +333,448 +334,48 +335,321 +336,206 +337,102 +338,245 +339,291 +340,379 +341,119 +342,213 +343,25 +344,160 +345,153 +346,13 +347,467 +348,446 +349,440 +350,362 +351,54 +352,124 +353,312 +354,294 +355,49 +356,446 +357,94 +358,363 +359,238 +360,160 +361,201 +362,191 +363,89 +364,342 +365,109 +366,256 +367,380 +368,335 +369,151 +370,116 +371,206 +372,379 +373,320 +374,479 +375,461 +376,60 +377,220 +378,150 +379,299 +380,155 +381,206 +382,472 +383,489 +384,173 +385,192 +386,144 +387,61 +388,291 +389,436 +390,448 +391,294 +392,453 +393,214 +394,497 +395,286 +396,482 +397,113 +398,86 +399,104 +400,82 +401,116 +402,401 +403,60 +404,248 +405,111 +406,451 +407,463 +408,395 +409,193 +410,296 +411,296 +412,443 +413,196 +414,293 +415,251 +416,327 +417,464 +418,158 +419,15 +420,23 +421,295 +422,321 +423,159 +424,448 +425,204 +426,111 +427,414 +428,377 +429,441 +430,114 +431,314 +432,234 +433,80 +434,145 +435,154 +436,36 +437,199 +438,200 +439,438 +440,119 +441,272 +442,402 +443,102 +444,124 +445,414 +446,89 +447,33 +448,71 +449,217 +450,402 +451,84 +452,207 +453,489 +454,463 +455,79 +456,291 +457,343 +458,471 +459,275 +460,143 +461,143 +462,429 +463,314 +464,34 +465,336 +466,183 +467,440 +468,248 +469,237 +470,13 +471,403 +472,376 +473,364 +474,323 +475,157 +476,130 +477,394 +478,451 +479,344 +480,285 +481,23 +482,143 +483,295 +484,188 +485,461 +486,113 +487,402 +488,215 +489,35 +490,242 +491,392 +492,483 +493,294 +494,219 +495,210 +496,494 +497,233 +498,256 +499,419 +500,285 +501,82 +502,450 +503,127 +504,33 +505,276 +506,132 +507,46 +508,458 +509,484 +510,276 +511,166 +512,452 +513,2 +514,116 +515,498 +516,493 +517,369 +518,355 +519,359 +520,427 +521,372 +522,325 +523,447 +524,333 +525,26 +526,144 +527,442 +528,395 +529,78 +530,414 +531,494 +532,184 +533,359 +534,218 +535,77 +536,46 +537,239 +538,377 +539,277 +540,292 +541,249 +542,401 +543,176 +544,20 +545,102 +546,197 +547,138 +548,307 +549,436 +550,225 +551,143 +552,73 +553,59 +554,491 +555,124 +556,343 +557,98 +558,367 +559,137 +560,79 +561,304 +562,302 +563,140 +564,366 +565,499 +566,374 +567,181 +568,482 +569,81 +570,314 +571,350 +572,2 +573,34 +574,289 +575,241 +576,264 +577,50 +578,353 +579,21 +580,311 +581,141 +582,90 +583,195 +584,172 +585,16 +586,478 +587,156 +588,63 +589,123 +590,269 +591,450 +592,192 +593,121 +594,494 +595,113 +596,434 +597,167 +598,363 +599,388 +600,171 +601,453 +602,39 +603,290 +604,344 +605,212 +606,299 +607,253 +608,182 +609,479 +610,500 +611,350 +612,389 +613,193 +614,300 +615,438 +616,134 +617,334 +618,390 +619,484 +620,459 +621,201 +622,266 +623,132 +624,447 +625,53 +626,427 +627,430 +628,34 +629,94 +630,109 +631,89 +632,481 +633,175 +634,65 +635,404 +636,251 +637,52 +638,152 +639,495 +640,208 +641,83 +642,315 +643,276 +644,382 +645,318 +646,182 +647,284 +648,84 +649,213 +650,241 +651,165 +652,437 +653,77 +654,107 +655,164 +656,426 +657,299 +658,484 +659,66 +660,356 +661,103 +662,52 +663,219 +664,494 +665,50 +666,298 +667,49 +668,36 +669,247 +670,366 +671,406 +672,307 +673,35 +674,205 +675,155 +676,156 +677,220 +678,311 +679,292 +680,284 +681,300 +682,273 +683,360 +684,78 +685,203 +686,487 +687,463 +688,231 +689,243 +690,288 +691,282 +692,142 +693,406 +694,466 +695,73 +696,81 +697,316 +698,3 +699,395 +700,58 +701,245 +702,235 +703,388 +704,23 +705,457 +706,415 +707,492 +708,376 +709,112 +710,188 +711,163 +712,97 +713,97 +714,470 +715,361 +716,432 +717,188 +718,238 +719,165 +720,287 +721,26 +722,350 +723,328 +724,454 +725,147 +726,211 +727,177 +728,189 +729,357 +730,217 +731,374 +732,368 +733,178 +734,451 +735,58 +736,114 +737,246 +738,283 +739,188 +740,283 +741,20 +742,450 +743,390 +744,357 +745,17 +746,68 +747,17 +748,213 +749,65 +750,143 +751,18 +752,456 +753,399 +754,92 +755,488 +756,275 +757,200 +758,25 +759,253 +760,250 +761,155 +762,174 +763,253 +764,457 +765,225 +766,78 +767,172 +768,458 +769,327 +770,436 +771,383 +772,248 +773,417 +774,348 +775,497 +776,141 +777,132 +778,394 +779,471 +780,46 +781,17 +782,392 +783,140 +784,307 +785,216 +786,56 +787,213 +788,348 +789,39 +790,279 +791,30 +792,236 +793,335 +794,493 +795,399 +796,87 +797,486 +798,491 +799,400 +800,55 +801,431 +802,98 +803,118 +804,250 +805,347 +806,6 +807,64 +808,104 +809,239 +810,157 +811,500 +812,489 +813,309 +814,198 +815,70 +816,269 +817,191 +818,300 +819,241 +820,439 +821,107 +822,347 +823,223 +824,498 +825,359 +826,95 +827,415 +828,402 +829,223 +830,427 +831,138 +832,401 +833,309 +834,318 +835,403 +836,349 +837,444 +838,335 +839,209 +840,450 +841,200 +842,500 +843,271 +844,395 +845,24 +846,487 +847,399 +848,489 +849,25 +850,443 +851,259 +852,317 +853,226 +854,42 +855,362 +856,348 +857,11 +858,444 +859,472 +860,274 +861,114 +862,100 +863,254 +864,53 +865,290 +866,237 +867,328 +868,382 +869,206 +870,279 +871,393 +872,202 +873,437 +874,346 +875,403 +876,314 +877,268 +878,288 +879,147 +880,448 +881,13 +882,438 +883,459 +884,352 +885,54 +886,470 +887,301 +888,309 +889,107 +890,272 +891,45 +892,152 +893,408 +894,124 +895,406 +896,348 +897,318 +898,337 +899,43 +900,40 +901,51 +902,36 +903,470 +904,228 +905,307 +906,221 +907,3 +908,435 +909,53 +910,26 +911,212 +912,67 +913,263 +914,494 +915,400 +916,262 +917,320 +918,407 +919,336 +920,62 +921,334 +922,55 +923,480 +924,322 +925,161 +926,449 +927,389 +928,51 +929,369 +930,430 +931,95 +932,122 +933,304 +934,94 +935,384 +936,471 +937,77 +938,416 +939,393 +940,219 +941,200 +942,37 +943,242 +944,6 +945,420 +946,217 +947,78 +948,235 +949,293 +950,277 +951,35 +952,142 +953,10 +954,400 +955,99 +956,207 +957,325 +958,461 +959,483 +960,59 +961,292 +962,60 +963,297 +964,78 +965,447 +966,382 +967,303 +968,30 +969,377 +970,474 +971,215 +972,177 +973,459 +974,365 +975,475 +976,40 +977,296 +978,194 +979,362 +980,336 +981,204 +982,464 +983,54 +984,24 +985,417 +986,352 +987,355 +988,307 +989,237 +990,97 +991,321 +992,248 +993,495 +994,413 +995,235 +996,390 +997,361 +998,68 +999,8 +1000,350 +1001,368 +1002,174 +1003,201 +1004,336 +1005,98 +1006,151 +1007,464 +1008,105 +1009,446 +1010,138 +1011,248 +1012,165 +1013,217 +1014,35 +1015,362 +1016,350 +1017,312 +1018,367 +1019,264 +1020,354 +1021,72 +1022,342 +1023,248 +1024,372 +1025,71 +1026,17 +1027,239 +1028,192 +1029,192 +1030,259 +1031,59 +1032,17 +1033,81 +1034,500 +1035,115 +1036,442 +1037,82 +1038,463 +1039,123 +1040,493 +1041,69 +1042,87 +1043,459 +1044,126 +1045,14 +1046,19 +1047,283 +1048,435 +1049,54 +1050,332 +1051,78 +1052,193 +1053,170 +1054,211 +1055,260 +1056,498 +1057,417 +1058,468 +1059,385 +1060,110 +1061,351 +1062,412 +1063,454 +1064,134 +1065,371 +1066,39 +1067,357 +1068,71 +1069,298 +1070,213 +1071,326 +1072,433 +1073,489 +1074,153 +1075,376 +1076,56 +1077,342 +1078,407 +1079,138 +1080,395 +1081,304 +1082,110 +1083,43 +1084,478 +1085,398 +1086,264 +1087,375 +1088,185 +1089,31 +1090,328 +1091,449 +1092,190 +1093,278 +1094,465 +1095,99 +1096,197 +1097,314 +1098,303 +1099,333 +1100,379 +1101,70 +1102,58 +1103,243 +1104,204 +1105,89 +1106,259 +1107,343 +1108,163 +1109,379 +1110,215 +1111,232 +1112,89 +1113,144 +1114,105 +1115,349 +1116,154 +1117,357 +1118,173 +1119,134 +1120,120 +1121,421 +1122,369 +1123,472 +1124,257 +1125,312 +1126,395 +1127,166 +1128,381 +1129,299 +1130,57 +1131,326 +1132,34 +1133,126 +1134,360 +1135,134 +1136,230 +1137,357 +1138,99 +1139,201 +1140,351 +1141,497 +1142,402 +1143,462 +1144,476 +1145,382 +1146,50 +1147,68 +1148,425 +1149,462 +1150,253 +1151,234 +1152,301 +1153,262 +1154,53 +1155,418 +1156,392 +1157,5 +1158,262 +1159,195 +1160,243 +1161,136 +1162,99 +1163,201 +1164,344 +1165,170 +1166,94 +1167,478 +1168,106 +1169,485 +1170,35 +1171,125 +1172,161 +1173,206 +1174,136 +1175,354 +1176,406 +1177,423 +1178,14 +1179,13 +1180,474 +1181,473 +1182,160 +1183,34 +1184,454 +1185,437 +1186,82 +1187,141 +1188,75 +1189,393 +1190,40 +1191,87 +1192,68 +1193,438 +1194,275 +1195,132 +1196,75 +1197,220 +1198,374 +1199,401 +1200,422 +1201,167 +1202,399 +1203,71 +1204,474 +1205,412 +1206,338 +1207,4 +1208,6 +1209,448 +1210,52 +1211,248 +1212,191 +1213,208 +1214,315 +1215,404 +1216,51 +1217,278 +1218,401 +1219,171 +1220,93 +1221,377 +1222,50 +1223,252 +1224,15 +1225,482 +1226,207 +1227,351 +1228,370 +1229,422 +1230,227 +1231,300 +1232,326 +1233,41 +1234,436 +1235,91 +1236,252 +1237,422 +1238,360 +1239,360 +1240,94 +1241,97 +1242,336 +1243,15 +1244,358 +1245,336 +1246,234 +1247,59 +1248,363 +1249,218 +1250,425 +1251,328 +1252,337 +1253,429 +1254,447 +1255,237 +1256,226 +1257,137 +1258,162 +1259,451 +1260,217 +1261,486 +1262,160 +1263,376 +1264,500 +1265,173 +1266,293 +1267,102 +1268,194 +1269,83 +1270,313 +1271,388 +1272,500 +1273,52 +1274,212 +1275,307 +1276,109 +1277,238 +1278,307 +1279,299 +1280,447 +1281,42 +1282,78 +1283,87 +1284,484 +1285,277 +1286,372 +1287,151 +1288,95 +1289,310 +1290,98 +1291,261 +1292,275 +1293,239 +1294,101 +1295,236 +1296,265 +1297,263 +1298,229 +1299,113 +1300,399 +1301,6 +1302,364 +1303,121 +1304,424 +1305,196 +1306,438 +1307,72 +1308,6 +1309,435 +1310,178 +1311,325 +1312,487 +1313,207 +1314,90 +1315,179 +1316,208 +1317,487 +1318,386 +1319,498 +1320,245 +1321,4 +1322,386 +1323,76 +1324,163 +1325,410 +1326,81 +1327,490 +1328,3 +1329,427 +1330,94 +1331,363 +1332,335 +1333,364 +1334,489 +1335,307 +1336,147 +1337,64 +1338,385 +1339,284 +1340,96 +1341,344 +1342,171 +1343,303 +1344,183 +1345,386 +1346,235 +1347,260 +1348,172 +1349,479 +1350,72 +1351,408 +1352,247 +1353,242 +1354,86 +1355,419 +1356,133 +1357,48 +1358,317 +1359,198 +1360,287 +1361,350 +1362,268 +1363,373 +1364,56 +1365,379 +1366,317 +1367,411 +1368,16 +1369,173 +1370,138 +1371,221 +1372,418 +1373,8 +1374,342 +1375,79 +1376,171 +1377,320 +1378,120 +1379,120 +1380,219 +1381,474 +1382,176 +1383,104 +1384,114 +1385,282 +1386,218 +1387,292 +1388,121 +1389,476 +1390,488 +1391,346 +1392,280 +1393,202 +1394,306 +1395,257 +1396,326 +1397,490 +1398,348 +1399,107 +1400,367 +1401,499 +1402,320 +1403,69 +1404,6 +1405,497 +1406,42 +1407,55 +1408,332 +1409,142 +1410,447 +1411,210 +1412,106 +1413,89 +1414,115 +1415,139 +1416,457 +1417,116 +1418,51 +1419,83 +1420,410 +1421,215 +1422,288 +1423,216 +1424,287 +1425,236 +1426,192 +1427,377 +1428,387 +1429,369 +1430,350 +1431,104 +1432,157 +1433,354 +1434,252 +1435,169 +1436,181 +1437,259 +1438,166 +1439,208 +1440,461 +1441,329 +1442,132 +1443,194 +1444,71 +1445,51 +1446,234 +1447,199 +1448,180 +1449,198 +1450,294 +1451,320 +1452,442 +1453,144 +1454,165 +1455,445 +1456,391 +1457,431 +1458,4 +1459,39 +1460,273 +1461,294 +1462,379 +1463,435 +1464,428 +1465,367 +1466,346 +1467,363 +1468,358 +1469,240 +1470,236 +1471,299 +1472,303 +1473,233 +1474,255 +1475,41 +1476,56 +1477,91 +1478,321 +1479,11 +1480,71 +1481,357 +1482,377 +1483,1 +1484,63 +1485,265 +1486,43 +1487,307 +1488,214 +1489,84 +1490,339 +1491,199 +1492,443 +1493,296 +1494,141 +1495,493 +1496,280 +1497,432 +1498,44 +1499,452 +1500,149 +1501,26 +1502,214 +1503,308 +1504,277 +1505,54 +1506,416 +1507,301 +1508,256 +1509,100 +1510,61 +1511,395 +1512,492 +1513,366 +1514,214 +1515,125 +1516,499 +1517,140 +1518,433 +1519,451 +1520,302 +1521,29 +1522,276 +1523,327 +1524,210 +1525,484 +1526,42 +1527,451 +1528,467 +1529,435 +1530,64 +1531,84 +1532,55 +1533,35 +1534,180 +1535,431 +1536,276 +1537,219 +1538,325 +1539,209 +1540,88 +1541,206 +1542,334 +1543,318 +1544,424 +1545,140 +1546,143 +1547,389 +1548,61 +1549,20 +1550,157 +1551,372 +1552,434 +1553,317 +1554,132 +1555,484 +1556,43 +1557,430 +1558,283 +1559,21 +1560,322 +1561,445 +1562,419 +1563,466 +1564,302 +1565,19 +1566,10 +1567,471 +1568,256 +1569,182 +1570,184 +1571,226 +1572,332 +1573,362 +1574,470 +1575,429 +1576,407 +1577,87 +1578,176 +1579,106 +1580,329 +1581,129 +1582,363 +1583,248 +1584,473 +1585,414 +1586,7 +1587,294 +1588,428 +1589,182 +1590,4 +1591,365 +1592,66 +1593,103 +1594,94 +1595,193 +1596,293 +1597,414 +1598,20 +1599,426 +1600,492 +1601,231 +1602,371 +1603,493 +1604,259 +1605,203 +1606,392 +1607,486 +1608,262 +1609,48 +1610,97 +1611,237 +1612,6 +1613,485 +1614,416 +1615,448 +1616,3 +1617,167 +1618,34 +1619,220 +1620,197 +1621,24 +1622,245 +1623,17 +1624,122 +1625,241 +1626,122 +1627,203 +1628,265 +1629,496 +1630,468 +1631,171 +1632,390 +1633,422 +1634,172 +1635,389 +1636,108 +1637,333 +1638,485 +1639,221 +1640,174 +1641,27 +1642,267 +1643,486 +1644,96 +1645,5 +1646,33 +1647,171 +1648,255 +1649,99 +1650,403 +1651,197 +1652,293 +1653,260 +1654,112 +1655,413 +1656,366 +1657,373 +1658,164 +1659,425 +1660,191 +1661,468 +1662,127 +1663,418 +1664,498 +1665,71 +1666,185 +1667,254 +1668,24 +1669,436 +1670,190 +1671,337 +1672,20 +1673,177 +1674,16 +1675,344 +1676,450 +1677,58 +1678,446 +1679,257 +1680,431 +1681,448 +1682,394 +1683,283 +1684,29 +1685,291 +1686,354 +1687,113 +1688,379 +1689,167 +1690,382 +1691,413 +1692,83 +1693,417 +1694,259 +1695,11 +1696,460 +1697,234 +1698,218 +1699,200 +1700,163 +1701,203 +1702,120 +1703,409 +1704,437 +1705,235 +1706,370 +1707,147 +1708,226 +1709,249 +1710,489 +1711,208 +1712,312 +1713,330 +1714,407 +1715,236 +1716,374 +1717,237 +1718,35 +1719,107 +1720,84 +1721,274 +1722,189 +1723,338 +1724,274 +1725,94 +1726,494 +1727,352 +1728,307 +1729,401 +1730,381 +1731,3 +1732,238 +1733,393 +1734,308 +1735,101 +1736,363 +1737,323 +1738,340 +1739,253 +1740,479 +1741,429 +1742,116 +1743,26 +1744,88 +1745,190 +1746,33 +1747,321 +1748,238 +1749,466 +1750,39 +1751,361 +1752,195 +1753,217 +1754,433 +1755,360 +1756,500 +1757,188 +1758,236 +1759,234 +1760,312 +1761,479 +1762,384 +1763,183 +1764,192 +1765,244 +1766,234 +1767,192 +1768,220 +1769,30 +1770,457 +1771,217 +1772,143 +1773,272 +1774,313 +1775,192 +1776,195 +1777,283 +1778,287 +1779,3 +1780,4 +1781,373 +1782,260 +1783,238 +1784,448 +1785,477 +1786,460 +1787,359 +1788,198 +1789,478 +1790,36 +1791,429 +1792,487 +1793,317 +1794,11 +1795,494 +1796,211 +1797,44 +1798,111 +1799,402 +1800,290 +1801,384 +1802,42 +1803,300 +1804,161 +1805,242 +1806,333 +1807,45 +1808,110 +1809,60 +1810,20 +1811,337 +1812,319 +1813,18 +1814,488 +1815,310 +1816,250 +1817,474 +1818,201 +1819,472 +1820,331 +1821,410 +1822,182 +1823,61 +1824,427 +1825,152 +1826,496 +1827,346 +1828,264 +1829,242 +1830,370 +1831,400 +1832,338 +1833,369 +1834,314 +1835,276 +1836,273 +1837,494 +1838,29 +1839,241 +1840,220 +1841,59 +1842,234 +1843,56 +1844,303 +1845,368 +1846,309 +1847,494 +1848,76 +1849,495 +1850,258 +1851,156 +1852,284 +1853,124 +1854,225 +1855,312 +1856,273 +1857,138 +1858,423 +1859,27 +1860,376 +1861,312 +1862,71 +1863,423 +1864,478 +1865,177 +1866,356 +1867,303 +1868,485 +1869,86 +1870,407 +1871,219 +1872,96 +1873,394 +1874,323 +1875,111 +1876,354 +1877,488 +1878,391 +1879,185 +1880,492 +1881,301 +1882,209 +1883,496 +1884,368 +1885,241 +1886,263 +1887,203 +1888,432 +1889,185 +1890,210 +1891,13 +1892,135 +1893,1 +1894,111 +1895,62 +1896,254 +1897,114 +1898,375 +1899,46 +1900,420 +1901,353 +1902,94 +1903,316 +1904,246 +1905,403 +1906,469 +1907,283 +1908,144 +1909,34 +1910,256 +1911,420 +1912,414 +1913,236 +1914,289 +1915,250 +1916,135 +1917,500 +1918,138 +1919,358 +1920,406 +1921,164 +1922,176 +1923,137 +1924,365 +1925,166 +1926,329 +1927,186 +1928,19 +1929,314 +1930,461 +1931,467 +1932,366 +1933,322 +1934,26 +1935,493 +1936,481 +1937,14 +1938,277 +1939,114 +1940,218 +1941,204 +1942,274 +1943,499 +1944,299 +1945,177 +1946,297 +1947,191 +1948,210 +1949,139 +1950,417 +1951,95 +1952,380 +1953,208 +1954,233 +1955,65 +1956,76 +1957,496 +1958,143 +1959,87 +1960,383 +1961,332 +1962,497 +1963,343 +1964,332 +1965,1 +1966,254 +1967,362 +1968,395 +1969,85 +1970,84 +1971,191 +1972,158 +1973,70 +1974,259 +1975,499 +1976,151 +1977,371 +1978,211 +1979,118 +1980,24 +1981,85 +1982,102 +1983,12 +1984,157 +1985,207 +1986,220 +1987,194 +1988,118 +1989,269 +1990,262 +1991,191 +1992,380 +1993,309 +1994,29 +1995,36 +1996,336 +1997,59 +1998,230 +1999,201 +2000,56 +2001,258 +2002,146 +2003,313 +2004,185 +2005,35 +2006,368 +2007,230 +2008,391 +2009,182 +2010,359 +2011,182 +2012,317 +2013,152 +2014,260 +2015,368 +2016,423 +2017,369 +2018,97 +2019,355 +2020,229 +2021,66 +2022,252 +2023,311 +2024,482 +2025,187 +2026,130 +2027,486 +2028,252 +2029,268 +2030,175 +2031,317 +2032,22 +2033,360 +2034,372 +2035,10 +2036,40 +2037,416 +2038,158 +2039,200 +2040,76 +2041,399 +2042,241 +2043,487 +2044,279 +2045,55 +2046,242 +2047,86 +2048,92 +2049,407 +2050,222 +2051,460 +2052,381 +2053,140 +2054,480 +2055,437 +2056,126 +2057,222 +2058,67 +2059,335 +2060,69 +2061,355 +2062,191 +2063,456 +2064,262 +2065,127 +2066,303 +2067,253 +2068,79 +2069,159 +2070,263 +2071,308 +2072,131 +2073,109 +2074,46 +2075,491 +2076,499 +2077,218 +2078,227 +2079,156 +2080,43 +2081,100 +2082,227 +2083,424 +2084,197 +2085,278 +2086,104 +2087,377 +2088,362 +2089,460 +2090,14 +2091,278 +2092,265 +2093,108 +2094,420 +2095,451 +2096,360 +2097,143 +2098,123 +2099,364 +2100,91 +2101,280 +2102,40 +2103,391 +2104,222 +2105,98 +2106,82 +2107,336 +2108,376 +2109,22 +2110,227 +2111,9 +2112,79 +2113,422 +2114,486 +2115,472 +2116,240 +2117,276 +2118,190 +2119,210 +2120,194 +2121,272 +2122,211 +2123,183 +2124,4 +2125,306 +2126,35 +2127,187 +2128,349 +2129,249 +2130,498 +2131,55 +2132,344 +2133,69 +2134,14 +2135,186 +2136,352 +2137,49 +2138,138 +2139,337 +2140,245 +2141,196 +2142,170 +2143,210 +2144,401 +2145,2 +2146,154 +2147,328 +2148,2 +2149,307 +2150,178 +2151,129 +2152,279 +2153,340 +2154,379 +2155,395 +2156,179 +2157,420 +2158,435 +2159,416 +2160,102 +2161,283 +2162,326 +2163,355 +2164,272 +2165,356 +2166,30 +2167,411 +2168,164 +2169,191 +2170,236 +2171,316 +2172,180 +2173,112 +2174,304 +2175,291 +2176,300 +2177,362 +2178,374 +2179,472 +2180,380 +2181,155 +2182,354 +2183,418 +2184,113 +2185,377 +2186,220 +2187,98 +2188,379 +2189,405 +2190,315 +2191,30 +2192,240 +2193,301 +2194,160 +2195,275 +2196,460 +2197,390 +2198,347 +2199,382 +2200,359 +2201,361 +2202,389 +2203,3 +2204,451 +2205,383 +2206,385 +2207,365 +2208,278 +2209,471 +2210,281 +2211,490 +2212,475 +2213,271 +2214,360 +2215,159 +2216,361 +2217,401 +2218,477 +2219,10 +2220,64 +2221,458 +2222,100 +2223,149 +2224,111 +2225,116 +2226,20 +2227,449 +2228,145 +2229,371 +2230,48 +2231,188 +2232,233 +2233,376 +2234,57 +2235,175 +2236,343 +2237,309 +2238,485 +2239,22 +2240,217 +2241,79 +2242,420 +2243,26 +2244,426 +2245,42 +2246,362 +2247,479 +2248,166 +2249,372 +2250,110 +2251,168 +2252,236 +2253,286 +2254,316 +2255,265 +2256,236 +2257,417 +2258,327 +2259,83 +2260,246 +2261,153 +2262,31 +2263,193 +2264,103 +2265,479 +2266,313 +2267,214 +2268,301 +2269,311 +2270,283 +2271,407 +2272,10 +2273,243 +2274,118 +2275,477 +2276,352 +2277,150 +2278,346 +2279,82 +2280,484 +2281,232 +2282,2 +2283,480 +2284,477 +2285,464 +2286,340 +2287,307 +2288,283 +2289,421 +2290,127 +2291,316 +2292,237 +2293,106 +2294,373 +2295,281 +2296,466 +2297,184 +2298,409 +2299,17 +2300,436 +2301,260 +2302,176 +2303,179 +2304,174 +2305,427 +2306,436 +2307,228 +2308,38 +2309,2 +2310,459 +2311,375 +2312,76 +2313,252 +2314,336 +2315,362 +2316,256 +2317,156 +2318,443 +2319,333 +2320,59 +2321,119 +2322,9 +2323,182 +2324,95 +2325,401 +2326,371 +2327,336 +2328,118 +2329,209 +2330,272 +2331,101 +2332,163 +2333,387 +2334,128 +2335,277 +2336,403 +2337,244 +2338,500 +2339,3 +2340,266 +2341,113 +2342,88 +2343,422 +2344,249 +2345,225 +2346,356 +2347,433 +2348,420 +2349,455 +2350,50 +2351,311 +2352,125 +2353,263 +2354,391 +2355,99 +2356,407 +2357,324 +2358,78 +2359,348 +2360,173 +2361,368 +2362,70 +2363,324 +2364,443 +2365,319 +2366,490 +2367,314 +2368,386 +2369,312 +2370,417 +2371,50 +2372,201 +2373,2 +2374,139 +2375,176 +2376,112 +2377,147 +2378,410 +2379,347 +2380,169 +2381,156 +2382,435 +2383,293 +2384,93 +2385,376 +2386,275 +2387,103 +2388,106 +2389,297 +2390,381 +2391,1 +2392,413 +2393,161 +2394,279 +2395,496 +2396,419 +2397,457 +2398,380 +2399,447 +2400,476 +2401,466 +2402,402 +2403,498 +2404,376 +2405,19 +2406,203 +2407,250 +2408,35 +2409,13 +2410,207 +2411,117 +2412,50 +2413,170 +2414,194 +2415,78 +2416,162 +2417,9 +2418,263 +2419,150 +2420,345 +2421,270 +2422,213 +2423,253 +2424,403 +2425,316 +2426,98 +2427,353 +2428,125 +2429,11 +2430,241 +2431,1 +2432,155 +2433,279 +2434,432 +2435,305 +2436,426 +2437,200 +2438,197 +2439,322 +2440,326 +2441,407 +2442,367 +2443,275 +2444,7 +2445,481 +2446,343 +2447,415 +2448,203 +2449,386 +2450,444 +2451,278 +2452,138 +2453,86 +2454,133 +2455,333 +2456,36 +2457,430 +2458,222 +2459,247 +2460,275 +2461,430 +2462,406 +2463,29 +2464,99 +2465,484 +2466,394 +2467,353 +2468,39 +2469,394 +2470,262 +2471,133 +2472,314 +2473,241 +2474,336 +2475,179 +2476,286 +2477,219 +2478,13 +2479,420 +2480,288 +2481,247 +2482,244 +2483,408 +2484,439 +2485,81 +2486,154 +2487,40 +2488,215 +2489,25 +2490,353 +2491,294 +2492,131 +2493,474 +2494,56 +2495,487 +2496,50 +2497,429 +2498,476 +2499,355 +2500,343 +2501,498 +2502,101 +2503,473 +2504,95 +2505,254 +2506,20 +2507,98 +2508,156 +2509,59 +2510,262 +2511,4 +2512,279 +2513,263 +2514,108 +2515,180 +2516,143 +2517,398 +2518,379 +2519,351 +2520,200 +2521,217 +2522,94 +2523,65 +2524,88 +2525,121 +2526,448 +2527,414 +2528,164 +2529,403 +2530,466 +2531,418 +2532,101 +2533,484 +2534,34 +2535,453 +2536,194 +2537,391 +2538,192 +2539,374 +2540,316 +2541,145 +2542,161 +2543,414 +2544,155 +2545,458 +2546,102 +2547,118 +2548,101 +2549,229 +2550,414 +2551,198 +2552,123 +2553,407 +2554,3 +2555,291 +2556,14 +2557,45 +2558,63 +2559,346 +2560,275 +2561,251 +2562,302 +2563,4 +2564,150 +2565,270 +2566,420 +2567,419 +2568,181 +2569,422 +2570,332 +2571,196 +2572,348 +2573,190 +2574,156 +2575,10 +2576,108 +2577,135 +2578,108 +2579,29 +2580,405 +2581,210 +2582,430 +2583,45 +2584,465 +2585,372 +2586,21 +2587,64 +2588,253 +2589,424 +2590,168 +2591,91 +2592,39 +2593,433 +2594,298 +2595,326 +2596,171 +2597,138 +2598,57 +2599,234 +2600,442 +2601,406 +2602,267 +2603,238 +2604,167 +2605,122 +2606,180 +2607,290 +2608,318 +2609,52 +2610,385 +2611,3 +2612,431 +2613,191 +2614,389 +2615,249 +2616,461 +2617,127 +2618,185 +2619,87 +2620,471 +2621,444 +2622,286 +2623,278 +2624,243 +2625,438 +2626,425 +2627,275 +2628,296 +2629,368 +2630,472 +2631,20 +2632,43 +2633,282 +2634,399 +2635,391 +2636,266 +2637,324 +2638,349 +2639,58 +2640,219 +2641,314 +2642,457 +2643,293 +2644,236 +2645,71 +2646,407 +2647,116 +2648,191 +2649,267 +2650,418 +2651,216 +2652,463 +2653,52 +2654,51 +2655,163 +2656,210 +2657,293 +2658,354 +2659,358 +2660,308 +2661,215 +2662,26 +2663,341 +2664,398 +2665,236 +2666,83 +2667,25 +2668,265 +2669,89 +2670,203 +2671,156 +2672,258 +2673,381 +2674,201 +2675,356 +2676,108 +2677,64 +2678,187 +2679,222 +2680,55 +2681,228 +2682,45 +2683,160 +2684,260 +2685,414 +2686,29 +2687,444 +2688,282 +2689,425 +2690,124 +2691,54 +2692,299 +2693,225 +2694,205 +2695,375 +2696,220 +2697,192 +2698,277 +2699,140 +2700,97 +2701,426 +2702,458 +2703,417 +2704,281 +2705,156 +2706,3 +2707,3 +2708,94 +2709,213 +2710,440 +2711,136 +2712,294 +2713,377 +2714,394 +2715,328 +2716,434 +2717,347 +2718,313 +2719,293 +2720,237 +2721,465 +2722,263 +2723,200 +2724,265 +2725,321 +2726,155 +2727,134 +2728,158 +2729,34 +2730,201 +2731,138 +2732,212 +2733,136 +2734,387 +2735,331 +2736,367 +2737,266 +2738,173 +2739,372 +2740,276 +2741,315 +2742,18 +2743,349 +2744,372 +2745,426 +2746,126 +2747,195 +2748,152 +2749,280 +2750,25 +2751,53 +2752,79 +2753,450 +2754,8 +2755,494 +2756,154 +2757,275 +2758,412 +2759,499 +2760,360 +2761,396 +2762,385 +2763,296 +2764,127 +2765,222 +2766,281 +2767,162 +2768,104 +2769,227 +2770,159 +2771,164 +2772,341 +2773,495 +2774,210 +2775,206 +2776,476 +2777,91 +2778,464 +2779,190 +2780,366 +2781,229 +2782,379 +2783,454 +2784,289 +2785,484 +2786,321 +2787,383 +2788,131 +2789,418 +2790,328 +2791,338 +2792,441 +2793,88 +2794,113 +2795,227 +2796,289 +2797,433 +2798,352 +2799,357 +2800,459 +2801,151 +2802,117 +2803,130 +2804,189 +2805,54 +2806,357 +2807,343 +2808,303 +2809,401 +2810,122 +2811,160 +2812,256 +2813,269 +2814,187 +2815,309 +2816,459 +2817,386 +2818,452 +2819,62 +2820,304 +2821,395 +2822,364 +2823,175 +2824,441 +2825,250 +2826,193 +2827,471 +2828,131 +2829,431 +2830,374 +2831,360 +2832,423 +2833,104 +2834,292 +2835,116 +2836,317 +2837,311 +2838,375 +2839,265 +2840,16 +2841,200 +2842,90 +2843,192 +2844,58 +2845,408 +2846,243 +2847,109 +2848,369 +2849,335 +2850,468 +2851,472 +2852,434 +2853,487 +2854,224 +2855,266 +2856,205 +2857,313 +2858,285 +2859,178 +2860,124 +2861,105 +2862,146 +2863,329 +2864,471 +2865,212 +2866,210 +2867,168 +2868,287 +2869,375 +2870,234 +2871,195 +2872,392 +2873,246 +2874,371 +2875,496 +2876,214 +2877,428 +2878,318 +2879,169 +2880,194 +2881,432 +2882,175 +2883,143 +2884,135 +2885,259 +2886,140 +2887,321 +2888,165 +2889,293 +2890,473 +2891,67 +2892,475 +2893,317 +2894,481 +2895,17 +2896,446 +2897,24 +2898,207 +2899,479 +2900,47 +2901,344 +2902,310 +2903,388 +2904,174 +2905,136 +2906,284 +2907,457 +2908,168 +2909,454 +2910,304 +2911,389 +2912,461 +2913,333 +2914,415 +2915,303 +2916,96 +2917,463 +2918,314 +2919,401 +2920,106 +2921,436 +2922,416 +2923,121 +2924,313 +2925,245 +2926,157 +2927,190 +2928,170 +2929,230 +2930,257 +2931,240 +2932,499 +2933,150 +2934,490 +2935,89 +2936,346 +2937,223 +2938,154 +2939,261 +2940,191 +2941,344 +2942,139 +2943,392 +2944,287 +2945,489 +2946,313 +2947,440 +2948,468 +2949,414 +2950,180 +2951,301 +2952,119 +2953,104 +2954,84 +2955,195 +2956,380 +2957,252 +2958,414 +2959,488 +2960,72 +2961,67 +2962,441 +2963,199 +2964,334 +2965,320 +2966,357 +2967,301 +2968,451 +2969,193 +2970,186 +2971,228 +2972,183 +2973,315 +2974,110 +2975,125 +2976,152 +2977,283 +2978,350 +2979,202 +2980,412 +2981,80 +2982,473 +2983,432 +2984,243 +2985,333 +2986,246 +2987,312 +2988,470 +2989,94 +2990,73 +2991,491 +2992,409 +2993,169 +2994,172 +2995,90 +2996,4 +2997,402 +2998,338 +2999,38 +3000,265 +3001,319 +3002,185 +3003,397 +3004,203 +3005,245 +3006,492 +3007,172 +3008,307 +3009,401 +3010,13 +3011,80 +3012,2 +3013,172 +3014,77 +3015,465 +3016,196 +3017,132 +3018,377 +3019,436 +3020,42 +3021,399 +3022,464 +3023,239 +3024,185 +3025,310 +3026,488 +3027,123 +3028,91 +3029,215 +3030,150 +3031,327 +3032,171 +3033,183 +3034,421 +3035,43 +3036,235 +3037,28 +3038,221 +3039,212 +3040,122 +3041,84 +3042,55 +3043,97 +3044,165 +3045,244 +3046,246 +3047,495 +3048,112 +3049,217 +3050,362 +3051,424 +3052,154 +3053,474 +3054,498 +3055,339 +3056,190 +3057,202 +3058,289 +3059,208 +3060,195 +3061,262 +3062,188 +3063,50 +3064,393 +3065,82 +3066,484 +3067,361 +3068,56 +3069,309 +3070,349 +3071,478 +3072,219 +3073,367 +3074,294 +3075,329 +3076,172 +3077,66 +3078,389 +3079,33 +3080,235 +3081,313 +3082,195 +3083,134 +3084,483 +3085,165 +3086,267 +3087,345 +3088,180 +3089,202 +3090,145 +3091,8 +3092,228 +3093,304 +3094,477 +3095,400 +3096,49 +3097,150 +3098,304 +3099,109 +3100,106 +3101,49 +3102,294 +3103,107 +3104,474 +3105,359 +3106,276 +3107,63 +3108,9 +3109,189 +3110,95 +3111,144 +3112,163 +3113,248 +3114,309 +3115,94 +3116,35 +3117,349 +3118,49 +3119,417 +3120,429 +3121,417 +3122,64 +3123,137 +3124,425 +3125,156 +3126,350 +3127,428 +3128,394 +3129,41 +3130,325 +3131,431 +3132,258 +3133,380 +3134,396 +3135,452 +3136,287 +3137,454 +3138,324 +3139,423 +3140,35 +3141,107 +3142,341 +3143,63 +3144,283 +3145,371 +3146,212 +3147,449 +3148,43 +3149,40 +3150,148 +3151,174 +3152,79 +3153,357 +3154,210 +3155,413 +3156,62 +3157,436 +3158,109 +3159,273 +3160,183 +3161,352 +3162,396 +3163,44 +3164,481 +3165,201 +3166,324 +3167,186 +3168,27 +3169,387 +3170,35 +3171,35 +3172,425 +3173,153 +3174,437 +3175,376 +3176,220 +3177,282 +3178,401 +3179,89 +3180,201 +3181,358 +3182,149 +3183,23 +3184,96 +3185,221 +3186,331 +3187,300 +3188,325 +3189,270 +3190,495 +3191,132 +3192,197 +3193,331 +3194,342 +3195,391 +3196,446 +3197,321 +3198,57 +3199,350 +3200,400 +3201,500 +3202,108 +3203,211 +3204,339 +3205,460 +3206,72 +3207,179 +3208,351 +3209,71 +3210,150 +3211,17 +3212,466 +3213,436 +3214,458 +3215,332 +3216,61 +3217,440 +3218,324 +3219,321 +3220,337 +3221,485 +3222,187 +3223,216 +3224,291 +3225,425 +3226,312 +3227,44 +3228,172 +3229,359 +3230,398 +3231,44 +3232,152 +3233,287 +3234,103 +3235,347 +3236,96 +3237,408 +3238,107 +3239,246 +3240,175 +3241,497 +3242,449 +3243,134 +3244,204 +3245,453 +3246,225 +3247,266 +3248,23 +3249,84 +3250,83 +3251,186 +3252,437 +3253,144 +3254,296 +3255,248 +3256,240 +3257,1 +3258,228 +3259,24 +3260,9 +3261,280 +3262,155 +3263,127 +3264,359 +3265,493 +3266,177 +3267,253 +3268,163 +3269,258 +3270,182 +3271,54 +3272,146 +3273,80 +3274,147 +3275,44 +3276,197 +3277,250 +3278,254 +3279,213 +3280,65 +3281,301 +3282,348 +3283,268 +3284,495 +3285,259 +3286,174 +3287,212 +3288,112 +3289,423 +3290,409 +3291,208 +3292,303 +3293,472 +3294,248 +3295,398 +3296,199 +3297,165 +3298,288 +3299,172 +3300,61 +3301,483 +3302,455 +3303,41 +3304,13 +3305,6 +3306,318 +3307,370 +3308,470 +3309,440 +3310,343 +3311,428 +3312,167 +3313,391 +3314,456 +3315,495 +3316,151 +3317,261 +3318,188 +3319,132 +3320,267 +3321,244 +3322,255 +3323,91 +3324,227 +3325,147 +3326,450 +3327,7 +3328,416 +3329,490 +3330,448 +3331,322 +3332,338 +3333,137 +3334,199 +3335,481 +3336,472 +3337,386 +3338,198 +3339,390 +3340,371 +3341,302 +3342,14 +3343,99 +3344,252 +3345,296 +3346,337 +3347,129 +3348,131 +3349,248 +3350,194 +3351,342 +3352,245 +3353,392 +3354,175 +3355,440 +3356,241 +3357,132 +3358,314 +3359,239 +3360,159 +3361,119 +3362,296 +3363,54 +3364,289 +3365,36 +3366,410 +3367,62 +3368,491 +3369,1 +3370,106 +3371,352 +3372,167 +3373,80 +3374,343 +3375,205 +3376,316 +3377,137 +3378,276 +3379,349 +3380,45 +3381,402 +3382,372 +3383,396 +3384,375 +3385,496 +3386,132 +3387,126 +3388,182 +3389,13 +3390,200 +3391,174 +3392,269 +3393,491 +3394,210 +3395,249 +3396,354 +3397,496 +3398,232 +3399,160 +3400,499 +3401,136 +3402,252 +3403,42 +3404,183 +3405,403 +3406,206 +3407,35 +3408,458 +3409,173 +3410,120 +3411,327 +3412,49 +3413,10 +3414,313 +3415,332 +3416,164 +3417,370 +3418,156 +3419,120 +3420,209 +3421,474 +3422,380 +3423,376 +3424,156 +3425,413 +3426,405 +3427,324 +3428,388 +3429,393 +3430,287 +3431,106 +3432,49 +3433,287 +3434,31 +3435,432 +3436,304 +3437,133 +3438,72 +3439,408 +3440,287 +3441,67 +3442,373 +3443,400 +3444,442 +3445,217 +3446,456 +3447,101 +3448,262 +3449,154 +3450,61 +3451,485 +3452,274 +3453,258 +3454,261 +3455,490 +3456,96 +3457,74 +3458,405 +3459,331 +3460,9 +3461,451 +3462,217 +3463,62 +3464,426 +3465,444 +3466,282 +3467,488 +3468,215 +3469,265 +3470,408 +3471,5 +3472,404 +3473,64 +3474,487 +3475,114 +3476,311 +3477,162 +3478,311 +3479,63 +3480,347 +3481,296 +3482,414 +3483,311 +3484,38 +3485,413 +3486,409 +3487,257 +3488,374 +3489,308 +3490,290 +3491,414 +3492,31 +3493,310 +3494,37 +3495,449 +3496,89 +3497,109 +3498,167 +3499,494 +3500,227 +3501,288 +3502,318 +3503,456 +3504,26 +3505,440 +3506,276 +3507,28 +3508,377 +3509,174 +3510,188 +3511,475 +3512,410 +3513,340 +3514,299 +3515,401 +3516,18 +3517,93 +3518,30 +3519,464 +3520,389 +3521,186 +3522,441 +3523,493 +3524,110 +3525,121 +3526,367 +3527,166 +3528,303 +3529,17 +3530,303 +3531,341 +3532,252 +3533,25 +3534,121 +3535,391 +3536,363 +3537,377 +3538,256 +3539,19 +3540,212 +3541,115 +3542,265 +3543,424 +3544,376 +3545,6 +3546,183 +3547,371 +3548,244 +3549,63 +3550,298 +3551,322 +3552,19 +3553,64 +3554,70 +3555,450 +3556,254 +3557,283 +3558,423 +3559,301 +3560,16 +3561,177 +3562,241 +3563,8 +3564,150 +3565,489 +3566,246 +3567,156 +3568,261 +3569,14 +3570,156 +3571,409 +3572,374 +3573,116 +3574,465 +3575,472 +3576,268 +3577,160 +3578,434 +3579,349 +3580,8 +3581,460 +3582,114 +3583,296 +3584,214 +3585,246 +3586,84 +3587,410 +3588,452 +3589,103 +3590,34 +3591,356 +3592,360 +3593,448 +3594,98 +3595,129 +3596,473 +3597,79 +3598,85 +3599,116 +3600,73 +3601,371 +3602,50 +3603,303 +3604,107 +3605,4 +3606,324 +3607,437 +3608,128 +3609,142 +3610,412 +3611,358 +3612,69 +3613,233 +3614,66 +3615,404 +3616,483 +3617,434 +3618,236 +3619,211 +3620,54 +3621,464 +3622,352 +3623,29 +3624,295 +3625,119 +3626,129 +3627,142 +3628,291 +3629,478 +3630,95 +3631,389 +3632,418 +3633,111 +3634,43 +3635,53 +3636,62 +3637,172 +3638,343 +3639,321 +3640,231 +3641,193 +3642,72 +3643,122 +3644,311 +3645,374 +3646,129 +3647,105 +3648,229 +3649,485 +3650,107 +3651,178 +3652,193 +3653,235 +3654,347 +3655,187 +3656,22 +3657,485 +3658,417 +3659,427 +3660,310 +3661,113 +3662,268 +3663,34 +3664,304 +3665,48 +3666,179 +3667,56 +3668,235 +3669,145 +3670,423 +3671,260 +3672,283 +3673,281 +3674,414 +3675,229 +3676,73 +3677,491 +3678,182 +3679,224 +3680,270 +3681,227 +3682,265 +3683,318 +3684,497 +3685,376 +3686,160 +3687,426 +3688,142 +3689,324 +3690,47 +3691,272 +3692,417 +3693,62 +3694,271 +3695,449 +3696,96 +3697,220 +3698,48 +3699,164 +3700,374 +3701,383 +3702,254 +3703,269 +3704,433 +3705,25 +3706,259 +3707,187 +3708,152 +3709,465 +3710,362 +3711,211 +3712,296 +3713,86 +3714,468 +3715,404 +3716,177 +3717,174 +3718,129 +3719,439 +3720,250 +3721,381 +3722,79 +3723,362 +3724,4 +3725,168 +3726,80 +3727,28 +3728,481 +3729,41 +3730,167 +3731,203 +3732,174 +3733,149 +3734,50 +3735,357 +3736,24 +3737,140 +3738,470 +3739,98 +3740,487 +3741,242 +3742,20 +3743,133 +3744,293 +3745,421 +3746,104 +3747,207 +3748,488 +3749,84 +3750,40 +3751,228 +3752,249 +3753,139 +3754,339 +3755,210 +3756,459 +3757,212 +3758,452 +3759,74 +3760,472 +3761,474 +3762,466 +3763,149 +3764,195 +3765,60 +3766,11 +3767,130 +3768,215 +3769,441 +3770,140 +3771,182 +3772,455 +3773,427 +3774,21 +3775,337 +3776,320 +3777,291 +3778,497 +3779,498 +3780,289 +3781,474 +3782,323 +3783,268 +3784,286 +3785,98 +3786,175 +3787,426 +3788,137 +3789,473 +3790,370 +3791,138 +3792,295 +3793,426 +3794,452 +3795,257 +3796,96 +3797,355 +3798,98 +3799,61 +3800,177 +3801,232 +3802,210 +3803,398 +3804,405 +3805,432 +3806,51 +3807,25 +3808,28 +3809,109 +3810,325 +3811,475 +3812,157 +3813,468 +3814,411 +3815,46 +3816,223 +3817,244 +3818,95 +3819,142 +3820,125 +3821,279 +3822,401 +3823,47 +3824,1 +3825,284 +3826,479 +3827,91 +3828,360 +3829,183 +3830,266 +3831,489 +3832,177 +3833,307 +3834,194 +3835,225 +3836,195 +3837,326 +3838,50 +3839,341 +3840,450 +3841,216 +3842,86 +3843,263 +3844,80 +3845,364 +3846,85 +3847,190 +3848,356 +3849,132 +3850,460 +3851,266 +3852,108 +3853,61 +3854,383 +3855,18 +3856,118 +3857,113 +3858,107 +3859,114 +3860,497 +3861,383 +3862,287 +3863,85 +3864,138 +3865,234 +3866,203 +3867,151 +3868,232 +3869,394 +3870,221 +3871,328 +3872,77 +3873,183 +3874,27 +3875,481 +3876,152 +3877,335 +3878,468 +3879,349 +3880,367 +3881,350 +3882,176 +3883,338 +3884,141 +3885,221 +3886,434 +3887,480 +3888,360 +3889,165 +3890,495 +3891,409 +3892,71 +3893,6 +3894,367 +3895,110 +3896,161 +3897,497 +3898,117 +3899,406 +3900,97 +3901,90 +3902,298 +3903,211 +3904,342 +3905,383 +3906,259 +3907,408 +3908,303 +3909,418 +3910,394 +3911,307 +3912,168 +3913,17 +3914,318 +3915,344 +3916,387 +3917,231 +3918,110 +3919,126 +3920,10 +3921,162 +3922,389 +3923,75 +3924,333 +3925,469 +3926,292 +3927,10 +3928,13 +3929,198 +3930,122 +3931,298 +3932,133 +3933,146 +3934,24 +3935,4 +3936,471 +3937,67 +3938,108 +3939,143 +3940,373 +3941,23 +3942,377 +3943,333 +3944,480 +3945,269 +3946,275 +3947,328 +3948,413 +3949,328 +3950,494 +3951,254 +3952,91 +3953,444 +3954,258 +3955,489 +3956,258 +3957,226 +3958,401 +3959,191 +3960,432 +3961,341 +3962,296 +3963,146 +3964,219 +3965,431 +3966,401 +3967,439 +3968,327 +3969,240 +3970,474 +3971,119 +3972,229 +3973,123 +3974,142 +3975,171 +3976,203 +3977,71 +3978,332 +3979,28 +3980,246 +3981,2 +3982,274 +3983,473 +3984,443 +3985,444 +3986,96 +3987,95 +3988,362 +3989,479 +3990,402 +3991,68 +3992,100 +3993,156 +3994,251 +3995,110 +3996,247 +3997,171 +3998,25 +3999,366 +4000,149 +4001,28 +4002,205 +4003,147 +4004,395 +4005,346 +4006,239 +4007,30 +4008,480 +4009,235 +4010,80 +4011,385 +4012,118 +4013,173 +4014,467 +4015,8 +4016,95 +4017,266 +4018,165 +4019,11 +4020,267 +4021,114 +4022,17 +4023,409 +4024,278 +4025,132 +4026,76 +4027,486 +4028,257 +4029,32 +4030,238 +4031,302 +4032,329 +4033,242 +4034,281 +4035,229 +4036,267 +4037,11 +4038,312 +4039,399 +4040,201 +4041,332 +4042,415 +4043,348 +4044,339 +4045,430 +4046,307 +4047,78 +4048,217 +4049,345 +4050,322 +4051,185 +4052,294 +4053,387 +4054,326 +4055,173 +4056,308 +4057,123 +4058,262 +4059,68 +4060,383 +4061,87 +4062,404 +4063,252 +4064,220 +4065,289 +4066,18 +4067,179 +4068,486 +4069,146 +4070,491 +4071,124 +4072,300 +4073,495 +4074,169 +4075,489 +4076,184 +4077,334 +4078,168 +4079,174 +4080,433 +4081,363 +4082,375 +4083,33 +4084,77 +4085,355 +4086,16 +4087,412 +4088,190 +4089,400 +4090,222 +4091,467 +4092,325 +4093,496 +4094,27 +4095,266 +4096,73 +4097,126 +4098,322 +4099,386 +4100,283 +4101,367 +4102,329 +4103,279 +4104,161 +4105,57 +4106,423 +4107,452 +4108,410 +4109,200 +4110,208 +4111,235 +4112,449 +4113,320 +4114,355 +4115,361 +4116,155 +4117,60 +4118,483 +4119,19 +4120,324 +4121,210 +4122,256 +4123,210 +4124,400 +4125,474 +4126,172 +4127,488 +4128,329 +4129,203 +4130,46 +4131,266 +4132,363 +4133,140 +4134,201 +4135,140 +4136,176 +4137,22 +4138,49 +4139,304 +4140,407 +4141,212 +4142,240 +4143,108 +4144,495 +4145,86 +4146,161 +4147,262 +4148,435 +4149,42 +4150,143 +4151,2 +4152,187 +4153,72 +4154,402 +4155,271 +4156,220 +4157,288 +4158,400 +4159,206 +4160,366 +4161,46 +4162,444 +4163,358 +4164,195 +4165,37 +4166,235 +4167,248 +4168,142 +4169,203 +4170,143 +4171,177 +4172,160 +4173,396 +4174,203 +4175,485 +4176,272 +4177,317 +4178,153 +4179,375 +4180,256 +4181,50 +4182,342 +4183,385 +4184,416 +4185,39 +4186,360 +4187,211 +4188,403 +4189,9 +4190,247 +4191,443 +4192,237 +4193,485 +4194,371 +4195,324 +4196,267 +4197,178 +4198,424 +4199,172 +4200,457 +4201,236 +4202,116 +4203,90 +4204,228 +4205,482 +4206,389 +4207,82 +4208,11 +4209,325 +4210,415 +4211,66 +4212,23 +4213,498 +4214,308 +4215,275 +4216,221 +4217,178 +4218,332 +4219,261 +4220,387 +4221,380 +4222,44 +4223,367 +4224,164 +4225,258 +4226,483 +4227,122 +4228,366 +4229,386 +4230,456 +4231,305 +4232,477 +4233,219 +4234,410 +4235,119 +4236,25 +4237,296 +4238,313 +4239,135 +4240,432 +4241,179 +4242,185 +4243,173 +4244,81 +4245,226 +4246,294 +4247,444 +4248,8 +4249,14 +4250,121 +4251,404 +4252,457 +4253,166 +4254,150 +4255,254 +4256,134 +4257,490 +4258,217 +4259,269 +4260,317 +4261,465 +4262,19 +4263,293 +4264,100 +4265,423 +4266,33 +4267,377 +4268,33 +4269,130 +4270,478 +4271,44 +4272,374 +4273,120 +4274,325 +4275,298 +4276,289 +4277,217 +4278,396 +4279,37 +4280,271 +4281,472 +4282,110 +4283,158 +4284,161 +4285,96 +4286,442 +4287,402 +4288,24 +4289,195 +4290,27 +4291,496 +4292,404 +4293,245 +4294,4 +4295,313 +4296,13 +4297,79 +4298,336 +4299,438 +4300,114 +4301,314 +4302,192 +4303,16 +4304,257 +4305,261 +4306,397 +4307,370 +4308,36 +4309,473 +4310,255 +4311,20 +4312,279 +4313,294 +4314,397 +4315,57 +4316,349 +4317,95 +4318,470 +4319,111 +4320,240 +4321,21 +4322,330 +4323,336 +4324,3 +4325,456 +4326,254 +4327,155 +4328,380 +4329,9 +4330,319 +4331,153 +4332,78 +4333,267 +4334,244 +4335,251 +4336,332 +4337,329 +4338,476 +4339,383 +4340,55 +4341,240 +4342,153 +4343,355 +4344,279 +4345,228 +4346,303 +4347,123 +4348,165 +4349,312 +4350,483 +4351,353 +4352,491 +4353,9 +4354,463 +4355,217 +4356,262 +4357,24 +4358,295 +4359,56 +4360,267 +4361,29 +4362,362 +4363,196 +4364,306 +4365,488 +4366,363 +4367,287 +4368,317 +4369,41 +4370,200 +4371,486 +4372,428 +4373,43 +4374,9 +4375,285 +4376,18 +4377,450 +4378,413 +4379,121 +4380,162 +4381,338 +4382,6 +4383,269 +4384,6 +4385,16 +4386,168 +4387,499 +4388,213 +4389,157 +4390,374 +4391,147 +4392,217 +4393,65 +4394,489 +4395,198 +4396,204 +4397,135 +4398,314 +4399,181 +4400,47 +4401,95 +4402,203 +4403,473 +4404,42 +4405,39 +4406,372 +4407,72 +4408,185 +4409,154 +4410,94 +4411,341 +4412,434 +4413,341 +4414,268 +4415,241 +4416,379 +4417,135 +4418,293 +4419,373 +4420,279 +4421,321 +4422,274 +4423,164 +4424,288 +4425,108 +4426,475 +4427,461 +4428,362 +4429,461 +4430,422 +4431,50 +4432,235 +4433,332 +4434,81 +4435,194 +4436,80 +4437,111 +4438,283 +4439,140 +4440,157 +4441,91 +4442,488 +4443,194 +4444,466 +4445,8 +4446,288 +4447,238 +4448,285 +4449,293 +4450,403 +4451,164 +4452,498 +4453,45 +4454,361 +4455,270 +4456,90 +4457,108 +4458,132 +4459,16 +4460,114 +4461,378 +4462,123 +4463,358 +4464,285 +4465,436 +4466,314 +4467,47 +4468,456 +4469,80 +4470,294 +4471,50 +4472,339 +4473,14 +4474,214 +4475,486 +4476,39 +4477,217 +4478,87 +4479,200 +4480,236 +4481,183 +4482,231 +4483,416 +4484,459 +4485,39 +4486,351 +4487,426 +4488,125 +4489,444 +4490,348 +4491,324 +4492,169 +4493,218 +4494,375 +4495,16 +4496,357 +4497,419 +4498,475 +4499,36 +4500,320 +4501,204 +4502,48 +4503,120 +4504,118 +4505,176 +4506,327 +4507,353 +4508,3 +4509,164 +4510,495 +4511,454 +4512,377 +4513,470 +4514,162 +4515,150 +4516,19 +4517,237 +4518,276 +4519,454 +4520,150 +4521,324 +4522,385 +4523,333 +4524,355 +4525,18 +4526,359 +4527,19 +4528,185 +4529,89 +4530,415 +4531,178 +4532,35 +4533,430 +4534,212 +4535,372 +4536,339 +4537,14 +4538,303 +4539,246 +4540,68 +4541,324 +4542,61 +4543,393 +4544,481 +4545,108 +4546,68 +4547,475 +4548,483 +4549,19 +4550,14 +4551,46 +4552,406 +4553,130 +4554,403 +4555,296 +4556,340 +4557,405 +4558,236 +4559,187 +4560,407 +4561,401 +4562,448 +4563,129 +4564,202 +4565,248 +4566,405 +4567,76 +4568,426 +4569,293 +4570,165 +4571,200 +4572,225 +4573,283 +4574,264 +4575,125 +4576,30 +4577,149 +4578,290 +4579,180 +4580,386 +4581,183 +4582,381 +4583,466 +4584,251 +4585,51 +4586,412 +4587,364 +4588,133 +4589,463 +4590,144 +4591,426 +4592,424 +4593,294 +4594,351 +4595,52 +4596,271 +4597,19 +4598,120 +4599,244 +4600,173 +4601,140 +4602,20 +4603,441 +4604,487 +4605,113 +4606,465 +4607,228 +4608,85 +4609,90 +4610,228 +4611,222 +4612,48 +4613,421 +4614,375 +4615,127 +4616,498 +4617,215 +4618,34 +4619,335 +4620,91 +4621,282 +4622,7 +4623,105 +4624,3 +4625,188 +4626,373 +4627,486 +4628,240 +4629,244 +4630,370 +4631,241 +4632,130 +4633,94 +4634,393 +4635,54 +4636,453 +4637,173 +4638,222 +4639,324 +4640,140 +4641,8 +4642,3 +4643,423 +4644,129 +4645,148 +4646,128 +4647,93 +4648,58 +4649,414 +4650,198 +4651,475 +4652,445 +4653,157 +4654,438 +4655,145 +4656,362 +4657,353 +4658,248 +4659,282 +4660,5 +4661,358 +4662,416 +4663,183 +4664,122 +4665,33 +4666,327 +4667,10 +4668,10 +4669,382 +4670,321 +4671,262 +4672,21 +4673,229 +4674,33 +4675,171 +4676,333 +4677,184 +4678,123 +4679,188 +4680,487 +4681,299 +4682,204 +4683,130 +4684,16 +4685,3 +4686,296 +4687,99 +4688,252 +4689,219 +4690,399 +4691,3 +4692,167 +4693,164 +4694,372 +4695,388 +4696,374 +4697,220 +4698,90 +4699,125 +4700,337 +4701,261 +4702,32 +4703,378 +4704,399 +4705,328 +4706,189 +4707,61 +4708,77 +4709,321 +4710,463 +4711,471 +4712,104 +4713,135 +4714,118 +4715,123 +4716,236 +4717,494 +4718,270 +4719,469 +4720,241 +4721,211 +4722,197 +4723,419 +4724,6 +4725,321 +4726,334 +4727,44 +4728,394 +4729,116 +4730,416 +4731,366 +4732,184 +4733,494 +4734,211 +4735,4 +4736,291 +4737,219 +4738,7 +4739,358 +4740,123 +4741,346 +4742,63 +4743,10 +4744,215 +4745,466 +4746,469 +4747,396 +4748,194 +4749,141 +4750,279 +4751,195 +4752,326 +4753,417 +4754,462 +4755,140 +4756,264 +4757,393 +4758,183 +4759,291 +4760,347 +4761,309 +4762,481 +4763,12 +4764,91 +4765,455 +4766,282 +4767,182 +4768,19 +4769,408 +4770,244 +4771,183 +4772,386 +4773,235 +4774,191 +4775,440 +4776,354 +4777,266 +4778,478 +4779,112 +4780,147 +4781,336 +4782,328 +4783,409 +4784,351 +4785,132 +4786,238 +4787,452 +4788,299 +4789,190 +4790,297 +4791,7 +4792,261 +4793,189 +4794,92 +4795,241 +4796,154 +4797,15 +4798,344 +4799,423 +4800,263 +4801,185 +4802,55 +4803,254 +4804,31 +4805,203 +4806,130 +4807,101 +4808,343 +4809,359 +4810,65 +4811,405 +4812,134 +4813,413 +4814,134 +4815,357 +4816,327 +4817,175 +4818,60 +4819,80 +4820,343 +4821,351 +4822,397 +4823,368 +4824,400 +4825,17 +4826,102 +4827,149 +4828,364 +4829,405 +4830,110 +4831,302 +4832,124 +4833,400 +4834,225 +4835,154 +4836,175 +4837,300 +4838,125 +4839,272 +4840,83 +4841,436 +4842,439 +4843,226 +4844,363 +4845,33 +4846,352 +4847,251 +4848,160 +4849,158 +4850,85 +4851,494 +4852,247 +4853,281 +4854,411 +4855,218 +4856,148 +4857,412 +4858,25 +4859,373 +4860,97 +4861,283 +4862,210 +4863,209 +4864,192 +4865,403 +4866,244 +4867,328 +4868,161 +4869,189 +4870,12 +4871,477 +4872,198 +4873,191 +4874,334 +4875,314 +4876,155 +4877,492 +4878,56 +4879,165 +4880,137 +4881,415 +4882,12 +4883,321 +4884,312 +4885,87 +4886,396 +4887,342 +4888,242 +4889,273 +4890,326 +4891,207 +4892,352 +4893,269 +4894,475 +4895,66 +4896,143 +4897,163 +4898,285 +4899,127 +4900,56 +4901,277 +4902,403 +4903,478 +4904,125 +4905,346 +4906,56 +4907,13 +4908,40 +4909,210 +4910,372 +4911,238 +4912,158 +4913,185 +4914,396 +4915,29 +4916,42 +4917,35 +4918,185 +4919,498 +4920,410 +4921,79 +4922,75 +4923,70 +4924,144 +4925,451 +4926,220 +4927,153 +4928,172 +4929,234 +4930,322 +4931,88 +4932,142 +4933,433 +4934,437 +4935,80 +4936,487 +4937,320 +4938,140 +4939,104 +4940,344 +4941,168 +4942,81 +4943,443 +4944,369 +4945,27 +4946,412 +4947,336 +4948,154 +4949,354 +4950,412 +4951,318 +4952,206 +4953,20 +4954,392 +4955,237 +4956,491 +4957,226 +4958,245 +4959,449 +4960,388 +4961,426 +4962,341 +4963,398 +4964,207 +4965,461 +4966,320 +4967,223 +4968,305 +4969,204 +4970,218 +4971,419 +4972,299 +4973,337 +4974,438 +4975,19 +4976,219 +4977,377 +4978,148 +4979,188 +4980,463 +4981,280 +4982,493 +4983,67 +4984,156 +4985,69 +4986,324 +4987,377 +4988,289 +4989,341 +4990,25 +4991,386 +4992,250 +4993,395 +4994,262 +4995,70 +4996,14 +4997,366 +4998,420 +4999,153 +5000,464 diff --git a/test/static/executor/test_data/regions.csv b/test/static/executor/test_data/regions.csv new file mode 100644 index 0000000..b9bdb04 --- /dev/null +++ b/test/static/executor/test_data/regions.csv @@ -0,0 +1,11 @@ +id:int +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 From 0e99fd9911667d3c668db5a7c377d49cdd18ff6e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 25 May 2026 04:16:41 +0300 Subject: [PATCH 050/120] wip: hash join support, needs review --- benchmarks/main.cpp | 6 +- .../stewkk/sql/logic/executor/executor.hpp | 2 + .../implement_hash_join.hpp | 13 ++ .../sql/logic/optimizer/physical_expr.hpp | 11 +- include/stewkk/sql/logic/optimizer/rules.hpp | 3 +- src/stewkk/sql/CMakeLists.txt | 1 + src/stewkk/sql/logic/executor/executor.cpp | 119 +++++++++++++++++- .../implement_hash_join.cpp | 33 +++++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 42 +++++-- .../sql/logic/optimizer/optimizer_test.cpp | 16 +-- .../sql/logic/optimizer/reachability.cpp | 22 +++- src/stewkk/sql/logic/optimizer/rules.cpp | 3 +- .../sql/logic/optimizer/rules_applier.cpp | 2 +- 13 files changed, 246 insertions(+), 27 deletions(-) create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 8a5ed45..101b6fc 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -158,10 +158,8 @@ REGISTER_BM_SQL(kComplex2000) REGISTER_BM_SQL(kComplex4000) REGISTER_BM_SQL(kComplex8000) REGISTER_BM_SQL(kComplex16000) -// FIXME: Optimizer search does not terminate within minutes on 3-way joins. -// Re-enable once that perf bug is fixed; see kMultiwayOCR/kMultiwayROC. -// REGISTER_BM_SQL(kMultiwayOCR) -// REGISTER_BM_SQL(kMultiwayROC) +REGISTER_BM_SQL(kMultiwayOCR) +REGISTER_BM_SQL(kMultiwayROC) template void BM_SQL_Multithreaded(benchmark::State& state) { diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 94a2d79..2361967 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -63,6 +63,8 @@ class Executor { TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteJoin(const NestedLoopJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteHashJoin(const HashJoin& join, AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); boost::asio::experimental::promise SpawnExecutor( boost::asio::any_io_executor exec, const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); diff --git a/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp new file mode 100644 index 0000000..f2a11a3 --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementHashJoin : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 6c4ebd7..4c6c43e 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -50,6 +50,15 @@ struct NestedLoopCrossJoin { bool operator==(const NestedLoopCrossJoin&) const = default; }; +struct HashJoin { + utils::NotNull lhs; + utils::NotNull rhs; + JoinType type; + Expression qual; + + bool operator==(const HashJoin&) const = default; +}; + struct Sort { utils::NotNull input; SortOrder keys; @@ -62,7 +71,7 @@ struct Sort { struct PhysicalExpr { std::variant root_operator; + physical::HashJoin, physical::Sort> root_operator; utils::NotNull group; bool is_enforcer = false; }; diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index a4b3174..f7ecb12 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -11,6 +11,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -20,6 +21,6 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<2, 5> MakeMainRules(); +Rules<2, 6> MakeMainRules(); } // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index daeda1c..e74be8b 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -45,6 +45,7 @@ add_library(libsql logic/implementation_rules/implement_projection.cpp logic/implementation_rules/implement_join.cpp logic/implementation_rules/implement_cross_join.cpp + logic/implementation_rules/implement_hash_join.cpp logic/optimizer/properties/sort_order.cpp logic/optimizer/properties/sort_property.cpp logic/optimizer/properties/property_set.cpp diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 0135416..acc02b8 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -436,8 +437,8 @@ boost::asio::awaitable Executor::Execute(const Physica co_await executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); co_return; } - boost::asio::awaitable operator()(const HashJoin&) { - throw std::runtime_error("HashJoin execution not implemented"); + boost::asio::awaitable operator()(const HashJoin& join) { + co_await executor.ExecuteHashJoin(join, attr_chan, tuples_chan); co_return; } boost::asio::awaitable operator()(const MergeJoin&) { @@ -743,6 +744,120 @@ boost::asio::awaitable Executor::ExecuteJoin(const Nes tuples_chan.close(); } +namespace { + +size_t FindAttrIndex(const AttributesInfo& attrs, const Attribute& a) { + auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& ai) { + return ai.table == a.table && ai.name == a.name; + }); + if (it == attrs.end()) { + throw std::runtime_error{"hash join key attribute not found: " + a.table + "." + a.name}; + } + return static_cast(it - attrs.begin()); +} + +} // namespace + +// Inner equi-join: build a hash table on lhs.key, then probe with rhs. +// ImplementHashJoin gates applicability to `attr = attr` quals on Inner joins, +// so the only shapes that reach here are: lhs_attr == rhs_attr or rhs_attr == +// lhs_attr. We resolve which side owns each attribute via the lhs attribute +// stream; the remaining one must belong to rhs. +template +boost::asio::awaitable Executor::ExecuteHashJoin( + const HashJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + Log("Executing hash join"); + if (join.type != JoinType::kInner) { + throw std::logic_error{"HashJoin executor supports only Inner joins"}; + } + const auto* bin = std::get_if(&join.qual); + if (!bin || bin->binop != BinaryOp::kEq) { + throw std::logic_error{"HashJoin qual must be an equality"}; + } + const auto* a = std::get_if(bin->lhs.get()); + const auto* b = std::get_if(bin->rhs.get()); + if (!a || !b) { + throw std::logic_error{"HashJoin qual must be `attr = attr`"}; + } + + auto exec = co_await boost::asio::this_coro::executor; + auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); + auto lhs_task = SpawnExecutor(exec, *join.lhs, lhs_attrs_chan, lhs_tuples_chan); + auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); + auto rhs_task = SpawnExecutor(exec, *join.rhs, rhs_attrs_chan, rhs_tuples_chan); + + auto lhs_attrs = co_await lhs_attrs_chan.async_receive(boost::asio::use_awaitable); + auto rhs_attrs = co_await rhs_attrs_chan.async_receive(boost::asio::use_awaitable); + + // Pick the (lhs_key, rhs_key) pair regardless of which side the qual wrote first. + auto lhs_has = [&](const Attribute& attr) { + return std::any_of(lhs_attrs.begin(), lhs_attrs.end(), [&](const AttributeInfo& ai) { + return ai.table == attr.table && ai.name == attr.name; + }); + }; + const Attribute* lhs_attr = nullptr; + const Attribute* rhs_attr = nullptr; + if (lhs_has(*a)) { lhs_attr = a; rhs_attr = b; } + else if (lhs_has(*b)) { lhs_attr = b; rhs_attr = a; } + else { + throw std::runtime_error{"HashJoin qual: neither side of equality found in lhs attrs"}; + } + + size_t lhs_key_idx = FindAttrIndex(lhs_attrs, *lhs_attr); + size_t rhs_key_idx = FindAttrIndex(rhs_attrs, *rhs_attr); + + AttributesInfo out_attrs = lhs_attrs; + std::ranges::copy(rhs_attrs, std::back_inserter(out_attrs)); + co_await attr_chan.async_send(boost::system::error_code{}, out_attrs, + boost::asio::use_awaitable); + attr_chan.close(); + + // Build phase: collect all lhs tuples into a hash multimap keyed by lhs.key. + // NULL keys never match (SQL = on NULL is unknown), so drop them. + std::unordered_multimap build; + for (;;) { + auto buf = co_await ReceiveTuples(lhs_tuples_chan); + if (buf.empty()) break; + Log("HashJoin build received {} tuples", buf.size()); + for (auto& t : buf) { + const Value& k = t[lhs_key_idx]; + if (k.is_null) continue; + build.emplace(k.value.int_value, std::move(t)); + } + } + Log("HashJoin build phase done; {} entries", build.size()); + + // Probe phase: stream rhs, lookup matches, emit joined tuples in kBufSize chunks. + Tuples out_buf; + out_buf.reserve(kBufSize); + for (;;) { + auto buf = co_await ReceiveTuples(rhs_tuples_chan); + if (buf.empty()) break; + Log("HashJoin probe received {} tuples", buf.size()); + for (const auto& rt : buf) { + const Value& k = rt[rhs_key_idx]; + if (k.is_null) continue; + auto range = build.equal_range(k.value.int_value); + for (auto it = range.first; it != range.second; ++it) { + out_buf.push_back(ConcatTuples(it->second, rt)); + if (out_buf.size() == kBufSize) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + out_buf.clear(); + out_buf.reserve(kBufSize); + } + } + } + } + if (!out_buf.empty()) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + } + co_await lhs_task(boost::asio::use_awaitable); + co_await rhs_task(boost::asio::use_awaitable); + tuples_chan.close(); +} + template boost::asio::experimental::promise Executor::SpawnExecutor(boost::asio::any_io_executor exec, diff --git a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp new file mode 100644 index 0000000..a207506 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp @@ -0,0 +1,33 @@ +#include + +namespace stewkk::sql { + +namespace { + +// HashJoin currently handles only `attr_l = attr_r` quals on Inner joins. +// Outer-join semantics need a "right-side matched" bitmap during probe; not +// implemented yet. Composite/expression keys would require key extraction +// from arbitrary Expression nodes, also not done. +bool IsSimpleEquiJoin(const Expression& qual) { + const auto* bin = std::get_if(&qual); + if (!bin || bin->binop != BinaryOp::kEq) return false; + return std::holds_alternative(*bin->lhs) + && std::holds_alternative(*bin->rhs); +} + +} // namespace + +bool ImplementHashJoin::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& join = std::get(expr->root_operator); + if (join.type != JoinType::kInner) return false; + return IsSimpleEquiJoin(join.qual); +} + +utils::NotNull ImplementHashJoin::Apply(utils::NotNull expr, Memo&) { + auto& join = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr( + physical::HashJoin{join.lhs, join.rhs, join.type, join.qual}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index a4f739d..380257b 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -37,6 +37,12 @@ PropertySet RequiredInputProps(utils::NotNull expr, [&](const physical::NestedLoopCrossJoin&) -> PropertySet { return child_index == 0 ? required : PropertySet::Any(); }, + [&](const physical::HashJoin&) -> PropertySet { + // HashJoin reorders output (hash-partitioned scan of build side, then + // probe-driven emit). It does not preserve any input sort order, so + // never ask children to satisfy `required`. + return PropertySet::Any(); + }, [&](const physical::Sort&) { return PropertySet::Any(); }, }, expr->root_operator); } @@ -52,6 +58,7 @@ PropertySet DeriveOutputProps(utils::NotNull expr, [&](const physical::Projection&) { return child_delivered[0]; }, [&](const physical::NestedLoopJoin&) { return child_delivered[0]; }, [&](const physical::NestedLoopCrossJoin&) { return child_delivered[0]; }, + [&](const physical::HashJoin&) { return PropertySet::Any(); }, [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, }, expr->root_operator); } @@ -77,9 +84,12 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima return p_l * (1 + p_r); }, [&](const logical::Join& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); + // Must stay ≤ every physical impl. NLJ ~ n_l*n_r, HJ ~ n_l+n_r + // (equi only). When either side has 1 tuple, NLJ can beat HJ, so + // take the min so the bound is safe for both alternatives. + auto n_l = cardinality.GetCardinality(j.lhs); + auto n_r = cardinality.GetCardinality(j.rhs); + return std::min(n_l + n_r, n_l * n_r); }, }, expr->root_operator); } @@ -96,15 +106,20 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi return cardinality.GetCardinality(expr->group); }, [&](const physical::NestedLoopJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); + // Per-tuple work: each rhs tuple compared against every lhs tuple. + auto n_l = cardinality.GetCardinality(j.lhs); + auto n_r = cardinality.GetCardinality(j.rhs); + return n_l * n_r; }, [&](const physical::NestedLoopCrossJoin& j) -> int64_t { auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; return p_l * (1 + p_r); }, + [&](const physical::HashJoin& j) -> int64_t { + // Build hash on lhs (n_l inserts), probe with rhs (n_r O(1) lookups). + return cardinality.GetCardinality(j.lhs) + cardinality.GetCardinality(j.rhs); + }, [&](const physical::Sort& s) -> int64_t { auto n = cardinality.GetCardinality(s.input); return n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n; @@ -151,6 +166,9 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::NestedLoopCrossJoin& j) -> std::vector> { return {j.lhs, j.rhs}; }, + [](const physical::HashJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, [](const physical::Sort& s) -> std::vector> { return {s.input}; }, @@ -416,6 +434,16 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), }; }, + [this, best_expr_nn, required](const physical::HashJoin& op) -> PhysicalPlanNode { + return HashJoin{ + .lhs = std::make_shared( + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0))), + .rhs = std::make_shared( + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), + .type = op.type, + .qual = op.qual, + }; + }, [this, best_expr_nn, required](const physical::Sort& op) -> PhysicalPlanNode { return PhysicalSort{ .source = std::make_shared( @@ -455,6 +483,6 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<2, 5>; +template class Optimizer<2, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 6381a6c..01c40fa 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -41,7 +41,7 @@ TEST(OptimizerTest, JoinCommutativity) { auto got = optimizer.Optimize(); - ASSERT_THAT(Serialize(got), Eq("(NestedLoopJoin Inner (= (attr users id) (attr orders user_id)) (SeqScan orders) (SeqScan users))")); + ASSERT_THAT(Serialize(got), Eq("(HashJoin Inner (= (attr users id) (attr orders user_id)) (SeqScan orders) (SeqScan users))")); } TEST(OptimizerTest, MultiwayJoinOCR) { @@ -61,9 +61,9 @@ TEST(OptimizerTest, MultiwayJoinOCR) { ASSERT_THAT( Serialize(got), Eq("(PhysicalProjection (exprs (attr orders id) (attr customers id) (attr regions id))" - " (NestedLoopJoin Inner (= (attr customers region_id) (attr regions id))" - " (NestedLoopJoin Inner (= (attr orders customer_id) (attr customers id))" - " (SeqScan customers) (SeqScan orders)) (SeqScan regions)))")); + " (HashJoin Inner (= (attr orders customer_id) (attr customers id))" + " (SeqScan orders) (HashJoin Inner (= (attr customers region_id) (attr regions id))" + " (SeqScan regions) (SeqScan customers))))")); } TEST(OptimizerTest, MultiwayJoinROC) { @@ -83,8 +83,8 @@ TEST(OptimizerTest, MultiwayJoinROC) { ASSERT_THAT( Serialize(got), Eq("(PhysicalProjection (exprs (attr orders id) (attr customers id) (attr regions id))" - " (NestedLoopJoin Inner (= (attr orders customer_id) (attr customers id))" - " (NestedLoopJoin Inner (= (attr customers region_id) (attr regions id))" + " (HashJoin Inner (= (attr orders customer_id) (attr customers id))" + " (HashJoin Inner (= (attr customers region_id) (attr regions id))" " (SeqScan customers) (SeqScan regions)) (SeqScan orders)))")); } @@ -151,7 +151,7 @@ TEST(ReachabilityTest, BothJoinOrdersReachable) { ASSERT_THAT(suboptimal.reachable, IsTrue()); } -TEST(ReachabilityTest, HashJoinNotReachable) { +TEST(ReachabilityTest, HashJoinReachable) { std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; Expression qual = BinaryExpression{ std::make_shared(Attribute{"users", "id"}), @@ -161,7 +161,7 @@ TEST(ReachabilityTest, HashJoinNotReachable) { std::make_shared(SeqScan{"orders"}), std::make_shared(SeqScan{"users"}), JoinType::kInner, qual}); - ASSERT_THAT(result.reachable, IsFalse()); + ASSERT_THAT(result.reachable, IsTrue()); } TEST(ReachabilityTest, WrongJoinQual) { diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 12ce20c..8f8101a 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -52,11 +52,14 @@ InternalMatch TryMatchExpr(utils::NotNull pe, }, [&](const physical::NestedLoopJoin& op) -> InternalMatch { const auto* t = std::get_if(&target); + // depth+1 once the operator type matches: a same-type partial + // mismatch is more informative than a foreign-type rejection, so + // it should outrank type-mismatch reports for the same group. if (!t) return {false, depth, "type mismatch: expected NestedLoopJoin"}; if (op.type != t->type) - return {false, depth, "NestedLoopJoin join type mismatch"}; + return {false, depth + 1, "NestedLoopJoin join type mismatch"}; if (op.qual != t->qual) - return {false, depth, + return {false, depth + 1, std::format("NestedLoopJoin qual '{}' != '{}'", ToString(op.qual), ToString(t->qual))}; auto lhs = MatchGroup(op.lhs.get(), *t->lhs, depth + 1); @@ -74,6 +77,21 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!rhs.ok) { rhs.reason = "NestedLoopCrossJoin.rhs: " + rhs.reason; return rhs; } return {true, std::max(lhs.depth, rhs.depth), {}}; }, + [&](const physical::HashJoin& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected HashJoin"}; + if (op.type != t->type) + return {false, depth + 1, "HashJoin join type mismatch"}; + if (op.qual != t->qual) + return {false, depth + 1, + std::format("HashJoin qual '{}' != '{}'", + ToString(op.qual), ToString(t->qual))}; + auto lhs = MatchGroup(op.lhs.get(), *t->lhs, depth + 1); + if (!lhs.ok) { lhs.reason = "HashJoin.lhs: " + lhs.reason; return lhs; } + auto rhs = MatchGroup(op.rhs.get(), *t->rhs, depth + 1); + if (!rhs.ok) { rhs.reason = "HashJoin.rhs: " + rhs.reason; return rhs; } + return {true, std::max(lhs.depth, rhs.depth), {}}; + }, [&](const physical::Sort& op) -> InternalMatch { const auto* t = std::get_if(&target); if (!t) return {false, depth, "type mismatch: expected Sort"}; diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index c0ace93..29606eb 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -2,7 +2,7 @@ namespace stewkk::sql { -Rules<2, 5> MakeMainRules() { +Rules<2, 6> MakeMainRules() { return { .transformation_rules = { std::make_unique(), @@ -14,6 +14,7 @@ Rules<2, 5> MakeMainRules() { std::make_unique(), std::make_unique(), std::make_unique(), + std::make_unique(), }, }; } diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 469a96c..44f864f 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -31,6 +31,6 @@ utils::NotNull RulesApplier::Ap } template class RulesApplier<2, 0>; -template class RulesApplier<2, 5>; +template class RulesApplier<2, 6>; } // namespace stewkk::sql From 0ed62903918b32b8551c69d9e12a87ab7f3b8ae2 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 27 May 2026 03:26:44 +0300 Subject: [PATCH 051/120] Impl fuzzing, fix bugs --- cmake/FetchBoost.cmake | 2 +- .../stewkk/sql/models/parser/expression.hpp | 1 + research/fuzz/__init__.py | 0 research/fuzz/diff_fuzz.py | 158 +++++++++++ research/fuzz/mssql_runner.py | 130 +++++++++ src/stewkk/sql/CMakeLists.txt | 4 + src/stewkk/sql/logic/executor/executor.cpp | 150 ++++++++-- src/stewkk/sql/logic/executor/llvm.cpp | 28 +- .../sql/logic/executor/plan_serializer.cpp | 3 +- src/stewkk/sql/logic/parser/visitor.cpp | 148 ++++++---- .../join_commutativity.cpp | 5 + src/stewkk/sql/main.cpp | 265 +++++++++++++++++- src/stewkk/sql/models/parser/expression.cpp | 2 + 13 files changed, 807 insertions(+), 89 deletions(-) create mode 100644 research/fuzz/__init__.py create mode 100644 research/fuzz/diff_fuzz.py create mode 100644 research/fuzz/mssql_runner.py diff --git a/cmake/FetchBoost.cmake b/cmake/FetchBoost.cmake index 359c609..0d6274c 100644 --- a/cmake/FetchBoost.cmake +++ b/cmake/FetchBoost.cmake @@ -9,6 +9,6 @@ FetchContent_Declare( OVERRIDE_FIND_PACKAGE ) -set(BOOST_INCLUDE_LIBRARIES asio thread filesystem) +set(BOOST_INCLUDE_LIBRARIES asio thread filesystem scope) FetchContent_MakeAvailable(Boost) diff --git a/include/stewkk/sql/models/parser/expression.hpp b/include/stewkk/sql/models/parser/expression.hpp index 21006f9..e6e2763 100644 --- a/include/stewkk/sql/models/parser/expression.hpp +++ b/include/stewkk/sql/models/parser/expression.hpp @@ -49,6 +49,7 @@ std::string ToString(BinaryOp binop); enum class UnaryOp { kNot, kMinus, + kIsNull, }; std::string ToString(UnaryOp op); diff --git a/research/fuzz/__init__.py b/research/fuzz/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/research/fuzz/diff_fuzz.py b/research/fuzz/diff_fuzz.py new file mode 100644 index 0000000..622e2ed --- /dev/null +++ b/research/fuzz/diff_fuzz.py @@ -0,0 +1,158 @@ +""" +Differential fuzzer: generate a random SQL query, run it through our compiler +and MS SQL Server, stop on the first observable divergence. + +Compares result rows as multisets of tab-separated strings. Column names are +ignored (the two engines disagree on naming conventions), but column count +must match. + +Usage: + python -m research.fuzz.diff_fuzz \\ + --cli build/bin/sql \\ + --data-dir test/static/executor/test_data \\ + [--start-seed 0] +""" +from __future__ import annotations + +import argparse +import random +import subprocess +import sys +from itertools import count +from pathlib import Path + +from research.fuzz.mssql_runner import MsSqlRunner, RunResult +from research.query_generator import ( + DIALECTS, + QueryGenerator, + SelectQuery, + load_schema, + render_query, +) + + +def _value_to_canonical(v) -> str: + if v is None: + return "NULL" + if isinstance(v, bool): + return "1" if v else "0" + return str(v) + + +def _mssql_canonical_rows(res: RunResult) -> list[str]: + return ["\t".join(_value_to_canonical(v) for v in row) for row in res.rows] + + +def _ours_canonical_rows(stdout: str) -> tuple[int, list[str]]: + """Parse the CLI's output. Returns (column_count, row_strings).""" + lines = stdout.splitlines() + if not lines: + return 0, [] + header = lines[0] + col_count = len(header.split("\t")) + return col_count, lines[1:] + + +def _run_ours(cli: str, data_dir: str, query: str, jit: bool) -> subprocess.CompletedProcess: + cmd = [cli, "--data-dir", data_dir] + if jit: + cmd.append("--jit") + return subprocess.run( + cmd, + input=query, + capture_output=True, + text=True, + timeout=30, + ) + + +def _compare( + query: SelectQuery, + ours_proc: subprocess.CompletedProcess, + theirs: RunResult, +) -> str | None: + """Returns a diagnostic string on divergence, None on match.""" + if ours_proc.returncode != 0: + return f"our CLI exited {ours_proc.returncode}\nstderr: {ours_proc.stderr.strip()}" + if theirs.error is not None: + return f"MS SQL rejected the query: {theirs.error}" + + our_cols, our_rows = _ours_canonical_rows(ours_proc.stdout) + their_rows = _mssql_canonical_rows(theirs) + their_cols = len(theirs.columns) + + if our_cols != their_cols: + return f"column count: ours={our_cols} theirs={their_cols}" + + # Generator does not emit ORDER BY, so always compare as multisets. + if sorted(our_rows) != sorted(their_rows): + return "row contents differ" + + return None + + +def main() -> None: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--cli", required=True, help="Path to our sql binary") + ap.add_argument("--data-dir", required=True, help="CSV table directory") + ap.add_argument("--start-seed", type=int, default=0) + ap.add_argument("--jit", action="store_true", help="Run our CLI with the JIT executor") + ap.add_argument("--mssql-host", default="localhost") + ap.add_argument("--mssql-port", type=int, default=1433) + ap.add_argument("--mssql-user", default="sa") + ap.add_argument("--mssql-password", default="Password123!") + ap.add_argument("--mssql-database", default="fuzz") + args = ap.parse_args() + + schema = load_schema(Path(args.data_dir)) + + mssql = MsSqlRunner( + host=args.mssql_host, + port=args.mssql_port, + user=args.mssql_user, + password=args.mssql_password, + database=args.mssql_database, + ) + print("Setting up MS SQL schema...", flush=True) + mssql.setup_schema(args.data_dir) + print("Schema ready. Starting fuzz loop.\n", flush=True) + + pg = DIALECTS["pg"] + ms = DIALECTS["mssql"] + + for seed in count(args.start_seed): + rng = random.Random(seed) + query = QueryGenerator(schema, rng).generate() + ours_sql = render_query(query, pg) + ";" + theirs_sql = render_query(query, ms) + ";" + + try: + ours_proc = _run_ours(args.cli, args.data_dir, ours_sql, args.jit) + except subprocess.TimeoutExpired: + print(f"DIVERGENCE seed={seed}: our CLI timed out\n--- query (ours):\n{ours_sql}") + sys.exit(1) + + theirs = mssql.run(theirs_sql) + + diag = _compare(query, ours_proc, theirs) + if diag is not None: + print(f"DIVERGENCE seed={seed}: {diag}") + print(f"\n--- query (ours):\n{ours_sql}") + print(f"\n--- query (mssql):\n{theirs_sql}") + print(f"\n--- ours stdout:\n{ours_proc.stdout}", end="") + if ours_proc.stderr: + print(f"\n--- ours stderr:\n{ours_proc.stderr}", end="") + print(f"\n--- mssql columns: {theirs.columns}") + print(f"--- mssql rows ({len(theirs.rows)}):") + for r in theirs.rows[:50]: + print(r) + if len(theirs.rows) > 50: + print(f"... ({len(theirs.rows) - 50} more)") + sys.exit(1) + + if seed % 25 == 0: + print(f"seed={seed} ok", flush=True) + + +if __name__ == "__main__": + main() diff --git a/research/fuzz/mssql_runner.py b/research/fuzz/mssql_runner.py new file mode 100644 index 0000000..2211da6 --- /dev/null +++ b/research/fuzz/mssql_runner.py @@ -0,0 +1,130 @@ +""" +Run queries against MS SQL Server for the differential fuzzer. + +Responsibilities: + - setup_schema(data_dir): drop+recreate the fuzzer schema, mirror every + *.csv in data_dir as a `dbo.
(... INT NULL)` table, and bulk-load + rows. + - run(query): execute one SELECT and return columns/rows or a structured + error. + +The connection is reused across calls so the fuzz loop pays one TCP/login cost +per session, not per query. +""" +from __future__ import annotations + +import csv +import re +from dataclasses import dataclass +from pathlib import Path + +import pymssql + + +_BENCH_RE = re.compile(r"_\d+$") + + +@dataclass +class RunResult: + columns: list[str] # column names in projection order + rows: list[tuple] # values as returned by the driver + error: str | None = None # set when execution failed; columns/rows empty + + +class MsSqlRunner: + def __init__( + self, + host: str = "localhost", + port: int = 1433, + user: str = "sa", + password: str = "Password123!", + database: str = "fuzz", + ): + self._host = host + self._port = port + self._user = user + self._password = password + self._database = database + self._conn = None # opened lazily after the database exists + + def _connect(self, database: str): + return pymssql.connect( + server=self._host, + port=str(self._port), + user=self._user, + password=self._password, + database=database, + autocommit=True, + ) + + def _ensure_database(self) -> None: + with self._connect("master") as conn: + cur = conn.cursor() + cur.execute("SELECT COUNT(*) FROM sys.databases WHERE name=%s", (self._database,)) + if cur.fetchone()[0] == 0: + cur.execute(f"CREATE DATABASE [{self._database}]") + + def setup_schema(self, data_dir: str | Path) -> None: + """ + Drop everything under dbo and recreate one INT-NULL table per *.csv + in data_dir (skipping the benchmark-only ``_`` siblings — they + share the base table's schema). + """ + data_dir = Path(data_dir) + self._ensure_database() + self._conn = self._connect(self._database) + cur = self._conn.cursor() + + # Drop everything we own so reruns are idempotent. + cur.execute(""" + DECLARE @sql NVARCHAR(MAX) = N''; + SELECT @sql += 'DROP TABLE [dbo].[' + t.name + ']; ' + FROM sys.tables t + JOIN sys.schemas s ON s.schema_id = t.schema_id + WHERE s.name = 'dbo'; + EXEC sp_executesql @sql; + """) + + for path in sorted(data_dir.glob("*.csv")): + if _BENCH_RE.search(path.stem): + continue + self._create_and_load(cur, path) + + def _create_and_load(self, cur, path: Path) -> None: + with path.open() as f: + reader = csv.reader(f) + header = next(reader) + cols = [] + for h in header: + name, type_ = (s.strip() for s in h.split(":")) + if type_ != "int": + raise ValueError(f"{path}: unsupported column type {type_!r}") + cols.append(name) + rows = [tuple(None if v.strip() == "NULL" else int(v) for v in r) for r in reader] + + col_defs = ", ".join(f"[{c}] INT NULL" for c in cols) + cur.execute(f"CREATE TABLE [dbo].[{path.stem}] ({col_defs})") + + if rows: + placeholders = ", ".join(["%s"] * len(cols)) + cur.executemany( + f"INSERT INTO [dbo].[{path.stem}] VALUES ({placeholders})", + rows, + ) + + def run(self, query: str) -> RunResult: + if self._conn is None: + self._conn = self._connect(self._database) + cur = self._conn.cursor() + try: + cur.execute(query) + rows = cur.fetchall() + columns = [d[0] for d in cur.description] if cur.description else [] + return RunResult(columns=columns, rows=rows) + except pymssql.Error as e: + return RunResult(columns=[], rows=[], error=str(e)) + + def close(self) -> None: + if self._conn is not None: + self._conn.close() + self._conn = None diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index e74be8b..7c1e315 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -81,6 +81,7 @@ target_link_libraries(libsql PRIVATE Boost::asio Boost::thread Boost::filesystem + Boost::scope ) add_executable(sql @@ -95,4 +96,7 @@ set_target_properties(sql PROPERTIES target_compile_options(sql PRIVATE ${BASE_COMPILE_FLAGS}) target_link_libraries(sql PRIVATE libsql + Boost::asio + Boost::thread + Boost::filesystem ) diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index acc02b8..168072e 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -67,6 +68,9 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a } return Type::kInt; } + if (unop.op == UnaryOp::kIsNull) { + return Type::kBool; + } if (child_type != Type::kBool) { throw std::logic_error{"types mismatch"}; } @@ -203,10 +207,20 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); } return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); - case BinaryOp::kOr: - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - case BinaryOp::kAnd: - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); + case BinaryOp::kOr: { + bool lhs_true = !lhs.is_null && lhs.value.bool_value; + bool rhs_true = !rhs.is_null && rhs.value.bool_value; + if (lhs_true || rhs_true) return Value{false, true}; + if (lhs.is_null || rhs.is_null) return Value{true}; + return Value{false, false}; + } + case BinaryOp::kAnd: { + bool lhs_false = !lhs.is_null && !lhs.value.bool_value; + bool rhs_false = !rhs.is_null && !rhs.value.bool_value; + if (lhs_false || rhs_false) return Value{false, false}; + if (lhs.is_null || rhs.is_null) return Value{true}; + return Value{false, true}; + } case BinaryOp::kPlus: return ApplyIntegersOperator, int64_t>(std::move(lhs), std::move(rhs)); case BinaryOp::kMinus: @@ -238,6 +252,8 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co return Value{true}; } return Value{false, -child.value.int_value}; + case UnaryOp::kIsNull: + return Value{false, child.is_null}; } } Value operator()(const Attribute& expr) { @@ -394,20 +410,34 @@ boost::asio::awaitable> Executor::Execute(c auto [attr_chan, tuples_chan] = co_await GetChannels(); auto task = SpawnExecutor(exec, op, attr_chan, tuples_chan); - auto attrs = co_await attr_chan.async_receive(boost::asio::use_awaitable); - Log("Received attrs in root"); - + // If the child throws, its scope_fail closes both channels, which wakes + // our async_receive with channel_closed. We then await the task to surface + // the child's real exception instead of the channel_closed wrapper. + std::exception_ptr eptr; + AttributesInfo attrs; Tuples result; - for (;;) { - auto buf = co_await ReceiveTuples(tuples_chan); - if (buf.empty()) { - break; + try { + attrs = co_await attr_chan.async_receive(boost::asio::use_awaitable); + Log("Received attrs in root"); + for (;;) { + auto buf = co_await ReceiveTuples(tuples_chan); + if (buf.empty()) { + break; + } + Log("Received {} tuples in root", buf.size()); + std::move(buf.begin(), buf.end(), std::back_inserter(result)); } - Log("Received {} tuples in root", buf.size()); - std::move(buf.begin(), buf.end(), std::back_inserter(result)); + } catch (...) { + eptr = std::current_exception(); + } + try { + co_await task(boost::asio::use_awaitable); + } catch (...) { + eptr = std::current_exception(); + } + if (eptr) { + std::rethrow_exception(eptr); } - - co_await task(boost::asio::use_awaitable); Log("Total {} tuples in root", result.size()); co_return Ok(Relation{std::move(attrs), std::move(result)}); } @@ -451,6 +481,8 @@ boost::asio::awaitable Executor::Execute(const Physica } // FIXME: that's in-memory sort boost::asio::awaitable operator()(const PhysicalSort& sort) { + auto close_on_fail = boost::scope::make_scope_fail( + [this] { attr_chan.close(); tuples_chan.close(); }); auto exec = co_await boost::asio::this_coro::executor; auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); auto task = executor.SpawnExecutor(exec, *sort.source, in_attrs_chan, in_tuples_chan); @@ -514,6 +546,8 @@ boost::asio::awaitable Executor::ExecuteProjection(con AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { Log("Executing projection"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { out_attr_chan.close(); out_tuples_chan.close(); }); auto exec = co_await boost::asio::this_coro::executor; auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); auto task = SpawnExecutor(exec, *proj.source, in_attrs_chan, in_tuples_chan); @@ -551,6 +585,8 @@ boost::asio::awaitable Executor::ExecuteFilter(const P AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { Log("Executing filter"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { out_attr_chan.close(); out_tuples_chan.close(); }); auto exec = co_await boost::asio::this_coro::executor; auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); auto task = SpawnExecutor(exec, *filter.source, in_attrs_chan, in_tuples_chan); @@ -605,6 +641,8 @@ boost::asio::awaitable Executor::ExecuteCrossJoin(cons AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { Log("Executing cross join"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { attr_chan.close(); tuples_chan.close(); }); auto exec = co_await boost::asio::this_coro::executor; auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); auto lhs_task = SpawnExecutor(exec, *cross_join.lhs, lhs_attrs_chan, lhs_tuples_chan); @@ -659,9 +697,8 @@ boost::asio::awaitable Executor::ExecuteJoin(const Nes AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { Log("Executing join"); - if (join.type == JoinType::kFull) { - throw std::logic_error{"Full joins are not supported by executor"}; - } + auto close_on_fail = boost::scope::make_scope_fail( + [&] { attr_chan.close(); tuples_chan.close(); }); if (join.type == JoinType::kLeft) { std::swap(*join.lhs, *join.rhs); } @@ -680,6 +717,81 @@ boost::asio::awaitable Executor::ExecuteJoin(const Nes auto qual_executor = co_await expression_executor_.GetExpressionExecutor(join.qual, attrs); + if (join.type == JoinType::kFull) { + std::vector lhs_all; + { + auto full_reader = co_await MaterializeChannel(lhs_tuples_chan); + full_reader.Rewind(); + for (;;) { + auto buf = full_reader.Read(); + if (buf.empty()) break; + std::move(buf.begin(), buf.end(), std::back_inserter(lhs_all)); + } + } + std::vector lhs_matched(lhs_all.size(), false); + + for (;;) { + auto buf_rhs = co_await ReceiveTuples(rhs_tuples_chan); + if (buf_rhs.empty()) break; + Log("Received {} tuples in full join as rhs", buf_rhs.size()); + + for (const auto& tuple_rhs : buf_rhs) { + bool rhs_matched = false; + Tuples buf_res; + buf_res.reserve(kBufSize); + for (size_t i = 0; i < lhs_all.size(); ++i) { + auto joined = ConcatTuples(lhs_all[i], tuple_rhs); + auto qual_result = qual_executor(joined, attrs); + if (!qual_result.is_null && qual_result.value.bool_value) { + buf_res.push_back(std::move(joined)); + lhs_matched[i] = true; + rhs_matched = true; + if (buf_res.size() == kBufSize) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_res), + boost::asio::use_awaitable); + buf_res.clear(); + buf_res.reserve(kBufSize); + } + } + } + if (!rhs_matched) { + auto rhs_size = tuple_rhs.size(); + auto lhs_size = attrs.size() - rhs_size; + buf_res.push_back(ConcatTuples(Tuple(lhs_size, Value{true}), tuple_rhs)); + } + if (!buf_res.empty()) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_res), + boost::asio::use_awaitable); + } + } + } + + Tuples buf_unmatched; + buf_unmatched.reserve(kBufSize); + for (size_t i = 0; i < lhs_all.size(); ++i) { + if (!lhs_matched[i]) { + auto lhs_size = lhs_all[i].size(); + auto rhs_size = attrs.size() - lhs_size; + buf_unmatched.push_back(ConcatTuples(lhs_all[i], Tuple(rhs_size, Value{true}))); + if (buf_unmatched.size() == kBufSize) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_unmatched), + boost::asio::use_awaitable); + buf_unmatched.clear(); + buf_unmatched.reserve(kBufSize); + } + } + } + if (!buf_unmatched.empty()) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf_unmatched), + boost::asio::use_awaitable); + } + + co_await lhs_task(boost::asio::use_awaitable); + co_await rhs_task(boost::asio::use_awaitable); + tuples_chan.close(); + co_return; + } + auto reader = co_await MaterializeChannel(lhs_tuples_chan); for (;;) { auto buf_rhs = co_await ReceiveTuples(rhs_tuples_chan); @@ -767,6 +879,8 @@ template boost::asio::awaitable Executor::ExecuteHashJoin( const HashJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { Log("Executing hash join"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { attr_chan.close(); tuples_chan.close(); }); if (join.type != JoinType::kInner) { throw std::logic_error{"HashJoin executor supports only Inner joins"}; } diff --git a/src/stewkk/sql/logic/executor/llvm.cpp b/src/stewkk/sql/logic/executor/llvm.cpp index c807ff0..9783fd0 100644 --- a/src/stewkk/sql/logic/executor/llvm.cpp +++ b/src/stewkk/sql/logic/executor/llvm.cpp @@ -204,16 +204,23 @@ llvm::Function* JITCompiler::GenerateIR( { auto* trunc_lhs = builder.CreateTrunc(value_lhs, builder.getInt1Ty(), "i64_to_i1_trunc"); auto* trunc_rhs = builder.CreateTrunc(value_rhs, builder.getInt1Ty(), "i64_to_i1_trunc"); - res_value = builder.CreateLogicalOr(trunc_lhs, trunc_rhs); - res_value = builder.CreateZExt(res_value, builder.getInt64Ty(), "i1_to_i64_zext"); + auto* lhs_true = builder.CreateAnd(builder.CreateNot(is_null_lhs), trunc_lhs); + auto* rhs_true = builder.CreateAnd(builder.CreateNot(is_null_rhs), trunc_rhs); + auto* has_true = builder.CreateOr(lhs_true, rhs_true); + is_null = builder.CreateAnd(is_null, builder.CreateNot(has_true)); + res_value = builder.CreateZExt(has_true, builder.getInt64Ty(), "i1_to_i64_zext"); break; } case BinaryOp::kAnd: { auto* trunc_lhs = builder.CreateTrunc(value_lhs, builder.getInt1Ty(), "i64_to_i1_trunc"); auto* trunc_rhs = builder.CreateTrunc(value_rhs, builder.getInt1Ty(), "i64_to_i1_trunc"); - res_value = builder.CreateLogicalAnd(trunc_lhs, trunc_rhs); - res_value = builder.CreateZExt(res_value, builder.getInt64Ty(), "i1_to_i64_zext"); + auto* lhs_false = builder.CreateAnd(builder.CreateNot(is_null_lhs), builder.CreateNot(trunc_lhs)); + auto* rhs_false = builder.CreateAnd(builder.CreateNot(is_null_rhs), builder.CreateNot(trunc_rhs)); + auto* has_false = builder.CreateOr(lhs_false, rhs_false); + is_null = builder.CreateAnd(is_null, builder.CreateNot(has_false)); + auto* both_true = builder.CreateNot(has_false); + res_value = builder.CreateZExt(both_true, builder.getInt64Ty(), "i1_to_i64_zext"); break; } case BinaryOp::kPlus: @@ -267,9 +274,9 @@ llvm::Function* JITCompiler::GenerateIR( case UnaryOp::kMinus: { auto is_null = CheckNull(child); auto value = LoadValue(child); - + auto* negated = builder.CreateNeg(value); - + auto* select = builder.CreateSelect( is_null, llvm::ConstantStruct::get(static_cast(value_type), @@ -277,6 +284,15 @@ llvm::Function* JITCompiler::GenerateIR( negated); return select; } + case UnaryOp::kIsNull: { + auto* is_null = CheckNull(child); + auto* res_value + = builder.CreateZExt(is_null, builder.getInt64Ty(), "isnull_value"); + llvm::Value* result = llvm::UndefValue::get(value_type); + result = builder.CreateInsertValue(result, builder.getInt8(0), {0}); + result = builder.CreateInsertValue(result, res_value, {1}); + return result; + } } } llvm::Value* operator()(const IntConst& expr) { diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 83e011c..5df35da 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -48,6 +48,7 @@ std::string SerializeUnaryOp(UnaryOp op) { switch (op) { case UnaryOp::kNot: return "not"; case UnaryOp::kMinus: return "uminus"; + case UnaryOp::kIsNull: return "isnull"; } } @@ -203,7 +204,7 @@ const std::unordered_map kBinaryOps = { }; const std::unordered_map kUnaryOps = { - {"not", UnaryOp::kNot}, {"uminus", UnaryOp::kMinus}, + {"not", UnaryOp::kNot}, {"uminus", UnaryOp::kMinus}, {"isnull", UnaryOp::kIsNull}, }; const std::unordered_map kJoinTypes = { diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index 78a787c..8a2c392 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -188,40 +188,27 @@ std::any Visitor::visitFrom_list(codegen::PostgreSQLParser::From_listContext *ct return result; } -std::any Visitor::visitTable_ref(codegen::PostgreSQLParser::Table_refContext *ctx) { +namespace { + +using TableRefCtx = codegen::PostgreSQLParser::Table_refContext; +using ChildIt = std::vector::const_iterator; + +Operator BuildTableRef(Visitor* v, TableRefCtx* ctx); + +// Returns the table_ref's atom (no joins) and an iterator pointing to its first +// post-atom child. The grammar's `(... join ...)*` tail is greedy on the rhs +// table_ref, so the caller is responsible for flattening that chain instead of +// visiting it whole. +std::pair ExtractAtom(Visitor* v, TableRefCtx* ctx) { if (ctx->xmltable()) { throw Error{ErrorType::kQueryNotSupported, "xmltable is not supported"}; } if (ctx->func_table()) { - // NOTE: may want to support throw Error{ErrorType::kQueryNotSupported, "func_table is not supported"}; } if (ctx->LATERAL_P()) { throw Error{ErrorType::kQueryNotSupported, "LATERAL clause is not supported"}; } - - auto children = ctx->children; - auto children_it = children.begin(); - - Operator res; - if (ctx->relation_expr()) { - auto table = std::any_cast(visit(ctx->relation_expr())); - children_it++; - res = Table{std::move(table)}; - } - if (ctx->select_with_parens()) { - res = std::any_cast(visit(ctx->select_with_parens())); - children_it++; - children_it++; - } - auto table_refs = ctx->table_ref(); - auto table_ref_it = table_refs.begin(); - if (ctx->OPEN_PAREN()) { - res = std::any_cast(visit(*table_ref_it)); - children_it++; - table_ref_it++; - } - if (ctx->alias_clause()) { throw Error{ErrorType::kQueryNotSupported, "alias_clause is not supported"}; } @@ -229,45 +216,74 @@ std::any Visitor::visitTable_ref(codegen::PostgreSQLParser::Table_refContext *ct throw Error{ErrorType::kQueryNotSupported, "tablesample_clause is not supported"}; } - for (; children_it != children.end(); children_it++) { - auto text = (*children_it)->getText(); + const auto& children = ctx->children; + auto it = children.cbegin(); + Operator res; + if (ctx->relation_expr()) { + res = Table{std::any_cast(v->visit(ctx->relation_expr()))}; + ++it; + } else if (ctx->select_with_parens()) { + res = std::any_cast(v->visit(ctx->select_with_parens())); + ++it; + } else if (ctx->OPEN_PAREN()) { + res = BuildTableRef(v, ctx->table_ref(0)); + it += 3; + } + return {std::move(res), it}; +} + +// Walks the join tail of `ctx` starting at `it`, descending into each rhs +// table_ref so that nested greedy joins become left-associative. +Operator ContinueChain(Visitor* v, Operator lhs, TableRefCtx* ctx, ChildIt it) { + const auto end = ctx->children.cend(); + while (it != end) { + const auto text = (*it)->getText(); if (text == "CROSS") { - // CROSS JOIN table_ref - children_it += 2; - auto rhs = std::any_cast(visit(*children_it)); - res = CrossJoin{ - std::make_shared(std::move(res)), - std::make_shared(std::move(rhs)), + it += 2; + auto* rhs_ctx = dynamic_cast(*it); + ++it; + auto [rhs_atom, rhs_post] = ExtractAtom(v, rhs_ctx); + lhs = CrossJoin{ + std::make_shared(std::move(lhs)), + std::make_shared(std::move(rhs_atom)), }; + lhs = ContinueChain(v, std::move(lhs), rhs_ctx, rhs_post); } else if (text == "NATURAL") { throw Error{ErrorType::kQueryNotSupported, "NATURAL clause is not supported"}; } else { - Operator rhs; - auto join_type = JoinType::kInner; - Expression qual_expression; + JoinType jt = JoinType::kInner; if (text == "JOIN") { - // JOIN table_ref join_qual - children_it++; - rhs = std::any_cast(visit(*children_it)); - children_it++; - qual_expression = std::any_cast(visit(*children_it)); + ++it; } else { - // join_type JOIN table_ref join_qual - join_type = std::any_cast(visit(*children_it)); - children_it += 2; - rhs = std::any_cast(visit(*children_it)); - children_it++; - qual_expression = std::any_cast(visit(*children_it)); + jt = std::any_cast(v->visit(*it)); + it += 2; } - res = Join{ - join_type, - std::move(qual_expression), - std::make_shared(std::move(res)), - std::make_shared(std::move(rhs)), + auto* rhs_ctx = dynamic_cast(*it); + ++it; + auto qual = std::any_cast(v->visit(*it)); + ++it; + auto [rhs_atom, rhs_post] = ExtractAtom(v, rhs_ctx); + lhs = Join{ + jt, + std::move(qual), + std::make_shared(std::move(lhs)), + std::make_shared(std::move(rhs_atom)), }; + lhs = ContinueChain(v, std::move(lhs), rhs_ctx, rhs_post); } } - return res; + return lhs; +} + +Operator BuildTableRef(Visitor* v, TableRefCtx* ctx) { + auto [atom, it] = ExtractAtom(v, ctx); + return ContinueChain(v, std::move(atom), ctx, it); +} + +} // namespace + +std::any Visitor::visitTable_ref(codegen::PostgreSQLParser::Table_refContext *ctx) { + return Operator{BuildTableRef(this, ctx)}; } std::any Visitor::visitJoin_type(codegen::PostgreSQLParser::Join_typeContext *ctx) { @@ -476,10 +492,10 @@ std::any Visitor::visitA_expr_unary_not(codegen::PostgreSQLParser::A_expr_unary_ std::any Visitor::visitA_expr_isnull(codegen::PostgreSQLParser::A_expr_isnullContext *ctx) { auto result = std::any_cast(visit(ctx->a_expr_is_not())); if (ctx->ISNULL()) { - result = BinaryExpression{std::make_shared(std::move(result)), BinaryOp::kEq, std::make_shared(Literal::kNull)}; + result = UnaryExpression{UnaryOp::kIsNull, std::make_shared(std::move(result))}; } if (ctx->NOTNULL()) { - result = BinaryExpression{std::make_shared(std::move(result)), BinaryOp::kEq, std::make_shared(Literal::kNull)}; + result = UnaryExpression{UnaryOp::kIsNull, std::make_shared(std::move(result))}; result = UnaryExpression{UnaryOp::kNot, std::make_shared(std::move(result))}; } return result; @@ -492,7 +508,7 @@ std::any Visitor::visitA_expr_is_not(codegen::PostgreSQLParser::A_expr_is_notCon } if (ctx->NULL_P()) { - result = BinaryExpression{std::make_shared(std::move(result)), BinaryOp::kEq, std::make_shared(Literal::kNull)}; + result = UnaryExpression{UnaryOp::kIsNull, std::make_shared(std::move(result))}; } else if (ctx->TRUE_P()) { result = BinaryExpression{std::make_shared(std::move(result)), BinaryOp::kEq, std::make_shared(Literal::kTrue)}; } else if (ctx->FALSE_P()) { @@ -526,11 +542,20 @@ std::any Visitor::visitA_expr_like(codegen::PostgreSQLParser::A_expr_likeContext std::any Visitor::visitA_expr_qual_op(codegen::PostgreSQLParser::A_expr_qual_opContext *ctx) { const auto& exprs = ctx->a_expr_unary_qualop(); - if (exprs.size() > 1) { - // NOTE: may want to implement - throw Error{ErrorType::kQueryNotSupported, "qual_op is not supported"}; + if (exprs.size() == 1) { + return visit(exprs.front()); } - return visit(exprs.front()); + // Postgres allows != as an alias for <>, which the lexer produces as Operator (qual_op). + if (exprs.size() == 2 && ctx->qual_op(0)->getText() == "!=") { + auto lhs = std::any_cast(visit(exprs[0])); + auto rhs = std::any_cast(visit(exprs[1])); + return Expression{BinaryExpression{ + std::make_shared(std::move(lhs)), + BinaryOp::kNotEq, + std::make_shared(std::move(rhs)), + }}; + } + throw Error{ErrorType::kQueryNotSupported, "qual_op is not supported"}; } std::any Visitor::visitA_expr_unary_qualop(codegen::PostgreSQLParser::A_expr_unary_qualopContext *ctx) { @@ -662,6 +687,9 @@ std::any Visitor::visitC_expr_expr(codegen::PostgreSQLParser::C_expr_exprContext if (ctx->aexprconst()) { return visit(ctx->aexprconst()); } + if (ctx->a_expr_in_parens != nullptr) { + return visit(ctx->a_expr_in_parens); + } // NOTE: may want to support throw Error{ErrorType::kQueryNotSupported, "c_expr is not fully supported"}; } diff --git a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp index 18bff95..7776cb1 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp @@ -9,6 +9,11 @@ bool JoinCommutativity::IsApplicable(utils::NotNull expr) { LogicalOperator JoinCommutativity::ApplyImpl(utils::NotNull expr, Memo&) { auto join = std::get(expr->root_operator); std::swap(join.lhs, join.rhs); + if (join.type == JoinType::kLeft) { + join.type = JoinType::kRight; + } else if (join.type == JoinType::kRight) { + join.type = JoinType::kLeft; + } return join; } diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 4d3a5ae..ab9299e 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -1,7 +1,266 @@ +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include -int main() { - std::cout << "Hello\n"; +#include - return 0; +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace stewkk::sql { + +namespace { + +constexpr int kOk = 0; +constexpr int kUsage = 64; +constexpr int kParseError = 1; +constexpr int kOptimizerError = 2; +constexpr int kRuntimeError = 3; + +struct Args { + std::string data_dir; + bool print_plan = false; + bool print_ast = false; + bool jit = false; +}; + +Args ParseArgs(int argc, char** argv) { + Args args; + for (int i = 1; i < argc; ++i) { + std::string a = argv[i]; + if (a == "--data-dir") { + if (i + 1 >= argc) { + std::cerr << "--data-dir requires an argument\n"; + std::exit(kUsage); + } + args.data_dir = argv[++i]; + } else if (a == "--print-plan") { + args.print_plan = true; + } else if (a == "--print-ast") { + args.print_ast = true; + } else if (a == "--jit") { + args.jit = true; + } else { + std::cerr << "unknown argument: " << a << "\n"; + std::exit(kUsage); + } + } + if (args.data_dir.empty()) { + std::cerr << "usage: sql --data-dir [--print-plan] [--jit] < query.sql\n"; + std::exit(kUsage); + } + return args; +} + +// Build a SchemaCatalog by reading the header of every
.csv in the +// directory. Mirrors the conventions used by the query generator and +// CsvDirSequentialScanner: header is "col:type,col:type,...", and files whose +// stem ends in _ are benchmark-only siblings of a base table and share +// its schema, so they are skipped. +SchemaCatalog LoadSchema(const std::string& dir) { + std::unordered_map tables; + static const std::regex kBench{R"(_\d+$)"}; + for (const auto& entry : std::filesystem::directory_iterator{dir}) { + if (entry.path().extension() != ".csv") continue; + auto stem = entry.path().stem().string(); + if (std::regex_search(stem, kBench)) continue; + + std::ifstream in{entry.path()}; + std::string header; + if (!std::getline(in, header)) continue; + + Schema schema; + for (const auto& part : header | std::views::split(',')) { + std::string token{part.begin(), part.end()}; + auto colon = token.find(':'); + if (colon == std::string::npos) continue; + schema.push_back(Attribute{stem, token.substr(0, colon)}); + } + tables.emplace(std::move(stem), std::move(schema)); + } + return SchemaCatalog{std::move(tables)}; +} + +std::string SerializeAst(const Operator& op) { + return std::visit([](auto&& node) -> std::string { + using T = std::decay_t; + if constexpr (std::is_same_v) { + return "(Table " + node.name + ")"; + } else if constexpr (std::is_same_v) { + return "(Filter " + ToString(node.expr) + " " + SerializeAst(*node.source) + ")"; + } else if constexpr (std::is_same_v) { + std::string exprs; + for (const auto& e : node.expressions) exprs += " " + ToString(e); + return "(Projection" + exprs + " " + SerializeAst(*node.source) + ")"; + } else if constexpr (std::is_same_v) { + return "(CrossJoin " + SerializeAst(*node.lhs) + " " + SerializeAst(*node.rhs) + ")"; + } else if constexpr (std::is_same_v) { + return "(Join " + ToString(node.type) + " " + ToString(node.qual) + + " " + SerializeAst(*node.lhs) + " " + SerializeAst(*node.rhs) + ")"; + } + return "?"; + }, op); +} + +std::string ValueToString(const Value& v, const AttributeInfo& attr) { + if (v.is_null) return "NULL"; + switch (attr.type) { + case Type::kInt: + return std::to_string(v.value.int_value); + case Type::kBool: + return v.value.bool_value ? "1" : "0"; + } + return "?"; +} + +std::string TypeName(Type t) { + switch (t) { + case Type::kInt: + return "int"; + case Type::kBool: + return "bool"; + } + return "?"; +} + +// Canonical text format the fuzzer compares against MS SQL Server output. +// First line: tab-separated "table.col:type" header (or just ":type" when the +// attribute has no name, e.g. an expression in the projection). +// Following lines: one row each, tab-separated values, "NULL" for nulls. +// Rows are sorted lexicographically unless the query had ORDER BY. +void PrintRelation(const Relation& rel, bool preserve_order) { + std::ostringstream header; + for (size_t i = 0; i < rel.attributes.size(); ++i) { + const auto& a = rel.attributes[i]; + if (i) header << '\t'; + if (!a.table.empty() || !a.name.empty()) { + header << a.table << '.' << a.name; + } + header << ':' << TypeName(a.type); + } + + std::vector rows; + rows.reserve(rel.tuples.size()); + for (const auto& tuple : rel.tuples) { + std::ostringstream line; + for (size_t i = 0; i < tuple.size(); ++i) { + if (i) line << '\t'; + line << ValueToString(tuple[i], rel.attributes[i]); + } + rows.push_back(std::move(line).str()); + } + if (!preserve_order) std::sort(rows.begin(), rows.end()); + + std::cout << header.str() << '\n'; + for (const auto& r : rows) std::cout << r << '\n'; +} + +// Coroutine declared as a free function (not a captureless lambda) so the +// awaitable holds its parameters by reference into main's stack, sidestepping +// the lifetime trap of an IIFE'd `[&]` lambda whose closure dies before the +// coroutine frame. +boost::asio::awaitable> RunQuery(const std::string& data_dir, + const PhysicalPlanNode& plan) { + CsvDirSequentialScanner seq_scan{data_dir}; + Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); + co_return co_await executor.Execute(plan); +} + +boost::asio::awaitable> RunQueryJit(const std::string& data_dir, + const PhysicalPlanNode& plan) { + CsvDirSequentialScanner seq_scan{data_dir}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + co_return co_await executor.Execute(plan); +} + +} // namespace + +} // namespace stewkk::sql + +int main(int argc, char** argv) { + using namespace stewkk::sql; + + auto args = ParseArgs(argc, argv); + + std::ostringstream sql_buf; + sql_buf << std::cin.rdbuf(); + std::stringstream sql_stream{sql_buf.str()}; + + auto parsed_result = GetAST(sql_stream); + if (!parsed_result.has_value()) { + std::cerr << "parse error: " << What(parsed_result.error()) << "\n"; + return kParseError; + } + auto parsed = std::move(parsed_result).value(); + + if (args.print_ast) { + std::cerr << SerializeAst(parsed.op) << "\n"; + } + + PhysicalPlanNode plan; + try { + PropertySet required = parsed.required_order + ? PropertySet{SortProperty{*parsed.required_order}} + : PropertySet::Any(); + Optimizer optimizer(parsed.op, MakeMainRules(), {}, LoadSchema(args.data_dir), + std::move(required)); + plan = optimizer.Optimize(); + } catch (const std::exception& e) { + std::cerr << "optimizer error: " << e.what() << "\n"; + return kOptimizerError; + } + + if (args.print_plan) { + std::cerr << Serialize(plan) << "\n"; + } + + Result result; + try { + boost::asio::io_context ctx; + boost::asio::any_io_executor exec = ctx.get_executor(); + auto fut = args.jit + ? boost::asio::co_spawn(exec, RunQueryJit(args.data_dir, plan), + boost::asio::use_future) + : boost::asio::co_spawn(exec, RunQuery(args.data_dir, plan), + boost::asio::use_future); + ctx.run(); + result = fut.get(); + } catch (const std::exception& e) { + std::cerr << "runtime error: " << e.what() << "\n"; + return kRuntimeError; + } + + if (!result.has_value()) { + std::cerr << "runtime error: " << What(result.error()) << "\n"; + return kRuntimeError; + } + + PrintRelation(result.value(), parsed.required_order.has_value()); + return kOk; } diff --git a/src/stewkk/sql/models/parser/expression.cpp b/src/stewkk/sql/models/parser/expression.cpp index 090ccb7..cb37c9b 100644 --- a/src/stewkk/sql/models/parser/expression.cpp +++ b/src/stewkk/sql/models/parser/expression.cpp @@ -68,6 +68,8 @@ std::string ToString(UnaryOp op) { return "not"; case UnaryOp::kMinus: return "-"; + case UnaryOp::kIsNull: + return "isnull"; } } From 0ead6f91a9ee71dc9395a1ecb491c18d45d8a149 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 27 May 2026 03:44:21 +0300 Subject: [PATCH 052/120] Add some rules --- include/stewkk/sql/logic/optimizer/rules.hpp | 6 +- .../transformation_rules/filter_merge.hpp | 17 +++ .../filter_pushdown_through_join.hpp | 19 +++ .../filter_pushdown_through_projection.hpp | 19 +++ .../transformation_rules/filter_split.hpp | 17 +++ .../transformation_rules/predicate_utils.hpp | 25 ++++ src/stewkk/sql/CMakeLists.txt | 5 + src/stewkk/sql/logic/optimizer/optimizer.cpp | 2 +- src/stewkk/sql/logic/optimizer/rules.cpp | 6 +- .../sql/logic/optimizer/rules_applier.cpp | 2 +- .../transformation_rules/filter_merge.cpp | 44 +++++++ .../filter_pushdown_through_join.cpp | 121 ++++++++++++++++++ .../filter_pushdown_through_projection.cpp | 71 ++++++++++ .../transformation_rules/filter_split.cpp | 43 +++++++ .../join_associativity.cpp | 79 +----------- .../transformation_rules/predicate_utils.cpp | 89 +++++++++++++ 16 files changed, 484 insertions(+), 81 deletions(-) create mode 100644 include/stewkk/sql/logic/transformation_rules/filter_merge.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/filter_split.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp create mode 100644 src/stewkk/sql/logic/transformation_rules/filter_merge.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/filter_split.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index f7ecb12..d655cc7 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -6,6 +6,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -21,6 +25,6 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<2, 6> MakeMainRules(); +Rules<6, 6> MakeMainRules(); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp b/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp new file mode 100644 index 0000000..b45801c --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +// Filter(p_outer, Filter(p_inner, X)) → Filter(p_outer AND p_inner, X) +// Collapses adjacent filters so the merged predicate can be pushed down or +// matched against join quals as a single conjunction. +class FilterMerge : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp new file mode 100644 index 0000000..b659e71 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +// Filter(p, Join(L, R, T, q)) → [Filter(rest,)] Join(maybeFilter(p_L,L), maybeFilter(p_R,R), T, q) +// Conjuncts of p whose attributes lie entirely within one side are pushed +// into that side; conjuncts spanning both sides remain above the join. +// Outer-join safety: a conjunct may only be pushed into a *preserved* side — +// LEFT preserves lhs, RIGHT preserves rhs, INNER preserves both, FULL neither. +class FilterPushdownThroughJoin : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp new file mode 100644 index 0000000..8217370 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +// Filter(p, Projection(exprs, X)) → Projection(exprs, Filter(p, X)) +// Safe only when every Attribute referenced by p appears as a bare Attribute +// in exprs (i.e. is passed through unchanged). Computed projections cannot be +// referenced by name in this AST, so the conservative bare-attribute check +// also matches the wider correctness condition. +class FilterPushdownThroughProjection : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_split.hpp b/include/stewkk/sql/logic/transformation_rules/filter_split.hpp new file mode 100644 index 0000000..51bc362 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/filter_split.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +// Filter(p1 AND p2 AND ... AND pn, X) → Filter(p1, Filter(p2 AND ... AND pn, X)) +// Splits the first conjunct off; remaining conjuncts cascade-split when the +// rule fires on the inner Filter. +class FilterSplit : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp b/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp new file mode 100644 index 0000000..a36f9ea --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include +#include +#include + +#include +#include +#include + +namespace stewkk::sql { + +bool IsTrue(const Expression& e); + +void CollectConjuncts(const Expression& e, std::vector& out); + +Expression AndConjuncts(const std::vector& conjs); + +void CollectAttrTables(const Expression& e, std::unordered_set& out); + +std::unordered_set ExprTables(const Expression& e); + +std::unordered_set GroupTables(utils::NotNull g); + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 7c1e315..fea3108 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -38,8 +38,13 @@ add_library(libsql logic/optimizer/rules.cpp logic/optimizer/rules_applier.cpp logic/optimizer/rule.cpp + logic/transformation_rules/predicate_utils.cpp logic/transformation_rules/join_commutativity.cpp logic/transformation_rules/join_associativity.cpp + logic/transformation_rules/filter_split.cpp + logic/transformation_rules/filter_merge.cpp + logic/transformation_rules/filter_pushdown_through_projection.cpp + logic/transformation_rules/filter_pushdown_through_join.cpp logic/implementation_rules/implement_table.cpp logic/implementation_rules/implement_filter.cpp logic/implementation_rules/implement_projection.cpp diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 380257b..ad7ac30 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -483,6 +483,6 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<2, 6>; +template class Optimizer<6, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index 29606eb..3b4eed0 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -2,11 +2,15 @@ namespace stewkk::sql { -Rules<2, 6> MakeMainRules() { +Rules<6, 6> MakeMainRules() { return { .transformation_rules = { std::make_unique(), std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), }, .implementation_rules = { std::make_unique(), diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 44f864f..1ade608 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -31,6 +31,6 @@ utils::NotNull RulesApplier::Ap } template class RulesApplier<2, 0>; -template class RulesApplier<2, 6>; +template class RulesApplier<6, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp b/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp new file mode 100644 index 0000000..4411a3e --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp @@ -0,0 +1,44 @@ +#include + +#include +#include + +#include + +namespace stewkk::sql { + +namespace { + +const logical::Filter* FindInnerFilter(utils::NotNull source) { + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* f = std::get_if(&inner_expr->root_operator)) { + return f; + } + } + return nullptr; +} + +} // namespace + +bool FilterMerge::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& outer = std::get(expr->root_operator); + return FindInnerFilter(outer.source) != nullptr; +} + +LogicalOperator FilterMerge::ApplyImpl(utils::NotNull expr, Memo&) { + const auto& outer = std::get(expr->root_operator); + const auto* inner = FindInnerFilter(outer.source); + if (inner == nullptr) { + throw std::runtime_error{"FilterMerge requires a nested filter"}; + } + + Expression merged = BinaryExpression{ + std::make_shared(outer.predicate), + BinaryOp::kAnd, + std::make_shared(inner->predicate), + }; + return logical::Filter{inner->source, std::move(merged)}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp new file mode 100644 index 0000000..23fcb6b --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp @@ -0,0 +1,121 @@ +#include + +#include +#include +#include +#include +#include + +#include + +namespace stewkk::sql { + +namespace { + +struct Sides { + bool push_left; + bool push_right; +}; + +Sides PushableSides(JoinType type) { + switch (type) { + case JoinType::kInner: return {true, true}; + case JoinType::kLeft: return {true, false}; + case JoinType::kRight: return {false, true}; + case JoinType::kFull: return {false, false}; + } + return {false, false}; +} + +struct Partition { + std::vector left; + std::vector right; + std::vector rest; +}; + +Partition PartitionConjuncts(const std::vector& conjs, + const std::unordered_set& l_tables, + const std::unordered_set& r_tables, + Sides sides) { + Partition out; + for (const auto& q : conjs) { + auto q_tables = ExprTables(q); + bool fits_left = !q_tables.empty() && std::all_of(q_tables.begin(), q_tables.end(), + [&](const auto& t) { return l_tables.contains(t); }); + bool fits_right = !q_tables.empty() && std::all_of(q_tables.begin(), q_tables.end(), + [&](const auto& t) { return r_tables.contains(t); }); + if (fits_left && sides.push_left) { + out.left.push_back(q); + } else if (fits_right && sides.push_right) { + out.right.push_back(q); + } else { + out.rest.push_back(q); + } + } + return out; +} + +const logical::Join* FindPushableJoin(utils::NotNull source, + const Expression& predicate) { + std::vector conjs; + CollectConjuncts(predicate, conjs); + if (conjs.empty()) return nullptr; + + for (auto inner_expr : source->GetLogicalExprs()) { + const auto* j = std::get_if(&inner_expr->root_operator); + if (j == nullptr) continue; + auto sides = PushableSides(j->type); + if (!sides.push_left && !sides.push_right) continue; + + auto l_tables = GroupTables(j->lhs); + auto r_tables = GroupTables(j->rhs); + auto parts = PartitionConjuncts(conjs, l_tables, r_tables, sides); + if (!parts.left.empty() || !parts.right.empty()) { + return j; + } + } + return nullptr; +} + +} // namespace + +bool FilterPushdownThroughJoin::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& f = std::get(expr->root_operator); + return FindPushableJoin(f.source, f.predicate) != nullptr; +} + +LogicalOperator FilterPushdownThroughJoin::ApplyImpl(utils::NotNull expr, + Memo& memo) { + const auto& f = std::get(expr->root_operator); + const auto* join = FindPushableJoin(f.source, f.predicate); + if (join == nullptr) { + throw std::runtime_error{"FilterPushdownThroughJoin requires a pushable join below"}; + } + + std::vector conjs; + CollectConjuncts(f.predicate, conjs); + auto sides = PushableSides(join->type); + auto l_tables = GroupTables(join->lhs); + auto r_tables = GroupTables(join->rhs); + auto parts = PartitionConjuncts(conjs, l_tables, r_tables, sides); + + utils::NotNull new_lhs = join->lhs; + if (!parts.left.empty()) { + new_lhs = memo.AddGroup(logical::Filter{join->lhs, AndConjuncts(parts.left)})->group; + } + utils::NotNull new_rhs = join->rhs; + if (!parts.right.empty()) { + new_rhs = memo.AddGroup(logical::Filter{join->rhs, AndConjuncts(parts.right)})->group; + } + + logical::Join new_join{new_lhs, new_rhs, join->type, join->qual}; + + if (parts.rest.empty()) { + return new_join; + } + auto new_join_group = memo.AddGroup(new_join)->group; + return logical::Filter{new_join_group, AndConjuncts(parts.rest)}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp new file mode 100644 index 0000000..0a0a5d9 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp @@ -0,0 +1,71 @@ +#include + +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +namespace { + +void CollectAttributes(const Expression& e, std::vector& out) { + std::visit(utils::Overloaded{ + [&](const Attribute& a) { out.push_back(a); }, + [&](const BinaryExpression& b) { + CollectAttributes(*b.lhs, out); + CollectAttributes(*b.rhs, out); + }, + [&](const UnaryExpression& u) { CollectAttributes(*u.child, out); }, + [&](const IntConst&) {}, + [&](const Literal&) {}, + }, e); +} + +bool ProjectionPassesThrough(const std::vector& proj_exprs, + const std::vector& needed) { + return std::all_of(needed.begin(), needed.end(), [&](const Attribute& a) { + return std::any_of(proj_exprs.begin(), proj_exprs.end(), [&](const Expression& e) { + const auto* pa = std::get_if(&e); + return pa != nullptr && *pa == a; + }); + }); +} + +const logical::Projection* FindPushableProjection(utils::NotNull source, + const Expression& predicate) { + std::vector needed; + CollectAttributes(predicate, needed); + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* p = std::get_if(&inner_expr->root_operator)) { + if (ProjectionPassesThrough(p->expressions, needed)) { + return p; + } + } + } + return nullptr; +} + +} // namespace + +bool FilterPushdownThroughProjection::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& f = std::get(expr->root_operator); + return FindPushableProjection(f.source, f.predicate) != nullptr; +} + +LogicalOperator FilterPushdownThroughProjection::ApplyImpl(utils::NotNull expr, + Memo& memo) { + const auto& f = std::get(expr->root_operator); + const auto* proj = FindPushableProjection(f.source, f.predicate); + if (proj == nullptr) { + throw std::runtime_error{"FilterPushdownThroughProjection requires a passthrough projection"}; + } + + auto new_filter_group = memo.AddGroup(logical::Filter{proj->source, f.predicate})->group; + return logical::Projection{new_filter_group, proj->expressions}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/filter_split.cpp b/src/stewkk/sql/logic/transformation_rules/filter_split.cpp new file mode 100644 index 0000000..e61a54c --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/filter_split.cpp @@ -0,0 +1,43 @@ +#include + +#include +#include + +#include + +namespace stewkk::sql { + +namespace { + +size_t ConjunctCount(const Expression& e) { + std::vector conjs; + CollectConjuncts(e, conjs); + return conjs.size(); +} + +} // namespace + +bool FilterSplit::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& f = std::get(expr->root_operator); + return ConjunctCount(f.predicate) >= 2; +} + +LogicalOperator FilterSplit::ApplyImpl(utils::NotNull expr, Memo& memo) { + const auto& f = std::get(expr->root_operator); + + std::vector conjs; + CollectConjuncts(f.predicate, conjs); + if (conjs.size() < 2) { + throw std::runtime_error{"FilterSplit requires a conjunction"}; + } + + Expression head = conjs.front(); + std::vector rest(conjs.begin() + 1, conjs.end()); + Expression rest_pred = AndConjuncts(rest); + + auto inner_group = memo.AddGroup(logical::Filter{f.source, std::move(rest_pred)})->group; + return logical::Filter{inner_group, std::move(head)}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index d021c08..ac5de43 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -1,87 +1,13 @@ #include #include -#include #include #include -#include +#include namespace stewkk::sql { -namespace { - -bool IsTrue(const Expression& e) { - return std::holds_alternative(e) && std::get(e) == Literal::kTrue; -} - -void CollectConjuncts(const Expression& e, std::vector& out) { - if (IsTrue(e)) return; - if (const auto* b = std::get_if(&e); b && b->binop == BinaryOp::kAnd) { - CollectConjuncts(*b->lhs, out); - CollectConjuncts(*b->rhs, out); - return; - } - out.push_back(e); -} - -Expression AndConjuncts(const std::vector& conjs) { - if (conjs.empty()) return Literal::kTrue; - Expression acc = conjs[0]; - for (size_t i = 1; i < conjs.size(); i++) { - acc = BinaryExpression{ - std::make_shared(std::move(acc)), - BinaryOp::kAnd, - std::make_shared(conjs[i]), - }; - } - return acc; -} - -void CollectAttrTables(const Expression& e, std::unordered_set& out) { - std::visit(utils::Overloaded{ - [&](const Attribute& a) { out.insert(a.table); }, - [&](const BinaryExpression& b) { - CollectAttrTables(*b.lhs, out); - CollectAttrTables(*b.rhs, out); - }, - [&](const UnaryExpression& u) { CollectAttrTables(*u.child, out); }, - [&](const IntConst&) {}, - [&](const Literal&) {}, - }, e); -} - -// Equivalent logical exprs in a memo group all expose the same output tables, -// so one expression suffices. Recurses across child groups via their fronts. -void CollectGroupTables(utils::NotNull g, std::unordered_set& out, - std::unordered_set& seen) { - if (!seen.insert(g.get()).second) return; - auto exprs = g->GetLogicalExprs(); - if (exprs.empty()) return; - std::visit(utils::Overloaded{ - [&](const logical::Table& t) { out.insert(t.name); }, - [&](const logical::Filter& f) { CollectGroupTables(f.source, out, seen); }, - [&](const logical::Projection& p) { CollectGroupTables(p.source, out, seen); }, - [&](const logical::CrossJoin& j) { - CollectGroupTables(j.lhs, out, seen); - CollectGroupTables(j.rhs, out, seen); - }, - [&](const logical::Join& j) { - CollectGroupTables(j.lhs, out, seen); - CollectGroupTables(j.rhs, out, seen); - }, - }, (*exprs.begin())->root_operator); -} - -std::unordered_set GroupTables(utils::NotNull g) { - std::unordered_set out; - std::unordered_set seen; - CollectGroupTables(g, out, seen); - return out; -} - -} // namespace - bool JoinAssociativity::IsApplicable(utils::NotNull expr) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& outer = std::get(expr->root_operator); @@ -112,8 +38,7 @@ LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, std::vector inner_quals; std::vector outer_quals; for (auto& q : conjs) { - std::unordered_set q_tables; - CollectAttrTables(q, q_tables); + auto q_tables = ExprTables(q); bool fits_inner = std::all_of(q_tables.begin(), q_tables.end(), [&](const auto& t) { return bc_tables.contains(t); }); (fits_inner ? inner_quals : outer_quals).push_back(std::move(q)); diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp new file mode 100644 index 0000000..4c73ee6 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -0,0 +1,89 @@ +#include + +#include +#include + +#include + +namespace stewkk::sql { + +bool IsTrue(const Expression& e) { + return std::holds_alternative(e) && std::get(e) == Literal::kTrue; +} + +void CollectConjuncts(const Expression& e, std::vector& out) { + if (IsTrue(e)) return; + if (const auto* b = std::get_if(&e); b && b->binop == BinaryOp::kAnd) { + CollectConjuncts(*b->lhs, out); + CollectConjuncts(*b->rhs, out); + return; + } + out.push_back(e); +} + +Expression AndConjuncts(const std::vector& conjs) { + if (conjs.empty()) return Literal::kTrue; + Expression acc = conjs[0]; + for (size_t i = 1; i < conjs.size(); i++) { + acc = BinaryExpression{ + std::make_shared(std::move(acc)), + BinaryOp::kAnd, + std::make_shared(conjs[i]), + }; + } + return acc; +} + +void CollectAttrTables(const Expression& e, std::unordered_set& out) { + std::visit(utils::Overloaded{ + [&](const Attribute& a) { out.insert(a.table); }, + [&](const BinaryExpression& b) { + CollectAttrTables(*b.lhs, out); + CollectAttrTables(*b.rhs, out); + }, + [&](const UnaryExpression& u) { CollectAttrTables(*u.child, out); }, + [&](const IntConst&) {}, + [&](const Literal&) {}, + }, e); +} + +std::unordered_set ExprTables(const Expression& e) { + std::unordered_set out; + CollectAttrTables(e, out); + return out; +} + +namespace { + +// Equivalent logical exprs in a memo group all expose the same output tables, +// so one expression suffices. Recurses across child groups via their fronts. +void CollectGroupTables(utils::NotNull g, std::unordered_set& out, + std::unordered_set& seen) { + if (!seen.insert(g.get()).second) return; + auto exprs = g->GetLogicalExprs(); + if (exprs.empty()) return; + std::visit(utils::Overloaded{ + [&](const logical::Table& t) { out.insert(t.name); }, + [&](const logical::Filter& f) { CollectGroupTables(f.source, out, seen); }, + [&](const logical::Projection& p) { CollectGroupTables(p.source, out, seen); }, + [&](const logical::CrossJoin& j) { + CollectGroupTables(j.lhs, out, seen); + CollectGroupTables(j.rhs, out, seen); + }, + [&](const logical::Join& j) { + CollectGroupTables(j.lhs, out, seen); + CollectGroupTables(j.rhs, out, seen); + }, + }, (*exprs.begin())->root_operator); +} + +} // namespace + +std::unordered_set GroupTables(utils::NotNull g) { + std::unordered_set out; + std::unordered_set seen; + CollectGroupTables(g, out, seen); + return out; +} + +} // namespace stewkk::sql From 7400561e586b132bf967606453bef0a4f6fd20fd Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 27 May 2026 04:00:17 +0300 Subject: [PATCH 053/120] Add reachability fuzzer --- research/converter.py | 22 +++-- research/fuzz/mssql_runner.py | 16 ++++ research/fuzz/reach_fuzz.py | 155 ++++++++++++++++++++++++++++++++++ src/stewkk/sql/main.cpp | 44 +++++++++- 4 files changed, 227 insertions(+), 10 deletions(-) create mode 100644 research/fuzz/reach_fuzz.py diff --git a/research/converter.py b/research/converter.py index 32ac4d9..16c029b 100644 --- a/research/converter.py +++ b/research/converter.py @@ -15,9 +15,7 @@ (OP LHS RHS) OP: = != > < >= <= and or + - * / % ^ (not EXPR) (uminus EXPR) - -Known missing operators in the target format (raise NotImplementedError): - - IS NULL / IS NOT NULL (MS SQL CompareOp "IS" / "IS NOT") + (isnull EXPR) """ import xml.etree.ElementTree as ET @@ -236,18 +234,26 @@ def _convert_scalar(scalar: ET.Element) -> str: def _convert_compare(compare: ET.Element) -> str: op_str = compare.get("CompareOp", "") + scalars = compare.findall(f"{NS}ScalarOperator") if op_str in ("IS", "IS NOT"): - raise NotImplementedError( - f"CompareOp={op_str!r} (IS NULL / IS NOT NULL) is not supported by the target plan format: " - "BinaryOp in the project has no kIsNull / kIsNotNull" - ) + # MS SQL emits "lhs IS NULL" / "lhs IS NOT NULL" as a Compare where the + # rhs is a NULL constant. Map to the project's (isnull lhs) / (not (isnull lhs)). + if len(scalars) != 2: + raise ValueError(f"IS/IS NOT Compare has {len(scalars)} ScalarOperators, expected 2") + lhs = _convert_scalar(scalars[0]) + rhs_const = scalars[1].find(f"{NS}Const") + if rhs_const is None or rhs_const.get("ConstValue", "").upper() not in ("NULL", "(NULL)"): + raise NotImplementedError( + f"CompareOp={op_str!r} with non-NULL rhs (IS DISTINCT FROM-like) is not supported" + ) + isnull = f"(isnull {lhs})" + return f"(not {isnull})" if op_str == "IS NOT" else isnull op = _COMPARE_OPS.get(op_str) if op is None: raise NotImplementedError(f"unhandled CompareOp: {op_str!r}") - scalars = compare.findall(f"{NS}ScalarOperator") if len(scalars) != 2: raise ValueError(f"Compare has {len(scalars)} ScalarOperator children, expected 2") return f"({op} {_convert_scalar(scalars[0])} {_convert_scalar(scalars[1])})" diff --git a/research/fuzz/mssql_runner.py b/research/fuzz/mssql_runner.py index 2211da6..f4f5b7d 100644 --- a/research/fuzz/mssql_runner.py +++ b/research/fuzz/mssql_runner.py @@ -124,6 +124,22 @@ def run(self, query: str) -> RunResult: except pymssql.Error as e: return RunResult(columns=[], rows=[], error=str(e)) + def get_plan(self, query: str) -> str: + """Return the ShowPlanXML for `query`. Use OPTION (RECOMPILE) to inline literals.""" + if self._conn is None: + self._conn = self._connect(self._database) + cur = self._conn.cursor() + cur.execute("SET STATISTICS XML ON") + try: + cur.execute(query) + while cur.nextset(): + row = cur.fetchone() + if row and isinstance(row[0], str) and row[0].startswith(" None: if self._conn is not None: self._conn.close() diff --git a/research/fuzz/reach_fuzz.py b/research/fuzz/reach_fuzz.py new file mode 100644 index 0000000..c2530d6 --- /dev/null +++ b/research/fuzz/reach_fuzz.py @@ -0,0 +1,155 @@ +""" +Reachability fuzzer: generate a random SQL query, ask MS SQL Server for its +execution plan, convert that plan to the project's serialized format, then +invoke our CLI in ``--check-reachable`` mode to confirm that our exhaustive +search would have considered it. Stops at the first plan our optimizer cannot +reach. + +The fuzzer only flags a divergence when the MS SQL plan converts cleanly but +our optimizer cannot reach it. Coverage gaps in the XML→s-expr converter +(unhandled physical operators or scalar shapes) are logged and skipped, since +they are converter limitations rather than optimizer bugs. + +Usage: + python -m research.fuzz.reach_fuzz \\ + --cli build/bin/sql \\ + --data-dir test/static/executor/test_data \\ + [--start-seed 0] +""" +from __future__ import annotations + +import argparse +import random +import subprocess +import sys +import tempfile +from itertools import count +from pathlib import Path + +from research.converter import convert as convert_plan +from research.fuzz.mssql_runner import MsSqlRunner +from research.query_generator import ( + DIALECTS, + QueryGenerator, + SelectQuery, + load_schema, + render_query, +) + + +def _wrap_projection(plan_sexpr: str, query: SelectQuery) -> str: + """Our parser always emits a Projection at the top of a SELECT with + targets. MS SQL Server's plans express projection implicitly via the + scan/join OutputList rather than as a node, so we add the wrapper here so + the shape matches what the optimizer's exhaustive search produces.""" + exprs = " ".join(f"(attr {a.table} {a.column})" for a in query.targets) + return f"(PhysicalProjection (exprs {exprs}) {plan_sexpr})" + + +def _run_reach_check(cli: str, sql: str, plan_sexpr: str) -> subprocess.CompletedProcess: + with tempfile.NamedTemporaryFile("w", suffix=".plan", delete=False) as f: + f.write(plan_sexpr) + plan_path = f.name + try: + return subprocess.run( + [cli, "--check-reachable", plan_path], + input=sql, + capture_output=True, + text=True, + timeout=60, + ) + finally: + Path(plan_path).unlink(missing_ok=True) + + +def main() -> None: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--cli", required=True, help="Path to our sql binary") + ap.add_argument("--data-dir", required=True, help="CSV table directory (shared with MS SQL)") + ap.add_argument("--start-seed", type=int, default=0) + ap.add_argument("--mssql-host", default="localhost") + ap.add_argument("--mssql-port", type=int, default=1433) + ap.add_argument("--mssql-user", default="sa") + ap.add_argument("--mssql-password", default="Password123!") + ap.add_argument("--mssql-database", default="fuzz") + args = ap.parse_args() + + schema = load_schema(Path(args.data_dir)) + + mssql = MsSqlRunner( + host=args.mssql_host, + port=args.mssql_port, + user=args.mssql_user, + password=args.mssql_password, + database=args.mssql_database, + ) + print("Setting up MS SQL schema...", flush=True) + mssql.setup_schema(args.data_dir) + print("Schema ready. Starting reachability fuzz loop.\n", flush=True) + + pg = DIALECTS["pg"] + ms = DIALECTS["mssql"] + + skipped_convert = 0 + skipped_mssql = 0 + + for seed in count(args.start_seed): + rng = random.Random(seed) + query = QueryGenerator(schema, rng).generate() + ours_sql = render_query(query, pg) + ";" + # OPTION (RECOMPILE) embeds literal values in the plan so the converter + # sees Const nodes instead of @P parameter references. + theirs_sql = render_query(query, ms) + " OPTION (RECOMPILE);" + + try: + plan_xml = mssql.get_plan(theirs_sql) + except Exception as e: + skipped_mssql += 1 + if seed % 25 == 0: + print(f"seed={seed} mssql refused: {e}", flush=True) + continue + + try: + converted = convert_plan(plan_xml) + except NotImplementedError as e: + skipped_convert += 1 + if seed % 25 == 0: + print(f"seed={seed} converter skip: {e}", flush=True) + continue + except Exception as e: + print(f"seed={seed} converter error: {e}\n--- query:\n{theirs_sql}") + sys.exit(2) + + target_plan = _wrap_projection(converted, query) + + try: + proc = _run_reach_check(args.cli, ours_sql, target_plan) + except subprocess.TimeoutExpired: + print(f"DIVERGENCE seed={seed}: reachability check timed out") + print(f"\n--- query (ours):\n{ours_sql}") + print(f"\n--- target plan:\n{target_plan}") + sys.exit(1) + + if proc.returncode == 0: + if seed % 25 == 0: + print( + f"seed={seed} ok" + f" (skipped: {skipped_convert} convert, {skipped_mssql} mssql)", + flush=True, + ) + continue + + # Non-zero: either parse/optimizer error, or NOT REACHABLE. + print(f"DIVERGENCE seed={seed}: exit={proc.returncode}") + print(f"\n--- query (ours):\n{ours_sql}") + print(f"\n--- query (mssql):\n{theirs_sql}") + print(f"\n--- mssql plan (converted):\n{target_plan}") + if proc.stdout: + print(f"\n--- stdout:\n{proc.stdout}", end="") + if proc.stderr: + print(f"\n--- stderr:\n{proc.stderr}", end="") + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index ab9299e..6358eb9 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -41,12 +42,14 @@ constexpr int kUsage = 64; constexpr int kParseError = 1; constexpr int kOptimizerError = 2; constexpr int kRuntimeError = 3; +constexpr int kNotReachable = 4; struct Args { std::string data_dir; bool print_plan = false; bool print_ast = false; bool jit = false; + std::string check_reachable_path; }; Args ParseArgs(int argc, char** argv) { @@ -65,13 +68,20 @@ Args ParseArgs(int argc, char** argv) { args.print_ast = true; } else if (a == "--jit") { args.jit = true; + } else if (a == "--check-reachable") { + if (i + 1 >= argc) { + std::cerr << "--check-reachable requires a plan file path\n"; + std::exit(kUsage); + } + args.check_reachable_path = argv[++i]; } else { std::cerr << "unknown argument: " << a << "\n"; std::exit(kUsage); } } - if (args.data_dir.empty()) { - std::cerr << "usage: sql --data-dir [--print-plan] [--jit] < query.sql\n"; + if (args.data_dir.empty() && args.check_reachable_path.empty()) { + std::cerr << "usage: sql --data-dir [--print-plan] [--jit] < query.sql\n" + << " sql --check-reachable < query.sql\n"; std::exit(kUsage); } return args; @@ -212,6 +222,36 @@ int main(int argc, char** argv) { sql_buf << std::cin.rdbuf(); std::stringstream sql_stream{sql_buf.str()}; + if (!args.check_reachable_path.empty()) { + std::ifstream plan_in{args.check_reachable_path}; + if (!plan_in) { + std::cerr << "cannot open plan file: " << args.check_reachable_path << "\n"; + return kUsage; + } + std::ostringstream plan_buf; + plan_buf << plan_in.rdbuf(); + PhysicalPlanNode target; + try { + target = Deserialize(plan_buf.str()); + } catch (const std::exception& e) { + std::cerr << "plan parse error: " << e.what() << "\n"; + return kParseError; + } + MatchResult mr; + try { + mr = IsPlanReachable(sql_stream, target); + } catch (const std::exception& e) { + std::cerr << "reachability error: " << e.what() << "\n"; + return kOptimizerError; + } + if (mr.reachable) { + std::cout << "REACHABLE\n"; + return kOk; + } + std::cout << "NOT REACHABLE: " << mr.mismatch << "\n"; + return kNotReachable; + } + auto parsed_result = GetAST(sql_stream); if (!parsed_result.has_value()) { std::cerr << "parse error: " << What(parsed_result.error()) << "\n"; From 30abea0fd4927d954fb8a2d9b5bec0d3118d73a9 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 29 May 2026 20:50:26 +0300 Subject: [PATCH 054/120] Fix bug in jit --- flake.lock | 12 ++++++------ flake.nix | 9 +++++---- src/stewkk/sql/logic/executor/llvm.cpp | 12 ++++++++++-- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/flake.lock b/flake.lock index b75d055..7bda188 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", "type": "github" }, "original": { @@ -36,11 +36,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1776548001, - "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", + "lastModified": 1779560665, + "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ef3113a..e8162f2 100644 --- a/flake.nix +++ b/flake.nix @@ -41,9 +41,9 @@ ms-python.python ms-python.vscode-pylance ms-toolsai.jupyter - anthropic.claude-code - ms-vscode.cpptools - asvetliakov.vscode-neovim + anthropic.claude-code + ms-vscode.cpptools + asvetliakov.vscode-neovim ]; }) pythonEnv @@ -59,8 +59,9 @@ inkscape llvmPackages_21.llvm llvmPackages_21.llvm.dev - nodejs_20 + nodejs_24 graphviz + codex ]; nativeBuildInputs = [ diff --git a/src/stewkk/sql/logic/executor/llvm.cpp b/src/stewkk/sql/logic/executor/llvm.cpp index 9783fd0..f2dd0c1 100644 --- a/src/stewkk/sql/logic/executor/llvm.cpp +++ b/src/stewkk/sql/logic/executor/llvm.cpp @@ -264,11 +264,15 @@ llvm::Function* JITCompiler::GenerateIR( auto* logical_not = builder.CreateZExt(is_zero, value->getType(), "logical_not_result"); + llvm::Value* not_null_struct = llvm::UndefValue::get(value_type); + not_null_struct = builder.CreateInsertValue(not_null_struct, builder.getInt8(0), {0}); + not_null_struct = builder.CreateInsertValue(not_null_struct, logical_not, {1}); + auto* select = builder.CreateSelect( is_null, llvm::ConstantStruct::get(static_cast(value_type), {builder.getInt8(1), builder.getInt64(0)}), - logical_not); + not_null_struct); return select; } case UnaryOp::kMinus: { @@ -277,11 +281,15 @@ llvm::Function* JITCompiler::GenerateIR( auto* negated = builder.CreateNeg(value); + llvm::Value* not_null_struct = llvm::UndefValue::get(value_type); + not_null_struct = builder.CreateInsertValue(not_null_struct, builder.getInt8(0), {0}); + not_null_struct = builder.CreateInsertValue(not_null_struct, negated, {1}); + auto* select = builder.CreateSelect( is_null, llvm::ConstantStruct::get(static_cast(value_type), {builder.getInt8(1), builder.getInt64(0)}), - negated); + not_null_struct); return select; } case UnaryOp::kIsNull: { From 2d000456db28bdb8de68edc1864f5028f3590681 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 29 May 2026 21:22:17 +0300 Subject: [PATCH 055/120] Add SBB benchmark --- .gitignore | 2 + Makefile | 5 +- benchmarks/datasets/ssb/README.md | 43 ++++++ benchmarks/datasets/ssb/convert_tbl_to_csv.py | 137 ++++++++++++++++++ .../ssb/fixtures/expected_csv/customer.csv | 3 + .../ssb/fixtures/expected_csv/date.csv | 3 + .../ssb/fixtures/expected_csv/lineorder.csv | 3 + .../ssb/fixtures/expected_csv/part.csv | 3 + .../ssb/fixtures/expected_csv/supplier.csv | 3 + .../datasets/ssb/fixtures/tbl/customer.tbl | 2 + benchmarks/datasets/ssb/fixtures/tbl/date.tbl | 2 + .../datasets/ssb/fixtures/tbl/lineorder.tbl | 2 + benchmarks/datasets/ssb/fixtures/tbl/part.tbl | 2 + .../datasets/ssb/fixtures/tbl/supplier.tbl | 2 + benchmarks/datasets/ssb/schema.json | 87 +++++++++++ .../datasets/ssb/test_convert_tbl_to_csv.py | 82 +++++++++++ 16 files changed, 380 insertions(+), 1 deletion(-) create mode 100644 benchmarks/datasets/ssb/README.md create mode 100644 benchmarks/datasets/ssb/convert_tbl_to_csv.py create mode 100644 benchmarks/datasets/ssb/fixtures/expected_csv/customer.csv create mode 100644 benchmarks/datasets/ssb/fixtures/expected_csv/date.csv create mode 100644 benchmarks/datasets/ssb/fixtures/expected_csv/lineorder.csv create mode 100644 benchmarks/datasets/ssb/fixtures/expected_csv/part.csv create mode 100644 benchmarks/datasets/ssb/fixtures/expected_csv/supplier.csv create mode 100644 benchmarks/datasets/ssb/fixtures/tbl/customer.tbl create mode 100644 benchmarks/datasets/ssb/fixtures/tbl/date.tbl create mode 100644 benchmarks/datasets/ssb/fixtures/tbl/lineorder.tbl create mode 100644 benchmarks/datasets/ssb/fixtures/tbl/part.tbl create mode 100644 benchmarks/datasets/ssb/fixtures/tbl/supplier.tbl create mode 100644 benchmarks/datasets/ssb/schema.json create mode 100644 benchmarks/datasets/ssb/test_convert_tbl_to_csv.py diff --git a/.gitignore b/.gitignore index 86a6b40..7f94a71 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ FlameGraph/ /.odbc/ **/__pycache__ /build-tsan/ +/benchmarks/datasets/ssb/generated/ +/benchmarks/datasets/ssb/raw/ diff --git a/Makefile b/Makefile index 0dca4cf..f0e0c80 100644 --- a/Makefile +++ b/Makefile @@ -11,4 +11,7 @@ sanitize: codegen: @antlr -Dlanguage=Cpp -visitor -o $(CODEGEN_DIR) -package stewkk::sql::codegen $(PARSER_SOURCE_DIR)/PostgreSQLParser.g4 $(PARSER_SOURCE_DIR)/PostgreSQLLexer.g4 -.PHONY: codegen build +test-ssb-converter: + pytest benchmarks/datasets/ssb + +.PHONY: codegen build sanitize test-ssb-converter diff --git a/benchmarks/datasets/ssb/README.md b/benchmarks/datasets/ssb/README.md new file mode 100644 index 0000000..192b4f1 --- /dev/null +++ b/benchmarks/datasets/ssb/README.md @@ -0,0 +1,43 @@ +# Star Schema Benchmark data + +This directory contains the schema and conversion tooling for Star Schema +Benchmark data. It does not download or build an SSB data generator; generate +the `.tbl` files with an external SSB dbgen-compatible tool first. + +## Convert `.tbl` files + +Expected input files: + +- `lineorder.tbl` +- `customer.tbl` +- `supplier.tbl` +- `part.tbl` +- `date.tbl` + +Convert them to the CSV format used by this project: + +```sh +python3 benchmarks/datasets/ssb/convert_tbl_to_csv.py \ + --input-dir /path/to/ssb/tbl \ + --output-dir benchmarks/datasets/ssb/generated/sf1 +``` + +The converter reads `schema.json` for table and column definitions. Output CSV +headers use `column:type`, for example `lo_orderkey:int`. String columns are +preserved as `string` values in the generated CSV. + +Generated full-scale data should stay under `benchmarks/datasets/ssb/generated/` +or another ignored location. + +## Current engine limitation + +This first slice only adds data layout and conversion. The current C++ scanner +supports `int` and `NULL` values, so SSB CSV files containing `string` columns +are not executable until string type support is added to the parser, scanner, +executor, and output formatting. + +## Test the converter + +```sh +make test-ssb-converter +``` diff --git a/benchmarks/datasets/ssb/convert_tbl_to_csv.py b/benchmarks/datasets/ssb/convert_tbl_to_csv.py new file mode 100644 index 0000000..e7a6c7a --- /dev/null +++ b/benchmarks/datasets/ssb/convert_tbl_to_csv.py @@ -0,0 +1,137 @@ +#!/usr/bin/env python3 +"""Convert Star Schema Benchmark .tbl files to this project's CSV format.""" + +from __future__ import annotations + +import argparse +import csv +import json +import sys +from dataclasses import dataclass +from pathlib import Path +from typing import Iterable + + +SUPPORTED_TYPES = {"int", "string"} + + +@dataclass(frozen=True) +class Column: + name: str + type: str + + +@dataclass(frozen=True) +class Table: + name: str + columns: tuple[Column, ...] + + +class ConversionError(RuntimeError): + pass + + +def load_schema(path: Path) -> list[Table]: + with path.open(encoding="utf-8") as f: + raw = json.load(f) + + tables = [] + for table_raw in raw.get("tables", []): + columns = [] + for column_raw in table_raw.get("columns", []): + column_type = column_raw["type"] + if column_type not in SUPPORTED_TYPES: + raise ConversionError( + f"{path}: unsupported type {column_type!r} in table {table_raw['name']}" + ) + columns.append(Column(column_raw["name"], column_type)) + if not columns: + raise ConversionError(f"{path}: table {table_raw.get('name')!r} has no columns") + tables.append(Table(table_raw["name"], tuple(columns))) + + if not tables: + raise ConversionError(f"{path}: schema does not define any tables") + return tables + + +def parse_tbl_line(line: str) -> list[str]: + fields = line.rstrip("\r\n").split("|") + if fields and fields[-1] == "": + fields.pop() + return fields + + +def validate_row(table: Table, row: list[str], input_path: Path, line_no: int) -> None: + if len(row) != len(table.columns): + raise ConversionError( + f"{input_path}:{line_no}: expected {len(table.columns)} fields for " + f"{table.name}, got {len(row)}" + ) + + for value, column in zip(row, table.columns, strict=True): + if column.type == "int": + try: + int(value) + except ValueError as exc: + raise ConversionError( + f"{input_path}:{line_no}: {column.name} expects int, got {value!r}" + ) from exc + + +def header(table: Table) -> list[str]: + return [f"{column.name}:{column.type}" for column in table.columns] + + +def convert_table(table: Table, input_dir: Path, output_dir: Path) -> int: + input_path = input_dir / f"{table.name}.tbl" + output_path = output_dir / f"{table.name}.csv" + if not input_path.exists(): + raise ConversionError(f"missing input file: {input_path}") + + rows = 0 + with input_path.open(encoding="utf-8", newline="") as src, output_path.open( + "w", encoding="utf-8", newline="" + ) as dst: + writer = csv.writer(dst, lineterminator="\n") + writer.writerow(header(table)) + for line_no, line in enumerate(src, start=1): + row = parse_tbl_line(line) + validate_row(table, row, input_path, line_no) + writer.writerow(row) + rows += 1 + return rows + + +def convert_all(schema_path: Path, input_dir: Path, output_dir: Path) -> dict[str, int]: + tables = load_schema(schema_path) + output_dir.mkdir(parents=True, exist_ok=True) + return { + table.name: convert_table(table, input_dir, output_dir) + for table in tables + } + + +def parse_args(argv: Iterable[str]) -> argparse.Namespace: + default_schema = Path(__file__).with_name("schema.json") + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--input-dir", required=True, type=Path, help="Directory containing SSB .tbl files") + parser.add_argument("--output-dir", required=True, type=Path, help="Directory for generated CSV files") + parser.add_argument("--schema", default=default_schema, type=Path, help="Schema JSON path") + return parser.parse_args(argv) + + +def main(argv: Iterable[str] = sys.argv[1:]) -> int: + args = parse_args(argv) + try: + counts = convert_all(args.schema, args.input_dir, args.output_dir) + except ConversionError as exc: + print(f"error: {exc}", file=sys.stderr) + return 1 + + for table_name, rows in counts.items(): + print(f"wrote {args.output_dir / (table_name + '.csv')} ({rows} rows)") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/benchmarks/datasets/ssb/fixtures/expected_csv/customer.csv b/benchmarks/datasets/ssb/fixtures/expected_csv/customer.csv new file mode 100644 index 0000000..82689fb --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/expected_csv/customer.csv @@ -0,0 +1,3 @@ +c_custkey:int,c_name:string,c_address:string,c_city:string,c_nation:string,c_region:string,c_phone:string,c_mktsegment:string +10,Customer#000000010,Addr 10,UNITED KI1,UNITED KINGDOM,EUROPE,10-111-111-1111,BUILDING +20,Customer#000000020,"Addr, 20",BRAZIL 1,BRAZIL,AMERICA,20-222-222-2222,AUTOMOBILE diff --git a/benchmarks/datasets/ssb/fixtures/expected_csv/date.csv b/benchmarks/datasets/ssb/fixtures/expected_csv/date.csv new file mode 100644 index 0000000..f898834 --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/expected_csv/date.csv @@ -0,0 +1,3 @@ +d_datekey:int,d_date:string,d_dayofweek:string,d_month:string,d_year:int,d_yearmonthnum:int,d_yearmonth:string,d_daynuminweek:int,d_daynuminmonth:int,d_daynuminyear:int,d_monthnuminyear:int,d_weeknuminyear:int,d_sellingseason:string,d_lastdayinweekfl:int,d_lastdayinmonthfl:int,d_holidayfl:int,d_weekdayfl:int +19940101,"January 1, 1994",Saturday,January,1994,199401,Jan1994,6,1,1,1,1,Winter,0,0,1,0 +19940102,"January 2, 1994",Sunday,January,1994,199401,Jan1994,7,2,2,1,1,Winter,1,0,0,0 diff --git a/benchmarks/datasets/ssb/fixtures/expected_csv/lineorder.csv b/benchmarks/datasets/ssb/fixtures/expected_csv/lineorder.csv new file mode 100644 index 0000000..38f03a6 --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/expected_csv/lineorder.csv @@ -0,0 +1,3 @@ +lo_orderkey:int,lo_linenumber:int,lo_custkey:int,lo_partkey:int,lo_suppkey:int,lo_orderdate:int,lo_orderpriority:string,lo_shippriority:string,lo_quantity:int,lo_extendedprice:int,lo_ordtotalprice:int,lo_discount:int,lo_revenue:int,lo_supplycost:int,lo_tax:int,lo_commitdate:int,lo_shipmode:string +1,1,10,100,1000,19940101,1-URGENT,0,5,10000,12000,3,9700,6000,1,19940105,AIR +2,1,20,200,2000,19940102,2-HIGH,0,7,20000,23000,4,19200,12000,2,19940106,RAIL diff --git a/benchmarks/datasets/ssb/fixtures/expected_csv/part.csv b/benchmarks/datasets/ssb/fixtures/expected_csv/part.csv new file mode 100644 index 0000000..6c6dc3a --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/expected_csv/part.csv @@ -0,0 +1,3 @@ +p_partkey:int,p_name:string,p_mfgr:string,p_category:string,p_brand:string,p_color:string,p_type:string,p_size:int,p_container:string +100,almond antique,MFGR#1,MFGR#11,MFGR#111,almond,STANDARD ANODIZED TIN,3,SM CASE +200,green burnished,MFGR#2,MFGR#22,MFGR#222,green,PROMO POLISHED STEEL,7,LG BOX diff --git a/benchmarks/datasets/ssb/fixtures/expected_csv/supplier.csv b/benchmarks/datasets/ssb/fixtures/expected_csv/supplier.csv new file mode 100644 index 0000000..c5f58d1 --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/expected_csv/supplier.csv @@ -0,0 +1,3 @@ +s_suppkey:int,s_name:string,s_address:string,s_city:string,s_nation:string,s_region:string,s_phone:string +1000,Supplier#000001000,Supplier Addr 1000,RUSSIA 1,RUSSIA,EUROPE,30-333-333-3333 +2000,Supplier#000002000,Supplier Addr 2000,ARGENTINA1,ARGENTINA,AMERICA,40-444-444-4444 diff --git a/benchmarks/datasets/ssb/fixtures/tbl/customer.tbl b/benchmarks/datasets/ssb/fixtures/tbl/customer.tbl new file mode 100644 index 0000000..2f1c800 --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/tbl/customer.tbl @@ -0,0 +1,2 @@ +10|Customer#000000010|Addr 10|UNITED KI1|UNITED KINGDOM|EUROPE|10-111-111-1111|BUILDING| +20|Customer#000000020|Addr, 20|BRAZIL 1|BRAZIL|AMERICA|20-222-222-2222|AUTOMOBILE| diff --git a/benchmarks/datasets/ssb/fixtures/tbl/date.tbl b/benchmarks/datasets/ssb/fixtures/tbl/date.tbl new file mode 100644 index 0000000..99b880c --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/tbl/date.tbl @@ -0,0 +1,2 @@ +19940101|January 1, 1994|Saturday|January|1994|199401|Jan1994|6|1|1|1|1|Winter|0|0|1|0| +19940102|January 2, 1994|Sunday|January|1994|199401|Jan1994|7|2|2|1|1|Winter|1|0|0|0| diff --git a/benchmarks/datasets/ssb/fixtures/tbl/lineorder.tbl b/benchmarks/datasets/ssb/fixtures/tbl/lineorder.tbl new file mode 100644 index 0000000..8219280 --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/tbl/lineorder.tbl @@ -0,0 +1,2 @@ +1|1|10|100|1000|19940101|1-URGENT|0|5|10000|12000|3|9700|6000|1|19940105|AIR| +2|1|20|200|2000|19940102|2-HIGH|0|7|20000|23000|4|19200|12000|2|19940106|RAIL| diff --git a/benchmarks/datasets/ssb/fixtures/tbl/part.tbl b/benchmarks/datasets/ssb/fixtures/tbl/part.tbl new file mode 100644 index 0000000..064fd5e --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/tbl/part.tbl @@ -0,0 +1,2 @@ +100|almond antique|MFGR#1|MFGR#11|MFGR#111|almond|STANDARD ANODIZED TIN|3|SM CASE| +200|green burnished|MFGR#2|MFGR#22|MFGR#222|green|PROMO POLISHED STEEL|7|LG BOX| diff --git a/benchmarks/datasets/ssb/fixtures/tbl/supplier.tbl b/benchmarks/datasets/ssb/fixtures/tbl/supplier.tbl new file mode 100644 index 0000000..07a8143 --- /dev/null +++ b/benchmarks/datasets/ssb/fixtures/tbl/supplier.tbl @@ -0,0 +1,2 @@ +1000|Supplier#000001000|Supplier Addr 1000|RUSSIA 1|RUSSIA|EUROPE|30-333-333-3333| +2000|Supplier#000002000|Supplier Addr 2000|ARGENTINA1|ARGENTINA|AMERICA|40-444-444-4444| diff --git a/benchmarks/datasets/ssb/schema.json b/benchmarks/datasets/ssb/schema.json new file mode 100644 index 0000000..0bf0a2d --- /dev/null +++ b/benchmarks/datasets/ssb/schema.json @@ -0,0 +1,87 @@ +{ + "tables": [ + { + "name": "lineorder", + "columns": [ + {"name": "lo_orderkey", "type": "int"}, + {"name": "lo_linenumber", "type": "int"}, + {"name": "lo_custkey", "type": "int"}, + {"name": "lo_partkey", "type": "int"}, + {"name": "lo_suppkey", "type": "int"}, + {"name": "lo_orderdate", "type": "int"}, + {"name": "lo_orderpriority", "type": "string"}, + {"name": "lo_shippriority", "type": "string"}, + {"name": "lo_quantity", "type": "int"}, + {"name": "lo_extendedprice", "type": "int"}, + {"name": "lo_ordtotalprice", "type": "int"}, + {"name": "lo_discount", "type": "int"}, + {"name": "lo_revenue", "type": "int"}, + {"name": "lo_supplycost", "type": "int"}, + {"name": "lo_tax", "type": "int"}, + {"name": "lo_commitdate", "type": "int"}, + {"name": "lo_shipmode", "type": "string"} + ] + }, + { + "name": "customer", + "columns": [ + {"name": "c_custkey", "type": "int"}, + {"name": "c_name", "type": "string"}, + {"name": "c_address", "type": "string"}, + {"name": "c_city", "type": "string"}, + {"name": "c_nation", "type": "string"}, + {"name": "c_region", "type": "string"}, + {"name": "c_phone", "type": "string"}, + {"name": "c_mktsegment", "type": "string"} + ] + }, + { + "name": "supplier", + "columns": [ + {"name": "s_suppkey", "type": "int"}, + {"name": "s_name", "type": "string"}, + {"name": "s_address", "type": "string"}, + {"name": "s_city", "type": "string"}, + {"name": "s_nation", "type": "string"}, + {"name": "s_region", "type": "string"}, + {"name": "s_phone", "type": "string"} + ] + }, + { + "name": "part", + "columns": [ + {"name": "p_partkey", "type": "int"}, + {"name": "p_name", "type": "string"}, + {"name": "p_mfgr", "type": "string"}, + {"name": "p_category", "type": "string"}, + {"name": "p_brand", "type": "string"}, + {"name": "p_color", "type": "string"}, + {"name": "p_type", "type": "string"}, + {"name": "p_size", "type": "int"}, + {"name": "p_container", "type": "string"} + ] + }, + { + "name": "date", + "columns": [ + {"name": "d_datekey", "type": "int"}, + {"name": "d_date", "type": "string"}, + {"name": "d_dayofweek", "type": "string"}, + {"name": "d_month", "type": "string"}, + {"name": "d_year", "type": "int"}, + {"name": "d_yearmonthnum", "type": "int"}, + {"name": "d_yearmonth", "type": "string"}, + {"name": "d_daynuminweek", "type": "int"}, + {"name": "d_daynuminmonth", "type": "int"}, + {"name": "d_daynuminyear", "type": "int"}, + {"name": "d_monthnuminyear", "type": "int"}, + {"name": "d_weeknuminyear", "type": "int"}, + {"name": "d_sellingseason", "type": "string"}, + {"name": "d_lastdayinweekfl", "type": "int"}, + {"name": "d_lastdayinmonthfl", "type": "int"}, + {"name": "d_holidayfl", "type": "int"}, + {"name": "d_weekdayfl", "type": "int"} + ] + } + ] +} diff --git a/benchmarks/datasets/ssb/test_convert_tbl_to_csv.py b/benchmarks/datasets/ssb/test_convert_tbl_to_csv.py new file mode 100644 index 0000000..96d00d8 --- /dev/null +++ b/benchmarks/datasets/ssb/test_convert_tbl_to_csv.py @@ -0,0 +1,82 @@ +from __future__ import annotations + +import shutil +import subprocess +import sys +from pathlib import Path + + +SSB_DIR = Path(__file__).resolve().parent +CONVERTER = SSB_DIR / "convert_tbl_to_csv.py" +SCHEMA = SSB_DIR / "schema.json" +FIXTURE_TBL = SSB_DIR / "fixtures" / "tbl" +EXPECTED_CSV = SSB_DIR / "fixtures" / "expected_csv" + + +def run_converter(input_dir: Path, output_dir: Path) -> subprocess.CompletedProcess[str]: + return subprocess.run( + [ + sys.executable, + str(CONVERTER), + "--schema", + str(SCHEMA), + "--input-dir", + str(input_dir), + "--output-dir", + str(output_dir), + ], + text=True, + capture_output=True, + check=False, + ) + + +def test_converts_all_ssb_tables(tmp_path: Path) -> None: + output_dir = tmp_path / "out" + + result = run_converter(FIXTURE_TBL, output_dir) + + assert result.returncode == 0, result.stderr + expected_files = sorted(path.name for path in EXPECTED_CSV.glob("*.csv")) + actual_files = sorted(path.name for path in output_dir.glob("*.csv")) + assert actual_files == expected_files + for filename in expected_files: + assert (output_dir / filename).read_text() == (EXPECTED_CSV / filename).read_text() + + +def test_rejects_malformed_row_width(tmp_path: Path) -> None: + input_dir = tmp_path / "tbl" + shutil.copytree(FIXTURE_TBL, input_dir) + with (input_dir / "lineorder.tbl").open("a", encoding="utf-8") as f: + f.write("3|too-few-fields|\n") + + result = run_converter(input_dir, tmp_path / "out") + + assert result.returncode != 0 + assert "expected 17 fields for lineorder" in result.stderr + + +def test_rejects_missing_input_file(tmp_path: Path) -> None: + input_dir = tmp_path / "tbl" + shutil.copytree(FIXTURE_TBL, input_dir) + (input_dir / "supplier.tbl").unlink() + + result = run_converter(input_dir, tmp_path / "out") + + assert result.returncode != 0 + assert "missing input file" in result.stderr + assert "supplier.tbl" in result.stderr + + +def test_rejects_invalid_integer(tmp_path: Path) -> None: + input_dir = tmp_path / "tbl" + shutil.copytree(FIXTURE_TBL, input_dir) + (input_dir / "date.tbl").write_text( + "not-an-int|January 1, 1994|Saturday|January|1994|199401|Jan1994|6|1|1|1|1|Winter|0|0|1|0|\n", + encoding="utf-8", + ) + + result = run_converter(input_dir, tmp_path / "out") + + assert result.returncode != 0 + assert "d_datekey expects int" in result.stderr From 27111a9cfdadd78a37d54e2f7b9b09997eb61c47 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 29 May 2026 22:48:49 +0300 Subject: [PATCH 056/120] Add strings support --- benchmarks/main.cpp | 2 +- .../stewkk/sql/logic/executor/executor.hpp | 3 +- include/stewkk/sql/logic/executor/plan.hpp | 5 + .../sql/logic/executor/sequential_scan.hpp | 1 + .../sql/logic/optimizer/physical_expr.hpp | 2 + include/stewkk/sql/models/executor/tuple.hpp | 4 + .../stewkk/sql/models/parser/expression.hpp | 3 +- .../models/parser/relational_algebra_ast.hpp | 5 + research/converter.py | 24 +++-- research/test_converter.py | 92 +++++++++++++++++++ src/stewkk/sql/logic/executor/executor.cpp | 51 +++++++++- .../sql/logic/executor/executor_test.cpp | 59 +++++++++++- src/stewkk/sql/logic/executor/llvm.cpp | 3 + src/stewkk/sql/logic/executor/plan.cpp | 4 + .../sql/logic/executor/plan_serializer.cpp | 82 ++++++++++++++++- .../logic/executor/plan_serializer_test.cpp | 15 +++ .../sql/logic/executor/sequential_scan.cpp | 71 +++++++++++--- .../implementation_rules/implement_table.cpp | 2 +- src/stewkk/sql/logic/optimizer/memo.cpp | 4 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 2 +- .../sql/logic/optimizer/optimizer_test.cpp | 17 ++++ .../sql/logic/optimizer/reachability.cpp | 4 + .../sql/logic/optimizer/schema_catalog.cpp | 6 +- src/stewkk/sql/logic/parser/parser.cpp | 6 +- src/stewkk/sql/logic/parser/parser_test.cpp | 47 ++++++++++ src/stewkk/sql/logic/parser/visitor.cpp | 49 +++++++++- .../filter_pushdown_through_projection.cpp | 1 + .../transformation_rules/predicate_utils.cpp | 3 +- src/stewkk/sql/main.cpp | 7 +- src/stewkk/sql/models/executor/tuple.cpp | 51 ++++++++++ src/stewkk/sql/models/parser/expression.cpp | 11 +++ .../models/parser/relational_algebra_ast.cpp | 4 + test/static/executor/test_data/markets.csv | 4 + 33 files changed, 606 insertions(+), 38 deletions(-) create mode 100644 test/static/executor/test_data/markets.csv diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 101b6fc..dfd9de0 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -26,7 +26,7 @@ namespace { PhysicalPlanNode ToPhysicalPlan(const Operator& op) { return std::visit(utils::Overloaded{ [](const Table& t) -> PhysicalPlanNode { - return SeqScan{.table = t.name}; + return SeqScan{.table = t.name, .alias = t.alias}; }, [](const Projection& p) -> PhysicalPlanNode { return PhysicalProjection{ diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 2361967..7ca29ef 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -47,7 +47,8 @@ template class Executor { public: using SequentialScan = std::function>( - const std::string& table_name, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; + const std::string& table_name, const std::string& output_table_name, + AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor); boost::asio::awaitable> Execute(const PhysicalPlanNode& op); diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index c07d412..67fe7fb 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -1,6 +1,8 @@ #pragma once #include +#include +#include #include #include @@ -25,10 +27,13 @@ using PhysicalPlanNode = std::variant alias; bool operator==(const SeqScan&) const = default; }; +std::string_view OutputTable(const SeqScan& scan); + struct PhysicalProjection { std::shared_ptr source; std::vector expressions; diff --git a/include/stewkk/sql/logic/executor/sequential_scan.hpp b/include/stewkk/sql/logic/executor/sequential_scan.hpp index 51451e1..0ee7435 100644 --- a/include/stewkk/sql/logic/executor/sequential_scan.hpp +++ b/include/stewkk/sql/logic/executor/sequential_scan.hpp @@ -11,6 +11,7 @@ struct CsvDirSequentialScanner { std::string dir; boost::asio::awaitable> operator()(const std::string& table_name, + const std::string& output_table_name, AttributesInfoChannel& attrs_chan, TuplesChannel& tuples_chan) const; }; diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 4c6c43e..6342731 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -16,6 +17,7 @@ namespace physical { struct SeqScan { std::string table; + std::optional alias; bool operator==(const SeqScan&) const = default; }; diff --git a/include/stewkk/sql/models/executor/tuple.hpp b/include/stewkk/sql/models/executor/tuple.hpp index b7189a6..2e6544c 100644 --- a/include/stewkk/sql/models/executor/tuple.hpp +++ b/include/stewkk/sql/models/executor/tuple.hpp @@ -8,6 +8,7 @@ namespace stewkk::sql { enum class Type { kInt, kBool, + kString, }; std::string ToString(Type type); @@ -24,6 +25,7 @@ struct AttributeInfo { union NonNullValue { int64_t int_value; bool bool_value; + int64_t string_id; }; std::string ToString(bool v); @@ -37,6 +39,8 @@ struct Value { }; std::string ToString(Value v, const AttributeInfo& attr); +int64_t InternString(std::string value); +const std::string& GetInternedString(int64_t id); using Tuple = std::vector; using Tuples = std::vector; diff --git a/include/stewkk/sql/models/parser/expression.hpp b/include/stewkk/sql/models/parser/expression.hpp index e6e2763..2a33c02 100644 --- a/include/stewkk/sql/models/parser/expression.hpp +++ b/include/stewkk/sql/models/parser/expression.hpp @@ -17,6 +17,7 @@ struct Attribute { std::string ToString(const Attribute& attr); using IntConst = std::int64_t; +using StringConst = std::string; enum class Literal { kNull, @@ -57,7 +58,7 @@ std::string ToString(UnaryOp op); struct BinaryExpression; struct UnaryExpression; -using Expression = std::variant; +using Expression = std::variant; std::string ToString(const Expression& expr); diff --git a/include/stewkk/sql/models/parser/relational_algebra_ast.hpp b/include/stewkk/sql/models/parser/relational_algebra_ast.hpp index 8c66a27..70f9e3f 100644 --- a/include/stewkk/sql/models/parser/relational_algebra_ast.hpp +++ b/include/stewkk/sql/models/parser/relational_algebra_ast.hpp @@ -1,9 +1,11 @@ #pragma once #include +#include #include #include #include +#include #include #include @@ -22,10 +24,13 @@ using Operator = std::variant; struct Table { std::string name; + std::optional alias; auto operator<=>(const Table& other) const = default; }; +std::string_view VisibleName(const Table& table); + struct Projection { std::vector expressions; std::shared_ptr source; diff --git a/research/converter.py b/research/converter.py index 16c029b..aa46dce 100644 --- a/research/converter.py +++ b/research/converter.py @@ -4,6 +4,7 @@ Serialized format (s-expressions): (SeqScan table) + (SeqScan table alias) (PhysicalFilter EXPR SOURCE) (PhysicalProjection (exprs EXPR...) SOURCE) (NestedLoopCrossJoin LHS RHS) @@ -82,6 +83,16 @@ def _convert_relop(relop: ET.Element) -> str: _SEEK_SCAN_TYPES = {"GT": ">", "GE": ">=", "LT": "<", "LE": "<=", "EQ": "="} +def _strip_sql_name(value: str | None) -> str: + return (value or "").strip("[]") + + +def _object_table_and_alias(obj: ET.Element) -> tuple[str, str | None]: + table = _strip_sql_name(obj.get("Table")) + alias = _strip_sql_name(obj.get("Alias")) + return table, alias or None + + def _convert_scan(relop: ET.Element) -> str: phys_op = relop.get("PhysicalOp", "") obj = relop.find(f".//{NS}IndexScan/{NS}Object") @@ -89,15 +100,16 @@ def _convert_scan(relop: ET.Element) -> str: obj = relop.find(f".//{NS}TableScan/{NS}Object") if obj is None: raise ValueError("cannot find Object element in scan") - table = (obj.get("Alias") or obj.get("Table", "")).strip("[]") + table, alias = _object_table_and_alias(obj) + visible_table = alias or table if "Seek" in phys_op: - seek_pred = _convert_seek_predicates(relop, table) + seek_pred = _convert_seek_predicates(relop, visible_table) if seek_pred is None: raise ValueError(f"Index Seek node has no SeekPredicates: {phys_op!r}") base = f"(IndexSeek {seek_pred} {table})" else: - base = f"(SeqScan {table})" + base = f"(SeqScan {table} {alias})" if alias else f"(SeqScan {table})" # Residual predicate (pushed-down filter evaluated after the scan/seek) pred_elem = relop.find(f".//{NS}IndexScan/{NS}Predicate/{NS}ScalarOperator") @@ -124,7 +136,7 @@ def _convert_seek_predicates(relop: ET.Element, table: str) -> str | None: expr_elems = range_elem.findall(f"{NS}RangeExpressions/{NS}ScalarOperator") for col_ref, expr_elem in zip(col_refs, expr_elems): col = col_ref.get("Column", "").strip("[]") - col_table = (col_ref.get("Alias") or col_ref.get("Table") or table).strip("[]") + col_table = _strip_sql_name(col_ref.get("Alias") or col_ref.get("Table") or table) conditions.append(f"({op} (attr {col_table} {col}) {_convert_scalar(expr_elem)})") if not conditions: @@ -194,7 +206,7 @@ def _expect_two_relops(parent: ET.Element, label: str) -> tuple[ET.Element, ET.E def _col_ref_to_attr(cr: ET.Element) -> str: - table = (cr.get("Alias") or cr.get("Table", "")).strip("[]") + table = _strip_sql_name(cr.get("Alias") or cr.get("Table")) col = cr.get("Column", "").strip("[]") return f"(attr {table} {col})" @@ -306,7 +318,7 @@ def _convert_identifier(identifier: ET.Element) -> str: f"parameter reference {column!r} — use OPTION (RECOMPILE) to embed literal values in the plan" ) - table = (col_ref.get("Alias") or col_ref.get("Table", "")).strip("[]") + table = _strip_sql_name(col_ref.get("Alias") or col_ref.get("Table")) return f"(attr {table} {column})" diff --git a/research/test_converter.py b/research/test_converter.py index 53d14a4..15ee9d0 100644 --- a/research/test_converter.py +++ b/research/test_converter.py @@ -5,6 +5,26 @@ from ms_sql_server_extractor import MsSqlServerExtractor from converter import convert +NS = "http://schemas.microsoft.com/sqlserver/2004/07/showplan" + + +def showplan(relop: str) -> str: + return f""" + + + + + + + {relop} + + + + + + + """ + @pytest.fixture(scope="session") def extractor(): @@ -28,18 +48,90 @@ def test_seq_scan(extractor): assert result == "(SeqScan Titles)" +def test_aliased_seq_scan_from_xml(): + plan = showplan(""" + + + + + + """) + + result = convert(plan) + + assert result == "(SeqScan Titles t)" + + def test_filter_eq(extractor): plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.isAdult = 1") result = convert(plan) assert result == "(PhysicalFilter (= (attr Titles isAdult) 1) (SeqScan Titles))" +def test_aliased_seq_scan_filter_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == "(PhysicalFilter (= (attr t isAdult) 1) (SeqScan Titles t))" + + def test_filter_gt(extractor): plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.titleId > 5000") result = convert(plan) assert result == "(IndexSeek (> (attr Titles titleId) 5000) Titles)" +def test_aliased_index_seek_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == "(IndexSeek (> (attr t titleId) 5000) Titles)" + + def test_filter_lt(extractor): plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.titleId < 5000") result = convert(plan) diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 168072e..8917912 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -58,6 +58,16 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a } return Type::kInt; } + if (std::ranges::contains(std::vector{BinaryOp::kAnd, BinaryOp::kOr}, binop.binop)) { + if (lhs_type != Type::kBool) { + throw std::logic_error{"types mismatch"}; + } + return Type::kBool; + } + if (lhs_type == Type::kString + && !std::ranges::contains(std::vector{BinaryOp::kEq, BinaryOp::kNotEq}, binop.binop)) { + throw std::logic_error{"strings support only = and != operators"}; + } return Type::kBool; } Type operator()(const UnaryExpression& unop) const { @@ -79,6 +89,9 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a Type operator()(const IntConst& iconst) const { return Type::kInt; } + Type operator()(const StringConst& sconst) const { + return Type::kString; + } Type operator()(const Literal& literal) const { // NOTE: we are using switch because compiler will remind about adding // type of new literal here @@ -128,6 +141,9 @@ Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& av Type operator()(const IntConst& iconst) const { return Type::kInt; } + Type operator()(const StringConst& sconst) const { + return Type::kString; + } Type operator()(const Literal& literal) const { switch (literal) { case Literal::kNull: @@ -268,6 +284,9 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co Value operator()(const IntConst& expr) { return Value{false, expr}; } + Value operator()(const StringConst& expr) { + return Value{false, {.string_id = InternString(expr)}}; + } Value operator()(const Literal& expr) { switch (expr) { case Literal::kNull: @@ -346,6 +365,29 @@ Tuple ConcatTuples(const Tuple& lhs, const Tuple& rhs) { return joined_tuple; } +bool ContainsStringExpression(const Expression& expr, const AttributesInfo& attrs) { + struct Visitor { + bool operator()(const BinaryExpression& expr) const { + return std::visit(*this, *expr.lhs) || std::visit(*this, *expr.rhs); + } + bool operator()(const UnaryExpression& expr) const { + return std::visit(*this, *expr.child); + } + bool operator()(const Attribute& attr) const { + auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& attr_info) { + return attr_info.name == attr.name && attr_info.table == attr.table; + }); + return it != attrs.end() && it->type == Type::kString; + } + bool operator()(const StringConst&) const { return true; } + bool operator()(const IntConst&) const { return false; } + bool operator()(const Literal&) const { return false; } + + const AttributesInfo& attrs; + }; + return std::visit(Visitor{attrs}, expr); +} + boost::asio::awaitable InterpretedExpressionExecutor::GetExpressionExecutor(const Expression& expr, const AttributesInfo& attrs) { struct Executor { Value operator()(const Tuple& source, const AttributesInfo& source_attrs) { @@ -358,6 +400,9 @@ boost::asio::awaitable InterpretedExpressionExecutor::GetExpress } boost::asio::awaitable JitCompiledExpressionExecutor::GetExpressionExecutor(const Expression& expr, const AttributesInfo& attrs) { + if (ContainsStringExpression(expr, attrs)) { + throw std::logic_error{"string expressions are not supported by JIT"}; + } struct Executor { Value operator()(const Tuple& source, const AttributesInfo& source_attrs) { Value result; @@ -377,6 +422,9 @@ JitCompiledExpressionExecutor::JitCompiledExpressionExecutor(boost::asio::any_io InterpretedExpressionExecutor::InterpretedExpressionExecutor(boost::asio::any_io_executor executor) {} boost::asio::awaitable CachedJitCompiledExpressionExecutor::GetExpressionExecutor(const Expression& expr, const AttributesInfo& attrs) { + if (ContainsStringExpression(expr, attrs)) { + throw std::logic_error{"string expressions are not supported by JIT"}; + } auto expr_str = ToString(expr); if (auto it = cache_.find(expr_str); it != cache_.end()) { co_return it->second; @@ -446,7 +494,8 @@ template boost::asio::awaitable Executor::Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { struct ExecuteVisitor{ boost::asio::awaitable operator()(const SeqScan& seq_scan) { - co_await executor.sequential_scan_(seq_scan.table, attr_chan, tuples_chan); + co_await executor.sequential_scan_(seq_scan.table, std::string{OutputTable(seq_scan)}, + attr_chan, tuples_chan); co_return; } boost::asio::awaitable operator()(const PhysicalProjection& projection) { diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index 0d44949..e191b26 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -22,7 +23,7 @@ namespace { PhysicalPlanNode ToPhysicalPlan(const Operator& op) { return std::visit(utils::Overloaded{ [](const Table& t) -> PhysicalPlanNode { - return SeqScan{.table = t.name}; + return SeqScan{.table = t.name, .alias = t.alias}; }, [](const Projection& p) -> PhysicalPlanNode { return PhysicalProjection{ @@ -125,6 +126,62 @@ TEST(ExecutorTest, SimpleSelectWithParallelism) { pool.join(); } +TEST(ExecutorTest, StringFilterProjectionAndCsvQuotes) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT m.region, m.note FROM markets AS m WHERE m.region = 'AMERICA';"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + auto got = co_await executor.Execute(op); + + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + + ASSERT_THAT(got.value().attributes, + Eq(AttributesInfo{{"m", "region", Type::kString}, {"m", "note", Type::kString}})); + ASSERT_THAT(got.value().tuples.size(), Eq(2)); + ASSERT_THAT(GetInternedString(got.value().tuples[0][0].value.string_id), Eq("AMERICA")); + ASSERT_THAT(GetInternedString(got.value().tuples[0][1].value.string_id), Eq("North, South")); + ASSERT_THAT(GetInternedString(got.value().tuples[1][1].value.string_id), Eq("Fast lane")); + }); + + ctx.run(); +} + +TEST(ExecutorTest, JitRejectsStringExpressions) { + boost::asio::io_context ctx; + bool rejected = false; + boost::asio::co_spawn( + ctx, + [&rejected]() -> boost::asio::awaitable { + std::stringstream s{"SELECT m.id FROM markets AS m WHERE m.region = 'AMERICA';"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + try { + (void) co_await executor.Execute(op); + } catch (const std::logic_error& e) { + rejected = std::string_view{e.what()}.find("string expressions are not supported by JIT") + != std::string_view::npos; + } + }(), + [](std::exception_ptr p) { + if (p) std::rethrow_exception(p); + }); + + ctx.run(); + ASSERT_THAT(rejected, Eq(true)); +} + TYPED_TEST_P(ExecutorTest, Projection) { boost::asio::thread_pool pool{4}; boost::asio::co_spawn( diff --git a/src/stewkk/sql/logic/executor/llvm.cpp b/src/stewkk/sql/logic/executor/llvm.cpp index f2dd0c1..12bb750 100644 --- a/src/stewkk/sql/logic/executor/llvm.cpp +++ b/src/stewkk/sql/logic/executor/llvm.cpp @@ -307,6 +307,9 @@ llvm::Function* JITCompiler::GenerateIR( return llvm::ConstantStruct::get(static_cast(value_type), {builder.getInt8(0), builder.getInt64(expr)}); } + llvm::Value* operator()(const StringConst&) { + throw std::logic_error{"string expressions are not supported by JIT"}; + } llvm::Value* operator()(const Literal& expr) { switch (expr) { case Literal::kNull: diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index f7aa541..cbba2f1 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -2,6 +2,10 @@ namespace stewkk::sql { +std::string_view OutputTable(const SeqScan& scan) { + return scan.alias ? std::string_view{*scan.alias} : std::string_view{scan.table}; +} + bool PhysicalProjection::operator==(const PhysicalProjection& other) const { return *source == *other.source && expressions == other.expressions; } diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 5df35da..0480822 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -16,6 +16,48 @@ namespace { std::string SerializeExpr(const Expression& expr); std::string SerializeNode(const PhysicalPlanNode& node); +std::string QuoteString(std::string_view value) { + std::string out; + out.reserve(value.size() + 2); + out.push_back('"'); + for (char c : value) { + switch (c) { + case '\\': out += "\\\\"; break; + case '"': out += "\\\""; break; + case '\n': out += "\\n"; break; + case '\t': out += "\\t"; break; + default: out.push_back(c); break; + } + } + out.push_back('"'); + return out; +} + +std::string UnquoteString(std::string_view value) { + if (value.size() < 2 || value.front() != '"' || value.back() != '"') { + throw std::runtime_error("expected quoted string"); + } + std::string out; + for (size_t i = 1; i + 1 < value.size(); ++i) { + if (value[i] != '\\') { + out.push_back(value[i]); + continue; + } + if (i + 1 >= value.size() - 1) { + throw std::runtime_error("unterminated string escape"); + } + char escaped = value[++i]; + switch (escaped) { + case '\\': out.push_back('\\'); break; + case '"': out.push_back('"'); break; + case 'n': out.push_back('\n'); break; + case 't': out.push_back('\t'); break; + default: throw std::runtime_error(std::format("unsupported string escape: \\{}", escaped)); + } + } + return out; +} + std::string SerializeJoinType(JoinType t) { switch (t) { case JoinType::kInner: return "Inner"; @@ -64,6 +106,9 @@ std::string SerializeExpr(const Expression& expr) { std::string operator()(IntConst n) const { return std::to_string(n); } + std::string operator()(const StringConst& s) const { + return std::format("(str {})", QuoteString(s)); + } std::string operator()(const UnaryExpression& e) const { return std::format("({} {})", SerializeUnaryOp(e.op), SerializeExpr(*e.child)); } @@ -82,6 +127,9 @@ std::string SerializeExpr(const Expression& expr) { std::string SerializeNode(const PhysicalPlanNode& node) { struct Visitor { std::string operator()(const SeqScan& n) const { + if (n.alias) { + return std::format("(SeqScan {} {})", n.table, *n.alias); + } return std::format("(SeqScan {})", n.table); } std::string operator()(const PhysicalFilter& n) const { @@ -148,6 +196,26 @@ std::vector Tokenize(std::string_view input) { if (std::isspace(static_cast(input[i]))) { ++i; continue; } if (input[i] == '(') { tokens.push_back({TokenKind::LParen, "("}); ++i; continue; } if (input[i] == ')') { tokens.push_back({TokenKind::RParen, ")"}); ++i; continue; } + if (input[i] == '"') { + size_t j = i + 1; + bool escaped = false; + while (j < input.size()) { + if (escaped) { + escaped = false; + } else if (input[j] == '\\') { + escaped = true; + } else if (input[j] == '"') { + ++j; + break; + } + ++j; + } + if (j > input.size() || input[j - 1] != '"') + throw std::runtime_error("unterminated quoted string"); + tokens.push_back({TokenKind::Atom, std::string(input.substr(i, j - i))}); + i = j; + continue; + } size_t j = i; while (j < input.size() && !std::isspace(static_cast(input[j])) @@ -244,6 +312,11 @@ Expression ParseExpr(ParseState& s) { s.ExpectRParen(); return Attribute{std::move(table), std::move(name)}; } + if (head == "str") { + auto value = UnquoteString(s.ExpectAtom()); + s.ExpectRParen(); + return StringConst{std::move(value)}; + } if (auto it = kBinaryOps.find(head); it != kBinaryOps.end()) { auto lhs = ParseExpr(s); auto rhs = ParseExpr(s); @@ -271,8 +344,12 @@ PhysicalPlanNode ParseNode(ParseState& s) { if (head == "SeqScan") { auto table = s.ExpectAtom(); + std::optional alias; + if (s.Peek().kind != TokenKind::RParen) { + alias = s.ExpectAtom(); + } s.ExpectRParen(); - return SeqScan{std::move(table)}; + return SeqScan{std::move(table), std::move(alias)}; } if (head == "PhysicalFilter") { auto pred = ParseExpr(s); @@ -388,6 +465,9 @@ struct DotBuilder { } int operator()(const SeqScan& n) { + if (n.alias) { + return Emit(std::format("SeqScan\\n{} AS {}", n.table, *n.alias)); + } return Emit(std::format("SeqScan\\n{}", n.table)); } int operator()(const PhysicalFilter& n) { diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index b617101..190692e 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -20,6 +20,12 @@ TEST(PlanSerializerTest, SeqScan) { EXPECT_THAT(Serialize(plan), Eq("(SeqScan users)")); } +TEST(PlanSerializerTest, SeqScanAlias) { + PhysicalPlanNode plan = SeqScan{"customer", "c"}; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + EXPECT_THAT(Serialize(plan), Eq("(SeqScan customer c)")); +} + TEST(PlanSerializerTest, PhysicalFilter) { PhysicalPlanNode plan = PhysicalFilter{ std::make_shared(SeqScan{"users"}), @@ -90,6 +96,15 @@ TEST(PlanSerializerTest, ExprIntConst) { EXPECT_THAT(RoundTrip(plan), Eq(plan)); } +TEST(PlanSerializerTest, ExprStringConst) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + StringConst{"Bob's Market \"North\""}, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + EXPECT_THAT(Serialize(plan), Eq("(PhysicalFilter (str \"Bob's Market \\\"North\\\"\") (SeqScan t))")); +} + TEST(PlanSerializerTest, ExprLiterals) { for (auto lit : {Literal::kNull, Literal::kTrue, Literal::kFalse, Literal::kUnknown}) { PhysicalPlanNode plan = PhysicalFilter{ diff --git a/src/stewkk/sql/logic/executor/sequential_scan.cpp b/src/stewkk/sql/logic/executor/sequential_scan.cpp index 26dc178..453c1a5 100644 --- a/src/stewkk/sql/logic/executor/sequential_scan.cpp +++ b/src/stewkk/sql/logic/executor/sequential_scan.cpp @@ -1,8 +1,11 @@ #include #include +#include #include #include +#include +#include #include @@ -17,38 +20,80 @@ Type GetTypeFromString(const std::string& s) { if (s == "int") { return Type::kInt; } + if (s == "string") { + return Type::kString; + } std::unreachable(); } -Value BuildValueFromString(Type type, const std::string& table, const std::string attr_name, const std::string& value) { +Value BuildValueFromString(Type type, const std::string& value) { if (value == "NULL") { return Value{true}; } switch (type) { case Type::kInt: return Value{false, std::stoi(value)}; + case Type::kString: + return Value{false, {.string_id = InternString(value)}}; default: std::unreachable(); } } +std::vector ParseCsvLine(const std::string& line) { + auto input = std::string_view{line}; + if (!input.empty() && input.back() == '\r') { + input.remove_suffix(1); + } + std::vector fields; + std::string field; + bool in_quotes = false; + for (size_t i = 0; i < input.size(); ++i) { + char c = input[i]; + if (in_quotes) { + if (c == '"') { + if (i + 1 < input.size() && input[i + 1] == '"') { + field.push_back('"'); + ++i; + } else { + in_quotes = false; + } + } else { + field.push_back(c); + } + } else if (c == '"') { + in_quotes = true; + } else if (c == ',') { + fields.push_back(std::move(field)); + field.clear(); + } else { + field.push_back(c); + } + } + fields.push_back(std::move(field)); + return fields; +} + Tuple ParseTuple(const std::string& line, - const AttributesInfo& attributes, - const std::string& table_name) { - return line | std::views::split(',') | std::views::enumerate - | std::views::transform([&attributes, &table_name](const auto& attr) { - const auto& [index, value_range] = attr; - auto value = value_range | std::ranges::to(); + const AttributesInfo& attributes) { + auto fields = ParseCsvLine(line); + if (fields.size() != attributes.size()) { + throw std::runtime_error{std::format("CSV row has {} fields, expected {}", fields.size(), attributes.size())}; + } + return fields | std::views::enumerate + | std::views::transform([&attributes](const auto& attr) { + const auto& [index, value] = attr; const auto& [_, attr_name, type] = attributes[index]; - return BuildValueFromString(type, table_name, attr_name, value); + return BuildValueFromString(type, value); }) - | std::ranges::to(); + | std::ranges::to(); } } // namespace boost::asio::awaitable> CsvDirSequentialScanner::operator()( - const std::string& table_name, AttributesInfoChannel& attrs_chan, + const std::string& table_name, const std::string& output_table_name, + AttributesInfoChannel& attrs_chan, TuplesChannel& tuples_chan) const { #ifdef DEBUG std::clog << "Executing sequential scan\n"; @@ -57,11 +102,11 @@ boost::asio::awaitable> CsvDirSequentialScanner::operator()( std::ifstream input{std::move(path)}; std::string line; std::getline(input, line); - auto attributes = line | std::views::split(',') | std::views::transform([&table_name](const auto& attr) { + auto attributes = line | std::views::split(',') | std::views::transform([&output_table_name](const auto& attr) { auto mid = std::find(attr.begin(), attr.end(), ':'); auto attr_name = std::string{attr.begin(), mid}; auto attr_type = GetTypeFromString(std::string{mid + 1, attr.end()}); - return AttributeInfo{table_name, std::move(attr_name), attr_type}; + return AttributeInfo{output_table_name, std::move(attr_name), attr_type}; }) | std::ranges::to(); @@ -72,7 +117,7 @@ boost::asio::awaitable> CsvDirSequentialScanner::operator()( Tuples buf; buf.reserve(kBufSize); while (std::getline(input, line)) { - auto tuple = ParseTuple(line, attributes, table_name); + auto tuple = ParseTuple(line, attributes); buf.emplace_back(std::move(tuple)); #ifdef DEBUG std::clog << std::format("buf size is {}\n", buf.size()); diff --git a/src/stewkk/sql/logic/implementation_rules/implement_table.cpp b/src/stewkk/sql/logic/implementation_rules/implement_table.cpp index b164175..623b26e 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_table.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_table.cpp @@ -8,7 +8,7 @@ bool ImplementTable::IsApplicable(utils::NotNull expr) { utils::NotNull ImplementTable::Apply(utils::NotNull expr, Memo&) { auto& table = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr(physical::SeqScan{table.name}); + return expr->group->AddPhysicalExpr(physical::SeqScan{table.name, table.alias}); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 51653c7..8741918 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -8,7 +8,7 @@ namespace { std::string ToKey(const LogicalOperator& op) { return std::visit(utils::Overloaded{ [](const logical::Table& t) { - return "Table(" + t.name + ")"; + return "Table(" + t.name + "," + std::string{VisibleName(t)} + ")"; }, [](const logical::Filter& f) { return "Filter(" + ToString(f.predicate) + "," + std::to_string(f.source->GetId()) + ")"; @@ -74,7 +74,7 @@ utils::NotNull Memo::AddLogicalExprToGroup(utils::NotNull utils::NotNull Memo::Populate(const Operator& op) { return std::visit(utils::Overloaded{ [this](const Table& t) { - return AddGroup(logical::Table{t.name}); + return AddGroup(logical::Table{t.name, t.alias}); }, [this](const Filter& f) { auto source = Populate(*f.source); diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index ad7ac30..be5ffa3 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -400,7 +400,7 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G return std::visit( utils::Overloaded{ [](const physical::SeqScan& op) -> PhysicalPlanNode { - return SeqScan{.table = op.table}; + return SeqScan{.table = op.table, .alias = op.alias}; }, [this, best_expr_nn, required](const physical::Projection& op) -> PhysicalPlanNode { return PhysicalProjection{ diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 01c40fa..45190f3 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -102,6 +102,23 @@ TEST(OptimizerTest, OrderBy) { ASSERT_THAT(Serialize(got), Eq("(Sort (keys users.id Asc) (SeqScan users))")); } +TEST(OptimizerTest, AliasedJoinOptimizesWithAliasQualifiedAttrs) { + std::stringstream s{"SELECT c.id FROM customers AS c JOIN orders AS o ON c.id = o.customer_id WHERE c.region_id = 1;"}; + Operator op = GetAST(s).value().op; + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"customers", 500}, + {"orders", 5000}, + })); + + auto got = optimizer.Optimize(); + auto serialized = Serialize(got); + + ASSERT_THAT(serialized, HasSubstr("(SeqScan customers c)")); + ASSERT_THAT(serialized, HasSubstr("(SeqScan orders o)")); + ASSERT_THAT(serialized, HasSubstr("(attr c id)")); + ASSERT_THAT(serialized, HasSubstr("(attr o customer_id)")); +} + TEST(ReachabilityTest, SeqScanReachable) { std::stringstream s{"SELECT * FROM users;"}; auto result = IsPlanReachable(s, SeqScan{"users"}); diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 8f8101a..b4ef7d5 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -28,6 +28,10 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (op.table != t->table) return {false, depth, std::format("SeqScan table '{}' != '{}'", op.table, t->table)}; + if (op.alias != t->alias) + return {false, depth, + std::format("SeqScan alias '{}' != '{}'", + op.alias.value_or(""), t->alias.value_or(""))}; return {true, depth + 1, {}}; }, [&](const physical::Filter& op) -> InternalMatch { diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index d1d04f1..1502c64 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -23,7 +23,11 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { [this](const logical::Table& t) -> std::optional { auto it = tables_.find(t.name); if (it == tables_.end()) return std::nullopt; - return it->second; + auto schema = it->second; + for (auto& attr : schema) { + attr.table = std::string{VisibleName(t)}; + } + return schema; }, [this](const logical::Filter& f) -> std::optional { return GetSchema(f.source); diff --git a/src/stewkk/sql/logic/parser/parser.cpp b/src/stewkk/sql/logic/parser/parser.cpp index e84a997..b65f902 100644 --- a/src/stewkk/sql/logic/parser/parser.cpp +++ b/src/stewkk/sql/logic/parser/parser.cpp @@ -67,6 +67,9 @@ std::string GetDotRepresentation(const Expression& expr) { std::string operator()(const IntConst& expr) { return std::to_string(expr); } + std::string operator()(const StringConst& expr) { + return ToString(Expression{expr}); + } std::string operator()(const Literal& expr) { return ToString(expr); } @@ -91,7 +94,8 @@ std::string GetDotRepresentation(const Operator& op) { return {node, std::format("\"{}\"\n\"{}\" -> \"{}\"\n{}", node, source_node, node, rest)}; } std::pair operator()(const Table& op) { - auto node = std::format("{}", op.name); + auto node = op.alias ? std::format("{} AS {}", op.name, *op.alias) + : std::format("{}", op.name); return {node, std::format("\"{}\"", node)}; } std::pair operator()(const CrossJoin& op) { diff --git a/src/stewkk/sql/logic/parser/parser_test.cpp b/src/stewkk/sql/logic/parser/parser_test.cpp index cc6afd3..4c73ad7 100644 --- a/src/stewkk/sql/logic/parser/parser_test.cpp +++ b/src/stewkk/sql/logic/parser/parser_test.cpp @@ -72,6 +72,53 @@ TEST(ParserTest, SelectWithWhereClause) { std::make_shared(Table{"users"})})})); } +TEST(ParserTest, SelectWithTableAlias) { + std::stringstream s{"SELECT u.id FROM users u WHERE u.age > 18;"}; + + Operator got = GetAST(s).value().op; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"u", "id"}}, + std::make_shared( + Filter{Expression{BinaryExpression{ + std::make_shared(Attribute{"u", "age"}), + BinaryOp::kGt, std::make_shared(IntConst{18})}}, + std::make_shared(Table{"users", "u"})})})); +} + +TEST(ParserTest, SelectWithTableAsAlias) { + std::stringstream s{"SELECT u.id FROM users AS u;"}; + + Operator got = GetAST(s).value().op; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"u", "id"}}, + std::make_shared(Table{"users", "u"})})); +} + +TEST(ParserTest, AliasColumnListRejected) { + std::stringstream s{"SELECT u.id FROM users AS u(id);"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + +TEST(ParserTest, SelectWithStringLiteral) { + std::stringstream s{"SELECT users.id FROM users WHERE users.name = 'Bob''s Market';"}; + + Operator got = GetAST(s).value().op; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"users", "id"}}, + std::make_shared( + Filter{Expression{BinaryExpression{ + std::make_shared(Attribute{"users", "name"}), + BinaryOp::kEq, + std::make_shared(StringConst{"Bob's Market"})}}, + std::make_shared(Table{"users"})})})); +} + TEST(ParserTest, GetDotRepresentation) { std::stringstream s{"SELECT users.id FROM users WHERE users.age > 18;"}; Operator op = GetAST(s).value().op; diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index 8a2c392..37477cc 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -10,6 +10,24 @@ namespace stewkk::sql { namespace { +std::string UnquoteStandardString(std::string_view text) { + if (text.size() < 2 || text.front() != '\'' || text.back() != '\'') { + throw Error{ErrorType::kQueryNotSupported, "only standard single-quoted strings are supported"}; + } + + std::string result; + result.reserve(text.size() - 2); + for (size_t i = 1; i + 1 < text.size(); ++i) { + if (text[i] == '\'' && i + 1 < text.size() - 1 && text[i + 1] == '\'') { + result.push_back('\''); + ++i; + continue; + } + result.push_back(text[i]); + } + return result; +} + Operator GetOperatorWithChild(Operator&& op, Operator&& child) { struct ChildSetter { Operator operator() (Table&& parent) { @@ -209,9 +227,6 @@ std::pair ExtractAtom(Visitor* v, TableRefCtx* ctx) { if (ctx->LATERAL_P()) { throw Error{ErrorType::kQueryNotSupported, "LATERAL clause is not supported"}; } - if (ctx->alias_clause()) { - throw Error{ErrorType::kQueryNotSupported, "alias_clause is not supported"}; - } if (ctx->tablesample_clause()) { throw Error{ErrorType::kQueryNotSupported, "tablesample_clause is not supported"}; } @@ -220,12 +235,28 @@ std::pair ExtractAtom(Visitor* v, TableRefCtx* ctx) { auto it = children.cbegin(); Operator res; if (ctx->relation_expr()) { - res = Table{std::any_cast(v->visit(ctx->relation_expr()))}; + auto table = Table{std::any_cast(v->visit(ctx->relation_expr()))}; + if (auto* alias = ctx->alias_clause()) { + if (alias->name_list()) { + throw Error{ErrorType::kQueryNotSupported, "alias column lists are not supported"}; + } + table.alias = alias->colid()->getText(); + } + res = std::move(table); ++it; + if (ctx->alias_clause()) { + ++it; + } } else if (ctx->select_with_parens()) { + if (ctx->alias_clause()) { + throw Error{ErrorType::kQueryNotSupported, "aliases on subqueries are not supported"}; + } res = std::any_cast(v->visit(ctx->select_with_parens())); ++it; } else if (ctx->OPEN_PAREN()) { + if (ctx->alias_clause()) { + throw Error{ErrorType::kQueryNotSupported, "aliases on parenthesized table refs are not supported"}; + } res = BuildTableRef(v, ctx->table_ref(0)); it += 3; } @@ -704,7 +735,15 @@ std::any Visitor::visitAexprconst(codegen::PostgreSQLParser::AexprconstContext * throw Error{ErrorType::kQueryNotSupported, "intervals are not supported"}; } if (ctx->sconst()) { - throw Error{ErrorType::kQueryNotSupported, "strings are not supported"}; + auto* sconst = ctx->sconst(); + if (sconst->uescape_()) { + throw Error{ErrorType::kQueryNotSupported, "UESCAPE strings are not supported"}; + } + auto* any = sconst->anysconst(); + if (!any->StringConstant()) { + throw Error{ErrorType::kQueryNotSupported, "only standard single-quoted strings are supported"}; + } + return Expression{StringConst{UnquoteStandardString(any->StringConstant()->getText())}}; } if (ctx->xconst()) { throw Error{ErrorType::kQueryNotSupported, "hex literals are not supported"}; diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp index 0a0a5d9..2ab27b2 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp @@ -20,6 +20,7 @@ void CollectAttributes(const Expression& e, std::vector& out) { }, [&](const UnaryExpression& u) { CollectAttributes(*u.child, out); }, [&](const IntConst&) {}, + [&](const StringConst&) {}, [&](const Literal&) {}, }, e); } diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index 4c73ee6..c8128e8 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -43,6 +43,7 @@ void CollectAttrTables(const Expression& e, std::unordered_set& out }, [&](const UnaryExpression& u) { CollectAttrTables(*u.child, out); }, [&](const IntConst&) {}, + [&](const StringConst&) {}, [&](const Literal&) {}, }, e); } @@ -63,7 +64,7 @@ void CollectGroupTables(utils::NotNull g, std::unordered_setGetLogicalExprs(); if (exprs.empty()) return; std::visit(utils::Overloaded{ - [&](const logical::Table& t) { out.insert(t.name); }, + [&](const logical::Table& t) { out.insert(std::string{VisibleName(t)}); }, [&](const logical::Filter& f) { CollectGroupTables(f.source, out, seen); }, [&](const logical::Projection& p) { CollectGroupTables(p.source, out, seen); }, [&](const logical::CrossJoin& j) { diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 6358eb9..041f940 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -120,7 +120,8 @@ std::string SerializeAst(const Operator& op) { return std::visit([](auto&& node) -> std::string { using T = std::decay_t; if constexpr (std::is_same_v) { - return "(Table " + node.name + ")"; + return node.alias ? "(Table " + node.name + " AS " + *node.alias + ")" + : "(Table " + node.name + ")"; } else if constexpr (std::is_same_v) { return "(Filter " + ToString(node.expr) + " " + SerializeAst(*node.source) + ")"; } else if constexpr (std::is_same_v) { @@ -144,6 +145,8 @@ std::string ValueToString(const Value& v, const AttributeInfo& attr) { return std::to_string(v.value.int_value); case Type::kBool: return v.value.bool_value ? "1" : "0"; + case Type::kString: + return GetInternedString(v.value.string_id); } return "?"; } @@ -154,6 +157,8 @@ std::string TypeName(Type t) { return "int"; case Type::kBool: return "bool"; + case Type::kString: + return "string"; } return "?"; } diff --git a/src/stewkk/sql/models/executor/tuple.cpp b/src/stewkk/sql/models/executor/tuple.cpp index 463cbb3..5601a26 100644 --- a/src/stewkk/sql/models/executor/tuple.cpp +++ b/src/stewkk/sql/models/executor/tuple.cpp @@ -1,16 +1,42 @@ #include +#include +#include +#include #include #include +#include +#include namespace stewkk::sql { +namespace { + +std::mutex& StringPoolMutex() { + static std::mutex mutex; + return mutex; +} + +std::deque& StringPoolValues() { + static std::deque values; + return values; +} + +std::unordered_map& StringPoolIds() { + static std::unordered_map ids; + return ids; +} + +} // namespace + std::string ToString(Type type) { switch (type) { case Type::kInt: return "int"; case Type::kBool: return "bool"; + case Type::kString: + return "string"; } std::unreachable(); } @@ -29,6 +55,9 @@ std::string ToString(Value v, const AttributeInfo& attr) { if (attr.type == Type::kInt) { return std::format("{:<8}", v.value.int_value); } + if (attr.type == Type::kString) { + return std::format("{:<8}", GetInternedString(v.value.string_id)); + } return ToString(v.value.bool_value)+' '; } @@ -48,4 +77,26 @@ bool Value::operator==(const Value& other) const { return (is_null && other.is_null) || (!is_null && !other.is_null && value.int_value == other.value.int_value); } +int64_t InternString(std::string value) { + std::lock_guard lock{StringPoolMutex()}; + auto& ids = StringPoolIds(); + if (auto it = ids.find(value); it != ids.end()) { + return it->second; + } + auto& values = StringPoolValues(); + auto id = static_cast(values.size()); + values.push_back(std::move(value)); + ids.emplace(values.back(), id); + return id; +} + +const std::string& GetInternedString(int64_t id) { + std::lock_guard lock{StringPoolMutex()}; + auto& values = StringPoolValues(); + if (id < 0 || static_cast(id) >= values.size()) { + throw std::out_of_range{"string id is not interned"}; + } + return values[static_cast(id)]; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/models/parser/expression.cpp b/src/stewkk/sql/models/parser/expression.cpp index cb37c9b..ec31786 100644 --- a/src/stewkk/sql/models/parser/expression.cpp +++ b/src/stewkk/sql/models/parser/expression.cpp @@ -84,6 +84,17 @@ std::string ToString(const Expression& expr) { std::string operator()(const IntConst& expr) { return std::to_string(expr); } + std::string operator()(const StringConst& expr) { + std::string escaped; + escaped.reserve(expr.size() + 2); + escaped.push_back('\''); + for (char c : expr) { + if (c == '\'') escaped += "''"; + else escaped.push_back(c); + } + escaped.push_back('\''); + return escaped; + } std::string operator()(const UnaryExpression& expr) { return std::format("{} {}", ToString(expr.op), ToString(*expr.child)); } diff --git a/src/stewkk/sql/models/parser/relational_algebra_ast.cpp b/src/stewkk/sql/models/parser/relational_algebra_ast.cpp index 9fadfcf..2774e59 100644 --- a/src/stewkk/sql/models/parser/relational_algebra_ast.cpp +++ b/src/stewkk/sql/models/parser/relational_algebra_ast.cpp @@ -2,6 +2,10 @@ namespace stewkk::sql { +std::string_view VisibleName(const Table& table) { + return table.alias ? std::string_view{*table.alias} : std::string_view{table.name}; +} + bool Projection::operator==(const Projection& other) const { return expressions == other.expressions && *source == *other.source; } diff --git a/test/static/executor/test_data/markets.csv b/test/static/executor/test_data/markets.csv new file mode 100644 index 0000000..59c1ab1 --- /dev/null +++ b/test/static/executor/test_data/markets.csv @@ -0,0 +1,4 @@ +id:int,region:string,note:string +1,AMERICA,"North, South" +2,EUROPE,Old World +3,AMERICA,Fast lane From 950a8d5d914a50c2115a108a6ab3dbc1a2fe736e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Fri, 29 May 2026 22:57:59 +0300 Subject: [PATCH 057/120] Impl IN and BETWEEN support --- .../stewkk/sql/models/parser/expression.hpp | 13 +- src/stewkk/sql/logic/executor/executor.cpp | 81 +++++++++++ .../sql/logic/executor/executor_test.cpp | 133 ++++++++++++++++++ src/stewkk/sql/logic/executor/llvm.cpp | 3 + .../sql/logic/executor/plan_serializer.cpp | 28 ++++ .../logic/executor/plan_serializer_test.cpp | 27 ++++ src/stewkk/sql/logic/parser/parser.cpp | 3 + src/stewkk/sql/logic/parser/parser_test.cpp | 100 +++++++++++++ src/stewkk/sql/logic/parser/visitor.cpp | 56 ++++++-- .../filter_pushdown_through_projection.cpp | 6 + .../transformation_rules/predicate_utils.cpp | 6 + src/stewkk/sql/models/parser/expression.cpp | 11 ++ 12 files changed, 458 insertions(+), 9 deletions(-) diff --git a/include/stewkk/sql/models/parser/expression.hpp b/include/stewkk/sql/models/parser/expression.hpp index 2a33c02..4c53676 100644 --- a/include/stewkk/sql/models/parser/expression.hpp +++ b/include/stewkk/sql/models/parser/expression.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -57,8 +58,10 @@ std::string ToString(UnaryOp op); struct BinaryExpression; struct UnaryExpression; +struct InExpression; -using Expression = std::variant; +using Expression = std::variant; std::string ToString(const Expression& expr); @@ -77,4 +80,12 @@ struct UnaryExpression { bool operator==(const UnaryExpression& other) const; }; +struct InExpression { + std::shared_ptr lhs; + std::vector values; + bool negated = false; + + bool operator==(const InExpression& other) const; +}; + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 8917912..8d762cb 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -86,6 +86,20 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a } return Type::kBool; } + Type operator()(const InExpression& in) const { + auto lhs_type = std::visit(*this, *in.lhs); + for (const auto& value : in.values) { + if (const auto* lit = std::get_if(&value); + lit && (*lit == Literal::kNull || *lit == Literal::kUnknown)) { + continue; + } + auto value_type = std::visit(*this, value); + if (value_type != lhs_type) { + throw std::logic_error{"types mismatch"}; + } + } + return Type::kBool; + } Type operator()(const IntConst& iconst) const { return Type::kInt; } @@ -138,6 +152,9 @@ Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& av } return Type::kBool; } + Type operator()(const InExpression& in) const { + return Type::kBool; + } Type operator()(const IntConst& iconst) const { return Type::kInt; } @@ -189,6 +206,17 @@ AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const P Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, const Expression& expr) { struct ExpressionVisitor { + bool ValuesEqual(Value lhs, Value rhs, Type type) { + switch (type) { + case Type::kInt: + return lhs.value.int_value == rhs.value.int_value; + case Type::kBool: + return lhs.value.bool_value == rhs.value.bool_value; + case Type::kString: + return lhs.value.string_id == rhs.value.string_id; + } + } + Value operator()(const BinaryExpression& expr) { auto lhs = std::visit(*this, *expr.lhs); auto rhs = std::visit(*this, *expr.rhs); @@ -272,6 +300,30 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co return Value{false, child.is_null}; } } + Value operator()(const InExpression& expr) { + auto lhs = std::visit(*this, *expr.lhs); + if (lhs.is_null) { + return Value{true}; + } + + auto lhs_type = GetExpressionTypeUnchecked(*expr.lhs, source_attrs); + bool saw_null = false; + for (const auto& value_expr : expr.values) { + auto value = std::visit(*this, value_expr); + if (value.is_null) { + saw_null = true; + continue; + } + if (ValuesEqual(lhs, value, lhs_type)) { + return Value{false, !expr.negated}; + } + } + + if (saw_null) { + return Value{true}; + } + return Value{false, expr.negated}; + } Value operator()(const Attribute& expr) { auto it = std::find_if(source_attrs.begin(), source_attrs.end(), [&expr](const AttributeInfo& attr_info) { @@ -373,6 +425,12 @@ bool ContainsStringExpression(const Expression& expr, const AttributesInfo& attr bool operator()(const UnaryExpression& expr) const { return std::visit(*this, *expr.child); } + bool operator()(const InExpression& expr) const { + return std::visit(*this, *expr.lhs) + || std::ranges::any_of(expr.values, [&](const Expression& value) { + return std::visit(*this, value); + }); + } bool operator()(const Attribute& attr) const { auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& attr_info) { return attr_info.name == attr.name && attr_info.table == attr.table; @@ -388,6 +446,23 @@ bool ContainsStringExpression(const Expression& expr, const AttributesInfo& attr return std::visit(Visitor{attrs}, expr); } +bool ContainsInExpression(const Expression& expr) { + struct Visitor { + bool operator()(const BinaryExpression& expr) const { + return std::visit(*this, *expr.lhs) || std::visit(*this, *expr.rhs); + } + bool operator()(const UnaryExpression& expr) const { + return std::visit(*this, *expr.child); + } + bool operator()(const InExpression&) const { return true; } + bool operator()(const Attribute&) const { return false; } + bool operator()(const StringConst&) const { return false; } + bool operator()(const IntConst&) const { return false; } + bool operator()(const Literal&) const { return false; } + }; + return std::visit(Visitor{}, expr); +} + boost::asio::awaitable InterpretedExpressionExecutor::GetExpressionExecutor(const Expression& expr, const AttributesInfo& attrs) { struct Executor { Value operator()(const Tuple& source, const AttributesInfo& source_attrs) { @@ -400,6 +475,9 @@ boost::asio::awaitable InterpretedExpressionExecutor::GetExpress } boost::asio::awaitable JitCompiledExpressionExecutor::GetExpressionExecutor(const Expression& expr, const AttributesInfo& attrs) { + if (ContainsInExpression(expr)) { + throw std::logic_error{"IN expressions are not supported by JIT"}; + } if (ContainsStringExpression(expr, attrs)) { throw std::logic_error{"string expressions are not supported by JIT"}; } @@ -422,6 +500,9 @@ JitCompiledExpressionExecutor::JitCompiledExpressionExecutor(boost::asio::any_io InterpretedExpressionExecutor::InterpretedExpressionExecutor(boost::asio::any_io_executor executor) {} boost::asio::awaitable CachedJitCompiledExpressionExecutor::GetExpressionExecutor(const Expression& expr, const AttributesInfo& attrs) { + if (ContainsInExpression(expr)) { + throw std::logic_error{"IN expressions are not supported by JIT"}; + } if (ContainsStringExpression(expr, attrs)) { throw std::logic_error{"string expressions are not supported by JIT"}; } diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index e191b26..162f2ae 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -155,6 +155,112 @@ TEST(ExecutorTest, StringFilterProjectionAndCsvQuotes) { ctx.run(); } +TEST(ExecutorTest, StringInFilter) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT m.id FROM markets AS m WHERE m.region IN ('AMERICA', 'ASIA');"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + auto got = co_await executor.Execute(op); + + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + + ASSERT_THAT(got.value().attributes, Eq(AttributesInfo{{"m", "id", Type::kInt}})); + ASSERT_THAT(got.value().tuples, Eq(Tuples{{Value{false, 1}}, {Value{false, 3}}})); + }); + + ctx.run(); +} + +TEST(ExecutorTest, StringNotInFilter) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT m.id FROM markets AS m WHERE m.region NOT IN ('AMERICA', 'ASIA');"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + auto got = co_await executor.Execute(op); + + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + + ASSERT_THAT(got.value().attributes, Eq(AttributesInfo{{"m", "id", Type::kInt}})); + ASSERT_THAT(got.value().tuples, Eq(Tuples{{Value{false, 2}}})); + }); + + ctx.run(); +} + +TEST(ExecutorTest, IntegerBetweenFilter) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT users.id FROM users WHERE users.age BETWEEN 5 AND 11;"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + auto got = co_await executor.Execute(op); + + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + + ASSERT_THAT(got.value().attributes, Eq(AttributesInfo{{"users", "id", Type::kInt}})); + ASSERT_THAT(got.value().tuples, Eq(Tuples{{Value{false, 4}}, {Value{false, 6}}})); + }); + + ctx.run(); +} + +TEST(ExecutorTest, InNullSemantics) { + AttributesInfo attrs{{"t", "x", Type::kInt}}; + Tuple tuple{Value{false, 2}}; + + Expression positive = InExpression{ + std::make_shared(Attribute{"t", "x"}), + {IntConst{1}, Literal::kNull}, + false, + }; + Expression negative = InExpression{ + std::make_shared(Attribute{"t", "x"}), + {IntConst{1}, Literal::kNull}, + true, + }; + Expression matched = InExpression{ + std::make_shared(Attribute{"t", "x"}), + {IntConst{2}, Literal::kNull}, + false, + }; + Expression null_lhs = InExpression{ + std::make_shared(Literal::kNull), + {IntConst{1}, IntConst{2}}, + false, + }; + + ASSERT_THAT(CalcExpression(tuple, attrs, positive).is_null, Eq(true)); + ASSERT_THAT(CalcExpression(tuple, attrs, negative).is_null, Eq(true)); + ASSERT_THAT(CalcExpression(tuple, attrs, matched), Eq(Value{false, true})); + ASSERT_THAT(CalcExpression(tuple, attrs, null_lhs).is_null, Eq(true)); +} + TEST(ExecutorTest, JitRejectsStringExpressions) { boost::asio::io_context ctx; bool rejected = false; @@ -182,6 +288,33 @@ TEST(ExecutorTest, JitRejectsStringExpressions) { ASSERT_THAT(rejected, Eq(true)); } +TEST(ExecutorTest, JitRejectsInExpressions) { + boost::asio::io_context ctx; + bool rejected = false; + boost::asio::co_spawn( + ctx, + [&rejected]() -> boost::asio::awaitable { + std::stringstream s{"SELECT users.id FROM users WHERE users.age IN (1, 2);"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + try { + (void) co_await executor.Execute(op); + } catch (const std::logic_error& e) { + rejected = std::string_view{e.what()}.find("IN expressions are not supported by JIT") + != std::string_view::npos; + } + }(), + [](std::exception_ptr p) { + if (p) std::rethrow_exception(p); + }); + + ctx.run(); + ASSERT_THAT(rejected, Eq(true)); +} + TYPED_TEST_P(ExecutorTest, Projection) { boost::asio::thread_pool pool{4}; boost::asio::co_spawn( diff --git a/src/stewkk/sql/logic/executor/llvm.cpp b/src/stewkk/sql/logic/executor/llvm.cpp index 12bb750..470add5 100644 --- a/src/stewkk/sql/logic/executor/llvm.cpp +++ b/src/stewkk/sql/logic/executor/llvm.cpp @@ -310,6 +310,9 @@ llvm::Function* JITCompiler::GenerateIR( llvm::Value* operator()(const StringConst&) { throw std::logic_error{"string expressions are not supported by JIT"}; } + llvm::Value* operator()(const InExpression&) { + throw std::logic_error{"IN expressions are not supported by JIT"}; + } llvm::Value* operator()(const Literal& expr) { switch (expr) { case Literal::kNull: diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 0480822..9729557 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -112,6 +112,15 @@ std::string SerializeExpr(const Expression& expr) { std::string operator()(const UnaryExpression& e) const { return std::format("({} {})", SerializeUnaryOp(e.op), SerializeExpr(*e.child)); } + std::string operator()(const InExpression& e) const { + std::string values; + for (const auto& value : e.values) { + if (!values.empty()) values += ' '; + values += SerializeExpr(value); + } + return std::format("({} {} (values {}))", + e.negated ? "notin" : "in", SerializeExpr(*e.lhs), values); + } std::string operator()(Literal l) const { switch (l) { case Literal::kNull: return "NULL"; @@ -317,6 +326,25 @@ Expression ParseExpr(ParseState& s) { s.ExpectRParen(); return StringConst{std::move(value)}; } + if (head == "in" || head == "notin") { + auto lhs = ParseExpr(s); + s.ExpectLParen(); + auto values_head = s.ExpectAtom(); + if (values_head != "values") { + throw std::runtime_error(std::format("expected values but got '{}'", values_head)); + } + std::vector values; + while (s.Peek().kind != TokenKind::RParen) { + values.push_back(ParseExpr(s)); + } + s.ExpectRParen(); + s.ExpectRParen(); + return InExpression{ + std::make_shared(std::move(lhs)), + std::move(values), + head == "notin", + }; + } if (auto it = kBinaryOps.find(head); it != kBinaryOps.end()) { auto lhs = ParseExpr(s); auto rhs = ParseExpr(s); diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index 190692e..7a8229b 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -105,6 +105,33 @@ TEST(PlanSerializerTest, ExprStringConst) { EXPECT_THAT(Serialize(plan), Eq("(PhysicalFilter (str \"Bob's Market \\\"North\\\"\") (SeqScan t))")); } +TEST(PlanSerializerTest, ExprInList) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + InExpression{ + std::make_shared(Attribute{"t", "region"}), + {StringConst{"AMERICA"}, StringConst{"ASIA"}, Literal::kNull}, + false, + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + EXPECT_THAT(Serialize(plan), + Eq("(PhysicalFilter (in (attr t region) (values (str \"AMERICA\") (str \"ASIA\") NULL)) (SeqScan t))")); +} + +TEST(PlanSerializerTest, ExprNotInList) { + PhysicalPlanNode plan = PhysicalFilter{ + std::make_shared(SeqScan{"t"}), + InExpression{ + std::make_shared(Attribute{"t", "id"}), + {IntConst{1}, IntConst{2}}, + true, + }, + }; + EXPECT_THAT(RoundTrip(plan), Eq(plan)); + EXPECT_THAT(Serialize(plan), Eq("(PhysicalFilter (notin (attr t id) (values 1 2)) (SeqScan t))")); +} + TEST(PlanSerializerTest, ExprLiterals) { for (auto lit : {Literal::kNull, Literal::kTrue, Literal::kFalse, Literal::kUnknown}) { PhysicalPlanNode plan = PhysicalFilter{ diff --git a/src/stewkk/sql/logic/parser/parser.cpp b/src/stewkk/sql/logic/parser/parser.cpp index b65f902..9319e77 100644 --- a/src/stewkk/sql/logic/parser/parser.cpp +++ b/src/stewkk/sql/logic/parser/parser.cpp @@ -61,6 +61,9 @@ std::string GetDotRepresentation(const Expression& expr) { std::string operator()(const UnaryExpression& expr) { return std::format("({} {})",ToString(expr.op), std::visit(DotFormatter{}, *expr.child)); } + std::string operator()(const InExpression& expr) { + return ToString(Expression{expr}); + } std::string operator()(const Attribute& expr) { return ToString(expr); } diff --git a/src/stewkk/sql/logic/parser/parser_test.cpp b/src/stewkk/sql/logic/parser/parser_test.cpp index 4c73ad7..a0e23e1 100644 --- a/src/stewkk/sql/logic/parser/parser_test.cpp +++ b/src/stewkk/sql/logic/parser/parser_test.cpp @@ -119,6 +119,106 @@ TEST(ParserTest, SelectWithStringLiteral) { std::make_shared(Table{"users"})})})); } +TEST(ParserTest, SelectWithBetween) { + std::stringstream s{"SELECT users.id FROM users WHERE users.age BETWEEN 18 AND 30;"}; + + Operator got = GetAST(s).value().op; + + auto ge = BinaryExpression{ + std::make_shared(Attribute{"users", "age"}), + BinaryOp::kGe, + std::make_shared(IntConst{18}), + }; + auto le = BinaryExpression{ + std::make_shared(Attribute{"users", "age"}), + BinaryOp::kLe, + std::make_shared(IntConst{30}), + }; + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"users", "id"}}, + std::make_shared( + Filter{Expression{BinaryExpression{ + std::make_shared(std::move(ge)), + BinaryOp::kAnd, + std::make_shared(std::move(le))}}, + std::make_shared(Table{"users"})})})); +} + +TEST(ParserTest, SelectWithNotBetween) { + std::stringstream s{"SELECT users.id FROM users WHERE users.age NOT BETWEEN 18 AND 30;"}; + + Operator got = GetAST(s).value().op; + + auto ge = BinaryExpression{ + std::make_shared(Attribute{"users", "age"}), + BinaryOp::kGe, + std::make_shared(IntConst{18}), + }; + auto le = BinaryExpression{ + std::make_shared(Attribute{"users", "age"}), + BinaryOp::kLe, + std::make_shared(IntConst{30}), + }; + auto between = BinaryExpression{ + std::make_shared(std::move(ge)), + BinaryOp::kAnd, + std::make_shared(std::move(le)), + }; + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"users", "id"}}, + std::make_shared( + Filter{Expression{UnaryExpression{ + UnaryOp::kNot, + std::make_shared(std::move(between))}}, + std::make_shared(Table{"users"})})})); +} + +TEST(ParserTest, SelectWithInList) { + std::stringstream s{"SELECT m.id FROM markets AS m WHERE m.region IN ('AMERICA', 'ASIA');"}; + + Operator got = GetAST(s).value().op; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"m", "id"}}, + std::make_shared( + Filter{Expression{InExpression{ + std::make_shared(Attribute{"m", "region"}), + {StringConst{"AMERICA"}, StringConst{"ASIA"}}, + false}}, + std::make_shared(Table{"markets", "m"})})})); +} + +TEST(ParserTest, SelectWithNotInList) { + std::stringstream s{"SELECT m.id FROM markets AS m WHERE m.region NOT IN ('AMERICA', 'ASIA');"}; + + Operator got = GetAST(s).value().op; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"m", "id"}}, + std::make_shared( + Filter{Expression{InExpression{ + std::make_shared(Attribute{"m", "region"}), + {StringConst{"AMERICA"}, StringConst{"ASIA"}}, + true}}, + std::make_shared(Table{"markets", "m"})})})); +} + +TEST(ParserTest, SelectWithBetweenSymmetricRejected) { + std::stringstream s{"SELECT users.id FROM users WHERE users.age BETWEEN SYMMETRIC 18 AND 30;"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + +TEST(ParserTest, SelectWithInSubqueryRejected) { + std::stringstream s{"SELECT users.id FROM users WHERE users.age IN (SELECT users.age FROM users);"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + TEST(ParserTest, GetDotRepresentation) { std::stringstream s{"SELECT users.id FROM users WHERE users.age > 18;"}; Operator op = GetAST(s).value().op; diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index 37477cc..c51e0f0 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -213,6 +213,18 @@ using ChildIt = std::vector::const_iterator; Operator BuildTableRef(Visitor* v, TableRefCtx* ctx); +Expression MakeBinary(Expression lhs, BinaryOp op, Expression rhs) { + return BinaryExpression{ + std::make_shared(std::move(lhs)), + op, + std::make_shared(std::move(rhs)), + }; +} + +Expression MakeUnary(UnaryOp op, Expression child) { + return UnaryExpression{op, std::make_shared(std::move(child))}; +} + // Returns the table_ref's atom (no joins) and an iterator pointing to its first // post-atom child. The grammar's `(... join ...)*` tail is greedy on the rhs // table_ref, so the caller is responsible for flattening that chain instead of @@ -497,19 +509,47 @@ std::any Visitor::visitA_expr_and(codegen::PostgreSQLParser::A_expr_andContext * } std::any Visitor::visitA_expr_between(codegen::PostgreSQLParser::A_expr_betweenContext *ctx) { - if (ctx->BETWEEN()) { - // NOTE: may want to support - throw Error{ErrorType::kQueryNotSupported, "BETWEEN clause is not supported"}; + if (!ctx->BETWEEN()) { + return visit(ctx->a_expr_in(0)); + } + if (ctx->SYMMETRIC()) { + throw Error{ErrorType::kQueryNotSupported, "BETWEEN SYMMETRIC clause is not supported"}; + } + + auto exprs = ctx->a_expr_in(); + auto value = std::any_cast(visit(exprs[0])); + auto lower = std::any_cast(visit(exprs[1])); + auto upper = std::any_cast(visit(exprs[2])); + + auto ge = MakeBinary(value, BinaryOp::kGe, std::move(lower)); + auto le = MakeBinary(std::move(value), BinaryOp::kLe, std::move(upper)); + auto result = MakeBinary(std::move(ge), BinaryOp::kAnd, std::move(le)); + if (ctx->NOT()) { + result = MakeUnary(UnaryOp::kNot, std::move(result)); } - return visit(ctx->a_expr_in(0)); + return result; } std::any Visitor::visitA_expr_in(codegen::PostgreSQLParser::A_expr_inContext *ctx) { - if (ctx->IN_P()) { - // NOTE: may want to support - throw Error{ErrorType::kQueryNotSupported, "IN clause is not supported"}; + auto lhs = std::any_cast(visit(ctx->a_expr_unary_not())); + if (!ctx->IN_P()) { + return lhs; + } + + auto* in_list = dynamic_cast(ctx->in_expr()); + if (!in_list) { + throw Error{ErrorType::kQueryNotSupported, "IN subqueries are not supported"}; + } + + std::vector values; + for (auto* expr : in_list->expr_list()->a_expr()) { + values.push_back(std::any_cast(visit(expr))); } - return visit(ctx->a_expr_unary_not()); + return Expression{InExpression{ + std::make_shared(std::move(lhs)), + std::move(values), + ctx->NOT() != nullptr, + }}; } std::any Visitor::visitA_expr_unary_not(codegen::PostgreSQLParser::A_expr_unary_notContext *ctx) { diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp index 2ab27b2..178f27f 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp @@ -19,6 +19,12 @@ void CollectAttributes(const Expression& e, std::vector& out) { CollectAttributes(*b.rhs, out); }, [&](const UnaryExpression& u) { CollectAttributes(*u.child, out); }, + [&](const InExpression& i) { + CollectAttributes(*i.lhs, out); + for (const auto& value : i.values) { + CollectAttributes(value, out); + } + }, [&](const IntConst&) {}, [&](const StringConst&) {}, [&](const Literal&) {}, diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index c8128e8..0ad685c 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -42,6 +42,12 @@ void CollectAttrTables(const Expression& e, std::unordered_set& out CollectAttrTables(*b.rhs, out); }, [&](const UnaryExpression& u) { CollectAttrTables(*u.child, out); }, + [&](const InExpression& i) { + CollectAttrTables(*i.lhs, out); + for (const auto& value : i.values) { + CollectAttrTables(value, out); + } + }, [&](const IntConst&) {}, [&](const StringConst&) {}, [&](const Literal&) {}, diff --git a/src/stewkk/sql/models/parser/expression.cpp b/src/stewkk/sql/models/parser/expression.cpp index ec31786..4d5c9a9 100644 --- a/src/stewkk/sql/models/parser/expression.cpp +++ b/src/stewkk/sql/models/parser/expression.cpp @@ -1,6 +1,7 @@ #include #include +#include namespace stewkk::sql { @@ -12,6 +13,10 @@ bool UnaryExpression::operator==(const UnaryExpression& other) const { return op == other.op && *child == *other.child; } +bool InExpression::operator==(const InExpression& other) const { + return *lhs == *other.lhs && values == other.values && negated == other.negated; +} + std::string ToString(const Attribute& attr) { return std::format("{}.{}", attr.table, attr.name); } @@ -98,6 +103,12 @@ std::string ToString(const Expression& expr) { std::string operator()(const UnaryExpression& expr) { return std::format("{} {}", ToString(expr.op), ToString(*expr.child)); } + std::string operator()(const InExpression& expr) { + auto values = expr.values | std::views::transform([](const Expression& v) { + return ToString(v); + }) | std::views::join_with(',') | std::ranges::to(); + return std::format("{} {}in ({})", ToString(*expr.lhs), expr.negated ? "not " : "", values); + } std::string operator()(const Literal& expr) { return ToString(expr); } From fd68c6844d9e8b90f0ea431ea68b8926887309c7 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 01:50:35 +0300 Subject: [PATCH 058/120] Impl group by --- benchmarks/main.cpp | 3 + .../stewkk/sql/logic/executor/executor.hpp | 3 + include/stewkk/sql/logic/executor/plan.hpp | 11 +- .../implement_aggregation.hpp | 13 + .../sql/logic/optimizer/logical_expr.hpp | 12 +- .../sql/logic/optimizer/physical_expr.hpp | 10 +- include/stewkk/sql/logic/optimizer/rules.hpp | 3 +- .../stewkk/sql/models/parser/expression.hpp | 18 +- .../models/parser/relational_algebra_ast.hpp | 12 +- src/stewkk/sql/CMakeLists.txt | 1 + src/stewkk/sql/logic/executor/executor.cpp | 160 ++++++++++ .../sql/logic/executor/executor_test.cpp | 76 +++++ src/stewkk/sql/logic/executor/llvm.cpp | 3 + src/stewkk/sql/logic/executor/plan.cpp | 4 + .../sql/logic/executor/plan_serializer.cpp | 62 ++++ .../implement_aggregation.cpp | 15 + .../sql/logic/optimizer/cardinality.cpp | 7 + src/stewkk/sql/logic/optimizer/memo.cpp | 24 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 24 +- .../sql/logic/optimizer/reachability.cpp | 11 + src/stewkk/sql/logic/optimizer/rules.cpp | 3 +- .../sql/logic/optimizer/rules_applier.cpp | 3 +- .../sql/logic/optimizer/schema_catalog.cpp | 16 + src/stewkk/sql/logic/parser/parser.cpp | 14 + src/stewkk/sql/logic/parser/parser_test.cpp | 123 +++++++- src/stewkk/sql/logic/parser/visitor.cpp | 291 +++++++++++++++++- src/stewkk/sql/logic/parser/visitor.hpp | 6 + .../filter_pushdown_through_projection.cpp | 7 +- .../transformation_rules/predicate_utils.cpp | 6 + src/stewkk/sql/main.cpp | 14 +- src/stewkk/sql/models/parser/expression.cpp | 25 ++ .../models/parser/relational_algebra_ast.cpp | 14 +- 32 files changed, 967 insertions(+), 27 deletions(-) create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index dfd9de0..06275b6 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -40,6 +40,9 @@ PhysicalPlanNode ToPhysicalPlan(const Operator& op) { .predicate = f.expr, }; }, + [](const Aggregation&) -> PhysicalPlanNode { + throw std::runtime_error{"Aggregation execution is not implemented"}; + }, [](const CrossJoin& j) -> PhysicalPlanNode { return NestedLoopCrossJoin{ .lhs = std::make_shared(ToPhysicalPlan(*j.lhs)), diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 7ca29ef..a5cb53b 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -66,6 +66,9 @@ class Executor { TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteHashJoin(const HashJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteHashAggregate(const PhysicalAggregation& agg, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); boost::asio::experimental::promise SpawnExecutor( boost::asio::any_io_executor exec, const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 67fe7fb..3e6c7f9 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -22,8 +22,9 @@ struct HashJoin; struct MergeJoin; struct IndexSeek; struct PhysicalSort; +struct PhysicalAggregation; -using PhysicalPlanNode = std::variant; +using PhysicalPlanNode = std::variant; struct SeqScan { std::string table; @@ -96,4 +97,12 @@ struct PhysicalSort { bool operator==(const PhysicalSort&) const; }; +struct PhysicalAggregation { + std::shared_ptr source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const PhysicalAggregation&) const; +}; + } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp b/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp new file mode 100644 index 0000000..b92318f --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementAggregation : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/logical_expr.hpp b/include/stewkk/sql/logic/optimizer/logical_expr.hpp index 6a74cf2..8e2af14 100644 --- a/include/stewkk/sql/logic/optimizer/logical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/logical_expr.hpp @@ -21,10 +21,19 @@ struct Filter { struct Projection { utils::NotNull source; std::vector expressions; + std::vector> aliases; bool operator==(const Projection&) const = default; }; +struct Aggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const Aggregation&) const = default; +}; + struct CrossJoin { utils::NotNull lhs; utils::NotNull rhs; @@ -45,7 +54,8 @@ struct Join { } // namespace logical struct LogicalExpr { - std::variant root_operator; + std::variant root_operator; utils::NotNull group; }; diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 6342731..452885f 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -68,12 +68,20 @@ struct Sort { bool operator==(const Sort&) const = default; }; +struct Aggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const Aggregation&) const = default; +}; + } // namespace physical struct PhysicalExpr { std::variant root_operator; + physical::HashJoin, physical::Sort, physical::Aggregation> root_operator; utils::NotNull group; bool is_enforcer = false; }; diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index d655cc7..7568b91 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -16,6 +16,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -25,6 +26,6 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<6, 6> MakeMainRules(); +Rules<6, 7> MakeMainRules(); } // namespace stewkk::sql diff --git a/include/stewkk/sql/models/parser/expression.hpp b/include/stewkk/sql/models/parser/expression.hpp index 4c53676..54d8a18 100644 --- a/include/stewkk/sql/models/parser/expression.hpp +++ b/include/stewkk/sql/models/parser/expression.hpp @@ -59,9 +59,17 @@ std::string ToString(UnaryOp op); struct BinaryExpression; struct UnaryExpression; struct InExpression; +struct AggregateExpression; + +enum class AggregateFunction { + kSum, + kCount, +}; + +std::string ToString(AggregateFunction function); using Expression = std::variant; + InExpression, AggregateExpression, Literal>; std::string ToString(const Expression& expr); @@ -88,4 +96,12 @@ struct InExpression { bool operator==(const InExpression& other) const; }; +struct AggregateExpression { + AggregateFunction function; + std::shared_ptr argument; + bool is_star = false; + + bool operator==(const AggregateExpression& other) const; +}; + } // namespace stewkk::sql diff --git a/include/stewkk/sql/models/parser/relational_algebra_ast.hpp b/include/stewkk/sql/models/parser/relational_algebra_ast.hpp index 70f9e3f..2f3fcc4 100644 --- a/include/stewkk/sql/models/parser/relational_algebra_ast.hpp +++ b/include/stewkk/sql/models/parser/relational_algebra_ast.hpp @@ -17,10 +17,11 @@ constexpr static std::string kEmptyTableName = "_EMPTY_TABLE_"; struct Table; struct Projection; struct Filter; +struct Aggregation; struct CrossJoin; struct Join; -using Operator = std::variant; +using Operator = std::variant; struct Table { std::string name; @@ -34,6 +35,7 @@ std::string_view VisibleName(const Table& table); struct Projection { std::vector expressions; std::shared_ptr source; + std::vector> aliases; bool operator==(const Projection& other) const; }; @@ -45,6 +47,14 @@ struct Filter { bool operator==(const Filter& other) const; }; +struct Aggregation { + std::vector group_by; + std::vector aggregates; + std::shared_ptr source; + + bool operator==(const Aggregation& other) const; +}; + struct CrossJoin { std::shared_ptr lhs; std::shared_ptr rhs; diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index fea3108..dd9d927 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -51,6 +51,7 @@ add_library(libsql logic/implementation_rules/implement_join.cpp logic/implementation_rules/implement_cross_join.cpp logic/implementation_rules/implement_hash_join.cpp + logic/implementation_rules/implement_aggregation.cpp logic/optimizer/properties/sort_order.cpp logic/optimizer/properties/sort_property.cpp logic/optimizer/properties/property_set.cpp diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 8d762cb..6a5deb2 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include #include @@ -9,6 +10,7 @@ #include #include #include +#include #include #include @@ -100,6 +102,15 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a } return Type::kBool; } + Type operator()(const AggregateExpression& aggregate) const { + if (aggregate.function == AggregateFunction::kCount) { + return Type::kInt; + } + if (aggregate.is_star) { + throw std::logic_error{"star aggregate has no scalar type"}; + } + return std::visit(*this, *aggregate.argument); + } Type operator()(const IntConst& iconst) const { return Type::kInt; } @@ -155,6 +166,9 @@ Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& av Type operator()(const InExpression& in) const { return Type::kBool; } + Type operator()(const AggregateExpression& aggregate) const { + return Type::kInt; + } Type operator()(const IntConst& iconst) const { return Type::kInt; } @@ -324,6 +338,9 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co } return Value{false, expr.negated}; } + Value operator()(const AggregateExpression&) { + throw std::logic_error{"aggregate expressions cannot be evaluated as scalar expressions"}; + } Value operator()(const Attribute& expr) { auto it = std::find_if(source_attrs.begin(), source_attrs.end(), [&expr](const AttributeInfo& attr_info) { @@ -431,6 +448,9 @@ bool ContainsStringExpression(const Expression& expr, const AttributesInfo& attr return std::visit(*this, value); }); } + bool operator()(const AggregateExpression& expr) const { + return !expr.is_star && expr.argument && std::visit(*this, *expr.argument); + } bool operator()(const Attribute& attr) const { auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& attr_info) { return attr_info.name == attr.name && attr_info.table == attr.table; @@ -455,6 +475,9 @@ bool ContainsInExpression(const Expression& expr) { return std::visit(*this, *expr.child); } bool operator()(const InExpression&) const { return true; } + bool operator()(const AggregateExpression& expr) const { + return !expr.is_star && expr.argument && std::visit(*this, *expr.argument); + } bool operator()(const Attribute&) const { return false; } bool operator()(const StringConst&) const { return false; } bool operator()(const IntConst&) const { return false; } @@ -601,6 +624,10 @@ boost::asio::awaitable Executor::Execute(const Physica co_await executor.ExecuteHashJoin(join, attr_chan, tuples_chan); co_return; } + boost::asio::awaitable operator()(const PhysicalAggregation& agg) { + co_await executor.ExecuteHashAggregate(agg, attr_chan, tuples_chan); + co_return; + } boost::asio::awaitable operator()(const MergeJoin&) { throw std::runtime_error("MergeJoin execution not implemented"); co_return; @@ -1102,6 +1129,139 @@ boost::asio::awaitable Executor::ExecuteHashJoin( tuples_chan.close(); } +template +boost::asio::awaitable Executor::ExecuteHashAggregate( + const PhysicalAggregation& agg, AttributesInfoChannel& out_attr_chan, + TuplesChannel& out_tuples_chan) { + Log("Executing hash aggregate"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { out_attr_chan.close(); out_tuples_chan.close(); }); + auto exec = co_await boost::asio::this_coro::executor; + auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); + auto task = SpawnExecutor(exec, *agg.source, in_attrs_chan, in_tuples_chan); + + auto in_attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); + + // Build output AttributesInfo: group_by cols then one slot per aggregate. + AttributesInfo out_attrs; + for (const auto& expr : agg.group_by) { + if (const auto* attr = std::get_if(&expr)) { + auto it = std::find_if(in_attrs.begin(), in_attrs.end(), [&](const AttributeInfo& ai) { + return ai.table == attr->table && ai.name == attr->name; + }); + if (it != in_attrs.end()) { + out_attrs.push_back(*it); + } + } + } + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + const auto& agg_expr = std::get(agg.aggregates[i]); + Type t = (agg_expr.function == AggregateFunction::kCount) + ? Type::kInt + : (agg_expr.is_star ? Type::kInt : GetExpressionTypeUnchecked(*agg_expr.argument, in_attrs)); + out_attrs.push_back(AttributeInfo{"", std::format("__agg{}", i), t}); + } + co_await out_attr_chan.async_send(boost::system::error_code{}, out_attrs, + boost::asio::use_awaitable); + out_attr_chan.close(); + + // Per-group state: vector of int64_t accumulators, one per aggregate. + // For SUM: running total (null if all inputs null). + // For COUNT: running count of non-null inputs (or all rows for COUNT(*)). + struct GroupState { + std::vector accumulators; + std::vector any_non_null; // for SUM null tracking + }; + struct TupleKeyHash { + size_t operator()(const std::vector& key) const { + size_t seed = 0; + for (const auto& v : key) { + boost::hash_combine(seed, v.is_null); + if (!v.is_null) boost::hash_combine(seed, v.value.int_value); + } + return seed; + } + }; + std::unordered_map, GroupState, TupleKeyHash> groups; + + // Scalar evaluator for group-by keys and aggregate arguments. + auto do_scalar = [&](const Expression& expr, const Tuple& tuple) -> Value { + return CalcExpression(tuple, in_attrs, expr); + }; + + const bool scalar_agg = agg.group_by.empty(); + + auto init_state = [&]() -> GroupState { + GroupState s; + s.accumulators.resize(agg.aggregates.size(), 0); + s.any_non_null.resize(agg.aggregates.size(), false); + return s; + }; + + for (;;) { + auto buf = co_await ReceiveTuples(in_tuples_chan); + if (buf.empty()) break; + for (const auto& tuple : buf) { + std::vector key; + for (const auto& expr : agg.group_by) { + key.push_back(do_scalar(expr, tuple)); + } + auto [it, inserted] = groups.emplace(key, GroupState{}); + if (inserted) it->second = init_state(); + auto& state = it->second; + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + const auto& agg_expr = std::get(agg.aggregates[i]); + if (agg_expr.function == AggregateFunction::kCount) { + if (agg_expr.is_star) { + state.accumulators[i]++; + } else { + auto v = do_scalar(*agg_expr.argument, tuple); + if (!v.is_null) state.accumulators[i]++; + } + } else { // SUM + auto v = do_scalar(*agg_expr.argument, tuple); + if (!v.is_null) { + state.accumulators[i] += v.value.int_value; + state.any_non_null[i] = true; + } + } + } + } + } + + // For scalar aggregate over empty input, emit one row with COUNT=0 / SUM=NULL. + if (scalar_agg && groups.empty()) { + groups.emplace(std::vector{}, init_state()); + } + + Tuples out_buf; + out_buf.reserve(kBufSize); + for (auto& [key, state] : groups) { + Tuple tuple = key; + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + const auto& agg_expr = std::get(agg.aggregates[i]); + if (agg_expr.function == AggregateFunction::kSum && !state.any_non_null[i]) { + tuple.push_back(Value{true}); // NULL + } else { + tuple.push_back(Value{false, {.int_value = state.accumulators[i]}}); + } + } + out_buf.push_back(std::move(tuple)); + if (out_buf.size() == kBufSize) { + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + out_buf.clear(); + out_buf.reserve(kBufSize); + } + } + if (!out_buf.empty()) { + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + } + co_await task(boost::asio::use_awaitable); + out_tuples_chan.close(); +} + template boost::asio::experimental::promise Executor::SpawnExecutor(boost::asio::any_io_executor exec, diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index 162f2ae..fabfdfd 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -37,6 +37,13 @@ PhysicalPlanNode ToPhysicalPlan(const Operator& op) { .predicate = f.expr, }; }, + [](const Aggregation& a) -> PhysicalPlanNode { + return PhysicalAggregation{ + .source = std::make_shared(ToPhysicalPlan(*a.source)), + .group_by = a.group_by, + .aggregates = a.aggregates, + }; + }, [](const CrossJoin& j) -> PhysicalPlanNode { return NestedLoopCrossJoin{ .lhs = std::make_shared(ToPhysicalPlan(*j.lhs)), @@ -572,4 +579,73 @@ REGISTER_TYPED_TEST_SUITE_P(ExecutorTest, Projection, Filter, FilterMany, CrossJ using ExecutorTypes = ::testing::Types; INSTANTIATE_TYPED_TEST_SUITE_P(TypedExecutorTest, ExecutorTest, ExecutorTypes); +TEST(ExecutorTest, ScalarCountStar) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT COUNT(*) FROM users;"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + auto got = co_await executor.Execute(op); + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + ASSERT_THAT(got.value().tuples.size(), Eq(1u)); + ASSERT_THAT(got.value().tuples[0][0], Eq(Value{false, {.int_value = 17}})); + }); + ctx.run(); +} + +TEST(ExecutorTest, ScalarSum) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT SUM(users.age) FROM users;"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + auto got = co_await executor.Execute(op); + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + ASSERT_THAT(got.value().tuples.size(), Eq(1u)); + ASSERT_THAT(got.value().tuples[0][0], Eq(Value{false, {.int_value = 1182}})); + }); + ctx.run(); +} + +TEST(ExecutorTest, GroupByCountStar) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT users.age, COUNT(*) FROM users GROUP BY users.age;"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + auto got = co_await executor.Execute(op); + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + // 11 distinct age values in users.csv + ASSERT_THAT(got.value().tuples.size(), Eq(11u)); + // Sum of counts must equal total rows (17) + int64_t total = 0; + for (const auto& t : got.value().tuples) { + total += t[1].value.int_value; + } + ASSERT_THAT(total, Eq(17)); + }); + ctx.run(); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/llvm.cpp b/src/stewkk/sql/logic/executor/llvm.cpp index 470add5..a83e292 100644 --- a/src/stewkk/sql/logic/executor/llvm.cpp +++ b/src/stewkk/sql/logic/executor/llvm.cpp @@ -313,6 +313,9 @@ llvm::Function* JITCompiler::GenerateIR( llvm::Value* operator()(const InExpression&) { throw std::logic_error{"IN expressions are not supported by JIT"}; } + llvm::Value* operator()(const AggregateExpression&) { + throw std::logic_error{"aggregate expressions are not supported by JIT"}; + } llvm::Value* operator()(const Literal& expr) { switch (expr) { case Literal::kNull: diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index cbba2f1..212769b 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -38,4 +38,8 @@ bool PhysicalSort::operator==(const PhysicalSort& other) const { return *source == *other.source && keys == other.keys; } +bool PhysicalAggregation::operator==(const PhysicalAggregation& other) const { + return *source == *other.source && group_by == other.group_by && aggregates == other.aggregates; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 9729557..0121417 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -121,6 +121,12 @@ std::string SerializeExpr(const Expression& expr) { return std::format("({} {} (values {}))", e.negated ? "notin" : "in", SerializeExpr(*e.lhs), values); } + std::string operator()(const AggregateExpression& e) const { + if (e.is_star) { + return std::format("({} *)", ToString(e.function)); + } + return std::format("({} {})", ToString(e.function), SerializeExpr(*e.argument)); + } std::string operator()(Literal l) const { switch (l) { case Literal::kNull: return "NULL"; @@ -187,6 +193,20 @@ std::string SerializeNode(const PhysicalPlanNode& node) { } return std::format("(Sort (keys {}) {})", keys, SerializeNode(*n.source)); } + std::string operator()(const PhysicalAggregation& n) const { + std::string group_by_str; + for (const auto& e : n.group_by) { + if (!group_by_str.empty()) group_by_str += ' '; + group_by_str += SerializeExpr(e); + } + std::string aggs_str; + for (const auto& e : n.aggregates) { + if (!aggs_str.empty()) aggs_str += ' '; + aggs_str += SerializeExpr(e); + } + return std::format("(HashAggregate (group_by {}) (aggs {}) {})", + group_by_str, aggs_str, SerializeNode(*n.source)); + } }; return std::visit(Visitor{}, node); } @@ -465,6 +485,32 @@ PhysicalPlanNode ParseNode(ParseState& s) { }; } + if (head == "HashAggregate") { + s.ExpectLParen(); + auto kw1 = s.ExpectAtom(); + if (kw1 != "group_by") + throw std::runtime_error(std::format("expected 'group_by' but got '{}'", kw1)); + std::vector group_by; + while (s.Peek().kind != TokenKind::RParen) + group_by.push_back(ParseExpr(s)); + s.ExpectRParen(); + s.ExpectLParen(); + auto kw2 = s.ExpectAtom(); + if (kw2 != "aggs") + throw std::runtime_error(std::format("expected 'aggs' but got '{}'", kw2)); + std::vector aggregates; + while (s.Peek().kind != TokenKind::RParen) + aggregates.push_back(ParseExpr(s)); + s.ExpectRParen(); + auto source = ParseNode(s); + s.ExpectRParen(); + return PhysicalAggregation{ + std::make_shared(std::move(source)), + std::move(group_by), + std::move(aggregates), + }; + } + throw std::runtime_error(std::format("unknown plan node: '{}'", head)); } @@ -563,6 +609,22 @@ struct DotBuilder { EmitEdge(src, id); return id; } + int operator()(const PhysicalAggregation& n) { + int src = std::visit(*this, *n.source); + std::string aggs; + for (const auto& e : n.aggregates) { + if (!aggs.empty()) aggs += ", "; + aggs += ToString(e); + } + std::string group_by; + for (const auto& e : n.group_by) { + if (!group_by.empty()) group_by += ", "; + group_by += ToString(e); + } + int id = Emit(std::format("HashAgg\\nGROUP BY {}\\n{}", group_by, aggs)); + EmitEdge(src, id); + return id; + } }; } // namespace diff --git a/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp b/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp new file mode 100644 index 0000000..3e57792 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp @@ -0,0 +1,15 @@ +#include + +namespace stewkk::sql { + +bool ImplementAggregation::IsApplicable(utils::NotNull expr) { + return std::holds_alternative(expr->root_operator); +} + +utils::NotNull ImplementAggregation::Apply(utils::NotNull expr, Memo&) { + auto& agg = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr( + physical::Aggregation{agg.source, agg.group_by, agg.aggregates}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/cardinality.cpp b/src/stewkk/sql/logic/optimizer/cardinality.cpp index 28c5a83..28ff243 100644 --- a/src/stewkk/sql/logic/optimizer/cardinality.cpp +++ b/src/stewkk/sql/logic/optimizer/cardinality.cpp @@ -54,6 +54,13 @@ int64_t CardinalityEstimates::GetCardinality(const LogicalOperator& op) { [this](const logical::Projection& p) -> int64_t { return GetCardinality(p.source); }, + [this](const logical::Aggregation& a) -> int64_t { + auto source_cardinality = GetCardinality(a.source); + if (a.group_by.empty()) { + return 1; + } + return source_cardinality; + }, [this](const logical::CrossJoin& j) -> int64_t { return GetCardinality(j.lhs) * GetCardinality(j.rhs); }, diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 8741918..2515a79 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -18,7 +18,23 @@ std::string ToKey(const LogicalOperator& op) { for (const auto& e : p.expressions) { exprs += ToString(e) + ","; } - return "Projection(" + exprs + std::to_string(p.source->GetId()) + ")"; + std::string aliases; + for (const auto& alias : p.aliases) { + aliases += alias.value_or("") + ","; + } + return "Projection(" + exprs + aliases + std::to_string(p.source->GetId()) + ")"; + }, + [](const logical::Aggregation& a) { + std::string group_by; + for (const auto& e : a.group_by) { + group_by += ToString(e) + ","; + } + std::string aggregates; + for (const auto& e : a.aggregates) { + aggregates += ToString(e) + ","; + } + return "Aggregation(" + group_by + ";" + aggregates + ";" + + std::to_string(a.source->GetId()) + ")"; }, [](const logical::CrossJoin& j) { return "CrossJoin(" + std::to_string(j.lhs->GetId()) + "," + std::to_string(j.rhs->GetId()) + ")"; @@ -82,7 +98,11 @@ utils::NotNull Memo::Populate(const Operator& op) { }, [this](const Projection& p) { auto source = Populate(*p.source); - return AddGroup(logical::Projection{source->group, p.expressions}); + return AddGroup(logical::Projection{source->group, p.expressions, p.aliases}); + }, + [this](const Aggregation& a) { + auto source = Populate(*a.source); + return AddGroup(logical::Aggregation{source->group, a.group_by, a.aggregates}); }, [this](const CrossJoin& j) { auto lhs = Populate(*j.lhs); diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index be5ffa3..976fc16 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -44,6 +44,7 @@ PropertySet RequiredInputProps(utils::NotNull expr, return PropertySet::Any(); }, [&](const physical::Sort&) { return PropertySet::Any(); }, + [&](const physical::Aggregation&) { return PropertySet::Any(); }, }, expr->root_operator); } @@ -60,6 +61,7 @@ PropertySet DeriveOutputProps(utils::NotNull expr, [&](const physical::NestedLoopCrossJoin&) { return child_delivered[0]; }, [&](const physical::HashJoin&) { return PropertySet::Any(); }, [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, + [&](const physical::Aggregation&) { return PropertySet::Any(); }, }, expr->root_operator); } @@ -78,6 +80,9 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima [&](const logical::Projection&) -> int64_t { return cardinality.GetCardinality(expr->group); }, + [&](const logical::Aggregation&) -> int64_t { + return cardinality.GetCardinality(expr->group); + }, [&](const logical::CrossJoin& j) -> int64_t { auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; @@ -124,6 +129,9 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi auto n = cardinality.GetCardinality(s.input); return n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n; }, + [&](const physical::Aggregation& a) -> int64_t { + return cardinality.GetCardinality(a.source); + }, }, expr->root_operator); } @@ -140,6 +148,9 @@ std::vector> GetChildren(utils::NotNull exp [](const logical::Projection& p) -> std::vector> { return {p.source}; }, + [](const logical::Aggregation& a) -> std::vector> { + return {a.source}; + }, [](const logical::CrossJoin& j) -> std::vector> { return {j.lhs, j.rhs}; }, @@ -172,6 +183,9 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::Sort& s) -> std::vector> { return {s.input}; }, + [](const physical::Aggregation& a) -> std::vector> { + return {a.source}; + }, }, expr->root_operator); } @@ -451,6 +465,14 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G .keys = op.keys, }; }, + [this, best_expr_nn, required](const physical::Aggregation& op) -> PhysicalPlanNode { + return PhysicalAggregation{ + .source = std::make_shared( + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), + .group_by = op.group_by, + .aggregates = op.aggregates, + }; + }, }, best_expr->root_operator); } @@ -483,6 +505,6 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<6, 6>; +template class Optimizer<6, 7>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index b4ef7d5..ddebf83 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -105,6 +105,17 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!child.ok) child.reason = "Sort.input: " + child.reason; return child; }, + [&](const physical::Aggregation& op) -> InternalMatch { + const auto* t = std::get_if(&target); + if (!t) return {false, depth, "type mismatch: expected HashAggregate"}; + if (op.group_by != t->group_by) + return {false, depth + 1, "Aggregation group_by mismatch"}; + if (op.aggregates != t->aggregates) + return {false, depth + 1, "Aggregation aggregates mismatch"}; + auto child = MatchGroup(op.source.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "Aggregation.source: " + child.reason; + return child; + }, }, pe->root_operator); } diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index 3b4eed0..3a052d0 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -2,7 +2,7 @@ namespace stewkk::sql { -Rules<6, 6> MakeMainRules() { +Rules<6, 7> MakeMainRules() { return { .transformation_rules = { std::make_unique(), @@ -19,6 +19,7 @@ Rules<6, 6> MakeMainRules() { std::make_unique(), std::make_unique(), std::make_unique(), + std::make_unique(), }, }; } diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 1ade608..4588aea 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -30,7 +30,6 @@ utils::NotNull RulesApplier::Ap return rules_.implementation_rules[rule.value]->Apply(expr, memo); } -template class RulesApplier<2, 0>; -template class RulesApplier<6, 6>; +template class RulesApplier<6, 7>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index 1502c64..fe74d20 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -1,5 +1,7 @@ #include +#include + #include namespace stewkk::sql { @@ -45,6 +47,20 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { } return out; }, + [this](const logical::Aggregation& a) -> std::optional { + auto input = GetSchema(a.source); + if (!input) return std::nullopt; + Schema out; + for (const auto& expr : a.group_by) { + if (const auto* attr = std::get_if(&expr)) { + out.push_back(*attr); + } + } + for (size_t i = 0; i < a.aggregates.size(); ++i) { + out.push_back(Attribute{"", std::format("__agg{}", i)}); + } + return out; + }, [this](const logical::CrossJoin& j) -> std::optional { auto l = GetSchema(j.lhs); auto r = GetSchema(j.rhs); diff --git a/src/stewkk/sql/logic/parser/parser.cpp b/src/stewkk/sql/logic/parser/parser.cpp index 9319e77..f7deaeb 100644 --- a/src/stewkk/sql/logic/parser/parser.cpp +++ b/src/stewkk/sql/logic/parser/parser.cpp @@ -64,6 +64,9 @@ std::string GetDotRepresentation(const Expression& expr) { std::string operator()(const InExpression& expr) { return ToString(Expression{expr}); } + std::string operator()(const AggregateExpression& expr) { + return ToString(Expression{expr}); + } std::string operator()(const Attribute& expr) { return ToString(expr); } @@ -96,6 +99,17 @@ std::string GetDotRepresentation(const Operator& op) { auto [source_node, rest] = std::visit(DotFormatter{}, *op.source); return {node, std::format("\"{}\"\n\"{}\" -> \"{}\"\n{}", node, source_node, node, rest)}; } + std::pair operator()(const Aggregation& op) { + auto groups = op.group_by + | std::views::transform([](const Expression& expr) { return ToString(expr); }) + | std::views::join_with(',') | std::ranges::to(); + auto aggregates = op.aggregates + | std::views::transform([](const Expression& expr) { return ToString(expr); }) + | std::views::join_with(',') | std::ranges::to(); + auto node = std::format("γ group_by=[{}] aggregates=[{}]", groups, aggregates); + auto [source_node, rest] = std::visit(DotFormatter{}, *op.source); + return {node, std::format("\"{}\"\n\"{}\" -> \"{}\"\n{}", node, source_node, node, rest)}; + } std::pair operator()(const Table& op) { auto node = op.alias ? std::format("{} AS {}", op.name, *op.alias) : std::format("{}", op.name); diff --git a/src/stewkk/sql/logic/parser/parser_test.cpp b/src/stewkk/sql/logic/parser/parser_test.cpp index a0e23e1..7f080b7 100644 --- a/src/stewkk/sql/logic/parser/parser_test.cpp +++ b/src/stewkk/sql/logic/parser/parser_test.cpp @@ -403,8 +403,125 @@ TEST(ParserTest, OrderByNullsFirstRejected) { ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); } -/* -** aggregations: SELECT kind, sum(len) AS total FROM films GROUP BY kind; - */ +TEST(ParserTest, SelectWithSumAggregateAlias) { + std::stringstream s{ + "SELECT SUM(lineorder.lo_extendedprice * lineorder.lo_discount) AS revenue " + "FROM lineorder;"}; + + Operator got = GetAST(s).value().op; + + Expression revenue_arg = BinaryExpression{ + std::make_shared(Attribute{"lineorder", "lo_extendedprice"}), + BinaryOp::kMul, + std::make_shared(Attribute{"lineorder", "lo_discount"}), + }; + Expression revenue = AggregateExpression{ + AggregateFunction::kSum, + std::make_shared(revenue_arg), + false, + }; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"", "__agg0"}}, + std::make_shared(Aggregation{ + {}, + std::vector{revenue}, + std::make_shared(Table{"lineorder"}), + }), + std::vector>{"revenue"}, + })); +} + +TEST(ParserTest, SelectWithGroupByAndAggregate) { + std::stringstream s{ + "SELECT date.d_year, SUM(lineorder.lo_revenue) AS revenue " + "FROM lineorder JOIN date ON lineorder.lo_orderdate = date.d_datekey " + "GROUP BY date.d_year;"}; + + Operator got = GetAST(s).value().op; + + Expression year = Attribute{"date", "d_year"}; + Expression revenue = AggregateExpression{ + AggregateFunction::kSum, + std::make_shared(Attribute{"lineorder", "lo_revenue"}), + false, + }; + Expression join_qual = BinaryExpression{ + std::make_shared(Attribute{"lineorder", "lo_orderdate"}), + BinaryOp::kEq, + std::make_shared(Attribute{"date", "d_datekey"}), + }; + + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{year, Attribute{"", "__agg0"}}, + std::make_shared(Aggregation{ + std::vector{year}, + std::vector{revenue}, + std::make_shared(Join{ + JoinType::kInner, + join_qual, + std::make_shared(Table{"lineorder"}), + std::make_shared(Table{"date"}), + }), + }), + std::vector>{std::nullopt, "revenue"}, + })); +} + +TEST(ParserTest, SelectWithCountStar) { + std::stringstream s{"SELECT COUNT(*) FROM lineorder;"}; + + Operator got = GetAST(s).value().op; + + Expression count_star = AggregateExpression{ + AggregateFunction::kCount, + nullptr, + true, + }; + ASSERT_THAT(got, VariantWith(Projection{ + std::vector{Attribute{"", "__agg0"}}, + std::make_shared(Aggregation{ + {}, + std::vector{count_star}, + std::make_shared(Table{"lineorder"}), + }), + })); +} + +TEST(ParserTest, UnsupportedAggregateModifiersRejected) { + for (const char* sql : { + "SELECT SUM(DISTINCT lineorder.lo_revenue) FROM lineorder;", + "SELECT SUM(ALL lineorder.lo_revenue) FROM lineorder;", + "SELECT SUM(lineorder.lo_revenue ORDER BY lineorder.lo_revenue) FROM lineorder;", + "SELECT SUM(lineorder.lo_revenue) FILTER (WHERE lineorder.lo_discount > 0) FROM lineorder;", + "SELECT SUM(lineorder.lo_revenue) OVER () FROM lineorder;", + }) { + std::stringstream s{sql}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); + } +} + +TEST(ParserTest, UnsupportedGroupByFormsRejected) { + std::stringstream s{ + "SELECT date.d_year, SUM(lineorder.lo_revenue) FROM lineorder " + "GROUP BY ROLLUP(date.d_year);"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} + +TEST(ParserTest, HavingRejected) { + std::stringstream s{ + "SELECT SUM(lineorder.lo_revenue) FROM lineorder " + "HAVING SUM(lineorder.lo_revenue) > 0;"}; + + auto got = GetAST(s).error(); + + ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); +} } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index c51e0f0..72ea9dc 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -1,5 +1,8 @@ #include +#include +#include +#include #include #include @@ -10,6 +13,11 @@ namespace stewkk::sql { namespace { +struct ParsedTarget { + Expression expression; + std::optional alias; +}; + std::string UnquoteStandardString(std::string_view text) { if (text.size() < 2 || text.front() != '\'' || text.back() != '\'') { throw Error{ErrorType::kQueryNotSupported, "only standard single-quoted strings are supported"}; @@ -41,6 +49,10 @@ Operator GetOperatorWithChild(Operator&& op, Operator&& child) { filter.source = std::make_shared(std::move(child)); return filter; } + Operator operator() (Aggregation&& aggregation) { + aggregation.source = std::make_shared(std::move(child)); + return aggregation; + } Operator operator() (CrossJoin&& cross_join) { std::unreachable(); } @@ -53,6 +65,121 @@ Operator GetOperatorWithChild(Operator&& op, Operator&& child) { return std::visit(ChildSetter{std::move(child)}, std::move(op)); } +std::string ToLower(std::string s) { + std::ranges::transform(s, s.begin(), [](unsigned char c) { + return static_cast(std::tolower(c)); + }); + return s; +} + +bool ContainsAggregate(const Expression& expr) { + struct Visitor { + bool operator()(const BinaryExpression& expr) const { + return ContainsAggregate(*expr.lhs) || ContainsAggregate(*expr.rhs); + } + bool operator()(const UnaryExpression& expr) const { + return ContainsAggregate(*expr.child); + } + bool operator()(const InExpression& expr) const { + return ContainsAggregate(*expr.lhs) + || std::ranges::any_of(expr.values, [](const Expression& value) { + return ContainsAggregate(value); + }); + } + bool operator()(const AggregateExpression&) const { + return true; + } + bool operator()(const Attribute&) const { return false; } + bool operator()(const IntConst&) const { return false; } + bool operator()(const StringConst&) const { return false; } + bool operator()(const Literal&) const { return false; } + }; + return std::visit(Visitor{}, expr); +} + +void CollectAggregates(const Expression& expr, std::vector& out) { + struct Visitor { + void operator()(const BinaryExpression& expr) const { + CollectAggregates(*expr.lhs, out); + CollectAggregates(*expr.rhs, out); + } + void operator()(const UnaryExpression& expr) const { + CollectAggregates(*expr.child, out); + } + void operator()(const InExpression& expr) const { + CollectAggregates(*expr.lhs, out); + for (const auto& value : expr.values) { + CollectAggregates(value, out); + } + } + void operator()(const AggregateExpression& expr) const { + out.push_back(Expression{expr}); + } + void operator()(const Attribute&) const {} + void operator()(const IntConst&) const {} + void operator()(const StringConst&) const {} + void operator()(const Literal&) const {} + + std::vector& out; + }; + std::visit(Visitor{out}, expr); +} + +std::vector CollectAggregates(const std::vector& expressions) { + std::vector result; + for (const auto& expr : expressions) { + CollectAggregates(expr, result); + } + return result; +} + +Expression ReplaceAggregatesWithAttributes(const Expression& expr, size_t& counter); + +Expression ReplaceAggregatesWithAttributes(const Expression& expr, size_t& counter) { + struct Visitor { + Expression operator()(const BinaryExpression& e) const { + return BinaryExpression{ + std::make_shared(ReplaceAggregatesWithAttributes(*e.lhs, counter)), + e.binop, + std::make_shared(ReplaceAggregatesWithAttributes(*e.rhs, counter)), + }; + } + Expression operator()(const UnaryExpression& e) const { + return UnaryExpression{ + e.op, + std::make_shared(ReplaceAggregatesWithAttributes(*e.child, counter)), + }; + } + Expression operator()(const InExpression& e) const { + auto new_lhs = std::make_shared(ReplaceAggregatesWithAttributes(*e.lhs, counter)); + std::vector new_values; + for (const auto& v : e.values) { + new_values.push_back(ReplaceAggregatesWithAttributes(v, counter)); + } + return InExpression{std::move(new_lhs), std::move(new_values), e.negated}; + } + Expression operator()(const AggregateExpression&) const { + return Attribute{"", std::format("__agg{}", counter++)}; + } + Expression operator()(const Attribute& a) const { return a; } + Expression operator()(const IntConst& c) const { return c; } + Expression operator()(const StringConst& s) const { return s; } + Expression operator()(const Literal& l) const { return l; } + + size_t& counter; + }; + return std::visit(Visitor{counter}, expr); +} + +std::vector ReplaceAggregatesWithAttributes(const std::vector& exprs) { + std::vector result; + size_t counter = 0; + for (const auto& expr : exprs) { + result.push_back(ReplaceAggregatesWithAttributes(expr, counter)); + } + return result; +} + } // namespace std::any Visitor::visitStmt(codegen::PostgreSQLParser::StmtContext *ctx) { @@ -164,8 +291,15 @@ std::any Visitor::visitSimple_select_intersect(codegen::PostgreSQLParser::Simple } std::any Visitor::visitTarget_label(codegen::PostgreSQLParser::Target_labelContext *ctx) { - // TODO: AS (rename operation) - return visit(ctx->a_expr()); + ParsedTarget target{ + .expression = std::any_cast(visit(ctx->a_expr())), + }; + if (ctx->colLabel()) { + target.alias = ctx->colLabel()->getText(); + } else if (ctx->bareColLabel()) { + target.alias = ctx->bareColLabel()->getText(); + } + return target; } std::any Visitor::visitTarget_star(codegen::PostgreSQLParser::Target_starContext* ctx) { @@ -174,21 +308,49 @@ std::any Visitor::visitTarget_star(codegen::PostgreSQLParser::Target_starContext std::any Visitor::visitTarget_list(codegen::PostgreSQLParser::Target_listContext* ctx) { const auto& targets = ctx->target_el(); - auto target_expressions + auto parsed_targets = targets | std::views::transform([this](const auto& target) { return visit(target); }) | std::views::filter( [](const std::any& expr) { return expr.has_value(); }) | std::views::transform( - [](std::any expr) { return std::any_cast(expr); }) + [](std::any expr) { return std::any_cast(expr); }) | std::ranges::to(); - if (!target_expressions.empty()) { - return Operator{Projection{std::move(target_expressions), nullptr}}; + if (!parsed_targets.empty()) { + std::vector target_expressions; + std::vector> aliases; + target_expressions.reserve(parsed_targets.size()); + aliases.reserve(parsed_targets.size()); + for (auto& target : parsed_targets) { + aliases.push_back(std::move(target.alias)); + target_expressions.push_back(std::move(target.expression)); + } + return Operator{Projection{std::move(target_expressions), nullptr, std::move(aliases)}}; } return {}; } +std::any Visitor::visitGroup_clause(codegen::PostgreSQLParser::Group_clauseContext *ctx) { + return visit(ctx->group_by_list()); +} + +std::any Visitor::visitGroup_by_list(codegen::PostgreSQLParser::Group_by_listContext *ctx) { + std::vector result; + for (auto* item : ctx->group_by_item()) { + result.push_back(std::any_cast(visit(item))); + } + return result; +} + +std::any Visitor::visitGroup_by_item(codegen::PostgreSQLParser::Group_by_itemContext *ctx) { + if (!ctx->a_expr()) { + throw Error{ErrorType::kQueryNotSupported, + "ROLLUP, CUBE, GROUPING SETS and empty GROUP BY items are not supported"}; + } + return visit(ctx->a_expr()); +} + std::any Visitor::visitFrom_clause(codegen::PostgreSQLParser::From_clauseContext *ctx) { return visit(ctx->from_list()); } @@ -380,9 +542,15 @@ std::any Visitor::visitSimple_select_pramary( } // NOTE: all_clause_ is ignored - // TODO: support group_clause, having_clause + if (ctx->having_clause()) { + throw Error{ErrorType::kQueryNotSupported, "HAVING clause is not supported"}; + } + if (ctx->window_clause()) { + throw Error{ErrorType::kQueryNotSupported, "WINDOW clause is not supported"}; + } Operator result = Table{kEmptyTableName}; + std::optional projection; if (ctx->from_clause()) { result = std::any_cast(visit(ctx->from_clause())); @@ -396,11 +564,40 @@ std::any Visitor::visitSimple_select_pramary( if (ctx->target_list_()) { auto target_list_opt = visit(ctx->target_list_()); if (target_list_opt.has_value()) { - auto projection = std::any_cast(target_list_opt); - result = GetOperatorWithChild(std::move(projection), std::move(result)); + auto projection_op = std::any_cast(target_list_opt); + projection = std::get(std::move(projection_op)); } } + std::vector group_by; + if (ctx->group_clause()) { + group_by = std::any_cast>(visit(ctx->group_clause())); + } + + std::vector aggregates; + if (projection) { + aggregates = CollectAggregates(projection->expressions); + } + + if (!group_by.empty() || !aggregates.empty()) { + if (projection) { + projection->expressions = ReplaceAggregatesWithAttributes(projection->expressions); + } + result = Aggregation{ + std::move(group_by), + std::move(aggregates), + std::make_shared(std::move(result)), + }; + } + + if (projection) { + result = Projection{ + std::move(projection->expressions), + std::make_shared(std::move(result)), + std::move(projection->aliases), + }; + } + return result; } @@ -761,10 +958,86 @@ std::any Visitor::visitC_expr_expr(codegen::PostgreSQLParser::C_expr_exprContext if (ctx->a_expr_in_parens != nullptr) { return visit(ctx->a_expr_in_parens); } + if (ctx->func_expr()) { + return visit(ctx->func_expr()); + } // NOTE: may want to support throw Error{ErrorType::kQueryNotSupported, "c_expr is not fully supported"}; } +std::any Visitor::visitFunc_expr(codegen::PostgreSQLParser::Func_exprContext *ctx) { + if (ctx->within_group_clause()) { + throw Error{ErrorType::kQueryNotSupported, "WITHIN GROUP clause is not supported"}; + } + if (ctx->filter_clause()) { + throw Error{ErrorType::kQueryNotSupported, "aggregate FILTER clause is not supported"}; + } + if (ctx->over_clause()) { + throw Error{ErrorType::kQueryNotSupported, "window functions are not supported"}; + } + if (!ctx->func_application()) { + throw Error{ErrorType::kQueryNotSupported, "function expression is not supported"}; + } + return visit(ctx->func_application()); +} + +std::any Visitor::visitFunc_application(codegen::PostgreSQLParser::Func_applicationContext *ctx) { + if (ctx->VARIADIC()) { + throw Error{ErrorType::kQueryNotSupported, "VARIADIC function arguments are not supported"}; + } + if (ctx->ALL()) { + throw Error{ErrorType::kQueryNotSupported, "ALL in aggregate calls is not supported"}; + } + if (ctx->DISTINCT()) { + throw Error{ErrorType::kQueryNotSupported, "DISTINCT in aggregate calls is not supported"}; + } + if (ctx->sort_clause_()) { + throw Error{ErrorType::kQueryNotSupported, "ORDER BY in aggregate calls is not supported"}; + } + + auto name = ToLower(ctx->func_name()->getText()); + AggregateFunction function; + if (name == "sum") { + function = AggregateFunction::kSum; + } else if (name == "count") { + function = AggregateFunction::kCount; + } else { + throw Error{ErrorType::kQueryNotSupported, + std::format("function {} is not supported", ctx->func_name()->getText())}; + } + + if (ctx->STAR()) { + if (function != AggregateFunction::kCount) { + throw Error{ErrorType::kQueryNotSupported, "only COUNT(*) supports star arguments"}; + } + return Expression{AggregateExpression{function, nullptr, true}}; + } + + auto* args = ctx->func_arg_list(); + if (!args || args->func_arg_expr().size() != 1) { + throw Error{ErrorType::kQueryNotSupported, + std::format("{} requires exactly one argument", ToString(function))}; + } + + auto argument = std::any_cast(visit(args->func_arg_expr(0))); + if (ContainsAggregate(argument)) { + throw Error{ErrorType::kQueryNotSupported, "nested aggregate calls are not supported"}; + } + + return Expression{AggregateExpression{ + function, + std::make_shared(std::move(argument)), + false, + }}; +} + +std::any Visitor::visitFunc_arg_expr(codegen::PostgreSQLParser::Func_arg_exprContext *ctx) { + if (ctx->param_name()) { + throw Error{ErrorType::kQueryNotSupported, "named function arguments are not supported"}; + } + return visit(ctx->a_expr()); +} + std::any Visitor::visitC_expr_case(codegen::PostgreSQLParser::C_expr_caseContext *ctx) { // NOTE: may want to support throw Error{ErrorType::kQueryNotSupported, "CASE clause is not supported"}; diff --git a/src/stewkk/sql/logic/parser/visitor.hpp b/src/stewkk/sql/logic/parser/visitor.hpp index d7ab26e..cf24d9f 100644 --- a/src/stewkk/sql/logic/parser/visitor.hpp +++ b/src/stewkk/sql/logic/parser/visitor.hpp @@ -25,6 +25,12 @@ class Visitor : public codegen::PostgreSQLParserBaseVisitor { virtual std::any visitTarget_list(codegen::PostgreSQLParser::Target_listContext *ctx) override; virtual std::any visitTarget_label(codegen::PostgreSQLParser::Target_labelContext *ctx) override; virtual std::any visitTarget_star(codegen::PostgreSQLParser::Target_starContext *ctx) override; + virtual std::any visitGroup_clause(codegen::PostgreSQLParser::Group_clauseContext *ctx) override; + virtual std::any visitGroup_by_list(codegen::PostgreSQLParser::Group_by_listContext *ctx) override; + virtual std::any visitGroup_by_item(codegen::PostgreSQLParser::Group_by_itemContext *ctx) override; + virtual std::any visitFunc_expr(codegen::PostgreSQLParser::Func_exprContext *ctx) override; + virtual std::any visitFunc_application(codegen::PostgreSQLParser::Func_applicationContext *ctx) override; + virtual std::any visitFunc_arg_expr(codegen::PostgreSQLParser::Func_arg_exprContext *ctx) override; virtual std::any visitFrom_clause(codegen::PostgreSQLParser::From_clauseContext *ctx) override; virtual std::any visitWhere_clause(codegen::PostgreSQLParser::Where_clauseContext *ctx) override; virtual std::any visitSelect_with_parens(codegen::PostgreSQLParser::Select_with_parensContext *ctx) override; diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp index 178f27f..1765de7 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp @@ -25,6 +25,11 @@ void CollectAttributes(const Expression& e, std::vector& out) { CollectAttributes(value, out); } }, + [&](const AggregateExpression& a) { + if (!a.is_star && a.argument) { + CollectAttributes(*a.argument, out); + } + }, [&](const IntConst&) {}, [&](const StringConst&) {}, [&](const Literal&) {}, @@ -72,7 +77,7 @@ LogicalOperator FilterPushdownThroughProjection::ApplyImpl(utils::NotNullsource, f.predicate})->group; - return logical::Projection{new_filter_group, proj->expressions}; + return logical::Projection{new_filter_group, proj->expressions, proj->aliases}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index 0ad685c..7554cec 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -48,6 +48,11 @@ void CollectAttrTables(const Expression& e, std::unordered_set& out CollectAttrTables(value, out); } }, + [&](const AggregateExpression& a) { + if (!a.is_star && a.argument) { + CollectAttrTables(*a.argument, out); + } + }, [&](const IntConst&) {}, [&](const StringConst&) {}, [&](const Literal&) {}, @@ -73,6 +78,7 @@ void CollectGroupTables(utils::NotNull g, std::unordered_set) { std::string exprs; - for (const auto& e : node.expressions) exprs += " " + ToString(e); + for (size_t i = 0; i < node.expressions.size(); ++i) { + exprs += " " + ToString(node.expressions[i]); + if (i < node.aliases.size() && node.aliases[i]) { + exprs += " AS " + *node.aliases[i]; + } + } return "(Projection" + exprs + " " + SerializeAst(*node.source) + ")"; + } else if constexpr (std::is_same_v) { + std::string group_by; + for (const auto& e : node.group_by) group_by += " " + ToString(e); + std::string aggregates; + for (const auto& e : node.aggregates) aggregates += " " + ToString(e); + return "(Aggregation (GroupBy" + group_by + ") (Aggregates" + aggregates + ") " + + SerializeAst(*node.source) + ")"; } else if constexpr (std::is_same_v) { return "(CrossJoin " + SerializeAst(*node.lhs) + " " + SerializeAst(*node.rhs) + ")"; } else if constexpr (std::is_same_v) { diff --git a/src/stewkk/sql/models/parser/expression.cpp b/src/stewkk/sql/models/parser/expression.cpp index 4d5c9a9..e539e9a 100644 --- a/src/stewkk/sql/models/parser/expression.cpp +++ b/src/stewkk/sql/models/parser/expression.cpp @@ -17,6 +17,25 @@ bool InExpression::operator==(const InExpression& other) const { return *lhs == *other.lhs && values == other.values && negated == other.negated; } +bool AggregateExpression::operator==(const AggregateExpression& other) const { + if (function != other.function || is_star != other.is_star) { + return false; + } + if (is_star) { + return true; + } + return argument && other.argument && *argument == *other.argument; +} + +std::string ToString(AggregateFunction function) { + switch (function) { + case AggregateFunction::kSum: + return "SUM"; + case AggregateFunction::kCount: + return "COUNT"; + } +} + std::string ToString(const Attribute& attr) { return std::format("{}.{}", attr.table, attr.name); } @@ -109,6 +128,12 @@ std::string ToString(const Expression& expr) { }) | std::views::join_with(',') | std::ranges::to(); return std::format("{} {}in ({})", ToString(*expr.lhs), expr.negated ? "not " : "", values); } + std::string operator()(const AggregateExpression& expr) { + if (expr.is_star) { + return std::format("{}(*)", ToString(expr.function)); + } + return std::format("{}({})", ToString(expr.function), ToString(*expr.argument)); + } std::string operator()(const Literal& expr) { return ToString(expr); } diff --git a/src/stewkk/sql/models/parser/relational_algebra_ast.cpp b/src/stewkk/sql/models/parser/relational_algebra_ast.cpp index 2774e59..24ce926 100644 --- a/src/stewkk/sql/models/parser/relational_algebra_ast.cpp +++ b/src/stewkk/sql/models/parser/relational_algebra_ast.cpp @@ -7,13 +7,25 @@ std::string_view VisibleName(const Table& table) { } bool Projection::operator==(const Projection& other) const { - return expressions == other.expressions && *source == *other.source; + auto normalize = [](const std::vector>& aliases) { + auto result = aliases; + while (!result.empty() && !result.back()) { + result.pop_back(); + } + return result; + }; + return expressions == other.expressions && *source == *other.source + && normalize(aliases) == normalize(other.aliases); } bool Filter::operator==(const Filter& other) const { return expr == other.expr && *source == *other.source; } +bool Aggregation::operator==(const Aggregation& other) const { + return group_by == other.group_by && aggregates == other.aggregates && *source == *other.source; +} + bool CrossJoin::operator==(const CrossJoin& other) const { return *lhs == *other.lhs && *rhs == *other.rhs; } From 03859f3a43066b680e3c2f7022b17ab36205b97f Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 02:30:25 +0300 Subject: [PATCH 059/120] Add SBB benchmark --- benchmarks/datasets/ssb/README.md | 26 +++- benchmarks/datasets/ssb/queries/q1.1.sql | 6 + benchmarks/datasets/ssb/queries/q1.2.sql | 6 + benchmarks/datasets/ssb/queries/q1.3.sql | 7 + benchmarks/datasets/ssb/queries/q2.1.sql | 9 ++ benchmarks/datasets/ssb/queries/q2.2.sql | 9 ++ benchmarks/datasets/ssb/queries/q2.3.sql | 9 ++ benchmarks/datasets/ssb/queries/q3.1.sql | 10 ++ benchmarks/datasets/ssb/queries/q3.2.sql | 10 ++ benchmarks/datasets/ssb/queries/q3.3.sql | 10 ++ benchmarks/datasets/ssb/queries/q3.4.sql | 10 ++ benchmarks/datasets/ssb/queries/q4.1.sql | 11 ++ benchmarks/datasets/ssb/queries/q4.2.sql | 12 ++ benchmarks/datasets/ssb/queries/q4.3.sql | 11 ++ benchmarks/datasets/ssb/test_queries.py | 34 +++++ benchmarks/main.cpp | 138 +++++++++++++++++- include/stewkk/sql/logic/executor/plan.hpp | 1 + .../sql/logic/optimizer/physical_expr.hpp | 1 + src/stewkk/sql/logic/executor/executor.cpp | 134 +++++++++++------ .../sql/logic/executor/executor_test.cpp | 47 ++++++ src/stewkk/sql/logic/executor/plan.cpp | 2 +- .../sql/logic/executor/plan_serializer.cpp | 56 ++++++- .../implement_projection.cpp | 3 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 1 + .../sql/logic/optimizer/schema_catalog.cpp | 12 +- .../sql/logic/optimizer/sort_enforcer.cpp | 5 +- src/stewkk/sql/logic/parser/parser_test.cpp | 6 +- src/stewkk/sql/logic/parser/visitor.cpp | 12 +- 28 files changed, 525 insertions(+), 73 deletions(-) create mode 100644 benchmarks/datasets/ssb/queries/q1.1.sql create mode 100644 benchmarks/datasets/ssb/queries/q1.2.sql create mode 100644 benchmarks/datasets/ssb/queries/q1.3.sql create mode 100644 benchmarks/datasets/ssb/queries/q2.1.sql create mode 100644 benchmarks/datasets/ssb/queries/q2.2.sql create mode 100644 benchmarks/datasets/ssb/queries/q2.3.sql create mode 100644 benchmarks/datasets/ssb/queries/q3.1.sql create mode 100644 benchmarks/datasets/ssb/queries/q3.2.sql create mode 100644 benchmarks/datasets/ssb/queries/q3.3.sql create mode 100644 benchmarks/datasets/ssb/queries/q3.4.sql create mode 100644 benchmarks/datasets/ssb/queries/q4.1.sql create mode 100644 benchmarks/datasets/ssb/queries/q4.2.sql create mode 100644 benchmarks/datasets/ssb/queries/q4.3.sql create mode 100644 benchmarks/datasets/ssb/test_queries.py diff --git a/benchmarks/datasets/ssb/README.md b/benchmarks/datasets/ssb/README.md index 192b4f1..3ec27c8 100644 --- a/benchmarks/datasets/ssb/README.md +++ b/benchmarks/datasets/ssb/README.md @@ -29,12 +29,28 @@ preserved as `string` values in the generated CSV. Generated full-scale data should stay under `benchmarks/datasets/ssb/generated/` or another ignored location. -## Current engine limitation +## Queries -This first slice only adds data layout and conversion. The current C++ scanner -supports `int` and `NULL` values, so SSB CSV files containing `string` columns -are not executable until string type support is added to the parser, scanner, -executor, and output formatting. +The standard 13 SSB query templates are in `queries/`. They are written in the +subset supported by this engine: explicit joins, table aliases, string +predicates, `BETWEEN`, list `IN`, `SUM`, `COUNT`, `GROUP BY`, and `ORDER BY`. + +Run one query through the CLI: + +```sh +./build/bin/sql --data-dir benchmarks/datasets/ssb/generated/sf1 \ + < benchmarks/datasets/ssb/queries/q1.1.sql +``` + +Run SSB benchmarks after generating data: + +```sh +SSB_DATA_DIR=benchmarks/datasets/ssb/generated/sf1 \ + ./build/bin/benchmarks --benchmark_filter='SSB/' +``` + +The JIT expression executor still rejects string and `IN` expressions, so the +SSB benchmark registrations currently use the interpreted expression executor. ## Test the converter diff --git a/benchmarks/datasets/ssb/queries/q1.1.sql b/benchmarks/datasets/ssb/queries/q1.1.sql new file mode 100644 index 0000000..5e812f9 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q1.1.sql @@ -0,0 +1,6 @@ +SELECT SUM(lo.lo_extendedprice * lo.lo_discount) AS revenue +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE d.d_year = 1993 + AND lo.lo_discount BETWEEN 1 AND 3 + AND lo.lo_quantity < 25; diff --git a/benchmarks/datasets/ssb/queries/q1.2.sql b/benchmarks/datasets/ssb/queries/q1.2.sql new file mode 100644 index 0000000..9a07697 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q1.2.sql @@ -0,0 +1,6 @@ +SELECT SUM(lo.lo_extendedprice * lo.lo_discount) AS revenue +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE d.d_yearmonthnum = 199401 + AND lo.lo_discount BETWEEN 4 AND 6 + AND lo.lo_quantity BETWEEN 26 AND 35; diff --git a/benchmarks/datasets/ssb/queries/q1.3.sql b/benchmarks/datasets/ssb/queries/q1.3.sql new file mode 100644 index 0000000..d001733 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q1.3.sql @@ -0,0 +1,7 @@ +SELECT SUM(lo.lo_extendedprice * lo.lo_discount) AS revenue +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE d.d_weeknuminyear = 6 + AND d.d_year = 1994 + AND lo.lo_discount BETWEEN 5 AND 7 + AND lo.lo_quantity BETWEEN 26 AND 35; diff --git a/benchmarks/datasets/ssb/queries/q2.1.sql b/benchmarks/datasets/ssb/queries/q2.1.sql new file mode 100644 index 0000000..37a59f2 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q2.1.sql @@ -0,0 +1,9 @@ +SELECT SUM(lo.lo_revenue) AS lo_revenue, d.d_year, p.p_brand +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +WHERE p.p_category = 'MFGR#12' + AND s.s_region = 'AMERICA' +GROUP BY d.d_year, p.p_brand +ORDER BY d.d_year, p.p_brand; diff --git a/benchmarks/datasets/ssb/queries/q2.2.sql b/benchmarks/datasets/ssb/queries/q2.2.sql new file mode 100644 index 0000000..9488eaa --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q2.2.sql @@ -0,0 +1,9 @@ +SELECT SUM(lo.lo_revenue) AS lo_revenue, d.d_year, p.p_brand +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +WHERE p.p_brand BETWEEN 'MFGR#2221' AND 'MFGR#2228' + AND s.s_region = 'ASIA' +GROUP BY d.d_year, p.p_brand +ORDER BY d.d_year, p.p_brand; diff --git a/benchmarks/datasets/ssb/queries/q2.3.sql b/benchmarks/datasets/ssb/queries/q2.3.sql new file mode 100644 index 0000000..88d4b48 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q2.3.sql @@ -0,0 +1,9 @@ +SELECT SUM(lo.lo_revenue) AS lo_revenue, d.d_year, p.p_brand +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +WHERE p.p_brand = 'MFGR#2221' + AND s.s_region = 'EUROPE' +GROUP BY d.d_year, p.p_brand +ORDER BY d.d_year, p.p_brand; diff --git a/benchmarks/datasets/ssb/queries/q3.1.sql b/benchmarks/datasets/ssb/queries/q3.1.sql new file mode 100644 index 0000000..f615732 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q3.1.sql @@ -0,0 +1,10 @@ +SELECT c.c_nation, s.s_nation, d.d_year, SUM(lo.lo_revenue) AS lo_revenue +FROM lineorder AS lo +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE c.c_region = 'ASIA' + AND s.s_region = 'ASIA' + AND d.d_year BETWEEN 1992 AND 1997 +GROUP BY c.c_nation, s.s_nation, d.d_year +ORDER BY d.d_year, lo_revenue DESC; diff --git a/benchmarks/datasets/ssb/queries/q3.2.sql b/benchmarks/datasets/ssb/queries/q3.2.sql new file mode 100644 index 0000000..484de9b --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q3.2.sql @@ -0,0 +1,10 @@ +SELECT c.c_city, s.s_city, d.d_year, SUM(lo.lo_revenue) AS lo_revenue +FROM lineorder AS lo +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE c.c_nation = 'UNITED STATES' + AND s.s_nation = 'UNITED STATES' + AND d.d_year BETWEEN 1992 AND 1997 +GROUP BY c.c_city, s.s_city, d.d_year +ORDER BY d.d_year, lo_revenue DESC; diff --git a/benchmarks/datasets/ssb/queries/q3.3.sql b/benchmarks/datasets/ssb/queries/q3.3.sql new file mode 100644 index 0000000..6900fba --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q3.3.sql @@ -0,0 +1,10 @@ +SELECT c.c_city, s.s_city, d.d_year, SUM(lo.lo_revenue) AS lo_revenue +FROM lineorder AS lo +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE c.c_city IN ('UNITED KI1', 'UNITED KI5') + AND s.s_city IN ('UNITED KI1', 'UNITED KI5') + AND d.d_year BETWEEN 1992 AND 1997 +GROUP BY c.c_city, s.s_city, d.d_year +ORDER BY d.d_year, lo_revenue DESC; diff --git a/benchmarks/datasets/ssb/queries/q3.4.sql b/benchmarks/datasets/ssb/queries/q3.4.sql new file mode 100644 index 0000000..c220c29 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q3.4.sql @@ -0,0 +1,10 @@ +SELECT c.c_city, s.s_city, d.d_year, SUM(lo.lo_revenue) AS lo_revenue +FROM lineorder AS lo +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +WHERE c.c_city IN ('UNITED KI1', 'UNITED KI5') + AND s.s_city IN ('UNITED KI1', 'UNITED KI5') + AND d.d_yearmonth = 'Dec1997' +GROUP BY c.c_city, s.s_city, d.d_year +ORDER BY d.d_year, lo_revenue DESC; diff --git a/benchmarks/datasets/ssb/queries/q4.1.sql b/benchmarks/datasets/ssb/queries/q4.1.sql new file mode 100644 index 0000000..6efbe87 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q4.1.sql @@ -0,0 +1,11 @@ +SELECT d.d_year, c.c_nation, SUM(lo.lo_revenue - lo.lo_supplycost) AS profit +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +WHERE c.c_region = 'AMERICA' + AND s.s_region = 'AMERICA' + AND p.p_mfgr IN ('MFGR#1', 'MFGR#2') +GROUP BY d.d_year, c.c_nation +ORDER BY d.d_year, c.c_nation; diff --git a/benchmarks/datasets/ssb/queries/q4.2.sql b/benchmarks/datasets/ssb/queries/q4.2.sql new file mode 100644 index 0000000..09b04b9 --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q4.2.sql @@ -0,0 +1,12 @@ +SELECT d.d_year, s.s_nation, p.p_category, SUM(lo.lo_revenue - lo.lo_supplycost) AS profit +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +WHERE c.c_region = 'AMERICA' + AND s.s_region = 'AMERICA' + AND d.d_year IN (1997, 1998) + AND p.p_mfgr IN ('MFGR#1', 'MFGR#2') +GROUP BY d.d_year, s.s_nation, p.p_category +ORDER BY d.d_year, s.s_nation, p.p_category; diff --git a/benchmarks/datasets/ssb/queries/q4.3.sql b/benchmarks/datasets/ssb/queries/q4.3.sql new file mode 100644 index 0000000..a83e97d --- /dev/null +++ b/benchmarks/datasets/ssb/queries/q4.3.sql @@ -0,0 +1,11 @@ +SELECT d.d_year, s.s_city, p.p_brand, SUM(lo.lo_revenue - lo.lo_supplycost) AS profit +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +WHERE s.s_nation = 'UNITED STATES' + AND d.d_year IN (1997, 1998) + AND p.p_category = 'MFGR#14' +GROUP BY d.d_year, s.s_city, p.p_brand +ORDER BY d.d_year, s.s_city, p.p_brand; diff --git a/benchmarks/datasets/ssb/test_queries.py b/benchmarks/datasets/ssb/test_queries.py new file mode 100644 index 0000000..34982fe --- /dev/null +++ b/benchmarks/datasets/ssb/test_queries.py @@ -0,0 +1,34 @@ +from __future__ import annotations + +import subprocess +from pathlib import Path + +import pytest + + +SSB_DIR = Path(__file__).resolve().parent +PROJECT_DIR = SSB_DIR.parents[2] +SQL_CLI = PROJECT_DIR / "build" / "bin" / "sql" +QUERY_DIR = SSB_DIR / "queries" +EXPECTED_CSV = SSB_DIR / "fixtures" / "expected_csv" + +SSB_QUERIES = tuple(sorted(QUERY_DIR.glob("*.sql"))) + + +@pytest.mark.parametrize("query_path", SSB_QUERIES, ids=lambda p: p.stem) +def test_ssb_query_executes_against_expected_csv(query_path: Path) -> None: + assert SQL_CLI.exists(), f"missing SQL CLI: {SQL_CLI}; build the sql target first" + + result = subprocess.run( + [str(SQL_CLI), "--data-dir", str(EXPECTED_CSV)], + input=query_path.read_text(encoding="utf-8"), + text=True, + capture_output=True, + check=False, + ) + + assert result.returncode == 0, ( + f"{query_path.name} failed with exit code {result.returncode}\n" + f"stderr:\n{result.stderr}\n" + f"stdout:\n{result.stdout}" + ) diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 06275b6..1177b72 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -1,19 +1,28 @@ #include +#include #include +#include #include #include #include +#include +#include +#include +#include #include #include #include +#include #include #include #include #include #include +#include +#include #include #include #include @@ -22,7 +31,6 @@ namespace stewkk::sql { namespace { -// FIXME: ORDER BY support missing PhysicalPlanNode ToPhysicalPlan(const Operator& op) { return std::visit(utils::Overloaded{ [](const Table& t) -> PhysicalPlanNode { @@ -32,6 +40,7 @@ PhysicalPlanNode ToPhysicalPlan(const Operator& op) { return PhysicalProjection{ .source = std::make_shared(ToPhysicalPlan(*p.source)), .expressions = p.expressions, + .aliases = p.aliases, }; }, [](const Filter& f) -> PhysicalPlanNode { @@ -40,8 +49,12 @@ PhysicalPlanNode ToPhysicalPlan(const Operator& op) { .predicate = f.expr, }; }, - [](const Aggregation&) -> PhysicalPlanNode { - throw std::runtime_error{"Aggregation execution is not implemented"}; + [](const Aggregation& a) -> PhysicalPlanNode { + return PhysicalAggregation{ + .source = std::make_shared(ToPhysicalPlan(*a.source)), + .group_by = a.group_by, + .aggregates = a.aggregates, + }; }, [](const CrossJoin& j) -> PhysicalPlanNode { return NestedLoopCrossJoin{ @@ -79,6 +92,22 @@ CardinalityEstimates MakeBenchCardinality() { }); } +CardinalityEstimates LoadCardinalityFromCsvDir(const std::filesystem::path& dir) { + std::unordered_map counts; + if (!std::filesystem::is_directory(dir)) { + return CardinalityEstimates{}; + } + for (const auto& entry : std::filesystem::directory_iterator{dir}) { + if (entry.path().extension() != ".csv") continue; + std::ifstream in{entry.path()}; + std::string line; + int64_t rows = -1; // header + while (std::getline(in, line)) ++rows; + counts.emplace(entry.path().stem().string(), std::max(0, rows)); + } + return CardinalityEstimates{std::move(counts)}; +} + enum class PlannerMode { kNaive, kOptimized }; template @@ -91,6 +120,20 @@ PhysicalPlanNode MakePlan(const Operator& op) { } } +template +PhysicalPlanNode MakePlan(const ParsedQuery& query, CardinalityEstimates cardinality) { + if constexpr (Mode == PlannerMode::kNaive) { + return ToPhysicalPlan(query.op); + } else { + PropertySet required = query.required_order + ? PropertySet{SortProperty{*query.required_order}} + : PropertySet::Any(); + Optimizer optimizer(query.op, MakeMainRules(), std::move(cardinality), {}, + std::move(required)); + return optimizer.Optimize(); + } +} + } // namespace const static std::string kProjectDir = std::getenv("PWD"); @@ -212,6 +255,95 @@ REGISTER_BM_SQL_MT(kComplex4000) REGISTER_BM_SQL_MT(kComplex8000) REGISTER_BM_SQL_MT(kComplex16000) +namespace { + +std::string ReadTextFile(const std::filesystem::path& path) { + std::ifstream in{path}; + std::ostringstream out; + out << in.rdbuf(); + return out.str(); +} + +std::filesystem::path SsbDataDir() { + if (const char* env = std::getenv("SSB_DATA_DIR")) { + return env; + } + return std::filesystem::path{kProjectDir} / "benchmarks/datasets/ssb/generated/sf1"; +} + +template +void BM_SSB(benchmark::State& state, std::string query, std::filesystem::path data_dir) { + std::ofstream nullstream("/dev/null"); + std::clog.rdbuf(nullstream.rdbuf()); + + if (!std::filesystem::is_directory(data_dir)) { + state.SkipWithError(("SSB data directory not found: " + data_dir.string() + + " (set SSB_DATA_DIR)").c_str()); + return; + } + + std::stringstream sql{query}; + auto parsed = GetAST(sql); + if (!parsed.has_value()) { + state.SkipWithError(("SSB query parse failed: " + What(parsed.error())).c_str()); + return; + } + + PhysicalPlanNode plan; + try { + plan = MakePlan(parsed.value(), LoadCardinalityFromCsvDir(data_dir)); + } catch (const std::exception& e) { + state.SkipWithError(e.what()); + return; + } + + boost::asio::io_context ctx; + CsvDirSequentialScanner seq_scan{data_dir.string()}; + Executor executor(std::move(seq_scan), ctx.get_executor()); + + auto run_once = [&]() { + auto fut = boost::asio::co_spawn(ctx, executor.Execute(plan), boost::asio::use_future); + ctx.restart(); + ctx.run(); + return fut.get(); + }; + + try { + benchmark::DoNotOptimize(run_once()); + for (auto _ : state) { + benchmark::DoNotOptimize(run_once()); + } + } catch (const std::exception& e) { + state.SkipWithError(e.what()); + } +} + +struct SsbRegistration { + SsbRegistration() { + const auto query_dir = std::filesystem::path{kProjectDir} / "benchmarks/datasets/ssb/queries"; + const auto data_dir = SsbDataDir(); + if (!std::filesystem::is_directory(query_dir)) return; + + for (const auto& entry : std::filesystem::directory_iterator{query_dir}) { + if (entry.path().extension() != ".sql") continue; + auto query = ReadTextFile(entry.path()); + auto name = "SSB/" + entry.path().stem().string(); + benchmark::RegisterBenchmark( + (name + "/Interpreted/Naive").c_str(), + &BM_SSB, query, data_dir) + ->UseRealTime(); + benchmark::RegisterBenchmark( + (name + "/Interpreted/Optimized").c_str(), + &BM_SSB, query, data_dir) + ->UseRealTime(); + } + } +}; + +const SsbRegistration kRegisterSsb; + +} // namespace + } // namespace stewkk::sql BENCHMARK_MAIN(); diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 3e6c7f9..b6f295a 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -38,6 +38,7 @@ std::string_view OutputTable(const SeqScan& scan); struct PhysicalProjection { std::shared_ptr source; std::vector expressions; + std::vector> aliases; bool operator==(const PhysicalProjection&) const; }; diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 452885f..193257c 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -25,6 +25,7 @@ struct SeqScan { struct Projection { utils::NotNull source; std::vector expressions; + std::vector> aliases; bool operator==(const Projection&) const = default; }; diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 6a5deb2..b55423d 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -35,7 +35,7 @@ Value ApplyBooleanOperator(Value lhs, Value rhs) { if (lhs.is_null || rhs.is_null) { return Value{true}; } - return Value{false, Op{}(lhs.value.bool_value, rhs.value.bool_value)}; + return Value{false, {.bool_value = Op{}(lhs.value.bool_value, rhs.value.bool_value)}}; } struct IntPow { @@ -67,8 +67,11 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a return Type::kBool; } if (lhs_type == Type::kString - && !std::ranges::contains(std::vector{BinaryOp::kEq, BinaryOp::kNotEq}, binop.binop)) { - throw std::logic_error{"strings support only = and != operators"}; + && !std::ranges::contains(std::vector{BinaryOp::kEq, BinaryOp::kNotEq, + BinaryOp::kLt, BinaryOp::kLe, + BinaryOp::kGt, BinaryOp::kGe}, + binop.binop)) { + throw std::logic_error{"strings support only comparison operators"}; } return Type::kBool; } @@ -150,8 +153,8 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& available_attrs) { struct ExpressionTypeVisitor { Type operator()(const BinaryExpression& binop) const { - if (std::ranges::contains(std::vector{BinaryOp::kPlus, BinaryOp::kMinus, BinaryOp::kDiv, - BinaryOp::kMod, BinaryOp::kPow}, + if (std::ranges::contains(std::vector{BinaryOp::kPlus, BinaryOp::kMinus, BinaryOp::kMul, + BinaryOp::kDiv, BinaryOp::kMod, BinaryOp::kPow}, binop.binop)) { return Type::kInt; } @@ -206,10 +209,13 @@ Type GetExpressionTypeUnchecked(const Expression& expr, const AttributesInfo& av AttributesInfo GetAttributesAfterProjection(const AttributesInfo& attrs, const PhysicalProjection& proj) { AttributesInfo result_attributes; result_attributes.reserve(proj.expressions.size()); - for (const auto& target : proj.expressions) { + for (const auto& [index, target] : proj.expressions | std::views::enumerate) { AttributeInfo projection_result; projection_result.type = GetExpressionType(target, attrs); - if (const Attribute* attr = std::get_if(&target)) { + if (index < static_cast(proj.aliases.size()) && proj.aliases[index]) { + projection_result.name = *proj.aliases[index]; + projection_result.table = ""; + } else if (const Attribute* attr = std::get_if(&target)) { projection_result.name = std::move(attr->name); projection_result.table = std::move(attr->table); } @@ -231,53 +237,70 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co } } + Value CompareValues(Value lhs, Value rhs, BinaryOp op, Type type) { + if (lhs.is_null || rhs.is_null) { + return Value{true}; + } + int cmp = 0; + switch (type) { + case Type::kInt: + cmp = (lhs.value.int_value > rhs.value.int_value) + - (lhs.value.int_value < rhs.value.int_value); + break; + case Type::kBool: + cmp = (lhs.value.bool_value > rhs.value.bool_value) + - (lhs.value.bool_value < rhs.value.bool_value); + break; + case Type::kString: { + const auto& l = GetInternedString(lhs.value.string_id); + const auto& r = GetInternedString(rhs.value.string_id); + cmp = (l > r) - (l < r); + break; + } + } + switch (op) { + case BinaryOp::kGt: + return Value{false, {.bool_value = cmp > 0}}; + case BinaryOp::kLt: + return Value{false, {.bool_value = cmp < 0}}; + case BinaryOp::kLe: + return Value{false, {.bool_value = cmp <= 0}}; + case BinaryOp::kGe: + return Value{false, {.bool_value = cmp >= 0}}; + case BinaryOp::kNotEq: + return Value{false, {.bool_value = cmp != 0}}; + case BinaryOp::kEq: + return Value{false, {.bool_value = cmp == 0}}; + default: + std::unreachable(); + } + } + Value operator()(const BinaryExpression& expr) { auto lhs = std::visit(*this, *expr.lhs); auto rhs = std::visit(*this, *expr.rhs); switch (expr.binop) { case BinaryOp::kGt: - if (GetExpressionTypeUnchecked(*expr.lhs, source_attrs) == Type::kBool) { - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - } - return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); case BinaryOp::kLt: - if (GetExpressionTypeUnchecked(*expr.lhs, source_attrs) == Type::kBool) { - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - } - return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); case BinaryOp::kLe: - if (GetExpressionTypeUnchecked(*expr.lhs, source_attrs) == Type::kBool) { - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - } - return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); case BinaryOp::kGe: - if (GetExpressionTypeUnchecked(*expr.lhs, source_attrs) == Type::kBool) { - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - } - return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); case BinaryOp::kNotEq: - if (GetExpressionTypeUnchecked(*expr.lhs, source_attrs) == Type::kBool) { - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - } - return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); case BinaryOp::kEq: - if (GetExpressionTypeUnchecked(*expr.lhs, source_attrs) == Type::kBool) { - return ApplyBooleanOperator>(std::move(lhs), std::move(rhs)); - } - return ApplyIntegersOperator, bool>(std::move(lhs), std::move(rhs)); + return CompareValues(std::move(lhs), std::move(rhs), expr.binop, + GetExpressionTypeUnchecked(*expr.lhs, source_attrs)); case BinaryOp::kOr: { bool lhs_true = !lhs.is_null && lhs.value.bool_value; bool rhs_true = !rhs.is_null && rhs.value.bool_value; - if (lhs_true || rhs_true) return Value{false, true}; + if (lhs_true || rhs_true) return Value{false, {.bool_value = true}}; if (lhs.is_null || rhs.is_null) return Value{true}; - return Value{false, false}; + return Value{false, {.bool_value = false}}; } case BinaryOp::kAnd: { bool lhs_false = !lhs.is_null && !lhs.value.bool_value; bool rhs_false = !rhs.is_null && !rhs.value.bool_value; - if (lhs_false || rhs_false) return Value{false, false}; + if (lhs_false || rhs_false) return Value{false, {.bool_value = false}}; if (lhs.is_null || rhs.is_null) return Value{true}; - return Value{false, true}; + return Value{false, {.bool_value = true}}; } case BinaryOp::kPlus: return ApplyIntegersOperator, int64_t>(std::move(lhs), std::move(rhs)); @@ -302,16 +325,16 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co return Value{true}; } if (child.value.bool_value) { - return Value{false, false}; + return Value{false, {.bool_value = false}}; } - return Value{false, true}; + return Value{false, {.bool_value = true}}; case UnaryOp::kMinus: if (child.is_null) { return Value{true}; } return Value{false, -child.value.int_value}; case UnaryOp::kIsNull: - return Value{false, child.is_null}; + return Value{false, {.bool_value = child.is_null}}; } } Value operator()(const InExpression& expr) { @@ -329,14 +352,14 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co continue; } if (ValuesEqual(lhs, value, lhs_type)) { - return Value{false, !expr.negated}; + return Value{false, {.bool_value = !expr.negated}}; } } if (saw_null) { return Value{true}; } - return Value{false, expr.negated}; + return Value{false, {.bool_value = expr.negated}}; } Value operator()(const AggregateExpression&) { throw std::logic_error{"aggregate expressions cannot be evaluated as scalar expressions"}; @@ -361,10 +384,10 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co case Literal::kNull: return Value{true}; case Literal::kTrue: { - return Value{false, true}; + return Value{false, {.bool_value = true}}; } case Literal::kFalse: { - return Value{false, false}; + return Value{false, {.bool_value = false}}; } case Literal::kUnknown: { return Value{true}; @@ -659,7 +682,7 @@ boost::asio::awaitable Executor::Execute(const Physica for (const auto& key : sort.keys.keys) { auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& a) { - return a.table == key.table && a.name == key.column; + return a.name == key.column && (key.table.empty() || a.table == key.table); }); if (it == attrs.end()) throw std::runtime_error{"sort key column not found: " + key.table + "." + key.column}; @@ -669,15 +692,32 @@ boost::asio::awaitable Executor::Execute(const Physica std::sort(all_tuples.begin(), all_tuples.end(), [&](const Tuple& a, const Tuple& b) { for (const auto& [idx, dir] : key_indices) { + const auto& attr = attrs[idx]; const auto& va = a[idx]; const auto& vb = b[idx]; if (va.is_null && vb.is_null) continue; if (va.is_null) return false; if (vb.is_null) return true; - if (va.value.int_value != vb.value.int_value) - return dir == Direction::kAsc - ? va.value.int_value < vb.value.int_value - : va.value.int_value > vb.value.int_value; + bool less = false; + bool greater = false; + switch (attr.type) { + case Type::kInt: + less = va.value.int_value < vb.value.int_value; + greater = va.value.int_value > vb.value.int_value; + break; + case Type::kBool: + less = va.value.bool_value < vb.value.bool_value; + greater = va.value.bool_value > vb.value.bool_value; + break; + case Type::kString: { + const auto& sa = GetInternedString(va.value.string_id); + const auto& sb = GetInternedString(vb.value.string_id); + less = sa < sb; + greater = sa > sb; + break; + } + } + if (less || greater) return dir == Direction::kAsc ? less : greater; } return false; }); diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index fabfdfd..b42284b 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -29,6 +29,7 @@ PhysicalPlanNode ToPhysicalPlan(const Operator& op) { return PhysicalProjection{ .source = std::make_shared(ToPhysicalPlan(*p.source)), .expressions = p.expressions, + .aliases = p.aliases, }; }, [](const Filter& f) -> PhysicalPlanNode { @@ -187,6 +188,31 @@ TEST(ExecutorTest, StringInFilter) { ctx.run(); } +TEST(ExecutorTest, StringOrderedFilter) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT m.id FROM markets AS m WHERE m.region >= 'AMERICA';"}; + PhysicalPlanNode op = ToPhysicalPlan(GetAST(s).value().op); + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + + auto got = co_await executor.Execute(op); + + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + + ASSERT_THAT(got.value().attributes, Eq(AttributesInfo{{"m", "id", Type::kInt}})); + ASSERT_THAT(got.value().tuples, Eq(Tuples{{Value{false, 1}}, {Value{false, 2}}, {Value{false, 3}}})); + }); + + ctx.run(); +} + TEST(ExecutorTest, StringNotInFilter) { boost::asio::io_context ctx; boost::asio::co_spawn( @@ -268,6 +294,27 @@ TEST(ExecutorTest, InNullSemantics) { ASSERT_THAT(CalcExpression(tuple, attrs, null_lhs).is_null, Eq(true)); } +TEST(ExecutorTest, StringOrderedComparison) { + AttributesInfo attrs{{"t", "x", Type::kString}}; + Tuple tuple{Value{false, {.string_id = InternString("MFGR#2223")}}}; + + Expression lower = BinaryExpression{ + std::make_shared(Attribute{"t", "x"}), + BinaryOp::kGe, + std::make_shared(StringConst{"MFGR#2221"}), + }; + Expression upper = BinaryExpression{ + std::make_shared(Attribute{"t", "x"}), + BinaryOp::kLe, + std::make_shared(StringConst{"MFGR#2228"}), + }; + + ASSERT_THAT(CalcExpression(tuple, attrs, lower), + Eq(Value{false, {.bool_value = true}})); + ASSERT_THAT(CalcExpression(tuple, attrs, upper), + Eq(Value{false, {.bool_value = true}})); +} + TEST(ExecutorTest, JitRejectsStringExpressions) { boost::asio::io_context ctx; bool rejected = false; diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 212769b..8d47a38 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -7,7 +7,7 @@ std::string_view OutputTable(const SeqScan& scan) { } bool PhysicalProjection::operator==(const PhysicalProjection& other) const { - return *source == *other.source && expressions == other.expressions; + return *source == *other.source && expressions == other.expressions && aliases == other.aliases; } bool PhysicalFilter::operator==(const PhysicalFilter& other) const { diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 0121417..9f32e1b 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -157,8 +157,21 @@ std::string SerializeNode(const PhysicalPlanNode& node) { if (!exprs.empty()) exprs += ' '; exprs += SerializeExpr(e); } - return std::format("(PhysicalProjection (exprs {}) {})", - exprs, SerializeNode(*n.source)); + if (!n.aliases.empty()) { + std::string aliases; + for (size_t i = 0; i < n.expressions.size(); ++i) { + if (!aliases.empty()) aliases += ' '; + if (i < n.aliases.size() && n.aliases[i]) { + aliases += QuoteString(*n.aliases[i]); + } else { + aliases += "-"; + } + } + return std::format("(PhysicalProjection (exprs {}) (aliases {}) {})", + exprs, aliases, SerializeNode(*n.source)); + } + return std::format("(PhysicalProjection (exprs {}) {})", exprs, + SerializeNode(*n.source)); } std::string operator()(const NestedLoopCrossJoin& n) const { return std::format("(NestedLoopCrossJoin {} {})", @@ -314,6 +327,11 @@ const std::unordered_map kLiterals = { {"FALSE", Literal::kFalse}, {"UNKNOWN", Literal::kUnknown}, }; +const std::unordered_map kAggregateFunctions = { + {"SUM", AggregateFunction::kSum}, + {"COUNT", AggregateFunction::kCount}, +}; + Expression ParseExpr(ParseState& s); PhysicalPlanNode ParseNode(ParseState& s); @@ -365,6 +383,20 @@ Expression ParseExpr(ParseState& s) { head == "notin", }; } + if (auto it = kAggregateFunctions.find(head); it != kAggregateFunctions.end()) { + if (s.Peek().kind == TokenKind::Atom && s.Peek().text == "*") { + s.ExpectAtom(); + s.ExpectRParen(); + return AggregateExpression{it->second, nullptr, true}; + } + auto arg = ParseExpr(s); + s.ExpectRParen(); + return AggregateExpression{ + it->second, + std::make_shared(std::move(arg)), + false, + }; + } if (auto it = kBinaryOps.find(head); it != kBinaryOps.end()) { auto lhs = ParseExpr(s); auto rhs = ParseExpr(s); @@ -417,11 +449,31 @@ PhysicalPlanNode ParseNode(ParseState& s) { while (s.Peek().kind != TokenKind::RParen) exprs.push_back(ParseExpr(s)); s.ExpectRParen(); + std::vector> aliases; + if (s.Peek().kind == TokenKind::LParen + && s.pos + 1 < s.tokens.size() + && s.tokens[s.pos + 1].kind == TokenKind::Atom + && s.tokens[s.pos + 1].text == "aliases") { + s.ExpectLParen(); + auto aliases_kw = s.ExpectAtom(); + if (aliases_kw != "aliases") + throw std::runtime_error(std::format("expected 'aliases' but got '{}'", aliases_kw)); + while (s.Peek().kind != TokenKind::RParen) { + auto alias = s.ExpectAtom(); + if (alias == "-") { + aliases.push_back(std::nullopt); + } else { + aliases.push_back(UnquoteString(alias)); + } + } + s.ExpectRParen(); + } auto source = ParseNode(s); s.ExpectRParen(); return PhysicalProjection{ std::make_shared(std::move(source)), std::move(exprs), + std::move(aliases), }; } if (head == "NestedLoopCrossJoin") { diff --git a/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp b/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp index b447330..51889c6 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp @@ -8,7 +8,8 @@ bool ImplementProjection::IsApplicable(utils::NotNull expr) { utils::NotNull ImplementProjection::Apply(utils::NotNull expr, Memo&) { auto& proj = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr(physical::Projection{proj.source, proj.expressions}); + return expr->group->AddPhysicalExpr( + physical::Projection{proj.source, proj.expressions, proj.aliases}); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 976fc16..448737a 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -421,6 +421,7 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G .source = std::make_shared( BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), .expressions = op.expressions, + .aliases = op.aliases, }; }, [this, best_expr_nn, required](const physical::Filter& op) -> PhysicalPlanNode { diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index fe74d20..9c67fe8 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -35,13 +35,13 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { return GetSchema(f.source); }, [](const logical::Projection& p) -> std::optional { - // Schema after projection is exactly the Attributes named in its - // expression list. Computed (non-Attribute) expressions produce - // columns that can't be referenced by (table, name), so they are - // dropped from the schema — sorting on them is impossible anyway. + // Aliased projection outputs can be referenced by unqualified ORDER + // BY names. Unaliased computed expressions are not addressable. Schema out; - for (const auto& expr : p.expressions) { - if (const auto* a = std::get_if(&expr)) { + for (size_t i = 0; i < p.expressions.size(); ++i) { + if (i < p.aliases.size() && p.aliases[i]) { + out.push_back(Attribute{"", *p.aliases[i]}); + } else if (const auto* a = std::get_if(&p.expressions[i])) { out.push_back(*a); } } diff --git a/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp b/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp index 0a183de..694111a 100644 --- a/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp +++ b/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp @@ -15,7 +15,10 @@ std::optional SortEnforcer::TryBuild( for (const auto& sk : req->order.keys) { bool found = false; for (const auto& a : *sch) { - if (a.table == sk.table && a.name == sk.column) { found = true; break; } + if (a.name == sk.column && (sk.table.empty() || a.table == sk.table)) { + found = true; + break; + } } if (!found) return std::nullopt; } diff --git a/src/stewkk/sql/logic/parser/parser_test.cpp b/src/stewkk/sql/logic/parser/parser_test.cpp index 7f080b7..8e2d7ce 100644 --- a/src/stewkk/sql/logic/parser/parser_test.cpp +++ b/src/stewkk/sql/logic/parser/parser_test.cpp @@ -387,12 +387,12 @@ TEST(ParserTest, OrderByIntOrdinalRejected) { ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); } -TEST(ParserTest, OrderByUnqualifiedColumnRejected) { +TEST(ParserTest, OrderByUnqualifiedColumnAccepted) { std::stringstream s{"SELECT * FROM users ORDER BY id;"}; - auto got = GetAST(s).error(); + auto parsed = GetAST(s).value(); - ASSERT_THAT(got.Wraps(ErrorType::kQueryNotSupported), IsTrue()); + ASSERT_THAT(parsed.required_order, Optional(SortOrder{{SortKey{"", "id", Direction::kAsc}}})); } TEST(ParserTest, OrderByNullsFirstRejected) { diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index 72ea9dc..eff49cd 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -325,6 +325,9 @@ std::any Visitor::visitTarget_list(codegen::PostgreSQLParser::Target_listContext aliases.push_back(std::move(target.alias)); target_expressions.push_back(std::move(target.expression)); } + if (std::ranges::none_of(aliases, [](const auto& alias) { return alias.has_value(); })) { + aliases.clear(); + } return Operator{Projection{std::move(target_expressions), nullptr, std::move(aliases)}}; } @@ -591,6 +594,10 @@ std::any Visitor::visitSimple_select_pramary( } if (projection) { + if (std::ranges::none_of(projection->aliases, + [](const auto& alias) { return alias.has_value(); })) { + projection->aliases.clear(); + } result = Projection{ std::move(projection->expressions), std::make_shared(std::move(result)), @@ -648,10 +655,7 @@ std::any Visitor::visitSortby(codegen::PostgreSQLParser::SortbyContext *ctx) { auto expr = std::any_cast(visit(ctx->a_expr())); auto* attr = std::get_if(&expr); if (!attr) { - throw Error{ErrorType::kQueryNotSupported, "ORDER BY expression must be a qualified column reference"}; - } - if (attr->table.empty()) { - throw Error{ErrorType::kQueryNotSupported, "ORDER BY requires a qualified column reference (table.column)"}; + throw Error{ErrorType::kQueryNotSupported, "ORDER BY expression must be a column reference"}; } Direction dir = Direction::kAsc; From 809b8c80afa041dff7294f9f7779f4e40c4d39ab Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 05:47:09 +0300 Subject: [PATCH 060/120] Support GROUP BY in fuzzers --- .gitmodules | 3 + flake.nix | 1 + .../sql/logic/optimizer/reachability.hpp | 9 +- include/stewkk/sql/logic/optimizer/rules.hpp | 3 +- .../transformation_rules/in_to_or_chain.hpp | 22 ++ research/converter.py | 135 +++++++- research/fuzz/diff_fuzz.py | 55 +++- research/fuzz/mssql_runner.py | 17 +- research/fuzz/reach_fuzz.py | 156 ++++++++- research/ms-server-plans/fuzz/group_by.xml | 1 + research/ms-server-plans/fuzz/group_order.xml | 1 + research/ms-server-plans/fuzz/in_filter.xml | 1 + research/ms-server-plans/fuzz/order_by.xml | 1 + .../ms-server-plans/fuzz/string_filter.xml | 1 + research/query_generator.py | 311 ++++++++++++++---- research/ssb-dbgen | 1 + research/test_converter.py | 156 +++++++++ src/stewkk/sql/CMakeLists.txt | 1 + .../sql/logic/executor/plan_serializer.cpp | 6 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 2 +- .../sql/logic/optimizer/optimizer_test.cpp | 68 ++++ .../sql/logic/optimizer/reachability.cpp | 14 +- src/stewkk/sql/logic/optimizer/rules.cpp | 3 +- .../sql/logic/optimizer/rules_applier.cpp | 2 +- .../transformation_rules/in_to_or_chain.cpp | 80 +++++ src/stewkk/sql/main.cpp | 6 +- 26 files changed, 963 insertions(+), 93 deletions(-) create mode 100644 include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp create mode 100644 research/ms-server-plans/fuzz/group_by.xml create mode 100644 research/ms-server-plans/fuzz/group_order.xml create mode 100644 research/ms-server-plans/fuzz/in_filter.xml create mode 100644 research/ms-server-plans/fuzz/order_by.xml create mode 100644 research/ms-server-plans/fuzz/string_filter.xml create mode 160000 research/ssb-dbgen create mode 100644 src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp diff --git a/.gitmodules b/.gitmodules index 68eabaa..d550f5e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "research/imdb-sqlserver"] path = research/imdb-sqlserver url = git@github.com:sqlsunday/imdb-to-sqlserver.git +[submodule "research/ssb-dbgen"] + path = research/ssb-dbgen + url = https://github.com/electrum/ssb-dbgen.git diff --git a/flake.nix b/flake.nix index e8162f2..f99f3e8 100644 --- a/flake.nix +++ b/flake.nix @@ -62,6 +62,7 @@ nodejs_24 graphviz codex + claude-code ]; nativeBuildInputs = [ diff --git a/include/stewkk/sql/logic/optimizer/reachability.hpp b/include/stewkk/sql/logic/optimizer/reachability.hpp index 6bf5edc..8e74e67 100644 --- a/include/stewkk/sql/logic/optimizer/reachability.hpp +++ b/include/stewkk/sql/logic/optimizer/reachability.hpp @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -18,7 +19,13 @@ struct MatchResult { MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target); +// Runs an exhaustive search over `sql` and reports whether `target` is among +// the physical alternatives the optimizer enumerates. The query's ORDER BY (if +// any) is propagated as a required sort property so the search also generates +// the Sort enforcers needed to reach an ordered plan; `schema` lets those +// enforcers validate that the sort keys exist on the group they sit above. MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, - CardinalityEstimates cardinality = {}); + CardinalityEstimates cardinality = {}, + SchemaCatalog schema = {}); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index 7568b91..57c675b 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -26,6 +27,6 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<6, 7> MakeMainRules(); +Rules<7, 7> MakeMainRules(); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp b/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp new file mode 100644 index 0000000..923824d --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +// Filter(... x IN (v0, v1, ...) ..., X) +// → Filter(... (x = v0 OR x = v1 OR ...) ..., X) +// and the NOT IN case to (x != v0 AND x != v1 AND ...). +// +// IN and the OR-chain are equal under three-valued logic, so this just adds the +// expanded form as a sibling in the same group. It lets the exhaustive search +// reach plans that materialize the OR-chain (as MS SQL Server does), and the +// expanded predicate is JIT-able whereas the InExpression node is not. +class InToOrChain : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/research/converter.py b/research/converter.py index aa46dce..fd24d01 100644 --- a/research/converter.py +++ b/research/converter.py @@ -9,14 +9,18 @@ (PhysicalProjection (exprs EXPR...) SOURCE) (NestedLoopCrossJoin LHS RHS) (NestedLoopJoin JoinType EXPR LHS RHS) JoinType: Inner | Full | Left | Right + (Sort (keys table.col Asc|Desc ...) SOURCE) + (HashAggregate (group_by EXPR...) (aggs EXPR...) SOURCE) Expressions: 42 NULL TRUE FALSE UNKNOWN + (str "value") (attr table column) (OP LHS RHS) OP: = != > < >= <= and or + - * / % ^ (not EXPR) (uminus EXPR) (isnull EXPR) + (SUM EXPR) (COUNT EXPR) (COUNT *) """ import xml.etree.ElementTree as ET @@ -70,9 +74,17 @@ def _convert_relop(relop: ET.Element) -> str: if phys_op in ("Clustered Index Scan", "Index Scan", "Table Scan", "Clustered Index Seek", "Index Seek"): return _convert_scan(relop) + if phys_op == "Compute Scalar": + return _convert_compute_scalar(relop) + if phys_op == "Sort": + return _convert_sort(relop) + if phys_op == "Stream Aggregate": + return _convert_aggregate(relop, "StreamAggregate", "GroupBy", drop_enforcer_sort=True) if phys_op == "Nested Loops": return _convert_nested_loops(relop, logical_op) if phys_op == "Hash Match": + if logical_op == "Aggregate": + return _convert_aggregate(relop, "Hash", "HashKeysBuild", drop_enforcer_sort=False) return _convert_hash_match(relop, logical_op) if phys_op == "Merge Join": return _convert_merge_join(relop, logical_op) @@ -80,6 +92,102 @@ def _convert_relop(relop: ET.Element) -> str: raise NotImplementedError(f"unhandled PhysicalOp: {phys_op!r} (LogicalOp={logical_op!r})") +def _convert_compute_scalar(relop: ET.Element) -> str: + # MS SQL wraps aggregate outputs, casts and computed projections in a + # Compute Scalar node. The serialized projection is re-added by + # reach_fuzz._wrap_projection, so pass straight through to the child. + child = relop.find(f"{NS}ComputeScalar/{NS}RelOp") + if child is None: + raise ValueError("Compute Scalar has no child RelOp") + return _convert_relop(child) + + +def _convert_sort(relop: ET.Element) -> str: + sort = relop.find(f"{NS}Sort") + if sort is None: + raise ValueError("Sort element missing") + child = sort.find(f"{NS}RelOp") + if child is None: + raise ValueError("Sort has no child RelOp") + + keys = [] + for ob in sort.findall(f"{NS}OrderBy/{NS}OrderByColumn"): + ascending = (ob.get("Ascending", "true").lower() != "false") + cr = ob.find(f"{NS}ColumnReference") + if cr is None: + continue + table = _strip_sql_name(cr.get("Alias") or cr.get("Table")) + col = cr.get("Column", "").strip("[]") + keys.append(f"{table}.{col} {'Asc' if ascending else 'Desc'}") + if not keys: + raise ValueError("Sort node has no OrderByColumn entries") + return f"(Sort (keys {' '.join(keys)}) {_convert_relop(child)})" + + +_AGG_TYPES = { + "SUM": "SUM", + "COUNT": "COUNT", + "COUNT_BIG": "COUNT", + "CNT": "COUNT", + "CNT_BIG": "COUNT", +} + + +def _convert_aggregate( + relop: ET.Element, container_tag: str, groupby_tag: str, drop_enforcer_sort: bool +) -> str: + container = relop.find(f"{NS}{container_tag}") + if container is None: + raise ValueError(f"{container_tag} element missing from aggregate node") + + child = container.find(f"{NS}RelOp") + if child is None: + raise ValueError("aggregate node has no child RelOp") + # A Sort directly under a Stream Aggregate is MS's enforcer for ordered + # stream aggregation; our model uses hash aggregation over unordered input, + # so drop it. A user ORDER BY sort lives above the aggregate/projection. + if drop_enforcer_sort and child.get("PhysicalOp", "") == "Sort": + inner_sort = child.find(f"{NS}Sort/{NS}RelOp") + if inner_sort is None: + raise ValueError("enforcer Sort has no child RelOp") + child_str = _convert_relop(inner_sort) + else: + child_str = _convert_relop(child) + + group_by = [ + _col_ref_to_attr(cr) + for cr in container.findall(f"{NS}{groupby_tag}/{NS}ColumnReference") + ] + + aggs = [] + for dv in container.findall(f"{NS}DefinedValues/{NS}DefinedValue"): + agg = dv.find(f".//{NS}Aggregate") + if agg is None: + continue + aggs.append(_convert_agg_func(agg)) + + return ( + f"(HashAggregate (group_by {' '.join(group_by)})" + f" (aggs {' '.join(aggs)}) {child_str})" + ) + + +def _convert_agg_func(agg: ET.Element) -> str: + agg_type = agg.get("AggType", "") + if agg_type == "countstar": + return "(COUNT *)" + + func = _AGG_TYPES.get(agg_type.upper()) + if func is None: + raise NotImplementedError(f"unhandled AggType: {agg_type!r}") + + inner = agg.find(f"{NS}ScalarOperator") + if inner is None: + # COUNT with no argument behaves like COUNT(*). + return f"({func} *)" if func == "COUNT" else f"({func})" + return f"({func} {_convert_scalar(inner)})" + + _SEEK_SCAN_TYPES = {"GT": ">", "GE": ">=", "LT": "<", "LE": "<=", "EQ": "="} @@ -323,5 +431,28 @@ def _convert_identifier(identifier: ET.Element) -> str: def _convert_const(const: ET.Element) -> str: - value = const.get("ConstValue", "").strip("()") - return value + raw = const.get("ConstValue", "").strip() + # String literal: 'text' or N'text', with '' as an escaped single quote. + s = raw[1:] if raw.startswith("N'") else raw + if len(s) >= 2 and s.startswith("'") and s.endswith("'"): + inner = s[1:-1].replace("''", "'") + return f"(str {_quote_cpp_string(inner)})" + return raw.strip("()") + + +def _quote_cpp_string(value: str) -> str: + """Re-quote a string into the C++ double-quoted form (plan_serializer.cpp).""" + out = ['"'] + for c in value: + if c == "\\": + out.append("\\\\") + elif c == '"': + out.append('\\"') + elif c == "\n": + out.append("\\n") + elif c == "\t": + out.append("\\t") + else: + out.append(c) + out.append('"') + return "".join(out) diff --git a/research/fuzz/diff_fuzz.py b/research/fuzz/diff_fuzz.py index 622e2ed..f631f0b 100644 --- a/research/fuzz/diff_fuzz.py +++ b/research/fuzz/diff_fuzz.py @@ -24,6 +24,7 @@ from research.fuzz.mssql_runner import MsSqlRunner, RunResult from research.query_generator import ( DIALECTS, + Attr, QueryGenerator, SelectQuery, load_schema, @@ -66,6 +67,55 @@ def _run_ours(cli: str, data_dir: str, query: str, jit: bool) -> subprocess.Comp ) +def _typed(cell: str): + if cell == "NULL": + return None + try: + return int(cell) + except ValueError: + return cell + + +def _order_by_indices(query: SelectQuery) -> list[tuple[int, str]]: + """Map each ORDER BY key to its column index in the projection order.""" + out: list[tuple[int, str]] = [] + for key_attr, direction in query.order_by: + for i, t in enumerate(query.targets): + e = t.expr + if isinstance(e, Attr) and e.table == key_attr.table and e.column == key_attr.column: + out.append((i, direction)) + break + return out + + +def _check_order(query: SelectQuery, our_rows: list[str]) -> str | None: + """ + Verify the CLI's (order-preserved) output is monotonic in the ORDER BY keys. + NULL key values are skipped because the two engines disagree on NULL + ordering; this still catches gross ordering bugs without tie-break flakiness. + """ + keys = _order_by_indices(query) + if not keys: + return None + + prev: list | None = None + for row in our_rows: + cells = row.split("\t") + cur = [(_typed(cells[i]), direction) for i, direction in keys if i < len(cells)] + if prev is not None: + for (va, da), (vb, _) in zip(prev, cur): + if va is None or vb is None or va == vb: + continue + less = va < vb + if da == "desc": + less = not less + if not less: + return "ORDER BY ordering violated in our output" + break + prev = cur + return None + + def _compare( query: SelectQuery, ours_proc: subprocess.CompletedProcess, @@ -84,11 +134,12 @@ def _compare( if our_cols != their_cols: return f"column count: ours={our_cols} theirs={their_cols}" - # Generator does not emit ORDER BY, so always compare as multisets. + # Row correctness: compare as multisets regardless of ordering. if sorted(our_rows) != sorted(their_rows): return "row contents differ" - return None + # If the query asked for an order, additionally check our output respects it. + return _check_order(query, our_rows) def main() -> None: diff --git a/research/fuzz/mssql_runner.py b/research/fuzz/mssql_runner.py index f4f5b7d..db4d056 100644 --- a/research/fuzz/mssql_runner.py +++ b/research/fuzz/mssql_runner.py @@ -90,19 +90,30 @@ def setup_schema(self, data_dir: str | Path) -> None: continue self._create_and_load(cur, path) + _SQL_TYPE = {"int": "INT NULL", "string": "VARCHAR(255) NULL"} + def _create_and_load(self, cur, path: Path) -> None: with path.open() as f: reader = csv.reader(f) header = next(reader) cols = [] + types = [] for h in header: name, type_ = (s.strip() for s in h.split(":")) - if type_ != "int": + if type_ not in self._SQL_TYPE: raise ValueError(f"{path}: unsupported column type {type_!r}") cols.append(name) - rows = [tuple(None if v.strip() == "NULL" else int(v) for v in r) for r in reader] + types.append(type_) + + def conv(v: str, type_: str): + v = v.strip() + if v == "NULL": + return None + return int(v) if type_ == "int" else v + + rows = [tuple(conv(v, t) for v, t in zip(r, types)) for r in reader] - col_defs = ", ".join(f"[{c}] INT NULL" for c in cols) + col_defs = ", ".join(f"[{c}] {self._SQL_TYPE[t]}" for c, t in zip(cols, types)) cur.execute(f"CREATE TABLE [dbo].[{path.stem}] ({col_defs})") if rows: diff --git a/research/fuzz/reach_fuzz.py b/research/fuzz/reach_fuzz.py index c2530d6..1c632e0 100644 --- a/research/fuzz/reach_fuzz.py +++ b/research/fuzz/reach_fuzz.py @@ -10,6 +10,12 @@ (unhandled physical operators or scalar shapes) are logged and skipped, since they are converter limitations rather than optimizer bugs. +ORDER BY is part of the comparison: MS SQL's plan keeps the ORDER BY Sort on +top, and we keep it too. The CLI propagates the query's ORDER BY as a required +sort property, so the exhaustive search generates the matching Sort enforcer on +the root group and the ordered plan is genuinely reachable (or not — which is +exactly the divergence we want to surface). + Usage: python -m research.fuzz.reach_fuzz \\ --cli build/bin/sql \\ @@ -29,6 +35,7 @@ from research.converter import convert as convert_plan from research.fuzz.mssql_runner import MsSqlRunner from research.query_generator import ( + Aggregate, DIALECTS, QueryGenerator, SelectQuery, @@ -37,22 +44,153 @@ ) +def _quote_alias(alias: str) -> str: + return '"' + alias.replace("\\", "\\\\").replace('"', '\\"') + '"' + + +def _render_attr(a) -> str: + return f"(attr {a.table} {a.column})" + + +def _render_agg(agg: Aggregate) -> str: + if agg.func == "COUNT" and agg.arg is None: + return "(COUNT *)" + return f"({agg.func} {_render_attr(agg.arg)})" + + +def _split_sexpr_args(inner: str) -> list[str]: + """Split the body of an s-expr into top-level atoms/groups, respecting + nested parens and double-quoted strings.""" + out: list[str] = [] + i, n = 0, len(inner) + while i < n: + while i < n and inner[i].isspace(): + i += 1 + if i >= n: + break + if inner[i] == "(": + depth, j = 0, i + while j < n: + c = inner[j] + if c == '"': + j += 1 + while j < n and inner[j] != '"': + j += 2 if inner[j] == "\\" else 1 + j += 1 + continue + if c == "(": + depth += 1 + elif c == ")": + depth -= 1 + if depth == 0: + j += 1 + break + j += 1 + out.append(inner[i:j]) + i = j + else: + j = i + while j < n and not inner[j].isspace(): + j += 1 + out.append(inner[i:j]) + i = j + return out + + +def _top_node(sexpr: str) -> tuple[str, list[str]]: + s = sexpr.strip() + args = _split_sexpr_args(s[1:-1]) + return args[0], args[1:] + + +def _make_projection(plan_sexpr: str, query: SelectQuery) -> str: + """Wrap `plan_sexpr` in the PhysicalProjection our visitor emits. + + For GROUP BY queries this sits above the HashAggregate the converter + produced: the C++ visitor replaces each aggregate target with a synthetic + attribute ``__aggN`` (empty table, counter in target order) and keeps the + HashAggregate's aggregate expressions in its ``aggs`` list.""" + exprs = [] + agg_counter = 0 + for t in query.targets: + if isinstance(t.expr, Aggregate): + # Synthetic aggregate-output attribute: empty table, serialized "-". + exprs.append(f"(attr - __agg{agg_counter})") + agg_counter += 1 + else: # plain column target + a = t.expr + exprs.append(f"(attr {a.table} {a.column})") + exprs_str = " ".join(exprs) + + # The visitor clears the alias list when no target is aliased; mirror that + # so the serialized shape matches (with vs without the (aliases ...) form). + if any(t.alias for t in query.targets): + aliases = " ".join(_quote_alias(t.alias) if t.alias else "-" for t in query.targets) + return f"(PhysicalProjection (exprs {exprs_str}) (aliases {aliases}) {plan_sexpr})" + return f"(PhysicalProjection (exprs {exprs_str}) {plan_sexpr})" + + +def _rebuild_aggregate(plan_sexpr: str, query: SelectQuery) -> str: + """Replace a converted HashAggregate's group_by/aggs with query-derived + ones, keeping only its converted source subtree. + + MS SQL augments aggregation with hidden helper aggregates (e.g. a COUNT_BIG + alongside every SUM, for the empty-set NULL semantics) and orders them by + its own internal column ids, so its agg list never matches ours. The + aggregates are pure query semantics both engines share, so we emit them from + the query in target order — the same order the C++ visitor's + CollectAggregates uses — and reuse only the real input subtree from MS.""" + head, args = _top_node(plan_sexpr) + if head != "HashAggregate" or len(args) != 3: + return plan_sexpr # unexpected shape; leave as-is (best effort) + child = args[2] + + group_by = " ".join(_render_attr(a) for a in query.group_by) + aggs = " ".join( + _render_agg(t.expr) for t in query.targets if isinstance(t.expr, Aggregate) + ) + return f"(HashAggregate (group_by {group_by}) (aggs {aggs}) {child})" + + def _wrap_projection(plan_sexpr: str, query: SelectQuery) -> str: - """Our parser always emits a Projection at the top of a SELECT with - targets. MS SQL Server's plans express projection implicitly via the - scan/join OutputList rather than as a node, so we add the wrapper here so - the shape matches what the optimizer's exhaustive search produces.""" - exprs = " ".join(f"(attr {a.table} {a.column})" for a in query.targets) - return f"(PhysicalProjection (exprs {exprs}) {plan_sexpr})" + """Insert the projection node the optimizer's search produces, keeping any + top-of-plan ORDER BY Sort. + + MS SQL places the ORDER BY Sort above the projection. Our optimizer reaches + that exact shape: with the query's ORDER BY propagated as a required sort + property (see IsPlanReachable), the search puts a Sort *enforcer* on the + root projection group. So we lift the converter's Sort off the top, nest the + synthesized projection beneath it, and put the Sort back — yielding + ``(Sort (keys ...) (PhysicalProjection ... ))``. The Sort keys pass + through verbatim from the converter; they match the enforcer's keys, which + the CLI derives from the same ORDER BY clause. + + For non-aggregate column targets the converter emits no projection of its + own (MS SQL just selects the columns), so the projection is always + synthesized here regardless of the Sort.""" + head, args = _top_node(plan_sexpr) + sort_keys = None + if head == "Sort" and len(args) == 2: + sort_keys, plan_sexpr = args[0], args[1] + if query.group_by: + plan_sexpr = _rebuild_aggregate(plan_sexpr, query) + projected = _make_projection(plan_sexpr, query) + if sort_keys is not None: + return f"(Sort {sort_keys} {projected})" + return projected -def _run_reach_check(cli: str, sql: str, plan_sexpr: str) -> subprocess.CompletedProcess: +def _run_reach_check( + cli: str, data_dir: str, sql: str, plan_sexpr: str +) -> subprocess.CompletedProcess: with tempfile.NamedTemporaryFile("w", suffix=".plan", delete=False) as f: f.write(plan_sexpr) plan_path = f.name try: + # --data-dir lets the Sort enforcer validate ORDER BY keys against the + # group schema, matching how the real optimizer places enforcers. return subprocess.run( - [cli, "--check-reachable", plan_path], + [cli, "--check-reachable", plan_path, "--data-dir", data_dir], input=sql, capture_output=True, text=True, @@ -123,7 +261,7 @@ def main() -> None: target_plan = _wrap_projection(converted, query) try: - proc = _run_reach_check(args.cli, ours_sql, target_plan) + proc = _run_reach_check(args.cli, args.data_dir, ours_sql, target_plan) except subprocess.TimeoutExpired: print(f"DIVERGENCE seed={seed}: reachability check timed out") print(f"\n--- query (ours):\n{ours_sql}") diff --git a/research/ms-server-plans/fuzz/group_by.xml b/research/ms-server-plans/fuzz/group_by.xml new file mode 100644 index 0000000..d180a60 --- /dev/null +++ b/research/ms-server-plans/fuzz/group_by.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/research/ms-server-plans/fuzz/group_order.xml b/research/ms-server-plans/fuzz/group_order.xml new file mode 100644 index 0000000..2bbcbea --- /dev/null +++ b/research/ms-server-plans/fuzz/group_order.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/research/ms-server-plans/fuzz/in_filter.xml b/research/ms-server-plans/fuzz/in_filter.xml new file mode 100644 index 0000000..228c3c6 --- /dev/null +++ b/research/ms-server-plans/fuzz/in_filter.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/research/ms-server-plans/fuzz/order_by.xml b/research/ms-server-plans/fuzz/order_by.xml new file mode 100644 index 0000000..183c84c --- /dev/null +++ b/research/ms-server-plans/fuzz/order_by.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/research/ms-server-plans/fuzz/string_filter.xml b/research/ms-server-plans/fuzz/string_filter.xml new file mode 100644 index 0000000..13e48d2 --- /dev/null +++ b/research/ms-server-plans/fuzz/string_filter.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/research/query_generator.py b/research/query_generator.py index 9af297f..0ae442e 100644 --- a/research/query_generator.py +++ b/research/query_generator.py @@ -2,8 +2,10 @@ """ Random SQL query generator. -Builds queries in a strict SELECT-Project-Filter-Join (SPJ) subset that matches -what the C++ parser accepts, then renders them in pluggable SQL dialects. +Builds queries in the subset that the C++ parser accepts — SELECT-Project- +Filter-Join plus table/column aliases, GROUP BY with SUM/COUNT aggregates, +IN/NOT IN, BETWEEN, string columns/literals and ORDER BY — then renders them in +pluggable SQL dialects. Currently supported dialects: - PostgresSubsetDialect (the subset the C++ ANTLR visitor accepts) @@ -20,7 +22,7 @@ import csv import re import random -from dataclasses import dataclass +from dataclasses import dataclass, field from pathlib import Path from typing import Protocol @@ -32,14 +34,14 @@ @dataclass class Column: name: str - type: str # "int" only in current C++ implementation + type: str # "int" | "string" @dataclass class TableSchema: name: str columns: list[Column] - sample_values: dict[str, list[int]] # col_name -> sampled actual values + sample_values: dict[str, list] # col_name -> sampled actual values (typed) @dataclass @@ -65,17 +67,22 @@ def load_schema(csv_dir: Path, max_sample: int = 200) -> Schema: col_name, col_type = h.strip().split(":") columns.append(Column(col_name.strip(), col_type.strip())) - sample_values: dict[str, list[int]] = {c.name: [] for c in columns} + by_name = {c.name: c for c in columns} + sample_values: dict[str, list] = {c.name: [] for c in columns} for i, row in enumerate(reader): if i >= max_sample: break for col, val in zip(columns, row): v = val.strip() - if v != "NULL": + if v == "NULL": + continue + if by_name[col.name].type == "int": try: sample_values[col.name].append(int(v)) except ValueError: pass + else: + sample_values[col.name].append(v) tables[path.stem] = TableSchema(path.stem, columns, sample_values) return Schema(tables) @@ -87,7 +94,7 @@ def load_schema(csv_dir: Path, max_sample: int = 200) -> Schema: @dataclass class Attr: - table: str + table: str # visible name (alias if the scan is aliased, else table name) column: str @@ -96,6 +103,11 @@ class IntLit: value: int +@dataclass +class StrLit: + value: str + + @dataclass class NullLit: pass @@ -128,12 +140,37 @@ class IsNullExpr: negated: bool # False -> IS NULL, True -> IS NOT NULL -Expr = Attr | IntLit | NullLit | BoolLit | BinaryExpr | UnaryExpr | IsNullExpr +@dataclass +class InExpr: + attr: Attr + values: list["Expr"] # IntLit / StrLit, emitted sorted ascending + negated: bool # False -> IN, True -> NOT IN + + +@dataclass +class BetweenExpr: + attr: Attr # int columns only + lo: "Expr" + hi: "Expr" + negated: bool # False -> BETWEEN, True -> NOT BETWEEN + + +@dataclass +class Aggregate: + func: str # "SUM" | "COUNT" + arg: "Expr | None" # None -> COUNT(*) + + +Expr = ( + Attr | IntLit | StrLit | NullLit | BoolLit | BinaryExpr | UnaryExpr + | IsNullExpr | InExpr | BetweenExpr | Aggregate +) @dataclass class TableScan: - name: str + name: str # real table name + alias: str | None = None @dataclass @@ -153,39 +190,40 @@ class CrossJoin: TableRef = TableScan | ExplicitJoin | CrossJoin +# A projected output: an expression with an optional `AS alias`. +@dataclass +class Target: + expr: Expr + alias: str | None = None + + @dataclass class SelectQuery: - targets: list[Attr] + targets: list[Target] from_: TableRef - where: Expr | None + where: Expr | None = None + group_by: list[Attr] = field(default_factory=list) + order_by: list[tuple[Attr, str]] = field(default_factory=list) # (key, "asc"|"desc") # --------------------------------------------------------------------------- # Helpers # --------------------------------------------------------------------------- -def _tables_in_ref(ref: TableRef) -> list[str]: +def _scan_bindings(ref: TableRef) -> list[tuple[str, str]]: + """List of (visible_name, real_table) for every scan in the ref tree.""" if isinstance(ref, TableScan): - return [ref.name] - return _tables_in_ref(ref.lhs) + _tables_in_ref(ref.rhs) - - -def _available_attrs(schema: Schema, ref: TableRef) -> list[Attr]: - return [ - Attr(t, col.name) - for t in _tables_in_ref(ref) - if t in schema.tables - for col in schema.tables[t].columns - ] + return [(ref.alias or ref.name, ref.name)] + return _scan_bindings(ref.lhs) + _scan_bindings(ref.rhs) # --------------------------------------------------------------------------- # Random query builder # --------------------------------------------------------------------------- -_COMPARISON_OPS = ["=", "!=", "<", ">", "<=", ">="] +_INT_COMPARISON_OPS = ["=", "!=", "<", ">", "<=", ">="] +_STR_COMPARISON_OPS = ["=", "!="] _LOGICAL_OPS = ["and", "or"] -_ARITHMETIC_OPS = ["+", "-", "*"] _JOIN_TYPES = ["INNER", "LEFT", "RIGHT", "FULL"] @@ -193,52 +231,133 @@ class QueryGenerator: def __init__(self, schema: Schema, rng: random.Random): self.schema = schema self.rng = rng + # Per-query map: visible table name -> real table name. + self._bindings: dict[str, str] = {} + + # -- attribute / type helpers ------------------------------------------ + + def _real_table(self, visible: str) -> str: + return self._bindings[visible] + + def _column_type(self, attr: Attr) -> str: + real = self._real_table(attr.table) + for c in self.schema.tables[real].columns: + if c.name == attr.column: + return c.type + return "int" + + def _samples(self, attr: Attr) -> list: + real = self._real_table(attr.table) + return self.schema.tables[real].sample_values.get(attr.column, []) + + def _available_attrs(self) -> list[Attr]: + attrs = [] + for visible, real in self._bindings.items(): + for col in self.schema.tables[real].columns: + attrs.append(Attr(visible, col.name)) + return attrs + + # -- top-level --------------------------------------------------------- def generate(self) -> SelectQuery: from_ = self._gen_from() - attrs = _available_attrs(self.schema, from_) - - n_targets = self.rng.randint(1, min(3, len(attrs))) - targets = self.rng.sample(attrs, n_targets) + self._bindings = dict(_scan_bindings(from_)) + attrs = self._available_attrs() where = self._gen_predicate(attrs) if self.rng.random() < 0.6 else None - return SelectQuery(targets, from_, where) + + if self.rng.random() < 0.3 and attrs: + return self._gen_aggregated(from_, attrs, where) + + n_targets = self.rng.randint(1, min(3, len(attrs))) + chosen = self.rng.sample(attrs, n_targets) + targets = [Target(a, self._maybe_alias()) for a in chosen] + order_by = self._gen_order_by(chosen) + return SelectQuery(targets, from_, where, [], order_by) + + def _gen_aggregated( + self, from_: TableRef, attrs: list[Attr], where: Expr | None + ) -> SelectQuery: + n_group = self.rng.randint(1, min(2, len(attrs))) + group_by = self.rng.sample(attrs, n_group) + + # Every non-aggregate target must be a group-by column (MS SQL rule). + targets = [Target(a, self._maybe_alias()) for a in group_by] + + int_attrs = [a for a in attrs if self._column_type(a) == "int"] + for _ in range(self.rng.randint(0, 2)): + agg = self._gen_aggregate(int_attrs) + targets.append(Target(agg, self._maybe_alias())) + + order_by = self._gen_order_by(group_by) + return SelectQuery(targets, from_, where, group_by, order_by) + + def _gen_aggregate(self, int_attrs: list[Attr]) -> Aggregate: + choice = self.rng.random() + if choice < 0.34 and int_attrs: + return Aggregate("SUM", self.rng.choice(int_attrs)) + if choice < 0.67: + return Aggregate("COUNT", None) # COUNT(*) + return Aggregate("COUNT", self.rng.choice(int_attrs) if int_attrs else None) + + def _maybe_alias(self) -> str | None: + if self.rng.random() < 0.3: + return f"c{self.rng.randint(0, 9999)}" + return None + + def _gen_order_by(self, output_attrs: list[Attr]) -> list[tuple[Attr, str]]: + # ORDER BY keys restricted to projected output columns (C++ allows only + # column refs there). + if not output_attrs or self.rng.random() >= 0.3: + return [] + n = self.rng.randint(1, len(output_attrs)) + keys = self.rng.sample(output_attrs, n) + return [(k, self.rng.choice(["asc", "desc"])) for k in keys] + + # -- FROM -------------------------------------------------------------- def _gen_from(self) -> TableRef: names = list(self.schema.tables.keys()) n = self.rng.randint(1, min(3, len(names))) chosen = self.rng.sample(names, n) - - ref: TableRef = TableScan(chosen[0]) - for table_name in chosen[1:]: - rhs: TableRef = TableScan(table_name) - - # Try equi-join on a shared column name first. - lhs_col_names = { - c.name - for t in _tables_in_ref(ref) - for c in self.schema.tables[t].columns - } - rhs_col_names = {c.name for c in self.schema.tables[table_name].columns} - shared = sorted(lhs_col_names & rhs_col_names) - - if shared and self.rng.random() < 0.7: - col = self.rng.choice(shared) - # Pick a LHS table that actually has this column. - lhs_candidate = self.rng.choice([ - t for t in _tables_in_ref(ref) - if any(c.name == col for c in self.schema.tables[t].columns) - ]) - on: Expr = BinaryExpr("=", Attr(lhs_candidate, col), Attr(table_name, col)) + use_alias = self.rng.random() < 0.4 + + def make_scan(table: str, idx: int) -> TableScan: + return TableScan(table, f"t{idx}" if use_alias else None) + + # Track visible name -> real table while building so joins can pick + # a valid lhs binding. + scans: list[TableScan] = [make_scan(chosen[0], 0)] + ref: TableRef = scans[0] + + for i, table_name in enumerate(chosen[1:], start=1): + rhs_scan = make_scan(table_name, i) + scans.append(rhs_scan) + + rhs_cols = {c.name for c in self.schema.tables[table_name].columns} + # Candidate lhs scans that share a column name with rhs. + candidates = [ + (s, c.name) + for s in scans[:-1] + for c in self.schema.tables[s.name].columns + if c.name in rhs_cols + ] + + if candidates and self.rng.random() < 0.7: + lhs_scan, col = self.rng.choice(candidates) + lhs_vis = lhs_scan.alias or lhs_scan.name + rhs_vis = rhs_scan.alias or rhs_scan.name + on: Expr = BinaryExpr("=", Attr(lhs_vis, col), Attr(rhs_vis, col)) jtype = self.rng.choice(_JOIN_TYPES) - ref = ExplicitJoin(jtype, ref, rhs, on) + ref = ExplicitJoin(jtype, ref, rhs_scan, on) else: - ref = CrossJoin(ref, rhs) + ref = CrossJoin(ref, rhs_scan) return ref + # -- WHERE ------------------------------------------------------------- + def _gen_predicate(self, attrs: list[Attr], depth: int = 0) -> Expr: - # Deeper recursion becomes a leaf comparison to avoid runaway trees. if depth >= 2 or self.rng.random() < 0.45: return self._gen_comparison(attrs) @@ -249,16 +368,40 @@ def _gen_predicate(self, attrs: list[Attr], depth: int = 0) -> Expr: def _gen_comparison(self, attrs: list[Attr]) -> Expr: attr = self.rng.choice(attrs) + is_string = self._column_type(attr) == "string" - if self.rng.random() < 0.12: + roll = self.rng.random() + if roll < 0.1: return IsNullExpr(attr, negated=self.rng.random() < 0.5) - - op = self.rng.choice(_COMPARISON_OPS) - rhs = self._gen_int_expr(attr) - return BinaryExpr(op, attr, rhs) - - def _gen_int_expr(self, hint_attr: Attr) -> Expr: - sample = self.schema.tables[hint_attr.table].sample_values.get(hint_attr.column, []) + if roll < 0.3: + return self._gen_in(attr) + if roll < 0.4 and not is_string: + return self._gen_between(attr) + + ops = _STR_COMPARISON_OPS if is_string else _INT_COMPARISON_OPS + op = self.rng.choice(ops) + return BinaryExpr(op, attr, self._gen_literal(attr)) + + def _gen_in(self, attr: Attr) -> InExpr: + n = self.rng.randint(1, 4) + values = [self._gen_literal(attr) for _ in range(n)] + # Emit sorted ascending so the OR-chain MS SQL expands matches ours. + values.sort(key=lambda v: v.value) + return InExpr(attr, values, negated=self.rng.random() < 0.3) + + def _gen_between(self, attr: Attr) -> BetweenExpr: + lo = self._gen_literal(attr) + hi = self._gen_literal(attr) + if lo.value > hi.value: + lo, hi = hi, lo + return BetweenExpr(attr, lo, hi, negated=self.rng.random() < 0.3) + + def _gen_literal(self, attr: Attr) -> Expr: + sample = self._samples(attr) + if self._column_type(attr) == "string": + if sample and self.rng.random() < 0.8: + return StrLit(self.rng.choice(sample)) + return StrLit(self.rng.choice(["AMERICA", "EUROPE", "ASIA", "unknown"])) if sample and self.rng.random() < 0.75: return IntLit(self.rng.choice(sample)) return IntLit(self.rng.randint(1, 100)) @@ -326,16 +469,33 @@ def fmt_join_keyword(self, join_type: str) -> str: # Renderer # --------------------------------------------------------------------------- +def _fmt_str_literal(value: str) -> str: + return "'" + value.replace("'", "''") + "'" + + def render_expr(expr: Expr, d: Dialect) -> str: match expr: case Attr(table, col): return d.fmt_col_ref(table, col) case IntLit(value): return str(value) + case StrLit(value): + return _fmt_str_literal(value) case NullLit(): return "NULL" case BoolLit(value): return "TRUE" if value else "FALSE" + case Aggregate("COUNT", None): + return "COUNT(*)" + case Aggregate(func, arg): + return f"{func}({render_expr(arg, d)})" + case InExpr(attr, values, negated): + kw = "NOT IN" if negated else "IN" + vals = ", ".join(render_expr(v, d) for v in values) + return f"{render_expr(attr, d)} {kw} ({vals})" + case BetweenExpr(attr, lo, hi, negated): + kw = "NOT BETWEEN" if negated else "BETWEEN" + return f"{render_expr(attr, d)} {kw} {render_expr(lo, d)} AND {render_expr(hi, d)}" case BinaryExpr(op, lhs, rhs): l = render_expr(lhs, d) r = render_expr(rhs, d) @@ -357,8 +517,9 @@ def render_expr(expr: Expr, d: Dialect) -> str: def render_table_ref(ref: TableRef, d: Dialect) -> str: match ref: - case TableScan(name): - return d.fmt_table(name) + case TableScan(name, alias): + base = d.fmt_table(name) + return f"{base} AS {alias}" if alias else base case CrossJoin(lhs, rhs): return f"{render_table_ref(lhs, d)} CROSS JOIN {render_table_ref(rhs, d)}" case ExplicitJoin(jtype, lhs, rhs, on): @@ -372,11 +533,27 @@ def render_table_ref(ref: TableRef, d: Dialect) -> str: def render_query(query: SelectQuery, d: Dialect) -> str: - targets = ", ".join(d.fmt_col_ref(a.table, a.column) for a in query.targets) + target_parts = [] + for t in query.targets: + rendered = render_expr(t.expr, d) + if t.alias: + rendered += f" AS {t.alias}" + target_parts.append(rendered) + targets = ", ".join(target_parts) + from_clause = render_table_ref(query.from_, d) sql = f"SELECT {targets}\nFROM {from_clause}" if query.where is not None: sql += f"\nWHERE {render_expr(query.where, d)}" + if query.group_by: + cols = ", ".join(d.fmt_col_ref(a.table, a.column) for a in query.group_by) + sql += f"\nGROUP BY {cols}" + if query.order_by: + keys = ", ".join( + f"{d.fmt_col_ref(a.table, a.column)} {direction.upper()}" + for a, direction in query.order_by + ) + sql += f"\nORDER BY {keys}" return sql diff --git a/research/ssb-dbgen b/research/ssb-dbgen new file mode 160000 index 0000000..219403a --- /dev/null +++ b/research/ssb-dbgen @@ -0,0 +1 @@ +Subproject commit 219403ad7d1dd32ae1f97b5553abf92129fccd7f diff --git a/research/test_converter.py b/research/test_converter.py index 15ee9d0..941f171 100644 --- a/research/test_converter.py +++ b/research/test_converter.py @@ -193,3 +193,159 @@ def test_join_compound_predicate(extractor): ) result = convert(plan) assert result == "(HashJoin Inner (= (attr TitlePrincipals principalId) (attr Principals principalId)) (PhysicalFilter (= (attr TitlePrincipals ordinal) 1) (SeqScan TitlePrincipals)) (SeqScan Principals))" + + +# ─── XML-driven tests for the new operators ────────────────────────────────── +# The XML shapes below are inferred from the ShowPlanXML schema; they MUST be +# re-validated against live MS SQL output and captured as ms-server-plans/*.xml +# fixtures (see the plan's Verification step). + +def test_string_const_filter_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == '(PhysicalFilter (= (attr m region) (str "AMERICA")) (SeqScan markets m))' + + +def test_sort_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == "(Sort (keys users.id Asc users.age Desc) (SeqScan users))" + + +def test_stream_aggregate_drops_enforcer_sort_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == ( + "(HashAggregate (group_by (attr users id))" + " (aggs (SUM (attr users age)) (COUNT *)) (SeqScan users))" + ) + + +def test_hash_aggregate_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == ( + "(HashAggregate (group_by (attr users id))" + " (aggs (COUNT (attr users age))) (SeqScan users))" + ) + + +def test_compute_scalar_passthrough_from_xml(): + plan = showplan(""" + + + + + + + + """) + + result = convert(plan) + + assert result == "(SeqScan users)" diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index dd9d927..d6d743f 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -45,6 +45,7 @@ add_library(libsql logic/transformation_rules/filter_merge.cpp logic/transformation_rules/filter_pushdown_through_projection.cpp logic/transformation_rules/filter_pushdown_through_join.cpp + logic/transformation_rules/in_to_or_chain.cpp logic/implementation_rules/implement_table.cpp logic/implementation_rules/implement_filter.cpp logic/implementation_rules/implement_projection.cpp diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 9f32e1b..c9e3618 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -101,7 +101,9 @@ std::string SerializeExpr(const Expression& expr) { SerializeExpr(*e.lhs), SerializeExpr(*e.rhs)); } std::string operator()(const Attribute& a) const { - return std::format("(attr {} {})", a.table, a.name); + // Synthetic aggregate-output attributes have an empty table; emit + // "-" so the field stays a parseable atom on the deserialize side. + return std::format("(attr {} {})", a.table.empty() ? "-" : a.table, a.name); } std::string operator()(IntConst n) const { return std::to_string(n); @@ -357,7 +359,7 @@ Expression ParseExpr(ParseState& s) { auto table = s.ExpectAtom(); auto name = s.ExpectAtom(); s.ExpectRParen(); - return Attribute{std::move(table), std::move(name)}; + return Attribute{table == "-" ? "" : std::move(table), std::move(name)}; } if (head == "str") { auto value = UnquoteString(s.ExpectAtom()); diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 448737a..e999e7a 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -506,6 +506,6 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<6, 7>; +template class Optimizer<7, 7>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 45190f3..b32cb15 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -195,4 +195,72 @@ TEST(ReachabilityTest, WrongJoinQual) { ASSERT_THAT(result.mismatch, HasSubstr("qual")); } +TEST(ReachabilityTest, InExpandsToOrChain) { + std::stringstream s{"SELECT * FROM users WHERE users.id IN (1, 2, 3);"}; + Expression eq1 = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(IntConst{1})}; + Expression eq2 = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(IntConst{2})}; + Expression eq3 = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(IntConst{3})}; + Expression or_chain = BinaryExpression{ + std::make_shared(BinaryExpression{ + std::make_shared(std::move(eq1)), + BinaryOp::kOr, + std::make_shared(std::move(eq2))}), + BinaryOp::kOr, + std::make_shared(std::move(eq3))}; + auto result = IsPlanReachable(s, PhysicalFilter{ + std::make_shared(SeqScan{"users"}), or_chain}); + ASSERT_THAT(result.reachable, IsTrue()); +} + +// An ORDER BY query becomes a required sort property, so the search generates a +// Sort enforcer on the root projection group and the ordered plan is reachable. +TEST(ReachabilityTest, OrderByReachableViaSortEnforcer) { + std::stringstream s{"SELECT users.id FROM users ORDER BY users.id;"}; + PhysicalSort target{ + std::make_shared(PhysicalProjection{ + std::make_shared(SeqScan{"users"}), + {Attribute{"users", "id"}}, + {}}), + SortOrder{{SortKey{"users", "id", Direction::kAsc}}}}; + auto result = IsPlanReachable(s, target); + ASSERT_THAT(result.reachable, IsTrue()); +} + +// The enforcer is generated for the ORDER BY direction the query asked for, so +// a plan whose Sort runs the other way is not reachable. +TEST(ReachabilityTest, OrderByWrongDirectionNotReachable) { + std::stringstream s{"SELECT users.id FROM users ORDER BY users.id ASC;"}; + PhysicalSort target{ + std::make_shared(PhysicalProjection{ + std::make_shared(SeqScan{"users"}), + {Attribute{"users", "id"}}, + {}}), + SortOrder{{SortKey{"users", "id", Direction::kDesc}}}}; + auto result = IsPlanReachable(s, target); + ASSERT_THAT(result.reachable, IsFalse()); +} + +// Without an ORDER BY no required sort is propagated, so no Sort enforcer is +// ever built and a plan that carries a Sort cannot be reached. +TEST(ReachabilityTest, SortNotReachableWithoutOrderBy) { + std::stringstream s{"SELECT users.id FROM users;"}; + PhysicalSort target{ + std::make_shared(PhysicalProjection{ + std::make_shared(SeqScan{"users"}), + {Attribute{"users", "id"}}, + {}}), + SortOrder{{SortKey{"users", "id", Direction::kAsc}}}}; + auto result = IsPlanReachable(s, target); + ASSERT_THAT(result.reachable, IsFalse()); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index ddebf83..f9fd6bd 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -5,6 +5,8 @@ #include #include #include +#include +#include #include namespace stewkk::sql { @@ -139,9 +141,17 @@ MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& tar } MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, - CardinalityEstimates cardinality) { + CardinalityEstimates cardinality, SchemaCatalog schema) { auto parsed = GetAST(sql).value(); - Optimizer optimizer(parsed.op, MakeMainRules(), std::move(cardinality)); + // Mirror main.cpp: a query ORDER BY becomes a required sort property so the + // exhaustive search enumerates Sort enforcers and the ordered plan MS SQL + // produced is actually reachable. Without it the root group never gets a + // Sort and every ORDER BY plan would spuriously read as unreachable. + PropertySet required = parsed.required_order + ? PropertySet{SortProperty{*parsed.required_order}} + : PropertySet::Any(); + Optimizer optimizer(parsed.op, MakeMainRules(), std::move(cardinality), + std::move(schema), std::move(required)); optimizer.OptimizeExhaustive(); return IsReachable(optimizer.GetRootGroup(), target); } diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index 3a052d0..b230f4f 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -2,7 +2,7 @@ namespace stewkk::sql { -Rules<6, 7> MakeMainRules() { +Rules<7, 7> MakeMainRules() { return { .transformation_rules = { std::make_unique(), @@ -11,6 +11,7 @@ Rules<6, 7> MakeMainRules() { std::make_unique(), std::make_unique(), std::make_unique(), + std::make_unique(), }, .implementation_rules = { std::make_unique(), diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 4588aea..cbf5808 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -30,6 +30,6 @@ utils::NotNull RulesApplier::Ap return rules_.implementation_rules[rule.value]->Apply(expr, memo); } -template class RulesApplier<6, 7>; +template class RulesApplier<7, 7>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp b/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp new file mode 100644 index 0000000..7488f6b --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp @@ -0,0 +1,80 @@ +#include + +#include +#include + +#include + +namespace stewkk::sql { + +namespace { + +bool ContainsIn(const Expression& e) { + return std::visit(utils::Overloaded{ + [](const BinaryExpression& b) { return ContainsIn(*b.lhs) || ContainsIn(*b.rhs); }, + [](const UnaryExpression& u) { return ContainsIn(*u.child); }, + [](const InExpression&) { return true; }, + [](const AggregateExpression& a) { + return !a.is_star && a.argument && ContainsIn(*a.argument); + }, + [](const Attribute&) { return false; }, + [](const IntConst&) { return false; }, + [](const StringConst&) { return false; }, + [](const Literal&) { return false; }, + }, e); +} + +std::shared_ptr Share(Expression e) { + return std::make_shared(std::move(e)); +} + +// Expand a single InExpression into a left-associative chain. IN folds with OR +// over `lhs = value_i`; NOT IN folds with AND over `lhs != value_i`. The +// associativity and operand order match converter.py's OR/AND fold so the +// reachability target plan compares equal. +Expression ExpandIn(const InExpression& in); + +Expression Expand(const Expression& e) { + return std::visit(utils::Overloaded{ + [](const BinaryExpression& b) -> Expression { + return BinaryExpression{Share(Expand(*b.lhs)), b.binop, Share(Expand(*b.rhs))}; + }, + [](const UnaryExpression& u) -> Expression { + return UnaryExpression{u.op, Share(Expand(*u.child))}; + }, + [](const InExpression& in) -> Expression { return ExpandIn(in); }, + [](const AggregateExpression& a) -> Expression { + if (a.is_star || !a.argument) return a; + return AggregateExpression{a.function, Share(Expand(*a.argument)), a.is_star}; + }, + [](const auto& leaf) -> Expression { return leaf; }, + }, e); +} + +Expression ExpandIn(const InExpression& in) { + Expression lhs = Expand(*in.lhs); + BinaryOp leaf_op = in.negated ? BinaryOp::kNotEq : BinaryOp::kEq; + BinaryOp join_op = in.negated ? BinaryOp::kAnd : BinaryOp::kOr; + + Expression acc = BinaryExpression{Share(lhs), leaf_op, Share(Expand(in.values.front()))}; + for (size_t i = 1; i < in.values.size(); ++i) { + Expression cmp = BinaryExpression{Share(lhs), leaf_op, Share(Expand(in.values[i]))}; + acc = BinaryExpression{Share(std::move(acc)), join_op, Share(std::move(cmp))}; + } + return acc; +} + +} // namespace + +bool InToOrChain::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& f = std::get(expr->root_operator); + return ContainsIn(f.predicate); +} + +LogicalOperator InToOrChain::ApplyImpl(utils::NotNull expr, Memo& memo) { + const auto& f = std::get(expr->root_operator); + return logical::Filter{f.source, Expand(f.predicate)}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 372daa4..ea45158 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -256,7 +256,11 @@ int main(int argc, char** argv) { } MatchResult mr; try { - mr = IsPlanReachable(sql_stream, target); + // The schema lets the Sort enforcer confirm the ORDER BY keys exist on + // the group it sits above; without --data-dir it stays permissive. + SchemaCatalog schema = args.data_dir.empty() ? SchemaCatalog{} + : LoadSchema(args.data_dir); + mr = IsPlanReachable(sql_stream, target, {}, std::move(schema)); } catch (const std::exception& e) { std::cerr << "reachability error: " << e.what() << "\n"; return kOptimizerError; From 0963a8db11890c376ce7604df932ea28f7f2a7cc Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 06:02:37 +0300 Subject: [PATCH 061/120] Fix --- research/converter.py | 2 +- src/stewkk/sql/logic/optimizer/reachability.cpp | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/research/converter.py b/research/converter.py index fd24d01..439c346 100644 --- a/research/converter.py +++ b/research/converter.py @@ -112,7 +112,7 @@ def _convert_sort(relop: ET.Element) -> str: keys = [] for ob in sort.findall(f"{NS}OrderBy/{NS}OrderByColumn"): - ascending = (ob.get("Ascending", "true").lower() != "false") + ascending = ob.get("Ascending", "true").lower() not in ("false", "0") cr = ob.find(f"{NS}ColumnReference") if cr is None: continue diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index f9fd6bd..22d1445 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -28,19 +28,22 @@ InternalMatch TryMatchExpr(utils::NotNull pe, const auto* t = std::get_if(&target); if (!t) return {false, depth, "type mismatch: expected SeqScan"}; if (op.table != t->table) - return {false, depth, + return {false, depth + 1, std::format("SeqScan table '{}' != '{}'", op.table, t->table)}; if (op.alias != t->alias) - return {false, depth, + return {false, depth + 1, std::format("SeqScan alias '{}' != '{}'", op.alias.value_or(""), t->alias.value_or(""))}; return {true, depth + 1, {}}; }, [&](const physical::Filter& op) -> InternalMatch { const auto* t = std::get_if(&target); + // depth+1 once the operator type matches: a same-type partial + // mismatch is more informative than a foreign-type rejection, so + // it should outrank type-mismatch reports for the same group. if (!t) return {false, depth, "type mismatch: expected Filter"}; if (op.predicate != t->predicate) - return {false, depth, + return {false, depth + 1, std::format("Filter predicate '{}' != '{}'", ToString(op.predicate), ToString(t->predicate))}; auto child = MatchGroup(op.source.get(), *t->source, depth + 1); @@ -51,7 +54,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, const auto* t = std::get_if(&target); if (!t) return {false, depth, "type mismatch: expected Projection"}; if (op.expressions != t->expressions) - return {false, depth, "Projection expressions mismatch"}; + return {false, depth + 1, "Projection expressions mismatch"}; auto child = MatchGroup(op.source.get(), *t->source, depth + 1); if (!child.ok) child.reason = "Projection.source: " + child.reason; return child; @@ -102,7 +105,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, const auto* t = std::get_if(&target); if (!t) return {false, depth, "type mismatch: expected Sort"}; if (op.keys != t->keys) - return {false, depth, "Sort keys mismatch"}; + return {false, depth + 1, "Sort keys mismatch"}; auto child = MatchGroup(op.input.get(), *t->source, depth + 1); if (!child.ok) child.reason = "Sort.input: " + child.reason; return child; From 1f2d8a8d0bbb3487d72b422563784ac3f6f0cec6 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 13:00:29 +0300 Subject: [PATCH 062/120] Add dot visualization of plans --- include/stewkk/sql/logic/optimizer/optimizer.hpp | 7 ++----- src/stewkk/sql/logic/optimizer/optimizer.cpp | 9 +++++---- src/stewkk/sql/logic/optimizer/reachability.cpp | 10 ---------- src/stewkk/sql/main.cpp | 11 +++++++++-- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index 531d4f9..779b62f 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -30,10 +30,7 @@ class Optimizer { PropertySet required = PropertySet::Any()); PhysicalPlanNode Optimize(); - - // Runs exhaustive search, populating all physical_exprs_ in every reachable - // group. - void OptimizeExhaustive(); + PhysicalPlanNode OptimizeExhaustive(); utils::NotNull GetRootGroup() const; @@ -75,7 +72,7 @@ class Optimizer { utils::NotNull root_; CardinalityEstimates cardinality_; SchemaCatalog schema_; - PropertySet required_; + PropertySet global_required_; std::unordered_map local_cost_; std::unordered_map winner_; std::unordered_set enforcers_added_; diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index e999e7a..0a31f1d 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -195,7 +195,7 @@ Optimizer::Optimizer( CardinalityEstimates cardinality, SchemaCatalog schema, PropertySet required) : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), cardinality_(std::move(cardinality)), schema_(std::move(schema)), - required_(std::move(required)) { + global_required_(std::move(required)) { } template @@ -481,7 +481,7 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G template void Optimizer::RunSearch(Limit limit) { Log("Starting optimization"); - tasks_.emplace([this, limit]() { OptimizeGroup(root_->group, required_, limit); }); + tasks_.emplace([this, limit]() { OptimizeGroup(root_->group, global_required_, limit); }); while (!tasks_.empty()) { auto next_task = std::move(tasks_.top()); tasks_.pop(); @@ -493,12 +493,13 @@ template PhysicalPlanNode Optimizer::Optimize() { RunSearch(std::numeric_limits::max()); Log("Optimization complete, building plan"); - return BuildOptimalPlan(root_->group.get(), required_); + return BuildOptimalPlan(root_->group.get(), global_required_); } template -void Optimizer::OptimizeExhaustive() { +PhysicalPlanNode Optimizer::OptimizeExhaustive() { RunSearch(std::nullopt); + return BuildOptimalPlan(root_->group.get(), global_required_); } template diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 22d1445..c7dd2aa 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -38,9 +38,6 @@ InternalMatch TryMatchExpr(utils::NotNull pe, }, [&](const physical::Filter& op) -> InternalMatch { const auto* t = std::get_if(&target); - // depth+1 once the operator type matches: a same-type partial - // mismatch is more informative than a foreign-type rejection, so - // it should outrank type-mismatch reports for the same group. if (!t) return {false, depth, "type mismatch: expected Filter"}; if (op.predicate != t->predicate) return {false, depth + 1, @@ -61,9 +58,6 @@ InternalMatch TryMatchExpr(utils::NotNull pe, }, [&](const physical::NestedLoopJoin& op) -> InternalMatch { const auto* t = std::get_if(&target); - // depth+1 once the operator type matches: a same-type partial - // mismatch is more informative than a foreign-type rejection, so - // it should outrank type-mismatch reports for the same group. if (!t) return {false, depth, "type mismatch: expected NestedLoopJoin"}; if (op.type != t->type) return {false, depth + 1, "NestedLoopJoin join type mismatch"}; @@ -146,10 +140,6 @@ MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& tar MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, CardinalityEstimates cardinality, SchemaCatalog schema) { auto parsed = GetAST(sql).value(); - // Mirror main.cpp: a query ORDER BY becomes a required sort property so the - // exhaustive search enumerates Sort enforcers and the ordered plan MS SQL - // produced is actually reachable. Without it the root group never gets a - // Sort and every ORDER BY plan would spuriously read as unreachable. PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} : PropertySet::Any(); diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index ea45158..56802e2 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -256,8 +257,6 @@ int main(int argc, char** argv) { } MatchResult mr; try { - // The schema lets the Sort enforcer confirm the ORDER BY keys exist on - // the group it sits above; without --data-dir it stays permissive. SchemaCatalog schema = args.data_dir.empty() ? SchemaCatalog{} : LoadSchema(args.data_dir); mr = IsPlanReachable(sql_stream, target, {}, std::move(schema)); @@ -297,6 +296,14 @@ int main(int argc, char** argv) { return kOptimizerError; } + { + std::filesystem::create_directories(".plans"); + auto ts = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + std::ofstream dot_file{std::format(".plans/{}.dot", ts)}; + dot_file << SerializeDot(plan); + } + if (args.print_plan) { std::cerr << Serialize(plan) << "\n"; } From c5c9a327e56ff63b587c41e786a5ebd7794bfcd5 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 13:20:18 +0300 Subject: [PATCH 063/120] Dump plans to disk --- .gitignore | 1 + include/stewkk/sql/utils/output_dot_plans.hpp | 9 +++++++ src/stewkk/sql/CMakeLists.txt | 1 + .../sql/logic/optimizer/reachability.cpp | 4 ++- src/stewkk/sql/main.cpp | 10 ++----- src/stewkk/sql/utils/non_null.cpp | 1 - src/stewkk/sql/utils/output_dot_plans.cpp | 26 +++++++++++++++++++ 7 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 include/stewkk/sql/utils/output_dot_plans.hpp delete mode 100644 src/stewkk/sql/utils/non_null.cpp create mode 100644 src/stewkk/sql/utils/output_dot_plans.cpp diff --git a/.gitignore b/.gitignore index 7f94a71..66e2d9b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ FlameGraph/ /build-tsan/ /benchmarks/datasets/ssb/generated/ /benchmarks/datasets/ssb/raw/ +/.plans/ diff --git a/include/stewkk/sql/utils/output_dot_plans.hpp b/include/stewkk/sql/utils/output_dot_plans.hpp new file mode 100644 index 0000000..3cd5556 --- /dev/null +++ b/include/stewkk/sql/utils/output_dot_plans.hpp @@ -0,0 +1,9 @@ +#pragma once + +#include + +namespace stewkk::sql { + +void OutputDot(const PhysicalPlanNode& optimizer_plan, const std::optional other_plan); + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index d6d743f..312cef8 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -56,6 +56,7 @@ add_library(libsql logic/optimizer/properties/sort_order.cpp logic/optimizer/properties/sort_property.cpp logic/optimizer/properties/property_set.cpp + utils/output_dot_plans.cpp ) add_library(stewkk::libsql ALIAS libsql) target_compile_features(libsql PUBLIC cxx_std_23) diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index c7dd2aa..c4509c6 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -8,6 +8,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -145,7 +146,8 @@ MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, : PropertySet::Any(); Optimizer optimizer(parsed.op, MakeMainRules(), std::move(cardinality), std::move(schema), std::move(required)); - optimizer.OptimizeExhaustive(); + auto plan = optimizer.OptimizeExhaustive(); + OutputDot(plan, target); return IsReachable(optimizer.GetRootGroup(), target); } diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 56802e2..1afb522 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -1,5 +1,4 @@ #include -#include #include #include #include @@ -33,6 +32,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -296,13 +296,7 @@ int main(int argc, char** argv) { return kOptimizerError; } - { - std::filesystem::create_directories(".plans"); - auto ts = std::chrono::duration_cast( - std::chrono::system_clock::now().time_since_epoch()).count(); - std::ofstream dot_file{std::format(".plans/{}.dot", ts)}; - dot_file << SerializeDot(plan); - } + OutputDot(plan, std::nullopt); if (args.print_plan) { std::cerr << Serialize(plan) << "\n"; diff --git a/src/stewkk/sql/utils/non_null.cpp b/src/stewkk/sql/utils/non_null.cpp deleted file mode 100644 index 9b62def..0000000 --- a/src/stewkk/sql/utils/non_null.cpp +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/src/stewkk/sql/utils/output_dot_plans.cpp b/src/stewkk/sql/utils/output_dot_plans.cpp new file mode 100644 index 0000000..e78bebd --- /dev/null +++ b/src/stewkk/sql/utils/output_dot_plans.cpp @@ -0,0 +1,26 @@ +#include + +#include +#include +#include + +#include + +namespace stewkk::sql { + +void OutputDot(const PhysicalPlanNode& optimizer_plan, const std::optional other_plan) { + std::filesystem::create_directories(".plans"); + auto ts = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count(); + { + std::ofstream dot_file{std::format(".plans/{}.dot", ts)}; + dot_file << SerializeDot(optimizer_plan); + } + { + std::ofstream dot_file{std::format(".plans/{}.ref.dot", ts)}; + dot_file << SerializeDot(optimizer_plan); + } +} + +} // namespace stewkk::sql From db3660732018457202c638f86e117a2aaee7c4bd Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 13:52:10 +0300 Subject: [PATCH 064/120] Output only on diffs --- src/stewkk/sql/logic/optimizer/reachability.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index c4509c6..8aa6544 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -147,8 +147,11 @@ MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, Optimizer optimizer(parsed.op, MakeMainRules(), std::move(cardinality), std::move(schema), std::move(required)); auto plan = optimizer.OptimizeExhaustive(); - OutputDot(plan, target); - return IsReachable(optimizer.GetRootGroup(), target); + auto result = IsReachable(optimizer.GetRootGroup(), target); + if (!result.reachable) { + OutputDot(plan, target); + } + return result; } } // namespace stewkk::sql From 7fc9bb3598e43b55a8bdb08fff6fb554e9a494b7 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 14:39:30 +0300 Subject: [PATCH 065/120] Fix --- Makefile | 3 +++ src/stewkk/sql/utils/output_dot_plans.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index f0e0c80..846caa7 100644 --- a/Makefile +++ b/Makefile @@ -14,4 +14,7 @@ codegen: test-ssb-converter: pytest benchmarks/datasets/ssb +dot: + dot -T png -O .plans/*.dot + .PHONY: codegen build sanitize test-ssb-converter diff --git a/src/stewkk/sql/utils/output_dot_plans.cpp b/src/stewkk/sql/utils/output_dot_plans.cpp index e78bebd..d32cb31 100644 --- a/src/stewkk/sql/utils/output_dot_plans.cpp +++ b/src/stewkk/sql/utils/output_dot_plans.cpp @@ -17,9 +17,9 @@ void OutputDot(const PhysicalPlanNode& optimizer_plan, const std::optional Date: Sat, 30 May 2026 14:41:36 +0300 Subject: [PATCH 066/120] wip --- .../stewkk/sql/logic/executor/executor.hpp | 5 + include/stewkk/sql/logic/executor/plan.hpp | 1 + .../sql/logic/executor/sequential_scan.hpp | 11 + src/stewkk/sql/logic/executor/executor.cpp | 16 +- .../sql/logic/executor/executor_test.cpp | 55 +++ src/stewkk/sql/logic/executor/plan.cpp | 2 +- .../sql/logic/executor/plan_serializer.cpp | 9 +- .../logic/executor/plan_serializer_test.cpp | 1 + .../sql/logic/executor/sequential_scan.cpp | 314 +++++++++++++++++- src/stewkk/sql/main.cpp | 3 +- 10 files changed, 404 insertions(+), 13 deletions(-) diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index a5cb53b..38ae688 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -49,7 +49,11 @@ class Executor { using SequentialScan = std::function>( const std::string& table_name, const std::string& output_table_name, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; + using IndexScan = std::function>( + const std::string& table_name, const std::string& output_table_name, + const Expression& predicate, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor); + Executor(SequentialScan seq_scan, IndexScan index_scan, boost::asio::any_io_executor executor); boost::asio::awaitable> Execute(const PhysicalPlanNode& op); private: @@ -75,6 +79,7 @@ class Executor { private: SequentialScan sequential_scan_; + IndexScan index_scan_; ExpressionExecutor expression_executor_; }; diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index b6f295a..af919b0 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -86,6 +86,7 @@ struct MergeJoin { struct IndexSeek { std::string table; + std::optional alias; Expression predicate; bool operator==(const IndexSeek&) const; diff --git a/include/stewkk/sql/logic/executor/sequential_scan.hpp b/include/stewkk/sql/logic/executor/sequential_scan.hpp index 0ee7435..543ae6b 100644 --- a/include/stewkk/sql/logic/executor/sequential_scan.hpp +++ b/include/stewkk/sql/logic/executor/sequential_scan.hpp @@ -3,6 +3,7 @@ #include #include +#include #include namespace stewkk::sql { @@ -16,4 +17,14 @@ struct CsvDirSequentialScanner { TuplesChannel& tuples_chan) const; }; +struct CsvDirIndexedScanner { + std::string dir; + + boost::asio::awaitable> operator()(const std::string& table_name, + const std::string& output_table_name, + const Expression& predicate, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const; +}; + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index b55423d..e348324 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -579,6 +579,10 @@ template Executor::Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor) : sequential_scan_(std::move(seq_scan)), expression_executor_(executor) {} +template +Executor::Executor(SequentialScan seq_scan, IndexScan index_scan, boost::asio::any_io_executor executor) + : sequential_scan_(std::move(seq_scan)), index_scan_(std::move(index_scan)), expression_executor_(executor) {} + template boost::asio::awaitable> Executor::Execute(const PhysicalPlanNode& op) { auto exec = co_await boost::asio::this_coro::executor; @@ -619,6 +623,10 @@ boost::asio::awaitable> Executor::Execute(c template boost::asio::awaitable Executor::Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + auto close_on_fail = boost::scope::make_scope_fail([&] { + attr_chan.close(); + tuples_chan.close(); + }); struct ExecuteVisitor{ boost::asio::awaitable operator()(const SeqScan& seq_scan) { co_await executor.sequential_scan_(seq_scan.table, std::string{OutputTable(seq_scan)}, @@ -655,8 +663,12 @@ boost::asio::awaitable Executor::Execute(const Physica throw std::runtime_error("MergeJoin execution not implemented"); co_return; } - boost::asio::awaitable operator()(const IndexSeek&) { - throw std::runtime_error("IndexSeek execution not implemented"); + boost::asio::awaitable operator()(const IndexSeek& seek) { + if (!executor.index_scan_) { + throw std::runtime_error("IndexSeek execution requested, but no index scanner is configured"); + } + co_await executor.index_scan_(seek.table, seek.alias ? *seek.alias : seek.table, seek.predicate, + attr_chan, tuples_chan); co_return; } // FIXME: that's in-memory sort diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index b42284b..c1fb3b9 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -75,6 +75,24 @@ std::string ReadFromFile(std::filesystem::path path) { return stream.str(); } +boost::asio::awaitable> RunIndexSeekTestQuery(std::string dir) { + PhysicalPlanNode op = IndexSeek{ + "users", + std::nullopt, + BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kGe, + std::make_shared(IntConst{8}), + }, + }; + CsvDirSequentialScanner seq_scan{dir}; + CsvDirIndexedScanner index_scan{dir}; + Executor executor(std::move(seq_scan), std::move(index_scan), + co_await boost::asio::this_coro::executor); + + co_return co_await executor.Execute(op); +} + } // namespace template @@ -134,6 +152,43 @@ TEST(ExecutorTest, SimpleSelectWithParallelism) { pool.join(); } +TEST(ExecutorTest, IndexSeekBuildsAndUsesSortedIntIndex) { + auto dir = std::filesystem::temp_directory_path() / "iu9_sql_index_seek_test"; + std::filesystem::remove_all(dir); + std::filesystem::create_directories(dir); + { + std::ofstream csv{dir / "users.csv"}; + csv << "id:int,age:int\n" + << "10,22\n" + << "1,33\n" + << "8,64\n" + << "8,70\n"; + std::ofstream meta{dir / "indexes.meta"}; + meta << "users id sorted users.id.sorted.idx\n"; + } + + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + RunIndexSeekTestQuery(dir.string()), + [dir](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + + ASSERT_THAT(got.value().attributes, + Eq(AttributesInfo{{"users", "id", Type::kInt}, {"users", "age", Type::kInt}})); + ASSERT_THAT(got.value().tuples, + Eq(Tuples{ + Tuple{Value{false, 8}, Value{false, 64}}, + Tuple{Value{false, 8}, Value{false, 70}}, + Tuple{Value{false, 10}, Value{false, 22}}, + })); + ASSERT_TRUE(std::filesystem::exists(dir / "users.id.sorted.idx")); + std::filesystem::remove_all(dir); + }); + + ctx.run(); +} + TEST(ExecutorTest, StringFilterProjectionAndCsvQuotes) { boost::asio::io_context ctx; boost::asio::co_spawn( diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 8d47a38..7bbbed7 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -31,7 +31,7 @@ bool MergeJoin::operator==(const MergeJoin& other) const { } bool IndexSeek::operator==(const IndexSeek& other) const { - return table == other.table && predicate == other.predicate; + return table == other.table && alias == other.alias && predicate == other.predicate; } bool PhysicalSort::operator==(const PhysicalSort& other) const { diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index c9e3618..4cb8af9 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -185,6 +185,9 @@ std::string SerializeNode(const PhysicalPlanNode& node) { SerializeNode(*n.lhs), SerializeNode(*n.rhs)); } std::string operator()(const IndexSeek& n) const { + if (n.alias) { + return std::format("(IndexSeek {} {} {})", SerializeExpr(n.predicate), n.table, *n.alias); + } return std::format("(IndexSeek {} {})", SerializeExpr(n.predicate), n.table); } std::string operator()(const HashJoin& n) const { @@ -507,8 +510,12 @@ PhysicalPlanNode ParseNode(ParseState& s) { if (head == "IndexSeek") { auto pred = ParseExpr(s); auto table = s.ExpectAtom(); + std::optional alias; + if (s.Peek().kind != TokenKind::RParen) { + alias = s.ExpectAtom(); + } s.ExpectRParen(); - return IndexSeek{std::move(table), std::move(pred)}; + return IndexSeek{std::move(table), std::move(alias), std::move(pred)}; } if (head == "NestedLoopJoin") return ParseJoinNode.template operator()(); if (head == "HashJoin") return ParseJoinNode.template operator()(); diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index 7a8229b..0c33461 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -202,6 +202,7 @@ TEST(PlanSerializerTest, DeepNestedPlan) { TEST(PlanSerializerTest, IndexSeek) { PhysicalPlanNode plan = IndexSeek{ "users", + std::nullopt, BinaryExpression{ std::make_shared(Attribute{"users", "id"}), BinaryOp::kGt, diff --git a/src/stewkk/sql/logic/executor/sequential_scan.cpp b/src/stewkk/sql/logic/executor/sequential_scan.cpp index 453c1a5..51663ce 100644 --- a/src/stewkk/sql/logic/executor/sequential_scan.cpp +++ b/src/stewkk/sql/logic/executor/sequential_scan.cpp @@ -1,14 +1,23 @@ #include +#include +#include +#include +#include #include #include #include #include +#include +#include #include #include +#include #include +#include +#include #include #include @@ -16,6 +25,20 @@ namespace stewkk::sql { namespace { +constexpr std::array kIntSortedIndexMagic{'I', '9', 'I', 'D', 'X', '0', '0', '1'}; + +struct IndexMeta { + std::string table; + std::string column; + std::string type; + std::string file; +}; + +struct IntIndexEntry { + int64_t key; + uint64_t row_offset; +}; + Type GetTypeFromString(const std::string& s) { if (s == "int") { return Type::kInt; @@ -89,6 +112,219 @@ Tuple ParseTuple(const std::string& line, | std::ranges::to(); } +AttributesInfo ReadAttributes(std::istream& input, const std::string& output_table_name) { + std::string line; + if (!std::getline(input, line)) { + throw std::runtime_error{"CSV file is empty"}; + } + return line | std::views::split(',') | std::views::transform([&output_table_name](const auto& attr) { + auto mid = std::find(attr.begin(), attr.end(), ':'); + auto attr_name = std::string{attr.begin(), mid}; + auto attr_type = GetTypeFromString(std::string{mid + 1, attr.end()}); + return AttributeInfo{output_table_name, std::move(attr_name), attr_type}; + }) + | std::ranges::to(); +} + +std::vector ReadIndexMeta(const std::filesystem::path& path) { + std::ifstream input{path}; + if (!input) { + throw std::runtime_error{std::format("index metadata file not found: {}", path.string())}; + } + + std::vector result; + std::string line; + while (std::getline(input, line)) { + auto first = line.find_first_not_of(" \t\r\n"); + if (first == std::string::npos || line[first] == '#') { + continue; + } + + std::istringstream fields{line}; + IndexMeta meta; + if (!(fields >> meta.table >> meta.column >> meta.type >> meta.file)) { + throw std::runtime_error{std::format("malformed index metadata line: {}", line)}; + } + result.push_back(std::move(meta)); + } + return result; +} + +std::optional FindIndexMeta(const std::filesystem::path& dir, + const std::string& table, + const std::string& column) { + for (auto meta : ReadIndexMeta(dir / "indexes.meta")) { + if (meta.table == table && meta.column == column && meta.type == "sorted") { + return meta; + } + } + return std::nullopt; +} + +BinaryOp InvertComparison(BinaryOp op) { + switch (op) { + case BinaryOp::kGt: + return BinaryOp::kLt; + case BinaryOp::kLt: + return BinaryOp::kGt; + case BinaryOp::kLe: + return BinaryOp::kGe; + case BinaryOp::kGe: + return BinaryOp::kLe; + case BinaryOp::kEq: + return BinaryOp::kEq; + default: + throw std::runtime_error{"unsupported index seek operator"}; + } +} + +struct SeekCondition { + std::string column; + BinaryOp op; + int64_t key; +}; + +std::optional ExtractSeekCondition(const Expression& predicate, + const std::string& table_name, + const std::string& output_table_name) { + const auto* binary = std::get_if(&predicate); + if (!binary) { + return std::nullopt; + } + if (binary->binop == BinaryOp::kAnd) { + if (auto lhs = ExtractSeekCondition(*binary->lhs, table_name, output_table_name)) { + return lhs; + } + return ExtractSeekCondition(*binary->rhs, table_name, output_table_name); + } + if (!std::ranges::contains(std::vector{BinaryOp::kEq, BinaryOp::kLt, BinaryOp::kLe, + BinaryOp::kGt, BinaryOp::kGe}, binary->binop)) { + return std::nullopt; + } + + auto attr_matches = [&](const Attribute& attr) { + return attr.table.empty() || attr.table == table_name || attr.table == output_table_name; + }; + if (const auto* attr = std::get_if(binary->lhs.get()); + attr && attr_matches(*attr)) { + if (const auto* key = std::get_if(binary->rhs.get())) { + return SeekCondition{attr->name, binary->binop, *key}; + } + } + if (const auto* attr = std::get_if(binary->rhs.get()); + attr && attr_matches(*attr)) { + if (const auto* key = std::get_if(binary->lhs.get())) { + return SeekCondition{attr->name, InvertComparison(binary->binop), *key}; + } + } + return std::nullopt; +} + +std::vector ReadIndexEntries(const std::filesystem::path& path) { + std::ifstream input{path, std::ios::binary}; + if (!input) { + throw std::runtime_error{std::format("index file not found: {}", path.string())}; + } + + std::array magic{}; + uint64_t count = 0; + input.read(magic.data(), magic.size()); + input.read(reinterpret_cast(&count), sizeof(count)); + if (!input || magic != kIntSortedIndexMagic) { + throw std::runtime_error{std::format("invalid int sorted index file: {}", path.string())}; + } + + std::vector entries(count); + input.read(reinterpret_cast(entries.data()), + static_cast(entries.size() * sizeof(IntIndexEntry))); + if (!input) { + throw std::runtime_error{std::format("truncated index file: {}", path.string())}; + } + return entries; +} + +void WriteIndexEntries(const std::filesystem::path& path, const std::vector& entries) { + std::ofstream output{path, std::ios::binary | std::ios::trunc}; + if (!output) { + throw std::runtime_error{std::format("cannot write index file: {}", path.string())}; + } + + uint64_t count = entries.size(); + output.write(kIntSortedIndexMagic.data(), kIntSortedIndexMagic.size()); + output.write(reinterpret_cast(&count), sizeof(count)); + output.write(reinterpret_cast(entries.data()), + static_cast(entries.size() * sizeof(IntIndexEntry))); +} + +void BuildIntSortedIndex(const std::filesystem::path& csv_path, + const std::filesystem::path& index_path, + const std::string& output_table_name, + const std::string& column) { + std::ifstream input{csv_path}; + if (!input) { + throw std::runtime_error{std::format("CSV file not found: {}", csv_path.string())}; + } + + auto attrs = ReadAttributes(input, output_table_name); + auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& attr) { + return attr.name == column; + }); + if (it == attrs.end()) { + throw std::runtime_error{std::format("indexed column not found: {}", column)}; + } + if (it->type != Type::kInt) { + throw std::runtime_error{std::format("only int indexes are supported: {}", column)}; + } + size_t column_index = static_cast(it - attrs.begin()); + + std::vector entries; + std::string line; + while (input) { + auto row_offset = input.tellg(); + if (!std::getline(input, line)) { + break; + } + auto tuple = ParseTuple(line, attrs); + const auto& key = tuple[column_index]; + if (!key.is_null) { + entries.push_back(IntIndexEntry{ + .key = key.value.int_value, + .row_offset = static_cast(row_offset), + }); + } + } + + std::ranges::sort(entries, [](const IntIndexEntry& lhs, const IntIndexEntry& rhs) { + return std::tie(lhs.key, lhs.row_offset) < std::tie(rhs.key, rhs.row_offset); + }); + WriteIndexEntries(index_path, entries); +} + +std::pair::const_iterator, std::vector::const_iterator> +FindIndexRange(const std::vector& entries, const SeekCondition& condition) { + auto lower = [&](int64_t key) { + return std::ranges::lower_bound(entries, key, {}, &IntIndexEntry::key); + }; + auto upper = [&](int64_t key) { + return std::ranges::upper_bound(entries, key, {}, &IntIndexEntry::key); + }; + + switch (condition.op) { + case BinaryOp::kEq: + return {lower(condition.key), upper(condition.key)}; + case BinaryOp::kLt: + return {entries.begin(), lower(condition.key)}; + case BinaryOp::kLe: + return {entries.begin(), upper(condition.key)}; + case BinaryOp::kGt: + return {upper(condition.key), entries.end()}; + case BinaryOp::kGe: + return {lower(condition.key), entries.end()}; + default: + throw std::runtime_error{"unsupported index seek operator"}; + } +} + } // namespace boost::asio::awaitable> CsvDirSequentialScanner::operator()( @@ -101,14 +337,7 @@ boost::asio::awaitable> CsvDirSequentialScanner::operator()( auto path = std::format("{}/{}.csv", dir, table_name); std::ifstream input{std::move(path)}; std::string line; - std::getline(input, line); - auto attributes = line | std::views::split(',') | std::views::transform([&output_table_name](const auto& attr) { - auto mid = std::find(attr.begin(), attr.end(), ':'); - auto attr_name = std::string{attr.begin(), mid}; - auto attr_type = GetTypeFromString(std::string{mid + 1, attr.end()}); - return AttributeInfo{output_table_name, std::move(attr_name), attr_type}; - }) - | std::ranges::to(); + auto attributes = ReadAttributes(input, output_table_name); co_await attrs_chan.async_send(boost::system::error_code{}, attributes, boost::asio::use_awaitable); @@ -149,4 +378,73 @@ boost::asio::awaitable> CsvDirSequentialScanner::operator()( co_return Ok(); } +boost::asio::awaitable> CsvDirIndexedScanner::operator()( + const std::string& table_name, const std::string& output_table_name, + const Expression& predicate, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const { +#ifdef DEBUG + std::clog << "Executing index seek\n"; +#endif + auto condition = ExtractSeekCondition(predicate, table_name, output_table_name); + if (!condition) { + throw std::runtime_error{"IndexSeek predicate must be a comparison between one indexed int column and an int constant"}; + } + + std::filesystem::path data_dir{dir}; + auto meta = FindIndexMeta(data_dir, table_name, condition->column); + if (!meta) { + throw std::runtime_error{std::format("no sorted int index declared for {}.{}", table_name, condition->column)}; + } + + auto csv_path = data_dir / std::format("{}.csv", table_name); + auto index_path = data_dir / meta->file; + if (!std::filesystem::exists(index_path)) { + BuildIntSortedIndex(csv_path, index_path, output_table_name, condition->column); + } + auto entries = ReadIndexEntries(index_path); + + std::ifstream input{csv_path}; + if (!input) { + throw std::runtime_error{std::format("CSV file not found: {}", csv_path.string())}; + } + auto attributes = ReadAttributes(input, output_table_name); + auto filter = InterpretedExpressionExecutor{co_await boost::asio::this_coro::executor}; + auto residual = co_await filter.GetExpressionExecutor(predicate, attributes); + + co_await attrs_chan.async_send(boost::system::error_code{}, attributes, + boost::asio::use_awaitable); + attrs_chan.close(); + + auto [begin, end] = FindIndexRange(entries, *condition); + Tuples buf; + buf.reserve(kBufSize); + std::string line; + for (auto it = begin; it != end; ++it) { + input.clear(); + input.seekg(static_cast(it->row_offset)); + if (!std::getline(input, line)) { + throw std::runtime_error{"failed to read indexed CSV row"}; + } + auto tuple = ParseTuple(line, attributes); + if (!ApplyFilter(tuple, attributes, residual)) { + continue; + } + buf.emplace_back(std::move(tuple)); + if (buf.size() == kBufSize) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf), + boost::asio::use_awaitable); + buf.clear(); + } + } + + if (!buf.empty()) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf), + boost::asio::use_awaitable); + } + tuples_chan.close(); + + co_return Ok(); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 1afb522..ae31689 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -215,7 +215,8 @@ void PrintRelation(const Relation& rel, bool preserve_order) { boost::asio::awaitable> RunQuery(const std::string& data_dir, const PhysicalPlanNode& plan) { CsvDirSequentialScanner seq_scan{data_dir}; - Executor executor(std::move(seq_scan), co_await boost::asio::this_coro::executor); + CsvDirIndexedScanner index_scan{data_dir}; + Executor executor(std::move(seq_scan), std::move(index_scan), co_await boost::asio::this_coro::executor); co_return co_await executor.Execute(plan); } From 5ab09a358b182ee618aa7c47f539b38a27acd9f9 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 17:42:15 +0300 Subject: [PATCH 067/120] Update ssb-dbgen --- .gitmodules | 2 +- research/ssb-dbgen | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index d550f5e..4c644f5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,4 +6,4 @@ url = git@github.com:sqlsunday/imdb-to-sqlserver.git [submodule "research/ssb-dbgen"] path = research/ssb-dbgen - url = https://github.com/electrum/ssb-dbgen.git + url = git@github.com:stewkk/ssb-dbgen.git diff --git a/research/ssb-dbgen b/research/ssb-dbgen index 219403a..90141f6 160000 --- a/research/ssb-dbgen +++ b/research/ssb-dbgen @@ -1 +1 @@ -Subproject commit 219403ad7d1dd32ae1f97b5553abf92129fccd7f +Subproject commit 90141f692abfed592627462996a12eb242d2f053 From 031fe24a36b13fda37f7bc7ad80f635630aefa0c Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 19:36:24 +0300 Subject: [PATCH 068/120] Add physical operator cost proof benchmarks --- benchmarks/CMakeLists.txt | 2 +- benchmarks/operator_cost.cpp | 376 +++++++++++++++++++ research/research.ipynb | 156 ++++---- src/stewkk/sql/logic/optimizer/optimizer.cpp | 2 - 4 files changed, 460 insertions(+), 76 deletions(-) create mode 100644 benchmarks/operator_cost.cpp diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 8cfaea0..a58c2a2 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1,6 +1,6 @@ include(FetchGBenchmark) -add_executable(benchmarks main.cpp) +add_executable(benchmarks main.cpp operator_cost.cpp) target_compile_features(benchmarks PRIVATE cxx_std_23) set_target_properties(benchmarks PROPERTIES CXX_STANDART 23 diff --git a/benchmarks/operator_cost.cpp b/benchmarks/operator_cost.cpp new file mode 100644 index 0000000..3e94ff5 --- /dev/null +++ b/benchmarks/operator_cost.cpp @@ -0,0 +1,376 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace stewkk::sql { +namespace { + +struct BenchTable { + AttributesInfo attrs; + Tuples tuples; +}; + +using BenchTables = std::unordered_map; + +Value IntValue(int64_t value) { + return Value{false, {.int_value = value}}; +} + +Attribute Attr(std::string table, std::string name) { + return Attribute{std::move(table), std::move(name)}; +} + +Expression AttrExpr(std::string table, std::string name) { + return Expression{Attr(std::move(table), std::move(name))}; +} + +Expression IntExpr(int64_t value) { + return Expression{IntConst{value}}; +} + +Expression Binary(Expression lhs, BinaryOp op, Expression rhs) { + return Expression{BinaryExpression{ + .lhs = std::make_shared(std::move(lhs)), + .binop = op, + .rhs = std::make_shared(std::move(rhs)), + }}; +} + +Expression CountStar() { + return Expression{AggregateExpression{ + .function = AggregateFunction::kCount, + .argument = nullptr, + .is_star = true, + }}; +} + +PhysicalPlanNode Scan(std::string table) { + return PhysicalPlanNode{SeqScan{.table = std::move(table), .alias = std::nullopt}}; +} + +std::shared_ptr PlanPtr(PhysicalPlanNode plan) { + return std::make_shared(std::move(plan)); +} + +BenchTable MakeTable(std::string table, int64_t rows) { + BenchTable result; + result.attrs = { + AttributeInfo{table, "id", Type::kInt}, + AttributeInfo{table, "k", Type::kInt}, + AttributeInfo{table, "v", Type::kInt}, + }; + result.tuples.reserve(static_cast(rows)); + for (int64_t i = 0; i < rows; ++i) { + result.tuples.push_back(Tuple{ + IntValue(i), + IntValue(i), + IntValue(i % 1024), + }); + } + return result; +} + +std::shared_ptr MakeTables(int64_t rows_t, int64_t rows_u = 0) { + auto tables = std::make_shared(); + tables->emplace("t", MakeTable("t", rows_t)); + tables->emplace("u", MakeTable("u", rows_u)); + return tables; +} + +class InMemorySequentialScanner { +public: + explicit InMemorySequentialScanner(std::shared_ptr tables) + : tables_(std::move(tables)) {} + + boost::asio::awaitable> operator()(const std::string& table_name, + const std::string& output_table_name, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const { + auto it = tables_->find(table_name); + if (it == tables_->end()) { + throw std::runtime_error{"unknown benchmark table: " + table_name}; + } + + auto attrs = it->second.attrs; + for (auto& attr : attrs) { + attr.table = output_table_name; + } + co_await attrs_chan.async_send(boost::system::error_code{}, std::move(attrs), + boost::asio::use_awaitable); + attrs_chan.close(); + + Tuples buf; + buf.reserve(kBufSize); + for (const auto& tuple : it->second.tuples) { + buf.push_back(tuple); + if (buf.size() == kBufSize) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf), + boost::asio::use_awaitable); + buf.clear(); + buf.reserve(kBufSize); + } + } + if (!buf.empty()) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(buf), + boost::asio::use_awaitable); + } + tuples_chan.close(); + co_return Ok(); + } + +private: + std::shared_ptr tables_; +}; + +Relation RunPlan(const PhysicalPlanNode& plan, std::shared_ptr tables) { + boost::asio::io_context ctx; + Executor executor(InMemorySequentialScanner{std::move(tables)}, + ctx.get_executor()); + auto fut = boost::asio::co_spawn(ctx, executor.Execute(plan), boost::asio::use_future); + ctx.run(); + auto result = fut.get(); + if (!result.has_value()) { + throw std::runtime_error{What(result.error())}; + } + return std::move(result).value(); +} + +int64_t CeilPages(int64_t rows) { + return (rows + static_cast(kBufSize) - 1) / static_cast(kBufSize); +} + +int64_t SortModelCost(int64_t rows) { + return rows > 1 ? rows * static_cast(std::bit_width(static_cast(rows))) : rows; +} + +void SetUnaryCounters(benchmark::State& state, int64_t rows, int64_t model_cost, + int64_t output_rows) { + state.counters["rows"] = static_cast(rows); + state.counters["model_cost"] = static_cast(model_cost); + state.counters["output_rows"] = static_cast(output_rows); +} + +void SetBinaryCounters(benchmark::State& state, int64_t lhs_rows, int64_t rhs_rows, + int64_t model_cost, int64_t output_rows) { + state.counters["lhs_rows"] = static_cast(lhs_rows); + state.counters["rhs_rows"] = static_cast(rhs_rows); + state.counters["model_cost"] = static_cast(model_cost); + state.counters["output_rows"] = static_cast(output_rows); +} + +void SuppressClog() { + static std::ofstream nullstream("/dev/null"); + std::clog.rdbuf(nullstream.rdbuf()); +} + +void BM_OperatorSeqScan(benchmark::State& state) { + const int64_t rows = state.range(0); + auto tables = MakeTables(rows); + auto plan = Scan("t"); + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetUnaryCounters(state, rows, rows, rows); +} + +void BM_OperatorFilter(benchmark::State& state) { + const int64_t rows = state.range(0); + constexpr int64_t kThreshold = 512; + auto tables = MakeTables(rows); + auto plan = PhysicalPlanNode{PhysicalFilter{ + .source = PlanPtr(Scan("t")), + .predicate = Binary(AttrExpr("t", "v"), BinaryOp::kLt, IntExpr(kThreshold)), + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + const int64_t full_cycles = rows / 1024; + const int64_t tail = rows % 1024; + const int64_t output_rows = full_cycles * kThreshold + std::min(tail, kThreshold); + SetUnaryCounters(state, rows, rows, output_rows); +} + +void BM_OperatorProjection(benchmark::State& state) { + const int64_t rows = state.range(0); + auto tables = MakeTables(rows); + auto plan = PhysicalPlanNode{PhysicalProjection{ + .source = PlanPtr(Scan("t")), + .expressions = { + AttrExpr("t", "id"), + Binary(AttrExpr("t", "v"), BinaryOp::kPlus, IntExpr(1)), + }, + .aliases = {std::nullopt, std::nullopt}, + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetUnaryCounters(state, rows, rows, rows); +} + +void BM_OperatorSort(benchmark::State& state) { + const int64_t rows = state.range(0); + auto tables = MakeTables(rows); + auto plan = PhysicalPlanNode{PhysicalSort{ + .source = PlanPtr(Scan("t")), + .keys = SortOrder{{SortKey{.table = "t", .column = "v", .dir = Direction::kAsc}}}, + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetUnaryCounters(state, rows, SortModelCost(rows), rows); +} + +void BM_OperatorAggregation(benchmark::State& state) { + const int64_t rows = state.range(0); + auto tables = MakeTables(rows); + auto plan = PhysicalPlanNode{PhysicalAggregation{ + .source = PlanPtr(Scan("t")), + .group_by = {AttrExpr("t", "k")}, + .aggregates = {CountStar()}, + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetUnaryCounters(state, rows, rows, rows); +} + +void BM_OperatorNestedLoopJoin(benchmark::State& state) { + const int64_t lhs_rows = state.range(0); + const int64_t rhs_rows = state.range(1); + auto tables = MakeTables(lhs_rows, rhs_rows); + auto plan = PhysicalPlanNode{NestedLoopJoin{ + .lhs = PlanPtr(Scan("t")), + .rhs = PlanPtr(Scan("u")), + .type = JoinType::kInner, + .qual = Binary(AttrExpr("t", "k"), BinaryOp::kEq, AttrExpr("u", "k")), + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetBinaryCounters(state, lhs_rows, rhs_rows, lhs_rows * rhs_rows, + std::min(lhs_rows, rhs_rows)); +} + +void BM_OperatorNestedLoopCrossJoin(benchmark::State& state) { + const int64_t lhs_rows = state.range(0); + const int64_t rhs_rows = state.range(1); + auto tables = MakeTables(lhs_rows, rhs_rows); + auto plan = PhysicalPlanNode{NestedLoopCrossJoin{ + .lhs = PlanPtr(Scan("t")), + .rhs = PlanPtr(Scan("u")), + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetBinaryCounters(state, lhs_rows, rhs_rows, CeilPages(lhs_rows) * (1 + CeilPages(rhs_rows)), + lhs_rows * rhs_rows); +} + +void BM_OperatorHashJoin(benchmark::State& state) { + const int64_t lhs_rows = state.range(0); + const int64_t rhs_rows = state.range(1); + auto tables = MakeTables(lhs_rows, rhs_rows); + auto plan = PhysicalPlanNode{HashJoin{ + .lhs = PlanPtr(Scan("t")), + .rhs = PlanPtr(Scan("u")), + .type = JoinType::kInner, + .qual = Binary(AttrExpr("t", "k"), BinaryOp::kEq, AttrExpr("u", "k")), + }}; + + SuppressClog(); + + benchmark::DoNotOptimize(RunPlan(plan, tables)); + for (auto _ : state) { + benchmark::DoNotOptimize(RunPlan(plan, tables)); + } + SetBinaryCounters(state, lhs_rows, rhs_rows, lhs_rows + rhs_rows, + std::min(lhs_rows, rhs_rows)); +} + +void RegisterUnary(void (*benchmark_fn)(benchmark::State&), const char* name) { + for (int64_t rows : {1024, 4096, 16384, 65536, 262144}) { + benchmark::RegisterBenchmark(name, benchmark_fn)->Arg(rows)->UseRealTime(); + } +} + +struct OperatorCostRegistration { + OperatorCostRegistration() { + RegisterUnary(BM_OperatorSeqScan, "OperatorCost/SeqScan"); + RegisterUnary(BM_OperatorFilter, "OperatorCost/Filter"); + RegisterUnary(BM_OperatorProjection, "OperatorCost/Projection"); + RegisterUnary(BM_OperatorSort, "OperatorCost/Sort"); + RegisterUnary(BM_OperatorAggregation, "OperatorCost/Aggregation"); + + for (auto size : {1024, 4096, 16384, 65536}) { + benchmark::RegisterBenchmark("OperatorCost/HashJoin", BM_OperatorHashJoin) + ->Args({size, size}) + ->UseRealTime(); + } + for (auto size : {128, 256, 512, 1024}) { + benchmark::RegisterBenchmark("OperatorCost/NestedLoopJoin", BM_OperatorNestedLoopJoin) + ->Args({size, size}) + ->UseRealTime(); + } + for (auto size : {64, 128, 256, 512}) { + benchmark::RegisterBenchmark("OperatorCost/NestedLoopCrossJoin", + BM_OperatorNestedLoopCrossJoin) + ->Args({size, size}) + ->UseRealTime(); + } + } +}; + +const OperatorCostRegistration kRegisterOperatorCost; + +} // namespace +} // namespace stewkk::sql diff --git a/research/research.ipynb b/research/research.ipynb index 3af90cd..78f91ac 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -3,90 +3,100 @@ { "cell_type": "code", "execution_count": null, - "id": "6b61780a", + "id": "f336c923", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Recreating database...\n", - "Creating schema and tables...\n" - ] - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", - "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", - "\u001b[1;31mClick here for more info. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mCanceled future for execute_request message before replies were done" - ] - }, { "ename": "", "evalue": "", "output_type": "error", "traceback": [ - "\u001b[1;31mCanceled future for execute_request message before replies were done. \n", + "\u001b[1;31mFailed to start the Kernel. \n", + "\u001b[1;31mFailed to find the URL of the launched Jupyter notebook server\n", + "\u001b[1;31m[W 2026-05-30 19:32:44.464 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m Traceback (most recent call last):\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", + "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", + "\u001b[1;31m self._load_metadata()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", + "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", + "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", + "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", + "\u001b[1;31m from .labapp import LabApp\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", + "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", + "\u001b[1;31m from .pypi import PyPIExtensionManager\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", + "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", + "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", + "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", + "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", + "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m[I 2026-05-30 19:32:44.469 ServerApp] jupyter_lsp | extension was successfully linked.\n", + "\u001b[1;31m[I 2026-05-30 19:32:44.478 ServerApp] jupyter_server_terminals | extension was successfully linked.\n", + "\u001b[1;31m[W 2026-05-30 19:32:44.482 JupyterNotebookApp] 'iopub_data_rate_limit' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.\n", + "\u001b[1;31m[W 2026-05-30 19:32:44.487 ServerApp] ServerApp.iopub_data_rate_limit config is deprecated in 2.0. Use ZMQChannelsWebsocketConnection.iopub_data_rate_limit.\n", + "\u001b[1;31m[I 2026-05-30 19:32:44.487 ServerApp] notebook | extension was successfully linked.\n", + "\u001b[1;31m[W 2026-05-30 19:32:45.266 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m Traceback (most recent call last):\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", + "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", + "\u001b[1;31m self._load_metadata()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", + "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", + "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", + "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", + "\u001b[1;31m from .labapp import LabApp\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", + "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", + "\u001b[1;31m from .pypi import PyPIExtensionManager\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", + "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", + "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", + "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", + "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", + "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.269 ServerApp] notebook_shim | extension was successfully linked.\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.309 ServerApp] notebook_shim | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.327 ServerApp] jupyter_lsp | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.328 ServerApp] jupyter_server_terminals | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.352 ServerApp] notebook | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.356 ServerApp] Serving notebooks from local directory: /home/st/c/iu9-sql-compiler/research\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] Jupyter Server 2.17.0 is running at:\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] http://localhost:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] http://127.0.0.1:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", + "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n", + "\u001b[1;31m[C 2026-05-30 19:32:45.363 ServerApp] \n", + "\u001b[1;31m \n", + "\u001b[1;31m To access the server, open this file in a browser:\n", + "\u001b[1;31m file:///home/st/.local/share/jupyter/runtime/jpserver-116536-open.html\n", + "\u001b[1;31m Or copy and paste one of these URLs:\n", + "\u001b[1;31m http://localhost:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", + "\u001b[1;31m http://127.0.0.1:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", + "\u001b[1;31m[I 2026-05-30 19:32:46.626 ServerApp] Skipped non-installed server(s): basedpyright, bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyrefly, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server. \n", "\u001b[1;31mView Jupyter log for further details." ] } ], - "source": [ - "import extractor, ms_sql_server_extractor\n", - "\n", - "from ms_sql_server_extractor import MsSqlServerExtractor\n", - "\n", - "extractor_obj = MsSqlServerExtractor(\n", - " dataset=\"/home/st/c/iu9-sql-compiler/research/datasets/mysql-data/imdb\",\n", - " host=\"localhost\",\n", - " port=1433,\n", - " user=\"sa\",\n", - " password=\"Password123!\",\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "70ba9fa9", - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'extractor_obj' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 9\u001b[39m\n\u001b[32m 1\u001b[39m query = \u001b[33m\"\"\"\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[33mSELECT p.primaryName, t.averageRating\u001b[39m\n\u001b[32m 3\u001b[39m \u001b[33mFROM dbo.TitlePrincipals tp\u001b[39m\n\u001b[32m (...)\u001b[39m\u001b[32m 6\u001b[39m \u001b[33mWHERE t.averageRating IS NOT NULL\u001b[39m\n\u001b[32m 7\u001b[39m \u001b[33m\"\"\"\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m plan = \u001b[43mextractor_obj\u001b[49m.extract(query)\n\u001b[32m 10\u001b[39m \u001b[38;5;28mprint\u001b[39m(plan)\n", - "\u001b[31mNameError\u001b[39m: name 'extractor_obj' is not defined" - ] - } - ], - "source": [ - "query = \"\"\"\n", - "SELECT p.primaryName, t.averageRating\n", - "FROM dbo.TitlePrincipals tp\n", - "JOIN dbo.Principals p ON p.principalId = tp.principalId\n", - "JOIN dbo.Titles t ON t.titleId = tp.titleId\n", - "WHERE t.averageRating IS NOT NULL\n", - "\"\"\"\n", - "\n", - "plan = extractor_obj.extract(query)\n", - "print(plan)" - ] + "source": [] } ], "metadata": { diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 0a31f1d..c32f335 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -111,7 +111,6 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi return cardinality.GetCardinality(expr->group); }, [&](const physical::NestedLoopJoin& j) -> int64_t { - // Per-tuple work: each rhs tuple compared against every lhs tuple. auto n_l = cardinality.GetCardinality(j.lhs); auto n_r = cardinality.GetCardinality(j.rhs); return n_l * n_r; @@ -122,7 +121,6 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi return p_l * (1 + p_r); }, [&](const physical::HashJoin& j) -> int64_t { - // Build hash on lhs (n_l inserts), probe with rhs (n_r O(1) lookups). return cardinality.GetCardinality(j.lhs) + cardinality.GetCardinality(j.rhs); }, [&](const physical::Sort& s) -> int64_t { From 07e6a0345212dfd15822687c2178e100b9c8e2f9 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 30 May 2026 20:03:21 +0300 Subject: [PATCH 069/120] Plot benchmarks --- flake.nix | 2 + research/research.ipynb | 1203 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 1116 insertions(+), 89 deletions(-) diff --git a/flake.nix b/flake.nix index f99f3e8..0557b90 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,8 @@ ps.notebook ps.pymssql ps.pytest + ps.pandas + ps.matplotlib ]); tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full diff --git a/research/research.ipynb b/research/research.ipynb index 78f91ac..57a595b 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -2,101 +2,1126 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "f336c923", "metadata": {}, "outputs": [ { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mFailed to start the Kernel. \n", - "\u001b[1;31mFailed to find the URL of the launched Jupyter notebook server\n", - "\u001b[1;31m[W 2026-05-30 19:32:44.464 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m Traceback (most recent call last):\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", - "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", - "\u001b[1;31m self._load_metadata()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", - "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", - "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", - "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", - "\u001b[1;31m from .labapp import LabApp\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", - "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", - "\u001b[1;31m from .pypi import PyPIExtensionManager\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", - "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", - "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", - "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", - "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", - "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m[I 2026-05-30 19:32:44.469 ServerApp] jupyter_lsp | extension was successfully linked.\n", - "\u001b[1;31m[I 2026-05-30 19:32:44.478 ServerApp] jupyter_server_terminals | extension was successfully linked.\n", - "\u001b[1;31m[W 2026-05-30 19:32:44.482 JupyterNotebookApp] 'iopub_data_rate_limit' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.\n", - "\u001b[1;31m[W 2026-05-30 19:32:44.487 ServerApp] ServerApp.iopub_data_rate_limit config is deprecated in 2.0. Use ZMQChannelsWebsocketConnection.iopub_data_rate_limit.\n", - "\u001b[1;31m[I 2026-05-30 19:32:44.487 ServerApp] notebook | extension was successfully linked.\n", - "\u001b[1;31m[W 2026-05-30 19:32:45.266 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m Traceback (most recent call last):\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", - "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", - "\u001b[1;31m self._load_metadata()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", - "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", - "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", - "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", - "\u001b[1;31m from .labapp import LabApp\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", - "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", - "\u001b[1;31m from .pypi import PyPIExtensionManager\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", - "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", - "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", - "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/r0rcvfxvfrf05xr5ya7gxkdwdjsnrvng-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", - "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", - "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.269 ServerApp] notebook_shim | extension was successfully linked.\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.309 ServerApp] notebook_shim | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.327 ServerApp] jupyter_lsp | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.328 ServerApp] jupyter_server_terminals | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.352 ServerApp] notebook | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.356 ServerApp] Serving notebooks from local directory: /home/st/c/iu9-sql-compiler/research\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] Jupyter Server 2.17.0 is running at:\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] http://localhost:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] http://127.0.0.1:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", - "\u001b[1;31m[I 2026-05-30 19:32:45.357 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n", - "\u001b[1;31m[C 2026-05-30 19:32:45.363 ServerApp] \n", - "\u001b[1;31m \n", - "\u001b[1;31m To access the server, open this file in a browser:\n", - "\u001b[1;31m file:///home/st/.local/share/jupyter/runtime/jpserver-116536-open.html\n", - "\u001b[1;31m Or copy and paste one of these URLs:\n", - "\u001b[1;31m http://localhost:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", - "\u001b[1;31m http://127.0.0.1:8888/tree?token=e21488556739a4094b439f3d08d3db57aeefebd1d85ae34a\n", - "\u001b[1;31m[I 2026-05-30 19:32:46.626 ServerApp] Skipped non-installed server(s): basedpyright, bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyrefly, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server. \n", - "\u001b[1;31mView Jupyter log for further details." + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-05-30T19:44:06+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 0.78, 1.77, 2.40\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "-------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "-------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCost/SeqScan/1024/real_time \u001b[m\u001b[0;33m 49602 ns 49352 ns \u001b[m\u001b[0;36m 12617\u001b[m model_cost=1.024k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time \u001b[m\u001b[0;33m 217833 ns 215541 ns \u001b[m\u001b[0;36m 3460\u001b[m model_cost=4.096k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time \u001b[m\u001b[0;33m 1000898 ns 992381 ns \u001b[m\u001b[0;36m 643\u001b[m model_cost=16.384k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time \u001b[m\u001b[0;33m 5791037 ns 5735118 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=65.536k\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time \u001b[m\u001b[0;33m 26528860 ns 26162456 ns \u001b[m\u001b[0;36m 29\u001b[m model_cost=262.144k\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time \u001b[m\u001b[0;33m 93398 ns 92982 ns \u001b[m\u001b[0;36m 7344\u001b[m model_cost=1.024k\u001b[m output_rows=512\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time \u001b[m\u001b[0;33m 320979 ns 319410 ns \u001b[m\u001b[0;36m 2181\u001b[m model_cost=4.096k\u001b[m output_rows=2.048k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time \u001b[m\u001b[0;33m 1286237 ns 1278126 ns \u001b[m\u001b[0;36m 515\u001b[m model_cost=16.384k\u001b[m output_rows=8.192k\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time \u001b[m\u001b[0;33m 5559294 ns 5526669 ns \u001b[m\u001b[0;36m 118\u001b[m model_cost=65.536k\u001b[m output_rows=32.768k\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time \u001b[m\u001b[0;33m 24117997 ns 23984381 ns \u001b[m\u001b[0;36m 29\u001b[m model_cost=262.144k\u001b[m output_rows=131.072k\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time \u001b[m\u001b[0;33m 122635 ns 122065 ns \u001b[m\u001b[0;36m 5688\u001b[m model_cost=1.024k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time \u001b[m\u001b[0;33m 446143 ns 444091 ns \u001b[m\u001b[0;36m 1570\u001b[m model_cost=4.096k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time \u001b[m\u001b[0;33m 1848225 ns 1837810 ns \u001b[m\u001b[0;36m 296\u001b[m model_cost=16.384k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time \u001b[m\u001b[0;33m 8299086 ns 8240248 ns \u001b[m\u001b[0;36m 79\u001b[m model_cost=65.536k\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time \u001b[m\u001b[0;33m 39251824 ns 38972836 ns \u001b[m\u001b[0;36m 17\u001b[m model_cost=262.144k\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time \u001b[m\u001b[0;33m 112101 ns 111640 ns \u001b[m\u001b[0;36m 5396\u001b[m model_cost=11.264k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time \u001b[m\u001b[0;33m 654773 ns 650822 ns \u001b[m\u001b[0;36m 883\u001b[m model_cost=53.248k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time \u001b[m\u001b[0;33m 2819925 ns 2803767 ns \u001b[m\u001b[0;36m 242\u001b[m model_cost=245.76k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time \u001b[m\u001b[0;33m 15388325 ns 15277274 ns \u001b[m\u001b[0;36m 44\u001b[m model_cost=1.11411M\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time \u001b[m\u001b[0;33m 101966347 ns 101224833 ns \u001b[m\u001b[0;36m 7\u001b[m model_cost=4.98074M\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time \u001b[m\u001b[0;33m 360181 ns 358344 ns \u001b[m\u001b[0;36m 2003\u001b[m model_cost=1.024k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time \u001b[m\u001b[0;33m 1595273 ns 1584971 ns \u001b[m\u001b[0;36m 494\u001b[m model_cost=4.096k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time \u001b[m\u001b[0;33m 7530658 ns 7483873 ns \u001b[m\u001b[0;36m 86\u001b[m model_cost=16.384k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time \u001b[m\u001b[0;33m 63945720 ns 63470390 ns \u001b[m\u001b[0;36m 11\u001b[m model_cost=65.536k\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time \u001b[m\u001b[0;33m 375139164 ns 372296986 ns \u001b[m\u001b[0;36m 2\u001b[m model_cost=262.144k\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time \u001b[m\u001b[0;33m 205582 ns 204648 ns \u001b[m\u001b[0;36m 3372\u001b[m lhs_rows=1.024k\u001b[m model_cost=2.048k\u001b[m output_rows=1.024k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time \u001b[m\u001b[0;33m 835751 ns 830190 ns \u001b[m\u001b[0;36m 875\u001b[m lhs_rows=4.096k\u001b[m model_cost=8.192k\u001b[m output_rows=4.096k\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time \u001b[m\u001b[0;33m 3621875 ns 3595669 ns \u001b[m\u001b[0;36m 213\u001b[m lhs_rows=16.384k\u001b[m model_cost=32.768k\u001b[m output_rows=16.384k\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time \u001b[m\u001b[0;33m 17024603 ns 16899541 ns \u001b[m\u001b[0;36m 39\u001b[m lhs_rows=65.536k\u001b[m model_cost=131.072k\u001b[m output_rows=65.536k\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time \u001b[m\u001b[0;33m 1354150 ns 1347082 ns \u001b[m\u001b[0;36m 513\u001b[m lhs_rows=128\u001b[m model_cost=16.384k\u001b[m output_rows=128\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time \u001b[m\u001b[0;33m 4866823 ns 4842638 ns \u001b[m\u001b[0;36m 144\u001b[m lhs_rows=256\u001b[m model_cost=65.536k\u001b[m output_rows=256\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time \u001b[m\u001b[0;33m 18213617 ns 18143285 ns \u001b[m\u001b[0;36m 38\u001b[m lhs_rows=512\u001b[m model_cost=262.144k\u001b[m output_rows=512\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time \u001b[m\u001b[0;33m 71634074 ns 71360157 ns \u001b[m\u001b[0;36m 10\u001b[m lhs_rows=1.024k\u001b[m model_cost=1.04858M\u001b[m output_rows=1.024k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time \u001b[m\u001b[0;33m 365470 ns 358505 ns \u001b[m\u001b[0;36m 1931\u001b[m lhs_rows=64\u001b[m model_cost=2\u001b[m output_rows=4.096k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time \u001b[m\u001b[0;33m 1144605 ns 1133688 ns \u001b[m\u001b[0;36m 590\u001b[m lhs_rows=128\u001b[m model_cost=2\u001b[m output_rows=16.384k\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time \u001b[m\u001b[0;33m 5925916 ns 5857764 ns \u001b[m\u001b[0;36m 106\u001b[m lhs_rows=256\u001b[m model_cost=2\u001b[m output_rows=65.536k\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time \u001b[m\u001b[0;33m 26708787 ns 26467263 ns \u001b[m\u001b[0;36m 26\u001b[m lhs_rows=512\u001b[m model_cost=2\u001b[m output_rows=262.144k\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m" ] } ], - "source": [] + "source": [ + "!cd ~/c/iu9-sql-compiler/ && ./build-release/bin/benchmarks --benchmark_filter='OperatorCost*' --benchmark_out=/tmp/operator-cost.json --benchmark_out_format=json" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "fb1ddd67", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-rw-r--r-- 1 st users 22146 May 30 19:44 operator-cost.json\n", + "-rw-r--r-- 1 st users 2010 May 30 19:02 operator-cost-smoke.json\n" + ] + } + ], + "source": [ + "!ls -l /tmp | grep operator-cost" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "2d033649", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'context': {'date': '2026-05-30T19:44:06+03:00',\n", + " 'host_name': 'nixos',\n", + " 'executable': './build-release/bin/benchmarks',\n", + " 'num_cpus': 8,\n", + " 'mhz_per_cpu': 4200,\n", + " 'cpu_scaling_enabled': True,\n", + " 'caches': [{'type': 'Data', 'level': 1, 'size': 49152, 'num_sharing': 2},\n", + " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", + " 'load_avg': [0.782715, 1.77148, 2.39893],\n", + " 'library_version': 'v1.9.0',\n", + " 'library_build_type': 'release',\n", + " 'json_schema_version': 1},\n", + " 'benchmarks': [{'name': 'OperatorCost/SeqScan/1024/real_time',\n", + " 'family_index': 0,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 12617,\n", + " 'real_time': 49602.278037666736,\n", + " 'cpu_time': 49352.30649124199,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1024.0,\n", + " 'output_rows': 1024.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/SeqScan/4096/real_time',\n", + " 'family_index': 1,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 3460,\n", + " 'real_time': 217833.0014451714,\n", + " 'cpu_time': 215540.5517341041,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4096.0,\n", + " 'output_rows': 4096.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/SeqScan/16384/real_time',\n", + " 'family_index': 2,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 643,\n", + " 'real_time': 1000897.6454201117,\n", + " 'cpu_time': 992380.8351477447,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 16384.0,\n", + " 'output_rows': 16384.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/SeqScan/65536/real_time',\n", + " 'family_index': 3,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 94,\n", + " 'real_time': 5791036.819186473,\n", + " 'cpu_time': 5735117.925531914,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 65536.0,\n", + " 'output_rows': 65536.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/SeqScan/262144/real_time',\n", + " 'family_index': 4,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 29,\n", + " 'real_time': 26528860.482734483,\n", + " 'cpu_time': 26162455.5862069,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 262144.0,\n", + " 'output_rows': 262144.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Filter/1024/real_time',\n", + " 'family_index': 5,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 7344,\n", + " 'real_time': 93397.88044690267,\n", + " 'cpu_time': 92981.83809912855,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1024.0,\n", + " 'output_rows': 512.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Filter/4096/real_time',\n", + " 'family_index': 6,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2181,\n", + " 'real_time': 320979.35579735413,\n", + " 'cpu_time': 319409.67125171947,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4096.0,\n", + " 'output_rows': 2048.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Filter/16384/real_time',\n", + " 'family_index': 7,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 515,\n", + " 'real_time': 1286236.7009731615,\n", + " 'cpu_time': 1278125.551456312,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 16384.0,\n", + " 'output_rows': 8192.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Filter/65536/real_time',\n", + " 'family_index': 8,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 118,\n", + " 'real_time': 5559294.127108888,\n", + " 'cpu_time': 5526669.3644067785,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 65536.0,\n", + " 'output_rows': 32768.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Filter/262144/real_time',\n", + " 'family_index': 9,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 29,\n", + " 'real_time': 24117996.82760892,\n", + " 'cpu_time': 23984380.5172414,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 262144.0,\n", + " 'output_rows': 131072.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Projection/1024/real_time',\n", + " 'family_index': 10,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5688,\n", + " 'real_time': 122634.84564069705,\n", + " 'cpu_time': 122065.49367088616,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1024.0,\n", + " 'output_rows': 1024.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Projection/4096/real_time',\n", + " 'family_index': 11,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1570,\n", + " 'real_time': 446143.1452197358,\n", + " 'cpu_time': 444090.5898089178,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4096.0,\n", + " 'output_rows': 4096.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Projection/16384/real_time',\n", + " 'family_index': 12,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 296,\n", + " 'real_time': 1848224.8141899125,\n", + " 'cpu_time': 1837810.4864864878,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 16384.0,\n", + " 'output_rows': 16384.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Projection/65536/real_time',\n", + " 'family_index': 13,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 79,\n", + " 'real_time': 8299086.379775884,\n", + " 'cpu_time': 8240248.303797455,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 65536.0,\n", + " 'output_rows': 65536.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Projection/262144/real_time',\n", + " 'family_index': 14,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 17,\n", + " 'real_time': 39251824.35298613,\n", + " 'cpu_time': 38972835.58823522,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 262144.0,\n", + " 'output_rows': 262144.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Sort/1024/real_time',\n", + " 'family_index': 15,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5396,\n", + " 'real_time': 112101.02965182417,\n", + " 'cpu_time': 111640.11286137872,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 11264.0,\n", + " 'output_rows': 1024.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Sort/4096/real_time',\n", + " 'family_index': 16,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 883,\n", + " 'real_time': 654773.3918506079,\n", + " 'cpu_time': 650821.6421291039,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 53248.0,\n", + " 'output_rows': 4096.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Sort/16384/real_time',\n", + " 'family_index': 17,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 242,\n", + " 'real_time': 2819925.21489853,\n", + " 'cpu_time': 2803767.210743795,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 245760.0,\n", + " 'output_rows': 16384.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Sort/65536/real_time',\n", + " 'family_index': 18,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 44,\n", + " 'real_time': 15388325.045436926,\n", + " 'cpu_time': 15277274.136363596,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1114112.0,\n", + " 'output_rows': 65536.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Sort/262144/real_time',\n", + " 'family_index': 19,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 7,\n", + " 'real_time': 101966347.28552973,\n", + " 'cpu_time': 101224833.00000036,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4980736.0,\n", + " 'output_rows': 262144.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Aggregation/1024/real_time',\n", + " 'family_index': 20,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2003,\n", + " 'real_time': 360181.31303291646,\n", + " 'cpu_time': 358343.55167248996,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1024.0,\n", + " 'output_rows': 1024.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Aggregation/4096/real_time',\n", + " 'family_index': 21,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 494,\n", + " 'real_time': 1595273.4534462786,\n", + " 'cpu_time': 1584971.327935227,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4096.0,\n", + " 'output_rows': 4096.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Aggregation/16384/real_time',\n", + " 'family_index': 22,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 86,\n", + " 'real_time': 7530658.232585559,\n", + " 'cpu_time': 7483872.790697673,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 16384.0,\n", + " 'output_rows': 16384.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Aggregation/65536/real_time',\n", + " 'family_index': 23,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 11,\n", + " 'real_time': 63945720.36383165,\n", + " 'cpu_time': 63470390.27272736,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 65536.0,\n", + " 'output_rows': 65536.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Aggregation/262144/real_time',\n", + " 'family_index': 24,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2,\n", + " 'real_time': 375139163.5014443,\n", + " 'cpu_time': 372296986.0000003,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 262144.0,\n", + " 'output_rows': 262144.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", + " 'family_index': 25,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 3372,\n", + " 'real_time': 205581.95996281473,\n", + " 'cpu_time': 204647.6450177935,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1024.0,\n", + " 'model_cost': 2048.0,\n", + " 'output_rows': 1024.0,\n", + " 'rhs_rows': 1024.0},\n", + " {'name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", + " 'family_index': 26,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 875,\n", + " 'real_time': 835751.0091404298,\n", + " 'cpu_time': 830190.1679999974,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 4096.0,\n", + " 'model_cost': 8192.0,\n", + " 'output_rows': 4096.0,\n", + " 'rhs_rows': 4096.0},\n", + " {'name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", + " 'family_index': 27,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 213,\n", + " 'real_time': 3621875.4178325166,\n", + " 'cpu_time': 3595668.521126762,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 16384.0,\n", + " 'model_cost': 32768.0,\n", + " 'output_rows': 16384.0,\n", + " 'rhs_rows': 16384.0},\n", + " {'name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", + " 'family_index': 28,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 39,\n", + " 'real_time': 17024603.33334061,\n", + " 'cpu_time': 16899541.128205113,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 65536.0,\n", + " 'model_cost': 131072.0,\n", + " 'output_rows': 65536.0,\n", + " 'rhs_rows': 65536.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", + " 'family_index': 29,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 513,\n", + " 'real_time': 1354149.7193008196,\n", + " 'cpu_time': 1347082.3060428796,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 128.0,\n", + " 'model_cost': 16384.0,\n", + " 'output_rows': 128.0,\n", + " 'rhs_rows': 128.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", + " 'family_index': 30,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 144,\n", + " 'real_time': 4866823.090297759,\n", + " 'cpu_time': 4842637.791666653,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 256.0,\n", + " 'model_cost': 65536.0,\n", + " 'output_rows': 256.0,\n", + " 'rhs_rows': 256.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", + " 'family_index': 31,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 38,\n", + " 'real_time': 18213616.658038903,\n", + " 'cpu_time': 18143284.894736815,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 512.0,\n", + " 'model_cost': 262144.0,\n", + " 'output_rows': 512.0,\n", + " 'rhs_rows': 512.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", + " 'family_index': 32,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 10,\n", + " 'real_time': 71634074.20011935,\n", + " 'cpu_time': 71360157.29999982,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1024.0,\n", + " 'model_cost': 1048576.0,\n", + " 'output_rows': 1024.0,\n", + " 'rhs_rows': 1024.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'family_index': 33,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1931,\n", + " 'real_time': 365470.0756105372,\n", + " 'cpu_time': 358505.36147074035,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 64.0,\n", + " 'model_cost': 2.0,\n", + " 'output_rows': 4096.0,\n", + " 'rhs_rows': 64.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", + " 'family_index': 34,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 590,\n", + " 'real_time': 1144605.2237307273,\n", + " 'cpu_time': 1133687.6745762767,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 128.0,\n", + " 'model_cost': 2.0,\n", + " 'output_rows': 16384.0,\n", + " 'rhs_rows': 128.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", + " 'family_index': 35,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 106,\n", + " 'real_time': 5925916.377339679,\n", + " 'cpu_time': 5857763.575471662,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 256.0,\n", + " 'model_cost': 2.0,\n", + " 'output_rows': 65536.0,\n", + " 'rhs_rows': 256.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", + " 'family_index': 36,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 26,\n", + " 'real_time': 26708787.384660143,\n", + " 'cpu_time': 26467262.923076782,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 512.0,\n", + " 'model_cost': 2.0,\n", + " 'output_rows': 262144.0,\n", + " 'rhs_rows': 512.0}]}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import json\n", + "\n", + "results = None\n", + "with open('/tmp/operator-cost.json') as f:\n", + " results = json.load(f)\n", + "\n", + "results" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1e9f5e6f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
operatorleft_rowsright_rowsreal_time_msmodel_cost
20Aggregation1024NaN0.3601811024.0
21Aggregation4096NaN1.5952734096.0
22Aggregation16384NaN7.53065816384.0
23Aggregation65536NaN63.94572065536.0
24Aggregation262144NaN375.139164262144.0
5Filter1024NaN0.0933981024.0
6Filter4096NaN0.3209794096.0
7Filter16384NaN1.28623716384.0
8Filter65536NaN5.55929465536.0
9Filter262144NaN24.117997262144.0
25HashJoin10241024.00.2055822048.0
26HashJoin40964096.00.8357518192.0
27HashJoin1638416384.03.62187532768.0
28HashJoin6553665536.017.024603131072.0
33NestedLoopCrossJoin6464.00.3654702.0
34NestedLoopCrossJoin128128.01.1446052.0
35NestedLoopCrossJoin256256.05.9259162.0
36NestedLoopCrossJoin512512.026.7087872.0
29NestedLoopJoin128128.01.35415016384.0
30NestedLoopJoin256256.04.86682365536.0
31NestedLoopJoin512512.018.213617262144.0
32NestedLoopJoin10241024.071.6340741048576.0
10Projection1024NaN0.1226351024.0
11Projection4096NaN0.4461434096.0
12Projection16384NaN1.84822516384.0
13Projection65536NaN8.29908665536.0
14Projection262144NaN39.251824262144.0
0SeqScan1024NaN0.0496021024.0
1SeqScan4096NaN0.2178334096.0
2SeqScan16384NaN1.00089816384.0
3SeqScan65536NaN5.79103765536.0
4SeqScan262144NaN26.528860262144.0
15Sort1024NaN0.11210111264.0
16Sort4096NaN0.65477353248.0
17Sort16384NaN2.819925245760.0
18Sort65536NaN15.3883251114112.0
19Sort262144NaN101.9663474980736.0
\n", + "" + ], + "text/plain": [ + " operator left_rows right_rows real_time_ms model_cost\n", + "20 Aggregation 1024 NaN 0.360181 1024.0\n", + "21 Aggregation 4096 NaN 1.595273 4096.0\n", + "22 Aggregation 16384 NaN 7.530658 16384.0\n", + "23 Aggregation 65536 NaN 63.945720 65536.0\n", + "24 Aggregation 262144 NaN 375.139164 262144.0\n", + "5 Filter 1024 NaN 0.093398 1024.0\n", + "6 Filter 4096 NaN 0.320979 4096.0\n", + "7 Filter 16384 NaN 1.286237 16384.0\n", + "8 Filter 65536 NaN 5.559294 65536.0\n", + "9 Filter 262144 NaN 24.117997 262144.0\n", + "25 HashJoin 1024 1024.0 0.205582 2048.0\n", + "26 HashJoin 4096 4096.0 0.835751 8192.0\n", + "27 HashJoin 16384 16384.0 3.621875 32768.0\n", + "28 HashJoin 65536 65536.0 17.024603 131072.0\n", + "33 NestedLoopCrossJoin 64 64.0 0.365470 2.0\n", + "34 NestedLoopCrossJoin 128 128.0 1.144605 2.0\n", + "35 NestedLoopCrossJoin 256 256.0 5.925916 2.0\n", + "36 NestedLoopCrossJoin 512 512.0 26.708787 2.0\n", + "29 NestedLoopJoin 128 128.0 1.354150 16384.0\n", + "30 NestedLoopJoin 256 256.0 4.866823 65536.0\n", + "31 NestedLoopJoin 512 512.0 18.213617 262144.0\n", + "32 NestedLoopJoin 1024 1024.0 71.634074 1048576.0\n", + "10 Projection 1024 NaN 0.122635 1024.0\n", + "11 Projection 4096 NaN 0.446143 4096.0\n", + "12 Projection 16384 NaN 1.848225 16384.0\n", + "13 Projection 65536 NaN 8.299086 65536.0\n", + "14 Projection 262144 NaN 39.251824 262144.0\n", + "0 SeqScan 1024 NaN 0.049602 1024.0\n", + "1 SeqScan 4096 NaN 0.217833 4096.0\n", + "2 SeqScan 16384 NaN 1.000898 16384.0\n", + "3 SeqScan 65536 NaN 5.791037 65536.0\n", + "4 SeqScan 262144 NaN 26.528860 262144.0\n", + "15 Sort 1024 NaN 0.112101 11264.0\n", + "16 Sort 4096 NaN 0.654773 53248.0\n", + "17 Sort 16384 NaN 2.819925 245760.0\n", + "18 Sort 65536 NaN 15.388325 1114112.0\n", + "19 Sort 262144 NaN 101.966347 4980736.0" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.DataFrame(results['benchmarks'])\n", + "df = df[df['run_type'] == 'iteration'].copy()\n", + "\n", + "parts = df['name'].str.split('/')\n", + "df['operator'] = parts.str[1]\n", + "df['left_rows'] = parts.str[2].astype(int)\n", + "df['right_rows'] = parts.apply(lambda p: int(p[3]) if len(p) == 5 else None)\n", + "\n", + "df['real_time_ms'] = df['real_time'] / 1e6\n", + "\n", + "df[['operator', 'left_rows', 'right_rows', 'real_time_ms', 'model_cost']].sort_values(['operator', 'left_rows'])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d49c7121", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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aXuzZs0AADdv3ixz7IcOHULPnj3h4uKi027EiBE6sTzOZ+JRXnrpJdy5cwcHDhyQtm3cuBGurq7o168fAKBhw4aws7PDrFmz8MUXXyAyMrJM13jc9zAnJwcHDx7EM888A5VKpfOa+/fvj5ycHBw/flw6/scff0SXLl2gVqulz/qGDRt0Pufa0qHhw4dj+/bt+Oeff8r0WvTR95nfvXs3fH190apVK524AwMDdcqptD9fD/97MHr06HLHVZJWrVqhTp060nPt+96tWzedsSEPfz+uX7+Ov/76S4r14e9HbGys9JkmIsMwsSAiAICjoyNUKhWio6NLbRcTEwOVSgV7e3ud7a6urjrPzczM4ODggMTERADAvXv3ABTdCMnlcp3Htm3bdMZIAIBKpYK1tbXONo1Ggz59+mDHjh145513cPDgQZw8eVK6GTPk5lsbj5ubW7F97u7u0n4tfe300Y4nKW1waXJyMoQQJV77wfjWrFmDWbNmISQkBN27d4e9vT2GDh2Ka9euGRRPSR7+vgGAQqEotl2hUAAouhkua+yJiYnFPg9A8c9IWT8ThujXrx/c3NykMQ/JycnYtWsXXnzxRZiamgIAbGxscPjwYbRq1Qpz5sxB8+bN4e7ujnnz5pU4DuRBj/seJiYmoqCgAGvXri32evv37w8A0mvesWMHhg8fjjp16mDLli04duwYTp06hfHjx0vnA4CuXbsiJCREStDq1q0LX19faSzO49D3Pb537x4uXLhQLG4rKysIIaS4ExMTpZ/9B+n7PFSUkt73R30/tJ+/mTNnFntdkydPBoDH+gwS1WacFYqIABT9Rbl79+4IDQ3FnTt39N4g37lzBxEREejXr590k6YVFxen81fDgoICJCYmSjcYjo6OAICffvpJ6mEojb756i9duoTz588jODgY48aNk7brG6xbEm08sbGxxV7j3bt3pThLi0MfJycnACh18K+dnR1MTEwQGxtbbN/du3cB/Pc+WVpaYsGCBViwYAHu3bsn9V4MGjQIf/31l0ExVaSyxO7g4IC4uLhi7R7eVtbPhCG0PShr1qxBSkoKvv/+e+Tm5uKll17Saefn54etW7dCCIELFy4gODgYH374ISwsLPDuu+9WSCwPs7Ozk+J7/fXX9bbx8vICAGzZsgVeXl7Ytm2bzmcwNze32DFDhgzBkCFDkJubi+PHj2PJ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VBT8/f11zvnw865du+Lvv//GwYMH8eyzz+Ly5ct4+umn8dFHHwEAzp07B1NTUwQEBJQY5xdffIF27drByckJarUaX3/9NW7duqXTpnnz5jA1/S+pcnNzQ3x8fLneHzIOo/ZYvP766/j+++/xv//9D1ZWVtKYCBsbG1hYWCAjIwPz58/Hs88+Czc3N8TExGDOnDlwdHTEM888I7WdMGECZsyYAQcHB9jb22PmzJnw8/OTsufaLC0nHwX/zk5hZyk3cjRERETVl0xuAvcPDfujZG50KhI3Xn5kO4eXmkPpZWPQtcvK3NwcvXv3Ru/evTF37ly8/PLLmDdvHiZPngw3NzeEhYUVO8bW1rZM15DL5Xj66afx9NNP491338XChQvx4YcfYtasWbCwsCj12O3bt+Ott97CJ598An9/f1hZWWHFihU4ceJEsWs8SCaTQaMxrCSNqhejJhbr168HAHTr1k1n+8aNGxEUFARTU1NcvHgR3377LVJSUuDm5obu3btj27ZtOrV+n376KczMzDB8+HBkZ2ejZ8+eCA4O1sl+ayttGZSV0gxKM74fREREJZHJZAaXI5k3soOpjaLYwO0HmdooYd7IzqAxFhXBx8cHISEhaNOmDeLi4mBmZob69evrbdusWTMcP34cL774orTt+PHjBl2joKAAOTk58PPzg0ajweHDh/X+MffPP/9E586dMXnyZGmbtseEnkxGTSyEKH2eZwsLC+zdu/eR5zE3N8fatWuxdu3aigrtiZHENSyIiIgqnMxEBttBDZC4JarENraDvCslqUhMTMTzzz+P8ePHo0WLFrCyssLp06exfPlyDBkyBL169YK/vz+GDh2KZcuWoUmTJrh79y727NmDoUOHol27dnjzzTcxbtw4tGvXDk899RS+++47XL58WWeMRLdu3TBq1Ci0a9cODg4OiIyMxJw5c9C9e3dYW1vD2toa48aNw/jx46XB2zdv3kR8fDyGDx+Ohg0b4ttvv8XevXvh5eWFzZs349SpUwaVvlPNVC0Gb1Pl0a66zYHbREREFcvC1xEOY5rpWcdCCdtB3pW2joVarUbHjh3x6aef4saNG8jPz4eHhwcmTpyIOXPmQCaTYc+ePXjvvfcwfvx43L9/H66urujatStcXFwAFM26eePGDcyaNQs5OTl49tln8dprr+n8QTcwMBCbNm3CnDlzkJWVBXd3dwwcOBBz586V2qxfvx5z5szB5MmTkZiYiHr16mHOnDkAitbBOHfuHEaMGAGZTIZRo0Zh8uTJ+O233yrlfSHjk4lHdRvUAmlpabCxsUFqaiqsra2NHU6F+u7ETby38xJ6+7jg6xfbGTscIiKiaiMnJwfR0dHw8vKCubn5Y59HaARyo1OhSc+DiZUCSi+bKit/qkjz589HSEgIzp07Z+xQqIqV9rNQlvtk9lg84f5bw4I9FkRERJVBZiKDeQNbY4dBZHTVZuVtqhxJXMOCiIiIiKoAE4snXKI0eJtrWBAREVHJ5s+fzzIoKhcmFk847eBtlkIRERERUWUq8xiLmJgY/Pnnn4iJiUFWVhacnJzQunVr+Pv7l2vgE1UOTjdLRERERFXB4MTi+++/x5o1a3Dy5Ek4OzujTp06sLCwQFJSEm7cuAFzc3O88MILmDVrFjw9PSszZiqDhAyOsSAiIiKiymdQYtGmTRuYmJggKCgI27dvR7169XT25+bm4tixY9i6dSvatWuHzz//HM8//3ylBEyG02gEkrO0s0JxjAURERERVR6DEouPPvoIAwYMKHG/UqlEt27d0K1bNyxcuBDR0dEVFiA9vrScfBRqipYpYY8FEREREVUmgxKL0pKKhzk6OsLRsXJWmqSy0ZZBWZmbQWHGcfpEREREVHnKfLd55swZXLx4UXr+v//9D0OHDsWcOXOQl5dXypFU1bQDtx051SwREdETJT4+HpMmTUK9evWgVCrh6uqKwMBAHDt2rFzn7datG6ZNm1YxQVKtU+bEYtKkSbh69SoA4O+//8bIkSOhUqnw448/4p133qnwAOnxaaeaZRkUERFR5dFoNIiOjsbFixcRHR0NjUZT6dd89tlncf78eWzatAlXr17Frl270K1bNyQlJT3W+fLz8ys4QqqNyjzd7NWrV9GqVSsAwI8//oiuXbvi+++/x9GjRzFy5EisWrWqgkOkx5XIVbeJiIgqVWRkJEJDQ5GWliZts7a2Rt++feHj41Mp10xJScGRI0cQFhaGgIAAAICnpyc6dOggtbl16xamTJmCgwcPwsTEBH379sXatWvh4uICoGgxvJCQEEydOhULFy5ETEwMxo4di8OHD+Pw4cNYvXo1ACA6Ohr169evlNdBT54y91gIIaRM/MCBA+jfvz8AwMPDAwkJCRUbHZXLf6VQTCyIiIgqWmRkJLZv366TVABAWloatm/fjsjIyEq5rlqthlqtRkhICHJzc4vtF0Jg6NChSEpKwuHDh7F//37cuHEDI0aM0Gl3/fp1bN++HT///DPOnTuHNWvWwN/fHxMnTkRsbCxiY2Ph4eFRKa+Bnkxl7rFo164dFi5ciF69euHw4cNYv349gKKMVpsFU/XAUigiIiLDCSEMLgnSaDT47bffSm0TGhoKb29vmJg8+u+4crkcMpnMoGubmZkhODgYEydOxBdffIE2bdogICAAI0eORIsWLXDgwAFcuHAB0dHRUmKwefNmNG/eHKdOnUL79u0BAHl5edi8eTOcnJykcysUCqhUKri6uhoUC9GDypxYrFq1Ci+88AJCQkLw3nvvoWHDhgCAn376CZ07d67wAOnxaUuhuIYFERHRo+Xn52Px4sUVdr60tDQsXbrUoLZz5syBQmH4HwKfffZZDBgwAH/++SeOHTuG0NBQLF++HP/3f/+HtLQ0eHh46PQ2+Pj4wNbWFlFRUVJi4enpqZNUEJVXmROLFi1a6MwKpbVixQqYmppWSFBUMRL/nW7WgaVQRERETxxzc3P07t0bvXv3xty5c/Hyyy9j3rx5mD59ut7eDyGEznZLS8uqDJdqgTInFg/KyMgoNvOBXC4vV0BUcZI4eJuIiMhgcrkcc+bMMajtzZs38d133z2y3QsvvABPT0+Drl1ePj4+CAkJgY+PD27duoXbt29LvRaRkZFITU1Fs2bNSj2HQqFAYWFhuWOh2qnMiUV0dDTeeOMNhIWFIScnR9quzYL5Yaw+WApFRERkOJlMZnA5UoMGDWBtbV1s4PaDrK2t0aBBA4PGWJRFYmIinn/+eYwfPx4tWrSAlZUVTp8+jeXLl2PIkCHo1asXWrRogRdeeAGrVq1CQUEBJk+ejICAALRr167Uc9evXx8nTpxATEwM1Go17O3tKzx+enKVObF44YUXAADffPMNXFxcDB5oRFVLoxFIzmIpFBERUWXQTuG6ffv2Etv07du3Um7K1Wo1OnbsiE8//RQ3btxAfn4+PDw8MHHiRMyZMwcymQwhISGYMmUKunbtqjPd7KPMnDkT48aNg4+PD7KzszndLJWJTAghynKAWq1GREQEmjRpUlkxVbm0tDTY2NggNTUV1tbWxg6nQiRn5qH1R/sBAFcX9oPCjH9tICIielBOTg6io6Ph5eUFc3PzxzqHMdaxIKpopf0slOU+ucw9Fu3bt8ft27efqMTiSZSYWTTVrLW5GZMKIiKiSuLj44OmTZvi5s2byMjIgFqthqenJ8uHqFYqc2Lxf//3f3j11Vfxzz//wNfXt9hgoxYtWlRYcPT4/psRiuMriIiIKpOJiQm8vLyMHQaR0ZU5sbh//z5u3LiBl156Sdomk8k4eLuaSZIGbnN8BRERERFVvjInFuPHj0fr1q3xww8/cPB2NZbAqWaJiIiIqAqVObG4efMmdu3aJa24TdVTEkuhiIiIiKgKlXlkUY8ePXD+/PnKiIUqkHbwNkuhiIiISlfGCTKJnjgV9TNQ5h6LQYMG4a233sLFixfh5+dXbPD24MGDKyQwKp9ElkIRERGVytTUFACQl5cHCwsLI0dDZDxZWVkAyr8CfJkTi1dffRUA8OGHHxbbx8Hb1Udixr89Flwcj4iISC8zMzOoVCrcv38fcrmcU8RSrSOEQFZWFuLj42Fraysl24+rzImFRqMp1wWpavw3KxTHWBAREekjk8ng5uaG6Oho3Lx509jhEBmNra0tXF1dy32eMicWVDNIiQV7LIiIiEqkUCjQqFEj5OXlGTsUIqOQy+Xl7qnQMiix2Lp1K0aOHGnQCW/fvo1bt26hS5cu5QqMHp9GI7iOBRERkYFMTExgbm5u7DCIajyDignXr1+Ppk2bYtmyZYiKiiq2PzU1FXv27MHo0aPRtm1bJCUlVXigZLiU7Hxo/h3cb8fEgoiIiIiqgEE9FocPH8bu3buxdu1azJkzB5aWlnBxcYG5uTmSk5MRFxcHJycnvPTSS7h06RKcnZ0rO24qhXbgto2FHHJTDkQjIiIiospn8BiLgQMHYuDAgUhMTMSRI0cQExOD7OxsODo6onXr1mjdujVnU6gmElkGRURERERVrMyDtx0cHDBkyJDKiIUqCAduExEREVFVYxfDE0hbCsXF8YiIiIioqhg1sViyZAnat28PKysrODs7Y+jQobhy5YpOGyEE5s+fD3d3d1hYWKBbt264fPmyTpvc3FxMmTIFjo6OsLS0xODBg3Hnzp2qfCnVilQKpeYaFkRERERUNYyaWBw+fBivv/46jh8/jv3796OgoAB9+vRBZmam1Gb58uVYuXIl1q1bh1OnTsHV1RW9e/dGenq61GbatGnYuXMntm7diiNHjiAjIwMDBw6stauAJ2ZwjAURERERVS2ZEEIYOwit+/fvw9nZGYcPH0bXrl0hhIC7uzumTZuGWbNmASjqnXBxccGyZcswadIkpKamwsnJCZs3b8aIESMAAHfv3oWHhwf27NmDwMDAR143LS0NNjY2SE1NhbW1daW+xqrw+ndn8OvFWMwb5IOXungZOxwiIiIiqqHKcp/82D0WeXl5uHLlCgoKCh73FMWkpqYCAOzt7QEA0dHRiIuLQ58+faQ2SqUSAQEBCA8PBwBEREQgPz9fp427uzt8fX2lNg/Lzc1FWlqazuNJkphZNMaCpVBEREREVFXKnFhkZWVhwoQJUKlUaN68OW7dugUAmDp1KpYuXfrYgQghMH36dDz11FPw9fUFAMTFxQEAXFxcdNq6uLhI++Li4qBQKGBnZ1dim4ctWbIENjY20sPDw+Ox466OWApFRERERFWtzInF7Nmzcf78eYSFhcHc3Fza3qtXL2zbtu2xA3njjTdw4cIF/PDDD8X2yWQynedCiGLbHlZam9mzZyM1NVV63L59+7Hjro443SwRERERVbUyJxYhISFYt24dnnrqKZ0bdx8fH9y4ceOxgpgyZQp27dqFQ4cOoW7dutJ2V1dXACjW8xAfHy/1Yri6uiIvLw/JyckltnmYUqmEtbW1zuNJUagRSMoqSiw43SwRERERVZUyJxbaAdYPy8zMfGQvwsOEEHjjjTewY8cO/P777/Dy0h1o7OXlBVdXV+zfv1/alpeXh8OHD6Nz584AgLZt20Iul+u0iY2NxaVLl6Q2tUlKVh60w/HtVEwsiIiIiKhqlDmxaN++PX799VfpuTaZ+Prrr+Hv71+mc73++uvYsmULvv/+e1hZWSEuLg5xcXHIzs6Wzj1t2jQsXrwYO3fuxKVLlxAUFASVSoXRo0cDAGxsbDBhwgTMmDEDBw8exNmzZzFmzBj4+fmhV69eZX15NZ62DMpWJYfclOsfEhEREVHVMCvrAUuWLEHfvn0RGRmJgoICrF69GpcvX8axY8dw+PDhMp1r/fr1AIBu3brpbN+4cSOCgoIAAO+88w6ys7MxefJkJCcno2PHjti3bx+srKyk9p9++inMzMwwfPhwZGdno2fPnggODoapqWlZX16Nl5DBMigiIiIiqnqPtY7FxYsX8fHHHyMiIgIajQZt2rTBrFmz4OfnVxkxVronaR2LXy/E4vXvz6BDfXtsf7VsPUhERERERA8qy31ymXssAMDPzw+bNm16rOCocmnXsGCPBRERERFVpcdKLICiWZfi4+Oh0Wh0trdo0aLcQdHj065hYc+pZomIiIioCpU5sYiIiMC4ceMQFRWFh6uoZDIZCgsLKyw4Kjvt4G1H9lgQERERURUqc2Lx0ksvoXHjxtiwYQNcXFzKPMUsVS6WQhERERGRMZQ5sYiOjsaOHTvQsGHDyoiHyklbCuWgVho5EiIiIiKqTcq80EHPnj1x/vz5yoiFKkDiv6VQDuyxICIiIqIqVOYei//7v//DuHHjcOnSJfj6+kIul+vsHzx4cIUFR2WnHWPBwdtEREREVJXKnFiEh4fjyJEj+O2334rt4+Bt4yrUCCRnaXssWApFRERERFWnzKVQU6dOxdixYxEbGwuNRqPzYFJhXMlZedBO1GWnkpfemIiIiIioApU5sUhMTMRbb70FFxeXyoiHykFbBmWnksPMtMzfWiIiIiKix1bmu89hw4bh0KFDlRELlVNCBqeaJSIiIiLjKPMYi8aNG2P27Nk4cuQI/Pz8ig3enjp1aoUFR2WTlMnxFURERERkHI81K5Rarcbhw4dx+PBhnX0ymYyJhRH9t4YFeyyIiIiIqGo91gJ5VD1p17BgKRQRERERVTWO8H2CJGUWjbHgqttEREREVNUM6rGYPn06PvroI1haWmL69Omltl25cmWFBEZlJ5VCsceCiIiIiKqYQYnF2bNnkZ+fL31N1RNLoYiIiIjIWAxKLB6cXpZTzVZfiRnaUigmFkRERERUtco8xmL8+PFIT08vtj0zMxPjx4+vkKDo8XC6WSIiIiIyljInFps2bUJ2dnax7dnZ2fj2228rJCgqu4JCDVKyi8rV2GNBRERERFXN4Olm09LSIISAEALp6ekwNzeX9hUWFmLPnj1wdnaulCDp0ZKz8iEEIJMBdiomFkRERERUtQxOLGxtbSGTySCTydC4ceNi+2UyGRYsWFChwZHhtGVQthZymJrIjBwNEREREdU2BicWhw4dghACPXr0wM8//wx7e3tpn0KhgKenJ9zd3SslSHq0/wZuc3wFEREREVU9gxOLgIAAAEUrb9erVw8yWel/FZ88eTI+/PBDODo6li9CMginmiUiIiIiYyrz4G1PT89HJhUAsGXLFqSlpT1WUFR22lIoRw7cJiIiIiIjKHNiYSghRGWdmvTQlkKxx4KIiIiIjKHSEguqWolcw4KIiIiIjIiJxRMiMePfxIKlUERERERkBEwsnhBJHLxNREREREbExOIJkZj573SzLIUiIiIiIiOotMRizJgxsLa2rqzT00OkMRYshSIiIiIiIzBoHYsLFy4YfMIWLVoAANavX/94EVGZFRRqkJKVDwBwYCkUERERERmBQYlFq1atIJPJSpxCVrtPJpOhsLCwQgOkR0vKKuqtkMkAWxUTCyIiIiKqegYlFtHR0ZUdB5WDduC2nUoBU5NHL15IRERERFTRDEosPD09KzsOKock7VSzLIMiIiIiIiMxKLHQJzIyErdu3UJeXp7O9sGDB5c7KCqbBE41S0RERERGVubE4u+//8YzzzyDixcv6oy7kMmKSnA4xqLqJWUUTTXrqOZUs0RERERkHGWebvbNN9+El5cX7t27B5VKhcuXL+OPP/5Au3btEBYWVgkh0qMksseCiIiIiIyszInFsWPH8OGHH8LJyQkmJiYwMTHBU089hSVLlmDq1KllOtcff/yBQYMGwd3dHTKZDCEhITr7g4KCIJPJdB6dOnXSaZObm4spU6bA0dERlpaWGDx4MO7cuVPWl1WjMbEgIiIiImMrc2JRWFgItVoNAHB0dMTdu3cBFA3wvnLlSpnOlZmZiZYtW2LdunUltunbty9iY2Olx549e3T2T5s2DTt37sTWrVtx5MgRZGRkYODAgbWqJCtRKoViYkFERERExlHmMRa+vr64cOECvL290bFjRyxfvhwKhQJfffUVvL29y3Sufv36oV+/fqW2USqVcHV11bsvNTUVGzZswObNm9GrVy8AwJYtW+Dh4YEDBw4gMDCwTPHUVElSjwXHWBARERGRcZS5x+L999+HRqMBACxcuBA3b97E008/jT179mDNmjUVHmBYWBicnZ3RuHFjTJw4EfHx8dK+iIgI5Ofno0+fPtI2d3d3+Pr6Ijw8vMRz5ubmIi0tTedRk2lLoRzYY0FERERERlLmHosHewG8vb0RGRmJpKQk2NnZSTNDVZR+/frh+eefh6enJ6Kjo/HBBx+gR48eiIiIgFKpRFxcHBQKBezs7HSOc3FxQVxcXInnXbJkCRYsWFChsRpTItexICIiIiIjK3OPhdb169exd+9eZGdnw97eviJjkowYMQIDBgyAr68vBg0ahN9++w1Xr17Fr7/+Wupx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NwTEPwa9rGtdHwvc3SZKPXr0QPfu3RWdeZuIiIiI7n33/N2jVqtFSkoKdu7c6bJ+586dGDRokEJVNU9SqxHz7wtRVPANHq5/qGHlrf2whYd1P7vbTZRUKhXi4+PRq1cvxMfHM1QQERERUavd808sAGDevHmYMmUKUlNTkZ6ejlWrVuHSpUuYMWOG0qU1yZSRge4A8v56BCM79GyYx+KmPhd+QgWNXoeamppfjjGZkJmZySZKRERERORz7otg8eSTT6K0tBRvv/02CgoK0LNnT2zfvt3nRzQyZWRg4KhRKNmzF/LWeljUelj19ejz6/HonpwMAGyiRERERET3hPtiHgtvtfc8FkRERERE94LW3Cfz628iIiIiIvIagwUREREREXmNwYKIiIiIiLzGYEFERERERF5jsCAiIiIiIq8xWBARERERkdcYLIiIiIiIyGsMFkRERERE5DUGCyIiIiIi8hqDBREREREReY3BgoiIiIiIvKZRugBfIIQAAFgsFoUrISIiIiLyHY33x433y81hsABQWVkJAIiNjVW4EiIiIiIi31NZWYmgoKBm95FES+LHfU6WZVy7dg1GoxGSJLX751ssFsTGxuLy5cswmUzt/vnkO3gtEMDrgBrwOqBGvBYIUO46EEKgsrIS0dHRUKma70XBJxYAVCoVOnbsqHQZMJlM/AuDAPBaoAa8DgjgdUC/4LVAgDLXwe2eVDRi520iIiIiIvIagwUREREREXmNwcIH6HQ6vPnmm9DpdEqXQgrjtUAArwNqwOuAGvFaIODeuA7YeZuIiIiIiLzGJxZEREREROQ1BgsiIiIiIvIagwUREREREXmNwcIHLF++HPHx8fD390dKSgq++eYbpUuidrZv3z6MHz8e0dHRkCQJmzZtUrokUsDixYsxYMAAGI1GREREYNKkSTh16pTSZVE7W7FiBXr37u0cqz49PR1ffvml0mWRwhYvXgxJkjB37lylS6F29tZbb0GSJJclKipK6bI8YrBQ2GeffYa5c+fitddew3fffYehQ4ciKysLly5dUro0akdWqxV9+vTBhx9+qHQppKC9e/di5syZOHjwIHbu3Am73Y6MjAxYrValS6N21LFjR7z77rs4evQojh49ipEjR2LixIk4ceKE0qWRQo4cOYJVq1ahd+/eSpdCCklOTkZBQYFzOX78uNIlecRRoRSWlpaG/v37Y8WKFc51SUlJmDRpEhYvXqxgZaQUSZKwceNGTJo0SelSSGHFxcWIiIjA3r17MWzYMKXLIQWFhobivffew7PPPqt0KdTOqqqq0L9/fyxfvhyLFi1C3759sWzZMqXLonb01ltvYdOmTcjNzVW6lNviEwsF1dXVIScnBxkZGS7rMzIysH//foWqIiJfUVFRAaDhppIeTA6HA+vWrYPVakV6errS5ZACZs6ciXHjxmH06NFKl0IKOnPmDKKjoxEfH4+nnnoK58+fV7okjzRKF/AgKykpgcPhQGRkpMv6yMhIXL9+XaGqiMgXCCEwb948DBkyBD179lS6HGpnx48fR3p6Ompra2EwGLBx40b06NFD6bKona1btw7Hjh3DkSNHlC6FFJSWloZPPvkE3bp1Q2FhIRYtWoRBgwbhxIkTMJvNSpfngsHCB0iS5PJaCOG2jogeLLNmzcIPP/yAf/7zn0qXQgpITExEbm4uysvL8fnnn2PatGnYu3cvw8UD5PLly5gzZw6ys7Ph7++vdDmkoKysLOfPvXr1Qnp6OhISErB27VrMmzdPwcrcMVgoKCwsDGq12u3pRFFRkdtTDCJ6cMyePRubN2/Gvn370LFjR6XLIQVotVp07doVAJCamoojR47ggw8+wMqVKxWujNpLTk4OioqKkJKS4lzncDiwb98+fPjhh7DZbFCr1QpWSErR6/Xo1asXzpw5o3QpbtjHQkFarRYpKSnYuXOny/qdO3di0KBBClVFREoRQmDWrFn44osvsGvXLsTHxytdEvkIIQRsNpvSZVA7GjVqFI4fP47c3Fznkpqaiqeffhq5ubkMFQ8wm82GvLw8dOjQQelS3PCJhcLmzZuHKVOmIDU1Fenp6Vi1ahUuXbqEGTNmKF0ataOqqiqcPXvW+frChQvIzc1FaGgoOnXqpGBl1J5mzpyJv/71r/j73/8Oo9HofJoZFBSEgIAAhauj9rJgwQJkZWUhNjYWlZWVWLduHfbs2YMdO3YoXRq1I6PR6Na/Sq/Xw2w2s9/VA+all17C+PHj0alTJxQVFWHRokWwWCyYNm2a0qW5YbBQ2JNPPonS0lK8/fbbKCgoQM+ePbF9+3bExcUpXRq1o6NHj2LEiBHO141tJqdNm4Y1a9YoVBW1t8Zhp4cPH+6yfvXq1Zg+fXr7F0SKKCwsxJQpU1BQUICgoCD07t0bO3bswKOPPqp0aUSkgCtXruA3v/kNSkpKEB4ejocffhgHDx70yXtFzmNBREREREReYx8LIiIiIiLyGoMFERERERF5jcGCiIiIiIi8xmBBREREREReY7AgIiIiIiKvMVgQEREREZHXGCyIiIiIiMhrDBZERERERPeoffv2Yfz48YiOjoYkSdi0aVOr30MIgffffx/dunWDTqdDbGws3nnnnVa/D4MFERG1ueHDh2Pu3Lkt3n/NmjUIDg5us3qIiO4XVqsVffr0wYcffnjH7zFnzhz8+c9/xvvvv4+ffvoJW7ZswcCBA1v9Ppo7roCIiOg+t2fPHowYMQJlZWUMOkTkk7KyspCVldXk9rq6Orz++uv49NNPUV5ejp49e2LJkiUYPnw4ACAvLw8rVqzAjz/+iMTERK9q4RMLIiIiIqL71DPPPINvv/0W69atww8//IAnnngCmZmZOHPmDABgy5Yt6NKlC7Zu3Yr4+Hh07twZzz33HG7cuNHqz2KwICJ6gA0fPhyzZ8/G3LlzERISgsjISKxatQpWqxXPPPMMjEYjEhIS8OWXXzqP2bt3LwYOHAidTocOHTpg/vz5sNvtzu1WqxVTp06FwWBAhw4dsHTpUrfPraurwyuvvIKYmBjo9XqkpaVhz549d3wemzdvRmpqKvz9/REWFobHH3/cua2srAxTp05FSEgIAgMDkZWV5fwHFQDy8/Mxfvx4hISEQK/XIzk5Gdu3b8fFixcxYsQIAEBISAgkScL06dPvuEYiovZ27tw5/O1vf8OGDRswdOhQJCQk4KWXXsKQIUOwevVqAMD58+eRn5+PDRs24JNPPsGaNWuQk5ODX//6163+PAYLIqIH3Nq1axEWFobDhw9j9uzZeOGFF/DEE09g0KBBOHbsGMaMGYMpU6aguroaV69exdixYzFgwAB8//33WLFiBT7++GMsWrTI+X4vv/wydu/ejY0bNyI7Oxt79uxBTk6Oy2fe7hu01ti2bRsef/xxjBs3Dt999x2+/vprpKamOrdPnz4dR48exebNm3HgwAEIITB27FjU19cDAGbOnAmbzYZ9+/bh+PHjWLJkCQwGA2JjY/H5558DAE6dOoWCggJ88MEHd/IrJiJSxLFjxyCEQLdu3WAwGJzL3r17ce7cOQCALMuw2Wz45JNPMHToUAwfPhwff/wxdu/ejVOnTrXuAwURET2wHnnkETFkyBDna7vdLvR6vZgyZYpzXUFBgQAgDhw4IBYsWCASExOFLMvO7X/605+EwWAQDodDVFZWCq1WK9atW+fcXlpaKgICAsScOXOEEEKcPXtWSJIkrl696lLLqFGjxKuvviqEEGL16tUiKCioReeQnp4unn76aY/bTp8+LQCIb7/91rmupKREBAQEiPXr1wshhOjVq5d46623PB6/e/duAUCUlZW1qBYiIiUBEBs3bnS+XrdunVCr1eKnn34SZ86ccVkKCgqEEEK88cYbQqPRuLxPdXW1ACCys7Nb9fnsvE1E9IDr3bu382e1Wg2z2YxevXo510VGRgIAioqKkJeXh/T0dEiS5Nw+ePBgVFVV4cqVKygrK0NdXR3S09Od20NDQ106BN78DdrNbDYbzGZzq+vPzc3F888/73FbXl4eNBoN0tLSnOvMZjMSExORl5cHAPjDH/6AF154AdnZ2Rg9ejR+9atfufxOiIjuVf369YPD4UBRURGGDh3qcZ/BgwfDbrfj3LlzSEhIAACcPn0aABAXF9eqz2OwICJ6wPn5+bm8liTJZV1jiJBlGUIIl1ABNIx/3rhf48/NkWUZarUaOTk5UKvVLtsMBkOr6w8ICGhyW1P13Hwezz33HMaMGYNt27YhOzsbixcvxtKlSzF79uxW10JE1N6qqqpw9uxZ5+sLFy4gNzcXoaGh6NatG55++mlMnToVS5cuRb9+/VBSUoJdu3ahV69eGDt2LEaPHo3+/fvjt7/9LZYtWwZZljFz5kw8+uijbl8A3Q77WBARUYv16NED+/fvd7lh379/P4xGI2JiYtC1a1f4+fnh4MGDzu1lZWXOb78A12/Qunbt6rJERUW1uqbevXvj66+/brJeu92OQ4cOOdeVlpbi9OnTSEpKcq6LjY3FjBkz8MUXX+DFF1/ERx99BADQarUAAIfD0eq6iIjaw9GjR9GvXz/069cPADBv3jz069cPb7zxBgBg9erVmDp1Kl588UUkJiZiwoQJOHToEGJjYwEAKpUKW7ZsQVhYGIYNG4Zx48YhKSkJ69ata3UtfGJBREQt9vvf/x7Lli3D7NmzMWvWLJw6dQpvvvkm5s2bB5VKBYPBgGeffRYvv/wyzGYzIiMj8dprr0Gl+uV7rJZ8g9Yab775JkaNGoWEhAQ89dRTsNvt+PLLL/HKK6/goYcewsSJE/H8889j5cqVMBqNmD9/PmJiYjBx4kQAwNy5c5GVlYVu3bqhrKwMu3btcoaOuLg4SJKErVu3YuzYsQgICLijpypERG1l+PDhzT4t9vPzw8KFC7Fw4cIm94mOjnYOVuENPrEgIqIWi4mJwfbt23H48GH06dMHM2bMwLPPPovXX3/duc97772HYcOGYcKECRg9ejSGDBmClJQUl/e53TdorTF8+HBs2LABmzdvRt++fTFy5EiXJxSrV69GSkoKHnvsMaSnp0MIge3btzubezkcDsycORNJSUnIzMxEYmIili9f7jzfhQsXYv78+YiMjMSsWbPu5NdGRPRAkERLGsQSERERERE1g08siIiIiIjIawwWRETk05KTk10mdrp5+fTTT5Uuj4iIfsamUERE5NPy8/Ods2TfKjIyEkajsZ0rIiIiTxgsiIiIiIjIa2wKRUREREREXmOwICIiIiIirzFYEBERERGR1xgsiIiIiIjIawwWRERERETkNQYLIiIiIiLyGoMFERERERF5jcGCiIiIiIi89v8BdlVf96DRUYcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 5))\n", + "for op, grp in df.groupby('operator'):\n", + " ax.plot(grp['model_cost'], grp['real_time_ms'], marker='o', label=op)\n", + "\n", + "ax.set_xlabel('model_cost')\n", + "ax.set_ylabel('real_time (ms)')\n", + "ax.set_title('Operator cost model vs measured time')\n", + "ax.legend()\n", + "plt.tight_layout()\n", + "plt.show()" + ] } ], "metadata": { @@ -115,7 +1140,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.7" + "version": "3.13.13" } }, "nbformat": 4, From cd2e6a8bd70a07a218a5984c0762e9acef5317c2 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 31 May 2026 20:44:15 +0300 Subject: [PATCH 070/120] Update coefficients --- benchmarks/operator_cost.cpp | 100 +- research/research.ipynb | 5015 ++++++++++++++++-- src/stewkk/sql/logic/optimizer/optimizer.cpp | 36 +- 3 files changed, 4586 insertions(+), 565 deletions(-) diff --git a/benchmarks/operator_cost.cpp b/benchmarks/operator_cost.cpp index 3e94ff5..c6426f3 100644 --- a/benchmarks/operator_cost.cpp +++ b/benchmarks/operator_cost.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -99,6 +100,15 @@ std::shared_ptr MakeTables(int64_t rows_t, int64_t rows_u = 0 return tables; } +std::shared_ptr MakeSortTables(int64_t rows) { + auto tables = std::make_shared(); + auto table = MakeTable("t", rows); + std::mt19937 generator{0}; + std::shuffle(table.tuples.begin(), table.tuples.end(), generator); + tables->emplace("t", std::move(table)); + return tables; +} + class InMemorySequentialScanner { public: explicit InMemorySequentialScanner(std::shared_ptr tables) @@ -157,26 +167,44 @@ Relation RunPlan(const PhysicalPlanNode& plan, std::shared_ptr(kBufSize) - 1) / static_cast(kBufSize); +int64_t SortModelCost(int64_t rows) { + return 11 * (rows > 1 ? rows * static_cast(std::bit_width(static_cast(rows))) : rows); +} + +int64_t FindSortRowsForTargetCost(int64_t target_cost) { + int64_t best_rows = 1; + for (int64_t rows = 2; SortModelCost(rows) <= 2 * target_cost; ++rows) { + if (std::abs(SortModelCost(rows) - target_cost) + < std::abs(SortModelCost(best_rows) - target_cost)) { + best_rows = rows; + } + } + return best_rows; } -int64_t SortModelCost(int64_t rows) { - return rows > 1 ? rows * static_cast(std::bit_width(static_cast(rows))) : rows; +int64_t DivideRounded(int64_t value, int64_t divisor) { + return std::max(1, (value + divisor / 2) / divisor); +} + +int64_t SqrtRounded(int64_t value) { + const auto floor = static_cast(std::sqrt(value)); + return value - floor * floor < (floor + 1) * (floor + 1) - value ? floor : floor + 1; } void SetUnaryCounters(benchmark::State& state, int64_t rows, int64_t model_cost, - int64_t output_rows) { + int64_t plan_cost, int64_t output_rows) { state.counters["rows"] = static_cast(rows); state.counters["model_cost"] = static_cast(model_cost); + state.counters["plan_cost"] = static_cast(plan_cost); state.counters["output_rows"] = static_cast(output_rows); } void SetBinaryCounters(benchmark::State& state, int64_t lhs_rows, int64_t rhs_rows, - int64_t model_cost, int64_t output_rows) { + int64_t model_cost, int64_t plan_cost, int64_t output_rows) { state.counters["lhs_rows"] = static_cast(lhs_rows); state.counters["rhs_rows"] = static_cast(rhs_rows); state.counters["model_cost"] = static_cast(model_cost); + state.counters["plan_cost"] = static_cast(plan_cost); state.counters["output_rows"] = static_cast(output_rows); } @@ -196,7 +224,7 @@ void BM_OperatorSeqScan(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetUnaryCounters(state, rows, rows, rows); + SetUnaryCounters(state, rows, 100 * rows, 100 * rows, rows); } void BM_OperatorFilter(benchmark::State& state) { @@ -217,7 +245,7 @@ void BM_OperatorFilter(benchmark::State& state) { const int64_t full_cycles = rows / 1024; const int64_t tail = rows % 1024; const int64_t output_rows = full_cycles * kThreshold + std::min(tail, kThreshold); - SetUnaryCounters(state, rows, rows, output_rows); + SetUnaryCounters(state, rows, 100 * rows, 200 * rows, output_rows); } void BM_OperatorProjection(benchmark::State& state) { @@ -238,15 +266,15 @@ void BM_OperatorProjection(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetUnaryCounters(state, rows, rows, rows); + SetUnaryCounters(state, rows, 22 * rows, 122 * rows, rows); } void BM_OperatorSort(benchmark::State& state) { const int64_t rows = state.range(0); - auto tables = MakeTables(rows); + auto tables = MakeSortTables(rows); auto plan = PhysicalPlanNode{PhysicalSort{ .source = PlanPtr(Scan("t")), - .keys = SortOrder{{SortKey{.table = "t", .column = "v", .dir = Direction::kAsc}}}, + .keys = SortOrder{{SortKey{.table = "t", .column = "id", .dir = Direction::kAsc}}}, }}; SuppressClog(); @@ -255,7 +283,7 @@ void BM_OperatorSort(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetUnaryCounters(state, rows, SortModelCost(rows), rows); + SetUnaryCounters(state, rows, SortModelCost(rows), SortModelCost(rows) + 100 * rows, rows); } void BM_OperatorAggregation(benchmark::State& state) { @@ -273,7 +301,7 @@ void BM_OperatorAggregation(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetUnaryCounters(state, rows, rows, rows); + SetUnaryCounters(state, rows, 510 * rows, 610 * rows, rows); } void BM_OperatorNestedLoopJoin(benchmark::State& state) { @@ -293,7 +321,8 @@ void BM_OperatorNestedLoopJoin(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetBinaryCounters(state, lhs_rows, rhs_rows, lhs_rows * rhs_rows, + SetBinaryCounters(state, lhs_rows, rhs_rows, 70 * lhs_rows * rhs_rows, + 70 * lhs_rows * rhs_rows + 100 * (lhs_rows + rhs_rows), std::min(lhs_rows, rhs_rows)); } @@ -312,7 +341,8 @@ void BM_OperatorNestedLoopCrossJoin(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetBinaryCounters(state, lhs_rows, rhs_rows, CeilPages(lhs_rows) * (1 + CeilPages(rhs_rows)), + SetBinaryCounters(state, lhs_rows, rhs_rows, 104 * lhs_rows * rhs_rows, + 104 * lhs_rows * rhs_rows + 100 * (lhs_rows + rhs_rows), lhs_rows * rhs_rows); } @@ -333,16 +363,42 @@ void BM_OperatorHashJoin(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetBinaryCounters(state, lhs_rows, rhs_rows, lhs_rows + rhs_rows, + SetBinaryCounters(state, lhs_rows, rhs_rows, 69 * (lhs_rows + rhs_rows), + 169 * (lhs_rows + rhs_rows), std::min(lhs_rows, rhs_rows)); } void RegisterUnary(void (*benchmark_fn)(benchmark::State&), const char* name) { - for (int64_t rows : {1024, 4096, 16384, 65536, 262144}) { + for (int64_t rows : {1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144}) { benchmark::RegisterBenchmark(name, benchmark_fn)->Arg(rows)->UseRealTime(); } } +void RegisterCostMatched(int64_t target_cost) { + const auto prefix = "OperatorCostMatched/target_cost:" + std::to_string(target_cost) + "/"; + const auto register_unary = [&](const char* name, void (*benchmark_fn)(benchmark::State&), + int64_t rows) { + benchmark::RegisterBenchmark((prefix + name).c_str(), benchmark_fn)->Arg(rows)->UseRealTime(); + }; + const auto register_binary = [&](const char* name, void (*benchmark_fn)(benchmark::State&), + int64_t rows) { + benchmark::RegisterBenchmark((prefix + name).c_str(), benchmark_fn) + ->Args({rows, rows}) + ->UseRealTime(); + }; + + register_unary("SeqScan", BM_OperatorSeqScan, DivideRounded(target_cost, 100)); + register_unary("Filter", BM_OperatorFilter, DivideRounded(target_cost, 100)); + register_unary("Projection", BM_OperatorProjection, DivideRounded(target_cost, 22)); + register_unary("Sort", BM_OperatorSort, FindSortRowsForTargetCost(target_cost)); + register_unary("Aggregation", BM_OperatorAggregation, DivideRounded(target_cost, 510)); + register_binary("HashJoin", BM_OperatorHashJoin, DivideRounded(target_cost, 2 * 69)); + register_binary("NestedLoopJoin", BM_OperatorNestedLoopJoin, + SqrtRounded(DivideRounded(target_cost, 70))); + register_binary("NestedLoopCrossJoin", BM_OperatorNestedLoopCrossJoin, + SqrtRounded(DivideRounded(target_cost, 104))); +} + struct OperatorCostRegistration { OperatorCostRegistration() { RegisterUnary(BM_OperatorSeqScan, "OperatorCost/SeqScan"); @@ -351,22 +407,26 @@ struct OperatorCostRegistration { RegisterUnary(BM_OperatorSort, "OperatorCost/Sort"); RegisterUnary(BM_OperatorAggregation, "OperatorCost/Aggregation"); - for (auto size : {1024, 4096, 16384, 65536}) { + for (auto size : {1024, 2048, 4096, 8192, 16384, 32768, 65536}) { benchmark::RegisterBenchmark("OperatorCost/HashJoin", BM_OperatorHashJoin) ->Args({size, size}) ->UseRealTime(); } - for (auto size : {128, 256, 512, 1024}) { + for (auto size : {64, 128, 256, 512, 1024, 2048}) { benchmark::RegisterBenchmark("OperatorCost/NestedLoopJoin", BM_OperatorNestedLoopJoin) ->Args({size, size}) ->UseRealTime(); } - for (auto size : {64, 128, 256, 512}) { + for (auto size : {32, 64, 128, 256, 512, 1024}) { benchmark::RegisterBenchmark("OperatorCost/NestedLoopCrossJoin", BM_OperatorNestedLoopCrossJoin) ->Args({size, size}) ->UseRealTime(); } + + for (auto target_cost : {640000, 1000000, 3240000, 6760000, 12250000, 26010000}) { + RegisterCostMatched(target_cost); + } } }; diff --git a/research/research.ipynb b/research/research.ipynb index 57a595b..b205b4c 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": 1, "id": "f336c923", "metadata": {}, "outputs": [ @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-05-30T19:44:06+03:00\n", + "2026-05-31T16:14:53+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -18,59 +18,92 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 0.78, 1.77, 2.40\n", - "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", - "-------------------------------------------------------------------------------------------------------------\n", - "Benchmark Time CPU Iterations UserCounters...\n", - "-------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCost/SeqScan/1024/real_time \u001b[m\u001b[0;33m 49602 ns 49352 ns \u001b[m\u001b[0;36m 12617\u001b[m model_cost=1.024k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time \u001b[m\u001b[0;33m 217833 ns 215541 ns \u001b[m\u001b[0;36m 3460\u001b[m model_cost=4.096k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time \u001b[m\u001b[0;33m 1000898 ns 992381 ns \u001b[m\u001b[0;36m 643\u001b[m model_cost=16.384k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time \u001b[m\u001b[0;33m 5791037 ns 5735118 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=65.536k\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time \u001b[m\u001b[0;33m 26528860 ns 26162456 ns \u001b[m\u001b[0;36m 29\u001b[m model_cost=262.144k\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time \u001b[m\u001b[0;33m 93398 ns 92982 ns \u001b[m\u001b[0;36m 7344\u001b[m model_cost=1.024k\u001b[m output_rows=512\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time \u001b[m\u001b[0;33m 320979 ns 319410 ns \u001b[m\u001b[0;36m 2181\u001b[m model_cost=4.096k\u001b[m output_rows=2.048k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time \u001b[m\u001b[0;33m 1286237 ns 1278126 ns \u001b[m\u001b[0;36m 515\u001b[m model_cost=16.384k\u001b[m output_rows=8.192k\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time \u001b[m\u001b[0;33m 5559294 ns 5526669 ns \u001b[m\u001b[0;36m 118\u001b[m model_cost=65.536k\u001b[m output_rows=32.768k\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time \u001b[m\u001b[0;33m 24117997 ns 23984381 ns \u001b[m\u001b[0;36m 29\u001b[m model_cost=262.144k\u001b[m output_rows=131.072k\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time \u001b[m\u001b[0;33m 122635 ns 122065 ns \u001b[m\u001b[0;36m 5688\u001b[m model_cost=1.024k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time \u001b[m\u001b[0;33m 446143 ns 444091 ns \u001b[m\u001b[0;36m 1570\u001b[m model_cost=4.096k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time \u001b[m\u001b[0;33m 1848225 ns 1837810 ns \u001b[m\u001b[0;36m 296\u001b[m model_cost=16.384k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time \u001b[m\u001b[0;33m 8299086 ns 8240248 ns \u001b[m\u001b[0;36m 79\u001b[m model_cost=65.536k\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time \u001b[m\u001b[0;33m 39251824 ns 38972836 ns \u001b[m\u001b[0;36m 17\u001b[m model_cost=262.144k\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time \u001b[m\u001b[0;33m 112101 ns 111640 ns \u001b[m\u001b[0;36m 5396\u001b[m model_cost=11.264k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time \u001b[m\u001b[0;33m 654773 ns 650822 ns \u001b[m\u001b[0;36m 883\u001b[m model_cost=53.248k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time \u001b[m\u001b[0;33m 2819925 ns 2803767 ns \u001b[m\u001b[0;36m 242\u001b[m model_cost=245.76k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time \u001b[m\u001b[0;33m 15388325 ns 15277274 ns \u001b[m\u001b[0;36m 44\u001b[m model_cost=1.11411M\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time \u001b[m\u001b[0;33m 101966347 ns 101224833 ns \u001b[m\u001b[0;36m 7\u001b[m model_cost=4.98074M\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time \u001b[m\u001b[0;33m 360181 ns 358344 ns \u001b[m\u001b[0;36m 2003\u001b[m model_cost=1.024k\u001b[m output_rows=1.024k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time \u001b[m\u001b[0;33m 1595273 ns 1584971 ns \u001b[m\u001b[0;36m 494\u001b[m model_cost=4.096k\u001b[m output_rows=4.096k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time \u001b[m\u001b[0;33m 7530658 ns 7483873 ns \u001b[m\u001b[0;36m 86\u001b[m model_cost=16.384k\u001b[m output_rows=16.384k\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time \u001b[m\u001b[0;33m 63945720 ns 63470390 ns \u001b[m\u001b[0;36m 11\u001b[m model_cost=65.536k\u001b[m output_rows=65.536k\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time \u001b[m\u001b[0;33m 375139164 ns 372296986 ns \u001b[m\u001b[0;36m 2\u001b[m model_cost=262.144k\u001b[m output_rows=262.144k\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time \u001b[m\u001b[0;33m 205582 ns 204648 ns \u001b[m\u001b[0;36m 3372\u001b[m lhs_rows=1.024k\u001b[m model_cost=2.048k\u001b[m output_rows=1.024k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time \u001b[m\u001b[0;33m 835751 ns 830190 ns \u001b[m\u001b[0;36m 875\u001b[m lhs_rows=4.096k\u001b[m model_cost=8.192k\u001b[m output_rows=4.096k\u001b[m rhs_rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time \u001b[m\u001b[0;33m 3621875 ns 3595669 ns \u001b[m\u001b[0;36m 213\u001b[m lhs_rows=16.384k\u001b[m model_cost=32.768k\u001b[m output_rows=16.384k\u001b[m rhs_rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time \u001b[m\u001b[0;33m 17024603 ns 16899541 ns \u001b[m\u001b[0;36m 39\u001b[m lhs_rows=65.536k\u001b[m model_cost=131.072k\u001b[m output_rows=65.536k\u001b[m rhs_rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time \u001b[m\u001b[0;33m 1354150 ns 1347082 ns \u001b[m\u001b[0;36m 513\u001b[m lhs_rows=128\u001b[m model_cost=16.384k\u001b[m output_rows=128\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time \u001b[m\u001b[0;33m 4866823 ns 4842638 ns \u001b[m\u001b[0;36m 144\u001b[m lhs_rows=256\u001b[m model_cost=65.536k\u001b[m output_rows=256\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time \u001b[m\u001b[0;33m 18213617 ns 18143285 ns \u001b[m\u001b[0;36m 38\u001b[m lhs_rows=512\u001b[m model_cost=262.144k\u001b[m output_rows=512\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time \u001b[m\u001b[0;33m 71634074 ns 71360157 ns \u001b[m\u001b[0;36m 10\u001b[m lhs_rows=1.024k\u001b[m model_cost=1.04858M\u001b[m output_rows=1.024k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time \u001b[m\u001b[0;33m 365470 ns 358505 ns \u001b[m\u001b[0;36m 1931\u001b[m lhs_rows=64\u001b[m model_cost=2\u001b[m output_rows=4.096k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time \u001b[m\u001b[0;33m 1144605 ns 1133688 ns \u001b[m\u001b[0;36m 590\u001b[m lhs_rows=128\u001b[m model_cost=2\u001b[m output_rows=16.384k\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time \u001b[m\u001b[0;33m 5925916 ns 5857764 ns \u001b[m\u001b[0;36m 106\u001b[m lhs_rows=256\u001b[m model_cost=2\u001b[m output_rows=65.536k\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time \u001b[m\u001b[0;33m 26708787 ns 26467263 ns \u001b[m\u001b[0;36m 26\u001b[m lhs_rows=512\u001b[m model_cost=2\u001b[m output_rows=262.144k\u001b[m rhs_rows=512\u001b[m\n", + "Load Average: 4.44, 2.58, 1.61\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "---------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "---------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCost/SeqScan/1024/real_time \u001b[m\u001b[0;33m 79997 ns 78049 ns \u001b[m\u001b[0;36m 8741\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time \u001b[m\u001b[0;33m 144761 ns 142224 ns \u001b[m\u001b[0;36m 5232\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time \u001b[m\u001b[0;33m 338605 ns 327024 ns \u001b[m\u001b[0;36m 2056\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time \u001b[m\u001b[0;33m 813515 ns 787366 ns \u001b[m\u001b[0;36m 726\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time \u001b[m\u001b[0;33m 2055770 ns 1963689 ns \u001b[m\u001b[0;36m 575\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time \u001b[m\u001b[0;33m 3635850 ns 3580957 ns \u001b[m\u001b[0;36m 159\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time \u001b[m\u001b[0;33m 7848736 ns 7709842 ns \u001b[m\u001b[0;36m 101\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time \u001b[m\u001b[0;33m 14549342 ns 14285211 ns \u001b[m\u001b[0;36m 48\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time \u001b[m\u001b[0;33m 46805723 ns 44962657 ns \u001b[m\u001b[0;36m 24\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time \u001b[m\u001b[0;33m 110848 ns 109579 ns \u001b[m\u001b[0;36m 6051\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time \u001b[m\u001b[0;33m 175851 ns 174124 ns \u001b[m\u001b[0;36m 4178\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time \u001b[m\u001b[0;33m 315093 ns 312199 ns \u001b[m\u001b[0;36m 2166\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time \u001b[m\u001b[0;33m 673538 ns 667479 ns \u001b[m\u001b[0;36m 1078\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time \u001b[m\u001b[0;33m 1303801 ns 1294736 ns \u001b[m\u001b[0;36m 456\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time \u001b[m\u001b[0;33m 2952031 ns 2928449 ns \u001b[m\u001b[0;36m 256\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time \u001b[m\u001b[0;33m 7472369 ns 7365271 ns \u001b[m\u001b[0;36m 102\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time \u001b[m\u001b[0;33m 14015431 ns 13847255 ns \u001b[m\u001b[0;36m 58\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time \u001b[m\u001b[0;33m 27073700 ns 26782809 ns \u001b[m\u001b[0;36m 24\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time \u001b[m\u001b[0;33m 131940 ns 130699 ns \u001b[m\u001b[0;36m 5179\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time \u001b[m\u001b[0;33m 226190 ns 225141 ns \u001b[m\u001b[0;36m 2989\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time \u001b[m\u001b[0;33m 514393 ns 509783 ns \u001b[m\u001b[0;36m 1536\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time \u001b[m\u001b[0;33m 945676 ns 940030 ns \u001b[m\u001b[0;36m 718\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time \u001b[m\u001b[0;33m 1904450 ns 1892580 ns \u001b[m\u001b[0;36m 366\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time \u001b[m\u001b[0;33m 3678534 ns 3656980 ns \u001b[m\u001b[0;36m 197\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time \u001b[m\u001b[0;33m 7472132 ns 7428647 ns \u001b[m\u001b[0;36m 93\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time \u001b[m\u001b[0;33m 15381800 ns 15295836 ns \u001b[m\u001b[0;36m 46\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time \u001b[m\u001b[0;33m 41055491 ns 40717845 ns \u001b[m\u001b[0;36m 19\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time \u001b[m\u001b[0;33m 162085 ns 160916 ns \u001b[m\u001b[0;36m 4340\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time \u001b[m\u001b[0;33m 346371 ns 344873 ns \u001b[m\u001b[0;36m 2062\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time \u001b[m\u001b[0;33m 800255 ns 792542 ns \u001b[m\u001b[0;36m 883\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time \u001b[m\u001b[0;33m 1840524 ns 1830438 ns \u001b[m\u001b[0;36m 379\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time \u001b[m\u001b[0;33m 4673407 ns 4626060 ns \u001b[m\u001b[0;36m 164\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time \u001b[m\u001b[0;33m 10560526 ns 10441042 ns \u001b[m\u001b[0;36m 60\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time \u001b[m\u001b[0;33m 27512323 ns 27313637 ns \u001b[m\u001b[0;36m 26\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time \u001b[m\u001b[0;33m 76878972 ns 76256341 ns \u001b[m\u001b[0;36m 9\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time \u001b[m\u001b[0;33m 210729772 ns 208907082 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time \u001b[m\u001b[0;33m 367198 ns 365161 ns \u001b[m\u001b[0;36m 2007\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time \u001b[m\u001b[0;33m 714949 ns 711449 ns \u001b[m\u001b[0;36m 1030\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time \u001b[m\u001b[0;33m 1378878 ns 1372416 ns \u001b[m\u001b[0;36m 506\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time \u001b[m\u001b[0;33m 2970154 ns 2953446 ns \u001b[m\u001b[0;36m 233\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time \u001b[m\u001b[0;33m 7566779 ns 7487774 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time \u001b[m\u001b[0;33m 21294147 ns 21136412 ns \u001b[m\u001b[0;36m 28\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time \u001b[m\u001b[0;33m 58811825 ns 58334161 ns \u001b[m\u001b[0;36m 11\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time \u001b[m\u001b[0;33m 145317421 ns 144445410 ns \u001b[m\u001b[0;36m 5\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time \u001b[m\u001b[0;33m 341980080 ns 339244361 ns \u001b[m\u001b[0;36m 2\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time \u001b[m\u001b[0;33m 203598 ns 202661 ns \u001b[m\u001b[0;36m 3434\u001b[m lhs_rows=1.024k\u001b[m model_cost=141.312k\u001b[m output_rows=1.024k\u001b[m plan_cost=346.112k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time \u001b[m\u001b[0;33m 383152 ns 381209 ns \u001b[m\u001b[0;36m 1850\u001b[m lhs_rows=2.048k\u001b[m model_cost=282.624k\u001b[m output_rows=2.048k\u001b[m plan_cost=692.224k\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time \u001b[m\u001b[0;33m 762752 ns 757843 ns \u001b[m\u001b[0;36m 903\u001b[m lhs_rows=4.096k\u001b[m model_cost=565.248k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.38445M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time \u001b[m\u001b[0;33m 1662913 ns 1651698 ns \u001b[m\u001b[0;36m 461\u001b[m lhs_rows=8.192k\u001b[m model_cost=1.1305M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.7689M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time \u001b[m\u001b[0;33m 4006295 ns 3972214 ns \u001b[m\u001b[0;36m 191\u001b[m lhs_rows=16.384k\u001b[m model_cost=2.26099M\u001b[m output_rows=16.384k\u001b[m plan_cost=5.53779M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time \u001b[m\u001b[0;33m 8204329 ns 8095465 ns \u001b[m\u001b[0;36m 82\u001b[m lhs_rows=32.768k\u001b[m model_cost=4.52198M\u001b[m output_rows=32.768k\u001b[m plan_cost=11.0756M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time \u001b[m\u001b[0;33m 16943075 ns 16813719 ns \u001b[m\u001b[0;36m 43\u001b[m lhs_rows=65.536k\u001b[m model_cost=9.04397M\u001b[m output_rows=65.536k\u001b[m plan_cost=22.1512M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time \u001b[m\u001b[0;33m 457941 ns 454351 ns \u001b[m\u001b[0;36m 1627\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time \u001b[m\u001b[0;33m 1326260 ns 1316630 ns \u001b[m\u001b[0;36m 462\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time \u001b[m\u001b[0;33m 4755416 ns 4716712 ns \u001b[m\u001b[0;36m 148\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time \u001b[m\u001b[0;33m 18824481 ns 18740105 ns \u001b[m\u001b[0;36m 39\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time \u001b[m\u001b[0;33m 69821057 ns 69534977 ns \u001b[m\u001b[0;36m 10\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time \u001b[m\u001b[0;33m 275065905 ns 274101250 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time \u001b[m\u001b[0;33m 161658 ns 160319 ns \u001b[m\u001b[0;36m 4263\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time \u001b[m\u001b[0;33m 391432 ns 386106 ns \u001b[m\u001b[0;36m 1896\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time \u001b[m\u001b[0;33m 1644326 ns 1610732 ns \u001b[m\u001b[0;36m 331\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time \u001b[m\u001b[0;33m 6994495 ns 6864530 ns \u001b[m\u001b[0;36m 87\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time \u001b[m\u001b[0;33m 27484957 ns 27127956 ns \u001b[m\u001b[0;36m 25\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time \u001b[m\u001b[0;33m 130720901 ns 129132758 ns \u001b[m\u001b[0;36m 5\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", "\u001b[m" ] } ], "source": [ - "!cd ~/c/iu9-sql-compiler/ && ./build-release/bin/benchmarks --benchmark_filter='OperatorCost*' --benchmark_out=/tmp/operator-cost.json --benchmark_out_format=json" + "!cd ~/c/iu9-sql-compiler/ && ./build-release/bin/benchmarks --benchmark_filter='^OperatorCost/' --benchmark_out=/tmp/operator-cost.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 2, "id": "fb1ddd67", "metadata": {}, "outputs": [ @@ -78,7 +111,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "-rw-r--r-- 1 st users 22146 May 30 19:44 operator-cost.json\n", + "-rw-r--r-- 1 st users 40311 May 31 16:16 operator-cost.json\n", + "-rw-r--r-- 1 st users 33223 May 31 16:03 operator-cost-matched-calibrated-smoke.json\n", + "-rw-r--r-- 1 st users 33307 May 31 16:13 operator-cost-matched.json\n", + "-rw-r--r-- 1 st users 6149 May 31 15:08 operator-cost-matched-plan-cost-smoke.json\n", "-rw-r--r-- 1 st users 2010 May 30 19:02 operator-cost-smoke.json\n" ] } @@ -89,14 +125,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "2d033649", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'context': {'date': '2026-05-30T19:44:06+03:00',\n", + "{'context': {'date': '2026-05-31T16:14:53+03:00',\n", " 'host_name': 'nixos',\n", " 'executable': './build-release/bin/benchmarks',\n", " 'num_cpus': 8,\n", @@ -106,7 +142,7 @@ " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", - " 'load_avg': [0.782715, 1.77148, 2.39893],\n", + " 'load_avg': [4.44287, 2.58252, 1.60791],\n", " 'library_version': 'v1.9.0',\n", " 'library_build_type': 'release',\n", " 'json_schema_version': 1},\n", @@ -118,240 +154,464 @@ " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 12617,\n", - " 'real_time': 49602.278037666736,\n", - " 'cpu_time': 49352.30649124199,\n", + " 'iterations': 8741,\n", + " 'real_time': 79996.77325230725,\n", + " 'cpu_time': 78049.49124814094,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 1024.0,\n", + " 'model_cost': 102400.0,\n", " 'output_rows': 1024.0,\n", + " 'plan_cost': 102400.0,\n", " 'rows': 1024.0},\n", - " {'name': 'OperatorCost/SeqScan/4096/real_time',\n", + " {'name': 'OperatorCost/SeqScan/2048/real_time',\n", " 'family_index': 1,\n", " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5232,\n", + " 'real_time': 144761.2392951388,\n", + " 'cpu_time': 142223.85569571867,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 204800.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 204800.0,\n", + " 'rows': 2048.0},\n", + " {'name': 'OperatorCost/SeqScan/4096/real_time',\n", + " 'family_index': 2,\n", + " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/SeqScan/4096/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 3460,\n", - " 'real_time': 217833.0014451714,\n", - " 'cpu_time': 215540.5517341041,\n", + " 'iterations': 2056,\n", + " 'real_time': 338605.32199002034,\n", + " 'cpu_time': 327024.20865758776,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 4096.0,\n", + " 'model_cost': 409600.0,\n", " 'output_rows': 4096.0,\n", + " 'plan_cost': 409600.0,\n", " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/SeqScan/8192/real_time',\n", + " 'family_index': 3,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 726,\n", + " 'real_time': 813515.0275632519,\n", + " 'cpu_time': 787365.6776859501,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 819200.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 819200.0,\n", + " 'rows': 8192.0},\n", " {'name': 'OperatorCost/SeqScan/16384/real_time',\n", - " 'family_index': 2,\n", + " 'family_index': 4,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/SeqScan/16384/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 643,\n", - " 'real_time': 1000897.6454201117,\n", - " 'cpu_time': 992380.8351477447,\n", + " 'iterations': 575,\n", + " 'real_time': 2055769.5026155156,\n", + " 'cpu_time': 1963688.9999999995,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 16384.0,\n", + " 'model_cost': 1638400.0,\n", " 'output_rows': 16384.0,\n", + " 'plan_cost': 1638400.0,\n", " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/SeqScan/32768/real_time',\n", + " 'family_index': 5,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 159,\n", + " 'real_time': 3635850.289299112,\n", + " 'cpu_time': 3580956.962264152,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3276800.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 3276800.0,\n", + " 'rows': 32768.0},\n", " {'name': 'OperatorCost/SeqScan/65536/real_time',\n", - " 'family_index': 3,\n", + " 'family_index': 6,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/SeqScan/65536/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 94,\n", - " 'real_time': 5791036.819186473,\n", - " 'cpu_time': 5735117.925531914,\n", + " 'iterations': 101,\n", + " 'real_time': 7848735.722813451,\n", + " 'cpu_time': 7709841.534653468,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 65536.0,\n", + " 'model_cost': 6553600.0,\n", " 'output_rows': 65536.0,\n", + " 'plan_cost': 6553600.0,\n", " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/SeqScan/131072/real_time',\n", + " 'family_index': 7,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 48,\n", + " 'real_time': 14549342.416406339,\n", + " 'cpu_time': 14285210.916666662,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 13107200.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 13107200.0,\n", + " 'rows': 131072.0},\n", " {'name': 'OperatorCost/SeqScan/262144/real_time',\n", - " 'family_index': 4,\n", + " 'family_index': 8,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/SeqScan/262144/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 29,\n", - " 'real_time': 26528860.482734483,\n", - " 'cpu_time': 26162455.5862069,\n", + " 'iterations': 24,\n", + " 'real_time': 46805722.70869258,\n", + " 'cpu_time': 44962657.16666666,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 262144.0,\n", + " 'model_cost': 26214400.0,\n", " 'output_rows': 262144.0,\n", + " 'plan_cost': 26214400.0,\n", " 'rows': 262144.0},\n", " {'name': 'OperatorCost/Filter/1024/real_time',\n", - " 'family_index': 5,\n", + " 'family_index': 9,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Filter/1024/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 7344,\n", - " 'real_time': 93397.88044690267,\n", - " 'cpu_time': 92981.83809912855,\n", + " 'iterations': 6051,\n", + " 'real_time': 110847.93670647572,\n", + " 'cpu_time': 109579.46868286227,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 1024.0,\n", + " 'model_cost': 102400.0,\n", " 'output_rows': 512.0,\n", + " 'plan_cost': 204800.0,\n", " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Filter/2048/real_time',\n", + " 'family_index': 10,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4178,\n", + " 'real_time': 175850.847057794,\n", + " 'cpu_time': 174124.4133556728,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 204800.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 409600.0,\n", + " 'rows': 2048.0},\n", " {'name': 'OperatorCost/Filter/4096/real_time',\n", - " 'family_index': 6,\n", + " 'family_index': 11,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Filter/4096/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 2181,\n", - " 'real_time': 320979.35579735413,\n", - " 'cpu_time': 319409.67125171947,\n", + " 'iterations': 2166,\n", + " 'real_time': 315093.1071093506,\n", + " 'cpu_time': 312199.11911357404,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 4096.0,\n", + " 'model_cost': 409600.0,\n", " 'output_rows': 2048.0,\n", + " 'plan_cost': 819200.0,\n", " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Filter/8192/real_time',\n", + " 'family_index': 12,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1078,\n", + " 'real_time': 673538.2050130877,\n", + " 'cpu_time': 667478.5055658632,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 819200.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 1638400.0,\n", + " 'rows': 8192.0},\n", " {'name': 'OperatorCost/Filter/16384/real_time',\n", - " 'family_index': 7,\n", + " 'family_index': 13,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Filter/16384/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 515,\n", - " 'real_time': 1286236.7009731615,\n", - " 'cpu_time': 1278125.551456312,\n", + " 'iterations': 456,\n", + " 'real_time': 1303801.1556841012,\n", + " 'cpu_time': 1294735.6688596508,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 16384.0,\n", + " 'model_cost': 1638400.0,\n", " 'output_rows': 8192.0,\n", + " 'plan_cost': 3276800.0,\n", " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Filter/32768/real_time',\n", + " 'family_index': 14,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 256,\n", + " 'real_time': 2952031.402287503,\n", + " 'cpu_time': 2928449.1679687495,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3276800.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 6553600.0,\n", + " 'rows': 32768.0},\n", " {'name': 'OperatorCost/Filter/65536/real_time',\n", - " 'family_index': 8,\n", + " 'family_index': 15,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Filter/65536/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 118,\n", - " 'real_time': 5559294.127108888,\n", - " 'cpu_time': 5526669.3644067785,\n", + " 'iterations': 102,\n", + " 'real_time': 7472368.745177792,\n", + " 'cpu_time': 7365271.343137254,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 65536.0,\n", + " 'model_cost': 6553600.0,\n", " 'output_rows': 32768.0,\n", + " 'plan_cost': 13107200.0,\n", " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Filter/131072/real_time',\n", + " 'family_index': 16,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 58,\n", + " 'real_time': 14015431.344762027,\n", + " 'cpu_time': 13847255.206896517,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 13107200.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 26214400.0,\n", + " 'rows': 131072.0},\n", " {'name': 'OperatorCost/Filter/262144/real_time',\n", - " 'family_index': 9,\n", + " 'family_index': 17,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Filter/262144/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 29,\n", - " 'real_time': 24117996.82760892,\n", - " 'cpu_time': 23984380.5172414,\n", + " 'iterations': 24,\n", + " 'real_time': 27073700.12528069,\n", + " 'cpu_time': 26782809.49999993,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 262144.0,\n", + " 'model_cost': 26214400.0,\n", " 'output_rows': 131072.0,\n", + " 'plan_cost': 52428800.0,\n", " 'rows': 262144.0},\n", " {'name': 'OperatorCost/Projection/1024/real_time',\n", - " 'family_index': 10,\n", + " 'family_index': 18,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Projection/1024/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 5688,\n", - " 'real_time': 122634.84564069705,\n", - " 'cpu_time': 122065.49367088616,\n", + " 'iterations': 5179,\n", + " 'real_time': 131939.9635067602,\n", + " 'cpu_time': 130698.92662676195,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 1024.0,\n", + " 'model_cost': 22528.0,\n", " 'output_rows': 1024.0,\n", + " 'plan_cost': 124928.0,\n", " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Projection/2048/real_time',\n", + " 'family_index': 19,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2989,\n", + " 'real_time': 226189.74138644213,\n", + " 'cpu_time': 225141.11843425847,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 45056.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 249856.0,\n", + " 'rows': 2048.0},\n", " {'name': 'OperatorCost/Projection/4096/real_time',\n", - " 'family_index': 11,\n", + " 'family_index': 20,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Projection/4096/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 1570,\n", - " 'real_time': 446143.1452197358,\n", - " 'cpu_time': 444090.5898089178,\n", + " 'iterations': 1536,\n", + " 'real_time': 514392.72525991936,\n", + " 'cpu_time': 509783.00585937523,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 4096.0,\n", + " 'model_cost': 90112.0,\n", " 'output_rows': 4096.0,\n", + " 'plan_cost': 499712.0,\n", " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Projection/8192/real_time',\n", + " 'family_index': 21,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 718,\n", + " 'real_time': 945676.4776974691,\n", + " 'cpu_time': 940029.7172701948,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 180224.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 999424.0,\n", + " 'rows': 8192.0},\n", " {'name': 'OperatorCost/Projection/16384/real_time',\n", - " 'family_index': 12,\n", + " 'family_index': 22,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Projection/16384/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 296,\n", - " 'real_time': 1848224.8141899125,\n", - " 'cpu_time': 1837810.4864864878,\n", + " 'iterations': 366,\n", + " 'real_time': 1904450.2732271452,\n", + " 'cpu_time': 1892580.4426229435,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 16384.0,\n", + " 'model_cost': 360448.0,\n", " 'output_rows': 16384.0,\n", + " 'plan_cost': 1998848.0,\n", " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Projection/32768/real_time',\n", + " 'family_index': 23,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 197,\n", + " 'real_time': 3678533.588763596,\n", + " 'cpu_time': 3656979.5431472077,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 720896.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 3997696.0,\n", + " 'rows': 32768.0},\n", " {'name': 'OperatorCost/Projection/65536/real_time',\n", - " 'family_index': 13,\n", + " 'family_index': 24,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Projection/65536/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 79,\n", - " 'real_time': 8299086.379775884,\n", - " 'cpu_time': 8240248.303797455,\n", + " 'iterations': 93,\n", + " 'real_time': 7472132.161285939,\n", + " 'cpu_time': 7428647.440860227,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 65536.0,\n", + " 'model_cost': 1441792.0,\n", " 'output_rows': 65536.0,\n", + " 'plan_cost': 7995392.0,\n", " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Projection/131072/real_time',\n", + " 'family_index': 25,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 46,\n", + " 'real_time': 15381800.043700343,\n", + " 'cpu_time': 15295836.478260862,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 2883584.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 15990784.0,\n", + " 'rows': 131072.0},\n", " {'name': 'OperatorCost/Projection/262144/real_time',\n", - " 'family_index': 14,\n", + " 'family_index': 26,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Projection/262144/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 17,\n", - " 'real_time': 39251824.35298613,\n", - " 'cpu_time': 38972835.58823522,\n", + " 'iterations': 19,\n", + " 'real_time': 41055490.73689249,\n", + " 'cpu_time': 40717845.26315775,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 262144.0,\n", + " 'model_cost': 5767168.0,\n", " 'output_rows': 262144.0,\n", + " 'plan_cost': 31981568.0,\n", " 'rows': 262144.0},\n", " {'name': 'OperatorCost/Sort/1024/real_time',\n", - " 'family_index': 15,\n", + " 'family_index': 27,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Sort/1024/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 5396,\n", - " 'real_time': 112101.02965182417,\n", - " 'cpu_time': 111640.11286137872,\n", + " 'iterations': 4340,\n", + " 'real_time': 162084.6043772993,\n", + " 'cpu_time': 160916.3817972354,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 11264.0,\n", + " 'model_cost': 123904.0,\n", " 'output_rows': 1024.0,\n", + " 'plan_cost': 226304.0,\n", " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Sort/2048/real_time',\n", + " 'family_index': 28,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2062,\n", + " 'real_time': 346371.44083838287,\n", + " 'cpu_time': 344873.1896217259,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 270336.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 475136.0,\n", + " 'rows': 2048.0},\n", " {'name': 'OperatorCost/Sort/4096/real_time',\n", - " 'family_index': 16,\n", + " 'family_index': 29,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Sort/4096/real_time',\n", " 'run_type': 'iteration',\n", @@ -359,104 +619,207 @@ " 'repetition_index': 0,\n", " 'threads': 1,\n", " 'iterations': 883,\n", - " 'real_time': 654773.3918506079,\n", - " 'cpu_time': 650821.6421291039,\n", + " 'real_time': 800255.2842602158,\n", + " 'cpu_time': 792542.4144960329,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 53248.0,\n", + " 'model_cost': 585728.0,\n", " 'output_rows': 4096.0,\n", + " 'plan_cost': 995328.0,\n", " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Sort/8192/real_time',\n", + " 'family_index': 30,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 379,\n", + " 'real_time': 1840523.8838987988,\n", + " 'cpu_time': 1830438.0501319245,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1261568.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 2080768.0,\n", + " 'rows': 8192.0},\n", " {'name': 'OperatorCost/Sort/16384/real_time',\n", - " 'family_index': 17,\n", + " 'family_index': 31,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Sort/16384/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 242,\n", - " 'real_time': 2819925.21489853,\n", - " 'cpu_time': 2803767.210743795,\n", + " 'iterations': 164,\n", + " 'real_time': 4673407.487865827,\n", + " 'cpu_time': 4626059.615853649,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 245760.0,\n", + " 'model_cost': 2703360.0,\n", " 'output_rows': 16384.0,\n", + " 'plan_cost': 4341760.0,\n", " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Sort/32768/real_time',\n", + " 'family_index': 32,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 60,\n", + " 'real_time': 10560525.66661189,\n", + " 'cpu_time': 10441041.616666762,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 5767168.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 9043968.0,\n", + " 'rows': 32768.0},\n", " {'name': 'OperatorCost/Sort/65536/real_time',\n", - " 'family_index': 18,\n", + " 'family_index': 33,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Sort/65536/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 44,\n", - " 'real_time': 15388325.045436926,\n", - " 'cpu_time': 15277274.136363596,\n", + " 'iterations': 26,\n", + " 'real_time': 27512323.307746556,\n", + " 'cpu_time': 27313637.384615403,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 1114112.0,\n", + " 'model_cost': 12255232.0,\n", " 'output_rows': 65536.0,\n", + " 'plan_cost': 18808832.0,\n", " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Sort/131072/real_time',\n", + " 'family_index': 34,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 9,\n", + " 'real_time': 76878972.44533007,\n", + " 'cpu_time': 76256340.66666642,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 25952256.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 39059456.0,\n", + " 'rows': 131072.0},\n", " {'name': 'OperatorCost/Sort/262144/real_time',\n", - " 'family_index': 19,\n", + " 'family_index': 35,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Sort/262144/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 7,\n", - " 'real_time': 101966347.28552973,\n", - " 'cpu_time': 101224833.00000036,\n", + " 'iterations': 3,\n", + " 'real_time': 210729772.33173636,\n", + " 'cpu_time': 208907081.99999845,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 4980736.0,\n", + " 'model_cost': 54788096.0,\n", " 'output_rows': 262144.0,\n", + " 'plan_cost': 81002496.0,\n", " 'rows': 262144.0},\n", " {'name': 'OperatorCost/Aggregation/1024/real_time',\n", - " 'family_index': 20,\n", + " 'family_index': 36,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Aggregation/1024/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 2003,\n", - " 'real_time': 360181.31303291646,\n", - " 'cpu_time': 358343.55167248996,\n", + " 'iterations': 2007,\n", + " 'real_time': 367198.4265013294,\n", + " 'cpu_time': 365161.24813153857,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 1024.0,\n", + " 'model_cost': 522240.0,\n", " 'output_rows': 1024.0,\n", + " 'plan_cost': 624640.0,\n", " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Aggregation/2048/real_time',\n", + " 'family_index': 37,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1030,\n", + " 'real_time': 714949.2194214881,\n", + " 'cpu_time': 711449.0126213565,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1044480.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 1249280.0,\n", + " 'rows': 2048.0},\n", " {'name': 'OperatorCost/Aggregation/4096/real_time',\n", - " 'family_index': 21,\n", + " 'family_index': 38,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Aggregation/4096/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 494,\n", - " 'real_time': 1595273.4534462786,\n", - " 'cpu_time': 1584971.327935227,\n", + " 'iterations': 506,\n", + " 'real_time': 1378877.889329297,\n", + " 'cpu_time': 1372415.869565222,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 4096.0,\n", + " 'model_cost': 2088960.0,\n", " 'output_rows': 4096.0,\n", + " 'plan_cost': 2498560.0,\n", " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Aggregation/8192/real_time',\n", + " 'family_index': 39,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 233,\n", + " 'real_time': 2970153.62662511,\n", + " 'cpu_time': 2953445.8712446555,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4177920.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 4997120.0,\n", + " 'rows': 8192.0},\n", " {'name': 'OperatorCost/Aggregation/16384/real_time',\n", - " 'family_index': 22,\n", + " 'family_index': 40,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Aggregation/16384/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 86,\n", - " 'real_time': 7530658.232585559,\n", - " 'cpu_time': 7483872.790697673,\n", + " 'iterations': 94,\n", + " 'real_time': 7566778.521342054,\n", + " 'cpu_time': 7487773.585106401,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 16384.0,\n", + " 'model_cost': 8355840.0,\n", " 'output_rows': 16384.0,\n", + " 'plan_cost': 9994240.0,\n", " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Aggregation/32768/real_time',\n", + " 'family_index': 41,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 28,\n", + " 'real_time': 21294147.21431593,\n", + " 'cpu_time': 21136412.357142985,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 16711680.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 19988480.0,\n", + " 'rows': 32768.0},\n", " {'name': 'OperatorCost/Aggregation/65536/real_time',\n", - " 'family_index': 23,\n", + " 'family_index': 42,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Aggregation/65536/real_time',\n", " 'run_type': 'iteration',\n", @@ -464,14 +827,31 @@ " 'repetition_index': 0,\n", " 'threads': 1,\n", " 'iterations': 11,\n", - " 'real_time': 63945720.36383165,\n", - " 'cpu_time': 63470390.27272736,\n", + " 'real_time': 58811825.0902467,\n", + " 'cpu_time': 58334160.545455076,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 65536.0,\n", + " 'model_cost': 33423360.0,\n", " 'output_rows': 65536.0,\n", + " 'plan_cost': 39976960.0,\n", " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Aggregation/131072/real_time',\n", + " 'family_index': 43,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5,\n", + " 'real_time': 145317420.79998368,\n", + " 'cpu_time': 144445410.40000018,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 66846720.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 79953920.0,\n", + " 'rows': 131072.0},\n", " {'name': 'OperatorCost/Aggregation/262144/real_time',\n", - " 'family_index': 24,\n", + " 'family_index': 44,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/Aggregation/262144/real_time',\n", " 'run_type': 'iteration',\n", @@ -479,126 +859,202 @@ " 'repetition_index': 0,\n", " 'threads': 1,\n", " 'iterations': 2,\n", - " 'real_time': 375139163.5014443,\n", - " 'cpu_time': 372296986.0000003,\n", + " 'real_time': 341980079.50180906,\n", + " 'cpu_time': 339244360.5000004,\n", " 'time_unit': 'ns',\n", - " 'model_cost': 262144.0,\n", + " 'model_cost': 133693440.0,\n", " 'output_rows': 262144.0,\n", + " 'plan_cost': 159907840.0,\n", " 'rows': 262144.0},\n", " {'name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", - " 'family_index': 25,\n", + " 'family_index': 45,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 3372,\n", - " 'real_time': 205581.95996281473,\n", - " 'cpu_time': 204647.6450177935,\n", + " 'iterations': 3434,\n", + " 'real_time': 203597.65637682122,\n", + " 'cpu_time': 202661.13162492623,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 1024.0,\n", - " 'model_cost': 2048.0,\n", + " 'model_cost': 141312.0,\n", " 'output_rows': 1024.0,\n", + " 'plan_cost': 346112.0,\n", " 'rhs_rows': 1024.0},\n", + " {'name': 'OperatorCost/HashJoin/2048/2048/real_time',\n", + " 'family_index': 46,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/2048/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1850,\n", + " 'real_time': 383151.98702794325,\n", + " 'cpu_time': 381209.0481081081,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 2048.0,\n", + " 'model_cost': 282624.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 692224.0,\n", + " 'rhs_rows': 2048.0},\n", " {'name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", - " 'family_index': 26,\n", + " 'family_index': 47,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 875,\n", - " 'real_time': 835751.0091404298,\n", - " 'cpu_time': 830190.1679999974,\n", + " 'iterations': 903,\n", + " 'real_time': 762751.5924760839,\n", + " 'cpu_time': 757842.6954595725,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 4096.0,\n", - " 'model_cost': 8192.0,\n", + " 'model_cost': 565248.0,\n", " 'output_rows': 4096.0,\n", + " 'plan_cost': 1384448.0,\n", " 'rhs_rows': 4096.0},\n", + " {'name': 'OperatorCost/HashJoin/8192/8192/real_time',\n", + " 'family_index': 48,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/8192/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 461,\n", + " 'real_time': 1662913.1583581779,\n", + " 'cpu_time': 1651697.6746203937,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 8192.0,\n", + " 'model_cost': 1130496.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 2768896.0,\n", + " 'rhs_rows': 8192.0},\n", " {'name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", - " 'family_index': 27,\n", + " 'family_index': 49,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 213,\n", - " 'real_time': 3621875.4178325166,\n", - " 'cpu_time': 3595668.521126762,\n", + " 'iterations': 191,\n", + " 'real_time': 4006294.7016049675,\n", + " 'cpu_time': 3972214.141361237,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 16384.0,\n", - " 'model_cost': 32768.0,\n", + " 'model_cost': 2260992.0,\n", " 'output_rows': 16384.0,\n", + " 'plan_cost': 5537792.0,\n", " 'rhs_rows': 16384.0},\n", + " {'name': 'OperatorCost/HashJoin/32768/32768/real_time',\n", + " 'family_index': 50,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/32768/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 82,\n", + " 'real_time': 8204329.23164179,\n", + " 'cpu_time': 8095464.999999985,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 32768.0,\n", + " 'model_cost': 4521984.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 11075584.0,\n", + " 'rhs_rows': 32768.0},\n", " {'name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", - " 'family_index': 28,\n", + " 'family_index': 51,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 39,\n", - " 'real_time': 17024603.33334061,\n", - " 'cpu_time': 16899541.128205113,\n", + " 'iterations': 43,\n", + " 'real_time': 16943074.88363594,\n", + " 'cpu_time': 16813719.325581413,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 65536.0,\n", - " 'model_cost': 131072.0,\n", + " 'model_cost': 9043968.0,\n", " 'output_rows': 65536.0,\n", + " 'plan_cost': 22151168.0,\n", " 'rhs_rows': 65536.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/64/64/real_time',\n", + " 'family_index': 52,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/64/64/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1627,\n", + " 'real_time': 457940.5703765902,\n", + " 'cpu_time': 454351.0024585112,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 64.0,\n", + " 'model_cost': 286720.0,\n", + " 'output_rows': 64.0,\n", + " 'plan_cost': 299520.0,\n", + " 'rhs_rows': 64.0},\n", " {'name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", - " 'family_index': 29,\n", + " 'family_index': 53,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 513,\n", - " 'real_time': 1354149.7193008196,\n", - " 'cpu_time': 1347082.3060428796,\n", + " 'iterations': 462,\n", + " 'real_time': 1326260.4437471123,\n", + " 'cpu_time': 1316629.7380952353,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 128.0,\n", - " 'model_cost': 16384.0,\n", + " 'model_cost': 1146880.0,\n", " 'output_rows': 128.0,\n", + " 'plan_cost': 1172480.0,\n", " 'rhs_rows': 128.0},\n", " {'name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", - " 'family_index': 30,\n", + " 'family_index': 54,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 144,\n", - " 'real_time': 4866823.090297759,\n", - " 'cpu_time': 4842637.791666653,\n", + " 'iterations': 148,\n", + " 'real_time': 4755415.682518867,\n", + " 'cpu_time': 4716712.10135136,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 256.0,\n", - " 'model_cost': 65536.0,\n", + " 'model_cost': 4587520.0,\n", " 'output_rows': 256.0,\n", + " 'plan_cost': 4638720.0,\n", " 'rhs_rows': 256.0},\n", " {'name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", - " 'family_index': 31,\n", + " 'family_index': 55,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 38,\n", - " 'real_time': 18213616.658038903,\n", - " 'cpu_time': 18143284.894736815,\n", + " 'iterations': 39,\n", + " 'real_time': 18824480.692273937,\n", + " 'cpu_time': 18740105.12820526,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 512.0,\n", - " 'model_cost': 262144.0,\n", + " 'model_cost': 18350080.0,\n", " 'output_rows': 512.0,\n", + " 'plan_cost': 18452480.0,\n", " 'rhs_rows': 512.0},\n", " {'name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", - " 'family_index': 32,\n", + " 'family_index': 56,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", " 'run_type': 'iteration',\n", @@ -606,80 +1062,136 @@ " 'repetition_index': 0,\n", " 'threads': 1,\n", " 'iterations': 10,\n", - " 'real_time': 71634074.20011935,\n", - " 'cpu_time': 71360157.29999982,\n", + " 'real_time': 69821057.49921176,\n", + " 'cpu_time': 69534976.59999996,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 1024.0,\n", - " 'model_cost': 1048576.0,\n", + " 'model_cost': 73400320.0,\n", " 'output_rows': 1024.0,\n", + " 'plan_cost': 73605120.0,\n", " 'rhs_rows': 1024.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", - " 'family_index': 33,\n", + " {'name': 'OperatorCost/NestedLoopJoin/2048/2048/real_time',\n", + " 'family_index': 57,\n", " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/2048/2048/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 1931,\n", - " 'real_time': 365470.0756105372,\n", - " 'cpu_time': 358505.36147074035,\n", + " 'iterations': 3,\n", + " 'real_time': 275065905.3320609,\n", + " 'cpu_time': 274101250.33333325,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 2048.0,\n", + " 'model_cost': 293601280.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 294010880.0,\n", + " 'rhs_rows': 2048.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/32/32/real_time',\n", + " 'family_index': 58,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/32/32/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4263,\n", + " 'real_time': 161657.51911599387,\n", + " 'cpu_time': 160319.40863241884,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 32.0,\n", + " 'model_cost': 106496.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 112896.0,\n", + " 'rhs_rows': 32.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'family_index': 59,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1896,\n", + " 'real_time': 391432.3101276512,\n", + " 'cpu_time': 386105.75210970425,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 64.0,\n", - " 'model_cost': 2.0,\n", + " 'model_cost': 425984.0,\n", " 'output_rows': 4096.0,\n", + " 'plan_cost': 438784.0,\n", " 'rhs_rows': 64.0},\n", " {'name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", - " 'family_index': 34,\n", + " 'family_index': 60,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 590,\n", - " 'real_time': 1144605.2237307273,\n", - " 'cpu_time': 1133687.6745762767,\n", + " 'iterations': 331,\n", + " 'real_time': 1644325.9002721033,\n", + " 'cpu_time': 1610731.7945619286,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 128.0,\n", - " 'model_cost': 2.0,\n", + " 'model_cost': 1703936.0,\n", " 'output_rows': 16384.0,\n", + " 'plan_cost': 1729536.0,\n", " 'rhs_rows': 128.0},\n", " {'name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", - " 'family_index': 35,\n", + " 'family_index': 61,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 106,\n", - " 'real_time': 5925916.377339679,\n", - " 'cpu_time': 5857763.575471662,\n", + " 'iterations': 87,\n", + " 'real_time': 6994494.999894047,\n", + " 'cpu_time': 6864530.057471263,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 256.0,\n", - " 'model_cost': 2.0,\n", + " 'model_cost': 6815744.0,\n", " 'output_rows': 65536.0,\n", + " 'plan_cost': 6866944.0,\n", " 'rhs_rows': 256.0},\n", " {'name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", - " 'family_index': 36,\n", + " 'family_index': 62,\n", " 'per_family_instance_index': 0,\n", " 'run_name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", " 'run_type': 'iteration',\n", " 'repetitions': 1,\n", " 'repetition_index': 0,\n", " 'threads': 1,\n", - " 'iterations': 26,\n", - " 'real_time': 26708787.384660143,\n", - " 'cpu_time': 26467262.923076782,\n", + " 'iterations': 25,\n", + " 'real_time': 27484957.160195336,\n", + " 'cpu_time': 27127955.640000038,\n", " 'time_unit': 'ns',\n", " 'lhs_rows': 512.0,\n", - " 'model_cost': 2.0,\n", + " 'model_cost': 27262976.0,\n", " 'output_rows': 262144.0,\n", - " 'rhs_rows': 512.0}]}" + " 'plan_cost': 27365376.0,\n", + " 'rhs_rows': 512.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/1024/1024/real_time',\n", + " 'family_index': 63,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/1024/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5,\n", + " 'real_time': 130720901.00031348,\n", + " 'cpu_time': 129132758.20000081,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1024.0,\n", + " 'model_cost': 109051904.0,\n", + " 'output_rows': 1048576.0,\n", + " 'plan_cost': 109256704.0,\n", + " 'rhs_rows': 1024.0}]}" ] }, - "execution_count": 2, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -696,7 +1208,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "1e9f5e6f", "metadata": {}, "outputs": [ @@ -730,347 +1242,116 @@ " \n", " \n", " \n", - " 20\n", + " 36\n", " Aggregation\n", " 1024\n", " NaN\n", - " 0.360181\n", - " 1024.0\n", + " 0.367198\n", + " 522240.0\n", " \n", " \n", - " 21\n", + " 37\n", " Aggregation\n", - " 4096\n", + " 2048\n", " NaN\n", - " 1.595273\n", - " 4096.0\n", + " 0.714949\n", + " 1044480.0\n", " \n", " \n", - " 22\n", + " 38\n", " Aggregation\n", - " 16384\n", + " 4096\n", " NaN\n", - " 7.530658\n", - " 16384.0\n", + " 1.378878\n", + " 2088960.0\n", " \n", " \n", - " 23\n", + " 39\n", " Aggregation\n", - " 65536\n", + " 8192\n", " NaN\n", - " 63.945720\n", - " 65536.0\n", + " 2.970154\n", + " 4177920.0\n", " \n", " \n", - " 24\n", + " 40\n", " Aggregation\n", - " 262144\n", - " NaN\n", - " 375.139164\n", - " 262144.0\n", - " \n", - " \n", - " 5\n", - " Filter\n", - " 1024\n", - " NaN\n", - " 0.093398\n", - " 1024.0\n", - " \n", - " \n", - " 6\n", - " Filter\n", - " 4096\n", - " NaN\n", - " 0.320979\n", - " 4096.0\n", - " \n", - " \n", - " 7\n", - " Filter\n", " 16384\n", " NaN\n", - " 1.286237\n", - " 16384.0\n", - " \n", - " \n", - " 8\n", - " Filter\n", - " 65536\n", - " NaN\n", - " 5.559294\n", - " 65536.0\n", - " \n", - " \n", - " 9\n", - " Filter\n", - " 262144\n", - " NaN\n", - " 24.117997\n", - " 262144.0\n", - " \n", - " \n", - " 25\n", - " HashJoin\n", - " 1024\n", - " 1024.0\n", - " 0.205582\n", - " 2048.0\n", - " \n", - " \n", - " 26\n", - " HashJoin\n", - " 4096\n", - " 4096.0\n", - " 0.835751\n", - " 8192.0\n", - " \n", - " \n", - " 27\n", - " HashJoin\n", - " 16384\n", - " 16384.0\n", - " 3.621875\n", - " 32768.0\n", - " \n", - " \n", - " 28\n", - " HashJoin\n", - " 65536\n", - " 65536.0\n", - " 17.024603\n", - " 131072.0\n", - " \n", - " \n", - " 33\n", - " NestedLoopCrossJoin\n", - " 64\n", - " 64.0\n", - " 0.365470\n", - " 2.0\n", - " \n", - " \n", - " 34\n", - " NestedLoopCrossJoin\n", - " 128\n", - " 128.0\n", - " 1.144605\n", - " 2.0\n", - " \n", - " \n", - " 35\n", - " NestedLoopCrossJoin\n", - " 256\n", - " 256.0\n", - " 5.925916\n", - " 2.0\n", - " \n", - " \n", - " 36\n", - " NestedLoopCrossJoin\n", - " 512\n", - " 512.0\n", - " 26.708787\n", - " 2.0\n", - " \n", - " \n", - " 29\n", - " NestedLoopJoin\n", - " 128\n", - " 128.0\n", - " 1.354150\n", - " 16384.0\n", + " 7.566779\n", + " 8355840.0\n", " \n", " \n", - " 30\n", - " NestedLoopJoin\n", - " 256\n", - " 256.0\n", - " 4.866823\n", - " 65536.0\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", " 31\n", - " NestedLoopJoin\n", - " 512\n", - " 512.0\n", - " 18.213617\n", - " 262144.0\n", - " \n", - " \n", - " 32\n", - " NestedLoopJoin\n", - " 1024\n", - " 1024.0\n", - " 71.634074\n", - " 1048576.0\n", - " \n", - " \n", - " 10\n", - " Projection\n", - " 1024\n", - " NaN\n", - " 0.122635\n", - " 1024.0\n", - " \n", - " \n", - " 11\n", - " Projection\n", - " 4096\n", - " NaN\n", - " 0.446143\n", - " 4096.0\n", - " \n", - " \n", - " 12\n", - " Projection\n", - " 16384\n", - " NaN\n", - " 1.848225\n", - " 16384.0\n", - " \n", - " \n", - " 13\n", - " Projection\n", - " 65536\n", - " NaN\n", - " 8.299086\n", - " 65536.0\n", - " \n", - " \n", - " 14\n", - " Projection\n", - " 262144\n", - " NaN\n", - " 39.251824\n", - " 262144.0\n", - " \n", - " \n", - " 0\n", - " SeqScan\n", - " 1024\n", - " NaN\n", - " 0.049602\n", - " 1024.0\n", - " \n", - " \n", - " 1\n", - " SeqScan\n", - " 4096\n", - " NaN\n", - " 0.217833\n", - " 4096.0\n", - " \n", - " \n", - " 2\n", - " SeqScan\n", - " 16384\n", - " NaN\n", - " 1.000898\n", - " 16384.0\n", - " \n", - " \n", - " 3\n", - " SeqScan\n", - " 65536\n", - " NaN\n", - " 5.791037\n", - " 65536.0\n", - " \n", - " \n", - " 4\n", - " SeqScan\n", - " 262144\n", - " NaN\n", - " 26.528860\n", - " 262144.0\n", - " \n", - " \n", - " 15\n", " Sort\n", - " 1024\n", + " 16384\n", " NaN\n", - " 0.112101\n", - " 11264.0\n", + " 4.673407\n", + " 2703360.0\n", " \n", " \n", - " 16\n", + " 32\n", " Sort\n", - " 4096\n", + " 32768\n", " NaN\n", - " 0.654773\n", - " 53248.0\n", + " 10.560526\n", + " 5767168.0\n", " \n", " \n", - " 17\n", + " 33\n", " Sort\n", - " 16384\n", + " 65536\n", " NaN\n", - " 2.819925\n", - " 245760.0\n", + " 27.512323\n", + " 12255232.0\n", " \n", " \n", - " 18\n", + " 34\n", " Sort\n", - " 65536\n", + " 131072\n", " NaN\n", - " 15.388325\n", - " 1114112.0\n", + " 76.878972\n", + " 25952256.0\n", " \n", " \n", - " 19\n", + " 35\n", " Sort\n", " 262144\n", " NaN\n", - " 101.966347\n", - " 4980736.0\n", + " 210.729772\n", + " 54788096.0\n", " \n", " \n", "\n", + "

64 rows × 5 columns

\n", "" ], "text/plain": [ - " operator left_rows right_rows real_time_ms model_cost\n", - "20 Aggregation 1024 NaN 0.360181 1024.0\n", - "21 Aggregation 4096 NaN 1.595273 4096.0\n", - "22 Aggregation 16384 NaN 7.530658 16384.0\n", - "23 Aggregation 65536 NaN 63.945720 65536.0\n", - "24 Aggregation 262144 NaN 375.139164 262144.0\n", - "5 Filter 1024 NaN 0.093398 1024.0\n", - "6 Filter 4096 NaN 0.320979 4096.0\n", - "7 Filter 16384 NaN 1.286237 16384.0\n", - "8 Filter 65536 NaN 5.559294 65536.0\n", - "9 Filter 262144 NaN 24.117997 262144.0\n", - "25 HashJoin 1024 1024.0 0.205582 2048.0\n", - "26 HashJoin 4096 4096.0 0.835751 8192.0\n", - "27 HashJoin 16384 16384.0 3.621875 32768.0\n", - "28 HashJoin 65536 65536.0 17.024603 131072.0\n", - "33 NestedLoopCrossJoin 64 64.0 0.365470 2.0\n", - "34 NestedLoopCrossJoin 128 128.0 1.144605 2.0\n", - "35 NestedLoopCrossJoin 256 256.0 5.925916 2.0\n", - "36 NestedLoopCrossJoin 512 512.0 26.708787 2.0\n", - "29 NestedLoopJoin 128 128.0 1.354150 16384.0\n", - "30 NestedLoopJoin 256 256.0 4.866823 65536.0\n", - "31 NestedLoopJoin 512 512.0 18.213617 262144.0\n", - "32 NestedLoopJoin 1024 1024.0 71.634074 1048576.0\n", - "10 Projection 1024 NaN 0.122635 1024.0\n", - "11 Projection 4096 NaN 0.446143 4096.0\n", - "12 Projection 16384 NaN 1.848225 16384.0\n", - "13 Projection 65536 NaN 8.299086 65536.0\n", - "14 Projection 262144 NaN 39.251824 262144.0\n", - "0 SeqScan 1024 NaN 0.049602 1024.0\n", - "1 SeqScan 4096 NaN 0.217833 4096.0\n", - "2 SeqScan 16384 NaN 1.000898 16384.0\n", - "3 SeqScan 65536 NaN 5.791037 65536.0\n", - "4 SeqScan 262144 NaN 26.528860 262144.0\n", - "15 Sort 1024 NaN 0.112101 11264.0\n", - "16 Sort 4096 NaN 0.654773 53248.0\n", - "17 Sort 16384 NaN 2.819925 245760.0\n", - "18 Sort 65536 NaN 15.388325 1114112.0\n", - "19 Sort 262144 NaN 101.966347 4980736.0" + " operator left_rows right_rows real_time_ms model_cost\n", + "36 Aggregation 1024 NaN 0.367198 522240.0\n", + "37 Aggregation 2048 NaN 0.714949 1044480.0\n", + "38 Aggregation 4096 NaN 1.378878 2088960.0\n", + "39 Aggregation 8192 NaN 2.970154 4177920.0\n", + "40 Aggregation 16384 NaN 7.566779 8355840.0\n", + ".. ... ... ... ... ...\n", + "31 Sort 16384 NaN 4.673407 2703360.0\n", + "32 Sort 32768 NaN 10.560526 5767168.0\n", + "33 Sort 65536 NaN 27.512323 12255232.0\n", + "34 Sort 131072 NaN 76.878972 25952256.0\n", + "35 Sort 262144 NaN 210.729772 54788096.0\n", + "\n", + "[64 rows x 5 columns]" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -1078,6 +1359,8 @@ "source": [ "import pandas as pd\n", "\n", + "assert results\n", + "\n", "df = pd.DataFrame(results['benchmarks'])\n", "df = df[df['run_type'] == 'iteration'].copy()\n", "\n", @@ -1093,13 +1376,13 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "d49c7121", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAHqCAYAAACZcdjsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAqdJJREFUeJzs3XlcVNX7B/DPADMDw7DvKCK4I7hvaIk77pqVW5qkmWVpppZp5VLulrmVLT8T00qtlK+Z4ZZYiivuQm6BS4LIvq9zfn/Q3BwZcJBlQD7vXvOKuffce58ZBrkP5znnyIQQAkREREREROVgYuwAiIiIiIio5mNiQURERERE5cbEgoiIiIiIyo2JBRERERERlRsTCyIiIiIiKjcmFkREREREVG5MLIiIiIiIqNyYWBARERERUbkxsSAiIiIionJjYkFExRw/fhzPP/883NzcoFAo4Orqiueeew7Hjh0zdmgGCw8Px/z585GSkmLsUCrNnj17MH/+fGOHYbDg4GDIZDLExMSU+dj58+dDJpNVfFBUZWQy2SM/r3fv3sX8+fNx7ty5Yvv4GSCq/phYEJGOtWvXokuXLrhz5w6WL1+OAwcO4OOPP8Y///yDp556CuvWrTN2iAYJDw/HggULnvjEYsGCBcYOg6jC3L17FwsWLNCbWLz88ss16o8bRLWRmbEDIKLq4+jRo5g2bRr69++PnTt3wszsv38iRo4ciWeeeQZvvvkmWrdujS5dulRpbFlZWVCpVFV6zeocB1FVqS6f+bp166Ju3brGDoOISsEeCyKSLFmyBDKZDOvXr9dJKgDAzMwMn3/+OWQyGZYuXSpt15YnnD17FsOGDYO1tTVsbGwwZswY3L9/v9g1tm3bBn9/f1haWkKtViMwMBBnz57VaRMUFAS1Wo2LFy+iT58+sLKyQs+ePQEA+/fvx5AhQ1C3bl2Ym5ujYcOGmDRpEhISEnRievvttwEAXl5ekMlkkMlkCAsLAwBoNBosX74cTZs2hVKphLOzM1588UXcuXNHJ45u3brB19cXf/zxBzp37gyVSoXx48eX+h6eOHECgwYNgoODA8zNzdGgQQNMmzZNp82RI0fQs2dPWFlZQaVSoXPnzvj111912mRlZWHmzJnw8vKCubk57O3t0a5dO/zwww/Se/TZZ58BgPT6HlVmpH09x44dQ+fOnWFhYYH69etj48aNAIBff/0Vbdq0gUqlgp+fH0JDQ4udw5DYgaJyui5dusDc3Bzu7u6YPXs28vPz9cZlyGfCEKtWrYJMJsP169eL7Zs1axYUCoX0OTl79iwGDhwIZ2dnKJVKuLu7Y8CAAcU+Aw+riPfw2rVrGD16tHTtZs2aSd9LrZycHMyYMQOtWrWCjY0N7O3t4e/vj//973/Fzvfjjz+iY8eOsLGxgUqlgre3t87ntKQStLCwMJ2fiwdfn77PfFpamvSZVCgUqFOnDqZNm4bMzEyd86alpWHixIlwcHCAWq1G3759cfXq1VLfV2087du3BwC89NJL0mdaWz6lrxSqfv36GDhwIHbv3o3WrVvDwsICzZo1w+7du6XX3qxZM1haWqJDhw44ffp0seuePn0agwcPhr29PczNzdG6dWts3779kfESkR6CiEgIUVBQIFQqlejYsWOp7Tp06CBUKpUoKCgQQggxb948AUB4enqKt99+W+zdu1esXLlSWFpaitatW4u8vDzp2EWLFgmZTCbGjx8vdu/eLXbs2CH8/f2FpaWluHz5stRu3LhxQi6Xi/r164slS5aIgwcPir179wohhFi/fr1YsmSJ2LVrlzh8+LDYtGmTaNmypWjSpIl0rdu3b4spU6YIAGLHjh3i2LFj4tixYyI1NVUIIcQrr7wiAIg33nhDhIaGii+++EI4OTkJDw8Pcf/+fSmOgIAAYW9vLzw8PMTatWvFoUOHxOHDh0t8b0JDQ4VcLhctWrQQwcHB4vfffxfffPONGDlypNQmLCxMyOVy0bZtW7Ft2zYREhIi+vTpI2Qymdi6davUbtKkSUKlUomVK1eKQ4cOid27d4ulS5eKtWvXCiGEuH79unjuuecEAOn1HTt2TOTk5JQYX0BAgHBwcBBNmjQRGzZsEHv37hUDBw4UAMSCBQuEn5+f+OGHH8SePXtEp06dhFKpFP/880+ZY798+bJQqVTCx8dH/PDDD+J///ufCAwMFPXq1RMARHR0dJk/E9rPWWnu378vFAqFeO+993S2FxQUCHd3dzFs2DAhhBAZGRnCwcFBtGvXTmzfvl0cPnxYbNu2Tbz66qsiMjKy1GuU9z28fPmysLGxEX5+fuLbb78V+/btEzNmzBAmJiZi/vz5UruUlBQRFBQkNm/eLH7//XcRGhoqZs6cKUxMTMSmTZukduHh4UImk4mRI0eKPXv2iN9//11s3LhRjB07VmqzcePGYu+7EEIcOnRIABCHDh3SeX36PvOZmZmiVatWwtHRUaxcuVIcOHBArF69WtjY2IgePXoIjUYjhBBCo9GI7t27C6VSKRYtWiT27dsn5s2bJ7y9vQUAMW/evBLf29TUVCnW999/X/pM3759Wwih/zPg6ekp6tatK3x9faX3vWPHjkIul4u5c+eKLl26iB07doidO3eKxo0bCxcXF5GVlSUd//vvvwuFQiGefvppsW3bNhEaGiqCgoIEALFx48ZSPwtEVBwTCyISQggRFxcnAOjcBOszYsQIAUDcu3dPCPHfL/u33npLp913330nAIgtW7YIIYS4deuWMDMzE1OmTNFpl56eLlxdXcXw4cOlbePGjRMAxDfffFNqLBqNRuTn54ubN28KAOJ///uftG/FihV6b6aioqIEADF58mSd7SdOnBAAxJw5c6RtAQEBAoA4ePBgqXFoNWjQQDRo0EBkZ2eX2KZTp07C2dlZpKenS9sKCgqEr6+vqFu3rnSD5uvrK4YOHVrq9V5//fVH3mw/SPt6Tp8+LW1LTEwUpqamwsLCQucG+Ny5cwKAWLNmTZljHzFihLCwsBBxcXE67Zo2barzPSnLZ8KQxEIIIYYNGybq1q0rCgsLpW179uwRAMQvv/wihBDi9OnTAoAICQl55PkeVt73MDAwUNStW1dKcrXeeOMNYW5uLpKSkvRet6CgQOTn54sJEyaI1q1bS9s//vhjAUCkpKSUGHNZEwt9n/klS5YIExMTcerUKZ3tP/30kwAg9uzZI4QQ4rfffhMAxOrVq3XaLVq06JGJhRBCnDp1qsSb+pISCwsLC3Hnzh1pm/Z9d3NzE5mZmdL2kJAQAUDs2rVL2ta0aVPRunVrkZ+fr3PegQMHCjc3N53PERE9GkuhiKhMhBAAUKwk4YUXXtB5Pnz4cJiZmeHQoUMAgL1796KgoAAvvvgiCgoKpIe5uTkCAgJ0yjG0nn322WLb4uPj8eqrr8LDwwNmZmaQy+Xw9PQEAERFRT0yfm08QUFBOts7dOiAZs2a4eDBgzrb7ezs0KNHj0ee9+rVq7hx4wYmTJgAc3NzvW0yMzNx4sQJPPfcc1Cr1dJ2U1NTjB07Fnfu3MGVK1ekeH777Te8++67CAsLQ3Z29iNjMISbmxvatm0rPbe3t4ezszNatWoFd3d3aXuzZs0AADdv3ixz7IcOHULPnj3h4uKi027EiBE6sTzOZ+JRXnrpJdy5cwcHDhyQtm3cuBGurq7o168fAKBhw4aws7PDrFmz8MUXXyAyMrJM13jc9zAnJwcHDx7EM888A5VKpfOa+/fvj5ycHBw/flw6/scff0SXLl2gVqulz/qGDRt0Pufa0qHhw4dj+/bt+Oeff8r0WvTR95nfvXs3fH190apVK524AwMDdcqptD9fD/97MHr06HLHVZJWrVqhTp060nPt+96tWzedsSEPfz+uX7+Ov/76S4r14e9HbGys9JkmIsMwsSAiAICjoyNUKhWio6NLbRcTEwOVSgV7e3ud7a6urjrPzczM4ODggMTERADAvXv3ABTdCMnlcp3Htm3bdMZIAIBKpYK1tbXONo1Ggz59+mDHjh145513cPDgQZw8eVK6GTPk5lsbj5ubW7F97u7u0n4tfe300Y4nKW1waXJyMoQQJV77wfjWrFmDWbNmISQkBN27d4e9vT2GDh2Ka9euGRRPSR7+vgGAQqEotl2hUAAouhkua+yJiYnFPg9A8c9IWT8ThujXrx/c3NykMQ/JycnYtWsXXnzxRZiamgIAbGxscPjwYbRq1Qpz5sxB8+bN4e7ujnnz5pU4DuRBj/seJiYmoqCgAGvXri32evv37w8A0mvesWMHhg8fjjp16mDLli04duwYTp06hfHjx0vnA4CuXbsiJCREStDq1q0LX19faSzO49D3Pb537x4uXLhQLG4rKysIIaS4ExMTpZ/9B+n7PFSUkt73R30/tJ+/mTNnFntdkydPBoDH+gwS1WacFYqIABT9Rbl79+4IDQ3FnTt39N4g37lzBxEREejXr590k6YVFxen81fDgoICJCYmSjcYjo6OAICffvpJ6mEojb756i9duoTz588jODgY48aNk7brG6xbEm08sbGxxV7j3bt3pThLi0MfJycnACh18K+dnR1MTEwQGxtbbN/du3cB/Pc+WVpaYsGCBViwYAHu3bsn9V4MGjQIf/31l0ExVaSyxO7g4IC4uLhi7R7eVtbPhCG0PShr1qxBSkoKvv/+e+Tm5uKll17Saefn54etW7dCCIELFy4gODgYH374ISwsLPDuu+9WSCwPs7Ozk+J7/fXX9bbx8vICAGzZsgVeXl7Ytm2bzmcwNze32DFDhgzBkCFDkJubi+PHj2PJ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VBT8/f11zvnw865du+Lvv//GwYMH8eyzz+Ly5ct4+umn8dFHHwEAzp07B1NTUwQEBJQY5xdffIF27drByckJarUaX3/9NW7duqXTpnnz5jA1/S+pcnNzQ3x8fLneHzIOo/ZYvP766/j+++/xv//9D1ZWVtKYCBsbG1hYWCAjIwPz58/Hs88+Czc3N8TExGDOnDlwdHTEM888I7WdMGECZsyYAQcHB9jb22PmzJnw8/OTsufaLC0nHwX/zk5hZyk3cjRERETVl0xuAvcPDfujZG50KhI3Xn5kO4eXmkPpZWPQtcvK3NwcvXv3Ru/evTF37ly8/PLLmDdvHiZPngw3NzeEhYUVO8bW1rZM15DL5Xj66afx9NNP491338XChQvx4YcfYtasWbCwsCj12O3bt+Ott97CJ598An9/f1hZWWHFihU4ceJEsWs8SCaTQaMxrCSNqhejJhbr168HAHTr1k1n+8aNGxEUFARTU1NcvHgR3377LVJSUuDm5obu3btj27ZtOrV+n376KczMzDB8+HBkZ2ejZ8+eCA4O1sl+ayttGZSV0gxKM74fREREJZHJZAaXI5k3soOpjaLYwO0HmdooYd7IzqAxFhXBx8cHISEhaNOmDeLi4mBmZob69evrbdusWTMcP34cL774orTt+PHjBl2joKAAOTk58PPzg0ajweHDh/X+MffPP/9E586dMXnyZGmbtseEnkxGTSyEKH2eZwsLC+zdu/eR5zE3N8fatWuxdu3aigrtiZHENSyIiIgqnMxEBttBDZC4JarENraDvCslqUhMTMTzzz+P8ePHo0WLFrCyssLp06exfPlyDBkyBL169YK/vz+GDh2KZcuWoUmTJrh79y727NmDoUOHol27dnjzzTcxbtw4tGvXDk899RS+++47XL58WWeMRLdu3TBq1Ci0a9cODg4OiIyMxJw5c9C9e3dYW1vD2toa48aNw/jx46XB2zdv3kR8fDyGDx+Ohg0b4ttvv8XevXvh5eWFzZs349SpUwaVvlPNVC0Gb1Pl0a66zYHbREREFcvC1xEOY5rpWcdCCdtB3pW2joVarUbHjh3x6aef4saNG8jPz4eHhwcmTpyIOXPmQCaTYc+ePXjvvfcwfvx43L9/H66urujatStcXFwAFM26eePGDcyaNQs5OTl49tln8dprr+n8QTcwMBCbNm3CnDlzkJWV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mvTQlkKxx4KIiIiIjKHSEguqWolcw4KIiIiIjIiJxRMiMePfxIKlUERERERkBEwsnhBJHLxNREREREbExOIJkZj573SzLIUiIiIiIiOotMRizJgxsLa2rqzT00OkMRYshSIiIiIiIzBoHYsLFy4YfMIWLVoAANavX/94EVGZFRRqkJKVDwBwYCkUERERERmBQYlFq1atIJPJSpxCVrtPJpOhsLCwQgOkR0vKKuqtkMkAWxUTCyIiIiKqegYlFtHR0ZUdB5WDduC2nUoBU5NHL15IRERERFTRDEosPD09KzsOKock7VSzLIMiIiIiIiMxKLHQJzIyErdu3UJeXp7O9sGDB5c7KCqbBE41S0RERERGVubE4u+//8YzzzyDixcv6oy7kMmKSnA4xqLqJWUUTTXrqOZUs0RERERkHGWebvbNN9+El5cX7t27B5VKhcuXL+OPP/5Au3btEBYWVgkh0qMksseCiIiIiIyszInFsWPH8OGHH8LJyQkmJiYwMTHBU089hSVLlmDq1KllOtcff/yBQYMGwd3dHTKZDCEhITr7g4KCIJPJdB6dOnXSaZObm4spU6bA0dERlpaWGDx4MO7cuVPWl1WjMbEgIiIiImMrc2JRWFgItVoNAHB0dMTdu3cBFA3wvnLlSpnOlZmZiZYtW2LdunUltunbty9iY2Olx549e3T2T5s2DTt37sTWrVtx5MgRZGRkYODAgbWqJCtRKoViYkFERERExlHmMRa+vr64cOECvL290bFjRyxfvhwKhQJfffUVvL29y3Sufv36oV+/fqW2USqVcHV11bsvNTUVGzZswObNm9GrVy8AwJYtW+Dh4YEDBw4gMDCwTPHUVElSjwXHWBARERGRcZS5x+L999+HRqMBACxcuBA3b97E008/jT179mDNmjUVHmBYWBicnZ3RuHFjTJw4EfHx8dK+iIgI5Ofno0+fPtI2d3d3+Pr6Ijw8vMRz5ubmIi0tTedRk2lLoRzYY0FERERERlLmHosHewG8vb0RGRmJpKQk2NnZSTNDVZR+/frh+eefh6enJ6Kjo/HBBx+gR48eiIiIgFKpRFxcHBQKBezs7HSOc3FxQVxcXInnXbJkCRYsWFChsRpTItexICIiIiIjK3OPhdb169exd+9eZGdnw97eviJjkowYMQIDBgyAr68vBg0ahN9++w1Xr17Fr7/+WupxQohSk5zZs2cjNTVVety+fbuiQ68y+YUapGbnA+DgbSIiIiIynjInFomJiejZsycaN26M/v37IzY2FgDw8ssvY8aMGRUe4IPc3Nzg6emJa9euAQBcXV2Rl5eH5ORknXbx8fFwcXEp8TxKpRLW1tY6j5oq+d8yKBMZYKtiYkFERERExlHmxOKtt96CXC7HrVu3oFKppO0jRoxAaGhohQb3sMTERNy+fRtubm4AgLZt20Iul2P//v1Sm9jYWFy6dAmdO3eu1FiqC+34CjuVAqYmFVuKRkRERERkqDKPsdi3bx/27t2LunXr6mxv1KgRbt68WaZzZWRk4Pr169Lz6OhonDt3Dvb29rC3t8f8+fPx7LPPws3NDTExMZgzZw4cHR3xzDPPAABsbGwwYcIEzJgxAw4ODrC3t8fMmTPh5+cnzRL1pEviwG0iIiIiqgbKnFhkZmbq9FRoJSQkQKks23Snp0+fRvfu3aXn06dPBwCMGzcO69evx8WLF/Htt98iJSUFbm5u6N69O7Zt2wYrKyvpmE8//RRmZmYYPnw4srOz0bNnTwQHB8PU1LSsL61GSvh3DQuOryAiIiIiYypzYtG1a1d8++23+OijjwAAMpkMGo0GK1as0EkSDNGtWzcIIUrcv3fv3keew9zcHGvXrsXatWvLdO0nhdRjwTUsiIiIiMiIypxYrFixAt26dcPp06eRl5eHd955B5cvX0ZSUhKOHj1aGTFSKaSpZlkKRURERERGVObB2z4+Prhw4QI6dOiA3r17IzMzE8OGDcPZs2fRoEGDyoiRSpEorbrNxIKIiIiIjKdMPRbaVa6//PLLJ2qBuZosKbNojIWDmqVQRERERGQ8ZeqxkMvluHTpUoWvsE2Pj6tuExEREVF1UOZSqBdffBEbNmyojFjoMSSxFIqIiIiIqoEyD97Oy8vD//3f/2H//v1o164dLC0tdfavXLmywoKjR9NON+vIwdtEREREZERlTiwuXbqENm3aAACuXr2qs48lUlUrv1CDtJwCAIA9p5slIiIiIiMqc2Jx6NChyoiDHkPyv2VQJjLA1kJu5GiIiIiIqDYr8xgLqj4SMv4bX2Fiwt4iIiIiIjIeJhY1GAduExEREVF1wcSiBkvUrmHB8RVEREREZGRMLGow7RoW9pwRioiIiIiMjIlFDaYthXJkKRQRERERGRkTixpMWwrFqWaJiIiIyNiYWNRgLIUiIiIiouqCiUUNlshSKCIiIiKqJphY1GCcbpaIiIiIqgsmFjVYQsa/082qOcaCiIiIiIyLiUUNlVegQXpOAQDAgT0WRERERGRkTCxqqOSsojIoUxMZbCzkRo6GiIiIiGo7JhY1lLYMyk6lgImJzMjREBEREVFtx8SihtIO3GYZFBERERFVB0wsaijtGhYOXMOCiIiIiKoBJhY1VCKnmiUiIiKiaoSJRQ2VlFk0xsKRU80SERERUTXAxKKG0pZCsceCiIiIiKoDJhY1FEuhiIiIiKg6YWJRQyVmaEuhmFgQERERkfExsaihkqQeC46xICIiIiLjY2JRQ2lLoTjdLBERERFVB0wsaqDcgkKk5xQA4AJ5RERERFQ9MLGogZIz8wEApiYyWJvLjRwNERERERETixop4d+B2/aWCpiYyIwcDRERERERE4saSTtwm2VQRERERFRdMLGogZI4cJuIiIiIqhkmFjXQf6VQnGqWiIiIiKoHM2MHQGXHUigiIiKiJ59Go8HNmzeRkZEBtVoNT09PmJhU334BJhY1UGIGEwsiIiKiJ1lkZCRCQ0ORlpYmbbO2tkbfvn3h4+NjxMhKZtSU548//sCgQYPg7u4OmUyGkJAQnf1CCMyfPx/u7u6wsLBAt27dcPnyZZ02ubm5mDJlChwdHWFpaYnBgwfjzp07Vfgqqp52cTx7jrEgIiIieuJERkZi+/btOkkFAKSlpWH79u2IjIw0UmSlM2pikZmZiZYtW2LdunV69y9fvhwrV67EunXrcOrUKbi6uqJ3795IT0+X2kybNg07d+7E1q1bceTIEWRkZGDgwIEoLCysqpdR5ZIyi8ZYOHCMBREREdETRaPRIDQ0tNQ2oaGh0Gg0VRSR4YxaCtWvXz/069dP7z4hBFatWoX33nsPw4YNAwBs2rQJLi4u+P777zFp0iSkpqZiw4YN2Lx5M3r16gUA2LJlCzw8PHDgwAEEBgZW2WupSomcFYqIiIjoiSCEQHp6Ou7fv4/4+HjcuHGjWE/Fw9LS0nDz5k14eXlVUZSGqbZjLKKjoxEXF4c+ffpI25RKJQICAhAeHo5JkyYhIiIC+fn5Om3c3d3h6+uL8PDwJzaxSPp3jIU9x1gQERER1RgZGRlSAhEfHy99nZOT81jnqm6qbWIRFxcHAHBxcdHZ7uLigps3b0ptFAoF7OzsirXRHq9Pbm4ucnNzpeePygqrk9yCQqTnFgAAHFkKRURERFTtZGVl6U0gsrKy9LaXyWSwt7eHs7Mz5HI5Lly48MhrqNXqig673KptYqElk8l0ngshim172KPaLFmyBAsWLKiQ+KqadqpZMxMZrC2q/bePiIiI6ImVk5OjN4EorTfBzs4Ozs7OcHJygrOzM5ydneHg4AC5XA6gaIxFTExMqX/4tra2hqenZ4W/nvKqtnemrq6uAIp6Jdzc3KTt8fHxUi+Gq6sr8vLykJycrNNrER8fj86dO5d47tmzZ2P69OnS87S0NHh4eFT0S6gUiQ+UQT0qwSIiIiKi8svNzUVCQkKxBKK0m38bG5tiCYSjoyMUitJL2U1MTNC3b19s3769xDZ9+/atlutZVNvEwsvLC66urti/fz9at24NAMjLy8Phw4exbNkyAEDbtm0hl8uxf/9+DB8+HAAQGxuLS5cuYfny5SWeW6lUQqmsmWVE0lSzHF9BREREVKHy8/Nx//79Yr0QKSkpJR5jZWVVLIFwcnIq172mj48Phg8fXuPWsTBqYpGRkYHr169Lz6Ojo3Hu3DnY29ujXr16mDZtGhYvXoxGjRqhUaNGWLx4MVQqFUaPHg2gKBOcMGECZsyYAQcHB9jb22PmzJnw8/OTZol60khTzXJGKCIiIqLHUlBQgISEhGIJRFJSUonHWFpa6k0gLCwsKiVGHx8fNG3alCtvG+r06dPo3r279FxbnjRu3DgEBwfjnXfeQXZ2NiZPnozk5GR07NgR+/btg5WVlXTMp59+CjMzMwwfPhzZ2dno2bMngoODYWpqWuWvpyr8t+p2zexxISIiIqoqhYWFSExMLJZAJCYmQgih9xgLCwudxEH7f0tLyyqOvqgsqrpNKVsamSjpXa1F0tLSYGNjg9TUVFhbWxs7nFItC/0L68NuIKhzfcwf3NzY4RAREREZnUajQVJSUrEEIiEhocSF5JRKZbEEwtnZGZaWlhzH+oCy3CdX2zEWpF9iRlEplCNLoYiIiKiW0Wg0SElJKZZA3L9/H4WFhXqPUSgUOj0P2gTCysqKCUQFY2JRwyRJg7dZCkVERERPJiEEUlNTdWZgio+PR0JCAvLz8/UeY2ZmpjeBsLa2rtbjEp4kTCxqGM4KRURERE8KIQTS09OLJRD3799HXl6e3mNMTU3h6OhYLIGwtbVlAmFkTCxqGO3gbZZCERERUU0hhEBmZqbeBCInJ0fvMSYmJnBwcCiWQNjZ2T2xk/TUdEwsapgk9lgQERFRNZaVlaU3gcjKytLbXiaTwd7evthAant7e5iZ8Va1JuF3qwbJyS9ERm4BAMBBzTEWREREZDw5OTnFVqK+f/8+MjIySjzGzs6uWALh4OAAuVxehZFTZWFiUYNoeyvkpjJYm/NbR0RERJUvNzdXJ3HQJhPp6eklHmNjY1MsgXB0dIRCwYqLJxnvTmsQbWJhp1JwejQiIiKqUHl5eUhISCiWQKSmppZ4jJWVld7F5JRKVlbURkwsapCEf9ewYBkUERERPa6CggK9CURycnKJx6jV6mJTuTo5OcHCwqIKI6fqjolFDaLtsXDgwG0iIiJ6hMLCQiQmJhZLIJKSkiCE0HuMhYWF1APxYBKhUqmqOHqqiZhY1CDaqWYdONUsERER/auwsBDJycnFBlInJiZCo9HoPcbc3FxnClft15aWliy3psfGxKIG4eJ4REREtZdGo0FKSkqxBCIhIQGFhYV6j1EoFHoTCCsrKyYQVOGYWNQgSZlFYywcOcaCiIjoiSWEQGpqqt6pXAsKCvQeY2ZmpjeBsLGxYQJBVYaJRQ2iLYVijwUREVHNJ4RAenq63gQiLy9P7zGmpqZwcnIqNpDa1tYWJiYmVfwKiHQxsahBWApFRERU8wghkJGRoXctiNzcXL3HmJiYwNHRsVgvhJ2dHUxNTav4FRAZholFDZIolUIxsSAiIqqOMjMzdRIH7dfZ2dl628tkMjg4OBRLIBwcHJhAUI3DxKIGSZJKoTjGgoiIyJiys7P1JhCZmZklHmNvb18sgXB0dISZGW/H6MnAT3INkZNfiMy8ohkfON1s7aLRCMReS0FmWi4srZVwa2QLExMOxCMiqgq5ubl6E4j09PQSj7G1tdWbQCgU/P1NTzYmFjWEdnyF3FQGKyW/bbXFjbPx+HPbNWSm/FeDa2mrxNMjGqFBa2cjRkZE9GTJy8uTVqN+MIFITU0t8Rhra2udAdTOzs5wdHSEUsnKAqqdeIdaQyQ9MCMUp42rHW6cjUfol5eKbc9MyUXol5fQd5IvkwsiojLKz89HQkJCsYHUycnJJR6jVquLJRBOTk4wNzevwsiJqj8mFjVEwr8Dtx04vqJW0GgE/tx2rdQ2R7Zfg1dLJ5ZFERHpUVBQgMTExGJlTElJSRBC6D1GpVLpTSBUKlUVR09UMzGxqCG0PRYcX1E7xF5L0Sl/0icjORex11JQp4ldFUVFRFT9FBYWIikpqVgCkZiYCI1Go/cYc3NzvQmEWq2u4uiJnixMLGqIpH/HWDhwDYta4V5MmkHtMtNKTz6IiJ4UGo0GycnJxRKIhIQEFBYW6j1GoVDoTSCsrKxYVkxUCZhY1BDaUihONftkS7mXhZO7o3Ht1D2D2lta8/NARE8WjUaD1NTUYgnE/fv3UVBQoPcYuVyusxq1NoGwsbFhAkFUhZhY1ACFGoG/Yov+gp2ZV4BCjYAp6+qfKGkJ2Tj1azSuHI+DtvTXVG6Cwnz93fgAoLYrmnqWiKgmEkIgLS1N71Su+fn5eo8xNTWVkocH/29rawsTE5MqfgVE9DAmFtVc6KVYLPglErGpOQCAbadu44+r9zFvkA/6+roZOToqr/SkHET8FoOoo7HQaIoyivotHNFhoBfSErP1zgql9dTwRhy4TUTVnhACGRkZOomD9uvcXP3lnCYmJnB0dCxWxmRnZ8cEgqgak4mSpkaoRdLS0mBjY4PU1FRYW1sbOxxJ6KVYvLblDB7+BmlvJdePacPkoobKTM1FROhNXP7zH2gKir7DHj726DDIC65eNlI7fetYqO2UeGo417EgouonMzNTbwKRnZ2tt71MJoODg0OxBMLe3h6mpqZVHD0R6VOW+2T2WFRThRqBBb9EFksqAECgKLlY8Eskevu4siyqBslOz8OZfbdwKewOCv4tc3JvZIuOg73hrqesqUFrZ3i1dOLK20RUrWRnZ+tNIDIzM0s8xt7evlgC4eDgADMz3ooQPSn401xNnYxOksqf9BEAYlNzcDI6Cf4NHKouMHosOZn5OHfgFi78fgf5uUWzl7h4WaPjYG/UbWpX6uBCExMZp5QlIqPIycmRBk4/mECkp6eXeIytra3e1ajlcnkVRk5ExsDEopqKTy85qXicdmQcedkFOP/7bZw7cBt52UWzmTjVs0KHQV7w9HXgbCVEVC3k5eXpTSBSU1NLPMba2lpnBiZtAqFUcrY6otqKiUU15WxlXqHtqGrl5xbiYtgdnNl3E7mZRQmFvbslOg7yhlcrRyYURGQU+fn5SEhI0Cljun//PpKTk0s8Rq1WF0sgnJycYG7O3z9EpIuJRTXVwcsebjbmiEvN0TvOQgbA1cYcHbzsqzo0KkVBfiEu/3EXEaExyE4vmi7R1kWFDgO90LCtM2QcG0FEVaCgoACJiYnFxkEkJyejpDlbVCqV3gRCpVJVcfREVFMxsaimTE1kmDfIB69tOVNsn/bWdN4gHw7criYKCzSIOnoXp3+7Kc3gZO1ojvYDvdC4vQtMTDk9IhFVvMLCQiQlJRVLIJKSkqDR6F8Hx9zcvFgC4ezsDEtLyyqOnoieNEwsqrG+vm5YP6YNZv54Hhn/DvgFinoquI5F9aAp1OCv43E4/WsM0pOKxruo7ZRo178+mnZ2gykTCiKqABqNBsnJycUSiMTERBQWFuo9RqlUFltMztnZGWq1muWYRFQpmFhUc3193bDv8j3sOPsPBrZwwwsdPdHBy549FUam0QhcO3UPp3ZHI/V+0fzsKmsF2varj+ZPucNUzoSCiMpOo9EgNTW1WAKRkJCAgoICvcfI5XKdxEH7tbW1NRMIIqpSTCxqAO20sz2bOXNqWSMTGoEbZ+/j5O5oJMcWzddurpajTaAnfAPqQK7ggk5E9GhCCKSlpenMwKT9f35+vt5jzMzMpNWoH0wgbGxsuBo1EVULTCxqgNjUor+Iu9tYGDmS2ksIgZgLCTjxSzQS72QAAJQqM7TuUw9+3epCYc4fJSIqTgiBjIwMvQlEbm6u3mNMTU2l1agfTCDs7OyYQBBRtca7oWpOCIG7//ZYuNsysahqQgjcjkzCiV1/I/5m0YJQcnNTtOrpgZa96kFpwR8hIiqSmZlZLIGIj49HTo7+9YZMTEyk1agfTCDs7e1hasreTyKqear9XdH8+fOxYMECnW0uLi6Ii4sDUHTjt2DBAnz11VdITk5Gx44d8dlnn6F58+bGCLfCJWbmIa9AA5kMcLHmnOFV6Z8ryTix62/E3ihaIMpMYYIW3T3Qunc9mKu5gixRbZWVlaXT86BNILKysvS2l8lksLe3LzYOwsHBAWZm1f7XMBGRwWrEv2jNmzfHgQMHpOcP/iVn+fLlWLlyJYKDg9G4cWMsXLgQvXv3xpUrV2BlZWWMcCvU3ZSiMigntRIKM3aBV4XYG6k4setv/HOlaMEoUzMT+AbUQZtAT6isFUaOjoiqSk5Ojt4EIiMjo8Rj7OzsiiUQjo6OkMv5xwgievLViMTCzMwMrq6uxbYLIbBq1Sq89957GDZsGABg06ZNcHFxwffff49JkyZVdagV7m4Ky6CqSvzNNJzYFY1blxMBACamMvg85Y62fetDbac0cnREVFny8vJ0Egft12lpaSUeY2NjUyyBcHJygkLBPz4QUe1VIxKLa9euwd3dHUqlEh07dsTixYvh7e2N6OhoxMXFoU+fPlJbpVKJgIAAhIeHPyGJxb8Dt21ZBlVZEu5k4OQvfyP6fAIAQGYiQzN/V7TtXx/WDkzoiJ4U+fn5SEhIKJZApKSklHiMlZWV3gTC3Jz/JhMRPazaJxYdO3bEt99+i8aNG+PevXtYuHAhOnfujMuXL0vjLFxcXHSOcXFxwc2bN0s8Z25urs5sHKX9VcrYOCNU5UmKzcSp3dG4HhEPAJDJgMYdXNFuQH3YOquMHB0RPa6CggIkJiYWSyCSk5MhhNB7jKWlpd61ICws+G8vEZGhqn1i0a9fP+lrPz8/+Pv7o0GDBti0aRM6deoEAMUWABJClLoo0JIlS4oNCK+utKVQbiyFqjCp97NwancMrp6Mg/Yeo2FbZ7Qf6AV7N0vjBkdEBissLERSUlKxBCIxMbHEBMLCwkJvAmFpyZ99IqLyqvaJxcMsLS3h5+eHa9euYejQoQCAuLg4uLm5SW3i4+OL9WI8aPbs2Zg+fbr0PC0tDR4eHpUWc3nc/bfHog5LocotPSkHp3+NRtSxOAhN0U2HV0tHdBjkBce6NX+gP9GTSqPRICkpqdg4iISEBGg0Gr3HKJVKncRB+7VareZq1ERElaTGJRa5ubmIiorC008/DS8vL7i6umL//v1o3bo1gKJBeIcPH8ayZctKPIdSqYRSWTMG4/43xoI9Fo8rMyUXEb/F4PLRu9AUFCUU9Zo7oONgLzh7Whs5OiLS0mg0SElJ0ZtAFBQU6D1GLpfrTSCsra2ZQBARVbFqn1jMnDkTgwYNQr169RAfH4+FCxciLS0N48aNg0wmw7Rp07B48WI0atQIjRo1wuLFi6FSqTB69Ghjh15u+YUaxKcXjQVx4xiLMstKy8OZfTdx6fA/KMwv+qtmnSZ26DjYG24NbIwcHVHtJYRAampqsQTi/v37yM/P13uMmZmZNHD6wQTCxsaGq1ETEVUT1T6xuHPnDkaNGoWEhAQ4OTmhU6dOOH78ODw9PQEA77zzDrKzszF58mRpgbx9+/Y9EWtYxKXmQAhAYWYCB0tOYWionMx8nN13CxfC7qAgtxAA4NbABh0Ge6NuEzsjR0dUewghkJ6erncq17y8PL3HmJqawtHRsVgCYWdnxwSCiKiak4mSRrjVImlpabCxsUFqaiqsratPaczJ6CQM//IYPB1UOPx2d2OHU+3lZhfg/IFbOH/wNvJyihIKZ08rdBzsDQ8fe5ZFEFWijIwMvQlETk6O3vYmJiZwcHAolkDY29vrLIJKRETGVZb75GrfY1GbSeMrqqgMSqMpxD9Rl5GRkgy1rR3qNGsOE5Pq/ws+L6cAF8Pu4Oy+W8jNKqrDdqirRsdBXqjfwpEJBVEFysrK0kkctP/PysrS214mk8He3r7YOAh7e3uYmfFXEBHRk4T/qldj2hmh3KpgRqhrJ8Lxe/BXyEhKkLap7R3RI+gVNOrYudKv/zgK8gpx6Y9/cGbvTWSnF9Vl27mq0GGQNxq0doLMhAkF0ePKycnRSRy0X2dkZJR4jJ2dXbEEwsHBAXK5vAojJyIiY2FiUY1peyzqVPKMUNdOhGPXysXFtmckJWDXysUYPH1OtUouCvM1uHzkLiJCY5CVWlSnbeNkgfYDvdCovQtMmFAQGSw3N1caOP1gAlHawqE2NjbFEghHR0coFBwLRkRUmzGxqMakxfEqsRTq/9u78/Ao6nxd4G91d7qT9JKls5EQQggSQtgTiGGTzZCALMcZ0TleFkedBwcYOLgMolfFwxG5yj14jwMXHB/AM84gXIVhkwnK5sgejCJEdsIWspGkk07SSXf97h8xLU13QkKTVAPv53lK07V0fyvUA/V2/RZZdmDXmlXN7rN77SokDEhTvFmUwyHjp/0FOLr9IqrKGkbLMob6I3VcZ3R/OAoqNTt2EjWlvr7eY4AoLy9v8hij0ehxKNd7ZbhuIiJqXwwWPuyXOSzarinU1bwTLs2fPKksLcHVvBOITe7dZnU0R5YFTh++jiNbL8BS0hC29EFapI7tjKTB0VBrGCiIGtntdpSUlLgFiBs3bjR5jF6v9xggAgI4zDUREbUcg4UPa4/J8arKy+7qfneTkAXOHivCka0XUHa9oWNogNEPKZmdkTw0Ghqt73csJ2orDocDpaWlbgGitLQUTQ32FxAQ4BIcGv+v1+vbuXoiIrofMVj4qCqbHZbahhGOOgS13RMLQ3DL5nVo6X53gxACF74vweEt51F61QoA0Ok16J8Rh17DO8JPx0BBDw5ZlnHjxg23jtSlpaWQZdnjMTqdzi1AREREQK/Xc5Q0IiJqMwwWPqrg56cVRn8NjP5tN6JKS2YxMZrDEJOU3GY1/FKLQP6PpTi85QKKL1UCALT+avR9tBP6jIyFNoCXK92/ZFlGeXm5W4AoKSmBw+HweIxWq3V58tAYIIxGIwMEERG1O96p+ahrFQ19CdpyRKjy6wXY8p+Lb7vfiGm/a9OO20IIXDlVhsObz+P6+YaRaDQ6NfqM7Ii+ozvBX8+hKun+IYRARUWFxwBRX1/v8RiNRuMxQJhMJs5GTUREPoPBwkc19q9oq2ZQtdYqbFyyELVVlYjs8hBSxk3Evk/XuHTkNprDMGJa285jce1sOQ5vPo+rp8sBABo/FXoO74j+GZ0QYOTQlXTvEkKgsrLS41wQdXV1Ho9Rq9UICwtza8YUHBzMAEFERD6PwcJHFbRhx23Z4cDWZUtw49oVGELNmPTK/4QhJBSJg4a228zbhRcsOLzlPC6dbBipRqWRkDw0BimZcdAHcShLuncIIWC1Wj0GiNraWo/HqFQqmM1mtwAREhICtZp9iIiI6N7EYOGjrv48h0VbBIvda1ch/4fvoNHpMOmVN2AICQUAqFTqNh9StvhyJQ5vuYCLP5T8/JkSug/ugNSszjCGtv0M40TeqK6udgkOjT/X1NR43F+SJISGhroFiNDQUGg0/OuXiIjuL/yXTWHC4UD10RzYi4uhCQ9HYGoKJLUaBRVtM4fFdzu2IPcf2wBJwtjZLyEyPuGXWmQB24UKyJV1UBm10MUHQbpLs1jfuGbF4a3nce5YMQBAkoDEh6OQOjYeQeEcK598S01NjTM43BwgrFZrk8eEhIS4BQiz2Qw/P/YRIiKiBwODhYIs2dkofGcx7NevO9dpoqIQueBVXCtvuBmJvouzbl/MzcHuNR8BAIb+ZhoeGpDu3FbzYwnKt5yDo+KXtt/qIC2CxycgoGfYHX9meWE1jmy7gNNHCgEBQAIeSo3EgHGdERLFsfNJWTabzWOAqKysbPKYoKAgtwARFhYGrZZ9goiI6MHGYKEQS3Y2rs6Z6zbeq72wEFfnzEWnh6fhYmTPu9YUqvTKJWxZtgRCyEh+ZBQGTPiVc1vNjyUo/Uue2zGOijqU/iUP5v+R1OpwYSmpwdHtF/HTwesQcsM5dukXjoGPxcMcY/DuZIhaqa6uDiUlJW4BoqKiosljjEajx8nkdDr2ASIiIvKEwUIBwuFA4TuLPU8iIRq+1n82dxO+HdMDkSbvm0JVWyqw8X+9jbqaasR0T8bo52c5x7gXskD5lnNwPk5wLwjlW87Dv4e5Rc2iqspqcfTLfOR9ew2yo+H84nqZkTa+C8I7Gb0+F6Lm1NfXo7S01C1AlJU1PXO8wWBwGcI1PDwc4eHhCAhgEz0iIqLWYLBQQPXRHJfmT+4EImrKMdh6BVqNd0NM2uvrsXnpO6govI6giEhMeHEBNDe1+bZdqPi5+VNToUGCo8IG24UK+CcEN/k51gobjv0jHyf2XYPD3jAbcMfuIUib0AVRXYK8OgeiWzkcDmeAuDlE3LhxA6KJWR8DAgKc4eHmpxCBgYHtXD0REdH9icFCAfbi4hbtF6/yPNJMSwkh8NVHH+LqTyegDQjEv/zxTQSaXG/yZYvn4TBv1dR+NVV1+C77Eo7vvgJ7fUOg6NA1CA9P7ILoh0K8qp/I4XCgrKzMLUCUlpZClmWPx/j7+7s9gYiIiIBer+ds1ERERG2IwUIBmvDwFu2njWjZfk05svlznNj7NSRJhfFz/whzx07uO90406L3UlWfARDlfG2rrkfuV5fx/deXUW9zAAAi401IG98FHZNCeANHrSLLMsrLy90CRElJCRwOh8djtFqtxwBhNBp5/RERESmAwUIBgakp0ERFwV5Y6LGfhQBQHBAM0avvHX/GmSMH8M3f1gIARkx/Hp37prjtU3e5EuXfOACo0XQfCxlqlEJnaPh2uK7Wjh92XUbuV5dhq7YDAMJiDUib0AVxPc28oaNmCSFQUVHhFiCKi4tht9s9HqPRaDwGiKCgIF5vREREPoTBQgGSWo3IBa82jAoloeGe3rlRAoTAyl4TMSr0zkZPKrxwDtv/631ACPTJGId+mePd9rEeuY6yTWcBhxoqlECGGYAM4OY+HTIACcF+q2APWIDj2fn47h+XUGutBwCERusxcHw8uvQN5w0euRBCwGKxuM1EXVxcjLq6Oo/HqNVqZ8fpmwNEcHAwVCrv+hoRERFR22OwUIgpIwP4YBkKF/0H7EVFzvWayEis7f8v2K9NwNRWTI7nkB04VnQM165fxKXlX8BusyGudz+MnP47l/2EXUb5lnOwHmroPO6v+x6hWIR822Q45Mfhf9P9W60sIEmbcBrxyPmzhBrLOQBAcGQgBjzWGV1TIqG6SxPo0b1JCIGqqiq3AFFUVASbzebxGJVKhbCwMLenECEhIVCr1e18BkRERHS3MFgoyJSRAX16Ok4PGAgAiF21EvrBg/HVkj2ApRYdWjg53lf5X+Hdw++ipLIIWQcjEVahQ5VRhvFXaVDddKPmsNSh9NM81OVbAAiY/P4KI9bhvBiNHeUTAThg1gj4S0CtAErtMoDH0PBYpR6mMH+kjo1HYlokVGp+g/ygsVqtHgNETY3nQQYkSYLZbHYLEGazmQGCiIjoPsRgoTDpphuswNRU2CGhsLJhBKaWTI73Vf5XmLdnHoQQeOT7MIRV6FDr50B2/0J8fmgB1AH+GB03GrZ8C0r/kge5sg6Sqhah6ncRoD4Kucfj+CbntwAahpwttbu0y2r4rwQMe6obkgZHQ+3l8LfUNmRZRn5+PqqqqmAwGBAXF3fHzYdqamo8Bgir1drkMaGhoW4BIiwsDBoN/4ohIiJ6UPBffR9TaKmFEIBWrYJZr212X4fswLuH34WAQN8zQYi/rodDEtidUgyLvh4SJCw5vARpBUmo2HIBcAhoVFdg1rwNP38LMHYFCgIyYd2Vi6bnsWjoXx4SpWeo8FEnT57Ejh07YLFYnOtMJhMyMzPRo0ePJo+z2WweA0RlZWWTxwQHB3sMEFpt89cqERER3f8YLHzMtfKGpxUdgv1v23/hWNExFFYXIv5qIPqeDQYAHOhZisLQhrbtGlmNyedGoiLnPAAgQPUtQvyWQdWxB/D4VsCc4OxrcTtWi+f28qSskydPYv369W7rLRYL1q9fj8mTJ6Nr167OjtM3h4iKioom39dkMrl0oI6IiEBYWBh0Ol1bng4RERHdwxgsfMy18ob26tEt6F9RXF2M8DIthhwPAwAc71KBs7ENzVXM9UF4/crv0L02HgIygjSfwKj5AtKwF4FH/gih0uDiDyU4tPV8i+rSm3hD6WtkWcaOHTua3WfDhg1NzkQNAAaDwS1AhIeHw9+/5QMHEBEREQEMFj7nWkVDsOjQghGhjLV+GJkTAbUs4VJkNXISywEAydUJWHDlOYQ6glCpsqIu4H8j1nANeHwbRKd0XM67gUObL6DooqX5D/iZIUSHDg8F3+kp0V1QV1eHyspKWCwW53LlyhWX5k+eNIaKwMBAjwEiMDCwPconIiKiBwCDhY9pfGIRc5uO23U11Tj95/+HgDo1bhjrsK9PCQBg3I1hmFH4BDRQ44LuClZErcB/hyUAj63H1csCh5YeQ8HZhiYwGq0KvUd0REiUHl+vzWvys4ZMfojDyrYhm83mEhg8LU2NvNQS48aNw4ABA+5ixURERETuGCx8TEFjH4tmmkLJsgOb/vMdlF+9imqdHV+lFkFSqfFvBU8ho2IQAGCv8SiWdfhvLE6YgOKOc3Fo5QVc+akMAKDWqNDzkRj0HxOHQFNDp1s/fzW++ewMrOW/9KUwhOgwZPJDSOgX0Vane18TQqC2tva2oaGp+R5u5efnB5PJ5FxkWcbx48dve1xYWJi3p0JERER0WwwWPuZqYx+Lm5pCybIDV/NOoKq8DIbgEJw8/A0uf58Lu0rGsUH1eCX1VYRvF+hSHQMHZKyO2IRvQ3bhzc4LUHu8Oz7/2zEAgEotoceQaKRkdoYhxLXPREK/CMT3CUfBmXJYLTboTQ3Nn/ikwjMhBKqrq28bGurr61v0fjqdziU0eFr8/f1dZjhvHGK2ueZQJpMJcXFxXp8vERER0e0wWPgQhyxw+UY1AKC40gaHLHD+yAHsWrMKVTdK3PbPTbVh6aD/gv/GUsg1gCxZkG/8PxjRYQAGlK3Fxc9uACiFpJLQPT0KqWM7w2Ru+kmISiUhJjGkrU7vniHLMqxW621Dg8PhaNH7BQQE3DY03MloSyqVCpmZmR5HhWqUmZl5x/NZEBEREbWGJJobMuYBYbFYEBQUhIqKCphMpnb9bEdlpXPm7fdHzsBuYxfIUsONYIq4jEEXt0KChDD/jghQG1DjqEJJ7RXIkDFqzAsIP2MChAQ/6RzUhi3IMfwBZ/N+vuGVgMSBUUgd1xnBEeykCwAOhwNVVVXNBobKykrIstyi99Pr9bcNDX5+fm16Tnc6jwURERHR7bTmPpnBAsoFC0t2NgoX/QfsRUXOdcX+Qfi/vSfhQIdkTLv8F3TXxaC/eRQCNb/UVW2vRFV9GSICOgEANNJBnNCG4lRRPBr/NLumRGDAY/EI7aBvt/NRmt1udxs56dalqqqq2eFXG0mSBIPB0GxgMBqNPjOz9N2ceZuIiIioEYNFKykRLCzZ2bg6Zy5wy69fRsMc2MtSJ2KkXx0GR0wCAJe29UIISJIEWci4ajuO72xJEKJhe3yfMAwc3wVhHQ3tch7txdNwq7cuVqu1Re+lUqlgNBqbDQ0GgwFqtbqNz4qIiIjIt7XmPtk3vm59wAiHA4XvLHYLFQCgQkO4yLq0H8kD/wjANVQ0vhZCoE6uwRGLCmqthE7JZqRNiEdEXOuDkdLfdt/N4VbVavVtmybp9Xp+m09ERER0lzFYKKD6aA7s16+7rRcAbuj9YfPTIMTY0aX5060kSYK/Wo+EmBj0n56CDglBd1RLW7bPb+vhVj0tgYGBbkGMiIiIiNoeg4UC7MXFbuuuB+lxMjocRlNnBKgNMPmZW/RevZOCvAoVnkYUslgsWL9+PSZPntxkuPCF4VaJiIiIyHcwWChAEx7u8vpakBGalCnob4pGnUpGAHSIkoMhQ+C6qhw1sDnXqeB6Y22zVd9RDbIsY8eOHc3us23bNgghmhxFSenhVomIiIjId9w3wWL58uV47733UFBQgOTkZCxbtgxDhw5VuiyPAlNToAoOhqO8HFUD/xV+MUk4pD0Dq/TLLMo60fBHY5PsznV6ocPD9d0QL0dACIEaAQTGt2zUp8ZmSVarFVarFRcvXmx2YjUAsFqt2LBhQ7P7+MJwq0RERESkvPsiWHz22WeYO3culi9fjsGDB2PlypXIysrCyZMn0alTJ6XL80jU1aFq4L/CFpOEXdof3bbbYHdbZ4UNX/sdx6i6nugsInDKdgODkgfjypUrzsBgtVpRXV3t8rpxaencDDcLCQlBVFSUzw+3SkRERETKui+Gm01LS0P//v2xYsUK57qkpCRMmjQJixcvvu3x7T3cbNWBA8h/5jnoJ/4JG3QHYJVsQEu7DoiGXQUkQGr9H51Wq4Ver4darUZJifts3reaNm0a4uPjW/05RERERHTve6CGm62rq0NOTg7mz5/vsj4jIwP79+/3eIzNZnMZieh2TYLutupDh1HVOwtWtQVWVctGRHKSGkaPavyvWq2GwWCAXq9HYGAg9Hp9k0tgYKCzWZIsy1i2bFmz524ymRAXF3dnJ0lERERED5R7PliUlJTA4XAgMjLSZX1kZCSuexjSFQAWL16MhQsXtkd5TVIFhqMarQwVNxkzZgz69+8PrVZ7RyMlqVQqZGZmehwVqlFmZibneyAiIiKiFrlv7hpvvblunJ3ak1dffRUVFRXO5fLly+1RolNgWhrk6mIE4M5HQoqKioJOp/Nq+NUePXpg8uTJbo+1TCZTs0PNEhERERHd6p5/YhEWFga1Wu32dKKoqMjtKUYjnU6n6PCm+oEDYMr/NwTEPwa9rGtdHwvc3SZKPXr0QPfu3RWdeZuIiIiI7n33/N2jVqtFSkoKdu7c6bJ+586dGDRokEJVNU9SqxHz7wtRVPANHq5/qGHlrf2whYd1P7vbTZRUKhXi4+PRq1cvxMfHM1QQERERUavd808sAGDevHmYMmUKUlNTkZ6ejlWrVuHSpUuYMWOG0qU1yZSRge4A8v56BCM79GyYx+KmPhd+QgWNXoeamppfjjGZkJmZySZKRERERORz7otg8eSTT6K0tBRvv/02CgoK0LNnT2zfvt3nRzQyZWRg4KhRKNmzF/LWeljUelj19ejz6/HonpwMAGyiRERERET3hPtiHgtvtfc8FkRERERE94LW3Cfz628iIiIiIvIagwUREREREXmNwYKIiIiIiLzGYEFERERERF5jsCAiIiIiIq8xWBARERERkdcYLIiIiIiIyGsMFkRERERE5DUGCyIiIiIi8hqDBREREREReY3BgoiIiIiIvKZRugBfIIQAAFgsFoUrISIiIiLyHY33x433y81hsABQWVkJAIiNjVW4EiIiIiIi31NZWYmgoKBm95FES+LHfU6WZVy7dg1GoxGSJLX751ssFsTGxuLy5cswmUzt/vnkO3gtEMDrgBrwOqBGvBYIUO46EEKgsrIS0dHRUKma70XBJxYAVCoVOnbsqHQZMJlM/AuDAPBaoAa8DgjgdUC/4LVAgDLXwe2eVDRi520iIiIiIvIagwUREREREXmNwcIH6HQ6vPnmm9DpdEqXQgrjtUAArwNqwOuAGvFaIODeuA7YeZuIiIiIiLzGJxZEREREROQ1BgsiIiIiIvIagwUREREREXmNwcIHLF++HPHx8fD390dKSgq++eYbpUuidrZv3z6MHz8e0dHRkCQJmzZtUrokUsDixYsxYMAAGI1GREREYNKkSTh16pTSZVE7W7FiBXr37u0cqz49PR1ffvml0mWRwhYvXgxJkjB37lylS6F29tZbb0GSJJclKipK6bI8YrBQ2GeffYa5c+fitddew3fffYehQ4ciKysLly5dUro0akdWqxV9+vTBhx9+qHQppKC9e/di5syZOHjwIHbu3Am73Y6MjAxYrValS6N21LFjR7z77rs4evQojh49ipEjR2LixIk4ceKE0qWRQo4cOYJVq1ahd+/eSpdCCklOTkZBQYFzOX78uNIlecRRoRSWlpaG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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAHqCAYAAACZcdjsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAA3wBJREFUeJzs3Xd4lFX2wPHvpE167xVCCSWVKqD0UBQVUcEOltVVF5dmwQbYEFRA3RXd/Sm4NkBFVEQkVBWQEhMghE4gCUlICOl9Zu7vj5DRSIAEEt6U83mePA9z5868Z4bJ5D3vvedenVJKIYQQQgghhBBXwELrAIQQQgghhBAtnyQWQgghhBBCiCsmiYUQQgghhBDiikliIYQQQgghhLhiklgIIYQQQgghrpgkFkIIIYQQQogrJomFEEIIIYQQ4opJYiGEEEIIIYS4YpJYCCGEEEIIIa6YJBZCiPP89ttv3H777fj5+WFjY4Ovry+33XYb27dv1zq0etu2bRuzZ88mPz9f61CazJo1a5g9e7bWYdTb0qVL0el0nDhxosGPnT17NjqdrvGDEleNTqe75Oc1IyOD2bNnk5iYeN598hkQovmTxEIIUcu7777LgAEDSE9PZ/78+axfv54333yTU6dOce211/Kvf/1L6xDrZdu2bcyZM6fVJxZz5szROgwhGk1GRgZz5sypM7F46KGHWtTFDSHaIiutAxBCNB9bt25lypQpXH/99XzzzTdYWf3xFXHHHXdwyy238M9//pOYmBgGDBhwVWMrLS3F3t7+qh6zOcchxNXSXD7zgYGBBAYGah2GEOIiZMRCCGE2d+5cdDodixcvrpVUAFhZWfHee++h0+l4/fXXze010xMSEhIYN24czs7OuLi4cM8995CTk3PeMZYvX06/fv1wcHDA0dGRkSNHkpCQUKvPpEmTcHR0ZN++fYwYMQInJyeGDRsGQFxcHDfffDOBgYHY2trSsWNHHnnkEc6cOVMrpieffBKA9u3bo9Pp0Ol0bN68GQCTycT8+fPp0qULer0eb29v7rvvPtLT02vFMXjwYMLDw/n555/p378/9vb2PPDAAxd9D3fs2MGNN96Ih4cHtra2dOjQgSlTptTq8+uvvzJs2DCcnJywt7enf//+/PDDD7X6lJaWMmPGDNq3b4+trS3u7u706tWLL774wvwe/fvf/wYwv75LTTOqeT3bt2+nf//+2NnZ0a5dO5YsWQLADz/8QI8ePbC3tyciIoK1a9ee9xz1iR2qp9MNGDAAW1tb/P39mTlzJlVVVXXGVZ/PRH0sWrQInU7H0aNHz7vv6aefxsbGxvw5SUhIYMyYMXh7e6PX6/H39+eGG2447zPwV43xHh45coS77rrLfOyuXbua/y9rlJeXM336dKKjo3FxccHd3Z1+/frx7bffnvd8X375JX379sXFxQV7e3tCQ0NrfU4vNAVt8+bNtX4v/vz66vrMFxYWmj+TNjY2BAQEMGXKFEpKSmo9b2FhIX/729/w8PDA0dGRUaNGcfjw4Yu+rzXx9O7dG4D777/f/JmumT5V11Sodu3aMWbMGFavXk1MTAx2dnZ07dqV1atXm197165dcXBwoE+fPuzevfu84+7evZubbroJd3d3bG1tiYmJYcWKFZeMVwhRByWEEEopg8Gg7O3tVd++fS/ar0+fPsre3l4ZDAallFKzZs1SgAoJCVFPPvmk+umnn9SCBQuUg4ODiomJUZWVlebHvvrqq0qn06kHHnhArV69Wq1cuVL169dPOTg4qP3795v7TZw4UVlbW6t27dqpuXPnqg0bNqiffvpJKaXU4sWL1dy5c9V3332ntmzZoj7++GMVFRWlwsLCzMdKS0tTkydPVoBauXKl2r59u9q+fbsqKChQSin18MMPK0D94x//UGvXrlXvv/++8vLyUkFBQSonJ8ccx6BBg5S7u7sKCgpS7777rtq0aZPasmXLBd+btWvXKmtraxUZGamWLl2qNm7cqD766CN1xx13mPts3rxZWVtbq549e6rly5erVatWqREjRiidTqeWLVtm7vfII48oe3t7tWDBArVp0ya1evVq9frrr6t3331XKaXU0aNH1W233aYA8+vbvn27Ki8vv2B8gwYNUh4eHiosLEx9+OGH6qefflJjxoxRgJozZ46KiIhQX3zxhVqzZo265pprlF6vV6dOnWpw7Pv371f29vaqW7du6osvvlDffvutGjlypAoODlaASklJafBnouZzdjE5OTnKxsZGPffcc7XaDQaD8vf3V+PGjVNKKVVcXKw8PDxUr1691IoVK9SWLVvU8uXL1d///neVnJx80WNc6Xu4f/9+5eLioiIiItT//vc/tW7dOjV9+nRlYWGhZs+ebe6Xn5+vJk2apD755BO1ceNGtXbt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8uXLa30GKyoqznvMzTffzM0330xFRQW//fYbc+fO5a677qJdu3b069fPPIL218de6KS5rs+8p6cndnZ2fPTRR3U+5s//93/93Yfz/++bg5qYZ86cybhx4+rsExYWdjVDEqLFkxELIYTZzJkzUUrx2GOPYTQaa91nNBp59NFHUUoxc+bM8x772Wef1bq9YsUKDAYDgwcPBmDkyJFYWVlx7NgxevXqVefPpdSc8Oj1+lrtH3zwwXl9a/r8dRSjZorHp59+Wqt9165dHDhwwLz6VEN17tyZDh068NFHH9V58gfVyULfvn1ZuXJlrbhMJhOffvopgYGBdO7c+bzH+fj4MGnSJO68804OHTpEaWnpRV9jU2hI7EOGDGHDhg3mK8JQ/flZvnx5redsjM9EXe6//37Ky8v54osvWLp0Kf369aNLly519tXpdERFRbFw4UJcXV35/fffL+uY9WFvb8+QIUNISEggMjKyztdbczKu0+mwsbGpdZKflZVV56pQNfR6PYMGDWLevHkA5pW12rVrB8DevXtr9f/uu+/qHfuYMWM4duwYHh4edcZdc4whQ4YA538ffP755/U6ztX8TIeFhdGpUyf27Nlzwc+fk5NTk8chRGsiIxZCCLMBAwawaNEipkyZwrXXXss//vEPgoODSU1N5d///jc7duxg0aJF9O/f/7zHrly5EisrK2JjY9m/fz8vvPACUVFRjB8/Hqg+uXnppZd47rnnOH78OKNGjcLNzY3Tp0+zc+dO8xX6i+nSpQsdOnTgmWeeQSmFu7s733//PXFxcef1jYiIAODtt99m4sSJWFtbExYWRlhYGA8//DDvvvsuFhYWjB49mhMnTvDCCy8QFBTE1KlTL/v9+/e//82NN97INddcw9SpU83v3U8//WQ+0Zo7dy6xsbEMGTKEGTNmYGNjw3vvvUdSUhJffPGF+USyb9++jBkzhsjISNzc3Dhw4ACffPIJ/fr1M88br3mN8+bNM48iRUZGmqd8NLb6xv7888/z3XffMXToUF588UXs7e3597//fd6ypI3xmahLly5d6NevH3PnziUtLY3//Oc/te5fvXo17733HmPHjiU0NBSlFCtXriQ/P5/Y2NjLf4Pq4e233+baa6/luuuu49FHH6Vdu3YUFRVx9OhRvv/+ezZu3AhUn8ivXLmSxx57jNtuu420tDRefvll/Pz8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Z6/vyjWhHpd4hBDNi6HSyKEdWSSuTyP/dCkAFlY6wvr4EjU8CA9/We1FaMfO2pLkl0ZeuiOwM+Usk5bUPe//z5be37te+wjZWdfvApjBYOB///sfb731FiNGjKh136233spnn31Gly5dWLNmTa37du/eXet2ly5dzNOFL9SnLj169CArKwsrKytzQfVfhYWFsXPnTu69994LPvcvv/zCe++9x/XXXw9AWloaZ86cqdXH2tr6otsYODs74+/vz6+//srAgQPN7du2bTtvhEZcHQ1OLHJzcxk/fjybNm1Cp9Nx5MgRQkNDeeihh3B1deWtt95qijiFaJCaJWajoqLM29S3dFkF5Tz++e8YTIqbovx5YEA7rUMS5yijkdLd8RhycrDy8sK+V090rWiUrDGUF1exb0s6+zanU1ZUBYCNnRXhAwOIHBqIg4te4wiFqL6SXd/pSNd18sLPxZasgvI66yxqNie9rpNXoy6ksXr1avLy8njwwQdxcXGpdd9tt93Ghx9+yMqVK1mwYAFPP/00Dz74IImJieZVo2qu1k+ePJmBAweyYMECbrzxRjZu3MiPP/54yZHC4cOH069fP8aOHcu8efMICwsjIyODNWvWMHbsWHr16sXkyZP529/+Rq9evejfvz/Lly831+fW6NixI5988gm9evWisLCQJ598Eju72iPw7dq1Y8OGDQwYMAC9Xl/nkvFPPvkks2bNokOHDkRHR7NkyRISExP57LPPLuftFVeowRNXp06dirW1NampqbVO2CZMmNAqN2cRLU9ubq55hbJrrrlG42gaR4XByKOfxXOmuJIuvk68fmuETBNpJgrXrePosOGkTpxIxowZpE6cyNFhwylcV7951a1dQU4ZP39xiI9nbmXn9ymUFVXh6K7n2ts7MXFuf/rd0kGSCtEiWVromHVjN+CPzUhrNOXmpB9++CHDhw8/L6mA6hGLxMRE8vLy+Oqrr1i5ciWRkZEsXrzYvCpUTcH1gAEDeP/991mwYAFRUVGsXbuWqVOnYmtre9Hj63Q61qxZw8CBA3nggQfo3Lkzd9xxBydOnMDHxweAu+++m5kzZzJjxgx69OhBSkoKkyZNqvXcH330EXl5ecTExHDvvffyxBNP4O3tXetYb731FnFxcQQFBRETE1NnPE888QTTp09n+vTpREREsHbtWvNSu+Lq06kGzmHy9fXl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", "text/plain": [ "
" ] @@ -1122,6 +1405,3686 @@ "plt.tight_layout()\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "dfeea54d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2hYAADgHmW0MRTgAwNQYVQcAwDWQ2cZQhAMATI1ABwDANZDZxlCEAwBMLUN5WOSlQHsCAAByQ2YbQxEOADA1q9Vq+DFfPA4MAADnIbONoQgHAJgaU9sAAHANZLYxbs7uAGAWXp4WvTWshpbObqRpb9aVv1/WMar72wRp1YfhWjilgRZOaaDmjcrYXmsYWkofTG2gD6eHacy/qzuy63CA9evXq227CN3Xpq2WLv1Pltf37dunDh066t772mjatGm2/cePH9eDD3XVvfe10WsjRhTpUd/8smb8b7XVG23Wojy3DShCjGR29aolNH9SfW1a3kJNG5a27ff0sGhEdDUtmtZA8yfVV9UqxR3ZdTgAme08ZLYxeSrCK1eurGrVqiktLc22LywsTBs3bszXm48aNUopKSn5OrZ169ZatWqVJKlPnz6aPn16vs6TV7/++qseffRRValSRbVr11b9+vU1b968An/fypUr64cffrhhu9DQUP31118F3p/C6IH25XTqzFX1eHanNu84pycfqZhtu683nFGfF3arzwu79d3OPyRJJYp7aFDfOxU98oAiB+zSpNm/OLLrKGBpaWl6861xWvzhIq38YoVmz5mjCxcu2LUZOWq0YmIma+2ab/Tt+g06/PPPkqTxEybohUEDtWH9tzp37g9t2LDBCZ/AtWWOqhvdcB2ZTWYXZkYy+9yf1/T2tMNauznRbv+DHcrpr7/S1Wvgbr02/icNePpOR3UbDkBmOxeZbUyer4Rfu3ZN8+fPvyVvPnr06HwHujMkJCSoefPmioiI0NGjR3XgwAGtW7fO7i84mbLb5whxcXG67bbbnPLerq5ZozL6Zv0ZSVLs+jNq3rDMDY74n3atArVuc6L+OH/9z/OFpNQC6SOcY9/+/apataqCg4Pl6+ur1q1bafOWLbbXz5w5o/S0NFWrVk0eHh56oEsXrf92vaxWq/bujdO9994rSera9SF9u369sz6Gy8qw5m3D/5DZZHZhZSSzz/6RoiNHL2f5i36lkGLate+8JCn+zFWVKeWl0iU9C7zPcAwy27nMktnnz59XZGSk/P395e/vr8jIyCyDMf/0+eefq3379goICJDFYlFcXFyWNteuXdPAgQMVEBCg4sWL64EHHtDvv/+e5/7luQgfPXq03njjDV25csVu/8WLF9WvXz81atRIderUUVRUlFJTrxci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4apYmA1FzoULF3T58mWNGTNG48ePV8mSJfXWW29pxYoVmjhxolq2bClJSk1Nlaenp5N7C0dKT0+Xu7u7UlJSVLJkSfXp00czZsyQJHXu3Flubm567733FBIS4uSeAkDRQGYjJ2Q2XBlXwlFkZI43lSxZUkeOHNGFCxf02muvKSkpScOGDdMjjzyiqKgobdy4UZII8yLI3d1dkuTl5aVdu3Zp6dKlio6OliStWrVKly5dUt++fXXt2jVndhMACj0yGzdCZsOVeTi7A4AjZD7SJCkpSf7+/mrdurX8/f0VExOjoUOHavz48Xr55ZeVlpZGkBdBmX8+du/erdOnT8vLy0vt27fX7t27FRoaKnd3d73zzjtav369du3aJW9vb2d3GQAKLTIbuSGzURgwHR2FXuaX9Zo1azR+/HgFBATIx8dHH3zwgeLi4jRt2jSlp6drypQp8vf3d3Z34SSxsbEaNGiQOnbsqM8//1y9e/fW0KFDdebMGVWtWlUvvPCCJk+e7OxuAkChRmbDCDIbro7p6CjU0tPTZbFYtGXLFg0YMEAvvPCCXnzxRR07dkytW7dWaGionnrqKVksFp08edLZ3YWTnD59WiNGjNDs2bM1ZcoULV++XEeOHNHs2bN155136uDBg+rQoYOzuwkAhRqZDSPIbBQGFOEolOLj45WRkSF3d3elp6dr//79euaZZ/TAAw+oSZMm2rRpk65evar//Oc/at68ud59913VqlXL2d2Ggxw9elTTp09Xenq6pOurq1aoUEH169eXJIWFhenxxx/X4sWLdeHCBd1zzz1q3769mDgEALcemY3ckNkojCjCUeikpqZqxIgR6tKli23lzPT0dH3yySe2x1VIUsOGDW3/Xrp0aWd0FU5y9uxZjRgxQjExMcrIyFCxYsX066+/auTIkbY25cuXV+XKle3uJbNYLM7oLgAUWmQ2boTMRmFEEY5Cx9PTU4MGDZK/v7969uyp9PR0RUZGqkGDBpo6daqOHj2qn376SVu2bFGFChWc3V04WEZGhho1aqTVq1drxowZGj9+vLy9vbVy5UotXbpU3bt314QJE/Tss8+qT58+uu2225zdZQAotMhs5IbMRmHFwmwolKxWqw4ePKjXX39d3t7eWrx4sbZt26ZFixZp+/btKlmypKKjo/XQQw85u6twoMwFf86dO6eAgABt375dTz75pPr166ehQ4cqMTFRU6dOlb+/v+rXr682bdrYjgEAFAwyG9khs1GYUYSj0Mj84r106ZJ8fX0lSb/++quGDBkif39/LViwQG5ubjpx4oRuu+02lS1bli/rIiTzv/WqVav07rvv6sMPP1SFChW0bds29erVS3369NFrr73m7G4CQJFAZiM3ZDYKO4pwFCqxsbEaP368br/9dpUvX14TJkzQb7/9piFDhsjHx0eLFy+Wu7s7QV5ErVq1Sq+99preffddtWnTRpcvX1bx4sW1d+9ede/eXc8995yio6Od3U0AKBLIbOSGzEZhxj3hKDS+//57vfPOO7b7gr744gs98cQTuuOOOzR+/HhZLBbblzVhXvRcvXpVn3zyid5//301bNhQH330kdq2bavXXntNtWrV0oIFCzR8+HB9++23zu4qABR6ZDZyQ2ajsKMIR6Hw888/a+jQoXr88cf12GOPqW3bttqzZ4/27dunr776SnfddZf69u2rv/76SykpKc7uLhwkc6LPhQsX5OPjo2LFiqlr167q3bu3fv/9d/Xo0UOHDx/Wr7/+qubNm6tv376Kj493cq8BoHAjs5EdMhtFCUU4XFrmF/bx48f1119/ad68ebp8+bIkqXjx4mratKksFovc3Nz022+/adeuXbp69aozuwwHyZy++OWXXyo6OlpnzpzRnDlz9O9//1tvvPGG/v3vf+uhhx7SL7/8ovT0dB05ckSHDh1So0aNnN11ACiUyGzkhMxGUcM94XBJmV/WFy9eVIkSJSRJ+/bt09tvvy1fX1+NGTNGSUlJevDBB/X++++rWbNm+uqrr1SlShXVqFHDyb2Ho6xatUqvv/66pk6dqubNm0u6/rgTNzc3ffrppxo7dqzeeOMNPfDAA7p69aquXLnC82cB4BYjs2EEmY2ihCIcLiczzNesWaOJEyeqdOnSKlGihObOnatdu3ZpyJAhOnHihMLDwzVgwAA1bdrU2V2GE1y9elVPPvmkXnzxRdWoUUNr167V559/rrJly+rVV1/Ve++9p8aNG6tLly5KT0+Xu7u7s7sMAIUOmQ0jyGwUNRThcEmbNm1Sv379NH78eJUtW1YvvfSSSpYsqdjYWO3cuVMLFy5URkaGZs2aJUmsrFoE/fXXX+rRo4eKFSumCxcuqHHjxrrtttv0yy+/aPTo0QoODmbVXQBwADIbN0Jmo6ihCIdLmjJliqxWqwYPHmzbFxYWpldffVUPPfSQNmzYoJkzZ6pKlSoaP3683NxY/qCwywzmw4cPy2KxqFSpUkpPT9dnn32mxo0bq2HDhtq7d6969eqlFStW6M4773R2lwGgSCCz8U9kNoo6D2d3AMiP1NRUffrpp3ryyScVEBAgSWrcuLFtQZd7771Xnp6eqlq1KmFeRGQu6DJmzBgFBwfr7NmzevLJJzVgwABJ0sqVKzVy5EiNGzeOMAcAByKz8U9kNoo6inCYXuZo6alTp5SWlqaQkBA9/vjjOn78uKZMmaLnnntOFy5c0NatW/Xkk09Kktzc3NSyZUsn9xyOdPDgQb366qtaunSpypUrpx9++EH9+/eXv7+/Hn30UX3yyScaO3asOnXq5OyuAkChRWbDCDIbRR1FOEzPYrHo66+/1tChQxUUFKTz589r8uTJat26tWJjY9WxY0eVKFFCo0aNUnh4uLO7CwfK/MteRkaGrFarAgICbCvptmjRQj179tTBgwfl4+OjuXPnqnjx4txPBgAFiMxGTshs4H+Y8wPT27t3r6Kjo/Xee+9pzZo1atu2rd566y01atRIc+fO1ZdffqnPP/9cDz30kFjioGixWCz64osv1LlzZ3l4eMjT01MrV65URkaGJMnPz09//PGHMjIy5OPjYzsGAFAwyGzkhMwG/ociHKZ3+fJl3XfffbZnRo4bN07e3t564403JEkVK1ZUYGCgJL6si5pff/1VS5cu1ZgxY3T33XerUaNG+uabbzRs2DB98803mj59uh599FG5ubnxOBMAcAAyGzkhs4H/oQiHqWSOiv99dDw9PV0ff/yx9u3bZ9vXrVs3hYSEOLx/cK5Tp05p48aNSklJUWJiooYOHaojR46oXLlykqQXXnhBTZs21dmzZ/XZZ59p4sSJatu2rZN7DQCFE5mN3JDZQM4owmEa8fHx+s9//qOLFy/KYrHYQr1Vq1Z66aWXFBkZqeXLl+vrr7/WO++8o4YNGzq5x3CkQ4cOqUuXLtq8ebO2b9+uwMBAtWvXTiVKlNAXX3yhc+fOqWzZsurZs6fef/99TZs2TZ06dWK6IwAUADIbuSGzgdyxMBtM44svvtCqVauUmpqqhx56SL6+vrYFOV544QWVKVNGU6ZMUXBwsN5880116NCBBTuKiEOHDqlbt27697//rT59+thC+plnnlFaWpq+++47eXl5qWvXripTpowkcT8ZABQgMhs5IbOBG7NYGXKCkyUmJuratWsKCQnR1KlTtWPHDnXo0EHdunWTr6+v0tPT5e7urj///FPHjx9X7dq15eHhQZgXERkZGXrmmWdUs2ZNvfjii5KuT31MS0uTp6enJGnBggX6/PPP1blzZz399NPy8GB8EQAKApmN3JDZgDFMR4dTpaWlaciQIXrllVd07NgxDRo0SGFhYYqNjdWyZcuUlJQkd3d3rVu3TjVr1lR6errty5owLxrc3Nx05swZ1a1bV5KUmpoqi8ViC/O9e/fqqaeeUpcuXdSoUSPCHAAKCJmNGyGzAWMowuE0VqtVHh4emj17tq5cuaKpU6fq1KlTio6OVsOGDRUbG6utW7fqq6++UlRUlKZNm6awsDBndxtOYLFYtHnzZkmSp6en0tPTbdPbvv32W23cuFHPPPOM6tWr58xuAkChRWbDKDIbuDGKcDjdzz//LG9vby1YsEADBw7UiRMn9OKLL6pRo0aaPHmyevbsqQkTJuiRRx5hwY4iJj09XZLUpk0b7du3T+vWrZMkubu7y2KxaNu2bVq0aJFKlCjhzG4CQJFBZiMnZDZgHPeEw6k2bdqkZ599VkuWLJHVatWrr76qChUq6M0331S5cuU0a9YsVa9eXa1ateJ+siIk87/1pUuX5Ovrq7/++ktRUVFKTk5W8+bN1bZtW508eVJDhgzRpEmT1KlTJ2d3GQAKPTIb2SGzgbyjCIdTLVq0SD/++KPGjx8v6fqCL02aNFHNmjUVExOjO++809aWQC9aYmNjNX78eJUrV041a9bU8OHDNWnSJK1evVoXL15UxYoV1atXL3Xp0oU/GwDgAGQ2ckJmA3nDaghwqrS0NH311Ve2QA8MDFRUVJQ+/fRT27SmTHxhFx3ff/+93nnnHT377LMKCAhQVFSUjh07prlz5yo6OlpXrlyRu7u7vL29CXMAcBAyG9khs4G840o4HCbzi3fXrl06c+aMypUrp/r16+v+++9XcnKyFi9erEOHDmnu3LkaPny46tev7+wuwwl+/vlnPfvss3riiSfUt29fSdLly5fVqFEjvfXWW3rwwQclcZUFAAoSmQ0jyGwgf1iYDQ5jsVi0atUqPfPMM9q0aZP69u2rDz74QKtXr1ZwcLAGDBig4cOHq0+fPoR5EZQ5Hnj8+HH99ddfmjdvni5fvixJKl68uJo1ayYvLy9be8IcAAoOmY3ckNnAzaEIh8Ps379fEyZM0Lp169SgQQN5enoqIiJCkvTZZ5/ps88+05o1a2z3C6FoyPxvfenSJUlSu3btNHv2bFWpUkWDBw9WfHy8Dh06pE2bNsnPz8+ZXQWAIoPMRnbIbODWYDo6ClRGRobc3K6P9Rw4cEDbtm2Tl5eXZsyYoaVLl+qOO+7Q6tWrVbFiRdWqVYvpSkVM5n/vNWvWaOLEiSpdurRKlCihuXPnateuXRoyZIhOnDih8PBwDRgwQE2bNnV2lwGg0CKzkRsyG7h1KMJRIJKTkxUfH6977rlH3377rQICAnTp0iVFRUXJz89PK1asUNmyZbVx40Y999xz+vjjjxUaGursbsMJNm3apH79+mn8+PEqW7asXnrpJZUsWVKxsbHauXOnFi5cqIyMDM2aNUsS95UBwK1GZsMoMhu4NZiOjgJx5swZPfjgg/r3v/+t/v3769q1a2rWrJk6deqkhIQErV+/XrNnz9bAgQM1ceJEwrwIi4uLU//+/dW1a1c1b95cO3bs0Llz5/T5558rLCxMDz/8sM6dO6eXX35ZGRkZhDkA3GJkNowis4Fbg0eUoUBUrVpVjz/+uMaMGaPXX39djRo1kiS9/fbbKlGihLZu3Sqr1apJkyapXbt2jJQWYampqfr000/15JNPKiAgQJLUuHFjWSwWubm56d5775Wnp6eqVq1qmyYJALh1yGwYRWYDtwbT0XFLZQZzcnKyNm/erEOHDumVV17RokWL9MQTT0i6/pxRDw8Pu3vPUDRk/vk4deqU0tLSFBISovj4eL399tsqWbKknnvuOV24cEE9e/bUzJkzFR4e7uwuA0ChRWYjN2Q2UHC4Eo5bJvPL+ssvv9S8efM0d+5cde7cWZUqVdJjjz2m4sWLKyAgQKNHj9Z//vMf+fv7O7vLcDCLxaKvv/5aQ4cOVVBQkM6fP6/JkyerdevWio2NVceOHVWiRAmNGjWKMAeAAkRm40bIbKDgcCUct9SqVas0YsQITZgwQe3atdNff/2l2267TatWrdLgwYNVtmxZRUdH69FHH3V2V+EEe/fuVc+ePTV37lw1b95cw4YN0759+zR79myFhIToxIkT8vHxUWBgINMdAaCAkdnIDZkNFByKcNwyly5dUt++ffXaa6+pYsWK+vrrr/Xee+8pIiJCr732mk6cOCGLxaKQkBC+rIuo7777Th9//LHee+89276uXbuqbNmymjNnjhN7BgBFC5mNGyGzgYLDzT24ZXx9feXp6amuXbvqqaee0tGjR9W+fXvt27dPx48fV8WKFRUSEiJJhHkRkDm+9/dxvvT0dH388cfat2+fbV+3bt1sfy4AAI5BZuPvyGzAsbgnHPmWOTK+e/dunT17VuXLl9fcuXM1f/58tWzZUrVr19bRo0e1bNkyXblyxdndhQPFx8dr8+bNuv/++1WiRAnbn5VWrVrppZdeUmRkpEaPHi0fHx+98847mjBhgrO7DACFGpmNnJDZgONRhCPfLBaLVq1apddff1333XefNm7cqMGDB+v555+XJC1btkxvvPGGxowZo+rVqzu5t3CkL774QqtWrVJqaqoeeugh+fr62kL9hRdeUJkyZTRlyhQFBwfrzTffVIcOHZjuCAAFiMxGTshswPEowpEnly5dkoeHh3x8fLRv3z6NHz9e69atU2xsrL777ju1a9dOqampunTpkrZv364xY8bogQce4Mu6iEhMTNS1a9cUFRWllJQUrV69WhkZGerWrZt8fX2Vnp6u4sWL69FHH1WjRo1Uu3ZteXh48OcDAAoAmY3ckNmA83BPOAxLTk5W165d9emnn8pqtcrd3V29evXSypUrNXnyZH300UcKCgrSxo0blZiYqLfeeoswL0LS0tI0ZMgQvfLKKzp27JgGDRqksLAwxcbGatmyZUpKSpK7u7vWrVunmjVrKj09XR4e18cB+fMBALcWmY3ckNmAc1GE44YyF+nw8/NTly5dNHPmTP3nP//R8ePHNWPGDM2fP1+rVq3SHXfcoQ0bNuiFF17Q1atX5eXlJYkv66LAarXKw8NDs2fP1pUrVzR16lSdOnVK0dHRatiwoWJjY7V161Z99dVXioqK0rRp0xQWFubsbgNAoUNm40bIbMD5KMJxQ9euXbP9+6BBgxQZGamYmBhZLBaFhYXpzz//1NatWzVv3jwNGjRIEyZMUN26dZ3YYzjLzz//LG9vby1YsEADBw7UiRMn9OKLL6pRo0aaPHmyevbsqQkTJuiRRx4RT0cEgFuPzIZRZDbgPDwnHLn6+eef9eijj6p79+4qW7as+vbtKzc3Ny1btkxTpkzR6NGj9eWXXyotLU2pqanq1q2b2rVrx3S2ImjTpk169tlntWTJElmtVr366quqUKGC3nzzTZUrV06zZs1S9erV1apVK/58AEABILNhFJkNOBdFOHK1Z88ehYWFqXXr1nJzc1N6erqKFSumIUOGaMGCBTp37pz69eunhx56SJLk5sbkiqJq0aJF+vHHHzV+/HhJ1xd8adKkiWrWrKmYmBjdeeedtrYEOgDcemQ2jCKzAefi2xe5ql+/vrZt26azZ89q3Lhxevfdd9WlSxfNmTNH586d0zfffKPevXsrPj6eMC/i0tLS9NVXX9l+DgwMVFRUlBISEpSenm7XljAHgFuPzIZRZDbgXFwJhyHr169XdHS0pk+frubNm+vatWtKT0/X6tWrVaFCBTVp0sTZXYQDZY6K79q1S2fOnFG5cuVUv3593X///UpOTtbixYt16NAhzZ07V8OHD1f9+vWd3WUAKDLIbPwdmQ2YD0U4DNuwYYOef/55zZs3T+Hh4XYjo5l/jBgtLTpWrVql119/XW3bttW6dev0wgsvqHfv3nrkkUd09epVxcfHa9SoUerSpYuzuwoARQ6Zjb8jswFzoQhHnmzatEm9e/fW4sWL1bx5c2d3B06yf/9+DRgwQCtWrNDatWs1adIkrVixQuXKlZMkXb16VZcvX1aZMmW4lwwAnITMhkRmA2ZEEY48W79+vTw8PNSyZUtndwUOlJGRYbuH8MCBA9q2bZu8vLw0Y8YMLV26VHfccYdWr16tihUrqlatWgQ5AJgAmV00kdmAuVGEI9/4wi4akpOTFR8fr3vuuUfffvutAgICdOnSJUVFRcnPz08rVqxQ2bJltXHjRj333HP6+OOPFRoa6uxuAwD+hswuGshswDV4OLsDcF2EedFw5swZPfjgg3rggQf0xRdf6MMPP1SzZs3UqVMnffrpp1q/fr0uXLig6dOna+LEiYQ5AJgQmV00kNmAa+BKOIAbGj16tMaMGaPXX39dI0eOtO1/8803debMGVmtVj3wwANq164dV1sAAHAiMhswP4pwANnKDObk5GRt3rxZhw4d0iuvvKJFixbpiSeekHT9OaMeHh52954BAADHIrMB18J0dABZZIb5l19+qXnz5mnu3Lnq3LmzKlWqpMcee0zFixdXQECARo8erf/85z/y9/d3dpcBACiSyGzA9VCEA8jCYrHYnik6YcIEBQYG6q+//tKjjz6q2267TYMHD1bZsmUVHR2tUqVKObu7AAAUWWQ24HoowgFkcenSJS1evFgffvihKlasqKVLl+q9995TRESEXnvtNdWpU0cWi0UhISHcTwYAgBOR2YDroQgHkIWvr688PT3VtWtX1alTRw0bNlT79u0VFxen48ePq1KlSra2hDkAAM5DZgOuhyIcgG1kfPfu3Tp79qzKly+vuXPnav78+WrZsqVq166to0ePatmyZbpy5YqzuwsAQJFFZgOuj6URAdjuJ+vXr5/WrVunf/3rX/rss8/0/PPPq3bt2lq2bJm6du2qUaNGqXr16s7uLgAARRaZDbg+inCgiLp06ZKuXr0qSdq3b5/Gjx+vdevWqX79+vLw8FC7du2Umpqq8+fPa/v27RozZoweeOAB8VRDAAAci8wGCheeEw4UQcnJyXr44YfVq1cvPfnkk/rxxx+1fft2eXp66r333tPSpUt1xx13aO3atapYsaKqVKkiLy8vFnQBAMDByGyg8OGecKAIyQxkPz8/denSRTNnzpSXl5d8fX01Y8YM+fr6atWqVQoKCtKGDRv0wgsv6OOPP5aXl5ckFnQBAMBRyGyg8GI6OlCEXLt2zfbvgwYNUmRkpGJiYmSxWBQWFqY///xTW7du1bx58zRo0CBNmDBBdevWdWKPAQAomshsoPBiOjpQRPz888969NFH1b17d5UtW1Z9+/aVm5ubli1bpilTpmj06NH68ssvlZaWptTUVHXr1k3t2rVjOhsAAA5GZgOFG0U4UETs2bNHYWFhat26tdzc3JSenq5ixYppyJAhWrBggc6dO6d+/frpoYcekiS5uTFRBgAAZyCzgcKNIhwoQnbs2KF+/frp/fffl7u7u3bu3KmNGzcqKSlJ33zzjYoXL65Dhw7p9ttvd3ZXAQAo0shsoPCiCAeKmPXr1ys6OlrTp09X8+bNde3aNaWnp2v16tWqUKGCmjRp4uwuAgAAkdlAYUURDhRBGzZs0PPPP6958+YpPDzc7v6xzK8E7ikDAMD5yGyg8KEIB4qoTZs2qXfv3lq8eLGaN2/u7O4AAIAckNlA4UIRDhRh69evl4eHh1q2bOnsrgAAgFyQ2UDhQREOgEeaAADgIshswPVRhAMAAAAA4CA8VBAAAAAAAAehCAcAAAAAwEEowgEAAAAAcBCKcAAAAAAAHIQiHAAAAAAAB6EIBwAAAADAQSjCAQAAAABwEIpwAAAAAAAchCIcAAAAAAAHoQgHAAAAAMBBKMIBAAAAAHAQinAAAAAAAByEIhwAAAAAAAehCAcAAAAAwEEowgEAAAAAcBCKcAAAAAAAHIQiHAAAAAAAB6EIBwAAAADAQSjCAQAAAABwEIpwAAAAAAAchCIcAAAAAAAHoQgHAAAAAMBBKMIBAAAAAHAQinAAAAAAAByEIhwAAAAAAAehCAcAAAAAwEEowgEAAAAAcBCKcAAAAAAAHIQiHAAAAAAAB6EIBwAAAADAQSjCAQAAAABwEIpwAAAAAAAchCIcAAAAAAAHoQgHAAAAAMBBKMIBAAAAAHAQinAAAAAAAByEIhwAAAAAAAehCAcAAAAAwEEowgEAAAAAcBCKcAAAAAAAHIQiHAAAAAAAB6EIBwAAAADAQSjCAQAAAABwEIpwAAAAAAAchCIcAAAAAAAHoQgHAAAAAMBBKMIBAAAAAHAQinAAAAAAAByEIhwAAAAAAAehCAcAAAAAwEEowgEAAAAAcBCKcAAAAAAAHIQiHAAAAAAAB6EIBwAAAADAQSjCAQAAAABwEIpwAAAAAAAchCIcAAAAAAAHoQgHAAAAAMBBKMIBAAAAAHAQinAAAAAAAByEIhwAAAAAAAehCAcAAAAAwEEowgEAAAAAcBCKcAAON27cODVs2FAlSpRQYGCgHnroIR0+fNiuTZ8+fWSxWOy2Jk2aZDnX9u3bdd9996l48eIqWbKkWrdurb/++stRHwUAgEJt1KhRWfI4ODjYrs3nn3+u9u3bKyAgQBaLRXFxcXav//nnnxo4cKDuueceFStWTBUrVtSgQYOUlJTkwE8CmAdFOOBiUlJSnN2Fm7Zp0yY9//zz2rFjh9auXau0tDRFRETo8uXLdu06dOig+Ph427Z69Wq717dv364OHTooIiJCO3fu1H//+18NGDBAbm58tQEAnK8wZLYk1axZ0y6PDxw4YPf65cuX1axZM7399tvZHn/69GmdPn1aEydO1IEDB7Rw4ULFxsbq6aefdkT3AdPhb6qAybVu3VoDBgxQdHS0AgIC1K5dO0nXC9lGjRrJ29tb5cqV09ChQ5WWliZJ+vLLL1WyZEllZGRIkuLi4mSxWPTyyy/bzvvss8/q8ccflyQdP35cXbp0UalSpVS8eHHVrFkzS8F7K8XGxqpPnz6qWbOm6tatqwULFujEiRPavXu3XTtvb28FBwfbttKlS9u9/uKLL2rQoEEaOnSoatasqapVq+qRRx6Rt7d3gfUdAICcFMbMliQPDw+7PC5btqzd65GRkXr99dfVtm3bbI+vVauWli1bpi5duujOO+/UfffdpzfffFNffvml7fcAFCUU4YAL+OCDD+Th4aGtW7dq9uzZOnXqlO6//341bNhQ+/bt08yZMzV//nyNHTtWktSyZUtdvHhRe/fulXQ9/AMCArRp0ybbOTdu3KhWrVpJkp5//nldu3ZNmzdv1oEDBzR+/Hj5+vrm2J+oqCj5+vrmup04ccLw58ucjvbPInvjxo0KDAzU3XffrX79+ikxMdH2WmJior7//nsFBgaqadOmCgoKUqtWrfTdd98Zfl8AAG61wpjZR44cUfny5VWlShU99thj+u23327216SkpCT5+fnJw8Pjps8FuBqL1Wq1OrsTAHLWunVrJSUl2cJZkoYPH65ly5bp4MGDslgskqQZM2bolVdeUVJSktzc3NSgQQP17NlTQ4YMUdeuXdWwYUONHj1a586d0+XLl1WuXDkdPHhQ1apVU506dfTwww9r5MiRhvqUmJio5OTkXNtUrlzZULBarVY9+OCDOn/+vLZs2WLbv3TpUvn6+qpSpUo6evSoRowYobS0NO3evVve3t7asWOHwsPDVbp0aU2cOFGhoaFatGiRZsyYoR9++EFVq1Y19FkAALhVCmNmf/3117py5YruvvtunTlzRmPHjtWhQ4f0448/qkyZMnZtjx07pipVqmjv3r0KDQ3N8f3++OMP1a9fX5GRkbbBCKAoYegJcAFhYWF2Px88eFDh4eG2MJekZs2a6dKlS/r9999VsWJFtW7dWhs3blR0dLS2bNmisWPHatmyZfruu+904cIFBQUFqVq1apKkQYMG6bnnntOaNWvUtm1bPfzww6pTp06O/QkMDFRgYOAt+WwDBgzQ/v37s1zB7tGjh+3fa9WqpbCwMFWqVElfffWVunXrZpu29+yzz+qpp56SJNWrV0/ffvut3n//fY0bN+6W9A8AgLwobJndsWNH27/Xrl1b4eHhuvPOO/XBBx8oOjo6z+dLTk5Wp06dVKNGDcMDCUBhw3R0wAUUL17c7mer1WoX5pn7JNn2t27dWlu2bNG+ffvk5uamGjVqqFWrVtq0aZPdtDZJ6tu3r3777TdFRkbqwIEDCgsL07Rp03Lsz62ajj5w4ECtXLlSGzZsUIUKFXJtW65cOVWqVElHjhyx/SxJNWrUsGtXvXr1PE2FBwDgViqsmf33z1e7dm1bHufFxYsX1aFDB/n6+mr58uXy9PTM8zmAwoAr4YALqlGjhpYtW2YX7Nu2bVOJEiV0++23S/rfPWYxMTFq1aqVLBaLWrVqpXHjxun8+fN64YUX7M4ZEhKiqKgoRUVFadiwYZo7d64GDhyY7fuPGTNGL730Uq59LF++fI6vWa1WDRw4UMuXL9fGjRtVpUqVG37mP/74QydPnrQV35UrV1b58uWzPNrs559/thu1BwDAmVw9s//p2rVrOnjwoFq0aGH4GOn6FfD27dvL29tbK1eulI+PT56OBwoTinDABfXv318xMTEaOHCgBgwYoMOHD2vkyJGKjo62PZ7L399foaGhWrx4saZMmSLpesg/+uijSk1NVevWrW3nGzx4sDp27Ki7775b58+f1/r161W9evUc3/9mp7Y9//zz+uijj/TFF1+oRIkSSkhIsPX5tttu06VLlzRq1Cg9/PDDKleunI4dO6ZXX31VAQEB6tq1qyTZVo4dOXKk6tatq9DQUH3wwQc6dOiQPvvss3z3DQCAW8nVM/ull15Sly5dVLFiRSUmJmrs2LFKTk5W7969bW3+/PNPnThxQqdPn5Yk2wB55mrqFy9eVEREhK5cuaLFixcrOTnZdp962bJl5e7unu/+AS7JCsDUWrVqZX3hhRey7N+4caO1YcOGVi8vL2twcLD1lVdesaamptq1GTJkiFWS9YcffrDtq1u3rrVs2bLWjIwM274BAwZY77zzTqu3t7e1bNmy1sjISOu5c+cK7DNJynZbsGCB1Wq1Wq9cuWKNiIiwli1b1urp6WmtWLGitXfv3tYTJ05kOde4ceOsFSpUsBYrVswaHh5u3bJlS4H1GwCA3BTGzO7Ro4e1XLlyVk9PT2v58uWt3bp1s/744492bRYsWJBtro8cOdJqtVqtGzZsyDH7jx49WmB9B8yK1dEBAAAAAHAQFmYDAAAAAMBBKMIBAAAAAHAQinAAAAAAAByEIhwAAAAAAAehCAcAAAAAwEF4TjhylJGRodOnT6tEiRKyWCzO7g4AF2K1WnXx4kWVL1/e9hxcAAWDvAZwM8hsx6MIR45Onz6tkJAQZ3cDgAs7efKkKlSo4OxuAIUaeQ3gViCzHYciHDkqUaKEJOm7LZvl6+vr5N7AjA43eNTZXYBJXbFm6CnrUdv3CICCQ17jRshr5IbMdjyKcOQoc0qbr68v/1MiW8Us7s7uAszMqpueGnv16lWlpKTk6RgvLy/5+Pjc1PsCroS8xo2Q17ghMtuhmPQPADClq1evqvxtvvL398/TVqVKFV29ejVP7zVjxgxVqVJFPj4+atCggbZs2ZJr+02bNqlBgwby8fHRHXfcoVmzZtm9PnfuXLVo0UKlSpVSqVKl1LZtW+3cufOm3xcAADNyZGYXBlwJBwCYUkpKis4rXR/43KFiBseMryhDvRN+U0pKiuGR9aVLl2rw4MGaMWOGmjVrptmzZ6tjx4766aefVLFixSztjx49qvvvv1/9+vXT4sWLtXXrVvXv319ly5bVww8/LEnauHGjHn/8cTVt2lQ+Pj6aMGGCIiIi9OOPP+r222/P1/sCAGBWjsrswsJitVqtzu4EzCk5OVn+/v6K27uH6W3I1k/3dHJ2F2BSV6zp6pHxq5KSkuTn55evc2R+B33mW1XFDU6lvGxN1yOXjuTpfRs3bqz69etr5syZtn3Vq1fXQw89pHHjxmVp/8orr2jlypU6ePCgbV9UVJT27dun7du3Z/se6enpKlWqlKZPn65evXrl632BnJDXuBHyGrlxpcwuLJiODgAwNYunW5426fpfBv6+Xbt2Ldtzp6SkaPfu3YqIiLDbHxERoW3btmV7zPbt27O0b9++vXbt2qXU1NRsj7ly5YpSU1NVunTpfL8vAABml5/MLoqK7icHALgEN3eL3DwMbu7XF5UJCQmxu+cspyvL586dU3p6uoKCguz2BwUFKSEhIdtjEhISsm2flpamc+fOZXvM0KFDdfvtt6tt27b5fl8AAMwuP5ldFHFPOADA1CyeFlncjAW1JeN6u5MnT9pNbfP29s79uH+sCGu1WnNdJTa79tntl6QJEybo448/1saNG7Pc85bX9wUAwMzyk9lFEUU4AMDU3DwscjMY6G7/H+h+fn6G7i8LCAiQu7t7lqvPiYmJWa5SZwoODs62vYeHh8qUKWO3f+LEiXrrrbe0bt061alT56beFwAAs8tPZhdFTEcHAJiaxdOSpy0vvLy81KBBA61du9Zu/9q1a9W0adNsjwkPD8/Sfs2aNQoLC5Onp6dt3zvvvKM33nhDsbGxCgsLu+n3BQDA7AoyswsTroQDAEzNzd34fWNu6XkP9OjoaEVGRiosLEzh4eGaM2eOTpw4oaioKEnSsGHDdOrUKS1atEjS9ZXQp0+frujoaPXr10/bt2/X/Pnz9fHHH9vOOWHCBI0YMUIfffSRKleubLvi7evrK19fX0PvCwCAqynozC4sKMIBAKZmcbfIYjDQLcp7oPfo0UN//PGHxowZo/j4eNWqVUurV69WpUqVJEnx8fE6ceKErX2VKlW0evVqvfjii3rvvfdUvnx5TZ061faMcEmaMWOGUlJS9Mgjj9i918iRIzVq1ChD7wsAgKsp6MwuLCjCAQCmlqdR9XwGev/+/dW/f/9sX1u4cGGWfa1atdKePXtyPN+xY8du+n0BAHA1jsjswoB7wgEAAAAAcBCuhAMATM3ilofHnViL7qg6AADORmYbQxEOADA1i7ubLO7GJm5ZZC3g3gAAgJyQ2cZQhAMATI37ywAAcA1ktjEU4QAAU7NY8jC1LaPoBjoAAM5GZhtDEQ4AMDWLuwyPqluK7sw2AACcjsw2hiIcAGBqeXrmaBFe5AUAAGcjs42hCAcAmJrFzU0WN4OLvBhsBwAAbj0y2xiKcACAqeXpcScG2wEAgFuPzDaGIhwAYGp5Wmm1CE9tAwDA2chsYyjCAQCmxqg6AACugcw2hiIcAGBqFkse7i+zFN37ywAAcDYy2xiKcACAqTGqDgCAayCzjaEIBwCYWp7uL8souoEOAICzkdnGUIQDAEyNUXUAAFwDmW0MRTgAwNR45igAAK6BzDam6H5yAIBLyBxVN7oBAADncERmz5gxQ1WqVJGPj48aNGigLVu25Np+06ZNatCggXx8fHTHHXdo1qxZdq/PnTtXLVq0UKlSpVSqVCm1bdtWO3fuzFffjKIIBwCYGkU4AACuoaAze+nSpRo8eLCGDx+uvXv3qkWLFurYsaNOnDiRbfujR4/q/vvvV4sWLbR37169+uqrGjRokJYtW2Zrs3HjRj3++OPasGGDtm/frooVKyoiIkKnTp3K9+/hRijCAQCmRhEOAIBrKOjMnjRpkp5++mn17dtX1atXV0xMjEJCQjRz5sxs28+aNUsVK1ZUTEyMqlevrr59++pf//qXJk6caGuzZMkS9e/fX6GhoapWrZrmzp2rjIwMffvtt/n+PdwIRTgAwNSuB7WbwY0iHAAAZ8lPZicnJ9tt165dy/bcKSkp2r17tyIiIuz2R0REaNu2bdkes3379izt27dvr127dik1NTXbY65cuaLU1FSVLl06rx/fMIpwAICpWdwstkee3GijCAcAwHnyk9khISHy9/e3bePGjcv23OfOnVN6erqCgoLs9gcFBSkhISHbYxISErJtn5aWpnPnzmV7zNChQ3X77berbdu2ef34hrE6OgDA1HjcCQAAriE/mX3y5En5+fnZ9nt7e+d+nMX+/FarNcu+G7XPbr8kTZgwQR9//LE2btwoHx+f3D/ATeBKOADA1IxPazP+WJR/utUrrf744496+OGHVblyZVksFsXExGQ5x6hRo2SxWOy24ODgfPUfAAAzyE9m+/n52W05FeEBAQFyd3fPctU7MTExy9XuTMHBwdm29/DwUJkyZez2T5w4UW+99ZbWrFmjOnXq5PdXYAhFOADA1FxxpdUrV67ojjvu0Ntvv51rYV2zZk3Fx8fbtgMHDuS5/wAAmEVBZraXl5caNGigtWvX2u1fu3atmjZtmu0x4eHhWdqvWbNGYWFh8vT0tO1755139MYbbyg2NlZhYWF56ld+MB0dAGBq+ZnalpycbLff29s7x5H1v6+0KkkxMTH65ptvNHPmzGzvS/v7SquSVL16de3atUsTJ07Uww8/LElq2LChGjZsKOn6vWU58fDw4Oo3AKDQKOhbyKKjoxUZGamwsDCFh4drzpw5OnHihKKioiRJw4YN06lTp7Ro0SJJUlRUlKZPn67o6Gj169dP27dv1/z58/Xxxx/bzjlhwgSNGDFCH330kSpXrmy7cu7r6ytfX98899EIroQDAAodo4u8OGql1ZwcOXJE5cuXV5UqVfTYY4/pt99+y9PxAAAUJT169FBMTIzGjBmj0NBQbd68WatXr1alSpUkSfHx8XYz2apUqaLVq1dr48aNCg0N1RtvvKGpU6faBs2l67ekpaSk6JFHHlG5cuVs298fY3arcSUcAGBqebnXO7Od0UVeCmKl1XLlyhnqa+PGjbVo0SLdfffdOnPmjMaOHaumTZvqxx9/zHKfGgAAriA/mZ1X/fv3V//+/bN9beHChVn2tWrVSnv27MnxfMeOHctXP24GRTgAwNTyM7Utc3EXw+9RgCut5qRjx462f69du7bCw8N155136oMPPlB0dLTh8wAAYBY80cQYinAAgKkV5Kh6Qa+0mhfFixdX7dq1deTI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rF+/Ho6Ojir3j2X9SuA9ZURERJrHzCYqfViEE5VRISEhGDZsGLZt24ZWrVppujtERESUC2Y2UenCIpyoDDtx4gR0dHTQpk0bTXeFiIiI8sDMJio9WIQTER9pQkREVEIws4lKPhbhRERERERERGrChwoSERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URUbE6dOoUePXqgWrVqkMlk2L9/v6jtQkJCYG9vDwMDA9SuXRsBAQEqr69btw6tW7dGpUqVUKlSJXTo0AHnz5/PdX8LFy6ETCaDp6fnBxwNERFR6bRw4UI0bdoURkZGMDMzQ+/evREdHZ3vdvnl9bt27twJmUyG3r17q6xPS0vD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IsqxvL29MWHCBKxZswb16tVDXFwcEhMT4enpiWLFiqFWrVqqDpGIiIiIKBUW4USUo/n4+GDkyJHYvHkzateuneqZ75SfNz4HTkRERETqgkU4EeV4fn5+6NevH3bt2oV69eqpOhwiIiIiogyxCCeiXMHb2xtaWlpo0KCBqkMhIiIiIsoQi3AiylU4DRkRERERqTPO20NEuQoLcCIiIiJSZyzCiYiIiIiIiJSERTgRERERERGRkrAIJyIiIiIiIlISFuFERERERERESsIinIiIiIiIiEhJWIQTERERERERKQmLcCIiIiIiIiIlYRFOREREREREpCQswomIiIiIiIiUhEU4ERERERERkZKwCCciIiIiIiJSEhbhRERERERERErCIpyIiIiIiIhISViEExERERERESkJi3AiIiIiIiIiJWERTkRERERERKQkLMKJiIiIiIiIlIRFOBEREREREZGSsAgnIiIiIiIiUhIW4URERERERERKwiKciIiIiIiISElYhBMREREREREpCYtwIiIiIiIiIiVhEU5ERERERESkJCzCiYiIiIiIiJSERTgRERERERGRkrAIJyIiIiIiIlISFuFERERERERESsIinIiIiIiIiEhJWIQTERERERERKQmLcCIiIiIiIiIlYRFOREREREREpCQswomIiIiIiIiUhEU4ERERERERkZKwCCciIiIiIiJSEhbhRERERERERErCIpyIiIiIiIhISViEExERERERESkJi3AiIiIiIiIiJWERTkRERERERKQkLMKJiIiIiIiIlIRFOBEREREREZGSsAgnIiIiIiIiUhIW4URERERERERKwiKciIiIiIiISElYhBMREREREREpCYtwIiIiIiIiIiVhEU5ERERERESkJCzCiYiIiIiIiJSERTgRERERERGRkrAIJyIiIiIiIlISFuFERERERERESsIinIiIiIiIiEhJWIQTERERERERKQmLcCIiIiIiIiIlYRFOREREREREpCQswomIiIiIiIiUhEU4ERERERERkZKwCCciIiIiIiJSEhbhRERERERERErCIpyIiIiIiIhISViEExERERERESkJi3AiUoqFCxdCIpFg3LhxP2zr5+cHe3t76OnpoVSpUnBzc0u1PiEhAXPmzEHp0qWhp6cHGxsbnDx5Ms3nvHr1Cr1790ahQoWgr68PW1tb3Lhx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HTqE7du3w8nJCZMmTYKuri7i4+Nx8OBBTJs2Ddu2bcs2F3chIiLNY15/P2Y2UdbghdmIvlOdOnUA8HyhjIqNjYWBgYFimyUkJCBXrlzIlSsXAKB+/fo4f/48du/eDSEEJk2ahBw5csDS0hI7duxAqVKlNFg9ERFlN8zrzGNmE2UtTkcnyiIMdNU9evQIrVq1wrx58xAVFYWYmBgUKFAA1tbWOH/+PD59+gRDQ0O4u7ujVq1auH//Pl6/fg0g6WqlDHMiIsos5nXGMLOJsh6PhBOR5B48eAAvLy/cuHEDt2/fhomJCaZMmYJq1arhn3/+wblz5+Dg4IB169Zhw4YN+P333xEQEICCBQtqunQiIqKfCjObKOvxSDgRSa5mzZoYMGAANm3ahD59+sDS0hJVq1ZFSEgI9PT0kD9/fty6dQtbt26Fjo4OXr9+jXz58mm6bCIiop8OM5so67EJJyLJ5c6dGwCwcOFC1K5dGzNnzkRQUBBCQ0Nx6tQpPHnyBAsXLsSLFy/Qs2dPbN26NdveW5SIiCg7Y2YTZT1eHZ2IJJV8QZyoqCj06NED7u7uWL16Nbp27Ypx48bh1atX+PDhAypWrAhfX18YGBigRIkSmi6biIjop8PMJlIPNuFEpBGxsbEYM2YM1q1bhzVr1qBHjx6Qy+XQ0UmaoJOYmAhdXV0NV0lERETMbKKsxenoRKQRBgYGGDZsGOzt7VO9dyjDnIiISDsws4myFptwItKYYsWKoUGDBjh69Cji4uIUe9SJiIhIuzCzibIOp6MTkUbdvHkTUVFRqFatmqZLISIionQws4myBptwIiIiIiIiIolwHgkRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEE1GWOHv2LJo3bw57e3vIZDLs378/1XEPHjxAixYtYG5uDlNTU1SpUgWvXr1K83X37t0LV1dX5MqVC8bGxnB2dsaWLVuUxiQkJGDSpEkoWLAgcubMiUKFCmHGjBmQy+WpvuaAAQMgk8mwZMmSzP66RERE2daff/6JsmXLwszMDGZmZnBzc8OxY8cU6+Pj4zFu3DiUKVMGxsbGsLe3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LMKJSGOqVauGdu3a4ciRI0hLS1OeUSciIiLtwpxNVHDYHZ2INMrf3x/Jyclo2rSppkMhIiKid2DOJioYLMKJiIiIiIiI1IT9SIiIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJ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69YOrvThmM1m3b59W35+fipUqJA2b96sfPnyyWQyacqUKXr//fe1ePFiNWvWzNGlptnt27fVuHFjHTt2TEePHpWvr68kKTIyUr/++qt27NihF198UWXKlHFwpQ9n/PjxGjp0qNasWaPAwEDr+tatW2vQoEFq0KCB44oDAABAMoRwpKu7QfXKlSuyWCzy8/OTJHXr1k1r167V7t27rUE8s87ePGXKFP34449q2rSpvvnmG40cOVKvvvqqZs6cqcGDB+v7779X8+bNHV3mQzty5IgCAwPVs2dPjR492rp+0qRJqlChgho3buzA6myT2vfWtWvX1Lp1a+XJk0erV692UGWP7u65/fnnn7pz547y5csnb29vTZkyRSNHjtQPP/ygRo0apboPAAAAHI/Z0ZFu7l7or1q1Sh9//LGKFy8ui8WihQsXavbs2erZs6dKliypEydOqGDBgpkyFISGhmrVqlUKDQ3VtGnTVKpUKb3wwguKj49Xz549lS1bNj355JOOLtNmd79me/fu1cWLF5UjRw41btxYO3bsUJUqVeTs7KyRI0dKkvr3759sH6P6d30//PCDrl+/rtjYWA0cOFDLly9Xx44d9dxzz2nJkiUOrvThmEwmrV27Vu+9955KlCihsLAwffHFF3r77bdlMpnUqlUrrVy5MtmHJUb+egEAADxuMv8NrDCMuxN6DR06VPPmzVP16tX1008/qWHDhpKkmTNnqkOHDjp69KiDK314efLkUceOHTV69GgtXbpUy5YtU/bs2TV37lwdOXJEXbt2zVQh/G6ge+mll7R27Vp17dpVw4YNU4ECBbR7926NGjVKH374YYp9jOzu4J6pU6dq7NixMplM+vrrr9WrVy9J0s8//6wTJ06oU6dOjiwzze6e15EjRzRgwAB99dVXWrp0qQYNGqRPP/1Ue/bs0VtvvaXPPvtMDHACAAAwLoajI93ExsZq9OjRevXVV3Xy5EmNHTtWCxYsUIMGDfTEE08km9jL6L2pkhQeHq6jR4+qYcOGmj59usqWLSs3Nzc1b95cZcqU0fbt2yVJ8+bN05gxY7Rq1apMN7HXhQsX9Oyzz2r8+PEKDAzUr7/+qgkTJqhu3brq37+/Dh06pL/++itTDK/fvXu3ihUrprx58+rChQvq2LGj5s2bpyeeeELR0dF6/vnnVbJkSU2dOlXXrl1TTExMpvh6HTt2TImJiSpXrpwkKSwsTBMnTtS3335r/Tnq16+fLly4oEWLFll/rjLDzxgAAMDjiJ5wPJK7n+GcOXNGzs7OGjRokPLly6dp06Zp5syZKlKkiDp27Kg9e/bot99+s+6XGcLBnTt3NGTIEDVv3lyzZ89WsWLFVLNmTY0fP1579+7V+PHjNWTIEH3++edauHBhpgh0p06d0oIFC6yvc+TIoSJFiqhatWqSpFq1aqljx46aO3euIiMjVb58eTVv3tzwPatr1qzRSy+9pA0bNshsNisxMVF37txRnjx5JEkeHh4aP368Tp06pdu3bytv3ryZ4uslSTt37tSVK1d069YtSZKzs7NWrFihVatWWX+O6tevr4CAgGQ/V5nhZwwAAOBxRAjHQ7vb07Zy5Ur17t1bJ06cUO7cuRUbG6tTp07Jzc1Nhw4d0tWrVxUWFqaaNWs6umSb7Nq1S6GhoSpcuLCeeeYZhYSEqG7duipcuLASExP1+uuva86cOYqMjJSHh4cWLlxo7aU0uqioKAUEBOjq1asym83KkSOHjh8/br3vW5KKFCmiYsWKKXv27NZ1Rg50q1ev1ocffqg5c+bopZdekpOTk4oUKaKKFSuqR48e1nb79u2Ts7Ozoc8lNd26dVOVKlXk4eGhrVu3qkKFChozZowGDhyoyZMna9myZfrkk08yxYR5AAAAYDg6HlFoaKj69++vL7/8UnXq1LGuf+utt7Ru3Tq5uLho9OjRat++vQOrTJvPPvtM3377rebOnStvb28dPnxY77zzjl599VV98sknkqSIiAhrL2tmk5CQoCeffFLdu3fX0KFDderUKdWtW1dNmjRR1apV9d1332nEiBF69tlnHV3qA92+fVtdu3ZVz5491bhxY0VEROjEiRNas2aNatSoobFjxyo6OlrPPPOM1q1bp/nz56t8+fKOLvuBbt26pcuXLysgIEC7d+9W5cqVFRwcrHHjxmnjxo2qUaOGFi9erJkzZ6pgwYJ6/vnn1apVK4agAwAAZALMjo40uXXrlnLkyGF9vWfPHnXv3l116tRRXFycnJ2d5eLioqlTp+rPP/+UJOss6UYPB8eOHVNAQIB69+4tFxcXvfnmm/r888/Vtm1b5c2bV506dVK2bNlUpkwZffrpp9qyZYty5colJydjDyiJjY3VgQMHVLt2bW3ZskXe3t6aO3euevbsqRw5cmjgwIHav3+/vvjiCyUkJGj8+PFq3LhxpviaSdLFixd15coVRUdHa/Dgwbp+/bpOnjypnTt3qn379nJ1dZWPj4969OihEiVKOLrcB7JYLDp8+LAWLFggLy8vrV69WrNmzdLQoUPl7Oys+vXra/PmzWrfvr1at24tV1dX636Z4esFAADw2LMANjpy5IiladOmlmPHjlnXvfXWW5ZXXnklWbstW7ZYvvnmG0tiYqK9S3xoy5Yts9SpU8cSERFhSUhIsFgsFktwcLClevXqltDQUIvFYrHs2bPHUrVqVUuTJk0sYWFhjiw3Tc6ePWvp1q2b5aWXXrJUqVLFsmvXLovFYrFs3rzZUqxYMcuECRMcXOGjmTdvniUgIMDi5+dn6datm2XNmjUWi8ViWbBggaVNmzbWr2dmEhERYXnppZcs7u7ulnHjxlksFovFbDZbLBaL5dNPP7WYTCbLjh07HFkiAAAAHhI94bDJsWPH1KVLF73yyivy8/Ozru/fv7/at2+v0aNH6/3339eOHTvUo0cPffnll4bvIb5r/fr1Gj58uCZPnqxLly7p7bff1pQpUzRkyBBJ0sCBAzVu3DgFBgZq69atio+PV+7cuR1bdBoUKVJExYsX17Bhw/T666+rVq1akpIm85o9e7Y6duyohIQEDRo0KFP2pL766quqWbOmwsPDVb9+fZnNZklJE+u5uLgoLi5OOXPmdHCVaZM7d25Vq1ZNuXLl0u+//65Vq1apVatWkqSgoCB5eHjoxo0bji0SAAAAD4V7wvFA165dU9OmTfX222+rW7du1vVHjhzRk08+qT179qh3794qXry4Ll68qOHDh1sDg9GtXbtWH374oSZMmKDAwEAtW7ZMa9askZOTk4KDg+Xp6anx48frq6++0jfffKP69es7umSbWf43PDkyMlJnzpxRSEiI1qxZo7p162rEiBHWdvv371dERIQCAwMdVmt6W7BggSZOnKjZs2dninvApX++XufPn1f+/PllNptlNps1YcIE/f777xo8eLBy586tKVOmaMqUKXJycmIIOgAAQCZECMcDnTp1SoMGDdKSJUskSV988YV27typn3/+WV26dNG7776rYsWKKTIyUgkJCSpYsGCmCAeRkZEqWLCgPvnkE7377ru6dOmSXnjhBfXs2VNbtmyRi4uLxowZI09PT02ePFlt27ZVsWLFHF22Te7+/69evVrvv/++Nm7cqHz58mn9+vUaPXq0mjVrptatW+utt97SihUrlDt37kzxNXuQK1euaNasWfruu+/0ww8/ZLoAvnLlSgUHB6tixYry9PTUgAEDlCNHDk2dOlXLly9XeHi4pk6dqpYtWzq6ZAAAADwkQjge6ObNmypfvrwCAwP1xx9/yMfHR7Vr11bNmjU1dOhQtW7d2jp0O7MJCQlRUFCQBg8erEmTJumFF15Q3759tXnzZn3//feKiYnRtGnT5Onp6ehS0yw0NFRvv/22Jk2apCZNmkhKGqK9bds2DR06VBEREQoODlbbtm0dXGn6SUxM1O7du+Xn56eAgABHl5Mma9as0fDhw/Xjjz8qODhY27ZtU+XKlTV+/Hjlz59fhw4dUlxcnPWZ7gAAAMicCOG4p3/3jO7du1fTpk2Tl5eX3nvvPXl5eSlXrlz6/PPPdePGjWTPmc5sNm/erGeffVbdunXTxIkTJSWFuU2bNmnFihUKCgqSv7+/g6u03d2v29ChQ1W4cGH16tVLCQkJcnJyst6nf/v2bV24cEFPPPFElugBz8wSExNlNpv1xhtvqFevXvr77781fPhwffTRR5o0aZLy5cun0aNHq2TJko4uFQAAAOmAidlwTyaTSevWrVNYWJiGDBmir7/+Otn2HTt2aNasWfriiy8cVGH6aNCggVauXKm33npLO3fuVO3ateXs7KwmTZroqaeeSvZItszgbqA2mUzat29fssfKrVu3Trdu3VK7du30xBNPJGsPx7h+/bry5cunyZMn69q1awoKCtKKFSuUP39+LV68WImJiYqNjXV0mQAAAEgnmWP6atjV3cERBw8etPYEf/bZZ9bt4eHhmjdvnnr06KFx48apUaNGjio13dSrV0+TJk3SG2+8oS1btljXZ5YAfvdr9tdff+nKlSsym81q0KCBrl27pq1btyoqKkr79+/XoEGDrM+VhuPc/XodPXpUJUuW1KpVq5QzZ065urrKbDZr//79Onz4sC5duqSPPvpIlStXdmzBAAAASDcMR0eq1qxZo3fffVcTJkzQ8ePH9dFHH2nw4MEaMWKEzp49qwkTJqh58+ZZboKo9evXa8SIEdq4cWOmCeB3rVmzRsOGDVP16tX1+++/a+fOnRo1apSOHDmiy5cvKy4uTh9++GGWugc8M1u9erV++eUXbd26VX/99Ze+/PJLtWvXTu+//7727dunP/74QxMnTlSbNm0cXSoAAADSESEcKVgsFgUFBalSpUp6+eWXJUn79u1TtWrVNH78eA0YMEC3b9+Wm5tblryfODY2NtM8V9psNsvJyUnbt2/XW2+9pYULF2rTpk0aM2aMjh07JldXV129elXXrl2Tm5ubihYtmiW/ZpnNwYMH1bp1ay1evFg+Pj7asGGDPvjgAy1evFj169fXmTNnFB0drQoVKvD1AgAAyGIYjo4UTCaTrl+/ru+//966rkqVKurUqZMGDhyoUaNGyc3Nzdo2q8kMATw8PFw3b960TrR26tQpffLJJ7p48aLmzJmjkJAQubq66pdffpG3t7dKlSqlokWLSsqaX7PM5vz586pUqZKqV6+ugIAA9ezZUy1atFD79u21fv16BQQEqEKFCpL4egEAAGQ1hHBY7089c+aMjhw5IkkaNGiQcuXKpY8//lhS0uzohQoV0vr16zVs2LBk94jDvmJjYzVz5kz99ddfMpvNkiR3d3cNHDhQ7733npYvX65ixYppy5YtGjNmjM6ePevgivFfZcqU+f/27j4m63r/4/jzErkRuRAGYgFihIHWagUyERGRpNaKRlOpGURmBRqSBgsxZA0YoaIWm46biYuwINkaNylGUohUa5MJM1DmiLJS00zBiDuvzh/nSJ3z6/zOzm+T79Xvej3+g/HH64K/Xnzen/eH8+fPU1tbO/G9Bx98kNjYWPLz8zl//ryB6URERETkVtJ2dMFkMtHY2EheXh633347N27c4JVXXiEhIYHCwkKam5u5cOEC27dvZ/ny5Zw6dWriBFYm37Rp09iwYQO//PIL69atY/v27YSFhTF37lweeOABhoeHOX78OGlpaeTm5uLv7290ZJt2c5z82LFj9PX14ejoyMMPP0x8fDxNTU2cPn2aJUuWUFxcTEFBAVVVVTg4OBgdW0RERERuEd0Jt1E37xIDtLW1kZGRQX19PXV1dZSUlHD8+HGcnZ2xWCz09PTg7OyMv78/Y2Nj2NvbG5zedv3xfnBLSwslJSV4e3uzbds2Wltbqauro729HW9vb1JSUnj88cd1p9gKHD58mFdffZWcnByefPJJSkpKiImJoaOjg9LSUsxmM1u2bGFoaIj09HQaGxvx8vIyOraIiIiI3AIq4Taop6eHXbt2sWvXLsxmM42NjZjNZn7++WcKCgqoqamZGGdevHgxdnZ2RkcWfi/gAwMDuLq6AnDixAl2796Nh4cHb7zxBs7Ozly6dAkHBwdmzJihAm4FLly4QHx8PJWVlfT19ZGRkUFjYyPe3t7A3/+uY2NjtLS0sHnzZiorK7nvvvsMTi0iIiIit4pmim3MmTNnSEhIwN/fn9HRUeDvb0vHx8dTVFTEkSNH8Pf35+jRo7z88sv09/cbG1iA3wv4Rx99xIoVK3jqqadYu3YtISEhbNq0iStXrpCRkcG1a9eYOXPmRElXATfGzf9tXrx4kdHRUYKDg/nss8/Izs6muroab29v9u3bR1NTEyaTCXt7e/r6+qipqVEBFxEREfl/TiXchvzwww+sWrWK1NRUtmzZgoeHBwDPPfcccXFxTJs2DYvFQn19Penp6eTl5REQEGBwagEm7hSnpqby0ksvkZaWxunTp4mJiSEkJISUlBRGR0fZunUro6OjKt8GM5lMHD16lOTkZKZPn05HRwcbN26koaGBwMBAvvzyS4qKiibufptMJtavX09QUJDByUVERETkVlMJtyHffPMNoaGhrFmzBovFQkVFBQkJCdx9990EBAQwOjrK6tWrKSsro6CggMceewzdVjDWH3//J0+eJCUlhbi4OMLDw2lvb+fq1avU1tayaNEiEhMTuXz5MoODgwYmFoDOzk4qKyvJzMzEw8ODrKwsQkNDSU1NZe/evbzwwgvs2LGD6Ohoo6OKiIiIyCTTdnQbYjabee+991iwYAENDQ24uLhw1113ERYWRlVVFYWFhURFRXH9+nVcXFwAjTMb6ebyvEOHDmEymTCZTFRXV5OYmMjMmTMBWLhwISaTiSlTpvDbb7/x1VdfMT4+bnBy2zYwMEBpaSkffvghr732GgAREREEBgby1ltvYbFY2L17N9HR0bqzLyIiImKDtJjNxlRVVbF//378/PzIysrC19cXZ2dnUlJSCA4O5sUXX/ynzeky+f5YzE6dOsW6desoKChg7ty55Ofn4+7uTnJyMoODg6xevZq9e/cSHh7O119/jb29Pb6+vgZ/AtvV19fHnXfeSVdXF1u3bmXGjBns2LGDWbNmGR1NRERERKyESrgNGh4exsnJaeLr9vZ2nn/+eSoqKli0aJGByaS3t5eamhosFgvBwcFUVVXh5+fHjh07AKirq+Pw4cN8/vnnuLq6kp6eTlxcnE5UDXTzd9/b28umTZuIiIggKyuLzs5O9uzZA0Bubi633XabwUlFRERExBqohNuwy5cv09bWRk5ODoWFhTz66KNGR7JpZ86cIT4+nvj4eJqamjh79izz589nYGCA3bt3s2TJkomf/e6773BwcMDLy2vi3rhKuHEaGhrYs2cPw8PD/Prrr8TGxpKdnU1nZydFRUXY2dlRVlY2sYhNRERERGyXSriNslgsdHV1kZuby5o1a4iNjTU6kk3r7e1lxYoVbN68maeffprx8XEiIiIICgpi1qxZDA0NkZCQQFhYmNFR5V90d3cTHx/PBx98wOzZs6mvr+fgwYMsXLiQjIwMTpw4gb29vZ4eExERERFAi9ls1pQpU7j//vvZt28f7u7uGmc22MDAAP39/YSEhAAwdepUoqOjCQkJYc6cOVRXV1NWVgagIm5lrl+/jqenJz4+Pjg5OfHII4/Q2trKO++8g4ODA2lpaUZHFBERERErou1bNs7d3R3QKLPRbm6sX7lyJd3d3ZSXl9Pc3Ex4eDgLFixg1apVmM1mzGaz0VHlH06fPs3IyAh33HEHbm5utLa2Mjg4iNlsZvny5URGRvLFF1/w/fffGx1VRERERKyIxtFFrMgnn3zCM888w4wZMzhy5Ag+Pj4T2+oHBgZwdXU1OqJNuzkxcubMGTIzMwkKCmLbtm28+eabHDt2jHnz5hEQEEBxcTHFxcUUFBRQVFTEvffea3R0EREREbESOgkXsSLLli3j/fffZ2xsjMHBQYCJ5+JUwI1nMploaGhg/fr1jIyM0NLSQnZ2Nhs3biQxMZHx8XE+/vhjKioqmD59OpcuXcLT09Po2CIiIiJiRXQSLmKFPv30U5KSkjhw4AARERFGx7F5f3yGbOXKldTW1hIYGEhDQwPvvvsu8+bNIzs7Gzs7O8bGxqivr+f111/nwIEDWsgmIiIiIv9EJ+EiVigqKor9+/djsViMjmLTRkZGgN93JoyPj+Pm5oabmxsAMTEx+Pn5UVtbS15eHuPj49jb2+Pp6Ul1dbUKuIiIiIj8DyrhIlYqOjqayMhINKxijN7eXp544gm2b9/O0NAQw8PD+Pn54eXlxfHjx7ly5QpOTk5ERUWxdOlSuru7OXfuHABLly7lnnvuMfgTiIiIiIg10hNlIlZOm+uN0dPTQ0tLCx0dHXR1deHi4kJOTg6LFy/m4MGDtLW1MWfOHMrLy6moqCAvL48ff/wRf39/o6OLiIiIiBXTSbiIyJ+IjIwkOTmZt99+m7Vr1+Lp6Ul4eDhXr15l6tSpzJ49m87OTqqqqpgyZQrnzp3D19fX6NgiIiIiYuVUwkVE/oS7uzsAO3fuZNmyZeTn5/PTTz9x7do1mpubOXv2LDt37qS/v59nn32WqqoqfHx8DE4tIiIiItZO29FFRP7FzW3oQ0NDJCUlERUVRUlJCQkJCWRmZvLtt99y8eJFQkNDOXnyJI6OjsyfP9/o2CIiIiLyF6ASLiLyb4yMjJCRkUF5eTmlpaUkJSVhsVgm3m6/ceMGdnZ2BqcUERERkb8SjaOLiPwbjo6ObNiwAW9v7z99bkwFXERERET+WyrhIiL/i8DAQB566CEOHTrE6OjoxCm4iIiIiMj/hZ4oExH5D5KTkxkaGsLBwcHoKCIiIiLyF6c74SIiIiIiIiKTRHOVIiIiIiIiIpNEJVxERERERERkkqiEi4iIiIiIiEwSlXARERERERGRSaISLiIiIiIiIjJJVMJFREREREREJolKuIiIiIiIiMgkUQkXERERERERmSQq4SIiIiIiIiKT5G/p5NksEtpcIwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "pivot = df.set_index(['operator', 'left_rows'])[['cpu_time', 'model_cost']]\n", + "\n", + "all_counts = sorted(df['left_rows'].unique())\n", + "valid_counts = [rc for rc in all_counts\n", + " if pivot.index.get_level_values('left_rows').isin([rc]).sum() >= 2]\n", + "\n", + "ncols = 2\n", + "nrows = (len(valid_counts) + ncols - 1) // ncols\n", + "fig, axes = plt.subplots(nrows, ncols, figsize=(5 * ncols, 4.5 * nrows), squeeze=False)\n", + "\n", + "for idx, rc in enumerate(valid_counts):\n", + " ax = axes[idx // ncols][idx % ncols]\n", + " sub = pivot.xs(rc, level='left_rows')\n", + " ops = sub.index.tolist()\n", + " m = len(ops)\n", + "\n", + " mat = np.zeros((m, m))\n", + " for i, a in enumerate(ops):\n", + " for j, b in enumerate(ops):\n", + " if i != j:\n", + " mat[i, j] = (np.log(sub.loc[a, 'cpu_time']) - np.log(sub.loc[b, 'cpu_time']) -\n", + " (np.log(sub.loc[a, 'model_cost']) - np.log(sub.loc[b, 'model_cost'])))\n", + "\n", + " vmax = np.abs(mat).max() or 1.0\n", + " im = ax.imshow(mat, cmap='coolwarm', vmin=-vmax, vmax=vmax)\n", + " ax.set_xticks(range(m)); ax.set_xticklabels(ops, rotation=45, ha='right', fontsize=8)\n", + " ax.set_yticks(range(m)); ax.set_yticklabels(ops, fontsize=8)\n", + " ax.set_title(f'rows = {rc:,}', fontsize=10)\n", + " plt.colorbar(im, ax=ax, shrink=0.8)\n", + " for i in range(m):\n", + " for j in range(m):\n", + " ax.text(j, i, f'{mat[i,j]:.2f}', ha='center', va='center', fontsize=7,\n", + " color='black' if abs(mat[i,j]) < vmax * 0.6 else 'white')\n", + "\n", + "for idx in range(len(valid_counts), nrows * ncols):\n", + " axes[idx // ncols][idx % ncols].set_visible(False)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "c13aca01", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
row_count641282565121024204840968192163843276865536131072262144
ab
AggregationFilterNaNNaNNaNNaN-0.426-0.222-0.149-0.1420.1260.3470.4400.7160.910
HashJoinNaNNaNNaNNaN-0.718-0.683-0.713-0.726-0.673-0.347-0.063NaNNaN
NestedLoopCrossJoinNaNNaNNaNNaN-0.527NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinNaNNaNNaNNaN-0.304-0.315NaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-2.116-1.993-2.153-1.999-1.768-1.389-1.083-0.898-1.023
SeqScanNaNNaNNaNNaN-0.086-0.019-0.195-0.307-0.2910.1460.3940.6840.392
SortNaNNaNNaNNaN-0.619-0.627-0.722-0.719-0.647-0.359-0.245-0.307-0.407
FilterAggregationNaNNaNNaNNaN0.4260.2220.1490.142-0.126-0.347-0.440-0.716-0.910
HashJoinNaNNaNNaNNaN-0.293-0.461-0.565-0.584-0.799-0.695-0.503NaNNaN
NestedLoopCrossJoinNaNNaNNaNNaN-0.101NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinNaNNaNNaNNaN0.122-0.094NaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-1.690-1.771-2.004-1.857-1.894-1.736-1.523-1.614-1.933
SeqScanNaNNaNNaNNaN0.3390.202-0.046-0.165-0.417-0.201-0.046-0.031-0.518
SortNaNNaNNaNNaN-0.194-0.406-0.574-0.577-0.773-0.706-0.685-1.023-1.317
HashJoinAggregationNaNNaNNaNNaN0.7180.6830.7130.7260.6730.3470.063NaNNaN
FilterNaNNaNNaNNaN0.2930.4610.5650.5840.7990.6950.503NaNNaN
NestedLoopCrossJoinNaNNaNNaNNaN0.192NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinNaNNaNNaNNaN0.4150.368NaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-1.398-1.310-1.440-1.273-1.095-1.042-1.019NaNNaN
SeqScanNaNNaNNaNNaN0.6320.6640.5180.4190.3820.4940.458NaNNaN
SortNaNNaNNaNNaN0.0990.056-0.0090.0070.026-0.011-0.181NaNNaN
NestedLoopCrossJoinAggregationNaNNaNNaNNaN0.527NaNNaNNaNNaNNaNNaNNaNNaN
FilterNaNNaNNaNNaN0.101NaNNaNNaNNaNNaNNaNNaNNaN
HashJoinNaNNaNNaNNaN-0.192NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoin-0.559-0.194-0.021-0.0260.223NaNNaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-1.589NaNNaNNaNNaNNaNNaNNaNNaN
SeqScanNaNNaNNaNNaN0.441NaNNaNNaNNaNNaNNaNNaNNaN
SortNaNNaNNaNNaN-0.092NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinAggregationNaNNaNNaNNaN0.3040.315NaNNaNNaNNaNNaNNaNNaN
FilterNaNNaNNaNNaN-0.1220.094NaNNaNNaNNaNNaNNaNNaN
HashJoinNaNNaNNaNNaN-0.415-0.368NaNNaNNaNNaNNaNNaNNaN
NestedLoopCrossJoin0.5590.1940.0210.026-0.223NaNNaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-1.812-1.678NaNNaNNaNNaNNaNNaNNaN
SeqScanNaNNaNNaNNaN0.2170.296NaNNaNNaNNaNNaNNaNNaN
SortNaNNaNNaNNaN-0.315-0.312NaNNaNNaNNaNNaNNaNNaN
ProjectionAggregationNaNNaNNaNNaN2.1161.9932.1531.9991.7681.3891.0830.8981.023
FilterNaNNaNNaNNaN1.6901.7712.0041.8571.8941.7361.5231.6141.933
HashJoinNaNNaNNaNNaN1.3981.3101.4401.2731.0951.0421.019NaNNaN
NestedLoopCrossJoinNaNNaNNaNNaN1.589NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinNaNNaNNaNNaN1.8121.678NaNNaNNaNNaNNaNNaNNaN
SeqScanNaNNaNNaNNaN2.0301.9731.9581.6911.4771.5351.4771.5821.415
SortNaNNaNNaNNaN1.4971.3651.4311.2801.1211.0300.8380.5910.616
SeqScanAggregationNaNNaNNaNNaN0.0860.0190.1950.3070.291-0.146-0.394-0.684-0.392
FilterNaNNaNNaNNaN-0.339-0.2020.0460.1650.4170.2010.0460.0310.518
HashJoinNaNNaNNaNNaN-0.632-0.664-0.518-0.419-0.382-0.494-0.458NaNNaN
NestedLoopCrossJoinNaNNaNNaNNaN-0.441NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinNaNNaNNaNNaN-0.217-0.296NaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-2.030-1.973-1.958-1.691-1.477-1.535-1.477-1.582-1.415
SortNaNNaNNaNNaN-0.533-0.608-0.528-0.412-0.356-0.505-0.639-0.992-0.799
SortAggregationNaNNaNNaNNaN0.6190.6270.7220.7190.6470.3590.2450.3070.407
FilterNaNNaNNaNNaN0.1940.4060.5740.5770.7730.7060.6851.0231.317
HashJoinNaNNaNNaNNaN-0.099-0.0560.009-0.007-0.0260.0110.181NaNNaN
NestedLoopCrossJoinNaNNaNNaNNaN0.092NaNNaNNaNNaNNaNNaNNaNNaN
NestedLoopJoinNaNNaNNaNNaN0.3150.312NaNNaNNaNNaNNaNNaNNaN
ProjectionNaNNaNNaNNaN-1.497-1.365-1.431-1.280-1.121-1.030-0.838-0.591-0.616
SeqScanNaNNaNNaNNaN0.5330.6080.5280.4120.3560.5050.6390.9920.799
\n", + "
" + ], + "text/plain": [ + "row_count 64 128 256 512 \\\n", + "a b \n", + "Aggregation Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "Filter Aggregation NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "HashJoin Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "NestedLoopCrossJoin Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopJoin -0.559 -0.194 -0.021 -0.026 \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "NestedLoopJoin Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin 0.559 0.194 0.021 0.026 \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "Projection Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "SeqScan Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "Sort Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + "\n", + "row_count 1024 2048 4096 8192 \\\n", + "a b \n", + "Aggregation Filter -0.426 -0.222 -0.149 -0.142 \n", + " HashJoin -0.718 -0.683 -0.713 -0.726 \n", + " NestedLoopCrossJoin -0.527 NaN NaN NaN \n", + " NestedLoopJoin -0.304 -0.315 NaN NaN \n", + " Projection -2.116 -1.993 -2.153 -1.999 \n", + " SeqScan -0.086 -0.019 -0.195 -0.307 \n", + " Sort -0.619 -0.627 -0.722 -0.719 \n", + "Filter Aggregation 0.426 0.222 0.149 0.142 \n", + " HashJoin -0.293 -0.461 -0.565 -0.584 \n", + " NestedLoopCrossJoin -0.101 NaN NaN NaN \n", + " NestedLoopJoin 0.122 -0.094 NaN NaN \n", + " Projection -1.690 -1.771 -2.004 -1.857 \n", + " SeqScan 0.339 0.202 -0.046 -0.165 \n", + " Sort -0.194 -0.406 -0.574 -0.577 \n", + "HashJoin Aggregation 0.718 0.683 0.713 0.726 \n", + " Filter 0.293 0.461 0.565 0.584 \n", + " NestedLoopCrossJoin 0.192 NaN NaN NaN \n", + " NestedLoopJoin 0.415 0.368 NaN NaN \n", + " Projection -1.398 -1.310 -1.440 -1.273 \n", + " SeqScan 0.632 0.664 0.518 0.419 \n", + " Sort 0.099 0.056 -0.009 0.007 \n", + "NestedLoopCrossJoin Aggregation 0.527 NaN NaN NaN \n", + " Filter 0.101 NaN NaN NaN \n", + " HashJoin -0.192 NaN NaN NaN \n", + " NestedLoopJoin 0.223 NaN NaN NaN \n", + " Projection -1.589 NaN NaN NaN \n", + " SeqScan 0.441 NaN NaN NaN \n", + " Sort -0.092 NaN NaN NaN \n", + "NestedLoopJoin Aggregation 0.304 0.315 NaN NaN \n", + " Filter -0.122 0.094 NaN NaN \n", + " HashJoin -0.415 -0.368 NaN NaN \n", + " NestedLoopCrossJoin -0.223 NaN NaN NaN \n", + " Projection -1.812 -1.678 NaN NaN \n", + " SeqScan 0.217 0.296 NaN NaN \n", + " Sort -0.315 -0.312 NaN NaN \n", + "Projection Aggregation 2.116 1.993 2.153 1.999 \n", + " Filter 1.690 1.771 2.004 1.857 \n", + " HashJoin 1.398 1.310 1.440 1.273 \n", + " NestedLoopCrossJoin 1.589 NaN NaN NaN \n", + " NestedLoopJoin 1.812 1.678 NaN NaN \n", + " SeqScan 2.030 1.973 1.958 1.691 \n", + " Sort 1.497 1.365 1.431 1.280 \n", + "SeqScan Aggregation 0.086 0.019 0.195 0.307 \n", + " Filter -0.339 -0.202 0.046 0.165 \n", + " HashJoin -0.632 -0.664 -0.518 -0.419 \n", + " NestedLoopCrossJoin -0.441 NaN NaN NaN \n", + " NestedLoopJoin -0.217 -0.296 NaN NaN \n", + " Projection -2.030 -1.973 -1.958 -1.691 \n", + " Sort -0.533 -0.608 -0.528 -0.412 \n", + "Sort Aggregation 0.619 0.627 0.722 0.719 \n", + " Filter 0.194 0.406 0.574 0.577 \n", + " HashJoin -0.099 -0.056 0.009 -0.007 \n", + " NestedLoopCrossJoin 0.092 NaN NaN NaN \n", + " NestedLoopJoin 0.315 0.312 NaN NaN \n", + " Projection -1.497 -1.365 -1.431 -1.280 \n", + " SeqScan 0.533 0.608 0.528 0.412 \n", + "\n", + "row_count 16384 32768 65536 131072 \\\n", + "a b \n", + "Aggregation Filter 0.126 0.347 0.440 0.716 \n", + " HashJoin -0.673 -0.347 -0.063 NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection -1.768 -1.389 -1.083 -0.898 \n", + " SeqScan -0.291 0.146 0.394 0.684 \n", + " Sort -0.647 -0.359 -0.245 -0.307 \n", + "Filter Aggregation -0.126 -0.347 -0.440 -0.716 \n", + " HashJoin -0.799 -0.695 -0.503 NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection -1.894 -1.736 -1.523 -1.614 \n", + " SeqScan -0.417 -0.201 -0.046 -0.031 \n", + " Sort -0.773 -0.706 -0.685 -1.023 \n", + "HashJoin Aggregation 0.673 0.347 0.063 NaN \n", + " Filter 0.799 0.695 0.503 NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection -1.095 -1.042 -1.019 NaN \n", + " SeqScan 0.382 0.494 0.458 NaN \n", + " Sort 0.026 -0.011 -0.181 NaN \n", + "NestedLoopCrossJoin Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "NestedLoopJoin Aggregation NaN NaN NaN NaN \n", + " Filter NaN NaN NaN NaN \n", + " HashJoin NaN NaN NaN NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " Projection NaN NaN NaN NaN \n", + " SeqScan NaN NaN NaN NaN \n", + " Sort NaN NaN NaN NaN \n", + "Projection Aggregation 1.768 1.389 1.083 0.898 \n", + " Filter 1.894 1.736 1.523 1.614 \n", + " HashJoin 1.095 1.042 1.019 NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " SeqScan 1.477 1.535 1.477 1.582 \n", + " Sort 1.121 1.030 0.838 0.591 \n", + "SeqScan Aggregation 0.291 -0.146 -0.394 -0.684 \n", + " Filter 0.417 0.201 0.046 0.031 \n", + " HashJoin -0.382 -0.494 -0.458 NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection -1.477 -1.535 -1.477 -1.582 \n", + " Sort -0.356 -0.505 -0.639 -0.992 \n", + "Sort Aggregation 0.647 0.359 0.245 0.307 \n", + " Filter 0.773 0.706 0.685 1.023 \n", + " HashJoin -0.026 0.011 0.181 NaN \n", + " NestedLoopCrossJoin NaN NaN NaN NaN \n", + " NestedLoopJoin NaN NaN NaN NaN \n", + " Projection -1.121 -1.030 -0.838 -0.591 \n", + " SeqScan 0.356 0.505 0.639 0.992 \n", + "\n", + "row_count 262144 \n", + "a b \n", + "Aggregation Filter 0.910 \n", + " HashJoin NaN \n", + " NestedLoopCrossJoin NaN \n", + " NestedLoopJoin NaN \n", + " Projection -1.023 \n", + " SeqScan 0.392 \n", + " Sort -0.407 \n", + "Filter Aggregation -0.910 \n", + " HashJoin NaN \n", + " NestedLoopCrossJoin NaN \n", + " NestedLoopJoin NaN \n", + " Projection -1.933 \n", + " SeqScan -0.518 \n", + " Sort -1.317 \n", + "HashJoin Aggregation NaN \n", + " Filter NaN \n", + " NestedLoopCrossJoin NaN \n", + " NestedLoopJoin NaN \n", + " Projection NaN \n", + " SeqScan NaN \n", + " Sort NaN \n", + "NestedLoopCrossJoin Aggregation NaN \n", + " Filter NaN \n", + " HashJoin NaN \n", + " NestedLoopJoin NaN \n", + " Projection NaN \n", + " SeqScan NaN \n", + " Sort NaN \n", + "NestedLoopJoin Aggregation NaN \n", + " Filter NaN \n", + " HashJoin NaN \n", + " NestedLoopCrossJoin NaN \n", + " Projection NaN \n", + " SeqScan NaN \n", + " Sort NaN \n", + "Projection Aggregation 1.023 \n", + " Filter 1.933 \n", + " HashJoin NaN \n", + " NestedLoopCrossJoin NaN \n", + " NestedLoopJoin NaN \n", + " SeqScan 1.415 \n", + " Sort 0.616 \n", + "SeqScan Aggregation -0.392 \n", + " Filter 0.518 \n", + " HashJoin NaN \n", + " NestedLoopCrossJoin NaN \n", + " NestedLoopJoin NaN \n", + " Projection -1.415 \n", + " Sort -0.799 \n", + "Sort Aggregation 0.407 \n", + " Filter 1.317 \n", + " HashJoin NaN \n", + " NestedLoopCrossJoin NaN \n", + " NestedLoopJoin NaN \n", + " Projection -0.616 \n", + " SeqScan 0.799 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rows = []\n", + "for rc in valid_counts:\n", + " sub = pivot.xs(rc, level='left_rows')\n", + " ops = sub.index.tolist()\n", + " for a in ops:\n", + " for b in ops:\n", + " if a != b:\n", + " delta = (np.log(sub.loc[a, 'cpu_time']) - np.log(sub.loc[b, 'cpu_time']) -\n", + " (np.log(sub.loc[a, 'model_cost']) - np.log(sub.loc[b, 'model_cost'])))\n", + " rows.append({'row_count': rc, 'a': a, 'b': b, 'delta': delta})\n", + "\n", + "comparison = pd.DataFrame(rows)\n", + "comparison.pivot_table(index=['a', 'b'], columns='row_count', values='delta').round(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "68ae0220", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-05-31T16:16:05+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 3.38, 2.81, 1.77\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "-----------------------------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "-----------------------------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time \u001b[m\u001b[0;33m 532418 ns 521056 ns \u001b[m\u001b[0;36m 1116\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time \u001b[m\u001b[0;33m 508270 ns 501445 ns \u001b[m\u001b[0;36m 1089\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time \u001b[m\u001b[0;33m 4068856 ns 4010747 ns \u001b[m\u001b[0;36m 156\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time \u001b[m\u001b[0;33m 997566 ns 988471 ns \u001b[m\u001b[0;36m 786\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time \u001b[m\u001b[0;33m 529187 ns 520615 ns \u001b[m\u001b[0;36m 1000\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/4638/4638/real_time \u001b[m\u001b[0;33m 1026885 ns 1016820 ns \u001b[m\u001b[0;36m 714\u001b[m lhs_rows=4.638k\u001b[m model_cost=640.044k\u001b[m output_rows=4.638k\u001b[m plan_cost=1.56764M\u001b[m rhs_rows=4.638k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time \u001b[m\u001b[0;33m 875389 ns 866351 ns \u001b[m\u001b[0;36m 804\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time \u001b[m\u001b[0;33m 527338 ns 522288 ns \u001b[m\u001b[0;36m 1107\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time \u001b[m\u001b[0;33m 507202 ns 502389 ns \u001b[m\u001b[0;36m 1000\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time \u001b[m\u001b[0;33m 861315 ns 854085 ns \u001b[m\u001b[0;36m 818\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time \u001b[m\u001b[0;33m 6698145 ns 6632289 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time \u001b[m\u001b[0;33m 1503435 ns 1491454 ns \u001b[m\u001b[0;36m 442\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time \u001b[m\u001b[0;33m 702024 ns 697631 ns \u001b[m\u001b[0;36m 968\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/7246/7246/real_time \u001b[m\u001b[0;33m 1406982 ns 1398061 ns \u001b[m\u001b[0;36m 445\u001b[m lhs_rows=7.246k\u001b[m model_cost=0.999948M\u001b[m output_rows=7.246k\u001b[m plan_cost=2.44915M\u001b[m rhs_rows=7.246k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time \u001b[m\u001b[0;33m 1204952 ns 1197240 ns \u001b[m\u001b[0;36m 548\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time \u001b[m\u001b[0;33m 735577 ns 729661 ns \u001b[m\u001b[0;36m 851\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time \u001b[m\u001b[0;33m 1552618 ns 1542405 ns \u001b[m\u001b[0;36m 398\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time \u001b[m\u001b[0;33m 2615187 ns 2600696 ns \u001b[m\u001b[0;36m 253\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time \u001b[m\u001b[0;33m 24615070 ns 24428312 ns \u001b[m\u001b[0;36m 28\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time \u001b[m\u001b[0;33m 5716537 ns 5678245 ns \u001b[m\u001b[0;36m 122\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time \u001b[m\u001b[0;33m 2528047 ns 2507421 ns \u001b[m\u001b[0;36m 253\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/23478/23478/real_time \u001b[m\u001b[0;33m 5300551 ns 5262456 ns \u001b[m\u001b[0;36m 116\u001b[m lhs_rows=23.478k\u001b[m model_cost=3.23996M\u001b[m output_rows=23.478k\u001b[m plan_cost=7.93556M\u001b[m rhs_rows=23.478k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time \u001b[m\u001b[0;33m 3440769 ns 3423785 ns \u001b[m\u001b[0;36m 199\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time \u001b[m\u001b[0;33m 2294554 ns 2274793 ns \u001b[m\u001b[0;36m 241\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time \u001b[m\u001b[0;33m 4220053 ns 4185107 ns \u001b[m\u001b[0;36m 169\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time \u001b[m\u001b[0;33m 5592034 ns 5560841 ns \u001b[m\u001b[0;36m 126\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time \u001b[m\u001b[0;33m 51498743 ns 51127846 ns \u001b[m\u001b[0;36m 14\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time \u001b[m\u001b[0;33m 12802465 ns 12732765 ns \u001b[m\u001b[0;36m 50\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time \u001b[m\u001b[0;33m 5687200 ns 5655535 ns \u001b[m\u001b[0;36m 118\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/48986/48986/real_time \u001b[m\u001b[0;33m 13564179 ns 13440945 ns \u001b[m\u001b[0;36m 51\u001b[m lhs_rows=48.986k\u001b[m model_cost=6.76007M\u001b[m output_rows=48.986k\u001b[m plan_cost=16.5573M\u001b[m rhs_rows=48.986k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time \u001b[m\u001b[0;33m 7198310 ns 7163077 ns \u001b[m\u001b[0;36m 93\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time \u001b[m\u001b[0;33m 6012240 ns 5936779 ns \u001b[m\u001b[0;36m 87\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time \u001b[m\u001b[0;33m 7610143 ns 7525813 ns \u001b[m\u001b[0;36m 83\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time \u001b[m\u001b[0;33m 10313976 ns 10227032 ns \u001b[m\u001b[0;36m 63\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time \u001b[m\u001b[0;33m 90203371 ns 89533850 ns \u001b[m\u001b[0;36m 8\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time \u001b[m\u001b[0;33m 26495662 ns 26260681 ns \u001b[m\u001b[0;36m 22\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time \u001b[m\u001b[0;33m 15047581 ns 14860662 ns \u001b[m\u001b[0;36m 50\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/88768/88768/real_time \u001b[m\u001b[0;33m 25706484 ns 25401595 ns \u001b[m\u001b[0;36m 28\u001b[m lhs_rows=88.768k\u001b[m model_cost=12.25M\u001b[m output_rows=88.768k\u001b[m plan_cost=30.0036M\u001b[m rhs_rows=88.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time \u001b[m\u001b[0;33m 12686905 ns 12628552 ns \u001b[m\u001b[0;36m 47\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time \u001b[m\u001b[0;33m 12634892 ns 12474012 ns \u001b[m\u001b[0;36m 52\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time \u001b[m\u001b[0;33m 18734465 ns 18479865 ns \u001b[m\u001b[0;36m 37\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time \u001b[m\u001b[0;33m 26934394 ns 26755899 ns \u001b[m\u001b[0;36m 28\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time \u001b[m\u001b[0;33m 202987386 ns 201290217 ns \u001b[m\u001b[0;36m 4\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time \u001b[m\u001b[0;33m 74202993 ns 73103763 ns \u001b[m\u001b[0;36m 9\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time \u001b[m\u001b[0;33m 48595095 ns 48139275 ns \u001b[m\u001b[0;36m 16\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/188478/188478/real_time \u001b[m\u001b[0;33m 52584297 ns 52158890 ns \u001b[m\u001b[0;36m 14\u001b[m lhs_rows=188.478k\u001b[m model_cost=26.01M\u001b[m output_rows=188.478k\u001b[m plan_cost=63.7056M\u001b[m rhs_rows=188.478k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time \u001b[m\u001b[0;33m 25448562 ns 25343677 ns \u001b[m\u001b[0;36m 26\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time \u001b[m\u001b[0;33m 30993358 ns 30600644 ns \u001b[m\u001b[0;36m 27\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m" + ] + } + ], + "source": [ + "!cd ~/c/iu9-sql-compiler/ && ./build-release/bin/benchmarks --benchmark_filter='OperatorCostMatched*' --benchmark_out=/tmp/operator-cost-matched.json --benchmark_out_format=json" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1c313f56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'context': {'date': '2026-05-31T16:16:05+03:00',\n", + " 'host_name': 'nixos',\n", + " 'executable': './build-release/bin/benchmarks',\n", + " 'num_cpus': 8,\n", + " 'mhz_per_cpu': 4200,\n", + " 'cpu_scaling_enabled': True,\n", + " 'caches': [{'type': 'Data', 'level': 1, 'size': 49152, 'num_sharing': 2},\n", + " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", + " 'load_avg': [3.37842, 2.81006, 1.77441],\n", + " 'library_version': 'v1.9.0',\n", + " 'library_build_type': 'release',\n", + " 'json_schema_version': 1},\n", + " 'benchmarks': [{'name': 'OperatorCostMatched/target_cost:640000/SeqScan/6400/real_time',\n", + " 'family_index': 0,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/SeqScan/6400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1116,\n", + " 'real_time': 532417.982082007,\n", + " 'cpu_time': 521056.23745519714,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640000.0,\n", + " 'output_rows': 6400.0,\n", + " 'plan_cost': 640000.0,\n", + " 'rows': 6400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Filter/6400/real_time',\n", + " 'family_index': 1,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Filter/6400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1089,\n", + " 'real_time': 508270.4343416542,\n", + " 'cpu_time': 501445.3149678604,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640000.0,\n", + " 'output_rows': 3328.0,\n", + " 'plan_cost': 1280000.0,\n", + " 'rows': 6400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Projection/29091/real_time',\n", + " 'family_index': 2,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Projection/29091/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 156,\n", + " 'real_time': 4068856.4935967755,\n", + " 'cpu_time': 4010746.6025641034,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640002.0,\n", + " 'output_rows': 29091.0,\n", + " 'plan_cost': 3549102.0,\n", + " 'rows': 29091.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Sort/4476/real_time',\n", + " 'family_index': 3,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Sort/4476/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 786,\n", + " 'real_time': 997565.7201017806,\n", + " 'cpu_time': 988471.3625954194,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640068.0,\n", + " 'output_rows': 4476.0,\n", + " 'plan_cost': 1087668.0,\n", + " 'rows': 4476.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Aggregation/1255/real_time',\n", + " 'family_index': 4,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Aggregation/1255/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1000,\n", + " 'real_time': 529187.3500100337,\n", + " 'cpu_time': 520614.8160000001,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640050.0,\n", + " 'output_rows': 1255.0,\n", + " 'plan_cost': 765550.0,\n", + " 'rows': 1255.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/HashJoin/4638/4638/real_time',\n", + " 'family_index': 5,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/HashJoin/4638/4638/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 714,\n", + " 'real_time': 1026884.7717186474,\n", + " 'cpu_time': 1016820.3893557423,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 4638.0,\n", + " 'model_cost': 640044.0,\n", + " 'output_rows': 4638.0,\n", + " 'plan_cost': 1567644.0,\n", + " 'rhs_rows': 4638.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time',\n", + " 'family_index': 6,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 804,\n", + " 'real_time': 875389.360694883,\n", + " 'cpu_time': 866351.0472636818,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 96.0,\n", + " 'model_cost': 645120.0,\n", + " 'output_rows': 96.0,\n", + " 'plan_cost': 664320.0,\n", + " 'rhs_rows': 96.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time',\n", + " 'family_index': 7,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1107,\n", + " 'real_time': 527338.0876234216,\n", + " 'cpu_time': 522288.25112917816,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 78.0,\n", + " 'model_cost': 632736.0,\n", + " 'output_rows': 6084.0,\n", + " 'plan_cost': 648336.0,\n", + " 'rhs_rows': 78.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time',\n", + " 'family_index': 8,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1000,\n", + " 'real_time': 507201.76300092135,\n", + " 'cpu_time': 502388.66499999975,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000000.0,\n", + " 'output_rows': 10000.0,\n", + " 'plan_cost': 1000000.0,\n", + " 'rows': 10000.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Filter/10000/real_time',\n", + " 'family_index': 9,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Filter/10000/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 818,\n", + " 'real_time': 861314.8814182236,\n", + " 'cpu_time': 854085.0378973101,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000000.0,\n", + " 'output_rows': 5120.0,\n", + " 'plan_cost': 2000000.0,\n", + " 'rows': 10000.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Projection/45455/real_time',\n", + " 'family_index': 10,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Projection/45455/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 94,\n", + " 'real_time': 6698144.617133793,\n", + " 'cpu_time': 6632289.042553187,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000010.0,\n", + " 'output_rows': 45455.0,\n", + " 'plan_cost': 5545510.0,\n", + " 'rows': 45455.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Sort/6993/real_time',\n", + " 'family_index': 11,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Sort/6993/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 442,\n", + " 'real_time': 1503435.3755871719,\n", + " 'cpu_time': 1491453.7239819015,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 999999.0,\n", + " 'output_rows': 6993.0,\n", + " 'plan_cost': 1699299.0,\n", + " 'rows': 6993.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time',\n", + " 'family_index': 12,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 968,\n", + " 'real_time': 702023.9721114645,\n", + " 'cpu_time': 697631.2902892566,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000110.0,\n", + " 'output_rows': 1961.0,\n", + " 'plan_cost': 1196210.0,\n", + " 'rows': 1961.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/HashJoin/7246/7246/real_time',\n", + " 'family_index': 13,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/HashJoin/7246/7246/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 445,\n", + " 'real_time': 1406982.1932444642,\n", + " 'cpu_time': 1398061.253932585,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 7246.0,\n", + " 'model_cost': 999948.0,\n", + " 'output_rows': 7246.0,\n", + " 'plan_cost': 2449148.0,\n", + " 'rhs_rows': 7246.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time',\n", + " 'family_index': 14,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 548,\n", + " 'real_time': 1204951.5547396964,\n", + " 'cpu_time': 1197239.9598540142,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 120.0,\n", + " 'model_cost': 1008000.0,\n", + " 'output_rows': 120.0,\n", + " 'plan_cost': 1032000.0,\n", + " 'rhs_rows': 120.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time',\n", + " 'family_index': 15,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 851,\n", + " 'real_time': 735576.7626255985,\n", + " 'cpu_time': 729660.8977673323,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 98.0,\n", + " 'model_cost': 998816.0,\n", + " 'output_rows': 9604.0,\n", + " 'plan_cost': 1018416.0,\n", + " 'rhs_rows': 98.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time',\n", + " 'family_index': 16,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 398,\n", + " 'real_time': 1552618.4949736656,\n", + " 'cpu_time': 1542405.301507536,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240000.0,\n", + " 'output_rows': 32400.0,\n", + " 'plan_cost': 3240000.0,\n", + " 'rows': 32400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Filter/32400/real_time',\n", + " 'family_index': 17,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Filter/32400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 253,\n", + " 'real_time': 2615186.9209527443,\n", + " 'cpu_time': 2600695.6126482165,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240000.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 6480000.0,\n", + " 'rows': 32400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Projection/147273/real_time',\n", + " 'family_index': 18,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Projection/147273/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 28,\n", + " 'real_time': 24615069.89285616,\n", + " 'cpu_time': 24428312.28571426,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240006.0,\n", + " 'output_rows': 147273.0,\n", + " 'plan_cost': 17967306.0,\n", + " 'rows': 147273.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Sort/19636/real_time',\n", + " 'family_index': 19,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Sort/19636/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 122,\n", + " 'real_time': 5716536.89353223,\n", + " 'cpu_time': 5678245.475409842,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3239940.0,\n", + " 'output_rows': 19636.0,\n", + " 'plan_cost': 5203540.0,\n", + " 'rows': 19636.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time',\n", + " 'family_index': 20,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 253,\n", + " 'real_time': 2528047.0632107765,\n", + " 'cpu_time': 2507421.2766798385,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240030.0,\n", + " 'output_rows': 6353.0,\n", + " 'plan_cost': 3875330.0,\n", + " 'rows': 6353.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/HashJoin/23478/23478/real_time',\n", + " 'family_index': 21,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/HashJoin/23478/23478/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 116,\n", + " 'real_time': 5300551.206816855,\n", + " 'cpu_time': 5262455.948275863,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 23478.0,\n", + " 'model_cost': 3239964.0,\n", + " 'output_rows': 23478.0,\n", + " 'plan_cost': 7935564.0,\n", + " 'rhs_rows': 23478.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time',\n", + " 'family_index': 22,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 199,\n", + " 'real_time': 3440769.0200625905,\n", + " 'cpu_time': 3423785.0904522617,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 215.0,\n", + " 'model_cost': 3235750.0,\n", + " 'output_rows': 215.0,\n", + " 'plan_cost': 3278750.0,\n", + " 'rhs_rows': 215.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time',\n", + " 'family_index': 23,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 241,\n", + " 'real_time': 2294553.6597737176,\n", + " 'cpu_time': 2274793.3278008313,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 177.0,\n", + " 'model_cost': 3258216.0,\n", + " 'output_rows': 31329.0,\n", + " 'plan_cost': 3293616.0,\n", + " 'rhs_rows': 177.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time',\n", + " 'family_index': 24,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 169,\n", + " 'real_time': 4220053.053305335,\n", + " 'cpu_time': 4185106.73372781,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760000.0,\n", + " 'output_rows': 67600.0,\n", + " 'plan_cost': 6760000.0,\n", + " 'rows': 67600.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Filter/67600/real_time',\n", + " 'family_index': 25,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Filter/67600/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 126,\n", + " 'real_time': 5592033.730141656,\n", + " 'cpu_time': 5560840.9365079515,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760000.0,\n", + " 'output_rows': 33808.0,\n", + " 'plan_cost': 13520000.0,\n", + " 'rows': 67600.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Projection/307273/real_time',\n", + " 'family_index': 26,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Projection/307273/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 14,\n", + " 'real_time': 51498743.28552479,\n", + " 'cpu_time': 51127845.571428515,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760006.0,\n", + " 'output_rows': 307273.0,\n", + " 'plan_cost': 37487306.0,\n", + " 'rows': 307273.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Sort/38409/real_time',\n", + " 'family_index': 27,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Sort/38409/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 50,\n", + " 'real_time': 12802464.73994339,\n", + " 'cpu_time': 12732764.899999935,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6759984.0,\n", + " 'output_rows': 38409.0,\n", + " 'plan_cost': 10600884.0,\n", + " 'rows': 38409.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time',\n", + " 'family_index': 28,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 118,\n", + " 'real_time': 5687199.652484043,\n", + " 'cpu_time': 5655535.008474565,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760050.0,\n", + " 'output_rows': 13255.0,\n", + " 'plan_cost': 8085550.0,\n", + " 'rows': 13255.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/HashJoin/48986/48986/real_time',\n", + " 'family_index': 29,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/HashJoin/48986/48986/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 51,\n", + " 'real_time': 13564179.451136358,\n", + " 'cpu_time': 13440944.60784313,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 48986.0,\n", + " 'model_cost': 6760068.0,\n", + " 'output_rows': 48986.0,\n", + " 'plan_cost': 16557268.0,\n", + " 'rhs_rows': 48986.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time',\n", + " 'family_index': 30,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 93,\n", + " 'real_time': 7198310.344040604,\n", + " 'cpu_time': 7163077.139784954,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 311.0,\n", + " 'model_cost': 6770470.0,\n", + " 'output_rows': 311.0,\n", + " 'plan_cost': 6832670.0,\n", + " 'rhs_rows': 311.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time',\n", + " 'family_index': 31,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 87,\n", + " 'real_time': 6012239.873619354,\n", + " 'cpu_time': 5936778.873563203,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 255.0,\n", + " 'model_cost': 6762600.0,\n", + " 'output_rows': 65025.0,\n", + " 'plan_cost': 6813600.0,\n", + " 'rhs_rows': 255.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time',\n", + " 'family_index': 32,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 83,\n", + " 'real_time': 7610143.048174018,\n", + " 'cpu_time': 7525812.927710862,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12250000.0,\n", + " 'output_rows': 122500.0,\n", + " 'plan_cost': 12250000.0,\n", + " 'rows': 122500.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Filter/122500/real_time',\n", + " 'family_index': 33,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Filter/122500/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 63,\n", + " 'real_time': 10313975.920629065,\n", + " 'cpu_time': 10227031.539682534,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12250000.0,\n", + " 'output_rows': 61440.0,\n", + " 'plan_cost': 24500000.0,\n", + " 'rows': 122500.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Projection/556818/real_time',\n", + " 'family_index': 34,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Projection/556818/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 8,\n", + " 'real_time': 90203371.00082543,\n", + " 'cpu_time': 89533849.625,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12249996.0,\n", + " 'output_rows': 556818.0,\n", + " 'plan_cost': 67931796.0,\n", + " 'rows': 556818.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Sort/65536/real_time',\n", + " 'family_index': 35,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Sort/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 22,\n", + " 'real_time': 26495661.681771956,\n", + " 'cpu_time': 26260681.3181818,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12255232.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 18808832.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time',\n", + " 'family_index': 36,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 50,\n", + " 'real_time': 15047581.499966329,\n", + " 'cpu_time': 14860661.740000011,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12250200.0,\n", + " 'output_rows': 24020.0,\n", + " 'plan_cost': 14652200.0,\n", + " 'rows': 24020.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/HashJoin/88768/88768/real_time',\n", + " 'family_index': 37,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/HashJoin/88768/88768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 28,\n", + " 'real_time': 25706484.214294635,\n", + " 'cpu_time': 25401594.67857147,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 88768.0,\n", + " 'model_cost': 12249984.0,\n", + " 'output_rows': 88768.0,\n", + " 'plan_cost': 30003584.0,\n", + " 'rhs_rows': 88768.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time',\n", + " 'family_index': 38,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 47,\n", + " 'real_time': 12686905.383003598,\n", + " 'cpu_time': 12628552.212766014,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 418.0,\n", + " 'model_cost': 12230680.0,\n", + " 'output_rows': 418.0,\n", + " 'plan_cost': 12314280.0,\n", + " 'rhs_rows': 418.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time',\n", + " 'family_index': 39,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 52,\n", + " 'real_time': 12634891.67300017,\n", + " 'cpu_time': 12474011.807692219,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 343.0,\n", + " 'model_cost': 12235496.0,\n", + " 'output_rows': 117649.0,\n", + " 'plan_cost': 12304096.0,\n", + " 'rhs_rows': 343.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time',\n", + " 'family_index': 40,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 37,\n", + " 'real_time': 18734465.189186882,\n", + " 'cpu_time': 18479865.270270344,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010000.0,\n", + " 'output_rows': 260100.0,\n", + " 'plan_cost': 26010000.0,\n", + " 'rows': 260100.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Filter/260100/real_time',\n", + " 'family_index': 41,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Filter/260100/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 28,\n", + " 'real_time': 26934393.928968348,\n", + " 'cpu_time': 26755899.03571434,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010000.0,\n", + " 'output_rows': 130052.0,\n", + " 'plan_cost': 52020000.0,\n", + " 'rows': 260100.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Projection/1182273/real_time',\n", + " 'family_index': 42,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Projection/1182273/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4,\n", + " 'real_time': 202987386.24842373,\n", + " 'cpu_time': 201290217.25000128,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010006.0,\n", + " 'output_rows': 1182273.0,\n", + " 'plan_cost': 144237306.0,\n", + " 'rows': 1182273.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Sort/131364/real_time',\n", + " 'family_index': 43,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Sort/131364/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 9,\n", + " 'real_time': 74202993.22176208,\n", + " 'cpu_time': 73103763.44444415,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010072.0,\n", + " 'output_rows': 131364.0,\n", + " 'plan_cost': 39146472.0,\n", + " 'rows': 131364.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time',\n", + " 'family_index': 44,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 16,\n", + " 'real_time': 48595095.37436679,\n", + " 'cpu_time': 48139274.8124998,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010000.0,\n", + " 'output_rows': 51000.0,\n", + " 'plan_cost': 31110000.0,\n", + " 'rows': 51000.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/HashJoin/188478/188478/real_time',\n", + " 'family_index': 45,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/HashJoin/188478/188478/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 14,\n", + " 'real_time': 52584296.71396568,\n", + " 'cpu_time': 52158890.000000164,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 188478.0,\n", + " 'model_cost': 26009964.0,\n", + " 'output_rows': 188478.0,\n", + " 'plan_cost': 63705564.0,\n", + " 'rhs_rows': 188478.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time',\n", + " 'family_index': 46,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 26,\n", + " 'real_time': 25448562.268978164,\n", + " 'cpu_time': 25343677.269230917,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 610.0,\n", + " 'model_cost': 26047000.0,\n", + " 'output_rows': 610.0,\n", + " 'plan_cost': 26169000.0,\n", + " 'rhs_rows': 610.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time',\n", + " 'family_index': 47,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 27,\n", + " 'real_time': 30993357.51849813,\n", + " 'cpu_time': 30600644.111111116,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 500.0,\n", + " 'model_cost': 26000000.0,\n", + " 'output_rows': 250000.0,\n", + " 'plan_cost': 26100000.0,\n", + " 'rhs_rows': 500.0}]}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import json\n", + "results = None\n", + "with open('/tmp/operator-cost-matched.json') as f:\n", + " results = json.load(f)\n", + "\n", + "results" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "operator-cost-matched-dataframe", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
target_costoperatorleft_rowsright_rowsreal_time_msmodel_costplan_costmatching_error
4640000Aggregation1255NaN0.529187640050.0765550.07.812500e-05
1640000Filter6400NaN0.508270640000.01280000.00.000000e+00
5640000HashJoin46384638.01.026885640044.01567644.06.875000e-05
7640000NestedLoopCrossJoin7878.00.527338632736.0648336.01.135000e-02
6640000NestedLoopJoin9696.00.875389645120.0664320.08.000000e-03
2640000Projection29091NaN4.068856640002.03549102.03.125000e-06
0640000SeqScan6400NaN0.532418640000.0640000.00.000000e+00
3640000Sort4476NaN0.997566640068.01087668.01.062500e-04
121000000Aggregation1961NaN0.7020241000110.01196210.01.100000e-04
91000000Filter10000NaN0.8613151000000.02000000.00.000000e+00
131000000HashJoin72467246.01.406982999948.02449148.05.200000e-05
151000000NestedLoopCrossJoin9898.00.735577998816.01018416.01.184000e-03
141000000NestedLoopJoin120120.01.2049521008000.01032000.08.000000e-03
101000000Projection45455NaN6.6981451000010.05545510.01.000000e-05
81000000SeqScan10000NaN0.5072021000000.01000000.00.000000e+00
111000000Sort6993NaN1.503435999999.01699299.01.000000e-06
203240000Aggregation6353NaN2.5280473240030.03875330.09.259259e-06
173240000Filter32400NaN2.6151873240000.06480000.00.000000e+00
213240000HashJoin2347823478.05.3005513239964.07935564.01.111111e-05
233240000NestedLoopCrossJoin177177.02.2945543258216.03293616.05.622222e-03
223240000NestedLoopJoin215215.03.4407693235750.03278750.01.311728e-03
183240000Projection147273NaN24.6150703240006.017967306.01.851852e-06
163240000SeqScan32400NaN1.5526183240000.03240000.00.000000e+00
193240000Sort19636NaN5.7165373239940.05203540.01.851852e-05
286760000Aggregation13255NaN5.6872006760050.08085550.07.396450e-06
256760000Filter67600NaN5.5920346760000.013520000.00.000000e+00
296760000HashJoin4898648986.013.5641796760068.016557268.01.005917e-05
316760000NestedLoopCrossJoin255255.06.0122406762600.06813600.03.846154e-04
306760000NestedLoopJoin311311.07.1983106770470.06832670.01.548817e-03
266760000Projection307273NaN51.4987436760006.037487306.08.875740e-07
246760000SeqScan67600NaN4.2200536760000.06760000.00.000000e+00
276760000Sort38409NaN12.8024656759984.010600884.02.366864e-06
3612250000Aggregation24020NaN15.04758112250200.014652200.01.632653e-05
3312250000Filter122500NaN10.31397612250000.024500000.00.000000e+00
3712250000HashJoin8876888768.025.70648412249984.030003584.01.306122e-06
3912250000NestedLoopCrossJoin343343.012.63489212235496.012304096.01.184000e-03
3812250000NestedLoopJoin418418.012.68690512230680.012314280.01.577143e-03
3412250000Projection556818NaN90.20337112249996.067931796.03.265306e-07
3212250000SeqScan122500NaN7.61014312250000.012250000.00.000000e+00
3512250000Sort65536NaN26.49566212255232.018808832.04.271020e-04
4426010000Aggregation51000NaN48.59509526010000.031110000.00.000000e+00
4126010000Filter260100NaN26.93439426010000.052020000.00.000000e+00
4526010000HashJoin188478188478.052.58429726009964.063705564.01.384083e-06
4726010000NestedLoopCrossJoin500500.030.99335826000000.026100000.03.844675e-04
4626010000NestedLoopJoin610610.025.44856226047000.026169000.01.422530e-03
4226010000Projection1182273NaN202.98738626010006.0144237306.02.306805e-07
4026010000SeqScan260100NaN18.73446526010000.026010000.00.000000e+00
4326010000Sort131364NaN74.20299326010072.039146472.02.768166e-06
\n", + "
" + ], + "text/plain": [ + " target_cost operator left_rows right_rows real_time_ms \\\n", + "4 640000 Aggregation 1255 NaN 0.529187 \n", + "1 640000 Filter 6400 NaN 0.508270 \n", + "5 640000 HashJoin 4638 4638.0 1.026885 \n", + "7 640000 NestedLoopCrossJoin 78 78.0 0.527338 \n", + "6 640000 NestedLoopJoin 96 96.0 0.875389 \n", + "2 640000 Projection 29091 NaN 4.068856 \n", + "0 640000 SeqScan 6400 NaN 0.532418 \n", + "3 640000 Sort 4476 NaN 0.997566 \n", + "12 1000000 Aggregation 1961 NaN 0.702024 \n", + "9 1000000 Filter 10000 NaN 0.861315 \n", + "13 1000000 HashJoin 7246 7246.0 1.406982 \n", + "15 1000000 NestedLoopCrossJoin 98 98.0 0.735577 \n", + "14 1000000 NestedLoopJoin 120 120.0 1.204952 \n", + "10 1000000 Projection 45455 NaN 6.698145 \n", + "8 1000000 SeqScan 10000 NaN 0.507202 \n", + "11 1000000 Sort 6993 NaN 1.503435 \n", + "20 3240000 Aggregation 6353 NaN 2.528047 \n", + "17 3240000 Filter 32400 NaN 2.615187 \n", + "21 3240000 HashJoin 23478 23478.0 5.300551 \n", + "23 3240000 NestedLoopCrossJoin 177 177.0 2.294554 \n", + "22 3240000 NestedLoopJoin 215 215.0 3.440769 \n", + "18 3240000 Projection 147273 NaN 24.615070 \n", + "16 3240000 SeqScan 32400 NaN 1.552618 \n", + "19 3240000 Sort 19636 NaN 5.716537 \n", + "28 6760000 Aggregation 13255 NaN 5.687200 \n", + "25 6760000 Filter 67600 NaN 5.592034 \n", + "29 6760000 HashJoin 48986 48986.0 13.564179 \n", + "31 6760000 NestedLoopCrossJoin 255 255.0 6.012240 \n", + "30 6760000 NestedLoopJoin 311 311.0 7.198310 \n", + "26 6760000 Projection 307273 NaN 51.498743 \n", + "24 6760000 SeqScan 67600 NaN 4.220053 \n", + "27 6760000 Sort 38409 NaN 12.802465 \n", + "36 12250000 Aggregation 24020 NaN 15.047581 \n", + "33 12250000 Filter 122500 NaN 10.313976 \n", + "37 12250000 HashJoin 88768 88768.0 25.706484 \n", + "39 12250000 NestedLoopCrossJoin 343 343.0 12.634892 \n", + "38 12250000 NestedLoopJoin 418 418.0 12.686905 \n", + "34 12250000 Projection 556818 NaN 90.203371 \n", + "32 12250000 SeqScan 122500 NaN 7.610143 \n", + "35 12250000 Sort 65536 NaN 26.495662 \n", + "44 26010000 Aggregation 51000 NaN 48.595095 \n", + "41 26010000 Filter 260100 NaN 26.934394 \n", + "45 26010000 HashJoin 188478 188478.0 52.584297 \n", + "47 26010000 NestedLoopCrossJoin 500 500.0 30.993358 \n", + "46 26010000 NestedLoopJoin 610 610.0 25.448562 \n", + "42 26010000 Projection 1182273 NaN 202.987386 \n", + "40 26010000 SeqScan 260100 NaN 18.734465 \n", + "43 26010000 Sort 131364 NaN 74.202993 \n", + "\n", + " model_cost plan_cost matching_error \n", + "4 640050.0 765550.0 7.812500e-05 \n", + "1 640000.0 1280000.0 0.000000e+00 \n", + "5 640044.0 1567644.0 6.875000e-05 \n", + "7 632736.0 648336.0 1.135000e-02 \n", + "6 645120.0 664320.0 8.000000e-03 \n", + "2 640002.0 3549102.0 3.125000e-06 \n", + "0 640000.0 640000.0 0.000000e+00 \n", + "3 640068.0 1087668.0 1.062500e-04 \n", + "12 1000110.0 1196210.0 1.100000e-04 \n", + "9 1000000.0 2000000.0 0.000000e+00 \n", + "13 999948.0 2449148.0 5.200000e-05 \n", + "15 998816.0 1018416.0 1.184000e-03 \n", + "14 1008000.0 1032000.0 8.000000e-03 \n", + "10 1000010.0 5545510.0 1.000000e-05 \n", + "8 1000000.0 1000000.0 0.000000e+00 \n", + "11 999999.0 1699299.0 1.000000e-06 \n", + "20 3240030.0 3875330.0 9.259259e-06 \n", + "17 3240000.0 6480000.0 0.000000e+00 \n", + "21 3239964.0 7935564.0 1.111111e-05 \n", + "23 3258216.0 3293616.0 5.622222e-03 \n", + "22 3235750.0 3278750.0 1.311728e-03 \n", + "18 3240006.0 17967306.0 1.851852e-06 \n", + "16 3240000.0 3240000.0 0.000000e+00 \n", + "19 3239940.0 5203540.0 1.851852e-05 \n", + "28 6760050.0 8085550.0 7.396450e-06 \n", + "25 6760000.0 13520000.0 0.000000e+00 \n", + "29 6760068.0 16557268.0 1.005917e-05 \n", + "31 6762600.0 6813600.0 3.846154e-04 \n", + "30 6770470.0 6832670.0 1.548817e-03 \n", + "26 6760006.0 37487306.0 8.875740e-07 \n", + "24 6760000.0 6760000.0 0.000000e+00 \n", + "27 6759984.0 10600884.0 2.366864e-06 \n", + "36 12250200.0 14652200.0 1.632653e-05 \n", + "33 12250000.0 24500000.0 0.000000e+00 \n", + "37 12249984.0 30003584.0 1.306122e-06 \n", + "39 12235496.0 12304096.0 1.184000e-03 \n", + "38 12230680.0 12314280.0 1.577143e-03 \n", + "34 12249996.0 67931796.0 3.265306e-07 \n", + "32 12250000.0 12250000.0 0.000000e+00 \n", + "35 12255232.0 18808832.0 4.271020e-04 \n", + "44 26010000.0 31110000.0 0.000000e+00 \n", + "41 26010000.0 52020000.0 0.000000e+00 \n", + "45 26009964.0 63705564.0 1.384083e-06 \n", + "47 26000000.0 26100000.0 3.844675e-04 \n", + "46 26047000.0 26169000.0 1.422530e-03 \n", + "42 26010006.0 144237306.0 2.306805e-07 \n", + "40 26010000.0 26010000.0 0.000000e+00 \n", + "43 26010072.0 39146472.0 2.768166e-06 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "matched_df = pd.DataFrame(results['benchmarks'])\n", + "matched_df = matched_df[matched_df['run_type'] == 'iteration'].copy()\n", + "\n", + "parts = matched_df['name'].str.split('/')\n", + "matched_df['target_cost'] = parts.str[1].str.removeprefix('target_cost:').astype(int)\n", + "matched_df['operator'] = parts.str[2]\n", + "matched_df['left_rows'] = parts.str[3].astype(int)\n", + "matched_df['right_rows'] = parts.apply(lambda p: int(p[4]) if len(p) == 6 else None)\n", + "matched_df['real_time_ms'] = matched_df['real_time'] / 1e6\n", + "\n", + "matched_df['matching_error'] = (matched_df['model_cost'] - matched_df['target_cost']).abs() / matched_df['target_cost']\n", + "assert (matched_df['matching_error'] < 0.02).all()\n", + "\n", + "matched_df[['target_cost', 'operator', 'left_rows', 'right_rows', 'real_time_ms', 'model_cost', 'plan_cost', 'matching_error']].sort_values(['target_cost', 'operator'])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "operator-cost-matched-plot", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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+1WiRAk1dOhQ9eeff6r169er1NRUNX36dKXRaNSgQYPUli1b1MaNG1WDBg2UtbW1OnPmTIY6OnTooH7//Xe1cuVKVbZsWeXu7q48PDyyPa7Hjx9XXl5eqmbNmurgwYPq4MGD6vjx40oppSIjIxWgli5dqis/adIkBagKFSqoadOmqR07dqiPP/5YAer9999XFStWVN9++63asWOHGjhwoALUhg0bdNvHx8erGjVqqKJFi6q5c+eqnTt3qm+++UbZ29urZs2aKa1Wm2WsJ06cUID66aef9JZHRUUpc3NzNXr0aF3cFhYWqkWLFiooKEgFBwerVatWqX79+qmoqKhsj4eHh4cqUaKEKlWqlFqyZInaunWr6tOnjwLUnDlzdOUyOzYhISFqzJgxav369SokJERt2rRJdezYUVlaWqp//vlHV27Pnj0KUJ6enqpPnz7qjz/+UL/88osqVaqUKleunEpNTc02xiddv35dubq66h3PtWvXqkGDBqmzZ88qpZS6c+eOKlGihCpWrJhauHCh2rZtm3r//fcVoN59911dXb/88osC1IgRI9T27dvVzp071cKFC9XIkSN19cyYMUMB6vvvv9edL3fu3Mk0tosXL6rvv/9eAWrGjBnq4MGDuvN21apVClBvvvmmCgoKUmvXrlW1atVSZmZmat++fbo60s83Dw8PNW7cOLVjxw4VFBSU5fFIP7ZPvhZz21Z4eLiysbFRnp6eauHChWrXrl1q5cqVqnv37io2NlYppdQ///yj3n33XbVmzRoVHBystmzZogYPHqyMjIz02lQq6/eAp6W/b1lbW6upU6eqv/76S23YsEF98MEHavfu3UoppR49eqSqVaumrK2t1Zdffqm2b9+uPvvsM2ViYqLatGmjqys0NFRpNBrVs2dPtXXrVrV79261dOlS1a9fP6WUUjExMbr3i//973+65/DatWvZxvi8r/vo6GgVEBCgVqxYoXbv3q22bdumxo4dq4yMjNSyZct05Q4ePKgsLS1VmzZtdLGlnzO5Odfz8tpasWKF0mg0qmPHjmrjxo3q999/V+3atVPGxsZq586dunI7d+5UxsbG6o033lAbN25Uv/76q6pTp44qVaqUys1Xp/TXTK9evdQff/yhli9frry8vJS9vb06f/68rtyAAQOUmZmZKlWqlJo+fbravn27mjx5sjIxMVHt2rXT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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(8, 5))\n", + "for op, grp in matched_df.groupby('operator'):\n", + " grp = grp.sort_values('plan_cost')\n", + " ax.plot(grp['plan_cost'], grp['real_time_ms'], marker='o', label=op)\n", + "\n", + "ax.set_xlabel('plan_cost (local operator cost + child scan costs)')\n", + "ax.set_ylabel('real_time (ms)')\n", + "ax.set_title('Measured time vs plan_cost for local-cost-matched operators')\n", + "ax.legend()\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "operator-cost-matched-heatmaps", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "matched_pivot = matched_df.set_index(['target_cost', 'operator'])[['cpu_time', 'model_cost', 'plan_cost']]\n", + "matched_costs = sorted(matched_df['target_cost'].unique())\n", + "\n", + "ncols = 2\n", + "nrows = (len(matched_costs) + ncols - 1) // ncols\n", + "fig, axes = plt.subplots(nrows, ncols, figsize=(5 * ncols, 4.5 * nrows), squeeze=False)\n", + "\n", + "for idx, target_cost in enumerate(matched_costs):\n", + " ax = axes[idx // ncols][idx % ncols]\n", + " sub = matched_pivot.xs(target_cost, level='target_cost')\n", + " ops = sub.index.tolist()\n", + " m = len(ops)\n", + "\n", + " mat = np.zeros((m, m))\n", + " for i, a in enumerate(ops):\n", + " for j, b in enumerate(ops):\n", + " if i != j:\n", + " mat[i, j] = (np.log(sub.loc[a, 'cpu_time']) - np.log(sub.loc[b, 'cpu_time']) -\n", + " (np.log(sub.loc[a, 'plan_cost']) - np.log(sub.loc[b, 'plan_cost'])))\n", + "\n", + " vmax = np.abs(mat).max() or 1.0\n", + " im = ax.imshow(mat, cmap='coolwarm', vmin=-vmax, vmax=vmax)\n", + " ax.set_xticks(range(m)); ax.set_xticklabels(ops, rotation=45, ha='right', fontsize=8)\n", + " ax.set_yticks(range(m)); ax.set_yticklabels(ops, fontsize=8)\n", + " ax.set_title(f'target_cost = {target_cost:,}', fontsize=10)\n", + " plt.colorbar(im, ax=ax, shrink=0.8)\n", + " for i in range(m):\n", + " for j in range(m):\n", + " ax.text(j, i, f'{mat[i,j]:.2f}', ha='center', va='center', fontsize=7,\n", + " color='black' if abs(mat[i,j]) < vmax * 0.6 else 'white')\n", + "\n", + "for idx in range(len(matched_costs), nrows * ncols):\n", + " axes[idx // ncols][idx % ncols].set_visible(False)\n", + "\n", + "fig.suptitle('Local-cost-matched operators: log(cpu(a)/cpu(b)) - log(plan_cost(a)/plan_cost(b)) [0 = perfect, +/-ln2 about 0.69 = 2x off]', fontsize=12)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "operator-cost-matched-comparison-table", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
target_cost6400001000000324000067600001225000026010000
ab
AggregationFilter0.5520.3120.4780.5310.8881.101
HashJoin0.0470.021-0.025-0.1490.1810.637
NestedLoopCrossJoin-0.169-0.206-0.065-0.2200.0000.277
NestedLoopJoin-0.651-0.688-0.479-0.405-0.0110.469
Projection-0.508-0.718-0.743-0.668-0.2620.103
SeqScan-0.1800.1490.3070.1220.5010.778
Sort-0.290-0.409-0.523-0.541-0.320-0.188
FilterAggregation-0.552-0.312-0.478-0.531-0.888-1.101
HashJoin-0.504-0.290-0.502-0.680-0.707-0.465
NestedLoopCrossJoin-0.721-0.517-0.543-0.751-0.887-0.824
NestedLoopJoin-1.203-0.999-0.956-0.936-0.899-0.633
Projection-1.059-1.030-1.220-1.199-1.150-0.998
SeqScan-0.732-0.162-0.171-0.409-0.386-0.323
Sort-0.841-0.720-1.000-1.072-1.207-1.289
HashJoinAggregation-0.047-0.0210.0250.149-0.181-0.637
Filter0.5040.2900.5020.6800.7070.465
NestedLoopCrossJoin-0.217-0.227-0.041-0.071-0.180-0.359
NestedLoopJoin-0.698-0.709-0.454-0.256-0.192-0.168
Projection-0.555-0.740-0.718-0.519-0.443-0.533
SeqScan-0.2270.1280.3310.2710.3210.142
Sort-0.337-0.430-0.498-0.392-0.500-0.825
NestedLoopCrossJoinAggregation0.1690.2060.0650.220-0.000-0.277
Filter0.7210.5170.5430.7510.8870.824
HashJoin0.2170.2270.0410.0710.1800.359
NestedLoopJoin-0.482-0.482-0.413-0.185-0.0110.191
Projection-0.338-0.512-0.677-0.448-0.262-0.174
SeqScan-0.0110.3550.3720.3420.5010.501
Sort-0.121-0.203-0.457-0.321-0.320-0.465
NestedLoopJoinAggregation0.6510.6880.4790.4050.011-0.469
Filter1.2030.9990.9560.9360.8990.633
HashJoin0.6980.7090.4540.2560.1920.168
NestedLoopCrossJoin0.4820.4820.4130.1850.011-0.191
Projection0.143-0.030-0.264-0.263-0.251-0.365
SeqScan0.4710.8370.7860.5270.5120.310
Sort0.3610.279-0.044-0.136-0.309-0.657
ProjectionAggregation0.5080.7180.7430.6680.262-0.103
Filter1.0591.0301.2201.1991.1500.998
HashJoin0.5550.7400.7180.5190.4430.533
NestedLoopCrossJoin0.3380.5120.6770.4480.2620.174
NestedLoopJoin-0.1430.0300.2640.2630.2510.365
SeqScan0.3280.8671.0490.7900.7630.675
Sort0.2180.3090.2200.127-0.058-0.291
SeqScanAggregation0.180-0.149-0.307-0.122-0.501-0.778
Filter0.7320.1620.1710.4090.3860.323
HashJoin0.227-0.128-0.331-0.271-0.321-0.142
NestedLoopCrossJoin0.011-0.355-0.372-0.342-0.501-0.501
NestedLoopJoin-0.471-0.837-0.786-0.527-0.512-0.310
Projection-0.328-0.867-1.049-0.790-0.763-0.675
Sort-0.110-0.558-0.830-0.663-0.821-0.966
SortAggregation0.2900.4090.5230.5410.3200.188
Filter0.8410.7201.0001.0721.2071.289
HashJoin0.3370.4300.4980.3920.5000.825
NestedLoopCrossJoin0.1210.2030.4570.3210.3200.465
NestedLoopJoin-0.361-0.2790.0440.1360.3090.657
Projection-0.218-0.309-0.220-0.1270.0580.291
SeqScan0.1100.5580.8300.6630.8210.966
\n", + "
" + ], + "text/plain": [ + "target_cost 640000 1000000 3240000 \\\n", + "a b \n", + "Aggregation Filter 0.552 0.312 0.478 \n", + " HashJoin 0.047 0.021 -0.025 \n", + " NestedLoopCrossJoin -0.169 -0.206 -0.065 \n", + " NestedLoopJoin -0.651 -0.688 -0.479 \n", + " Projection -0.508 -0.718 -0.743 \n", + " SeqScan -0.180 0.149 0.307 \n", + " Sort -0.290 -0.409 -0.523 \n", + "Filter Aggregation -0.552 -0.312 -0.478 \n", + " HashJoin -0.504 -0.290 -0.502 \n", + " NestedLoopCrossJoin -0.721 -0.517 -0.543 \n", + " NestedLoopJoin -1.203 -0.999 -0.956 \n", + " Projection -1.059 -1.030 -1.220 \n", + " SeqScan -0.732 -0.162 -0.171 \n", + " Sort -0.841 -0.720 -1.000 \n", + "HashJoin Aggregation -0.047 -0.021 0.025 \n", + " Filter 0.504 0.290 0.502 \n", + " NestedLoopCrossJoin -0.217 -0.227 -0.041 \n", + " NestedLoopJoin -0.698 -0.709 -0.454 \n", + " Projection -0.555 -0.740 -0.718 \n", + " SeqScan -0.227 0.128 0.331 \n", + " Sort -0.337 -0.430 -0.498 \n", + "NestedLoopCrossJoin Aggregation 0.169 0.206 0.065 \n", + " Filter 0.721 0.517 0.543 \n", + " HashJoin 0.217 0.227 0.041 \n", + " NestedLoopJoin -0.482 -0.482 -0.413 \n", + " Projection -0.338 -0.512 -0.677 \n", + " SeqScan -0.011 0.355 0.372 \n", + " Sort -0.121 -0.203 -0.457 \n", + "NestedLoopJoin Aggregation 0.651 0.688 0.479 \n", + " Filter 1.203 0.999 0.956 \n", + " HashJoin 0.698 0.709 0.454 \n", + " NestedLoopCrossJoin 0.482 0.482 0.413 \n", + " Projection 0.143 -0.030 -0.264 \n", + " SeqScan 0.471 0.837 0.786 \n", + " Sort 0.361 0.279 -0.044 \n", + "Projection Aggregation 0.508 0.718 0.743 \n", + " Filter 1.059 1.030 1.220 \n", + " HashJoin 0.555 0.740 0.718 \n", + " NestedLoopCrossJoin 0.338 0.512 0.677 \n", + " NestedLoopJoin -0.143 0.030 0.264 \n", + " SeqScan 0.328 0.867 1.049 \n", + " Sort 0.218 0.309 0.220 \n", + "SeqScan Aggregation 0.180 -0.149 -0.307 \n", + " Filter 0.732 0.162 0.171 \n", + " HashJoin 0.227 -0.128 -0.331 \n", + " NestedLoopCrossJoin 0.011 -0.355 -0.372 \n", + " NestedLoopJoin -0.471 -0.837 -0.786 \n", + " Projection -0.328 -0.867 -1.049 \n", + " Sort -0.110 -0.558 -0.830 \n", + "Sort Aggregation 0.290 0.409 0.523 \n", + " Filter 0.841 0.720 1.000 \n", + " HashJoin 0.337 0.430 0.498 \n", + " NestedLoopCrossJoin 0.121 0.203 0.457 \n", + " NestedLoopJoin -0.361 -0.279 0.044 \n", + " Projection -0.218 -0.309 -0.220 \n", + " SeqScan 0.110 0.558 0.830 \n", + "\n", + "target_cost 6760000 12250000 26010000 \n", + "a b \n", + "Aggregation Filter 0.531 0.888 1.101 \n", + " HashJoin -0.149 0.181 0.637 \n", + " NestedLoopCrossJoin -0.220 0.000 0.277 \n", + " NestedLoopJoin -0.405 -0.011 0.469 \n", + " Projection -0.668 -0.262 0.103 \n", + " SeqScan 0.122 0.501 0.778 \n", + " Sort -0.541 -0.320 -0.188 \n", + "Filter Aggregation -0.531 -0.888 -1.101 \n", + " HashJoin -0.680 -0.707 -0.465 \n", + " NestedLoopCrossJoin -0.751 -0.887 -0.824 \n", + " NestedLoopJoin -0.936 -0.899 -0.633 \n", + " Projection -1.199 -1.150 -0.998 \n", + " SeqScan -0.409 -0.386 -0.323 \n", + " Sort -1.072 -1.207 -1.289 \n", + "HashJoin Aggregation 0.149 -0.181 -0.637 \n", + " Filter 0.680 0.707 0.465 \n", + " NestedLoopCrossJoin -0.071 -0.180 -0.359 \n", + " NestedLoopJoin -0.256 -0.192 -0.168 \n", + " Projection -0.519 -0.443 -0.533 \n", + " SeqScan 0.271 0.321 0.142 \n", + " Sort -0.392 -0.500 -0.825 \n", + "NestedLoopCrossJoin Aggregation 0.220 -0.000 -0.277 \n", + " Filter 0.751 0.887 0.824 \n", + " HashJoin 0.071 0.180 0.359 \n", + " NestedLoopJoin -0.185 -0.011 0.191 \n", + " Projection -0.448 -0.262 -0.174 \n", + " SeqScan 0.342 0.501 0.501 \n", + " Sort -0.321 -0.320 -0.465 \n", + "NestedLoopJoin Aggregation 0.405 0.011 -0.469 \n", + " Filter 0.936 0.899 0.633 \n", + " HashJoin 0.256 0.192 0.168 \n", + " NestedLoopCrossJoin 0.185 0.011 -0.191 \n", + " Projection -0.263 -0.251 -0.365 \n", + " SeqScan 0.527 0.512 0.310 \n", + " Sort -0.136 -0.309 -0.657 \n", + "Projection Aggregation 0.668 0.262 -0.103 \n", + " Filter 1.199 1.150 0.998 \n", + " HashJoin 0.519 0.443 0.533 \n", + " NestedLoopCrossJoin 0.448 0.262 0.174 \n", + " NestedLoopJoin 0.263 0.251 0.365 \n", + " SeqScan 0.790 0.763 0.675 \n", + " Sort 0.127 -0.058 -0.291 \n", + "SeqScan Aggregation -0.122 -0.501 -0.778 \n", + " Filter 0.409 0.386 0.323 \n", + " HashJoin -0.271 -0.321 -0.142 \n", + " NestedLoopCrossJoin -0.342 -0.501 -0.501 \n", + " NestedLoopJoin -0.527 -0.512 -0.310 \n", + " Projection -0.790 -0.763 -0.675 \n", + " Sort -0.663 -0.821 -0.966 \n", + "Sort Aggregation 0.541 0.320 0.188 \n", + " Filter 1.072 1.207 1.289 \n", + " HashJoin 0.392 0.500 0.825 \n", + " NestedLoopCrossJoin 0.321 0.320 0.465 \n", + " NestedLoopJoin 0.136 0.309 0.657 \n", + " Projection -0.127 0.058 0.291 \n", + " SeqScan 0.663 0.821 0.966 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "matched_rows = []\n", + "for target_cost in matched_costs:\n", + " sub = matched_pivot.xs(target_cost, level='target_cost')\n", + " ops = sub.index.tolist()\n", + " for a in ops:\n", + " for b in ops:\n", + " if a != b:\n", + " delta = (np.log(sub.loc[a, 'cpu_time']) - np.log(sub.loc[b, 'cpu_time']) -\n", + " (np.log(sub.loc[a, 'plan_cost']) - np.log(sub.loc[b, 'plan_cost'])))\n", + " matched_rows.append({'target_cost': target_cost, 'a': a, 'b': b, 'delta': delta})\n", + "\n", + "matched_comparison = pd.DataFrame(matched_rows)\n", + "matched_comparison.pivot_table(index=['a', 'b'], columns='target_cost', values='delta').round(3)" + ] } ], "metadata": { diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index c32f335..e726a66 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -72,21 +72,19 @@ PropertySet DeriveOutputProps(utils::NotNull expr, int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstimates& cardinality) { return std::visit(utils::Overloaded{ [&](const logical::Table&) -> int64_t { - return cardinality.GetCardinality(expr->group); + return 100 * cardinality.GetCardinality(expr->group); }, [&](const logical::Filter&) -> int64_t { - return cardinality.GetCardinality(expr->group); + return 100 * cardinality.GetCardinality(expr->group); }, [&](const logical::Projection&) -> int64_t { - return cardinality.GetCardinality(expr->group); + return 22 * cardinality.GetCardinality(expr->group); }, - [&](const logical::Aggregation&) -> int64_t { - return cardinality.GetCardinality(expr->group); + [&](const logical::Aggregation& a) -> int64_t { + return 510 * cardinality.GetCardinality(a.source); }, [&](const logical::CrossJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); + return 104 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs); }, [&](const logical::Join& j) -> int64_t { // Must stay ≤ every physical impl. NLJ ~ n_l*n_r, HJ ~ n_l+n_r @@ -94,7 +92,7 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima // take the min so the bound is safe for both alternatives. auto n_l = cardinality.GetCardinality(j.lhs); auto n_r = cardinality.GetCardinality(j.rhs); - return std::min(n_l + n_r, n_l * n_r); + return std::min(69 * (n_l + n_r), 70 * n_l * n_r); }, }, expr->root_operator); } @@ -102,33 +100,33 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) -> int64_t { - return cardinality.GetCardinality(expr->group); + return 100 * cardinality.GetCardinality(expr->group); }, [&](const physical::Filter&) -> int64_t { - return cardinality.GetCardinality(expr->group); + return 100 * cardinality.GetCardinality(expr->group); }, [&](const physical::Projection&) -> int64_t { - return cardinality.GetCardinality(expr->group); + return 22 * cardinality.GetCardinality(expr->group); }, [&](const physical::NestedLoopJoin& j) -> int64_t { auto n_l = cardinality.GetCardinality(j.lhs); auto n_r = cardinality.GetCardinality(j.rhs); - return n_l * n_r; + return 70 * n_l * n_r; }, [&](const physical::NestedLoopCrossJoin& j) -> int64_t { - auto p_l = (cardinality.GetCardinality(j.lhs) + kBufSize - 1) / kBufSize; - auto p_r = (cardinality.GetCardinality(j.rhs) + kBufSize - 1) / kBufSize; - return p_l * (1 + p_r); + auto n_l = cardinality.GetCardinality(j.lhs); + auto n_r = cardinality.GetCardinality(j.rhs); + return 104 * n_l * n_r; }, [&](const physical::HashJoin& j) -> int64_t { - return cardinality.GetCardinality(j.lhs) + cardinality.GetCardinality(j.rhs); + return 69 * (cardinality.GetCardinality(j.lhs) + cardinality.GetCardinality(j.rhs)); }, [&](const physical::Sort& s) -> int64_t { auto n = cardinality.GetCardinality(s.input); - return n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n; + return 11 * (n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n); }, [&](const physical::Aggregation& a) -> int64_t { - return cardinality.GetCardinality(a.source); + return 510 * cardinality.GetCardinality(a.source); }, }, expr->root_operator); } From 3ea373e1dc9575a1ea0cf8fffd165e61c692d266 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 1 Jun 2026 14:22:36 +0300 Subject: [PATCH 071/120] Fix --- .gitignore | 1 + benchmarks/main.cpp | 6 +-- .../stewkk/sql/logic/executor/buffer_size.hpp | 3 +- .../stewkk/sql/logic/optimizer/optimizer.hpp | 4 -- .../sql/logic/optimizer/reachability.hpp | 5 -- .../sql/logic/optimizer/schema_catalog.hpp | 2 +- .../transformation_rules/filter_merge.hpp | 3 -- .../filter_pushdown_through_join.hpp | 5 -- .../filter_pushdown_through_projection.hpp | 5 -- .../transformation_rules/filter_split.hpp | 3 -- .../transformation_rules/in_to_or_chain.hpp | 8 ---- include/stewkk/sql/utils/not_null.hpp | 4 +- src/stewkk/sql/logic/executor/executor.cpp | 46 +++++++++---------- .../sql/logic/executor/executor_test.cpp | 4 +- .../sql/logic/executor/plan_serializer.cpp | 2 - .../implement_hash_join.cpp | 4 -- .../sql/logic/optimizer/cardinality.cpp | 4 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 35 +++++--------- .../sql/logic/optimizer/optimizer_test.cpp | 12 ++--- .../sql/logic/optimizer/schema_catalog.cpp | 2 - src/stewkk/sql/logic/parser/visitor.cpp | 7 --- .../transformation_rules/in_to_or_chain.cpp | 4 -- .../join_associativity.cpp | 4 -- .../transformation_rules/predicate_utils.cpp | 2 - src/stewkk/sql/main.cpp | 14 ------ 25 files changed, 50 insertions(+), 139 deletions(-) diff --git a/.gitignore b/.gitignore index 66e2d9b..b1ab3b0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ FlameGraph/ /benchmarks/datasets/ssb/generated/ /benchmarks/datasets/ssb/raw/ /.plans/ +/report/build-practice/ diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 1177b72..14d29e7 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -101,7 +101,7 @@ CardinalityEstimates LoadCardinalityFromCsvDir(const std::filesystem::path& dir) if (entry.path().extension() != ".csv") continue; std::ifstream in{entry.path()}; std::string line; - int64_t rows = -1; // header + int64_t rows = -1; while (std::getline(in, line)) ++rows; counts.emplace(entry.path().stem().string(), std::max(0, rows)); } @@ -148,10 +148,6 @@ static constexpr char kComplex4000[]{"SELECT departments_4000.id*2, employees_20 static constexpr char kComplex8000[]{"SELECT departments_8000.id*2, employees_200.id+1 FROM employees_200 RIGHT JOIN departments_8000 ON employees_200.department_id = departments_8000.id AND departments_8000.id > 3 AND departments_8000.id*2*2/2/2*2 < 30;"}; static constexpr char kComplex16000[]{"SELECT departments_16000.id*2, employees_200.id+1 FROM employees_200 RIGHT JOIN departments_16000 ON employees_200.department_id = departments_16000.id AND departments_16000.id > 3 AND departments_16000.id*2*2/2/2*2 < 30;"}; -// 3-way joins on skewed tables (regions=10, customers=500, orders=5000). -// Naive textual order (orders ⋈ customers) ⋈ regions builds a ~2.5M-tuple -// intermediate. JoinAssociativity + JoinCommutativity let the optimizer pick a -// shape with much smaller intermediates. static constexpr char kMultiwayOCR[]{ "SELECT orders.id, customers.id, regions.id FROM orders " "JOIN customers ON orders.customer_id = customers.id " diff --git a/include/stewkk/sql/logic/executor/buffer_size.hpp b/include/stewkk/sql/logic/executor/buffer_size.hpp index cf4bb29..176aeef 100644 --- a/include/stewkk/sql/logic/executor/buffer_size.hpp +++ b/include/stewkk/sql/logic/executor/buffer_size.hpp @@ -6,5 +6,4 @@ namespace stewkk::sql { constexpr static std::size_t kBufSize = 2048; -} // stewkk::sql - +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index 779b62f..b4975da 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -43,10 +43,6 @@ class Optimizer { void OptimizeInputs(utils::NotNull expr, PropertySet required, std::vector child_delivered, int64_t accum, Limit limit, size_t child_index = 0); - // Property-independent admissible lower bound on the cheapest physical plan - // for this group: min over logical alternatives of (best-case local cost + - // sum of children's lower bounds). Cached; safe to memoize once Phase 1 - // exploration has populated the group's logical alternatives. std::int64_t LowerBoundCost(utils::NotNull group); void ApplyRule(TransformationRuleId rule, utils::NotNull expr, Limit limit); diff --git a/include/stewkk/sql/logic/optimizer/reachability.hpp b/include/stewkk/sql/logic/optimizer/reachability.hpp index 8e74e67..c62eda9 100644 --- a/include/stewkk/sql/logic/optimizer/reachability.hpp +++ b/include/stewkk/sql/logic/optimizer/reachability.hpp @@ -19,11 +19,6 @@ struct MatchResult { MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target); -// Runs an exhaustive search over `sql` and reports whether `target` is among -// the physical alternatives the optimizer enumerates. The query's ORDER BY (if -// any) is propagated as a required sort property so the search also generates -// the Sort enforcers needed to reach an ordered plan; `schema` lets those -// enforcers validate that the sort keys exist on the group they sit above. MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, CardinalityEstimates cardinality = {}, SchemaCatalog schema = {}); diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp index 93c0446..7a336e9 100644 --- a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -17,7 +17,7 @@ class SchemaCatalog { public: SchemaCatalog(std::unordered_map tables = {}); - // Returns nullopt when any table in the subtree is unknown to the catalog. + std::optional GetSchema(utils::NotNull group); private: diff --git a/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp b/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp index b45801c..dbbf035 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp @@ -5,9 +5,6 @@ namespace stewkk::sql { -// Filter(p_outer, Filter(p_inner, X)) → Filter(p_outer AND p_inner, X) -// Collapses adjacent filters so the merged predicate can be pushed down or -// matched against join quals as a single conjunction. class FilterMerge : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; diff --git a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp index b659e71..9db2b4f 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp @@ -5,11 +5,6 @@ namespace stewkk::sql { -// Filter(p, Join(L, R, T, q)) → [Filter(rest,)] Join(maybeFilter(p_L,L), maybeFilter(p_R,R), T, q) -// Conjuncts of p whose attributes lie entirely within one side are pushed -// into that side; conjuncts spanning both sides remain above the join. -// Outer-join safety: a conjunct may only be pushed into a *preserved* side — -// LEFT preserves lhs, RIGHT preserves rhs, INNER preserves both, FULL neither. class FilterPushdownThroughJoin : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; diff --git a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp index 8217370..b22944d 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp @@ -5,11 +5,6 @@ namespace stewkk::sql { -// Filter(p, Projection(exprs, X)) → Projection(exprs, Filter(p, X)) -// Safe only when every Attribute referenced by p appears as a bare Attribute -// in exprs (i.e. is passed through unchanged). Computed projections cannot be -// referenced by name in this AST, so the conservative bare-attribute check -// also matches the wider correctness condition. class FilterPushdownThroughProjection : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; diff --git a/include/stewkk/sql/logic/transformation_rules/filter_split.hpp b/include/stewkk/sql/logic/transformation_rules/filter_split.hpp index 51bc362..5eba6d8 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_split.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_split.hpp @@ -5,9 +5,6 @@ namespace stewkk::sql { -// Filter(p1 AND p2 AND ... AND pn, X) → Filter(p1, Filter(p2 AND ... AND pn, X)) -// Splits the first conjunct off; remaining conjuncts cascade-split when the -// rule fires on the inner Filter. class FilterSplit : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; diff --git a/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp b/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp index 923824d..bbcd362 100644 --- a/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp +++ b/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp @@ -5,14 +5,6 @@ namespace stewkk::sql { -// Filter(... x IN (v0, v1, ...) ..., X) -// → Filter(... (x = v0 OR x = v1 OR ...) ..., X) -// and the NOT IN case to (x != v0 AND x != v1 AND ...). -// -// IN and the OR-chain are equal under three-valued logic, so this just adds the -// expanded form as a sibling in the same group. It lets the exhaustive search -// reach plans that materialize the OR-chain (as MS SQL Server does), and the -// expanded predicate is JIT-able whereas the InExpression node is not. class InToOrChain : public TransformationRule { public: bool IsApplicable(utils::NotNull expr) override; diff --git a/include/stewkk/sql/utils/not_null.hpp b/include/stewkk/sql/utils/not_null.hpp index d48d54f..d34f78a 100644 --- a/include/stewkk/sql/utils/not_null.hpp +++ b/include/stewkk/sql/utils/not_null.hpp @@ -9,14 +9,14 @@ template requires std::is_pointer_v class NotNull { public: - NotNull(T ptr) : ptr_(ptr) { assert(ptr_ != nullptr); } // NOLINT(google-explicit-constructor) + NotNull(T ptr) : ptr_(ptr) { assert(ptr_ != nullptr); } NotNull(std::nullptr_t) = delete; T get() const { return ptr_; } auto& operator*() const { return *ptr_; } T operator->() const { return ptr_; } - operator T() const { return ptr_; } // NOLINT(google-explicit-constructor) + operator T() const { return ptr_; } bool operator==(const NotNull& other) const = default; diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index e348324..9d174a1 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -122,7 +122,7 @@ Type GetExpressionType(const Expression& expr, const AttributesInfo& available_a } Type operator()(const Literal& literal) const { // NOTE: we are using switch because compiler will remind about adding - // type of new literal here + switch (literal) { case Literal::kNull: return Type::kBool; @@ -589,9 +589,9 @@ boost::asio::awaitable> Executor::Execute(c auto [attr_chan, tuples_chan] = co_await GetChannels(); auto task = SpawnExecutor(exec, op, attr_chan, tuples_chan); - // If the child throws, its scope_fail closes both channels, which wakes - // our async_receive with channel_closed. We then await the task to surface - // the child's real exception instead of the channel_closed wrapper. + + + std::exception_ptr eptr; AttributesInfo attrs; Tuples result; @@ -635,7 +635,7 @@ boost::asio::awaitable Executor::Execute(const Physica } boost::asio::awaitable operator()(const PhysicalProjection& projection) { // NOTE: We are using multiset relational algebra projection (i.e. not - // eleminating duplicate tuples) + co_await executor.ExecuteProjection(projection, attr_chan, tuples_chan); co_return; } @@ -1079,11 +1079,11 @@ size_t FindAttrIndex(const AttributesInfo& attrs, const Attribute& a) { } // namespace -// Inner equi-join: build a hash table on lhs.key, then probe with rhs. -// ImplementHashJoin gates applicability to `attr = attr` quals on Inner joins, -// so the only shapes that reach here are: lhs_attr == rhs_attr or rhs_attr == -// lhs_attr. We resolve which side owns each attribute via the lhs attribute -// stream; the remaining one must belong to rhs. + + + + + template boost::asio::awaitable Executor::ExecuteHashJoin( const HashJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { @@ -1112,7 +1112,7 @@ boost::asio::awaitable Executor::ExecuteHashJoin( auto lhs_attrs = co_await lhs_attrs_chan.async_receive(boost::asio::use_awaitable); auto rhs_attrs = co_await rhs_attrs_chan.async_receive(boost::asio::use_awaitable); - // Pick the (lhs_key, rhs_key) pair regardless of which side the qual wrote first. + auto lhs_has = [&](const Attribute& attr) { return std::any_of(lhs_attrs.begin(), lhs_attrs.end(), [&](const AttributeInfo& ai) { return ai.table == attr.table && ai.name == attr.name; @@ -1135,8 +1135,8 @@ boost::asio::awaitable Executor::ExecuteHashJoin( boost::asio::use_awaitable); attr_chan.close(); - // Build phase: collect all lhs tuples into a hash multimap keyed by lhs.key. - // NULL keys never match (SQL = on NULL is unknown), so drop them. + + std::unordered_multimap build; for (;;) { auto buf = co_await ReceiveTuples(lhs_tuples_chan); @@ -1150,7 +1150,7 @@ boost::asio::awaitable Executor::ExecuteHashJoin( } Log("HashJoin build phase done; {} entries", build.size()); - // Probe phase: stream rhs, lookup matches, emit joined tuples in kBufSize chunks. + Tuples out_buf; out_buf.reserve(kBufSize); for (;;) { @@ -1194,7 +1194,7 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( auto in_attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); - // Build output AttributesInfo: group_by cols then one slot per aggregate. + AttributesInfo out_attrs; for (const auto& expr : agg.group_by) { if (const auto* attr = std::get_if(&expr)) { @@ -1217,12 +1217,12 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( boost::asio::use_awaitable); out_attr_chan.close(); - // Per-group state: vector of int64_t accumulators, one per aggregate. - // For SUM: running total (null if all inputs null). - // For COUNT: running count of non-null inputs (or all rows for COUNT(*)). + + + struct GroupState { std::vector accumulators; - std::vector any_non_null; // for SUM null tracking + std::vector any_non_null; }; struct TupleKeyHash { size_t operator()(const std::vector& key) const { @@ -1236,7 +1236,7 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( }; std::unordered_map, GroupState, TupleKeyHash> groups; - // Scalar evaluator for group-by keys and aggregate arguments. + auto do_scalar = [&](const Expression& expr, const Tuple& tuple) -> Value { return CalcExpression(tuple, in_attrs, expr); }; @@ -1270,7 +1270,7 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( auto v = do_scalar(*agg_expr.argument, tuple); if (!v.is_null) state.accumulators[i]++; } - } else { // SUM + } else { auto v = do_scalar(*agg_expr.argument, tuple); if (!v.is_null) { state.accumulators[i] += v.value.int_value; @@ -1281,7 +1281,7 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( } } - // For scalar aggregate over empty input, emit one row with COUNT=0 / SUM=NULL. + if (scalar_agg && groups.empty()) { groups.emplace(std::vector{}, init_state()); } @@ -1293,7 +1293,7 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( for (size_t i = 0; i < agg.aggregates.size(); ++i) { const auto& agg_expr = std::get(agg.aggregates[i]); if (agg_expr.function == AggregateFunction::kSum && !state.any_non_null[i]) { - tuple.push_back(Value{true}); // NULL + tuple.push_back(Value{true}); } else { tuple.push_back(Value{false, {.int_value = state.accumulators[i]}}); } diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index c1fb3b9..cb50130 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -738,9 +738,9 @@ TEST(ExecutorTest, GroupByCountStar) { }(), [](std::exception_ptr p, Result got) { if (p) std::rethrow_exception(p); - // 11 distinct age values in users.csv + ASSERT_THAT(got.value().tuples.size(), Eq(11u)); - // Sum of counts must equal total rows (17) + int64_t total = 0; for (const auto& t : got.value().tuples) { total += t[1].value.int_value; diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 4cb8af9..9ae53dc 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -101,8 +101,6 @@ std::string SerializeExpr(const Expression& expr) { SerializeExpr(*e.lhs), SerializeExpr(*e.rhs)); } std::string operator()(const Attribute& a) const { - // Synthetic aggregate-output attributes have an empty table; emit - // "-" so the field stays a parseable atom on the deserialize side. return std::format("(attr {} {})", a.table.empty() ? "-" : a.table, a.name); } std::string operator()(IntConst n) const { diff --git a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp index a207506..4306956 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp @@ -4,10 +4,6 @@ namespace stewkk::sql { namespace { -// HashJoin currently handles only `attr_l = attr_r` quals on Inner joins. -// Outer-join semantics need a "right-side matched" bitmap during probe; not -// implemented yet. Composite/expression keys would require key extraction -// from arbitrary Expression nodes, also not done. bool IsSimpleEquiJoin(const Expression& qual) { const auto* bin = std::get_if(&qual); if (!bin || bin->binop != BinaryOp::kEq) return false; diff --git a/src/stewkk/sql/logic/optimizer/cardinality.cpp b/src/stewkk/sql/logic/optimizer/cardinality.cpp index 28ff243..2749864 100644 --- a/src/stewkk/sql/logic/optimizer/cardinality.cpp +++ b/src/stewkk/sql/logic/optimizer/cardinality.cpp @@ -8,8 +8,8 @@ namespace stewkk::sql { namespace { -// System R: each `attr = attr` conjunct contributes 1/max(lhs_card, rhs_card); -// AND multiplies; anything else (including TRUE) contributes 1.0. + + double JoinSelectivity(const Expression& qual, int64_t lhs_card, int64_t rhs_card) { const auto* b = std::get_if(&qual); if (!b) return 1.0; diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index e726a66..43c3d86 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -24,7 +24,7 @@ static const std::vector> kEnforcers = [] { return v; }(); -// Top-down: given `required` of this expr, what must child `child_index` deliver? + PropertySet RequiredInputProps(utils::NotNull expr, PropertySet required, size_t child_index) { return std::visit(utils::Overloaded{ @@ -38,9 +38,6 @@ PropertySet RequiredInputProps(utils::NotNull expr, return child_index == 0 ? required : PropertySet::Any(); }, [&](const physical::HashJoin&) -> PropertySet { - // HashJoin reorders output (hash-partitioned scan of build side, then - // probe-driven emit). It does not preserve any input sort order, so - // never ask children to satisfy `required`. return PropertySet::Any(); }, [&](const physical::Sort&) { return PropertySet::Any(); }, @@ -48,9 +45,6 @@ PropertySet RequiredInputProps(utils::NotNull expr, }, expr->root_operator); } -// Bottom-up: given what children delivered, what does this expr deliver? -// Sort property is schema-blind — operators that need column access (sort -// enforcer placement, merge join applicability) check the schema separately. PropertySet DeriveOutputProps(utils::NotNull expr, const std::vector& child_delivered) { return std::visit(utils::Overloaded{ @@ -65,10 +59,6 @@ PropertySet DeriveOutputProps(utils::NotNull expr, }, expr->root_operator); } -// Best-case local cost achievable by any physical impl of this logical -// operator, ignoring required physical properties. Used to compute group lower -// bounds for B&B pruning. Must remain ≤ every CalcCost over physical impls of -// the same logical alternative — update when adding cheaper physical impls. int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstimates& cardinality) { return std::visit(utils::Overloaded{ [&](const logical::Table&) -> int64_t { @@ -87,9 +77,6 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima return 104 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs); }, [&](const logical::Join& j) -> int64_t { - // Must stay ≤ every physical impl. NLJ ~ n_l*n_r, HJ ~ n_l+n_r - // (equi only). When either side has 1 tuple, NLJ can beat HJ, so - // take the min so the bound is safe for both alternatives. auto n_l = cardinality.GetCardinality(j.lhs); auto n_r = cardinality.GetCardinality(j.rhs); return std::min(69 * (n_l + n_r), 70 * n_l * n_r); @@ -199,7 +186,7 @@ int64_t Optimizer::LowerBoundCost(utils::NotNu if (auto it = lower_bounds_.find(group.get()); it != lower_bounds_.end()) { return it->second; } - // Memo groups form a DAG (no cycles), so recursion terminates. + int64_t best = std::numeric_limits::max(); for (auto expr : group->GetLogicalExprs()) { int64_t local = LowerBoundLocalCost(expr, cardinality_); @@ -232,8 +219,8 @@ template void Optimizer::OptimizeInputs( utils::NotNull expr, PropertySet required, std::vector child_delivered, int64_t accum, Limit limit, size_t child_index) { - // accum = local_cost(expr) + cost of children processed so far. - // child_delivered[i] = what child i actually delivered (filled as we go). + + WinnerKey self_key{expr->group.get(), required}; if (auto it = winner_.find(self_key); it != winner_.end()) { limit = limit ? Limit{std::min(*limit, it->second.cost)} : Limit{it->second.cost}; @@ -282,9 +269,9 @@ void Optimizer::ApplyRule( Log("Applying transformation rule {} to group {}", rule.value, expr->group->GetId()); auto new_expr = rules_applier_.Apply(rule, expr, memo_); tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); - // A new logical alternative in new_expr->group may unlock parent-side rules - // whose patterns inspect child operators. Re-try rules on every parent; - // already-applied (expr, rule) pairs are no-ops thanks to RulesApplier gating. + + + if (auto it = group_parents_.find(new_expr->group.get()); it != group_parents_.end()) { for (auto* parent : it->second) { tasks_.emplace([this, parent, limit]() { @@ -367,9 +354,9 @@ void Optimizer::OptimizeGroup( return; } - // Try every non-enforcer phys expr under `required`. Whether it actually - // serves `required` is decided at the bottom of OptimizeInputs once children - // have resolved and DeriveOutputProps can compute the true delivered. + + + for (auto phys_expr : group->GetPhysicalExprs()) { if (phys_expr->is_enforcer) continue; auto lc = local_cost_[phys_expr.get()]; @@ -384,7 +371,7 @@ void Optimizer::OptimizeGroup( for (const auto& enforcer : kEnforcers) { auto op = enforcer->TryBuild(group, required, schema_); if (!op) continue; - auto enf_expr = group->AddPhysicalExpr(*op, /*is_enforcer=*/true); + auto enf_expr = group->AddPhysicalExpr(*op, true); auto lc = CalcCost(enf_expr, cardinality_); Log("Enforcer local cost for group {}: {}", group->GetId(), lc); local_cost_[enf_expr.get()] = lc; diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index b32cb15..8bfeba0 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -221,8 +221,8 @@ TEST(ReachabilityTest, InExpandsToOrChain) { ASSERT_THAT(result.reachable, IsTrue()); } -// An ORDER BY query becomes a required sort property, so the search generates a -// Sort enforcer on the root projection group and the ordered plan is reachable. + + TEST(ReachabilityTest, OrderByReachableViaSortEnforcer) { std::stringstream s{"SELECT users.id FROM users ORDER BY users.id;"}; PhysicalSort target{ @@ -235,8 +235,8 @@ TEST(ReachabilityTest, OrderByReachableViaSortEnforcer) { ASSERT_THAT(result.reachable, IsTrue()); } -// The enforcer is generated for the ORDER BY direction the query asked for, so -// a plan whose Sort runs the other way is not reachable. + + TEST(ReachabilityTest, OrderByWrongDirectionNotReachable) { std::stringstream s{"SELECT users.id FROM users ORDER BY users.id ASC;"}; PhysicalSort target{ @@ -249,8 +249,8 @@ TEST(ReachabilityTest, OrderByWrongDirectionNotReachable) { ASSERT_THAT(result.reachable, IsFalse()); } -// Without an ORDER BY no required sort is propagated, so no Sort enforcer is -// ever built and a plan that carries a Sort cannot be reached. + + TEST(ReachabilityTest, SortNotReachableWithoutOrderBy) { std::stringstream s{"SELECT users.id FROM users;"}; PhysicalSort target{ diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index 9c67fe8..43c801f 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -35,8 +35,6 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { return GetSchema(f.source); }, [](const logical::Projection& p) -> std::optional { - // Aliased projection outputs can be referenced by unqualified ORDER - // BY names. Unaliased computed expressions are not addressable. Schema out; for (size_t i = 0; i < p.expressions.size(); ++i) { if (i < p.aliases.size() && p.aliases[i]) { diff --git a/src/stewkk/sql/logic/parser/visitor.cpp b/src/stewkk/sql/logic/parser/visitor.cpp index eff49cd..cf7f5e1 100644 --- a/src/stewkk/sql/logic/parser/visitor.cpp +++ b/src/stewkk/sql/logic/parser/visitor.cpp @@ -390,10 +390,6 @@ Expression MakeUnary(UnaryOp op, Expression child) { return UnaryExpression{op, std::make_shared(std::move(child))}; } -// Returns the table_ref's atom (no joins) and an iterator pointing to its first -// post-atom child. The grammar's `(... join ...)*` tail is greedy on the rhs -// table_ref, so the caller is responsible for flattening that chain instead of -// visiting it whole. std::pair ExtractAtom(Visitor* v, TableRefCtx* ctx) { if (ctx->xmltable()) { throw Error{ErrorType::kQueryNotSupported, "xmltable is not supported"}; @@ -440,8 +436,6 @@ std::pair ExtractAtom(Visitor* v, TableRefCtx* ctx) { return {std::move(res), it}; } -// Walks the join tail of `ctx` starting at `it`, descending into each rhs -// table_ref so that nested greedy joins become left-associative. Operator ContinueChain(Visitor* v, Operator lhs, TableRefCtx* ctx, ChildIt it) { const auto end = ctx->children.cend(); while (it != end) { @@ -817,7 +811,6 @@ std::any Visitor::visitA_expr_qual_op(codegen::PostgreSQLParser::A_expr_qual_opC if (exprs.size() == 1) { return visit(exprs.front()); } - // Postgres allows != as an alias for <>, which the lexer produces as Operator (qual_op). if (exprs.size() == 2 && ctx->qual_op(0)->getText() == "!=") { auto lhs = std::any_cast(visit(exprs[0])); auto rhs = std::any_cast(visit(exprs[1])); diff --git a/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp b/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp index 7488f6b..4fb62c8 100644 --- a/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp +++ b/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp @@ -28,10 +28,6 @@ std::shared_ptr Share(Expression e) { return std::make_shared(std::move(e)); } -// Expand a single InExpression into a left-associative chain. IN folds with OR -// over `lhs = value_i`; NOT IN folds with AND over `lhs != value_i`. The -// associativity and operand order match converter.py's OR/AND fold so the -// reachability target plan compares equal. Expression ExpandIn(const InExpression& in); Expression Expand(const Expression& e) { diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index ac5de43..0e85871 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -17,10 +17,6 @@ bool JoinAssociativity::IsApplicable(utils::NotNull expr) { return false; } -// (A ⋈_p1 B) ⋈_p2 C → A ⋈_pa (B ⋈_pbc C) -// where pbc collects every conjunct of (p1 ∧ p2) whose attributes lie inside -// B ∪ C, and pa keeps the rest. Avoids the degenerate ⋈_TRUE inner that drops -// otherwise-pushable predicates onto the outer join. LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, Memo& memo) { const auto& outer = std::get(expr->root_operator); for (auto inner_expr : outer.lhs->GetLogicalExprs()) { diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index 7554cec..84b7dbd 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -67,8 +67,6 @@ std::unordered_set ExprTables(const Expression& e) { namespace { -// Equivalent logical exprs in a memo group all expose the same output tables, -// so one expression suffices. Recurses across child groups via their fronts. void CollectGroupTables(utils::NotNull g, std::unordered_set& out, std::unordered_set& seen) { if (!seen.insert(g.get()).second) return; diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index ae31689..d477e22 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -88,11 +88,6 @@ Args ParseArgs(int argc, char** argv) { return args; } -// Build a SchemaCatalog by reading the header of every .csv in the -// directory. Mirrors the conventions used by the query generator and -// CsvDirSequentialScanner: header is "col:type,col:type,...", and files whose -// stem ends in _ are benchmark-only siblings of a base table and share -// its schema, so they are skipped. SchemaCatalog LoadSchema(const std::string& dir) { std::unordered_map tables; static const std::regex kBench{R"(_\d+$)"}; @@ -176,11 +171,6 @@ std::string TypeName(Type t) { return "?"; } -// Canonical text format the fuzzer compares against MS SQL Server output. -// First line: tab-separated "table.col:type" header (or just ":type" when the -// attribute has no name, e.g. an expression in the projection). -// Following lines: one row each, tab-separated values, "NULL" for nulls. -// Rows are sorted lexicographically unless the query had ORDER BY. void PrintRelation(const Relation& rel, bool preserve_order) { std::ostringstream header; for (size_t i = 0; i < rel.attributes.size(); ++i) { @@ -208,10 +198,6 @@ void PrintRelation(const Relation& rel, bool preserve_order) { for (const auto& r : rows) std::cout << r << '\n'; } -// Coroutine declared as a free function (not a captureless lambda) so the -// awaitable holds its parameters by reference into main's stack, sidestepping -// the lifetime trap of an IIFE'd `[&]` lambda whose closure dies before the -// coroutine frame. boost::asio::awaitable> RunQuery(const std::string& data_dir, const PhysicalPlanNode& plan) { CsvDirSequentialScanner seq_scan{data_dir}; From 5d0e60172ec72e12ebe918d8ff98fe4d519bf0bc Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 1 Jun 2026 14:34:51 +0300 Subject: [PATCH 072/120] Add converted notebook --- report/practice.tex | 476 ++++++++++ research/research.ipynb | 1887 +-------------------------------------- research/research.pdf | Bin 0 -> 726468 bytes 3 files changed, 481 insertions(+), 1882 deletions(-) create mode 100644 report/practice.tex create mode 100644 research/research.pdf diff --git a/report/practice.tex b/report/practice.tex new file mode 100644 index 0000000..7dbc091 --- /dev/null +++ b/report/practice.tex @@ -0,0 +1,476 @@ +% !TeX TXS-program:bibliography = txs:///biber +% chktex-file 1 +\documentclass[fontsize=14pt, russian]{scrartcl} +\input{header.tex} +\addbibresource{biblio.bib} + +\begin{document} +\sloppy + +\def\figurename{Рисунок} + +\newcommand{\sqlkw}[1]{\texttt{#1}} +\newcommand{\SELECT}{\sqlkw{SELECT}} +\newcommand{\FROM}{\sqlkw{FROM}} +\newcommand{\WHERE}{\sqlkw{WHERE}} +\newcommand{\JOIN}{\sqlkw{JOIN}} +\newcommand{\GROUPBY}{\sqlkw{GROUP BY}} +\newcommand{\ORDERBY}{\sqlkw{ORDER BY}} + +\newcommand{\SeqScan}{\sqlkw{SeqScan}} +\newcommand{\HashJoin}{\sqlkw{HashJoin}} +\newcommand{\NestedLoopJoin}{\sqlkw{NestedLoopJoin}} +\newcommand{\Sort}{\sqlkw{Sort}} +\newcommand{\FilterOp}{\sqlkw{Filter}} +\newcommand{\ProjectionOp}{\sqlkw{Projection}} + +\newcommand{\screenplaceholder}[3]{% + \begin{figure}[H] + \centering + \fbox{% + \begin{minipage}[c][2.5cm][c]{0.91\textwidth} + \centering + \textbf{МЕСТО ДЛЯ СКРИНШОТА}\\[0.4cm] + #3 + \end{minipage}% + } + \caption{#1} + \label{#2} + \end{figure} +} + +\setcounter{page}{2} + +\newpage +\renewcommand\contentsname{\hfill{\normalfont{СОДЕРЖАНИЕ}}\hfill} +\tableofcontents +\newpage + +\anonsection{ВВЕДЕНИЕ} + +Одним из определяющих факторов конкурентоспособности между различными +реализациями СУБД является качество оптимизатора запросов. Оптимизатор +представляет собой компонент, ответственный за преобразование декларативного +SQL-запроса в эффективный физический план исполнения. Именно от качества работы +оптимизатора в значительной степени зависит производительность всей системы: +выбор неоптимального плана исполнения может привести к увеличению времени +выполнения запроса в десятки раз относительно оптимального случая. + +Также оптимизатор запросов считается наиболее сложной составной частью любой +СУБД. Задача нахождения оптимального плана является NP-полной в общем случае, +что обуславливает необходимость применения эвристических методов и алгоритмов +ограниченного перебора. Одним из первых практических подходов к стоимостной +оптимизации стал алгоритм System~R~\cite{Selinger1979}. В дальнейшем были +разработаны расширяемые архитектуры Volcano~\cite{GraefeMcKenna1993} и +Cascades~\cite{Graefe1995}. + +Преимущества архитектуры Cascades заключаются в расширяемости, модульности и +возможности управлять поиском с помощью набора правил. + +Целью практики является разработка и исследование программного прототипа +SQL-компилятора с оптимизатором запросов на основе архитектуры Cascades. + +Для достижения поставленной цели необходимо решить следующие задачи: +\begin{itemize} + \item изучить существующие архитектуры оптимизаторов запросов; + \item реализовать разбор подмножества SQL и внутреннее представление + операторов реляционной алгебры; + \item реализовать структуру данных Memo и алгоритм поиска оптимального плана + на основе архитектуры Cascades; + \item реализовать набор правил трансформации и реализации для основных + операторов реляционной алгебры; + \item реализовать метод ветвей и границ для эффективного отсечения + неоптимальных планов; + \item реализовать исполнение физических планов над таблицами в формате CSV; + \item добавить интерпретацию и JIT-компиляцию выражений; + \item подготовить тесты и вспомогательные средства для исследования планов. +\end{itemize} + +В рамках практики разработана модельная СУБД, включающая основные этапы +обработки SQL-запроса. Программа разбирает текст запроса, строит дерево +операторов реляционной алгебры, выполняет стоимостную оптимизацию, формирует +физический план и исполняет его над таблицами в формате CSV. Дополнительно +реализована JIT-компиляция скалярных выражений с использованием LLVM. + +\section{ПРОЕКТИРОВАНИЕ} + +\subsection{Назначение и область применения} + +Разработанная программа является исследовательским прототипом обработчика +SQL-запросов. Она не заменяет промышленную СУБД, поскольку не содержит +транзакционного менеджера, журналирования, многоверсионности и сетевого +протокола. Программа предназначена для изучения этапов компиляции запросов, +экспериментальной проверки правил оптимизации и измерения стоимости физических +операторов. + +Входными данными служат SQL-запрос и директория с CSV-файлами. Каждый файл +соответствует одной таблице. Первая строка файла задает схему отношения, а +остальные строки содержат кортежи. Результат запроса выводится в стандартный +поток вывода в текстовом виде. + +Поддерживаются запросы \SELECT{} с предложениями \FROM{} и \WHERE{}, +проекции столбцов и выражений, соединения и декартовы произведения таблиц. +Скалярные выражения включают сравнения, \sqlkw{BETWEEN}, \sqlkw{IN}, строковые +и целочисленные значения, а также \sqlkw{NULL}. Реализованы агрегатные функции +\sqlkw{SUM}, \sqlkw{COUNT}, группировка \GROUPBY{} и сортировка \ORDERBY{}. + +Некоторые возможности полного SQL намеренно не реализованы. К ним относятся +\sqlkw{DISTINCT}, \sqlkw{HAVING}, оконные функции, подзапросы и операции над +множествами. При встрече неподдерживаемой конструкции парсер возвращает +диагностическое сообщение. + +\subsection{Общая архитектура программы} + +Сначала программа читает SQL-запрос, выполняет лексический и синтаксический +анализ, затем строит логическое представление. Оптимизатор заполняет Memo, +перечисляет эквивалентные выражения и выбирает физический план с минимальной +стоимостью. Исполнитель обрабатывает план над CSV-файлами и выводит схему и +кортежи результирующего отношения. + +\section{РЕАЛИЗАЦИЯ} + +\subsection{Выбор инструментов разработки} + +Программа написана на языке C++ с использованием стандарта C++23. Этот язык +позволяет контролировать представление данных в памяти, использовать +стандартные алгебраические типы и корутины, а также интегрироваться с LLVM. +Для сборки применяется CMake. Воспроизводимое окружение разработки описано +в файле \texttt{flake.nix}. + +Для синтаксического анализа выбран генератор парсеров ANTLR4. Асинхронное +взаимодействие физических операторов построено на Boost.Asio. LLVM +используется для генерации машинного кода скалярных выражений. Модульные тесты +реализованы с помощью GoogleTest, а измерения производительности физических +операторов --- с помощью Google Benchmark. + +\subsection{Модуль синтаксического анализа} + +Для синтаксического анализа используется грамматика PostgreSQL и генератор +парсеров ANTLR4. Сгенерированные классы лексического и синтаксического +анализаторов находятся в каталоге +\texttt{src/stewkk/sql/logic/parser/codegen}. Функция \texttt{GetAST} +инициализирует анализаторы, строит дерево разбора и запускает обход дерева. + +Обход реализован классом \texttt{Visitor}. Для интересующих конструкций SQL +переопределены методы посещения узлов грамматики. Например, предложение +\WHERE{} преобразуется в логический оператор фильтрации, список выражений +после \SELECT{} преобразуется в проекцию, а список таблиц после \FROM{} --- +в дерево соединений. + +Результатом работы парсера является структура \texttt{ParsedQuery}. Она +содержит логический оператор верхнего уровня и необязательное требование к +порядку строк для \ORDERBY{}. Логические операторы и скалярные выражения +представлены алгебраическими типами на основе \texttt{std::variant}. В них +входят операторы таблицы, фильтрации, проекции, агрегации, соединения, ссылки +на атрибуты, константы и арифметические выражения. + +\subsection{Модуль оптимизации запросов} + +Оптимизатор получает логическое дерево, набор правил, оценки кардинальности, +каталог схем и требуемые свойства результата. Центральной структурой данных +является Memo. Она хранит группы логически эквивалентных выражений. + +Каждая группа содержит логические и физические выражения. Дочерние узлы +ссылаются на группы, поэтому одно выражение компактно представляет множество +возможных поддеревьев. Повторяющиеся выражения не добавляются в Memo повторно. + +Правила оптимизации разделены на две категории. Трансформационные правила +создают новые логические выражения, эквивалентные исходным. Реализационные +правила добавляют физические операторы, которые могут быть непосредственно +исполнены. + +В текущей версии реализованы следующие трансформации: +\begin{itemize} + \item коммутативность соединения; + \item ассоциативность соединения; + \item разбиение фильтра с конъюнкцией на последовательность фильтров; + \item объединение последовательных фильтров; + \item проталкивание фильтра через проекцию; + \item проталкивание фильтра во входы соединения; + \item преобразование списка \sqlkw{IN} в цепочку сравнений. +\end{itemize} + +Реализационные правила создают последовательное сканирование, фильтрацию, +проекцию, агрегацию, соединение вложенными циклами, декартово произведение +вложенными циклами и хеш-соединение. Хеш-соединение применяется только для +простого внутреннего соединения по равенству двух атрибутов. + +Поиск выполняется сверху вниз с использованием стека отложенных задач. Для +каждой пары из группы и требуемого набора физических свойств сохраняется +лучший найденный вариант. Такой вариант называется победителем группы. +Стоимость полного плана равна сумме локальных стоимостей его операторов. + +Для уменьшения пространства поиска используется метод ветвей и границ. +Оптимизатор вычисляет допустимую нижнюю оценку стоимости группы. Если даже +нижняя оценка не меньше стоимости уже известного решения, дальнейшее +исследование ветви прекращается. + +Физические свойства описывают дополнительные требования к результату. В +текущей версии реализовано свойство сортировки. Если запрос содержит +\ORDERBY{}, оптимизатор должен построить план, выдающий строки в требуемом +порядке. При необходимости в план добавляется обеспечивающий оператор +\Sort{}. + +\subsection{Физический план и его сериализация} + +После завершения поиска оптимизатор преобразует выбранные физические выражения +в дерево \texttt{PhysicalPlanNode}. Физический план отделен от внутренней +структуры Memo и может быть исполнен независимо от процесса оптимизации. + +К основным физическим операторам относятся последовательное чтение CSV-файла +\SeqScan{}, фильтрация \FilterOp{}, проекция \ProjectionOp{}, соединения +\NestedLoopJoin{} и \HashJoin{}, сортировка \Sort{} и хеш-агрегация +\sqlkw{HashAggregate}. + +Планы сериализуются в текстовый формат S-expression. Его удобно читать, +сравнивать в тестах и передавать вспомогательным утилитам. Дополнительно +реализован экспорт плана в формат Graphviz DOT. После запуска программы файл +сохраняется в каталоге \texttt{.plans}. + +\subsection{Модуль хранения и исполнения данных} + +Каждой таблице соответствует CSV-файл с совпадающим именем. Например, таблица +\texttt{users} хранится в файле \texttt{users.csv}. Первая строка содержит +описание столбцов и их типов: + +\begin{Verbatim}[fontsize=\small] +id:int,name:string,age:int +1,Alice,25 +2,Bob,31 +\end{Verbatim} + +Исполнитель физических планов реализован классом \texttt{Executor}. Он +параметризуется способом вычисления выражений и функциями доступа к таблицам. +Благодаря этому один исполнитель используется с интерпретатором, JIT-компилятором +и различными реализациями сканирования. + +Операторы взаимодействуют через каналы Boost.Asio. Отдельные каналы передают +описание атрибутов и порции размером до 2048 кортежей. Это уменьшает число +операций синхронизации по сравнению с передачей отдельных строк. + +Проекция и фильтрация являются потоковыми операторами. Они получают порцию +входных кортежей, обрабатывают ее и передают результат следующему оператору. +Для блокирующих операций может потребоваться накопление данных. Например, +сортировка сохраняет все входные кортежи в памяти. + +Соединение вложенными циклами материализует один вход во временный бинарный +файл, после чего многократно читает его при обработке второго входа. +Хеш-соединение строит хеш-таблицу по ключу левого входа и выполняет поиск +совпадений для кортежей правого входа. + +Для строковых значений используется интернирование. Строка помещается в общий +пул, а внутри кортежа хранится целочисленный идентификатор. Это сохраняет +компактное представление значения и упрощает передачу кортежей между +операторами. + +\subsection{JIT-компиляция выражений} + +Для часто вычисляемых выражений реализована JIT-компиляция с использованием +LLVM ORC JIT. Класс \texttt{JITCompiler} преобразует дерево выражения в LLVM IR, +запускает оптимизирующие проходы и возвращает указатель на машинную функцию. + +Скомпилированная функция получает указатель на результирующее значение, +указатель на входной кортеж и описание атрибутов. Структура значения содержит +флаг \texttt{is\_null} и объединение для непосредственного значения. Такое +представление учитывает трехзначную логику SQL. + +В проекте доступны интерпретируемая, JIT-компилируемая и кэшируемая +JIT-компилируемая стратегии вычисления выражений. Последняя сохраняет +полученные машинные функции и переиспользует их. + +Текущая реализация JIT предназначена для целочисленных и логических выражений. +Строковые операции, \sqlkw{IN}, агрегатные выражения и возведение в степень +через JIT не поддерживаются. Для них следует использовать интерпретируемый +режим. + +\subsection{Руководство пользователя} + +\subsubsection{Требования к окружению} + +Для сборки программы требуются CMake, компилятор C++ с поддержкой C++23, LLVM, +ANTLR4 и библиотеки Boost. В репозитории присутствует файл \texttt{flake.nix}, +поэтому в системе с пакетным менеджером Nix рекомендуется открыть окружение: + +\begin{Verbatim}[fontsize=\small] +nix develop +\end{Verbatim} + +Все команды далее выполняются из корневого каталога проекта. + +\subsubsection{Сборка программы} + +Для первичной конфигурации и сборки следует выполнить: + +\begin{Verbatim}[fontsize=\small] +cmake -S . -B build -DCMAKE_BUILD_TYPE=Release +cmake --build build -- -j 6 +\end{Verbatim} + +После успешной сборки исполняемый файл находится по пути +\texttt{build/bin/sql}. Для повторной сборки также можно использовать цель +\texttt{make build}. + +\subsubsection{Подготовка входных данных} + +Пользователь должен создать отдельную директорию и поместить в нее CSV-файлы. +Имя каждого файла без расширения считается именем таблицы. В заголовке каждого +файла для столбца указывается имя и тип через двоеточие. Поддерживаются типы +\texttt{int} и \texttt{string}. Пустое SQL-значение записывается как +\texttt{NULL}. + +Для первого запуска можно использовать готовые тестовые данные: + +\begin{Verbatim}[fontsize=\small] +test/static/executor/test_data +\end{Verbatim} + +\subsubsection{Запуск SQL-запроса} + +SQL-запрос передается программе через стандартный поток ввода. Простейший +пример запуска: + +\begin{Verbatim}[fontsize=\small] +echo 'SELECT users.id FROM users;' | \ + ./build/bin/sql --data-dir test/static/executor/test_data +\end{Verbatim} + +Для запуска запроса из файла следует использовать перенаправление ввода: + +\begin{Verbatim}[fontsize=\small] +./build/bin/sql --data-dir path/to/csv_dir < query.sql +\end{Verbatim} + +Программа выводит заголовок отношения, содержащий имена и типы столбцов, а +затем полученные строки. Если запрос не содержит \ORDERBY{}, строки вывода +сортируются лексикографически для воспроизводимости результата. + +\screenplaceholder{Выполнение SQL-запроса над тестовыми данными}{fig:practice-run}{% + Вставить скриншот запуска запроса через стандартный поток ввода\\ + и напечатанного результирующего отношения.} + +\subsubsection{Вывод логического и физического планов} + +Для диагностики предусмотрены параметры \texttt{--print-ast} и +\texttt{--print-plan}. Первый параметр выводит логическое дерево после +синтаксического анализа, второй --- выбранный физический план: + +\begin{Verbatim}[fontsize=\small] +echo 'SELECT users.id FROM users WHERE users.age > 18 \ +ORDER BY users.id;' | \ + ./build/bin/sql --data-dir test/static/executor/test_data \ + --print-ast --print-plan +\end{Verbatim} + +\screenplaceholder{Вывод логического дерева и физического плана}{fig:practice-plan}{% + Вставить скриншот запуска с параметрами\\ + \texttt{--print-ast --print-plan}.} + +\subsubsection{Запуск с JIT-компиляцией} + +Для выбора JIT-компиляции выражений используется параметр \texttt{--jit}: + +\begin{Verbatim}[fontsize=\small] +echo 'SELECT users.id FROM users WHERE users.age > 18;' | \ + ./build/bin/sql --data-dir test/static/executor/test_data --jit +\end{Verbatim} + +Параметр рекомендуется применять к запросам с целочисленными арифметическими и +логическими выражениями. Запросы со строковыми выражениями и \sqlkw{IN} следует +запускать без JIT. + +\screenplaceholder{Выполнение запроса с JIT-компиляцией выражений}{fig:practice-jit}{% + Вставить скриншот запуска программы с параметром \texttt{--jit}.} + +\subsubsection{Доступные параметры командной строки} + +\begin{longtable}{|p{4.2cm}|p{9.3cm}|} + \caption{Параметры командной строки программы.}\label{tbl:practice-cli}\\ + \hline + Параметр & Назначение \\ + \hline + \endfirsthead + \multicolumn{2}{l}{\small Продолжение таблицы~\ref{tbl:practice-cli}}\\ + \hline + Параметр & Назначение \\ + \hline + \endhead + \texttt{--data-dir DIR} & + Директория с CSV-файлами таблиц. Обязательна при обычном исполнении запроса. \\ + \hline + \texttt{--print-ast} & + Вывод логического дерева операторов после синтаксического анализа. \\ + \hline + \texttt{--print-plan} & + Вывод выбранного физического плана в формате S-expression. \\ + \hline + \texttt{--jit} & + Использование кэшируемой JIT-компиляции скалярных выражений. \\ + \hline + \texttt{--check-reachable FILE} & + Проверка достижимости физического плана, сериализованного в файле. \\ + \hline +\end{longtable} + +\section{ТЕСТИРОВАНИЕ} + +Модульные тесты написаны с использованием GoogleTest. Они проверяют парсер, +вычисление выражений, исполнение операторов, сериализацию планов, свойства +сортировки, Memo и оптимизатор. Отдельные тесты проверяют интерпретируемое и +JIT-исполнение. + +Для проверки корректности C++-части проекта следует выполнить: + +\begin{Verbatim}[fontsize=\small] +ctest --test-dir build --output-on-failure +\end{Verbatim} + +В результате запуска успешно выполняются 126 тестов. Для проверки конвертера +запросов Star Schema Benchmark используется команда: + +\begin{Verbatim}[fontsize=\small] +pytest -q benchmarks/datasets/ssb +\end{Verbatim} + +Набор содержит 17 тестов, которые также выполняются успешно. В каталоге +\texttt{benchmarks} находятся тесты производительности на основе Google +Benchmark. Они предназначены для измерения характеристик отдельных физических +операторов. + +Вспомогательные Python-скрипты из каталога \texttt{research} генерируют +запросы, сравнивают результаты с Microsoft SQL Server и проверяют достижимость +внешних физических планов. Для последней задачи программа поддерживает режим +\texttt{--check-reachable}, запускающий полный перебор пространства планов без +отсечения. + +\anonsection{ЗАКЛЮЧЕНИЕ} + +В ходе практики разработан программный прототип SQL-компилятора и модельной +системы исполнения запросов. Реализован сквозной процесс от разбора SQL-текста +до получения результирующего отношения. Программа работает с CSV-файлами, +поддерживает основные операторы реляционной алгебры и формирует физический план +на основе стоимостной модели. + +Ключевой частью проекта является расширяемый оптимизатор, использующий +структуру Memo и правила преобразования. Реализован поиск планов с учетом +физических свойств, нижних оценок стоимости и метода ветвей и границ. +Поддержка обеспечивающего оператора сортировки позволяет корректно обрабатывать +требования \ORDERBY{}. + +Исполнитель построен на корутинах C++ и каналах Boost.Asio. Потоковая передача +порций кортежей сочетается с материализацией для блокирующих операторов. +Для ускорения вычисления выражений добавлена JIT-компиляция с использованием +LLVM и кэширование скомпилированных функций. + +Корректность основных компонентов проверяется модульными тестами. Дополнительно +подготовлены бенчмарки физических операторов и инструменты дифференциального +сравнения с Microsoft SQL Server. Эти средства позволяют использовать проект +как основу для дальнейшего исследования правил оптимизации и уточнения +стоимостной модели. + +\renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} +{\catcode`"\active\def"{\relax} + \addcontentsline{toc}{section}{\protect\numberline{}\refname}% + \printbibliography +} + +\end{document} diff --git a/research/research.ipynb b/research/research.ipynb index b205b4c..454f982 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -125,1077 +125,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "2d033649", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'context': {'date': '2026-05-31T16:14:53+03:00',\n", - " 'host_name': 'nixos',\n", - " 'executable': './build-release/bin/benchmarks',\n", - " 'num_cpus': 8,\n", - " 'mhz_per_cpu': 4200,\n", - " 'cpu_scaling_enabled': True,\n", - " 'caches': [{'type': 'Data', 'level': 1, 'size': 49152, 'num_sharing': 2},\n", - " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", - " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", - " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", - " 'load_avg': [4.44287, 2.58252, 1.60791],\n", - " 'library_version': 'v1.9.0',\n", - " 'library_build_type': 'release',\n", - " 'json_schema_version': 1},\n", - " 'benchmarks': [{'name': 'OperatorCost/SeqScan/1024/real_time',\n", - " 'family_index': 0,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 8741,\n", - " 'real_time': 79996.77325230725,\n", - " 'cpu_time': 78049.49124814094,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 102400.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 102400.0,\n", - " 'rows': 1024.0},\n", - " {'name': 'OperatorCost/SeqScan/2048/real_time',\n", - " 'family_index': 1,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 5232,\n", - " 'real_time': 144761.2392951388,\n", - " 'cpu_time': 142223.85569571867,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 204800.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 204800.0,\n", - " 'rows': 2048.0},\n", - " {'name': 'OperatorCost/SeqScan/4096/real_time',\n", - " 'family_index': 2,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/4096/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 2056,\n", - " 'real_time': 338605.32199002034,\n", - " 'cpu_time': 327024.20865758776,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 409600.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 409600.0,\n", - " 'rows': 4096.0},\n", - " {'name': 'OperatorCost/SeqScan/8192/real_time',\n", - " 'family_index': 3,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/8192/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 726,\n", - " 'real_time': 813515.0275632519,\n", - " 'cpu_time': 787365.6776859501,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 819200.0,\n", - " 'output_rows': 8192.0,\n", - " 'plan_cost': 819200.0,\n", - " 'rows': 8192.0},\n", - " {'name': 'OperatorCost/SeqScan/16384/real_time',\n", - " 'family_index': 4,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/16384/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 575,\n", - " 'real_time': 2055769.5026155156,\n", - " 'cpu_time': 1963688.9999999995,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1638400.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 1638400.0,\n", - " 'rows': 16384.0},\n", - " {'name': 'OperatorCost/SeqScan/32768/real_time',\n", - " 'family_index': 5,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/32768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 159,\n", - " 'real_time': 3635850.289299112,\n", - " 'cpu_time': 3580956.962264152,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3276800.0,\n", - " 'output_rows': 32768.0,\n", - " 'plan_cost': 3276800.0,\n", - " 'rows': 32768.0},\n", - " {'name': 'OperatorCost/SeqScan/65536/real_time',\n", - " 'family_index': 6,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 101,\n", - " 'real_time': 7848735.722813451,\n", - " 'cpu_time': 7709841.534653468,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6553600.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 6553600.0,\n", - " 'rows': 65536.0},\n", - " {'name': 'OperatorCost/SeqScan/131072/real_time',\n", - " 'family_index': 7,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/131072/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 48,\n", - " 'real_time': 14549342.416406339,\n", - " 'cpu_time': 14285210.916666662,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 13107200.0,\n", - " 'output_rows': 131072.0,\n", - " 'plan_cost': 13107200.0,\n", - " 'rows': 131072.0},\n", - " {'name': 'OperatorCost/SeqScan/262144/real_time',\n", - " 'family_index': 8,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/SeqScan/262144/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 24,\n", - " 'real_time': 46805722.70869258,\n", - " 'cpu_time': 44962657.16666666,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26214400.0,\n", - " 'output_rows': 262144.0,\n", - " 'plan_cost': 26214400.0,\n", - " 'rows': 262144.0},\n", - " {'name': 'OperatorCost/Filter/1024/real_time',\n", - " 'family_index': 9,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 6051,\n", - " 'real_time': 110847.93670647572,\n", - " 'cpu_time': 109579.46868286227,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 102400.0,\n", - " 'output_rows': 512.0,\n", - " 'plan_cost': 204800.0,\n", - " 'rows': 1024.0},\n", - " {'name': 'OperatorCost/Filter/2048/real_time',\n", - " 'family_index': 10,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 4178,\n", - " 'real_time': 175850.847057794,\n", - " 'cpu_time': 174124.4133556728,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 204800.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 409600.0,\n", - " 'rows': 2048.0},\n", - " {'name': 'OperatorCost/Filter/4096/real_time',\n", - " 'family_index': 11,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/4096/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 2166,\n", - " 'real_time': 315093.1071093506,\n", - " 'cpu_time': 312199.11911357404,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 409600.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 819200.0,\n", - " 'rows': 4096.0},\n", - " {'name': 'OperatorCost/Filter/8192/real_time',\n", - " 'family_index': 12,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/8192/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1078,\n", - " 'real_time': 673538.2050130877,\n", - " 'cpu_time': 667478.5055658632,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 819200.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 1638400.0,\n", - " 'rows': 8192.0},\n", - " {'name': 'OperatorCost/Filter/16384/real_time',\n", - " 'family_index': 13,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/16384/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 456,\n", - " 'real_time': 1303801.1556841012,\n", - " 'cpu_time': 1294735.6688596508,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1638400.0,\n", - " 'output_rows': 8192.0,\n", - " 'plan_cost': 3276800.0,\n", - " 'rows': 16384.0},\n", - " {'name': 'OperatorCost/Filter/32768/real_time',\n", - " 'family_index': 14,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/32768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 256,\n", - " 'real_time': 2952031.402287503,\n", - " 'cpu_time': 2928449.1679687495,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3276800.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 6553600.0,\n", - " 'rows': 32768.0},\n", - " {'name': 'OperatorCost/Filter/65536/real_time',\n", - " 'family_index': 15,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 102,\n", - " 'real_time': 7472368.745177792,\n", - " 'cpu_time': 7365271.343137254,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6553600.0,\n", - " 'output_rows': 32768.0,\n", - " 'plan_cost': 13107200.0,\n", - " 'rows': 65536.0},\n", - " {'name': 'OperatorCost/Filter/131072/real_time',\n", - " 'family_index': 16,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/131072/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 58,\n", - " 'real_time': 14015431.344762027,\n", - " 'cpu_time': 13847255.206896517,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 13107200.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 26214400.0,\n", - " 'rows': 131072.0},\n", - " {'name': 'OperatorCost/Filter/262144/real_time',\n", - " 'family_index': 17,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Filter/262144/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 24,\n", - " 'real_time': 27073700.12528069,\n", - " 'cpu_time': 26782809.49999993,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26214400.0,\n", - " 'output_rows': 131072.0,\n", - " 'plan_cost': 52428800.0,\n", - " 'rows': 262144.0},\n", - " {'name': 'OperatorCost/Projection/1024/real_time',\n", - " 'family_index': 18,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 5179,\n", - " 'real_time': 131939.9635067602,\n", - " 'cpu_time': 130698.92662676195,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 22528.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 124928.0,\n", - " 'rows': 1024.0},\n", - " {'name': 'OperatorCost/Projection/2048/real_time',\n", - " 'family_index': 19,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 2989,\n", - " 'real_time': 226189.74138644213,\n", - " 'cpu_time': 225141.11843425847,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 45056.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 249856.0,\n", - " 'rows': 2048.0},\n", - " {'name': 'OperatorCost/Projection/4096/real_time',\n", - " 'family_index': 20,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/4096/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1536,\n", - " 'real_time': 514392.72525991936,\n", - " 'cpu_time': 509783.00585937523,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 90112.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 499712.0,\n", - " 'rows': 4096.0},\n", - " {'name': 'OperatorCost/Projection/8192/real_time',\n", - " 'family_index': 21,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/8192/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 718,\n", - " 'real_time': 945676.4776974691,\n", - " 'cpu_time': 940029.7172701948,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 180224.0,\n", - " 'output_rows': 8192.0,\n", - " 'plan_cost': 999424.0,\n", - " 'rows': 8192.0},\n", - " {'name': 'OperatorCost/Projection/16384/real_time',\n", - " 'family_index': 22,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/16384/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 366,\n", - " 'real_time': 1904450.2732271452,\n", - " 'cpu_time': 1892580.4426229435,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 360448.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 1998848.0,\n", - " 'rows': 16384.0},\n", - " {'name': 'OperatorCost/Projection/32768/real_time',\n", - " 'family_index': 23,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/32768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 197,\n", - " 'real_time': 3678533.588763596,\n", - " 'cpu_time': 3656979.5431472077,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 720896.0,\n", - " 'output_rows': 32768.0,\n", - " 'plan_cost': 3997696.0,\n", - " 'rows': 32768.0},\n", - " {'name': 'OperatorCost/Projection/65536/real_time',\n", - " 'family_index': 24,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 93,\n", - " 'real_time': 7472132.161285939,\n", - " 'cpu_time': 7428647.440860227,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1441792.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 7995392.0,\n", - " 'rows': 65536.0},\n", - " {'name': 'OperatorCost/Projection/131072/real_time',\n", - " 'family_index': 25,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/131072/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 46,\n", - " 'real_time': 15381800.043700343,\n", - " 'cpu_time': 15295836.478260862,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 2883584.0,\n", - " 'output_rows': 131072.0,\n", - " 'plan_cost': 15990784.0,\n", - " 'rows': 131072.0},\n", - " {'name': 'OperatorCost/Projection/262144/real_time',\n", - " 'family_index': 26,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Projection/262144/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 19,\n", - " 'real_time': 41055490.73689249,\n", - " 'cpu_time': 40717845.26315775,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 5767168.0,\n", - " 'output_rows': 262144.0,\n", - " 'plan_cost': 31981568.0,\n", - " 'rows': 262144.0},\n", - " {'name': 'OperatorCost/Sort/1024/real_time',\n", - " 'family_index': 27,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 4340,\n", - " 'real_time': 162084.6043772993,\n", - " 'cpu_time': 160916.3817972354,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 123904.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 226304.0,\n", - " 'rows': 1024.0},\n", - " {'name': 'OperatorCost/Sort/2048/real_time',\n", - " 'family_index': 28,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 2062,\n", - " 'real_time': 346371.44083838287,\n", - " 'cpu_time': 344873.1896217259,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 270336.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 475136.0,\n", - " 'rows': 2048.0},\n", - " {'name': 'OperatorCost/Sort/4096/real_time',\n", - " 'family_index': 29,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/4096/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 883,\n", - " 'real_time': 800255.2842602158,\n", - " 'cpu_time': 792542.4144960329,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 585728.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 995328.0,\n", - " 'rows': 4096.0},\n", - " {'name': 'OperatorCost/Sort/8192/real_time',\n", - " 'family_index': 30,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/8192/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 379,\n", - " 'real_time': 1840523.8838987988,\n", - " 'cpu_time': 1830438.0501319245,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1261568.0,\n", - " 'output_rows': 8192.0,\n", - " 'plan_cost': 2080768.0,\n", - " 'rows': 8192.0},\n", - " {'name': 'OperatorCost/Sort/16384/real_time',\n", - " 'family_index': 31,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/16384/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 164,\n", - " 'real_time': 4673407.487865827,\n", - " 'cpu_time': 4626059.615853649,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 2703360.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 4341760.0,\n", - " 'rows': 16384.0},\n", - " {'name': 'OperatorCost/Sort/32768/real_time',\n", - " 'family_index': 32,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/32768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 60,\n", - " 'real_time': 10560525.66661189,\n", - " 'cpu_time': 10441041.616666762,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 5767168.0,\n", - " 'output_rows': 32768.0,\n", - " 'plan_cost': 9043968.0,\n", - " 'rows': 32768.0},\n", - " {'name': 'OperatorCost/Sort/65536/real_time',\n", - " 'family_index': 33,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 26,\n", - " 'real_time': 27512323.307746556,\n", - " 'cpu_time': 27313637.384615403,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 12255232.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 18808832.0,\n", - " 'rows': 65536.0},\n", - " {'name': 'OperatorCost/Sort/131072/real_time',\n", - " 'family_index': 34,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/131072/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 9,\n", - " 'real_time': 76878972.44533007,\n", - " 'cpu_time': 76256340.66666642,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 25952256.0,\n", - " 'output_rows': 131072.0,\n", - " 'plan_cost': 39059456.0,\n", - " 'rows': 131072.0},\n", - " {'name': 'OperatorCost/Sort/262144/real_time',\n", - " 'family_index': 35,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Sort/262144/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 3,\n", - " 'real_time': 210729772.33173636,\n", - " 'cpu_time': 208907081.99999845,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 54788096.0,\n", - " 'output_rows': 262144.0,\n", - " 'plan_cost': 81002496.0,\n", - " 'rows': 262144.0},\n", - " {'name': 'OperatorCost/Aggregation/1024/real_time',\n", - " 'family_index': 36,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 2007,\n", - " 'real_time': 367198.4265013294,\n", - " 'cpu_time': 365161.24813153857,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 522240.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 624640.0,\n", - " 'rows': 1024.0},\n", - " {'name': 'OperatorCost/Aggregation/2048/real_time',\n", - " 'family_index': 37,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1030,\n", - " 'real_time': 714949.2194214881,\n", - " 'cpu_time': 711449.0126213565,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1044480.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 1249280.0,\n", - " 'rows': 2048.0},\n", - " {'name': 'OperatorCost/Aggregation/4096/real_time',\n", - " 'family_index': 38,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/4096/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 506,\n", - " 'real_time': 1378877.889329297,\n", - " 'cpu_time': 1372415.869565222,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 2088960.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 2498560.0,\n", - " 'rows': 4096.0},\n", - " {'name': 'OperatorCost/Aggregation/8192/real_time',\n", - " 'family_index': 39,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/8192/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 233,\n", - " 'real_time': 2970153.62662511,\n", - " 'cpu_time': 2953445.8712446555,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 4177920.0,\n", - " 'output_rows': 8192.0,\n", - " 'plan_cost': 4997120.0,\n", - " 'rows': 8192.0},\n", - " {'name': 'OperatorCost/Aggregation/16384/real_time',\n", - " 'family_index': 40,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/16384/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 94,\n", - " 'real_time': 7566778.521342054,\n", - " 'cpu_time': 7487773.585106401,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 8355840.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 9994240.0,\n", - " 'rows': 16384.0},\n", - " {'name': 'OperatorCost/Aggregation/32768/real_time',\n", - " 'family_index': 41,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/32768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 28,\n", - " 'real_time': 21294147.21431593,\n", - " 'cpu_time': 21136412.357142985,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 16711680.0,\n", - " 'output_rows': 32768.0,\n", - " 'plan_cost': 19988480.0,\n", - " 'rows': 32768.0},\n", - " {'name': 'OperatorCost/Aggregation/65536/real_time',\n", - " 'family_index': 42,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 11,\n", - " 'real_time': 58811825.0902467,\n", - " 'cpu_time': 58334160.545455076,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 33423360.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 39976960.0,\n", - " 'rows': 65536.0},\n", - " {'name': 'OperatorCost/Aggregation/131072/real_time',\n", - " 'family_index': 43,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/131072/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 5,\n", - " 'real_time': 145317420.79998368,\n", - " 'cpu_time': 144445410.40000018,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 66846720.0,\n", - " 'output_rows': 131072.0,\n", - " 'plan_cost': 79953920.0,\n", - " 'rows': 131072.0},\n", - " {'name': 'OperatorCost/Aggregation/262144/real_time',\n", - " 'family_index': 44,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/Aggregation/262144/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 2,\n", - " 'real_time': 341980079.50180906,\n", - " 'cpu_time': 339244360.5000004,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 133693440.0,\n", - " 'output_rows': 262144.0,\n", - " 'plan_cost': 159907840.0,\n", - " 'rows': 262144.0},\n", - " {'name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", - " 'family_index': 45,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 3434,\n", - " 'real_time': 203597.65637682122,\n", - " 'cpu_time': 202661.13162492623,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 1024.0,\n", - " 'model_cost': 141312.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 346112.0,\n", - " 'rhs_rows': 1024.0},\n", - " {'name': 'OperatorCost/HashJoin/2048/2048/real_time',\n", - " 'family_index': 46,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/2048/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1850,\n", - " 'real_time': 383151.98702794325,\n", - " 'cpu_time': 381209.0481081081,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 2048.0,\n", - " 'model_cost': 282624.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 692224.0,\n", - " 'rhs_rows': 2048.0},\n", - " {'name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", - " 'family_index': 47,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 903,\n", - " 'real_time': 762751.5924760839,\n", - " 'cpu_time': 757842.6954595725,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 4096.0,\n", - " 'model_cost': 565248.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 1384448.0,\n", - " 'rhs_rows': 4096.0},\n", - " {'name': 'OperatorCost/HashJoin/8192/8192/real_time',\n", - " 'family_index': 48,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/8192/8192/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 461,\n", - " 'real_time': 1662913.1583581779,\n", - " 'cpu_time': 1651697.6746203937,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 8192.0,\n", - " 'model_cost': 1130496.0,\n", - " 'output_rows': 8192.0,\n", - " 'plan_cost': 2768896.0,\n", - " 'rhs_rows': 8192.0},\n", - " {'name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", - " 'family_index': 49,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 191,\n", - " 'real_time': 4006294.7016049675,\n", - " 'cpu_time': 3972214.141361237,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 16384.0,\n", - " 'model_cost': 2260992.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 5537792.0,\n", - " 'rhs_rows': 16384.0},\n", - " {'name': 'OperatorCost/HashJoin/32768/32768/real_time',\n", - " 'family_index': 50,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/32768/32768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 82,\n", - " 'real_time': 8204329.23164179,\n", - " 'cpu_time': 8095464.999999985,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 32768.0,\n", - " 'model_cost': 4521984.0,\n", - " 'output_rows': 32768.0,\n", - " 'plan_cost': 11075584.0,\n", - " 'rhs_rows': 32768.0},\n", - " {'name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", - " 'family_index': 51,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 43,\n", - " 'real_time': 16943074.88363594,\n", - " 'cpu_time': 16813719.325581413,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 65536.0,\n", - " 'model_cost': 9043968.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 22151168.0,\n", - " 'rhs_rows': 65536.0},\n", - " {'name': 'OperatorCost/NestedLoopJoin/64/64/real_time',\n", - " 'family_index': 52,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopJoin/64/64/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1627,\n", - " 'real_time': 457940.5703765902,\n", - " 'cpu_time': 454351.0024585112,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 64.0,\n", - " 'model_cost': 286720.0,\n", - " 'output_rows': 64.0,\n", - " 'plan_cost': 299520.0,\n", - " 'rhs_rows': 64.0},\n", - " {'name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", - " 'family_index': 53,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 462,\n", - " 'real_time': 1326260.4437471123,\n", - " 'cpu_time': 1316629.7380952353,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 128.0,\n", - " 'model_cost': 1146880.0,\n", - " 'output_rows': 128.0,\n", - " 'plan_cost': 1172480.0,\n", - " 'rhs_rows': 128.0},\n", - " {'name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", - " 'family_index': 54,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 148,\n", - " 'real_time': 4755415.682518867,\n", - " 'cpu_time': 4716712.10135136,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 256.0,\n", - " 'model_cost': 4587520.0,\n", - " 'output_rows': 256.0,\n", - " 'plan_cost': 4638720.0,\n", - " 'rhs_rows': 256.0},\n", - " {'name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", - " 'family_index': 55,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 39,\n", - " 'real_time': 18824480.692273937,\n", - " 'cpu_time': 18740105.12820526,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 512.0,\n", - " 'model_cost': 18350080.0,\n", - " 'output_rows': 512.0,\n", - " 'plan_cost': 18452480.0,\n", - " 'rhs_rows': 512.0},\n", - " {'name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", - " 'family_index': 56,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 10,\n", - " 'real_time': 69821057.49921176,\n", - " 'cpu_time': 69534976.59999996,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 1024.0,\n", - " 'model_cost': 73400320.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 73605120.0,\n", - " 'rhs_rows': 1024.0},\n", - " {'name': 'OperatorCost/NestedLoopJoin/2048/2048/real_time',\n", - " 'family_index': 57,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopJoin/2048/2048/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 3,\n", - " 'real_time': 275065905.3320609,\n", - " 'cpu_time': 274101250.33333325,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 2048.0,\n", - " 'model_cost': 293601280.0,\n", - " 'output_rows': 2048.0,\n", - " 'plan_cost': 294010880.0,\n", - " 'rhs_rows': 2048.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/32/32/real_time',\n", - " 'family_index': 58,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/32/32/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 4263,\n", - " 'real_time': 161657.51911599387,\n", - " 'cpu_time': 160319.40863241884,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 32.0,\n", - " 'model_cost': 106496.0,\n", - " 'output_rows': 1024.0,\n", - " 'plan_cost': 112896.0,\n", - " 'rhs_rows': 32.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", - " 'family_index': 59,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1896,\n", - " 'real_time': 391432.3101276512,\n", - " 'cpu_time': 386105.75210970425,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 64.0,\n", - " 'model_cost': 425984.0,\n", - " 'output_rows': 4096.0,\n", - " 'plan_cost': 438784.0,\n", - " 'rhs_rows': 64.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", - " 'family_index': 60,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 331,\n", - " 'real_time': 1644325.9002721033,\n", - " 'cpu_time': 1610731.7945619286,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 128.0,\n", - " 'model_cost': 1703936.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 1729536.0,\n", - " 'rhs_rows': 128.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", - " 'family_index': 61,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 87,\n", - " 'real_time': 6994494.999894047,\n", - " 'cpu_time': 6864530.057471263,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 256.0,\n", - " 'model_cost': 6815744.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 6866944.0,\n", - " 'rhs_rows': 256.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", - " 'family_index': 62,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 25,\n", - " 'real_time': 27484957.160195336,\n", - " 'cpu_time': 27127955.640000038,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 512.0,\n", - " 'model_cost': 27262976.0,\n", - " 'output_rows': 262144.0,\n", - " 'plan_cost': 27365376.0,\n", - " 'rhs_rows': 512.0},\n", - " {'name': 'OperatorCost/NestedLoopCrossJoin/1024/1024/real_time',\n", - " 'family_index': 63,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCost/NestedLoopCrossJoin/1024/1024/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 5,\n", - " 'real_time': 130720901.00031348,\n", - " 'cpu_time': 129132758.20000081,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 1024.0,\n", - " 'model_cost': 109051904.0,\n", - " 'output_rows': 1048576.0,\n", - " 'plan_cost': 109256704.0,\n", - " 'rhs_rows': 1024.0}]}" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import json\n", "\n", @@ -2777,820 +1710,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "1c313f56", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'context': {'date': '2026-05-31T16:16:05+03:00',\n", - " 'host_name': 'nixos',\n", - " 'executable': './build-release/bin/benchmarks',\n", - " 'num_cpus': 8,\n", - " 'mhz_per_cpu': 4200,\n", - " 'cpu_scaling_enabled': True,\n", - " 'caches': [{'type': 'Data', 'level': 1, 'size': 49152, 'num_sharing': 2},\n", - " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", - " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", - " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", - " 'load_avg': [3.37842, 2.81006, 1.77441],\n", - " 'library_version': 'v1.9.0',\n", - " 'library_build_type': 'release',\n", - " 'json_schema_version': 1},\n", - " 'benchmarks': [{'name': 'OperatorCostMatched/target_cost:640000/SeqScan/6400/real_time',\n", - " 'family_index': 0,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/SeqScan/6400/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1116,\n", - " 'real_time': 532417.982082007,\n", - " 'cpu_time': 521056.23745519714,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 640000.0,\n", - " 'output_rows': 6400.0,\n", - " 'plan_cost': 640000.0,\n", - " 'rows': 6400.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/Filter/6400/real_time',\n", - " 'family_index': 1,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/Filter/6400/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1089,\n", - " 'real_time': 508270.4343416542,\n", - " 'cpu_time': 501445.3149678604,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 640000.0,\n", - " 'output_rows': 3328.0,\n", - " 'plan_cost': 1280000.0,\n", - " 'rows': 6400.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/Projection/29091/real_time',\n", - " 'family_index': 2,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/Projection/29091/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 156,\n", - " 'real_time': 4068856.4935967755,\n", - " 'cpu_time': 4010746.6025641034,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 640002.0,\n", - " 'output_rows': 29091.0,\n", - " 'plan_cost': 3549102.0,\n", - " 'rows': 29091.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/Sort/4476/real_time',\n", - " 'family_index': 3,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/Sort/4476/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 786,\n", - " 'real_time': 997565.7201017806,\n", - " 'cpu_time': 988471.3625954194,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 640068.0,\n", - " 'output_rows': 4476.0,\n", - " 'plan_cost': 1087668.0,\n", - " 'rows': 4476.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/Aggregation/1255/real_time',\n", - " 'family_index': 4,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/Aggregation/1255/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1000,\n", - " 'real_time': 529187.3500100337,\n", - " 'cpu_time': 520614.8160000001,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 640050.0,\n", - " 'output_rows': 1255.0,\n", - " 'plan_cost': 765550.0,\n", - " 'rows': 1255.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/HashJoin/4638/4638/real_time',\n", - " 'family_index': 5,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/HashJoin/4638/4638/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 714,\n", - " 'real_time': 1026884.7717186474,\n", - " 'cpu_time': 1016820.3893557423,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 4638.0,\n", - " 'model_cost': 640044.0,\n", - " 'output_rows': 4638.0,\n", - " 'plan_cost': 1567644.0,\n", - " 'rhs_rows': 4638.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time',\n", - " 'family_index': 6,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 804,\n", - " 'real_time': 875389.360694883,\n", - " 'cpu_time': 866351.0472636818,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 96.0,\n", - " 'model_cost': 645120.0,\n", - " 'output_rows': 96.0,\n", - " 'plan_cost': 664320.0,\n", - " 'rhs_rows': 96.0},\n", - " {'name': 'OperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time',\n", - " 'family_index': 7,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1107,\n", - " 'real_time': 527338.0876234216,\n", - " 'cpu_time': 522288.25112917816,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 78.0,\n", - " 'model_cost': 632736.0,\n", - " 'output_rows': 6084.0,\n", - " 'plan_cost': 648336.0,\n", - " 'rhs_rows': 78.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time',\n", - " 'family_index': 8,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 1000,\n", - " 'real_time': 507201.76300092135,\n", - " 'cpu_time': 502388.66499999975,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1000000.0,\n", - " 'output_rows': 10000.0,\n", - " 'plan_cost': 1000000.0,\n", - " 'rows': 10000.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/Filter/10000/real_time',\n", - " 'family_index': 9,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/Filter/10000/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 818,\n", - " 'real_time': 861314.8814182236,\n", - " 'cpu_time': 854085.0378973101,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1000000.0,\n", - " 'output_rows': 5120.0,\n", - " 'plan_cost': 2000000.0,\n", - " 'rows': 10000.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/Projection/45455/real_time',\n", - " 'family_index': 10,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/Projection/45455/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 94,\n", - " 'real_time': 6698144.617133793,\n", - " 'cpu_time': 6632289.042553187,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1000010.0,\n", - " 'output_rows': 45455.0,\n", - " 'plan_cost': 5545510.0,\n", - " 'rows': 45455.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/Sort/6993/real_time',\n", - " 'family_index': 11,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/Sort/6993/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 442,\n", - " 'real_time': 1503435.3755871719,\n", - " 'cpu_time': 1491453.7239819015,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 999999.0,\n", - " 'output_rows': 6993.0,\n", - " 'plan_cost': 1699299.0,\n", - " 'rows': 6993.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time',\n", - " 'family_index': 12,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 968,\n", - " 'real_time': 702023.9721114645,\n", - " 'cpu_time': 697631.2902892566,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 1000110.0,\n", - " 'output_rows': 1961.0,\n", - " 'plan_cost': 1196210.0,\n", - " 'rows': 1961.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/HashJoin/7246/7246/real_time',\n", - " 'family_index': 13,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/HashJoin/7246/7246/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 445,\n", - " 'real_time': 1406982.1932444642,\n", - " 'cpu_time': 1398061.253932585,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 7246.0,\n", - " 'model_cost': 999948.0,\n", - " 'output_rows': 7246.0,\n", - " 'plan_cost': 2449148.0,\n", - " 'rhs_rows': 7246.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time',\n", - " 'family_index': 14,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 548,\n", - " 'real_time': 1204951.5547396964,\n", - " 'cpu_time': 1197239.9598540142,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 120.0,\n", - " 'model_cost': 1008000.0,\n", - " 'output_rows': 120.0,\n", - " 'plan_cost': 1032000.0,\n", - " 'rhs_rows': 120.0},\n", - " {'name': 'OperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time',\n", - " 'family_index': 15,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 851,\n", - " 'real_time': 735576.7626255985,\n", - " 'cpu_time': 729660.8977673323,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 98.0,\n", - " 'model_cost': 998816.0,\n", - " 'output_rows': 9604.0,\n", - " 'plan_cost': 1018416.0,\n", - " 'rhs_rows': 98.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time',\n", - " 'family_index': 16,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 398,\n", - " 'real_time': 1552618.4949736656,\n", - " 'cpu_time': 1542405.301507536,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3240000.0,\n", - " 'output_rows': 32400.0,\n", - " 'plan_cost': 3240000.0,\n", - " 'rows': 32400.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/Filter/32400/real_time',\n", - " 'family_index': 17,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/Filter/32400/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 253,\n", - " 'real_time': 2615186.9209527443,\n", - " 'cpu_time': 2600695.6126482165,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3240000.0,\n", - " 'output_rows': 16384.0,\n", - " 'plan_cost': 6480000.0,\n", - " 'rows': 32400.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/Projection/147273/real_time',\n", - " 'family_index': 18,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/Projection/147273/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 28,\n", - " 'real_time': 24615069.89285616,\n", - " 'cpu_time': 24428312.28571426,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3240006.0,\n", - " 'output_rows': 147273.0,\n", - " 'plan_cost': 17967306.0,\n", - " 'rows': 147273.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/Sort/19636/real_time',\n", - " 'family_index': 19,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/Sort/19636/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 122,\n", - " 'real_time': 5716536.89353223,\n", - " 'cpu_time': 5678245.475409842,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3239940.0,\n", - " 'output_rows': 19636.0,\n", - " 'plan_cost': 5203540.0,\n", - " 'rows': 19636.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time',\n", - " 'family_index': 20,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 253,\n", - " 'real_time': 2528047.0632107765,\n", - " 'cpu_time': 2507421.2766798385,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 3240030.0,\n", - " 'output_rows': 6353.0,\n", - " 'plan_cost': 3875330.0,\n", - " 'rows': 6353.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/HashJoin/23478/23478/real_time',\n", - " 'family_index': 21,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/HashJoin/23478/23478/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 116,\n", - " 'real_time': 5300551.206816855,\n", - " 'cpu_time': 5262455.948275863,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 23478.0,\n", - " 'model_cost': 3239964.0,\n", - " 'output_rows': 23478.0,\n", - " 'plan_cost': 7935564.0,\n", - " 'rhs_rows': 23478.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time',\n", - " 'family_index': 22,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 199,\n", - " 'real_time': 3440769.0200625905,\n", - " 'cpu_time': 3423785.0904522617,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 215.0,\n", - " 'model_cost': 3235750.0,\n", - " 'output_rows': 215.0,\n", - " 'plan_cost': 3278750.0,\n", - " 'rhs_rows': 215.0},\n", - " {'name': 'OperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time',\n", - " 'family_index': 23,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 241,\n", - " 'real_time': 2294553.6597737176,\n", - " 'cpu_time': 2274793.3278008313,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 177.0,\n", - " 'model_cost': 3258216.0,\n", - " 'output_rows': 31329.0,\n", - " 'plan_cost': 3293616.0,\n", - " 'rhs_rows': 177.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time',\n", - " 'family_index': 24,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 169,\n", - " 'real_time': 4220053.053305335,\n", - " 'cpu_time': 4185106.73372781,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6760000.0,\n", - " 'output_rows': 67600.0,\n", - " 'plan_cost': 6760000.0,\n", - " 'rows': 67600.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/Filter/67600/real_time',\n", - " 'family_index': 25,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/Filter/67600/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 126,\n", - " 'real_time': 5592033.730141656,\n", - " 'cpu_time': 5560840.9365079515,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6760000.0,\n", - " 'output_rows': 33808.0,\n", - " 'plan_cost': 13520000.0,\n", - " 'rows': 67600.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/Projection/307273/real_time',\n", - " 'family_index': 26,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/Projection/307273/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 14,\n", - " 'real_time': 51498743.28552479,\n", - " 'cpu_time': 51127845.571428515,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6760006.0,\n", - " 'output_rows': 307273.0,\n", - " 'plan_cost': 37487306.0,\n", - " 'rows': 307273.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/Sort/38409/real_time',\n", - " 'family_index': 27,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/Sort/38409/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 50,\n", - " 'real_time': 12802464.73994339,\n", - " 'cpu_time': 12732764.899999935,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6759984.0,\n", - " 'output_rows': 38409.0,\n", - " 'plan_cost': 10600884.0,\n", - " 'rows': 38409.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time',\n", - " 'family_index': 28,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 118,\n", - " 'real_time': 5687199.652484043,\n", - " 'cpu_time': 5655535.008474565,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 6760050.0,\n", - " 'output_rows': 13255.0,\n", - " 'plan_cost': 8085550.0,\n", - " 'rows': 13255.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/HashJoin/48986/48986/real_time',\n", - " 'family_index': 29,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/HashJoin/48986/48986/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 51,\n", - " 'real_time': 13564179.451136358,\n", - " 'cpu_time': 13440944.60784313,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 48986.0,\n", - " 'model_cost': 6760068.0,\n", - " 'output_rows': 48986.0,\n", - " 'plan_cost': 16557268.0,\n", - " 'rhs_rows': 48986.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time',\n", - " 'family_index': 30,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 93,\n", - " 'real_time': 7198310.344040604,\n", - " 'cpu_time': 7163077.139784954,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 311.0,\n", - " 'model_cost': 6770470.0,\n", - " 'output_rows': 311.0,\n", - " 'plan_cost': 6832670.0,\n", - " 'rhs_rows': 311.0},\n", - " {'name': 'OperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time',\n", - " 'family_index': 31,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 87,\n", - " 'real_time': 6012239.873619354,\n", - " 'cpu_time': 5936778.873563203,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 255.0,\n", - " 'model_cost': 6762600.0,\n", - " 'output_rows': 65025.0,\n", - " 'plan_cost': 6813600.0,\n", - " 'rhs_rows': 255.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time',\n", - " 'family_index': 32,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 83,\n", - " 'real_time': 7610143.048174018,\n", - " 'cpu_time': 7525812.927710862,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 12250000.0,\n", - " 'output_rows': 122500.0,\n", - " 'plan_cost': 12250000.0,\n", - " 'rows': 122500.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/Filter/122500/real_time',\n", - " 'family_index': 33,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/Filter/122500/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 63,\n", - " 'real_time': 10313975.920629065,\n", - " 'cpu_time': 10227031.539682534,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 12250000.0,\n", - " 'output_rows': 61440.0,\n", - " 'plan_cost': 24500000.0,\n", - " 'rows': 122500.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/Projection/556818/real_time',\n", - " 'family_index': 34,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/Projection/556818/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 8,\n", - " 'real_time': 90203371.00082543,\n", - " 'cpu_time': 89533849.625,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 12249996.0,\n", - " 'output_rows': 556818.0,\n", - " 'plan_cost': 67931796.0,\n", - " 'rows': 556818.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/Sort/65536/real_time',\n", - " 'family_index': 35,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/Sort/65536/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 22,\n", - " 'real_time': 26495661.681771956,\n", - " 'cpu_time': 26260681.3181818,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 12255232.0,\n", - " 'output_rows': 65536.0,\n", - " 'plan_cost': 18808832.0,\n", - " 'rows': 65536.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time',\n", - " 'family_index': 36,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 50,\n", - " 'real_time': 15047581.499966329,\n", - " 'cpu_time': 14860661.740000011,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 12250200.0,\n", - " 'output_rows': 24020.0,\n", - " 'plan_cost': 14652200.0,\n", - " 'rows': 24020.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/HashJoin/88768/88768/real_time',\n", - " 'family_index': 37,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/HashJoin/88768/88768/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 28,\n", - " 'real_time': 25706484.214294635,\n", - " 'cpu_time': 25401594.67857147,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 88768.0,\n", - " 'model_cost': 12249984.0,\n", - " 'output_rows': 88768.0,\n", - " 'plan_cost': 30003584.0,\n", - " 'rhs_rows': 88768.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time',\n", - " 'family_index': 38,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 47,\n", - " 'real_time': 12686905.383003598,\n", - " 'cpu_time': 12628552.212766014,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 418.0,\n", - " 'model_cost': 12230680.0,\n", - " 'output_rows': 418.0,\n", - " 'plan_cost': 12314280.0,\n", - " 'rhs_rows': 418.0},\n", - " {'name': 'OperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time',\n", - " 'family_index': 39,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 52,\n", - " 'real_time': 12634891.67300017,\n", - " 'cpu_time': 12474011.807692219,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 343.0,\n", - " 'model_cost': 12235496.0,\n", - " 'output_rows': 117649.0,\n", - " 'plan_cost': 12304096.0,\n", - " 'rhs_rows': 343.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time',\n", - " 'family_index': 40,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 37,\n", - " 'real_time': 18734465.189186882,\n", - " 'cpu_time': 18479865.270270344,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26010000.0,\n", - " 'output_rows': 260100.0,\n", - " 'plan_cost': 26010000.0,\n", - " 'rows': 260100.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/Filter/260100/real_time',\n", - " 'family_index': 41,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/Filter/260100/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 28,\n", - " 'real_time': 26934393.928968348,\n", - " 'cpu_time': 26755899.03571434,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26010000.0,\n", - " 'output_rows': 130052.0,\n", - " 'plan_cost': 52020000.0,\n", - " 'rows': 260100.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/Projection/1182273/real_time',\n", - " 'family_index': 42,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/Projection/1182273/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 4,\n", - " 'real_time': 202987386.24842373,\n", - " 'cpu_time': 201290217.25000128,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26010006.0,\n", - " 'output_rows': 1182273.0,\n", - " 'plan_cost': 144237306.0,\n", - " 'rows': 1182273.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/Sort/131364/real_time',\n", - " 'family_index': 43,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/Sort/131364/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 9,\n", - " 'real_time': 74202993.22176208,\n", - " 'cpu_time': 73103763.44444415,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26010072.0,\n", - " 'output_rows': 131364.0,\n", - " 'plan_cost': 39146472.0,\n", - " 'rows': 131364.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time',\n", - " 'family_index': 44,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 16,\n", - " 'real_time': 48595095.37436679,\n", - " 'cpu_time': 48139274.8124998,\n", - " 'time_unit': 'ns',\n", - " 'model_cost': 26010000.0,\n", - " 'output_rows': 51000.0,\n", - " 'plan_cost': 31110000.0,\n", - " 'rows': 51000.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/HashJoin/188478/188478/real_time',\n", - " 'family_index': 45,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/HashJoin/188478/188478/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 14,\n", - " 'real_time': 52584296.71396568,\n", - " 'cpu_time': 52158890.000000164,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 188478.0,\n", - " 'model_cost': 26009964.0,\n", - " 'output_rows': 188478.0,\n", - " 'plan_cost': 63705564.0,\n", - " 'rhs_rows': 188478.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time',\n", - " 'family_index': 46,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 26,\n", - " 'real_time': 25448562.268978164,\n", - " 'cpu_time': 25343677.269230917,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 610.0,\n", - " 'model_cost': 26047000.0,\n", - " 'output_rows': 610.0,\n", - " 'plan_cost': 26169000.0,\n", - " 'rhs_rows': 610.0},\n", - " {'name': 'OperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time',\n", - " 'family_index': 47,\n", - " 'per_family_instance_index': 0,\n", - " 'run_name': 'OperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time',\n", - " 'run_type': 'iteration',\n", - " 'repetitions': 1,\n", - " 'repetition_index': 0,\n", - " 'threads': 1,\n", - " 'iterations': 27,\n", - " 'real_time': 30993357.51849813,\n", - " 'cpu_time': 30600644.111111116,\n", - " 'time_unit': 'ns',\n", - " 'lhs_rows': 500.0,\n", - " 'model_cost': 26000000.0,\n", - " 'output_rows': 250000.0,\n", - " 'plan_cost': 26100000.0,\n", - " 'rhs_rows': 500.0}]}" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import json\n", "results = None\n", @@ -5103,7 +3226,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.13" + "version": "3.13.7" } }, "nbformat": 4, diff --git a/research/research.pdf b/research/research.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e2932161ece3dba5bd2ab437d6371d2462c3999d GIT binary patch literal 726468 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

O2Xlt#V@-nMJYV=U0-9Eps4;ec8 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

3u>!dMI*5m};b^Uq0@~Z) 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
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ssb_interpreted = ssb[ssb.executor == \"Interpreted\"].copy()\n", + "\n", + "wide = ssb_interpreted.pivot(index=\"query\", columns=\"mode\", values=\"time_ms\").sort_index()\n", + "ax = wide[[\"Naive\", \"Optimized\"]].plot.bar(figsize=(14, 5))\n", + "ax.set_ylabel(\"Execution time, ms\")\n", + "ax.set_xlabel(\"Query\")\n", + "ax.set_title(\"Naive and optimized physical plans (SSB)\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c36bdd23", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAGGCAYAAAAAW6PhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbopJREFUeJzt3XmcTvX///HnNfvOWMaesWTLbuyFQdmyRFSKZPm0UkmhsiZLZG0R+tiSSEipqOwhRUwhW2MsGSNi7MvM+f3Rz/X9TGOZy7zHmTPzuN9uc7vN9T5nzvWc58016eXM+3JZlmUJAAAAAAAAAJApeN3KF508eVLTpk3Tq6++qhMnTkiStmzZosOHDxsNBwAAAAAAAADZjY+nXxATE6PGjRsrR44c2r9/v7p3765cuXJp0aJFiouL06xZszIiJwAAAAAAAABkCx7fadu7d2916dJFe/bsUUBAgHu9WbNmWrNmjdFwAAAAAAAAAJDdeDy0/emnn/Tkk0+mWi9UqJDi4+ONhAIAAAAAAACA7MrjoW1AQIASExNTre/atUt58+Y1EgoAAAAAAAAAsiuPh7atW7fW0KFDdfnyZUmSy+XSgQMH1K9fP7Vr1854QAAAAAAAAADITlyWZVmefEFiYqKaN2+u7du36/Tp0ypYsKDi4+NVu3ZtffXVVwoODs6orAAAAAAAAACQ5Xk8tL1qxYoV2rJli5KTk1W1alU1btzYdDYAAAAAAAAAyHY8HtoeOHBA+fLlk7+/f4p1y7J08OBB3XHHHUYDAgAAAAAAAEB24vGetpGRkapatar27duXYj0hIUHFihUzFgwAAABmbdy4Ue3bt1eBAgXk5+en/Pnz68EHH9SGDRvSdd333ntPM2bMSLW+f/9+uVyuax67VRlxzexoxowZcrlc2r9/v91RAAAAcA0eD20lqWzZsqpRo4a+//77FOu3uNMCAAAAMtikSZNUt25dHTp0SG+99Za+++47jRkzRocPH9bdd9+td95555avfb2hbYECBbRhwwa1aNEiHckz/poAAABAZuPj6Re4XC699957mjNnjlq0aKG33npLvXr1ch8DAABA5vLDDz/ohRdeUPPmzbVo0SL5+PzfXwEffvhhPfDAA3r++edVpUoV1a1b19jz+vv7q1atWsaul1HXvJnz588rICCAv+sCAADgtvH4Tturd9O++OKLWrRokQYOHKju3bvr4sWLxsMBAAAg/UaMGCGXy6X3338/xcBWknx8fPTee+/J5XJp5MiR7vXBgwfL5XLpl19+Udu2bRUWFqYcOXLoscce07Fjx9znRUZGavv27Vq9erVcLpdcLpciIyMlXXsrg6vXjYmJUfv27ZUjRw7lypVLvXv31pUrV7Rr1y41bdpUoaGhioyM1FtvvZUi77WuefV5r/Xxv7/+//PPP6tVq1bKlSuXAgICVKVKFc2fPz/F9a9uG7B8+XJ17dpVefPmVVBQ0HX/rpucnKxhw4apdOnSCgwMVM6cOVWxYkVNmDDB4y6vmjdvnmrXrq3g4GCFhISoSZMm+uWXX1Kdl5bvR/pnW4y6desqICBABQsWVP/+/XX58uVU57lcLg0ePDjVemRkpLp06ZKqo2+//VZPPPGEcuXKpeDgYLVs2VJ//PHHNXsCAACAZ25pe4SrmjVrpvXr12vVqlW6//77TWUCAACAIUlJSVq5cqWioqJUuHDha55TpEgRVatWTStWrFBSUlKKYw888IBKliypBQsWaPDgwVq8eLGaNGniHvotWrRIxYsXV5UqVbRhwwZt2LBBixYtummuDh06qFKlSvrss8/Uo0cPjRs3Ti+++KLatGmjFi1aaNGiRWrYsKH69u2rhQsX3vBaV5/36seKFStUqFAh5c+fX7ly5ZIkrVy5UnXr1tXJkyc1efJkff7556pcubIeeuiha27t0LVrV/n6+mr27NlasGCBfH19r/ncb731lgYPHqxHHnlES5cu1bx589StWzedPHky1bk361KShg8frkceeUTlypXT/PnzNXv2bJ0+fVr33HOPduzY4T4vrd/Pjh071KhRI508eVIzZszQ5MmT9csvv2jYsGE37DQtunXrJi8vL3388ccaP368Nm3apAYNGlzzewcAAICHLA81aNDA+vvvv1OsHT9+3KpXr57lcrk8vRwAAAAyUHx8vCXJevjhh2943kMPPWRJso4ePWpZlmUNGjTIkmS9+OKLKc6bM2eOJcn66KOP3Gt33XWXVb9+/VTXjI2NtSRZ06dPd69dve7bb7+d4tzKlStbkqyFCxe61y5fvmzlzZvXatu27Q2v+b+uXLlitW7d2goJCbE2b97sXi9TpoxVpUoV6/LlyynOv//++60CBQpYSUlJlmVZ1vTp0y1JVufOna95/X+7//77rcqVK9/wnLR2eeDAAcvHx8fq2bNnivNOnz5t5c+f3+rQoYPH389DDz1kBQYGWvHx8e5zrly5YpUpU8aSZMXGxrrXJVmDBg1Klb9o0aLW448/7n58taMHHnggxXk//PCDJckaNmzYDfsAAADAzXl8p+3KlSuVM2fOFGu5cuXS6tWrlZycfMvDYwAAANjH+v9bYP1739ZHH300xeMOHTrIx8dHK1euTNfz/fu3tMqWLSuXy6VmzZq513x8fFSyZEnFxcWl+brPPfecli5dqk8//VRVq1aVJO3du1e///67+3u5cuWK+6N58+Y6cuSIdu3aleI67dq1S9Pz1ahRQ9u2bdMzzzyjZcuWKTEx8brn3qzLZcuW6cqVK+rcuXOKjAEBAapfv75WrVrl8fezcuVKNWrUSPny5XM/r7e3tx566KE0fX838u/vp06dOipatGi6/2wAAAAgjW9ElpiYqLCwMPfnN3L1PAAAANgvT548CgoKUmxs7A3P279/v4KCgtzbCVyVP3/+FI99fHyUO3duHT9+PF25/v08fn5+CgoKUkBAQKr1m/3986phw4Zp8uTJ+vDDD9W0aVP3+tGjRyVJffr0UZ8+fa75tX/99VeKxwUKFEjTc/bv31/BwcH66KOPNHnyZHl7e6tevXoaNWqUoqKiUpx7sy6v5qxevfo1n8vLy8vj7+f48eOpnvdaWW7F9a6b3j8bAAAASOPQNjw8XEeOHFFERIRy5sx5zXfOtSxLLpcr1T5oAAAAsI+3t7eio6P1zTff6NChQ9fc1/bQoUPavHmzmjVrJm9v7xTH4uPjVahQIffjK1eu6Pjx48qdO3eGZ/fEjBkzNGDAAA0ePFhdu3ZNcSxPnjyS/hmwtm3b9ppfX7p06RSPr/X33Wvx8fFR79691bt3b508eVLfffedXn31VTVp0kQHDx5UUFCQ+9ybdXk154IFC1S0aNHrPqcn30/u3LkVHx+f6vi11vz9/a/5hmvXG8Je77olS5a8bnYAAACkTZqGtitWrEjxJg4AAABwjv79++vrr7/WM888o0WLFqUYzCYlJenpp5+WZVnq379/qq+dM2eOqlWr5n48f/58XblyRQ0aNHCv+fv76/z58xn6PdzIN998ox49eqhr164aNGhQquOlS5fWnXfeqW3btmn48OEZliNnzpx68MEHdfjwYb3wwgvav3+/ypUr5z5+sy6bNGkiHx8f7du374bbM3jy/URHR2vJkiU6evSoe4uEpKQkzZs3L9W5kZGRiomJSbG2YsUKnTlz5prXnjNnToqc69evV1xcnLp3737DTAAAALi5NA1t69evf83PAQAAkPnVrVtX48eP1wsvvKC7775bzz33nO644w4dOHBA7777rn788UeNHz9ederUSfW1CxculI+Pj+69915t375dAwYMUKVKldShQwf3ORUqVNAnn3yiefPmqXjx4goICFCFChVuy/cWGxur9u3bq3jx4nriiSe0cePGFMerVKkif39/ffDBB2rWrJmaNGmiLl26qFChQjpx4oR27typLVu26NNPP72l52/ZsqXKly+vqKgo5c2bV3FxcRo/fryKFi2qO++8M8W5N+syMjJSQ4cO1WuvvaY//vhDTZs2VXh4uI4ePapNmzYpODhYQ4YMkaQ0fz+vv/66lixZooYNG2rgwIEKCgrSu+++q7Nnz6b6Xjp16qQBAwZo4MCBql+/vnbs2KF33nlHOXLkuOb3/vPPP6t79+5q3769Dh48qNdee02FChXSM888c0tdAgAA4P+kaWj7bxcuXFBMTIwSEhJSvflYq1atjAQDAACAOT179lT16tX19ttv66WXXtLx48eVK1cu3X333Vq3bp1q1659za9buHChBg8erPfff18ul0stW7bU+PHj5efn5z5nyJAhOnLkiHr06KHTp0+raNGi2r9//235vuLi4nTmzBnt3r1b99xzT6rjsbGxioyMVHR0tDZt2qQ333xTL7zwgv7++2/lzp1b5cqVSzGA9lR0dLQ+++wzTZs2TYmJicqfP7/uvfdeDRgwQL6+vinOTUuX/fv3V7ly5TRhwgTNnTtXFy9eVP78+VW9enU99dRTKZ43Ld9P+fLl9d133+mll17S448/rvDwcHXq1Ent2rXTf/7znxT5Xn75ZSUmJmrGjBkaM2aMatSoofnz56t169bX/N4//PBDzZ49Ww8//LAuXryo6OhoTZgwIdV+xQAAAPCcy7r6VsFp9M0336hz586p3qxBEnvaAgAAZBGDBw/WkCFDdOzYMfceqrg1Wa3LGTNm6IknntBPP/2U6s3WAAAAYIaXp1/w3HPPqX379jpy5IiSk5NTfDCwBQAAAAAAAID08Xhom5CQoN69e7vfyAAAAAAAAAAAYI7H2yN07dpVdevW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AAAAAACAbC/NQ9u5c+cqMjJSNWvW1PDhw7V9+/aMzAUAAAAAAAAA2VKah7YrV67UkSNH1LNnT23dulV16tRRiRIl1Lt3b61atUrJyckZmRMAAAAAAAAAsgWP9rQNDw/XY489pvnz5+vYsWN69913deHCBXXq1El58+ZV586dtWDBAp09ezaj8gIAAAAAAABAlnbLb0Tm5+enpk2b6r333tPBgwe1bNkyRUZG6o033tDYsWM9vt6IESPkcrn0wgsv3GokAAAAAAAAAHA8H1MXioqKUlRUlIYOHarLly979LU//fSTpkyZoooVK5qKAwAAAAAAAACOdMt32t6Ir69vms89c+aMHn30UU2dOlXh4eEZEQcAAAAAAAAAHCNDhraeePbZZ9WiRQs1btzY7igAAAAAAAAAYDtj2yPcik8++URbtmzRTz/9lKbzL168qIsXL7ofJyYmZlQ0AAAAAAAAALCFbXfaHjx4UM8//7w++ugjBQQEpOlrRowYoRw5crg/ihQpksEpAQAAAAAAAOD2uqWh7dq1a/XYY4+pdu3aOnz4sCRp9uzZWrduXZqvsXnzZiUkJKhatWry8fGRj4+PVq9erYkTJ8rHx0dJSUmpvqZ///46deqU++PgwYO3Eh8AAAAAAAAAMi2Ph7afffaZmjRposDAQP3yyy/u7QpOnz6t4cOHp/k6jRo10q+//qqtW7e6P6KiovToo49q69at8vb2TvU1/v7+CgsLS/EBAAAAAAAAAFmJx0PbYcOGafLkyZo6dap8fX3d63Xq1NGWLVvSfJ3Q0FCVL18+xUdwcLBy586t8uXLexoLAAAAAAAAALIEj4e2u3btUr169VKth4WF6eTJkyYyAQAAAAAAAEC25ePpFxQoUEB79+5VZGRkivV169apePHi6QqzatWqdH09AAAAAAAAADidx3faPvnkk3r++ef1448/yuVy6c8//9ScOXPUp08fPfPMMxmREQAAAAAAAACyDY/vtH3llVd06tQpRUdH68KFC6pXr578/f3Vp08fPffccxmREQAAAAAAAACyDY+HtpL05ptv6rXXXtOOHTuUnJyscuXKKSQkxHQ2AAAAAAAAAMh2PN4eYebMmTp79qyCgoIUFRWlGjVqMLAFAAAAAAAAAEM8Htr26dNHERERevjhh/Xll1/qypUrGZELAAAAAAAAALIlj4e2R44c0bx58+Tt7a2HH35YBQoU0DPPPKP169dnRD4AAAAAAAAAyFY8Htr6+Pjo/vvv15w5c5SQkKDx48crLi5O0dHRKlGiREZkBAAAAAAAAIBs45beiOyqoKAgNWnSRH///bfi4uK0c+dOU7kAAAAAAAAAIFvy+E5bSTp37pzmzJmj5s2bq2DBgho3bpzatGmj3377zXQ+AAAAAAAAAMhWPL7T9pFHHtEXX3yhoKAgtW/fXqtWrVKdOnUyIhsAAAAAAAAAZDseD21dLpfmzZunJk2ayMcnXbsrAAAAAAAAAAD+xeOp68cff5wROQAAAAAAAAAASuPQduLEifrPf/6jgIAATZw48Ybn9urVy0gwAAAAAAAAAMiO0jS0HTdunB599FEFBARo3Lhx1z3P5XIxtAUAAAAAAACAdEjT0DY2NvaanwMAAAAAAAAAzPKyOwAAAAAAAAAA4P94/EZkknTo0CEtWbJEBw4c0KVLl1IcGzt2rJFgAAAAAAAAAJAdeTy0/f7779WqVSsVK1ZMu3btUvny5bV//35ZlqWqVatmREYAAAAAAAAAyDY83h6hf//+eumll/Tbb78pICBAn332mQ4ePKj69eurffv2GZERAAAAAAAAALINj4e2O3fu1OOPPy5J8vHx0fnz5xUSEqKhQ4dq1KhRxgMCAAAAAAAAQHbi8dA2ODhYFy9elCQVLFhQ+/btcx/766+/zCUDAAAAAAAAgGzI4z1ta9WqpR9++EHlypVTixYt9NJLL+nXX3/VwoULVatWrYzICAAAAAAAAADZhsdD27Fjx+rMmTOSpMGDB+vMmTOaN2+eSpYsqXHjxhkPCAAAAAAAAADZicdD2+LFi7s/DwoK0nvvvWc0EAAAAAAAAABkZx7vaWvSiBEjVL16dYWGhioiIkJt2rTRrl277IwEAAAAAAAAALZK8522xYoVk8vluuE5LpcrxRuT3czq1av17LPPqnr16rpy5Ypee+013XfffdqxY4eCg4PTfB0AAAAAAAAAyCrSPLR94YUXrnts//79+uCDD3Tx4kWPnvybb75J8Xj69OmKiIjQ5s2bVa9ePY+uBQAAAAAAAABZQZqHts8//3yqtRMnTuiNN97Q+++/r5o1a2rUqFHpCnPq1ClJUq5cudJ1HQAAAAAAAABwKo/fiEySzp8/r7Fjx2r06NGKjIzUwoUL1bx583QFsSxLvXv31t13363y5ctf85yLFy+muJs3MTExXc8JAAAAAAAAAJmNR0PbpKQkTZ06VUOGDFFAQIAmTZqkxx577KZ73abFc889p5iYGK1bt+6654wYMUJDhgxJ93MBAAAAAAAAQGblldYT58+fr7Jly2rQoEHq16+fdu3apU6dOhkZ2Pbs2VNLlizRypUrVbhw4eue179/f506dcr9cfDgwXQ/NwAAAAAAAABkJmm+0/bhhx9WYGCgHnnkEcXFxalfv37XPG/s2LFpfnLLstSzZ08tWrRIq1atUrFixW54vr+/v/z9/dN8fQAAAAAAAABwmjQPbevVqyeXy6V9+/Zd9xxP77p99tln9fHHH+vzzz9XaGio4uPjJUk5cuRQYGCgR9cCAAAAAAAAgKwgzUPbVatWGX/y999/X5LUoEGDFOvTp09Xly5djD8fAAAAAAAAAGR2Hr0RmWmWZdn59AAAAAAAAACQ6aT5jcgAAAAAAAAAABmPoS0AAAAAAAAAZCIMbQEAAAAAAAAgE7F1T1sAAAAAAIBriey31O4IN7V/ZAu7IwDIoowObQ8cOKBChQrJ29vb5GUBAMgWnPA/JhL/cwIAAAAAGc3o0DYyMlJ33nmnRowYobZt25q8NAAgk2LQCAAAAACAWUaHtitXrlRsbKwWLFjA0BaSGOYAAAAAAAAAnjI6tK1fv77q16+vLl26mLwsADEABwAAAAAAyC5ueWibkJCgXbt2yeVyqVSpUoqIiDCZy1YMxwAAAAAAAADYxeOhbWJiop599ll98sknSkpKkiR5e3vroYce0rvvvqscOXIYDwkAAAAAAAAga3HCjZN23TTp8dC2e/fu2rp1q7788kvVrl1bLpdL69ev1/PPP68ePXpo/vz5GZHzhrZu3aqQkBBj17sYv9fYtTLSli1b7I5wU3RpDl0is+LPpjl0aQ5dmuWEPunSLCf0SZdA1ueE1zmvcSB9suPr/MyZM2k6z2VZluXJhYODg7Vs2TLdfffdKdbXrl2rpk2b6uzZs55cLl0SExO5sxcAAAAAAACAo5w6dUphYWHXPe7xnba5c+e+5qA0R44cCg8P9/RyRqxevdronbYtJq41dq2MtLTXPXZHuCm6NIcuzXJCn3RplhP6pEtz6NIsJ/RJl2Y5oU+6BLI+J7zOnfIad0KXkjP6pEuznNCn6S7PnDmj+vXr3/Q8j4e2r7/+unr37q1Zs2apQIECkqT4+Hi9/PLLGjBggOdJDahcufINJ9Oe8s9/xNi1MlLVqlXtjnBTdGkOXZrlhD7p0iwn9EmX5tClWU7oky7NckKfdAlkfU54nTvlNe6ELiVn9EmXZjmhT9NdJiYmpuk8j4e277//vvbu3auiRYvqjjvukCQdOHBA/v7+OnbsmD744AP3ueztAgAAAADITnhTHQCACR4Pbdu0aZMBMQAAAAAAAAAA0i0MbQcNGpQROQAAAAAANnDCnaESd4cCALIXL7sDAAAAAAAAAAD+j8d32np5ecnlcl33eFJSUroCAQAAAAAAAEB25vHQdtGiRSkeX758Wb/88otmzpypIUOGGAsGAAAAAAAAANmRx0Pb1q1bp1p78MEHddddd2nevHnq1q2bkWAAAAAAAAAAkB0Z29O2Zs2a+u6770xdDgAAAAAAAACyJSND2/Pnz2vSpEkqXLiwicsBAAAAAAAAQLbl8fYI4eHhKd6IzLIsnT59WkFBQfroo4+MhgMAAAAAAACA7Mbjoe24ceNSDG29vLyUN29e1axZU+Hh4R4HeO+99zR69GgdOXJEd911l8aPH6977rnH4+sAAAAAAAAAQFbg8dC2S5cuxp583rx5euGFF/Tee++pbt26+uCDD9SsWTPt2LFDd9xxh7HnAQAAAAAAAACnSNPQNiYmJs0XrFixYprPHTt2rLp166bu3btLksaPH69ly5bp/fff14gRI9J8HQAAAAAAAADIKtI0tK1cubJcLpcsy5KkFNsj/FtSUlKanvjSpUvavHmz+vXrl2L9vvvu0/r166/5NRcvXtTFixfdj0+dOiVJSkxMTNNzplXyxXNGr5dRTH/fGYEuzaFLs5zQJ12a5YQ+6dIcujTLCX3SpVlO6JMuzaFLs5zQJ12aQ5dmOaFPujTLCX2a7vLq9a7OWa/HZd3sDElxcXHuz3/55Rf16dNHL7/8smrXri1J2rBhg95++2299dZbatOmTZoC/vnnnypUqJB++OEH1alTx70+fPhwzZw5U7t27Ur1NYMHD9aQIUPSdH0AAAAAAAAAyIwOHjyowoULX/d4mu60LVq0qPvz9u3ba+LEiWrevLl7rWLFiipSpIgGDBiQ5qHtVf++a9eyrOveydu/f3/17t3b/Tg5OVknTpxQ7ty5b3j3r90SExNVpEgRHTx4UGFhYXbHcTS6NIcuzaFLs+jTHLo0hy7NoUuz6NMcujSHLs2hS7Po0xy6NIcuzXFKl5Zl6fTp0ypYsOANz/P4jch+/fVXFStWLNV6sWLFtGPHjjRfJ0+ePPL29lZ8fHyK9YSEBOXLl++aX+Pv7y9/f/8Uazlz5kzzc9otLCwsU/+hcRK6NIcuzaFLs+jTHLo0hy7NoUuz6NMcujSHLs2hS7Po0xy6NIcuzXFClzly5LjpOV6eXrRs2bIaNmyYLly44F67ePGihg0bprJly6b5On5+fqpWrZq+/fbbFOvffvttiu0SAAAAAAAAACA78fhO28mTJ6tly5YqUqSIKlWqJEnatm2bXC6XvvzyS4+u1bt3b3Xq1ElRUVGqXbu2pkyZogMHDuipp57yNBYAAAAAAAAAZAkeD21r1Kih2NhYffTRR/r9999lWZYeeughdezYUcHBwR5d66GHHtLx48c1dOhQHTlyROXLl9dXX32VYg/drMDf31+DBg1KtbUDPEeX5tClOXRpFn2aQ5fm0KU5dGkWfZpDl+bQpTl0aRZ9mkOX5tClOVmtS5dlWZbdIQAAAAAAAAAA//B4T1tJmj17tu6++24VLFhQcXFxkqRx48bp888/NxoOAAAAAAAAALIbj4e277//vnr37q1mzZrp77//VlJSkiQpPDxc48ePN50PAAAAAAAAALIVj4e2kyZN0tSpU/Xaa6/Jx+f/tsSNiorSr7/+ajQcAAAAAAAAAGQ3Hg9tY2NjVaVKlVTr/v7+Onv2rJFQAAAAAAAAAJBdeTy0LVasmLZu3Zpq/euvv1a5cuVMZAIAAAAAAACAbMvn5qek9PLLL+vZZ5/VhQsXZFmWNm3apLlz52rEiBGaNm1aRmQEAAAAAAAAHCsxMTHN54aFhWVgEufLLl16fKftE088oUGDBumVV17RuXPn1LFjR02ePFkTJkzQww8/nBEZs5SjR49q6NChdsdwlEOHDunMmTOp1i9fvqw1a9bYkMiZjh8/rpUrV+rEiROSpL/++kujRo3S0KFDtXPnTpvTZR28xm8Nr3MzeJ3fHrzOPcdr3Bxe5xmrePHi2rNnj90xshR+ZnqOn5nm8DMz4/z999/66aefdOjQIbujOEbOnDkVHh5+w4+r5+DGskuXLsuyrFv94r/++kvJycmKiIgwmSlL27Ztm6pWraqkpCS7o2R6R44cUevWrbV582a5XC49+uijevfddxUSEiLpn78AFixYkC7TYNOmTbrvvvuUmJionDlz6ttvv1X79u3l4+Mjy7J0+PBhrVu3TlWrVrU7quPxGvcMr3NzeJ3fPrzO047XuFm8zs2ZOHHiNdd79+6tV155Rfnz55ck9erV63bGypL4mZl2/Mw0i5+Z5rz66qt6/fXXFRQUpMuXL+vZZ5/Vhx9+KMuy5HK51Lp1a3388ccKCAiwO2qmtnr16jSfW79+/QxM4nzZpctbGtpeuXJFq1at0r59+9SxY0eFhobqzz//VFhYmPs/KNlVTEzMDY///vvveuSRR/gPbRo8/vjj2r17tyZNmqSTJ0+qf//+sixL3377rcLDw3X06FEVKFBAycnJdkfN9O69915FRkZq7Nix+uCDDzRhwgQ1bdpUU6dOlSR1795dx48f16JFi2xOmvnxGjeL17k5vM7N4XVuDq9xs3idm+Pl5aVChQrJxyflbnFxcXEqWLCgfH195XK59Mcff9iU0Dn4mWkOPzPN4memOd7e3jpy5IgiIiI0fPhwjR8/XpMnT1atWrW0ZcsWPfXUU3ryySc1YMAAu6MCWYrHQ9u4uDg1bdpUBw4c0MWLF7V7924VL15cL7zwgi5cuKDJkydnVFZH8PLyksvl0rVqvbrucrn4S0saFCpUSIsWLVKNGjUkSRcvXtRDDz2kuLg4ff/997p8+TL/0pxGuXLl0g8//KCyZcvq8uXLCggI0IYNG9zd/vLLL2rZsiW/2pIGvMbN4nVuDq9zc3idm8Nr3Cxe5+Y8+eST2rRpkz7++GOVLVvWve7r66tt27bxBsse4GemOfzMNIufmeZ4eXkpPj5eERERqlKlinr27KmuXbu6j8+fP1+DBw/Wjh07bEyZ+d3sH7n+V8WKFTMwifNlly49fiOy559/XlFRUdq2bZty587tXn/ggQfUvXt3o+GcKHfu3Bo1apQaNWp0zePbt29Xy5Ytb3MqZzp16lSK/Uf8/f21YMECtW/fXtHR0froo49sTOcsly5dUmBgoKR//mckKChIefLkcR/PnTu3jh8/blc8R+E1bhavc3N4nZvD69wcXuNm8To354MPPtDixYvVpEkTvfLKK3ruuefsjuRY/Mw0h5+ZZvEz0yyXyyVJOnjwoHvwfVWNGjUUFxdnRyxHqVy58nX/ket/8Q9dN5dduvR4aLtu3Tr98MMP8vPzS7FetGhRHT582Fgwp6pWrZr+/PNPFS1a9JrHT548edM/VPhH8eLFFRMTozvvvNO95uPjo08//VTt27fX/fffb2M6ZylSpIj++OMPRUZGSpI++eQTFShQwH38yJEjKf4Cg+vjNW4Wr3NzeJ2bw+vcHF7jZvE6N6tNmzaqXr26OnfurKVLl2r69Ol2R3Ikfmaaw89Ms/iZadbUqVMVEhIif39//f333ymOnTp1Sv7+/jYlc47Y2Fi7I2QZ2aVLj4e2ycnJ15xSHzp0SKGhoUZCOdmTTz6ps2fPXvf4HXfcwV8I06hZs2aaMmWK2rVrl2L96l9c2rVrx6+ypNHDDz+shIQE9+MWLVqkOL5kyZJU/1qKa+M1bhavc3N4nZvD69wcXuNm8To3r1ChQvruu+80cuRIValSheHiLeBnpjn8zDSLn5nm3HHHHe69gP38/LRlyxbdc8897uMrV65U6dKl7YrnGNf7xy14Lrt06fGetg899JBy5MihKVOmKDQ0VDExMcqbN69at27Nf5Bh1JUrV3Tu3DmFhYVd83hSUpIOHTqUbV6sGencuXPy9vbmX0dx2/E6v314ncMOvMZvL17n6bN582atW7dOnTt3TvEr6sDtws/M24ufmeZs3LhR/v7+qlKlit1RHGfHjh06cOCALl26lGK9VatWNiVyrqzYpcdD2z///FPR0dHy9vbWnj17FBUVpT179ihPnjxas2aNIiIiMiorAAAAAAAAMpmrbzqItPnjjz/0wAMP6Ndff02xN+vVDp28D+vtlpW79PL0CwoWLKitW7eqT58+evLJJ1WlShWNHDlSv/zyCwPbNPj88881a9Ysu2NkCXRpDl2aQ5dm0ac5dGkOXZpDl2bRpzl0aQ5dmkOXZtGn5zp16qQzZ86kWt+/f7/q1atnQyLnev7551WsWDEdPXpUQUFB2r59u9asWaOoqCitWrXK7niOkpW79PhOW6RPmTJltGfPHkdP+jMLujSHLs2hS7Po0xy6NIcuzaFLs+jTHLo0hy7NoUuz6NNz1apV04kTJ/TRRx+pbt26kqSZM2eqV69euvfee7VgwQKbEzpHnjx5tGLFClWsWFE5cuTQpk2bVLp0aa1YsUIvvfSSfvnlF7sjOkZW7vKWhra7du3SpEmTtHPnTrlcLpUpU0bPPfecypQpkxEZAQAAAAAAYKMrV67o9ddf17hx4/TSSy9pz549+uabbzRhwgR17drV7niOEh4ers2bN6t48eIqUaKEpk2bpujoaO3bt08VKlTQuXPn7I7oGFm5Sx9Pv2DBggV65JFHFBUVpdq1a0v6Z9PpChUq6OOPP1b79u2NhwQAAAAAAIB9fHx8NHLkSPn7++uNN96Qj4+PVq9e7Z4NIe3Kly+vmJgYFS9eXDVr1tRbb70lPz8/TZkyRcWLF7c7nqNk5S493tP2lVdeUf/+/bVhwwaNHTtWY8eO1fr16/Xqq6+qb9++GZExSzl79qzWrFljd4wsgS7NoUsASO3fvy75448/as2aNbp8+bJNiZyLLs2iT3PoMuM88cQT+vPPP+2OkSXQpVn0eesuX76sl156SaNGjVL//v1Vu3ZtPfDAA/rqq6/sjuY4r7/+upKTkyVJw4YNU1xcnO655x599dVXmjhxos3pnCUrd+nx9ghBQUGKiYlRyZIlU6zv2bNHlSpVcvRtx7fDtm3bVLVqVfbNMYAuzaHLtLt8+bJee+01LVy4ULly5dLTTz+tJ554wn386NGjKliwIF2mEX2aQ5fmHDlyRO3bt9fGjRtVt25dLV68WJ06dXL/D8mdd96pVatWqUCBAjYnzfzo0iz6NIcuzYmJibnmelRUlObPn+++y6lixYq3M5Yj0aVZ9Gne1ZnP7NmzVatWLVmWpbfeekuDBg1S165d9d5779kd0dFOnDih8PBwuVwuu6M4Xlbp0uPtERo0aKC1a9emGtquW7dO99xzj7FgAJAZvfnmm5o1a5b69OmjkydP6sUXX9TGjRv1wQcfuM/h/R3Tjj7NoUtz+vbtK8uytGjRIs2ZM0f333+/vL29dfDgQSUnJ+vRRx/Vm2++qXfeecfuqJkeXZpFn+bQpTmVK1eWy+W65n9j2rVrJ8uy5HK5+EfDNKBLs+jTvKioKE2cOFHBwcGSJJfLpb59+6pJkyZ67LHHbE7nfLly5bI7QpaRVbr0+E7byZMna+DAgerQoYNq1aol6Z89bT/99FMNGTJEBQsWdJ/bqlUrs2kd4GZ/MJKSknTmzBn+w5AGdGkOXZpz5513aty4cbr//vslSfv27VOzZs1Ut25d/fe//1VCQgJ3M3qAPs2hS3MKFiyohQsXqlatWjpx4oTy5Mmjb7/9Vo0aNZIkrVy5Ut27d9e+fftsTpr50aVZ9GkOXZpTuXJlFS5cWGPGjFFgYKCkf/6R8M4779TXX3+tO++8U5JUtGhRO2M6Al2aRZ+318WLF+Xv7293DMe4cOGCJk2apJUrVyohIcH96/1XbdmyxaZkzpOVu/R4aOvllbZtcLPrv1gFBwfr6aefVoUKFa55PC4uTkOGDMmW3XiKLs2hS3OCgoK0Y8cORUZGutf+/PNPNWzYUFFRUXrrrbdUpEgRukwj+jSHLs0JDAzU7t27VaRIEUlSSEiItm7d6v4towMHDqhMmTJsCZUGdGkWfZpDl+ZcunRJr7zyir799lt99NFHqlKliiTJ19dX27ZtU7ly5WxO6Bx0aRZ9ZozZs2dr8uTJio2N1YYNG1S0aFGNHz9exYoVU+vWre2O5xgdO3bUt99+qwcffFD58uVL9Wv8gwYNsimZ82TlLj3eHuHfE2ukVLlyZRUpUkSPP/74NY9v27ZNQ4YMuc2pnIkuzaFLc/Lnz699+/alGIwVLFhQK1asUHR09HU7xrXRpzl0aU5ERISOHDniHuY899xzKX5j4e+//3b/WiBujC7Nok9z6NIcPz8/jR8/Xl9//bVatWqlZ555hjeovkV0aRZ9mvf+++9r4MCBeuGFF/Tmm2+6bwbImTOnxo8fz9DWA0uXLtVXX32lunXr2h3F8bJyl2m7bRZp1qJFC508efK6x3PlyqXOnTvfvkAORpfm0KU5DRs21Mcff5xq/epwbP/+/bc/lIPRpzl0aU7lypW1YcMG9+ORI0emGOasW7eONy1JI7o0iz7NoUvzmjVrpp9//llr165V/fr17Y7jaHRpFn2aM2nSJE2dOlWvvfaavL293etRUVH69ddfbUzmPIUKFVJoaKjdMbKErNxlmrdH+PHHH3XixAk1a9bMvTZr1iwNGjRIZ8+eVZs2bTRp0iT2MAGQpcXFxen3339XkyZNrnn8yJEjWr58OXc1phF9mkOXt89PP/2kwMBAlS9f3u4ojkeXZtGnOXSZPhMnTtTKlSs1adIkFS5c2O44jkaXZtFn+gQGBur3339X0aJFFRoaqm3btql48eLas2ePKlasqPPnz9sd0TG+/vprTZw4UZMnT2Zf5XTKyl2meWjbrFkzNWjQwP3rBL/++quqVq2qLl26qGzZsho9erSefPJJDR48OCPzAgAAAAAA4DYrV66cRowYodatW6cY2k6cOFEzZ87U5s2b7Y7oGMeOHVOHDh20Zs0aBQUFydfXN8XxEydO2JTMebJyl2ne03br1q1644033I8/+eQT1axZU1OnTpUkFSlSRIMGDWJo+/8tWbIkzee2atUqA5M4H12aQ5fm0KVZ9GkOXZpDl+bQpVn0aQ5dmkOX5tClWfRpzssvv6xnn31WFy5ckGVZ2rRpk+bOnasRI0Zo2rRpdsdzlEceeUSHDx/W8OHDr/nmWUi7rNxlmu+0DQgI0J49e9yb9d99991q2rSpXn/9dUnS/v37VaFCBZ0+fTrj0jqIl5eXXC6X/l3vv9dcLhfv5H0TdGkOXZpDl2bRpzl0aQ5dmkOXZtGnOXRpDl2aQ5dm0adZU6dO1bBhw3Tw4EFJ/+wnOnjwYHXr1s3mZM4SFBSkDRs2qFKlSnZHcbys3GWa34gsX758io2NlSRdunRJW7ZsUe3atd3HT58+neoW5Oxs+fLlqly5sr7++mudPHlSp06d0tdff62qVatq2bJlSk5OVnJyMv9RSAO6NIcuzaFLs+jTHLo0hy7NoUuz6NMcujSHLs2hS7Po06wePXooLi5OCQkJio+P18GDBxnY3oIyZcqwB7AhWbpLK43+85//WLVr17bWrFlj9e7d28qdO7d18eJF9/GPPvrIioqKSuvlsry77rrLWrt2bar1NWvWWGXKlLEhkXPRpTl0aQ5dmkWf5tClOXRpDl2aRZ/m0KU5dGkOXZpFn8iMli1bZtWpU8dauXKl9ddff1mnTp1K8YG0y8pdpnlP22HDhqlt27aqX7++QkJCNHPmTPn5+bmP//e//9V9992XIYNlJ9q3b59y5MiRaj1Hjhzav3//7Q/kYHRpDl2aQ5dm0ac5dGkOXZpDl2bRpzl0aQ5dmkOXZtFn+lSpUiXNe4Ru2bIlg9NkHU2bNpUkNWrUKMW6ZVls1eGhrNxlmve0verUqVMKCQmRt7d3ivUTJ04oJCQkxSA3O6tXr558fX310UcfqUCBApKk+Ph4derUSZcuXdLq1attTugcdGkOXZpDl2bRpzl0aQ5dmkOXZtGnOXRpDl2aQ5dm0Wf6DBkyJM3nDho0KAOTZC03+3NXv37925TE+bJylx4PbZE2e/fu1QMPPKBdu3bpjjvukCQdOHBApUqV0uLFi1WyZEmbEzoHXZpDl+bQpVn0aQ5dmkOX5tClWfRpDl2aQ5fm0KVZ9AnAqRjaZiDLsvTtt9/q999/l2VZKleunBo3bpzmXy3A/6FLc+jSHLo0iz7NoUtz6NIcujSLPs2hS3Po0hy6NIs+zfr555+1c+dOuVwulS1bVtWqVbM7kmOcOHFC586dU+HChd1r27dv15gxY3T27Fm1adNGHTt2tDGhc2SHLhnaGtaxY0e1adNGTZs2VVhYmN1xHI0uzaFLc+jSLPo0hy7NoUtz6NIs+jSHLs2hS3Po0iz6NO/QoUN65JFH9MMPPyhnzpySpJMnT6pOnTqaO3euihQpYm9AB3jkkUdUoEABjR07VpKUkJCgMmXKqGDBgipRooS+/vprffjhh+rUqZPNSTO/7NCll90BsprSpUtr1KhRioiI0H333ad3331XBw8etDuWI9GlOXRpDl2aRZ/m0KU5dGkOXZpFn+bQpTl0aQ5dmkWf5nXt2lWXL1/Wzp07deLECZ04cUI7d+6UZVnq1q2b3fEcYePGjWrVqpX78axZs5QrVy5t3bpVn3/+uYYPH653333XxoTOkR265E7bDHLo0CEtWbJEn3/+uVavXq1y5cqpVatWat26tapUqWJ3PEehS3Po0hy6NIs+zaFLc+jSHLo0iz7NoUtz6NIcujSLPs0JDAzU+vXrU/W2ZcsW1a1bV+fPn7cpmXMEBgbq999/V9GiRSVJzZs311133aXRo0dLknbv3q3atWvr+PHjdsZ0hGzRpYUMl5iYaM2bN8/q2LGjFR4ebt1xxx3Ws88+a/322292R3McujSHLs2hS7Po0xy6NIcuzaFLs+jTHLo0hy7NoUuz6DN9SpUqZf3444+p1n/88UerRIkSNiRynoiICGvr1q3ux7lz57YWLFjgfrx7924rODjYjmiOkx265E7b2ywpKUmrVq3SkiVLVKFCBXXv3t3uSI5Fl+bQpTl0aRZ9mkOX5tClOXRpFn2aQ5fm0KU5dGkWfXruf3/lvFq1anK5XPr555/Vs2dP9e3bV23atLE7YqbXsmVLRUREaOrUqVq4cKEeffRRxcfHKzw8XJK0dOlS9enTRzt37rQ5aeaXHbpkaHubXLp0SZcuXVJISIjdURyPLs2hS3Po0iz6NIcuzaFLc+jSLPo0hy7NoUtz6NIs+rx14eHhOnfunK5cuSIfHx9Jcn8eHByc4twTJ07YETHT27p1qxo3bqzTp0/rypUrevXVV/XGG2+4j3fq1EnBwcGaPHmyjSmdITt0yRuRZYDp06erZ8+emjNnjiSpf//+Cg0NVY4cOXTvvfc6ez+N24wuzaFLc+jSLPo0hy7NoUtz6NIs+jSHLs2hS3Po0iz6NGv8+PGaMmWK/vvf/2rKlCkpPh83blyKD1xb5cqVtXPnTs2fP1/r169PMWSUpIcfflh9+/a1KZ2zpKXLfv362ZTOEHt3Z8h6hg0bZgUGBlqNGjWycuXKZT311FNW/vz5rZEjR1pvvfWWVbhwYeupp56yO6Yj0KU5dGkOXZpFn+bQpTl0aQ5dmkWf5tClOXRpDl2aRZ9A9jBz5kzrwoULqdYvXrxozZw504ZE5jC0NaxkyZLWxx9/bFmWZf3000+Wl5eX9emnn7qPf/XVV9Ydd9xhVzxHoUtz6NIcujSLPs2hS3Po0hy6NIs+zaFLc+jSHLo0iz4zztGjR61ff/3V2rZtW4oPeOa7776z+vfvb3Xr1s164oknUnwg7by8vKyjR4+mWv/rr78sLy8vGxKZw562hvn7+2vv3r0qUqSI+3FMTIxKly4tSTp8+LCKFSumS5cu2RnTEejSHLo0hy7Nok9z6NIcujSHLs2iT3Po0hy6NIcuzaJP8zZv3qzHH39cO3fu1L9HSS6XS0lJSTYlc54hQ4Zo6NChioqKUoECBeRyuVIcX7RokU3JnMfLy0tHjx5V3rx5U6xv27ZN0dHRjt5f2cfuAFnN5cuX5e/v737s5+cnX19f92MfHx9+kKURXZpDl+bQpVn0aQ5dmkOX5tClWfRpDl2aQ5fm0KVZ9GneE088oVKlSunDDz9Uvnz5Ug0akXaTJ0/WjBkz1KlTJ7ujOFaVKlXkcrnkcrnUqFEj95vjSVJSUpJiY2PVtGlTGxOmH0PbDLBjxw7Fx8dLkizL0u+//64zZ85Ikv766y87ozkOXZpDl+bQpVn0aQ5dmkOX5tClWfRpDl2aQ5fm0KVZ9GlWbGysFi5cqJIlS9odxfEuXbqkOnXq2B3D0dq0aSNJ2rp1q5o0aaKQkBD3MT8/P0VGRqpdu3Y2pTOD7REM8/LyksvlSvWrApLc6/zaQNrQpTl0aQ5dmkWf5tClOXRpDl2aRZ/m0KU5dGkOXZpFn+a1adNGnTp1cvwgLDPo27evQkJCNGDAALujON7MmTP18MMPp7izPqvgTlvDYmNj7Y6QZdClOXRpDl2aRZ/m0KU5dGkOXZpFn+bQpTl0aQ5dmkWf5k2bNk2PP/64fvvtN5UvXz7FdhOS1KpVK5uSOc+FCxc0ZcoUfffdd6pYsWKqLseOHWtTMucpV66ctm7dqpo1a6ZY//HHH+Xt7a2oqCibkqUfd9oCAAAAAADghpYsWaJOnTrp9OnTqY5x17JnoqOjr3vM5XJpxYoVtzGNs9WoUUOvvPKKHnzwwRTrCxcu1KhRo/Tjjz/alCz9GNoaduLECZ07d06FCxd2r23fvl1jxozR2bNn1aZNG3Xs2NHGhM5Bl+bQpTl0aRZ9mkOX5tClOXRpFn2aQ5fm0KU5dGkWfZoXGRmp+++/XwMGDFC+fPnsjgNIkkJCQhQTE6PixYunWI+NjVXFihWv+Y8MTuFld4Cs5tlnn01xG3tCQoLuuece/fTTT7p48aK6dOmi2bNn25jQOejSHLo0hy7Nok9z6NIcujSHLs2iT3Po0hy6NIcuzaJP844fP64XX3yRgS0yFX9/fx09ejTV+pEjR+Tj4/BdYS0YFRkZaa1cudL9ePTo0VaJEiWsy5cvux/XrFnTpnTOQpfm0KU5dGkWfZpDl+bQpTl0aRZ9mkOX5tClOXRpFn2a17lzZ2vq1Kl2x3CsBx54wDp16pT78xt9IO0eeughq379+tbJkyfda3///bdVv359q3379jYmSz/utDUsPj5exYoVcz9esWKFHnjgAfd0v1WrVtqzZ49d8RyFLs2hS3Po0iz6NIcuzaFLc+jSLPo0hy7NoUtz6NIs+jSvVKlS6t+/v7p06aK3335bEydOTPGBG8uRI4dcLpf78xt9IO3efvttHTx4UEWLFlV0dLSio6NVrFgxxcfH6+2337Y7Xro4/D7hzCcsLEwnT55U0aJFJUmbNm1St27d3MddLpcuXrxoVzxHoUtz6NIcujSLPs2hS3Po0hy6NIs+zaFLc+jSHLo0iz7NmzZtmkJCQrR69WqtXr06xTGXy6VevXrZlMwZpk+ffs3PkT6FChVSTEyM5syZo23btikwMFBPPPGEHnnkEfn6+todL12409awGjVqaOLEiUpOTtaCBQt0+vRpNWzY0H189+7dKlKkiI0JnYMuzaFLc+jSLPo0hy7NoUtz6NIs+jSHLs2hS3Po0iz6NC82Nva6H3/88Yfd8Rzp2LFjWrdunX744QcdO3bM7jiOFRwcrP/85z969913NWbMGHXu3NnxA1tJ7Glr2pYtW6zcuXNbfn5+lpeXl/X666+nOP7YY49ZTz75pE3pnIUuzaFLc+jSLPo0hy7NoUtz6NIs+jSHLs2hS3Po0iz6zFjJyclWcnKy3TEc68yZM9YTTzxheXt7Wy6Xy3K5XJaPj4/VtWtX6+zZs3bHc5xZs2ZZdevWtQoUKGDt37/fsizLGjt2rLV48WKbk6WPy7Isy+7BcVZz7NgxrV+/Xvnz51fNmjVTHFu6dKnKlSuXYm8dXB9dmkOX5tClWfRpDl2aQ5fm0KVZ9GkOXZpDl+bQpVn0ad6sWbM0evRo937ApUqV0ssvv6xOnTrZnMxZnnzySX333Xd65513VLduXUnSunXr1KtXL9177716//33bU7oHO+//74GDhyoF154QcOGDdP27dtVvHhxzZgxQzNnztTKlSvtjnjr7J4aZzUbN260vvrqqxRrM2fOtCIjI628efNaPXr0sC5cuGBTOmehS3Po0hy6NIs+zaFLc+jSHLo0iz7NoUtz6NIcujSLPs17++23raCgIOuVV16xPv/8c2vx4sXWyy+/bAUFBVljx461O56j5M6d21q5cmWq9RUrVlh58uS5/YEcrGzZstaiRYssy7KskJAQa9++fZZlWdavv/5q5c6d28Zk6cfQ1rCmTZtaI0eOdD+OiYmxfHx8rO7du1tvv/22lT9/fmvQoEH2BXQQujSHLs2hS7Po0xy6NIcuzaFLs+jTHLo0hy7NoUuz6NO8yMhIa+bMmanWZ8yYYUVGRtqQyLkCAwOtHTt2pFr/7bffrKCgIBsSOVdAQIB7S4T/Hdru3r3bCggIsDNaujG0NSx//vzWTz/95H786quvWnXr1nU/nj9/vlW2bFk7ojkOXZpDl+bQpVn0aQ5dmkOX5tClWfRpDl2aQ5fm0KVZ9Gmev7+/tWfPnlTru3fvtvz9/W1I5FwNGza02rdvb50/f969du7cOat9+/ZWo0aNbEzmPGXLlnXvXfu/Q9sJEyZYVatWtTNauvnYvT1DVvP3338rX7587serV69W06ZN3Y+rV6+ugwcP2hHNcejSHLo0hy7Nok9z6NIcujSHLs2iT3Po0hy6NIcuzaJP80qWLKn58+fr1VdfTbE+b9483XnnnTalcqYJEyaoadOmKly4sCpVqiSXy6WtW7cqICBAy5Ytszueo7z88st69tlndeHCBVmWpU2bNmnu3LkaMWKEpk2bZne8dPGyO0BWky9fPsXGxkqSLl26pC1btqh27dru46dPn5avr69d8RyFLs2hS3Po0iz6NIcuzaFLc+jSLPo0hy7NoUtz6NIs+jRvyJAhGjhwoJo2bao33nhDw4YNU9OmTTVkyBANHTrU7niOUr58ee3Zs0cjRoxQ5cqVVbFiRY0cOVJ79uzRXXfdZXc8R3niiSc0aNAgvfLKKzp37pw6duyoyZMna8KECXr44Yftjpcu3GlrWNOmTdWvXz+NGjVKixcvVlBQkO655x738ZiYGJUoUcLGhM5Bl+bQpTl0aRZ9mkOX5tClOXRpFn2aQ5fm0KU5dGkWfZrXrl07/fjjjxo3bpwWL14sy7JUrlw5bdq0SVWqVLE7nuMEBgaqR48edsfIEnr06KEePXror7/+UnJysiIiIuyOZIbd+zNkNQkJCdbdd99tuVwuKzQ01Fq4cGGK4w0bNrReffVVm9I5C12aQ5fm0KVZ9GkOXZpDl+bQpVn0aQ5dmkOX5tClWfSJzOjzzz+/6cfSpUutzZs3WxcvXrQ7LmzmsizLsntwnBWdOnVKISEh8vb2TrF+4sQJhYSEyM/Pz6ZkzkOX5tClOXRpFn2aQ5fm0KU5dGkWfZpDl+bQpTl0aRZ9pt+ff/6psWPHauDAgQoLC0tx7NSpUxo2bJj69OmTYg9hXJuXV9p3Kc2fP7/mzZuX4g5x/KNKlSpyuVxpOnfLli0ZnCbjMLQFAAAAAADANfXp00eJiYmaMmXKNY8/9dRTypEjh0aNGnWbk2VNlmXp6NGjGjZsmNavX+/ooWNGGTJkSJrPHTRoUAYmyVgMbQEAAAAAAHBN5cuX1+TJk3X33Xdf8/j69evVo0cPbd++/TYnc66TJ08qZ86c1zy2d+9elSxZUvv371eZMmV04cKF2xsOmUba78sGAAAAAABAthIbG6s77rjjuscLFy6s/fv3375AWUDz5s11/vz5VOu7du1SgwYNJEmRkZE6evTobU7mTCdPntS0adPUv39/nThxQtI/2yIcPnzY5mTpw9AWAAAAAAAA1xQYGHjDoez+/fsVGBh4+wJlAeHh4XrggQd05coV99rOnTvVoEEDtWvXzr2WI0cOO+I5SkxMjEqVKqVRo0ZpzJgxOnnypCRp0aJF6t+/v73h0omhLQAAAAAAAK6pZs2amj179nWPz5o1SzVq1LiNiZzvs88+09mzZ9WxY0dZlqXffvtNDRo00COPPKIJEybYHc9RevfurS5dumjPnj0KCAhwrzdr1kxr1qyxMVn6+dgdAAAAAAAAAJlTnz59dO+99ypHjhx6+eWXlS9fPknS0aNH9dZbb2nGjBlavny5zSmdJSAgQF9++aUaNGig9u3ba+3atercubNGjx5tdzTH+emnn/TBBx+kWi9UqJDi4+NtSGQOQ1sAAAAAAABcU3R0tN599109//zzGjdunMLCwuRyuXTq1Cn5+vpq0qRJatiwod0xM73ExMQUj10ul+bNm6fGjRurXbt2GjBggPucsLAwOyI6UkBAQKpupX/2B86bN68NicxxWZZl2R0CAAAAAAAAmdfhw4c1f/587d27V5ZlqVSpUnrwwQdVuHBhu6M5gpeXl1wuV6r1q2M5l8sly7LkcrmUlJR0u+M51n/+8x8dO3ZM8+fPV65cuRQTEyNvb2+1adNG9erV0/jx4+2OeMsY2gIAAAAAAOCGTp48qZw5c17z2N69e1WyZMnbG8hhVq9eneZz69evn4FJspbExEQ1b95c27dv1+nTp1WwYEHFx8erdu3a+uqrrxQcHGx3xFvG0BYAAAAAAAA3VKdOHa1YsSLFmz1J//waeqNGjXTo0CGbkjnHlClT1KpVK+XPn9/uKFnOihUrtGXLFiUnJ6tq1apq3Lix3ZHSjaEtAAAAAAAAbqhFixZKSkrSl19+KR+ff94iaefOnWrYsKE6dOigCRMm2Jww84uOjtaGDRtUqVIltW7dWq1bt9Zdd91ldyxkUl52BwAAAAAAAEDm9tlnn+ns2bPq2LGjLMvSb7/9pgYNGuiRRx5hYJtGK1eu1JEjR9SzZ09t3bpVderUUYkSJdS7d2+tWrVKycnJdkd0jB9//FFff/11irVZs2apWLFiioiI0H/+8x9dvHjRpnRmcKctAAAAAAAAburUqVNq0KCBSpQoobVr16pz584aPXq03bEc69KlS1qxYoWWLFmiL774QufOnVOLFi3UqlUrNWvWzNH7sWa0Zs2aqUGDBurbt68k6ddff1XVqlXVpUsXlS1bVqNHj9aTTz6pwYMH2xs0HRjaAgAAAAAAIJXExMRUa/Hx8WrcuLHuv/9+jRw50r0eFhZ2O6NlST///LOWLFmizz//XA8++KAGDBhgd6RMq0CBAvriiy8UFRUlSXrttde0evVqrVu3TpL06aefatCgQdqxY4edMdOFoS0AAAAAAABS8fLyksvlSrV+dZTkcrlkWZZcLpeSkpJud7ws7fLly/L19bU7RqYVEBCgPXv2qEiRIpKku+++W02bNtXrr78uSdq/f78qVKig06dP2xkzXXzsDgAAAAAAAIDMZ+XKlXZHyJIefPBBRUVFqV+/finWR48erZ9++knz589nYHsT+fLlU2xsrIoUKaJLly5py5YtGjJkiPv46dOnHd8hQ1sAAAAAAACkUr9+fU2ZMkWtWrVS/vz57Y6TZaxevVqDBg1Ktd60aVONGTPGhkTO07RpU/Xr10+jRo3S4sWLFRQUpHvuucd9PCYmRiVKlLAxYfp52R0AAAAAAAAAmdPcuXMVGRmpmjVravjw4dq+fbvdkRzvzJkz8vPzS7Xu6+t7zX2EkdqwYcPk7e2t+vXra+rUqZoyZUqKTv/73//qvvvuszFh+rGnLQAAAAAAAK7r77//1tKlS7VkyRItW7ZMefLkUevWrdWqVSvVq1dPXl7cE+iJ6tWrq2XLlho4cGCK9cGDB+uLL77Q5s2bbUrmPKdOnVJISIi8vb1TrJ84cUIhISHXHI47BUNbAAAAAAAApMmlS5e0YsUKLVmyRF988YXOnTunFi1aqFWrVmrWrJmCg4PtjpjpLVmyRO3atVPHjh3VsGFDSdL333+vuXPn6tNPP1WbNm3sDehAe/fu1b59+1SvXj0FBga63yDPyRjaAgAAAAAA4Jb8/PPPWrJkiT7//HM9+OCDGjBggN2RHGHp0qUaPny4tm7dqsDAQFWsWFGDBg1S/fr17Y7mKMePH1eHDh20cuVKuVwu7dmzR8WLF1e3bt2UM2dOvf3223ZHvGUMbQEAAAAAAJBuly9flq+vr90xkI107txZCQkJmjZtmsqWLatt27apePHiWr58uV588UVH78HMpiMAAAAAAAC4oQcffFAjR45MtT569Gh16NBBkhjY4rZbvny5Ro0apcKFC6dYv/POOxUXF2dTKjMY2gIAAAAAAOCGVq9erRYtWqRab9q0qVavXm1DImfJlSuX/vrrL0lSeHi4cuXKdd0PpN3Zs2cVFBSUav2vv/6Sv7+/DYnM8bE7AAAAAAAAADK3M2fOyM/PL9W6r6+vEhMTbUjkLOPGjVNoaKj7c6e/SVZmUa9ePc2aNUtvvPGGJMnlcik5OVmjR49WdHS0zenShz1tAQAAAAAAcEPVq1dXy5YtNXDgwBTrgwcP1hdffKHNmzfblAzZ2Y4dO9SgQQNVq1ZNK1asUKtWrbR9+3adOHFCP/zwg0qUKGF3xFvGnbYAAAAAAAC4oQEDBqhdu3bat2+fGjZsKEn6/vvvNXfuXH366ac2p3MWb29vHTlyRBERESnWjx8/roiICCUlJdmUzHnKlSunmJgYvf/++/L29tbZs2fVtm1bPfvssypQoIDd8dKFO20BAAAAAABwU0uXLtXw4cO1detWBQYGqmLFiho0aJDq169vdzRH8fLyUnx8fKqh7Z9//qkSJUro/PnzNiVDZsKdtgAAAAAAALipFi1aXPPNyJA2EydOlPTPvqvTpk1TSEiI+1hSUpLWrFmjMmXK2BXPMWJiYtJ8bsWKFTMwScbiTlsAAAAAAAAggxUrVkySFBcXp8KFC8vb29t9zM/PT5GRkRo6dKhq1qxpV0RH8PLyksvl0s1Gmi6Xy9FbTTC0BQAAAAAAQCq5cuXS7t27lSdPHoWHh8vlcl333BMnTtzGZM4WHR2thQsXKjw83O4ojhQXF5fmc4sWLZqBSTIW2yMAAAAAAAAglXHjxik0NNT9+Y2Gtki7lStXSpIuXbqk2NhYlShRQj4+jOjSysmDWE9wpy0AAAAAAABwm5w/f17PPfecZs6cKUnavXu3ihcvrl69eqlgwYLq16+fzQmdZdeuXZo0aZJ27twpl8ulMmXKqGfPnipdurTd0dLFy+4AAAAAAAAAyNy8vb2VkJCQav348eMp9mbFzfXr10/btm3TqlWrFBAQ4F5v3Lix5s2bZ2My51mwYIHKly+vzZs3q1KlSqpYsaK2bNmi8uXL69NPP7U7Xrpwpy0AAAAAAABuyMvLS/Hx8YqIiEix/ueff6pEiRI6f/68Tcmcp2jRopo3b55q1aql0NBQbdu2TcWLF9fevXtVtWpVJSYm2h3RMYoXL67HHntMQ4cOTbE+aNAgzZ49W3/88YdNydKPDTMAAAAAAABwTRMnTpQkuVwuTZs2TSEhIe5jSUlJWrNmjcqUKWNXPEc6duxYquG3JJ09e5Z9gz0UHx+vzp07p1p/7LHHNHr0aBsSmcPQFgAAAAAAANc0btw4SZJlWZo8eXKKrRD8/PwUGRmpyZMn2xXPkapXr66lS5eqZ8+ekuQe1E6dOlW1a9e2M5rjNGjQQGvXrlXJkiVTrK9bt0733HOPTanMYGgLAAAAAACAa4qNjZUkRUdHa+HChQoPD7c5kfONGDFCTZs21Y4dO3TlyhVNmDBB27dv14YNG7R69Wq74zlKq1at1LdvX23evFm1atWSJG3cuFGffvqphgwZoiVLlqQ410nY0xYAAAAAAABpcunSJcXGxqpEiRLy8eFewFv166+/asyYMdq8ebOSk5NVtWpV9e3bVxUqVLA7mqN4eXml6TyXy6WkpKQMTmMWQ1sAAAAAAADc0Pnz5/Xcc89p5syZkqTdu3erePHi6tWrlwoWLKh+/frZnBDIWtI2jgYAAAAAAEC21a9fP23btk2rVq1SQECAe71x48aaN2+ejcmcKTk5Wbt379a6deu0Zs2aFB+AxJ62AAAAAAAAuInFixdr3rx5qlWrlvuNsySpXLly2rdvn43JnGfjxo3q2LGj4uLi9O9fgHfir/HbbdOmTVq1apUSEhKUnJyc4tjYsWNtSpV+DG0BAAAAAABwQ8eOHVNERESq9bNnz6YY4uLmnnrqKUVFRWnp0qUqUKAA/aXD8OHD9frrr6t06dLKly9fii6d3itDWwAAAAAAANxQ9erVtXTpUvXs2VPS/w3Epk6dqtq1a9sZzXH27NmjBQsWqGTJknZHcbwJEybov//9r7p06WJ3FOMY2gIAAAAAAOCGRowYoaZNm2rHjh26cuWKJkyYoO3bt2vDhg1avXq13fEcpWbNmtq7dy9DWwO8vLxUt25du2NkCJf1780zAAAAAAAAgH/59ddfNWbMGG3evFnJycmqWrWq+vbtqwoVKtgdLdOLiYlxf75v3z69/vrrevnll1WhQgX5+vqmOLdixYq3O55jvfXWW/rzzz81fvx4u6MYx9AWAAAAAAAAyEBeXl5yuVyp3njsqqvHeCMyzyQnJ6tFixbavXu3ypUrl2oAvnDhQpuSpR/bIwAAAAAAAOCmkpOTtXfvXiUkJCg5OTnFsXr16tmUyhliY2PtjpAl9ezZUytXrlR0dLRy587t+Dcf+1/caQsAAAAAAIAb2rhxozp27Ki4uLhUd4tyd6hn1qxZozp16sjHJ+W9lFeuXNH69esZgHsgNDRUn3zyiVq0aGF3FOMY2gIAAAAAAOCGKleurFKlSmnIkCEqUKBAqjsac+TIYVMy5/H29taRI0cUERGRYv348eOKiIhgAO6BokWLatmyZSpTpozdUYxjaAsAAAAAAIAbCg4O1rZt21SyZEm7oziel5eXjh49qrx586ZY3717t6KiopSYmGhTMueZPn26vvnmG02fPl1BQUF2xzGKPW0BAAAAAABwQzVr1tTevXsZ2qZD27ZtJf2znUSXLl3k7+/vPpaUlKSYmBjVqVPHrniONHHiRO3bt0/58uVTZGRkqjci27Jli03J0o+hLQAAAAAAAFKJiYlxf96zZ0+99NJLio+PV4UKFVINxypWrHi74znO1S0kLMtSaGioAgMD3cf8/PxUq1Yt9ejRw654jtSmTRu7I2QYtkcAAAAAAABAKl5eXnK5XKneeOyqq8d4IzLPDBkyRH369FFwcLDdUZCJMbQFAAAAAABAKnFxcWk+t2jRohmYBMh+2B4BAAAAAAAAqfzvIHbNmjWqU6eOfHxSjpKuXLmi9evXM7T1wNGjR9WnTx99//33SkhISHUnM3ct31iuXLm0e/du5cmTR+Hh4XK5XNc998SJE7cxmVkMbQEAAAAAAHBD0dHROnLkiCIiIlKsnzp1StHR0QwaPdClSxcdOHBAAwYMUIECBW44dERq48aNU2hoqCRp/Pjx9obJQGyPAAAAAAAAgBvy8vLS0aNHlTdv3hTru3fvVlRUlBITE21K5jyhoaFau3atKleubHcUZGLcaQsAAAAAAIBratu2raR/3nSsS5cu8vf3dx9LSkpSTEyM6tSpY1c8RypSpMh139wNaZOcnKzk5OQU23UcPXpUkydP1tmzZ9WqVSvdfffdNiZMP4a2AAAAAAAAuKYcOXJIkizLUmhoqAIDA93H/Pz8VKtWLfXo0cOueI40fvx49evXTx988IEiIyPtjuNI3bp1k6+vr6ZMmSJJOn36tKpXr64LFy6oQIECGjdunD7//HM1b97c5qS3jqEtAAAAAAAArmn69OmSpMjISPXp00fBwcE2J3K+hx56SOfOnVOJEiUUFBQkX1/fFMed/OZZt8sPP/ygd955x/141qxZunLlivbs2aMcOXKob9++Gj16tKOHtuxpCwAAAAAAANwmM2bMuOGbjz3++OO3MY0zBQcH67ffflOxYsUk/bONR6FChTRp0iRJ0o4dO9SgQQMlJCTYGTNduNMWAAAAAAAAN3T06FH16dNH33//vRISElLtyZqUlGRTMufp0qWL3REcLyAgQOfPn3c/3rhxo0aPHp3i+JkzZ+yIZgxDWwAAAAAAANxQly5ddODAAQ0YMEAFChS44Z2iuLEGDRqoa9euat++fYo9gpF2lSpV0uzZszVixAitXbtWR48eVcOGDd3H9+3bp4IFC9qYMP3YHgEAAAAAAAA3FBoaqrVr16py5cp2R3G8l156SXPmzNH58+fVoUMHdevWTbVq1bI7lqOsXLlSzZs3V8GCBXXkyBE98sgj+vDDD93Hn3nmGZ09e1YzZ860MWX6MLQFAAAAAADADZUrV05z5sxRlSpV7I6SJSQlJenLL7/U9OnT9dVXX6lkyZLq2rWrOnXqpHz58tkdzxF27Nihb7/9Vvnz51f79u3l5eXlPjZlyhTVqFHD0f/IwNAWAAAAAAAAN7R8+XK9/fbb+uCDDxQZGWl3nCzl2LFj+uCDD/Tmm28qKSlJzZs3V69evVL8uj+u7eTJk8qZM+c1j+3du1clS5a8vYEMYmgLAAAAAACAGwoPD9e5c+d05coVBQUFydfXN8XxEydO2JTM2TZt2qTp06dr7ty5ypEjh7p06aIjR45ozpw5evrppzVmzBi7I2ZqderU0YoVKxQQEJBifdeuXWrUqJEOHTpkU7L0443IAAAAAAAAcEPjxo3jzccMSUhI0OzZszV9+nTt2bNHLVu21CeffKImTZq4O+7QoYPatGnD0PYmwsPD1aZNG3355Zfy8flnzLlz5041bNhQHTp0sDld+nCnLQAAAAAAAHCb+Pn5qUSJEuratau6dOmivHnzpjonMTFRrVu31sqVK21I6BwXLlzQvffeqwIFCmjevHnavn27GjVqpEcffVRjx461O166MLQFAAAAAADADTVo0EBdu3ZV+/btFRgYaHccR1uzZo2qVaum4OBgSVJcXJwWLVqksmXLqkmTJjanc55Tp06pQYMGKlGihNauXavOnTtr9OjRdsdKN4a2AAAAAAAAuKGXXnpJc+bM0fnz59WhQwd169ZNtWrVsjuWI913331q27atnnrqKZ08eVKlS5eWn5+f/vrrL40dO1ZPP/203REztcTExFRr8fHxaty4se6//36NHDnSvR4WFnY7oxnF0BYAAAAAAAA3lZSUpC+//FLTp0/XV199pZIlS6pr167q1KmT8uXLZ3c8x8iTJ49Wr16tu+66S9OmTdOkSZP0yy+/6LPPPtPAgQO1c+dOuyNmal5eXtfcX/nqiNPlcsmyLLlcLiUlJd3ueMYwtAUAAAAAAIBHjh07pg8++EBvvvmmkpKS1Lx5c/Xq1UsNGza0O1qmFxQUpN9//1133HGHOnTooLvuukuDBg3SwYMHVbp0aZ07d87uiJna6tWr03xu/fr1MzBJxvKxOwAAAAAAAACcY9OmTZo+fbrmzp2riIgIdenSRUeOHFHLli319NNPa8yYMXZHzNRKliypxYsX64EHHtCyZcv04osvSpISEhIc/ev8t0v9+vU1ZcoUtWrVSvnz57c7TobhTlsAAAAAAADcUEJCgmbPnq3p06drz549atmypbp3764mTZq4f1X9u+++U5s2bXTmzBmb02ZuCxYsUMeOHZWUlKRGjRpp+fLlkqQRI0ZozZo1+vrrr21OmPlFR0drw4YNqlSpklq3bq3WrVvrrrvusjuWUQxtAQAAAAAAcEN+fn4qUaKEunbtqi5duihv3rypzklMTFTr1q21cuVKGxI6S3x8vI4cOaJKlSrJy8tL0j93MIeFhalMmTI2p3OGv//+W0uXLtWSJUu0bNky5cmTR61bt1arVq1Ur149d69OxdAWAAAAAAAAN7RmzRpVq1ZNwcHBkqS4uDgtWrRIZcuWVZMmTWxOh+zu0qVLWrFihZYsWaIvvvhC586dU4sWLdSqVSs1a9bM/efWSRjaAgAAAAAA4Ibuu+8+tW3bVk899ZROnjyp0qVLy8/PT3/99ZfGjh2rp59+2u6IgNvPP/+sJUuW6PPPP9eDDz6oAQMG2B3JYwxtAQAAAAAAcEN58uTR6tWrddddd2natGmaNGmSfvnlF3322WcaOHCgdu7caXdE4JouX74sX19fu2N4zNmbOwAAAAAAACDDnTt3TqGhoZKk5cuXq23btvLy8lKtWrUUFxdnczpkVw8++KBGjhyZan306NHq0KGDJDlyYCsxtAUAAAAAAMBNlCxZUosXL9bBgwe1bNky3XfffZKkhIQEhYWF2ZwO2dXq1avVokWLVOtNmzbV6tWrbUhkDkNbAAAAAAAA3NDAgQPVp08fRUZGqmbNmqpdu7akf+66rVKlis3pkF2dOXNGfn5+qdZ9fX2VmJhoQyJzGNoCAAAAAADghh588EEdOHBAP//8s7755hv3eqNGjTRu3DgbkyE7K1++vObNm5dq/ZNPPlG5cuVsSGQOb0QGAAAAAAAAwHGWLFmidu3aqWPHjmrYsKEk6fvvv9fcuXP16aefqk2bNvYGTAeGtgAAAAAAAAAcaenSpRo+fLi2bt2qwMBAVaxYUYMGDVL9+vXtjpYuDG0BAAAAAAAAIBNhT1sAAAAAAAAAyER87A4AAAAAAAAAAGmRK1cu7d69W3ny5FF4eLhcLtd1zz1x4sRtTGYWQ1sAAAAAAAAAjjBu3DiFhoa6P7/R0NbJ2NMWAAAAAAAAADIR9rQFAAAAAAAA4Dje3t5KSEhItX78+HF5e3vbkMgchrYAAAAAAAAAHOd6GwhcvHhRfn5+tzmNWexpCwAAAAAAAMAxJk6cKElyuVyaNm2aQkJC3MeSkpK0Zs0alSlTxq54RrCnLQAAAAAAAADHKFasmCQpLi5OhQsXTrEVgp+fnyIjIzV06FDVrFnTrojpxtAWAAAAAAAAgONER0dr4cKFCg8PtzuKcQxtAQAAAAAAADjWpUuXFBsbqxIlSsjHJ2vsBssbkQEAAAAAAABwnPPnz6tbt24KCgrSXXfdpQMHDkiSevXqpZEjR9qcLn0Y2gIAAAAAAABwnH79+mnbtm1atWqVAgIC3OuNGzfWvHnzbEyWflnjfmEAAAAAAAAA2crixYs1b9481apVSy6Xy71erlw57du3z8Zk6cedtgAAAAAAAAAc59ixY4qIiEi1fvbs2RRDXCdiaAsAAAAAAADAcapXr66lS5e6H18d1E6dOlW1a9e2K5YRbI8AAAAAAAAAwHFGjBihpk2baseOHbpy5YomTJig7du3a8OGDVq9erXd8dKFO20BAAAAAAAAOE6dOnX0ww8/6Ny5cypRooSWL1+ufPnyacOGDapWrZrd8dLFZVmWZXcIAAAAAAAAAMA/2B4BAAAAAAAAgCMlJydr7969SkhIUHJycopj9erVsylV+jG0BQAAAAAAAOA4GzduVMeOHRUXF6d/bybgcrmUlJRkU7L0Y3sEAAAAAAAAAI5TuXJllSpVSkOGDFGBAgXkcrlSHM+RI4dNydKPoS0AAAAAAAAAxwkODta2bdtUsmRJu6MY52V3AAAAAAAAAADwVM2aNbV37167Y2QI9rQFAAAAAAAA4AgxMTHuz3v27KmXXnpJ8fHxqlChgnx9fVOcW7Fixdsdzxi2RwAAAAAAAADgCF5eXnK5XKneeOyqq8ec/kZk3GkLAAAAAAAAwBFiY2PtjnBbMLQFAAAAAAAA4AhFixZ1f75mzRrVqVNHPj4pR5xXrlzR+vXrU5zrNGyPAAAAAAAAAMBxvL29deTIEUVERKRYP378uCIiIhy9PYKX3QEAAAAAAAAAwFNX9679t+PHjys4ONiGROawPQIAAAAAAAAAx2jbtq2kf950rEuXLvL393cfS0pKUkxMjOrUqWNXPCMY2gIAAAAAAABwjBw5ckj6507b0NBQBQYGuo/5+fmpVq1a6tGjh13xjGBPWwAAAAAAAACOM2TIEPXp08fxWyFcC0NbAAAAAAAAAMhEeCMyAAAAAAAAAI5z9OhRderUSQULFpSPj4+8vb1TfDgZe9oCAAAAAAAAcJwuXbrowIEDGjBggAoUKCCXy2V3JGPYHgEAAAAAAACA44SGhmrt2rWqXLmy3VGMY3sEAAAAAAAAAI5TpEgRZdX7URnaAgAAAAAAAHCc8ePHq1+/ftq/f7/dUYxjewQAAAAAAAAAjhMeHq5z587pypUrCgoKkq+vb4rjJ06csClZ+vFGZAAAAAAAAAAcZ9y4cVnqzcf+F3faAgAAAAAAAEAmwp62AAAAAAAAABynQYMGmjVrls6fP293FOMY2gIAAAAAAABwnGrVqumVV15R/vz51aNHD23cuNHuSMYwtAUAAAAAAADgOG+//bYOHz6sWbNm6dixY6pXr57KlSunMWPG6OjRo3bHSxf2tAUAAAAAAADgeMeOHdMHH3ygN998U0lJSWrevLl69eqlhg0b2h3NY9xpCwAAAAAAAMDRNm3apIEDB2rMmDGKiIhQ//79FRERoZYtW6pPnz52x/MYd9oCAAAAAAAAcJyEhATNnj1b06dP1549e9SyZUt1795dTZo0kcvlkiR99913atOmjc6cOWNzWs/42B0AAAAAAAAAADxVuHBhlShRQl27dlWXLl2UN2/eVOfUqFFD1atXtyFd+nCnLQAAAAAAAADHWbNmjapVq6bg4GBJUlxcnBYtWqSyZcuqSZMmNqdLH4a2AAAAAAAAABznvvvuU9u2bfXUU0/p5MmTKl26tPz8/PTXX39p7Nixevrpp+2OeMt4IzIAAAAAAAAAjrNlyxbdc889kqQFCxYof/78iouL06xZszRx4kSb06UPQ1sAAAAAAAAAjnPu3DmFhoZKkpYvX662bdvKy8tLtWrVUlxcnM3p0oehLQAAAAAAAADHKVmypBYvXqyDBw9q2bJluu+++yRJCQkJCgsLszld+jC0BQAAAAAAAOA4AwcOVJ8+fRQZGamaNWuqdu3akv6567ZKlSo2p0sf3ogMAAAAAAAAgCPFx8fryJEjqlSpkry8/rk/ddOmTQoLC1OZMmVsTnfrGNoCAAAAAAAAQCbC9ggAAAAAAAAAkIkwtAUAAAAAAACATIShLQAAAAAAAABkIgxtAQAAAAAAACATYWgLAAAAAAAAAJkIQ1sAAABkKQcPHlS3bt1UsGBB+fn5qWjRonr++ed1/Phxu6MBAAAAacLQFgAAAFnGH3/8oaioKO3evVtz587V3r17NXnyZH3//feqXbu2Tpw4kWHPfenSpQy7NgAAALIXhrYAAADIMp599ln5+flp+fLlql+/vu644w41a9ZM3333nQ4fPqzXXntNkuRyubR48eIUX5szZ07NmDHD/fjw4cN66KGHFB4erty5c6t169bav3+/+3iXLl3Upk0bjRgxQgULFlSpUqU0dOhQVahQIVWuatWqaeDAgRnxLQMAACALYmgLAACALOHEiRNatmyZnnnmGQUGBqY4lj9/fj366KOaN2+eLMu66bXOnTun6OhohYSEaM2aNVq3bp1CQkLUtGnTFHfUfv/999q5c6e+/fZbffnll+ratat27Nihn376yX1OTEyMfvnlF3Xp0sXY9woAAICszcfuAAAAAIAJe/bskWVZKlu27DWPly1bVn///beOHTt202t98skn8vLy0rRp0+RyuSRJ06dPV86cObVq1Srdd999kqTg4GBNmzZNfn5+7q9t0qSJpk+frurVq7u/rn79+ipevHh6v0UAAABkE9xpCwAAgGzh6h22/ztgvZ7Nmzdr7969Cg0NVUhIiEJCQpQrVy5duHBB+/btc59XoUKFVNfr0aOH5s6dqwsXLujy5cuaM2eOunbtavabAQAAQJbGnbYAAADIEkqWLCmXy6UdO3aoTZs2qY7//vvvyps3r3LmzCmXy5Vqm4TLly+7P09OTla1atU0Z86cVNfJmzev+/Pg4OBUx1u2bCl/f38tWrRI/v7+unjxotq1a5eO7wwAAADZDUNbAAAAZAm5c+fWvffeq/fee08vvvhiin1t4+PjNWfOHD377LOS/hm8HjlyxH18z549OnfunPtx1apVNW/ePEVERCgsLMyjHD4+Pnr88cc1ffp0+fv76+GHH1ZQUFA6vzsAAABkJ2yPAAAAgCzjnXfe0cWLF9WkSROtWbNGBw8e1DfffKN7771XpUqV0sCBAyVJDRs21DvvvKMtW7bo559/1lNPPSVfX1/3dR599FHlyZNHrVu31tq1axUbG6vVq1fr+eef16FDh26ao3v37lqxYoW+/vprtkYAAACAxxjaAgAAIMu488479dNPP6l48eLq0KGDihYtqmbNmqlUqVL64YcfFBISIkl6++23VaRIEdWrV08dO3ZUnz59UtwNGxQUpDVr1uiOO+5Q27ZtVbZsWXXt2lXnz59P0523d955p+rUqaPSpUurZs2aGfb9AgAAIGtyWf/ezAsAAADIQgYNGqSxY8dq+fLlql279m15TsuyVKZMGT355JPq3bv3bXlOAAAAZB3saQsAAIAsbciQIYqMjNSPP/6omjVryssrY3/ZLCEhQbNnz9bhw4f1xBNPZOhzAQAAIGviTlsAAADAIJfLpTx58mjChAnq2LGj3XEAAADgQNxpCwAAABjEPREAAABIL96IDAAAAAAAAAAyEYa2AAAAAAAAAJCJMLQFAAAAAAAAgEyEoS0AAAAAAAAAZCIMbQEAAAAAAAAgE2FoCwAAAAAAAACZCENbAAAAAAAAAMhEGNoCAAAAAAAAQCbC0BYAAAAAAAAAMpH/B/rEaQ0o4+pSAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "speedup = (wide[\"Naive\"] / wide[\"Optimized\"]).sort_index()\n", + "ax = speedup.plot.bar(figsize=(14, 4))\n", + "ax.axhline(1.0, color=\"black\", linewidth=1)\n", + "ax.set_ylabel(\"Speedup, Naive / Optimized\")\n", + "ax.set_xlabel(\"Query\")\n", + "ax.set_title(\"Optimizer speedup\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "4ee5fc7c", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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n332mY4eParRo0frt99+y9oPxIasLvLeeOMN9e/fX/Pnz9eePXt04MABix8AAAAA/z0BAQHau3evGjZsqDfffFOVKlVSaGio1q9fb17gpFq1apo6daree+89VapUSQsXLtTEiRMtxilbtqzWrl2r/fv3q2bNmgoJCdH333+vfPkyNwnRZDIpMjJS9erVU48ePVS2bFm99NJLOnXqlAoXLizp71X+R40apbfffltBQUE6ffq0+vbt+8Bx700HzWwOW7J6dc37HzQu/f1B5qWFV1hdMzVW1/wfVte8D6trAgCQpR60uiJsZ8eOHQoJCdHFixdVqFChbHsfm6yuefLkSeuTAgAAAEAulJSUpFOnTun9999X1apVs7XAyypWF3n3HlQOAAAAAHndwYMHVbt2bVWrVk0LFiywdZxMyfkTSgEAAADARqpVq6bbt2/bOoZVrF54BQAAAACQc3ElDwCA7DbG09YJchYWbAKAbEWRBwDIFqzK+z+nWBwPAPAIMV0TAAAAAPKQLC3yAgIC1LNnT507dy4rhwUAAAAAZFKWFnldu3ZVSkqK6tWrl5XDAgAAAAAyKUvvyRszZkxWDgcAAAAAecr8+fM1YMAAXbt2Ldve46GLvDt37ujkyZMqVaqU8uVj/RYAAAAgWz3qlXofYiXcbt266dq1a/ruu+8y1d9kMunbb79VmzZtrH6vR+lRFGZZyerpmrdv31bPnj3l4uKixx9/XDExMZKksLAwTZo0KcsDAgAAAMCD3L1796H2S05OVkpKShansT2ri7yhQ4dq//792rhxo5yc/rcm9DPPPKOlS5dmaTgAAAAAuVODBg0UFhamwYMHq2DBgvLz87O4vatkyZKSpLZt28pkMplfS9KKFSsUFBQkJycnBQYGauzYsUpKSjJvN5lMmjVrllq3bi1XV1e988472rhxo0wmk1atWqWqVavKyclJtWrV0q+//mreb/78+fLy8tLKlStVsWJFOTo66vTp07pz544GDx6sYsWKydXVVbVq1dLGjRslSRs3blT37t11/fp1mUwmmUwm83E8aL9/vmeJEiXk4uKitm3b6vLly1n5MafJ6iLvu+++0/Tp0/XUU0/JZDKZ2ytWrKg//vgjS8MBAAAAyL0+//xzubq6aufOnZo8ebLGjRundevWSZJ27dolSZo3b55iY2PNr9esWaNOnTopLCxMhw4d0ieffKL58+drwoQJFmOPHj1arVu31q+//qoePXqY29966y1NmTJFu3btkq+vr1q1amVxpe/27duaOHGi5syZo99++02+vr7q3r27tm7dqiVLlujAgQN64YUX1LRpUx07dky1a9dWRESEPDw8FBsbq9jYWA0aNEiSHrifJO3cuVM9evRQv379tG/fPjVs2FDvvPNO9n3g/5/VN9NdvHhRvr6+qdpv3bplUfQBAAAA+G+rUqWKRo8eLUkqU6aMpk+frvXr1ys0NFQ+Pj6SJC8vL/n5+Zn3mTBhgoYMGaKuXbtKkgIDAzV+/HgNHjzYPJYkdejQwaK4O3nypKS/i7/Q0FBJfxeZjz32mL799lu9+OKLkv6e2jljxgxVrVpVkvTHH39o8eLFOnv2rIoWLSpJGjRokFavXq158+bp3Xfflaenp0wmk0XOzOz30UcfqUmTJhoyZIgkqWzZstq2bZtWr16dVR9xmqwu8p544gmtWrVKb7zxhiSZC7tPP/1UISEhWZsOAAAAQK5VpUoVi9dFihTRhQsXHrjPnj17tGvXLosrd8nJyUpISNDt27fl4uIiSQoODk5z/3/WJAULFlS5cuV0+PBhc5uDg4NFrr1798owDJUtW9ZinMTERHl7e6ebMzP7HT58WG3btk2VL8cVeRMnTlTTpk116NAhJSUl6aOPPtJvv/2m7du3a9OmTdmREQAAAEAulD9/fovXJpMpw4VOUlJSNHbsWLVr1y7Vtn+uCeLq6prpHP+ccejs7GzxOiUlRfb29tqzZ4/s7e0t9nNzc3tgzoz2Mwwj0xmzktVFXu3atbV161ZNmTJFpUqV0tq1a1WjRg1t375dlStXzo6MAAAAAPKg/PnzKzk52aKtRo0aOnLkiEqXLv1QY+7YsUMlSpSQJF29elVHjx5V+fLl0+1fvXp1JScn68KFC6pbt26afRwcHFLlzMx+FStW1I4dO1Lly24P9YC7ypUr6/PPP8/qLAAAAAD+Q0qWLKn169erTp06cnR0VIECBTRq1Ci1aNFCxYsX1wsvvCA7OzsdOHBAv/76a6YWLRk3bpy8vb1VuHBhDR8+XIUKFXrgc/jKli2rjh07qkuXLvrggw9UvXp1Xbp0SRs2bFDlypXVvHlzlSxZUjdv3tT69etVtWpVubi4ZGq/sLAw1a5dW5MnT1abNm20du3abJ+qKT3E6pr3XLhwQQcPHtSBAwcsfgAAAAAgMz744AOtW7dOxYsXV/Xq1SVJTZo00cqVK7Vu3To98cQTevLJJzV16lT5+/tnasxJkyapf//+CgoKUmxsrH744Qc5ODg8cJ958+apS5cuevPNN1WuXDm1atVKO3fuVPHixSX9PZuxT58+at++vXx8fDR58uRM7ffkk09qzpw5+r//+z9Vq1ZNa9eu1YgRIx7248o0k2HlRNE9e/aoa9euOnz4cKo5piaTKdVlzNwoPj5enp6eun79ujw8PGwdJ0coOWSVrSPkGKecOtg6Qs4y5rqtEyCH4rzxP5w37sN5A3ighIQEnTx5UgEBARb3oOHBNm7cqIYNG+rq1avy8vKydZyH9qA//8zWKVZfyevevbt56c8TJ07o5MmT5p8TJ05YfRAzZswwH0BQUJA2b978wP6bNm2yeDDirFmzUvW5du2aXnvtNRUpUkROTk6qUKGCIiMjrc4GAAAAALmN1ffknTx5UsuXL3/oGyH/aenSpRowYIBmzJihOnXq6JNPPlGzZs106NAh882S97938+bN1bt3b3355ZfaunWr+vXrJx8fHz333HOS/n7qfGhoqHx9ffXNN9/oscce05kzZ+Tu7v6v8wIAAABATmd1kff0009r//79WVLkTZ06VT179lSvXr0kSREREVqzZo1mzpypiRMnpuo/a9YslShRQhEREZKkChUqaPfu3ZoyZYq5yPvss8905coVbdu2zbxka2bn7wIAAADInRo0aGCzRxbkNFYXeXPmzFHXrl118OBBVapUKdWzL1q1apWpce7cuaM9e/aYn/5+T+PGjbVt27Y099m+fbsaN25s0dakSRPNnTtXd+/eVf78+fXDDz8oJCREr732mr7//nv5+PioQ4cOevvtt1M9v+KexMREJSYmml/Hx8dn6hgAAAAAIKexusjbtm2btmzZoh9//DHVNmsWXrl06ZKSk5NVuHBhi/bChQsrLi4uzX3i4uLS7J+UlKRLly6pSJEiOnHihDZs2KCOHTsqMjJSx44d02uvvaakpCSNGjUqzXEnTpyosWPHZio3AAAAAORkVi+8EhYWps6dOys2NlYpKSkWPw+zsuY/nzYv/f1U+PvbMur/z/aUlBT5+vpq9uzZCgoK0ksvvaThw4dr5syZ6Y45dOhQXb9+3fxz5swZq48DAAAAyEopKSm2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "jit = synthetic[synthetic[\"mode\"] == \"Optimized\"].copy()\n", + "jit[\"executor\"] = jit[\"executor\"].replace({\n", + " \"InterpretedExpressionExecutor\": \"Interpreted\",\n", + " \"CachedJitCompiledExpressionExecutor\": \"Cached JIT\",\n", + "})\n", + "ax = jit.pivot(index=\"query\", columns=\"executor\", values=\"time_ms\").plot.bar(figsize=(9, 4))\n", + "ax.set_ylabel(\"Execution time, ms\")\n", + "ax.set_xlabel(\"Query\")\n", + "ax.set_title(\"Expression evaluation for optimized plans\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "bbe140d5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ww9z++23k5aWRkZGBi+//DIHDhzgvvvu82PUIs2j8S6dica7dBYa63JWftzZU8SvPvvsMwM44z933nlnfZ958+YZycnJRlBQkDFy5Ehj9erV/gtYpAU03qUz0XiXzkJjXc7GYhiG0bZppYiIiIiIiLQWrckTERERERHpQJTkiYiIiIiIdCBK8kRERERERDoQJXkiIiIiIiIdiJI8ERERERGRDkRJnoiIiIiISAeiJE9ERERERKQDUZInIiIiIiLSgSjJExERERER6UCU5ImIiIiIiHQgSvJERKTDuuuuu7j22mvb/Lmvv/46UVFRbf5cERERUJInIiLSbtTW1vo7BBER6QCU5ImISKcxceJEHnzwQX7xi18QExNDly5d+PWvf92gj8Vi4aWXXmL69OmEhISQkpLCe++9V//1rKwsLBYLJSUl9W2bNm3CYrGwb98+srKyuPvuuyktLcVisWCxWM54xkm//vWvGTFiBK+99hq9e/fGbrdjGAYHDhzgmmuuITw8nMjISG688Uby8/MBKC0txWazkZOTA4BhGMTExJCenl5/37fffpuuXbsCUFNTwwMPPEDXrl0JDg6mV69ePPXUUz74aYqISHulJE9ERDqVN954g7CwML7++mueffZZfvOb37By5coGff7zP/+T2bNn880333Dbbbdxyy23sH379ibdPzMzk+eee47IyEiOHj3K0aNHeeSRR87af/fu3bz77rt88MEHbNq0CYBrr72WoqIiVq9ezcqVK9mzZw833XQTAA6HgxEjRpCVlQXAt99+W//fTqcTMBPRCRMmAPCXv/yFRYsW8e677/Ldd9/x1ltv0atXr6b+uERE5CIU4O8ARERE2tKwYcN44oknAOjXrx8vvPACn376KVdeeWV9nxtuuIG5c+cC8Nvf/paVK1fy/PPP8+KLL573/kFBQTgcDiwWC126dDlv/5qaGt58803i4+MBWLlyJd9++y15eXkkJSUB8OabbzJ48GCys7NJT09n4sSJZGVl8bOf/YysrCwmT57M3r17+eKLL7jqqqvIysriP/7jPwA4cOAA/fr1Y+zYsVgsFpKTky/sByYiIhcdVfJERKRTGTZsWIPXXbt2paCgoEFbRkbGGa+bWsm7UMnJyfUJHsD27dtJSkqqT/AAUlNTiYqKqo9h4sSJrFmzBq/Xy+rVq5k4cSITJ05k9erVHDt2jJ07d9ZX8u666y42bdrEgAEDePDBB/n4449b5fsQEZH2Q0meiIh0KoGBgQ1eWywWvF7vea+zWCwAWK3mW6dhGPVfa8mGKWFhYQ1eG4ZR/6yztY8fP56ysjJyc3NZs2YNEydOZMKECaxevZrPPvuMhIQEBg0aBMDIkSPJy8vjt7/9LVVVVdx4443MmTOn2fGKiEj7pyRPRETk33z11VdnvB44cCBAfdXt6NGj9V8/uZbupKCgIDweT7OenZqayoEDBzh48GB927Zt2ygtLa1P3E6uy3vhhRewWCykpqYybtw4Nm7cyOLFi+ureCdFRkZy00038corrzB//nw++OADioqKmhWfiIi0f0ryRERE/s17773Ha6+9xs6dO3niiSdYv349DzzwAAB9+/YlKSmJX//61+zcuZMlS5bwP//zPw2u79WrF+Xl5Xz66accP36cysrKJj/7iiuuYNiwYXzve98jNzeX9evXc8cddzBhwgTS0tLq+02cOJG33nqLCRMmYLFYiI6OJjU1lfnz5zNx4sT6fn/6059455132LFjBzt37uS9996jS5cuOsdPRKQDU5InIiLyb5588kneeecdhg0bxhtvvME///lPUlNTAXO659tvv82OHTsYPnw4zzzzDP/93//d4PrMzEzuu+8+brrpJuLj43n22Web/GyLxcLChQuJjo5m/PjxXHHFFfTu3Zv58+c36Ddp0iQ8Hk+DhG7ChAl4PJ4Glbzw8HCeeeYZ0tLSSE9PZ9++fSxdurR+2qmIiHQ8FuP0RQUiIiKdnMViYcGCBVx77bX+DkVERKRZ9DGeiIiIiIhIB6IkT0REREREpAPRYegiIiKn0SoGERG52KmSJyIiIiIi0oEoyRMREREREelAlOSJiIiIiIh0IEryREREREREOhAleSIiIiIiIh2IkjwREREREZEOREmeiIiIiIhIB6IkT0REREREpAP5/7dSMsNt2IhtAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(9, 5))\n", + "for name, group in operator.groupby(\"operator\"):\n", + " group = group.sort_values(\"input_rows\")\n", + " ax.plot(group.input_rows, group.time_ms, marker=\"o\", label=name)\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xlabel(\"Input rows\")\n", + "ax.set_ylabel(\"Execution time, ms\")\n", + "ax.set_title(\"Physical operator scaling\")\n", + "ax.legend()\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "cde81524", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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bHnMarp58yb69esHuVyO5ORkdOrUCcnJyXBzc8Pvv/8OD4/a9Q+vWq2Go6MjcnJyoFQqTZ0OERE9QBSl0tU21YWwV5ZO0eQIHhER1VfVrV30LvIA4P79+/jhhx9w8uRJiKKIoKAgvPzyy7C1tX2ipE2BRR4REREREdUGRivybt26BU9PzwrPnT17Fm3b1q7FQljkERERERFRbVDd2kXvZ/LatGmD7du3l2v/+OOP0bVrV30vR0RERERERAakd5E3e/ZsjB49Gq+//jru37+PGzduoH///vjoo4+wdetWY+RIRERERERE1aR3kffOO+/g6NGjOHz4MNq2bYu2bdvC1tYWZ8+exbBhw4yRIxEREREREVWT3kUeADRp0gSBgYG4evUq1Go1Ro0aVelzekRERI9N1AApB4FzP5b+Vyy/TysRERHp0nsz9MOHD2Ps2LFwdXXF2bNncfjwYUydOhX//e9/sWHDBjg7OxsjTyIiqm8StwMxswH1zb/blA2A0BWAijNHiIiIKqP3SF7//v0xevRoHDlyBAEBAXjttddw+vRp/PXXX2jTpo0xciQiovomcTsQNV63wAMAdVppe2L5BcCIiIiolN4jebt370afPn102po2bYpDhw5hyZIlBkuMiIjqKVFTOoKHinb4kQAIQMwcoNXTgExew8kRERGZP71H8h4u8LQXksnw/vvvP3FCRERUz6XGlR/B0yEB6hulcURERFROtYu8IUOGICcnR3u8ZMkSZGdna4+zsrKgUqkMmhwREdVDubd0DiURyLtlhZxUW+TdsoIkVhxHREREpao9XfPXX39FYWGh9njFihUYM2YMnJycAAAlJSW4ePGiwRMkIqJ6RvH3as3q6za4dcoRJff/npZpYauBZ1AOlAqu6kxERFSRao/kSZJU5TEREZFB+PUAlA2gvm6LG4edUXJf95+qkvsy3DjsAvWlPBMlSEREZN4ea588IiIio5HJIYUsw61Tyv81CA8FlB7fWrYCkob75hERET2s2kWeIAgQBKFcW20VEREBlUqFzp07mzoVIiJ6SH5+g/9N0az835mS9HTknzhZc0kRERHVEtV+Jk+SJISHh8Pa2hoAUFBQgNdffx329vYAoPO8Xm0wZcoUTJkyBWq1Go6OjqZOh4iIHnDy9CW4VyOuJDPT6LkQERHVNtUu8sLCwnSOx44dWy5m/PjxT54RERHVaxpRwtdJ9zC7GrEW7tUpBYmIiOqXahd5mzZtMmYeREREAIBjKXfwu01DTLBxhGtBToXPFYgA4OYBu04dazg7IiIi88eFV4iIyKxk3CuAKMiwvu0ICPhfQfcAEaVP6qWPfwOCXF7+AkRERPUcizwiIjIrHg42AIC4Bm3wYZcwZNnoPjd929YJH3YJg92AEFOkR0REZPaqPV2TiIioJnTxd4G3ow3ScwoQ16ANjnoHIvD2n3ApvIc71g5IdGsCDyc7dPF3MXWqREREZokjeUREZFbkMgELhqoAlE7LFAUZzrk3w4GGHXDevRlEQYYFQ1WQy2rvNj5ERETGxCKPiIjMTmhrb6wbGwQvRxuddi9HG6wbG4TQ1t4myoyIiMj8cbomERGZpdDW3ghReeFYyh1k3CuAh4MNuvi7cASPiIjoEVjkERGR2ZLLBHRv6mrqNIiIiGoVTtckIiIiIiKqQ1jkERERERER1SEs8oiIiIiIiOoQFnlERERERER1CIs8IiIiIiKiOoRFHhERERERUR3CIo+IiIiIiKgOYZFHRERERERUh3AzdCIiMlsaUYNTGaeQmZ8Jdzt3BHkEQS6TmzotIiIis8Yij4iIzNLe1L1YEb8C7rcd4FLiiDsWOch0u4fZXWcj2C/Y1OkRERGZLRZ5RERkdvam7sWP2zdj5a2pcC9x1rZn3ryLDbc2A8PAQo+IiKgSfCaPiIjMikbUYM+v0XjvxkS4lTjpnHMtccJ7NyZi76//gUbUmCZBIiIiM8cij4iIzMqp9JN48dpAAIAAQeecDAIkAKOuBeNU+kkTZEdERGT+WOQREZFZyf/zLtxLnMsVeGVkEOBR4oL8P+/WcGZERES1A5/Jo3pLFEWkpqYiNzcXCoUCfn5+kMn4ew8iU3MpcQRQXM04IiIiehiLPKqXEhMTERMTA7VarW1TKpUIDQ2FSqUyYWZE1LRhC9zBhWrFERERUXkctqB6JzExEVFRUToFHgCo1WpERUUhMTHRRJkREQDYNnFGsb0EEVKF50VIKFZIsG3iXOF5IiKi+o5FHtUroigiJiamypiYmBiIolhDGRHRwwSZAK+RKghAuUJPhAQBgNcIFQRZxc/sERER1Xcs8qheSU1NLTeC9zC1Wo3U1NQayoiIKmLb2g1uY1WwUFrrtFs4WsNtrAq2rd1MlBkREZH54zN5VK/k5uYaNI6IjMe2tRtsVK4oTMmBeK8IMgcrWPs7cgSPiIjoEVjkUb2iUCgMGkdExiXIBNg0dTJ1GkRERLUKp2tSveLn5welUllljFKphJ+fXw1lRERERERkWCzyqF6RyWQIDQ2tMiY0NJT75RERERFRrVUnfpLduXMnWrZsiebNm+Of//ynqdMhM6dSqTBq1KhyI3p2NvYIfupptGoVYKLMiIiIiIienCBJUsUbEdUSJSUlUKlU2L9/P5RKJYKCghAfHw8XF5dqvV+tVsPR0RE5OTmPnMZHdYsoijiy7wxO77+C4lwZLIscIUCAvZM1eo1ujqYdPEydIhERERGRVnVrl1o/knfs2DEEBgbCx8cHDg4OGDJkCH799VdTp0W1QMqZ20jYdhfCHRdYFTlBQOmKfXnZhYjZcB5XTmeYOEMiIiIiIv2ZvMj7/fffMXToUDRo0ACCICA6OrpczBdffAF/f3/Y2NigY8eOOHjwoPbczZs34ePjoz1u2LAhbty4UROpUy0mihIObk2uMuZQVDJEsVYPdBMRERFRPWTyIi8vLw/t2rXD559/XuH5rVu3Yvr06Xjvvfdw+vRp9OrVC4MHD8a1a9cAABXNNhUE7qFEVUtLzkZedmGVMbl3C5GWnF0zCRERERERGYjJ98kbPHgwBg8eXOn5VatW4dVXX8Vrr70GAFi9ejV+/fVXrFu3DsuWLYOPj4/OyN1ff/2Frl27Vnq9wsJCFBb+/cO9Wq02wF1QbZOnrrrA0zeOiIiIiMhcmHwkrypFRUU4efIkBg4cqNM+cOBAxMXFAQC6dOmC8+fP48aNG7h37x527dqFQYMGVXrNZcuWwdHRUfvy9fU16j2QebJXWhs0joiIiIjIXJh1kXf79m1oNBp4enrqtHt6eiI9PR0AYGFhgU8++QT9+vVDhw4dMGvWLLi6ulZ6zblz5yInJ0f7un79ulHvgcyTd3Mn2DtVXcApnK3h3dypZhIiIiIiIjIQk0/XrI6Hn7GTJEmnbdiwYRg2bFi1rmVtbQ1ra47O1HcymYBeo5sjZsP5SmOeGtUcMhmf7yQiIiKi2sWsR/Lc3Nwgl8u1o3ZlMjIyyo3uEemraQcPhE5uXW5ET+FsjdDJrblPHhERERHVSmY9kmdlZYWOHTtiz549GDlypLZ9z549GD58uAkzo7qiaQcP+LdzL11tU10Ie2XpFE2O4BERERFRbWXyIi83NxeXL1/WHqekpCAhIQEuLi5o1KgRZsyYgXHjxqFTp07o3r07Nm7ciGvXruH11183YdZUl8hkAnxaOps6DSIiIiIigzB5kXfixAn069dPezxjxgwAQFhYGCIjIzF69GhkZWVh8eLFSEtLQ+vWrbFr1y74+fk9Ub8RERGIiIiARqN5ousQERERERGZE0GqaDfxekStVsPR0RE5OTlQKpWmToeIiIiIiKhC1a1dzHrhFSIiIiIiItIPizwiIiIiIqI6hEUeERERERFRHcIij4iIiIiIqA6pt0VeREQEVCoVOnfubOpUiIiIiIiIDIara3J1TSIiIiIiqgWqW7uYfJ88qpgoikhNTUVubi4UCgX8/Pwgk9XbgVciIiIiIqomFnlmKDExETExMVCr1do2pVKJ0NBQqFQqE2ZGRERERETmjkNDZiYxMRFRUVE6BR5QOjQbFRWFxMREE2VGRERERES1AYs8MyKKImJiYqqMiYmJgSiKNZQRERERERHVNizyzEhqamq5EbyHqdVqHNl3poYyquNEDZByEDj3Y+l/RY2pMyIiIiIiemJ8Js+M5ObmVivu6H8vwsvNB007eBg5ozoscTsQMxtQ3/y7TdkACF0BqIaZLi8iIiIioidUb0fyzHGfPIVCUa04mWiFQ1HJEMV6vfvF40vcDkSN1y3wAECdVtqeuN00eRERERERGUC9LfKmTJmCxMREHD9+3NSpaPn5+VW9V58EyDTWsCxyRO7dQqQlZ9dYbnWGqCkdwUNFBfL/2mLmcOomEREREdVa9bbIM0cymQyhoaGlBw/XIP87VqibQoAAAMhTF9ZccnVFalz5ETwdEqC+URpHRERERFQLscgzMyqVCsFPPQ2ZaKXTLhOtocxWwbrQTdtmr7Su6fRqv9xbho0jIiIiIjIzXHjFDPXo3wnJewuRnZMBUVYEmWgFyyJH7QgeACicreHd3Ml0SdZWCk/tHyURyM+0QkmBHBY2Gti5F0GQlY8jIiIiIqpNWOSZIZlMQO/RLRCzoajSmKdGNYdMJlR6nirh1wNQNoD6wl3cOqVEyX259pSFrQaeQWooA11K44iIiIiIaiFO1zRTTTt4IHRya9g76U7JVDhbI3Rya26f8LhkcqidxuHGYSeU3Nf9619yX4Ybh52gdhoLyOSVXICIiIiIyLwJkiTV63X41Wo1HB0dkZOTU/XKliYiihLSkrORpy6EvbJ0iiZH8B6fpNHg8oBglKSnVxpj4eWFZvv2QpCz0CMiIiIi81Hd2oXTNc2cTCbAp6WzqdOoM/JPnKyywAOAkvR05J84CfuuXWooKyIiIiIiw6m30zXNcTN0Mr6SzEyDxhERERERmZt6W+SZ42boZHwW7u4GjSMiIiIiMjf1tsij+smuU0eUuLpDrOS8CKDE1R12nTrWZFpERERERAbDIo/qFVGQYX2b4RCAcoWeCEAAsL7NcIgCvzWIiIiIqHbiT7JUrxxLuYP/OrXCh13CkGXjqHPutq0TPuwShv86tcKxlDsmypCIiIiI6MlwdU2qVzLuFQAA4hq0wVHvQATe/hMuhfdwx9oBF9yaaEfwyuKIiIiIiGobFnlUr3g42Gj/LAoynHNv9sg4IiIiIqLahNM1qV7p4u8Cb0cbVLadvADA29EGXfxdajItIiIiIiKDYZFH9YpcJmDBUBUAlCv0yo4XDFVBLqusDCQiIiIiMm8s8qjeCW3tjXVjg+DlqDsl08vRBuvGBiG0tbeJMiMiIiIienL19pm8iIgIREREQKPRmDoVMoHQ1t4IUXnhWModZNwrgIdD6RRNjuARERERUW0nSJIkmToJU1Kr1XB0dEROTg6USqWp0yEiIiIiIqpQdWsXTtckIiIiIiKqQ1jkERERERER1SEs8oiIiIiIiOoQFnlERERERER1SL1dXdPsiRogNQ7IvQUoPAG/HoBMbuqs6hSNqMGpjFPIzM+Eu507gjyCIOdnTERERES1HIs8c5S4HYiZDahv/t2mbACErgBUw0yXVx2yN3Uvlh9bjlv5t7RtnnaemNNlDoL9gk2YGRERERHRk+F0TTMjnYtG3trXkHPuLvJuWUES/3dCnQZEjS8tAOmJ7E3dixmxM3QKPADIyM/AjNgZ2Ju610SZERERERE9OY7kmRH1rzG4NW8uSvJctW0Wthp4BuVA6VsAQABi5gCtnubUzcekETVYfmw5JJTfHlKCBAECVhxbgX6+/Th1k4iIiIhqJY7kmQn17t248fY/UJKnW3yU3JfhxmFnqK/bAJAA9Y3SZ/XosZzKOFVuBO9BEiSk56fjVMapGsyKiIiIiMhwWOSZAUmjwa2ly/53JDx0tvT41mnl31M3cysvUqhqmfmZBo0jIiIiIjI3LPLMQP6JkyhJT68iQkBJvgXyM61KDxWeNZJXXeRu527QOCIiIiIic1Nvi7yIiAioVCp07tzZ1KmgJLN6o0YlBXJA6VO6nQI9liCPIHjaeUIoN2JaSoAALzsvBHkE1XBmRERERESGUW+LvClTpiAxMRHHjx83dSqwcK/eqJGFjQiELueiK09ALpNjTpc5AFCu0Cs7nt1lNhddISIiIqJaq94WeebErlNHWHh5AULFo0uABAt7wO7NjdwnzwCC/YKxqu8qeNp6ok1ec/TJ6YQ2ec3hZeuFVX1XcZ88IiIiIqrVuIWCGRDkcnjOm4sbb08vLfSkv1fYLP2TgM86TcDTQleEmijHuqbnvfbYfPlDiOoibZss2wrOqqYmzIqIiIiI6MlxJM9MKAcOhM+a1ShxcdNpz7R1woddwrDTWYU3vj2FmPNpJsqw7rh//jayvk3SKfAAQFQXIevbJNw/f9tEmRERERERPTmO5JkR++AQTD4uwPXPRLgU3sMdawdccGsCUSitxQUAi3YkIkTlBbmssqmdVBVJlJC940qVMdk7/oSNyhUCP2MiIiIiqoVY5JmRYyl3cPNeEW66N6vwvAQgLacAx1LuoHtT15pNro4oTMmBJqeoyhhNTiEKU3Jg09SpZpIiIiIiIjIgFnlmJONegfbPMgDtIIcrBGRBwhloIFYQR/oR71Vd4OkbR0RERERkbljkmREPBxsAQG9YYDps4PHAI5MZELEaBfgdJdo40p/MwcqgcURERERE5oYLr5iRLv4uGG5niyWwhdtDe7i5QcAS2GK4nS26+LuYKMPaz9rfEXLHqgs4uaM1rP0daygjIiIiIiLDYpFnRmQA3oYNJACyh4o8GQRIAN6GLb9oT0CQCXAaWvU2CU5Dm3DRFSIiIiKqtVgvmJHClBxY5WvKFXhlZBBglV+CwpScGs6sbrFt7QbXsQHlRvTkjtZwHRsA29ZulbyTiIiIiMj88Zk8M8JFQWqObWs32KhcUZiSA/FeEWQOVrD2d+QIHhERERHVeizyzAgXBalZgkzgNglEREREVOdwuqYZ4aIgRERERET0pFjkmREuCkJERERERE+q3hZ5ERERUKlU6Ny5s6lT0cFFQYiIiIiI6EkIkiRJpk7ClNRqNRwdHZGTkwOlUmnqdLQkUeKiIEREREREpFXd2oULr5gpLgpCRERERESPo95O1yQiIiIiIqqLWOQRERERERHVIZyuaaY0oganMk4hMz8T7nbuCPIIglwmN3VaRERERERk5ljkmaG9qXux/Nhy3Mq/pW3ztPPEnC5zEOwXbMLMiIiIiIjI3HG6ppnZm7oXM2Jn6BR4AJCRn4EZsTOwN3WviTIjIiIiIqLagEWeGdGIGiw/thz/3979x1RV/3Ecf12ugKhc1Kkk8yIVsYGFeRFLC/wymYRYOlv6h1PUzCjMlcu0uZZuzcpWukpt/aEws6LNH6OtqcyGvxsIYQ6ZQ4fCJgKmgagFk8/3j8ZdxM9K7r2c+3xs94/7+Zx7Pu97hPvxxeece4w639Wive3Dog91r+2ep0sDAAAAMEAQ8nxIaX1ppxW8vzIyunbnmkrrSz1YFQAAAICBhJDnQxruNNzX7QAAAAD4H0KeDxk9ZPR93Q4AAACA/yHk+RDXGJfCh4TLJluX/TbZ9MCQB+Qa4/JwZQAAAAAGCkKeD7EH2LVuyjpJ6hT02p+vnbKW++UBAAAA6BYhz8ekjk/VJ//7RGOGjOnQHj4kXJ/87xPukwcAAACgR9wM3Qeljk9VijNFpfWlarjToNFDRss1xsUKHgAAAIBeEfJ8lD3ArsQHEr1dBgAAAIABhtM1AQAAAMBCCHkAAAAAYCGEPAAAAACwEEIeAAAAAFgIIQ8AAAAALISQBwAAAAAW4rchb9u2bYqLi1NiIrcpAAAAAGAdNmOM8XYR3tTU1KSwsDA1NjbK4XB4uxwAAAAA6FJfs4vfruQBAAAAgBUR8gAAAADAQgZ5uwBvaz9btampycuVAAAAAED32jNLb1fc+X3Iu3XrliTJ6XR6uRIAAAAA6N2tW7cUFhbWbb/ff/FKW1ubrl69qtDQUNlstn4dKzExUcXFxf06hrfH7u9x7vf+m5qa5HQ6VVNTwxfvoEfe/P21Cn84hgPxPfpazf4wV/b3WMyV8BZf+zwZiHo7hsYY3bp1SxEREQoI6P7KO79fyQsICNC4ceM8Mpbdbvfah6Onxu7vcfpr/w6Hg4kLPfLm769V+MMxHIjv0ddq9oe5sr/HYq6Et/ja58lA1Jdj2NMKXju+eMWDsrOzLT92f4/jzWMI/8bP3n/nD8dwIL5HX6vZH+bK/h7L1/5N4T/42fvv7tcx9PvTNeHfuE8iAAA9Y64EBh5W8uDXgoOD9e677yo4ONjbpQAA4JOYK4GBh5U8AAAAALAQVvIAAAAAwEIIeQAAAABgIYQ8AAAAALAQQh4AAAAAWAghDwAAAAAshJAHdKOqqkopKSmKi4vTY489ptu3b3u7JAAAfMaFCxf0+OOPux8hISE6cOCAt8sCIG6hAHRr+vTpeu+995SUlKQbN27I4XBo0KBB3i4LAACf09zcrKioKF25ckVDhw71djmA3+N/rEAXysvLFRgYqKSkJEnSyJEjvVwRAAC+Kz8/XzNmzCDgAT6C0zVhSceOHdOzzz6riIgI2Wy2Lk8f2b59ux588EENHjxYCQkJOn78uLuvsrJSw4YN03PPPSeXy6VNmzZ5sHoAAPrff50r/+q7777TggUL+rliAH1FyIMl3b59WxMnTtTnn3/eZX9eXp5ef/11rV+/Xj///LOSkpKUnp6u6upqSVJra6uOHz+ubdu26fTp0yooKFBBQYEn3wIAAP3qv86V7ZqamnTy5EnNmjXLE2UD6AOuyYPl2Ww27d+/X3PnznW3PfHEE3K5XNqxY4e7LTY2VnPnztX777+v06dPa+PGjTp48KAk6aOPPpIkrVmzxqO1AwDgCf9mrmy3e/duHTp0SF999ZUnSwbQA1by4HdaWlpUUlKimTNndmifOXOmTp06JUlKTExUXV2dbt68qba2Nh07dkyxsbHeKBcAAI/ry1zZjlM1Ad9DyIPfuX79uu7du6fw8PAO7eHh4bp27ZokadCgQdq0aZOSk5MVHx+vRx55RLNnz/ZGuQAAeFxf5kpJamxsVFFRkdLS0jxdIoAe8O2a8Fs2m63Dc2NMh7b09HSlp6d7uiwAAHxGb3NlWFiY6urqPF0WgF6wkge/M2rUKNnt9g5/iZSk+vr6Tn+xBADAHzFXAgMbIQ9+JygoSAkJCZ2+LbOgoEDTpk3zUlUAAPgO5kpgYON0TVhSc3OzLl686H5eVVWlsrIyjRw5UpGRkVq9erUWLVqkyZMna+rUqfryyy9VXV2trKwsL1YNAIDnMFcC1sUtFGBJhYWFSklJ6dSemZmpnJwcSX/e4HXz5s2qra3Vo48+qi1btig5OdnDlQIA4B3MlYB1EfIAAAAAwEK4Jg8AAAAALISQBwAAAAAWQsgDAAAAAAsh5AEAAACAhRDyAAAAAMBCCHkAAAAAYCGEPAAAAACwEEIeAAAAAFgIIQ8AAAAALISQBwBAHxUWFspms+m3337r82uioqK0devWfqsJAIC/I+QBACxhyZIlstlsysrK6tT36quvymazacmSJZ4vzItycnI0fPhwb5cBAPAwQh4AwDKcTqe+/fZb3b171932+++/65tvvlFkZKQXKwMAwHMIeQAAy3C5XIqMjNS+ffvcbfv27ZPT6dSkSZM6bPvHH39o1apVGjNmjAYPHqynn35axcXFHbb54YcfFBMTo5CQEKWkpOjy5cudxjx16pSSk5MVEhIip9OpVatW6fbt2/+o7p07d2rChAkKDg7W2LFjtXLlSndfdXW15syZo2HDhsnhcGj+/Pmqq6tz9589e1YpKSkKDQ2Vw+FQQkKCzpw5o8LCQi1dulSNjY2y2Wyy2WzasGHDP6oLADAwEfIAAJaydOlS7dq1y/18586dWrZsWaft3nrrLe3du1e5ubkqLS1VdHS00tLSdOPGDUlSTU2N5s2bp1mzZqmsrEzLly/XunXrOuzj3LlzSktL07x58/TLL78oLy9PJ06c6BDSerNjxw5lZ2drxYoVOnfunPLz8xUdHS1JMsZo7ty5unHjho4ePaqCggJdunRJCxYscL9+4cKFGjdunIqLi1VSUqJ169YpMDBQ06ZN09atW+VwOFRbW6va2lq9+eab/+hYAgAGKAMAgAVkZmaaOXPmmIaGBhMcHGyqqqrM5cuXzeDBg01DQ4OZM2eOyczMNMYY09zcbAIDA82ePXvcr29paTERERFm8+bNxhhj3n77bRMbG2va2trc26xdu9ZIMjdv3jTGGLNo0SKzYsWKDnUcP37cBAQEmLt37xpjjBk/frzZsmVLt3VHRESY9evXd9l3+PBhY7fbTXV1tbutvLzcSDJFRUXGGGNCQ0NNTk5Ol6/ftWuXCQsL63ZsAIA1DfJ2yAQA4H4aNWqUMjIylJubK2OMMjIyNGrUqA7bXLp0Sa2trXrqqafcbYGBgZoyZYoqKiokSRUVFXryySdls9nc20ydOrXDfkpKSnTx4kXt2bPH3WaMUVtbm6qqqhQbG9tjrfX19bp69apmzJjRZX9FRYWcTqecTqe7LS4uTsOHD1dFRYUSExO1evVqLV++XLt371ZqaqpeeOEFPfzww70cJQCAlXG6JgDAcpYtW6acnBzl5uZ2eaqmMUaSOgS49vb2tvZtetLW1qaXX35ZZWVl7sfZs2dVWVnZp6AVEhLSY/9f6+mufcOGDSovL1dGRoZ+/PFHxcXFaf/+/b2ODQCwLkIeAMBynnnmGbW0tKilpUVpaWmd+qOjoxUUFKQTJ06421pbW3XmzBn36ltcXJx++umnDq/7+3OXy6Xy8nJFR0d3egQFBfVaZ2hoqKKionTkyJEu++Pi4lRdXa2amhp32/nz59XY2NhhlTAmJkZvvPGGDh8+rHnz5rmvSQwKCtK9e/d6rQMAYC2EPACA5djtdlVUVKiiokJ2u71T/9ChQ/XKK69ozZo1OnjwoM6fP6+XXnpJd+7c0YsvvihJysrK0qVLl7R69WpduHBBX3/9tXJycjrsZ+3atTp9+rSys7NVVlamyspK5efn67XXXutzrRs2bNDHH3+sTz/9VJWVlSotLdVnn30mSUpNTVV8fLwWLlyo0tJSFRUVafHixZo+fbomT56su3fvauXKlSosLNSVK1d08uRJFRcXuwNgVFSUmpubdeTIEV2/fl137tz5l0cUADCQEPIAAJbkcDjkcDi67f/ggw/0/PPPa9GiRXK5XLp48aIOHTqkESNGSJIiIyO1d+9eff/995o4caK++OILbdq0qcM+4uPjdfToUVVWViopKUmTJk3SO++8o7Fjx/a5zszMTG3dulXbt2/XhAkTNHv2bFVWVkr683TSAwcOaMSIEUpOTlZqaqoeeugh5eXlSfozzP76669avHixYmJiNH/+fKWnp2vjxo2SpGnTpikrK0sLFizQ6NGjtXnz5n90DAEAA5PN9OWiAwAAAADAgMBKHgAAAABYCCEPAAAAACyEkAcAAAAAFkLIAwAAAAALIeQBAAAAgIUQ8gAAAADAQgh5AAAAAGAhhDwAAAAAsBBCHgAAAABYCCEPAAAAACyEkAcAAAAAFvJ/NgjND5mFRT0AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(9, 5))\n", + "for name, group in matched.groupby(\"operator\"):\n", + " ax.scatter(group.model_cost, group.time_ms, label=name)\n", + "ax.set_xscale(\"log\")\n", + "ax.set_yscale(\"log\")\n", + "ax.set_xlabel(\"Model cost\")\n", + "ax.set_ylabel(\"Execution time, ms\")\n", + "ax.set_title(\"Cost-model calibration\")\n", + "ax.legend()\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "7b508249", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "

-@lU#?ru37{b6&Zmv@mRGzHXOpVoE*y8>CJ!)A;eWnRPM(>fU%HOhS1*e+8ZpJNTtpwEsPV)@ zD?i~*cArux9~%WDJDXIF0lQ2bPP3V~n96nFj(2VjP09xfxI&VOQTb~$L1mNu#g6W3 z6OH7YoR58RKSQ$PnZXxNRsDMC=|zdzMxzpVEml-il$0^d(IFrp{L2}LM&sk-lR0P} zcZs(`%GT1$dI21oS%s!lLrseaFr>hw17eNc@|{18X9p`0O!>7sAC;6MVq%Cj{!A+E zm@6tON=Qh^$YB1aMHT~hzL$WyH&q`?*nL|JP6>z zCsQ5;g^~JtA!6bfXq(xChk#mTu_)RpXfym>Rp!5eEw>u^LMQEA0wZX_04Au@`ViP> zpO&fqbKfB+GK#kiexmEZ)3Y;R8F`&`e^lnO-G0o90ZJAVP^CuZL;4Kr^!$8$krB;e zVqzoGUPZ9E7#SI11wo4*ZtBy8X&;8#&OsWtmVz{E#d@=}Uw*C)Bh4-Uuo>!)#57d|p*ZqT-B-hBM^le9c#DPPWc#UD)HZw5`gCX3klnfvFq=H1+ zb%y-%jN2`emE@ya?X4S|xHwn$z)Jae&E!-y%y5s6z7V`XT@ZNFq%B6bC zgS2p}divnKPhygt_1CCymex3)0ZdyC1dXGcd}vVvI_u~65I|Y+>6%%3%#lemLX`LS zyJTf#{{Bs@;`do5U-+{4o@`$wc(3(a9^WN(y~Q8|k%SA4pG47`)GkFr@@91!WIQTj zY_AB@pGMsM*%$0rq!N(v;C~)l;=f#|e;;&dLxpC;-K=}_RafpIL+$ObV}0++*2t2% zk)fpv;jY##7d4OdBMian`S;&p)c+8G{{7*9-~PWB{r_C?|M8*sEJCzX_BAdZ9t$a$ z=}P2^0wIaZfQub-PvhHi8&&$*IAo2WbO~BBnORx$Rywb`dwYSJY!p2RS)qkFo5c5z zu((M`db+xNv!I!S{@?*NF0OIP=&kB6c%lIA-TD4sefvLO`R6p&oWBrY1Lw&sbB=NW zkqV>P3?<+UkaO_f5E30383BG@eNWHySEK?^%7T~)yvIq=_~H; z?l4GZrl&VT;I4UD3%T`|FNff$1k<#{eXp<@dwcT=3cz~_B3nG*I3}URF}`%HtOwmu ztU%@lXAyuP4gF3&rlq7@?zNHDvd8i};Jw-an22yeEBQU^T_-qNVcLn7hUWC*0`>lV z>&@}P7f8r{fl02Q6Xq)$0OPKk$gM*J)OiIxU@HP7B?$JQ>*U$%kCif)GAES-&+?Wh ziCOokKN=b13Dn?+>mx?s1Il#@z4w|=Jw)Daxw#Audbq!XqoaY^qXD@;4LV4>Jk1n( z|9%ic^)2>fGQkE599Wd17UQe@C1anVzE21WDlnbq5udiSvaYn09wn+2`tHPBn>?d=80b|4%9Yaa3ib2*;f`|x^p(+13gEpACd z-m_?rqXq{Dfvz-OWy=)suAQyec(MIwwqh;|u)Tl|nEZC3%+K#FxQ_=u<{kt_m~{SD`}s6%U#+P-1vA!L$s>5|u%XyP3sy2|Cv15EkKh0qflKq$Hqc(xI#Z zQ52~5-#vjFXzb&O=Xxj_@q$IOySt&`c5&>ImwufDr=0wc6>g=_+a}=oLPHNN6p1%) zGNDjIDKwuGiFA#Rf3mUC`n#xT07p|3#vqu9y(|ACO#t?^gZM|r~mg5zmQwr)};V-wz=~1;v$HX{w4G1 z=W{&mZ)^Ju8aYASrl#A_;wc)l2Erk5n1QG4^^owc?D5eNEKi0M|1E(ZaWFnN13qAO zcHCA~pP}6}Cq#oz{O%((h=h7!BWanrxw%2o2Co3BN;nk3OnamM7s5su(#}f+;ceLm z!{cDUG#6*imGgIX6{Sn73&Bv|)}#Iy{zMft9>J%$u<*qcQK}G^JkeY478(My+YXjg z3`Yh9qKG#MC0@drLH%-KEn%)3u<(BRBZj2jdMW^n)x&Sc93ym15r2%VWdpqFr$xKsT zS3tLoh=@q3*=)d5Qhu~bR{KMJnv(yNrhhD-`P^EZ4MNX=m4$_j2N-UU92Ov>&?st} zM(N3>ZCvx>M#G{D(xezzD)97);r2&qv&5t?%2b6{Ns=RCeFGre+| zsTvS1H4S#jAHGsP;rI@n5Wtwr(+Uc9L5;|4y3$h`z-Ko>(2R;?b@4yBq!PYe3;(ka zOqu(V&d$%DaG3*XQWK2I_xAQ=*p{cl+}!RukV-YRLJ{ui4I^T}rd0)G9A4(_`xa$> z;!RSeYY#CZXaKf;c;T^+4wvU>{*G|uercP4%j@2AT#v~^p3q- zT3<8(yH_S0x|J{qA(Rg)OQ0(0uN)-Jg-ERGMT^Bo6#h*Xg<~fD9VsZ)E0Y}GnW+z_ zK8qA-h}24g!^8uPfQTsRxc}|yLn0!gf;%>Gq9SA1`1nd0W1wR)o2v9Pcpg21cHNtix! z14K&*)qF7l;;ro0uV4R)_LD(2T3Rmc8{IYl_Kmj`QC@Od#N+*7UQ5-EWH6-6M|YtdpmQB-QK(>NSwMgf-EZw z%izpRJj2S&IvzDU`=f2QhF7qC(H=h3Oz7VL4CHAzXoRauZ!x>}BlpjblTEl4nvBOl zD_&jwi9~aFk@iDBsm7-M5XjmCo^Q?8)g>n{fJi_;f^436w1g)R9B&qgq*hF-ngGC7;tL? zN=i!5sDM2UyayXAEBE-;*48IHUtR;jkf9JxFvt*WFHbGJQ3D*Ut*yaX4A#!>-X5Ig z@VrSUdd?U0G4TO(8V7_b=^heNqX78}219kCTiacbZhMjcMq3OLZUO#J-2||cLhsJ_ z@V^?s#8n)ICdNnE)5YFf&?={`CS1rnhkbE)B}Qqsw!S_ zBw+rxgah&1XG!$?!-0W;27v-9JXV)8PgMM8ZzKP%tibZDgEIsY_s`JThd2yCorsH$ z^gv-Ym>5Bkrfpv2c(xA<^cQQr#4A67JvcFd?+#v$LFm9#Pnq*i`QM2FG1sl8rIVwh zV&2F53k}%7M+X2AB=z*~e7U0{uptXd6X!5ELBsNK4irG4Nmf!;=5@W+^`01^b6mY_K;Jq<89B&f7ZSU$r)hHyOU}3R@Vp+A+n2=2$^EoCv zgv=5MpIlsAe^uM3AnZfY(c7so3}-Qcpd;Oj7lm*nVD^9{o^T?pFu%cuafm+8-o=Bm zdc(P%DHq!LKXPZV|3Sd*+mdDxZsTpX@77Qf-B#KE z$m;Y?eS@;!c4HLnlMEyTNz1(=kHg`g_RZUg087+mc+L^@DucBxXa=x;s;fl3}7?cx>+VEti!U{RYQ!8Js3NM%0c$}HO z`5K(&Vxpqv-hss@P+A(Im{IKrDtpy!GFQ)@5;X?F0d({lRaWOF|-|^TiIF<+$W-&vuX@%Xog! zOzi8m1e42Tbf7-cumWrs0*o&>0xK&k5dijtgs|FdDsw$v{MG`t>?)AS@qAgu#6>1g z97X{FqbbOyF7JnIjAY}p{=DbwN~Q}#0bo}RMD_R=I!KqxkT$}JM$Dp%5?cc6Rxa(W z*4`oUF=l1p@6DN-$)+ZRBn&4HPSG47rpm@ne4ZYsh^9fsb%BHz5=lrmd3bn$Uhq8~ z8vQ8C{v`DejAd}7r8jM~wdY}%_5XotP}TrWP<`CuX&Bjooz{?7!BViYEBoY0JczWg zC{-p1x&#!W)PiB8Jq%K`9)Tf#xE@b*S&ByWypH{!8gABGhH$6TIr;oV9EEVH3Bw2ihp zm~5b=2a*@qh+<06y9UE93yT`Q`@N0P$CY2S2zU_qk00MA+VamHVxY<@b7g~Srf>Qz zK|dQD84#<1FX4{xB5?HAOo7E^M|h0lMts4*;2<2qZTkPT>VQn5f33xWxP?U_gsSxr zwR9Wc@@i@ljCy!^H3_`(^#$~)b}@t;3^Y7Iw%839A^Hsv8G^`X#2VK@I<58Dwq z5^)t<4U>~G|7XQizxeOzJvI+j44l&;&!n{T{?Wdlq5*px4%|P#^&k`ixY+hnh4%n~ z4pQWvI9~kqhvbnQCec1VKAD-c)t@1#^vl4k9SlFfP~L9=t&dyA7O;xP_aX8p@Y&t1 zXiyq2uc+V-jkdF*u3DX{U@a!FT!v`nC4LBjfFCmb_8{^SPV9pB;ZW6sIxgtzJZ-)$ z4hD9YFE1T$h{mm>V(jK&(&ZIQpD_OeYbTPklnG|>#tI7xzM&NxjRhRZ@pjLEn&|HS ze&b00A2^EP{ju8Z>vBE5tCi^Pxfz{|>1ltkjMmDTA>@bgmmgvX0VyBI_c%Ept`6kP z9t-^&rYRTv$^TowJ%$7P4oW8^C&LEq%$royKhg6zz~VtNCod(nhm;gK6u&;o#(CmI z)WfN7C=jT5-p98De>{7p7q15kBL(a($2L{_#UE1pp5gjPc3^n_r@#iBlo^Ae1Bubm zPY%~dii&b`lNmjWCS&vC%oF*CboeUJWB3oaQ+pm1)PYt^PhuIg|1`I@h9bniX1Hou zK}$n}SqCpXJl;FsEYq-Gn%*;UjOW&leMD?}78aX0!PJ)Q=PY#^ao>~P_ma&R>v8B7 ze0Ft3190v=$rp=7MeAF3HgEFWo2IA(9YC;H<`uU#+1P9raX#q5O#~3_e9LXLF9XFN zUgA@Xe7`GSK-1;|2gg253C_>Nqu(rNdj&Tl&ggIVr|r}0&A)&1l7_}x&Ot((mr3)f zM~@yMC0GmZ0IuNJ_Zx&KUee`>&UPX1sXCk~g03p+E~JApb)MeO&jWkKTLk|V z@l>+njfh$krFK7=D2zc33NYcg(G_GJtjsF1&h5vKAHQLRO#o~`Q2danhu{+g!4M{J zzYHUwC%;m4=#%CcR3CWo;3r_qB`uA%-o})en4$4;6I0VY?@ZggLRnagj>Q`^;M@tr z{p_k~$QI6Melsy)nMS9e(8-hAXj2jrs;ZLH&^(mMkG>rw3WO)WH zaX^cCi0O}NG~GkK4{AE%s%Jxb6dz#PBox^K0(!S_lrVzV;CUfp`Tdr(!7K&4q;Z+&%-UG^j!iu| z<1Ah(^kB3OCQPgmx0Z(!EhBi6^X7DP;V2^Xr9g&AkrFtl`KqSBB*)V??)@{4DhShf z88>!bwMEzPd*KTg)*D5)ZtHMX6czauv#_%>G@%90@`priRI|c)1_p+2jcPoMYf~Ae zQ4x3)D?dSep;-eNj*MP7Sm6H9<88#9D`gE#CgFHzv4IeA`S|$IECs7nH&Vr@1mR>3 z)=2HlvhwmV#8KOMJ%m`a%Cagah((1gPh)`7v3FJI{u>y0%w)iG@TZA(q0Nk5B#x|Clgz zGFR;YkhpBX6T8Ev@~PPR>S{f*?~K-Cy>WFj2c87cIT zbmr{cUV-dCAS*x(0!d-Sx{`!MITim;nGepQTn~IX*lIdDfck6SDM zJyJc358Sq1>ZJeH?^)Xak{Hc?r?9`VBH!oaw0Cs4*Lxom1ov!EUrqM( zlm@v-7=1WC{-t2*4Ea?pwBmJVn<`|Y(+c~V+6+ZHsF!&Mus|r&Os@FlGcq&B3Q}?F zOb-pk#KrB1cO%#HC;FJ3nfdwNxxf)XLkv-b<=#E>vokCHYxEw)tzH)cprJJ+jXm6#8fpSlL%k;}Igf{4RgsHn zSXH}`UOv@a0b`aKS*IO8WqSX#vm+O%i z=^PI5;;0dQqmWO=fRamrBtu@4pgWI;9nE1rbqe^#7zcBM{=9kM=nN+ZM;gEYj{8Dx zpurme;%d4wZr-^qzYGNOnahs{GZ|HJJT{gqXqbnX)j{nY6LSj<3z(k`4j^QLu8Y#+ zzx(6*_x_qf*jTP%-V~a=PgV{lv zVs#zU*IUtee!vIr3*_f+Ld5v-gAYC9pdzg)FI>1V`t9c1ycHmSIW#t|K)Q0d2(f1G1VS+l6jefMh|Bb9yqg>hrQ3_aJXE1P|W`*UV zp1zgUSx-Tfi-64MVtKaJ9j>xN-N1KUUA+r;N8q|MsJOJoM@D`RRqo|G=ry*g(Pnqh z0&&3d16HZTYeLU;j+yK1;Oy+hN3&YFZAZyj!04Pmf5d0|BQ)~T)a_)T_qO_$rp^n5 z=Y90O4+xj3yEPP~ln;TI06AkF&`e9?DrC3#1I}VX5vL_YjQx220+71#e;e|oSwEv4 z+SMUJ3<^{nP6~~TJl?k7xxClIR8LPqM~4d?xExyUihLjiVIRhsXDE6f08w_@nV3Kg zac+cyhGXh&=?$@ zoG{bx+sR)0vgdoK6$LL`0PRPqx}SNfEt#C7x~HemPQ*+K$+ceQFL$~}n%?=iC7-yi z_sf@dc6Mk=zrR9=82}Xu$7pCmu$7V1u!Tko&J^m@w)3TzYmpd5^gK&P`u>Xa?kQ+J zt^isFZ<&vw<7-31(&D0cERI&ik~-pkGxVHATYLM}m$Zfk27Yhf3OTL)!nV#_?A3$^ zHg{*or3cj&6?(f7c9-YS4D5a-F+M)}-p!jgt!H~fw13-7edDz4L><#i4ED}ux|4^R zcxjs=4B0qEvNlkx?#h|Kr+0AHy1}Q+0$d+sRO96Q_;-P9o5x=ehA( zQG~JBtz3WXKQNCR-UMz2eMmy`Z~6A@McPCJ!tsBJ*F%l&-fbv)koZyIg66T?v?Tfo zOV66Z(Ch&W2N$sT{oo+d%{B3I|B?1of=rC;pwI|)@bezbpm;Rh`P$E~HCkfVfdf8> z#YR{5s@{s0i>hRn3qvUnwcT}DFBB+iygP?|htR20P>p=-npq1cXD~DY>{H#wQP5}4 zrcN_49iSJ!dEtJkknylIDytMtZ|;_t3@96fxTWC!L+Gzm_jQGv z1)*o_(DrZ4cBO@b%xBa-uGH!LDkVbpdZ4*Nb=-I;j{eR5N(9zR>2Q0#thsg29-Q8Wiy1YCV z1p-Hvcxs#=YlFjQat$kTd~6U!g-P%8%Db{5-+P zNOH*|GT>R?M{|OtStR=2d`s1MqQn3umV&|4GVx$@KeSjml3;hd4xcd zB0<6hhpM=DNi$+B&;kfz6EK1E_{SlO8X%1Q>{%r#sTUYSVakd{K~1*vJPWN2oFtzr zE8~|QN~S&bd@9Ax!UB582Duu{A>H}AVICeHIR4Cyj)hK0kd$BV6H&`wc026$h8jVH z+&ZCkgQR}DzWyLMlgWt*S9f=UEQr|>SOwTH?qP_iINDrK-)oe2gl5_g6<0x(R;`MT6-raeu@}7Qg>=Rt};-b~%OC7h)AxJZ_vc3@i zY#Yd-zMWZ5Vr6pDZXY7Fi=Mp%t_`{Zs5@AA`(4qQ#aOIHN!P z&(nqZ$iOK?F(C%xeJ(C9!?*}Q3IOwCaIm?(ePn3JOousDOj^2Tx+@DER=b}#qg=p3 zii$=>-eh8wE0DJ5{H@uQjY_+7m%xT_{T8)Qr2O1X67;AA(-~>eJ>J(N5VT1E3K%g2+sYL zzFZ4UZ(AHo@+DC1d)Y%gAH<8Dq7uth- z2um0mcLqAPKYxB=mqCi5U?7TdmK}QH8|rF$IXnp>4>(Zt&w>uanP|{%#aIv#*xA^S z5syOOgSK8rwM!D?sEijR4Xzu+uu$+0o_~8qTYD3Q#KEb%eFZ#Yhq`<~fcW?vNI4Y9 zz|QWKG7OZi!|V4nEC0TEJR_2sc2KQ6Z;K86e2-|kYTK2ab0KLZZr=6Yf#Cl^SAz}nC(4#c11;W6d9 z5E&R~bnjk9a`GNU>`mXtkBI`4K-;jg!ax8;9PzCaqa#8%)78V`^>m(QSq_$g4jy$g zqIi!7p)iTycInwp{uV!dYO|<7n8)2ScguRH@7^+U@)Vgq6Gk|D=Dkujh4-$z_J20) z_HBQE8w&$U+ZlSB_U{l((%!w(H^p^_@xuxz3pVNrNMgKP#^1r zC?2euNFIYLy!Q2^e6^Uu3Mg|7Y4)fbs8yb!P#l;eT`q9~*(-0|&L!=HLJ2w5}hc!C3(1C(` z1=Wo3jdSNQZvBpkA$!6BvKu8MAdJ?!AHK57-oM@YZA|2O@T zZ40^6oJKGD)CZlDV$I&(-f|!-U=abafVlL+(-ZRhL0xESe6efpx}8xScT7cK&lZFhj;ItGPm1e zG51E9@{IY$i7WJo7tpgoPeE8EB;lSsZo1+Bxt3u>x!k&~OG#PzD7a_fMEP(b676SK zunF-N&s9xT(Gp+b!zs>2jS=BtVF&=>;o+NOkuGJ=TUuL#xOKs&|APFFv~d12YpO=4 zz@L18NBnE_pOt;gs9cJjHw%Emf6Ap&ncHuTL;q#E{`R>ifhDuFoJZEi8*_p()iwy< z2wYsIS40VgG0he~ff9p}$3zKUGic0&v-=>bVmn>Y!VtR9+CRL$-@vCGk5pDx)-AFf zoSLdFFMmd6shocR(S~5nczKkWgQM5mk&lOG0TBb6;n~jpo*o{Z*`|IkUVKFkfDA=L zK@o>hqE#LUk(${iuR;9oJO*UzX18nSPN54IV5WEzGWJ}{olx&oxv2jGt4_S7MTX(z zdkmoiACH?13-f~#YHA(8 z85R~ZkTRg4CuL!&;QX_nI&p~EID-+J3m*zJaX#qk&cQX=dPH8m#^a*SMexVmGy<3= zcrvmvJrg0@T+qED+v?J#ZFPmnP^e2~Ak2ArmG8PS4XakLdiz8aVV=&L1ziR33jq2a zx*ody4{_5NwdRR}mq!Efx)GK(YI*QO1X<=SRG-YuOwfPzhHu5EMa`8oG-wOMb%{M6 zw*Y*^?uMrTJ(%$Sf|N2Z8bJ5&$jpq>WLq*m$mi(!151Q3gNaSZ0w@UDnwnnuko=G5 zLGYo`x?xz-rAtqIedVEJ>J-}}K*y)7i7w3&r@Y9XA{ICu?M`dIYp-N{XJIGNg>Mg4 zw4BtYPX*>IlXf0-cvSh6gx!-;vXYeT9LG(uLzm6Q83zmXdp$f3QmiU$mHL&3)X9#9 z(7bUNyT}`IGa)`+{pL;7!2NKgZJ)yPMJb}ffByHnGcq1hL1HPzvS}1-&3uk1HNcWK zH8sJ$3DYAkuHdjQCwwC&Te6WCi?QaiGYA9g*0Zo~5lQgM_@u%j=bed(o-deDRvjwe zR!J;Y3Dq?WQ2-DGWS?nAdLK{=j@q1HHDr($gf9W@tPabwn=eWsjEiPPYeF;z-%P)aaFY~5t z);6LtTmF5+9)pjEwuvdp&Rc+AQ&4CE7yIYW`aRD!FDlMS=*U1=EUiCAN1;Lv7_XYq zWeGZ7L<;DKUEwT?#Zv^P>t-lnksMh1&rD=lU3djKxB&YVr8;IvwJ1xs^P9Cr{je}I zBMgQ?wH_ItM@Dq8%BB2_5A^{SdZN>nJ9MKJY>|WFC9Aw?B;+wDci+B!JGMW8c{?!h zo4mhOaABw~Eq@9S7sVRzoXMR#fSx$$4I$|~f`s%&goL@dIkp=krSutao-vLFrlzZ- z^+%B+P}m)%p=lOoVqy}l4R6~a~^6gUZDU8*DU%?Qdb)wG-UhpYA@*kZ8)f*^aq=8=ShfK?_*J^+AzsjItv_j5Di zFeD7%N5G1gw1{nQ%EZ6=W5(U4Otz$E)Z_ zRhvUbfM)^Ke?aG}d~WFz2d6>5fVM>d_>~RP8pebw&E16SH6~oIXIaRu$GYSXo=k%) zWMxd#Db|pbGz6xBj^Kaq3J7MT z+c98YFz>(n`fX7sQiFs+bUw;w0zwYR-wCu8)(1!~5)xPBo=1oX*p{%+E3Mej;a2wk z-{%w>T07`5>(Ue_MJ`Q*)nx{)II__NLuEO@e#v!U;6(OwQ`(uTFVIyOY=pq$OeIsa=#s%Am zQvR-=Is2`qP-2H|1Bo_ZdZB6v2?)Hu$sx^)S*w8I-I)eg(R~fC1LjWEOZc&6R$?;X zA%-i6uDA3qxj0OH3rFc^JZsg73r>5z&nvLU8IQHl`Y;8~~iL zmH^4_!cK_~hA&3Ic_TkB?-7u|f-VtJlAHc9o?{BaL}C*!++#{Hd<5Q7uzVq}TO>;! zd>uM2WSG?jS{6H_HjwiI+>`NP2+2S(FzM)R5fj~LBs{eMk7wFM^XxcLqaGBCtGNCM z*Ajy8_wU~c$4-JpxOUA0nCzu6Xh2Z+Mn+7&)#Z73=qZ0gnDldAGNMvi+!HyupY+!q z{>8zrr%#{88H{N4d#6*}jl&f>J6Et=&~5<>2B1xVl@&1&5!-oh2DftGPi0(0D~wLY zOanhxfs73^Zyw>&LfDH+L^D0^lzrqV;-E|r*Y&r2$r!Im+Mh~Hl;ljfb?0Mxw%kOYyg;%tZtA!b6;(?Sd19 zKoCQvg8;}Eq0|5s@(9OGJp{&ouJ(khZt%_(3z%8)wM}A|FB6o0ATLzljf0jrcsv-6 zpf_)B7m6jjV_Cp`97Wplzr8xbpx&cFtEE&prGj`}BN5BEGIBJvm{0yuG2 zmOX`p1EAdZ@j)WyJwu_w*TVGULoXt&J~mY81^Dpb{(YV^XI_;NR`J2|ZP-E^x!A9Q z$C`t}-}0Hh2?~O?nSj_bzq)~E*AA5dj`LgFN1~B74S*By>IgyKNzvxMwY99A9Qdji z#l=qeXf!scrQL*V!F6yq;Y{MC8BH=WU*O3>*}seAQxF!(Y#t#(&LQRRr`yGoX>+SA!nA;Dzvdc3_zVjvi&n;CxlVt4bO05!m?7> ziEXqp6C4r(B<)ShUxTgR)^uM+rwn70gwIuxePqtfvjF-*qBk~TzN@LbMz=L zL%f&X*x$8`2lBWv7(EA_oeBxS-k-n!-E*&Y%;xTxUpMPW4{vi36?|U2?eBMTQQ2(! zbnk%rE+QhHV?>pR2l&B9{QbcaBm4jr{QZBtpT9rYEq{Ohzkf|w&x9Xb?cbk&Kbz>^ zzx}`b`hWTA|9@BZ-)H|X7yjR`|6f=3-&g-Hzuwpy&^scQGc+)uXKXw+Jp6NtpP7@> z>BpBt=p2w%?}jG=EY8+!-vzFq9*9#Y#G!(78$(r`04D&GR7_OVr#d5j{e_Vj_=Afe z!9s{Jl129boc%buASgV%511Jw`cYcizyex6Q!wPfZ@|6LeVr*P>_(1Ys394cW`c}B z99GY}OINSZ>`F{jw!(d^>MQ;xT=Jknu7j@b_Jr%tvz>92hoAqYj}O;HBak%|H$n!{ zi-V=-_Wb#7S8-AT&wJ+FxhvF!pgaOosb4_A=DTwr!3UxxJ?`}DurOf^s07Ck*p}Hf zeKZd+SR|XxAzY}!Q`u+HmzB z!3re*K&jiLIi@n_c21nV{t=J z;KBt0U4x*XJ%iGYLzT7T8SHkNCk~z|hq*J(lF(r@Isx_srsvh=ewS9o63`Wthmmx5 z56{PDPP_-)NqGU(aqNPPw~yi2k?2Hdx|NKc#>Iy29vQhTZOP^o@<3sAm z*NCbM-jplE)?z>w79i{(>Zhj4@GA3d!1Zy(n;OIBCkcL>yL}pjgOo?x+S;VGGocdh zM?(dCr!s*YaBu+^zJwj{T^&O6#O{c11gX8PEgRF5Wl7=55tjUkvd02;K1}I@ot2Lt z6VS`}_%Ek&&JJ%y41KPsc&>U=UOofS3wCjYtArdjo}Q>n&roBT+-q`@t&W>>TvpNRQ3(Z(=Z=xFR@g2Ub?i=OR9>RD}nAl-YQY4LY zQ9$YiD+A_*HSc=JS=T?0+W0n=1G%)N*_+<$OME?YfN1w{sSS0afFR@((&+4XYl^!T z7WISvE%B*waTS}s85#HB-}IzpkBg6w_msN?f*z3RNm(++A<&KRI!WL~NDS5y-(c`R zj4D?ZPYrXOo0L5bDZ1c}LmwK>=a7;zMA<`;0w`Nu=YoNHI7Scs8;Zd)^74t}-(ZeK zBgB=fSC5cQVQ2U=vur284XaPUHKuzIWOdJ}O=>hBI%mkbYu7IOJ^V*#X*CoSKBaL= z&g0$z^Z=W~%UBo_aR9rbrKt0Uz=PS9>xUAiJcj1L0I&!Jb&E)lh`k_h-6zzPSQ(hv zisHvK6N(+4kKvq-=gKcNExo1^c-aYTWQB1I4aUBqcgn}dr%oC6oo>nOpUIOf&DXCz zP--~n8y(bS&L`%+9emCZBf(ksCsE4(H=~vS(FyOZZhc|&W}DHcXudsv?++ySlx?t% z^nz46yTmEkhh!`tCh$7>m`OFf3U7SoSe;RP1$`h25UXQU**%Q#=6nQBQ1Bzb?Xsfe z(L|{G9F2lcF}N~&jt-^8#>HhnoKhW?UB(Jvjkw$OK@z$YvWXH&JdIH<)Tg!#T^E$b zb;>mdt;4RbCIC$^zGZL6syC^`{sm|lXD#-mDRo@6lGa11ov6>voq=73E|jJ^Bo}`N zmR(J29_uS1{t$AOa&oaoB?nh(7i44OH89K~em@&M%ap<-=eoBjqmi^=wkpL)2v2sy zu>;k8eZ>`F{%1@SQHl=npm62;P+<9ybOiqGFf96%3W=fRKwoq^@dzvussqYLjsDleB2S+OyfkCs z;_|T~GaQ0#V`0?A6g3MXU?~inwvi~=*HBi-lBsqj&98KuS5^lFzw?$l%=I_owV&al zAdUB&RpSBJr+tsMJR@ z!0d_>0QKWC!d?VKNk~g80@(mBq-P@4*3i8d1CsJy)#Io`!O~LdegK?#J~cm5%w2OJ z4H?Ac_oNC4Eg-~+;1Vz!2nuX@0r&FFrE;!;)p~o*A|*ZD84ZA_ssOJ64Cl1QK<@*Ya4Ic@y+rLj)NvVQPhR+y)U4{e9xnI4}kvWT)uHd_D z37S4kFCJMfNWJ0sd;2qI8q$hjg0%Gx2vCugt?QtYlSv2=gu`UvMBShz4A>JV#R(Z} z{wVxjl>Mqt1*_s;@xe`TU$nJD2NCTf;3D7~y4mb$si>GDE}K4HW$F#;mt=3&N(PSo zv$@<4LSd*_6=WN77DWO`i+b;mHZyPYBfS%FTs+bZ-Y7iikRyIAp6y<9s|}R4-e}4V z5{h8kmBJ3z^)_lS`nkzT=?R66wy$4bRGp#I+fU0Eb)_-Tbo6_YV(eiVy$0tK-sNPjg`Agui<>eD3m0J(LT5m}gCo;lhQ$Ke z9j;ZO-RQSGE@%~Zqq#j2kE1RpMM<*beak+IE3BJnrzA9?V$&g=$IKfW8s-3$)JRaI zv2p^55C&~xNuv}*O!!@K2YU&m*d^`^l+3vG_+4-PCf=(b z6P9xSL6$B;FY)#%kVvLqL3sZPD&sN?;x2?Opp8#jc`{rA$owM+1aNE`Gq9jL*xD9> z*n^x`xjs(~;USvNcD(6ijS`KdNsg)OL{4`l24lFH?dfLzb+}tdqZ^7kEDlhKOzwfp zS8iBYq<`wKg?DeErzgfu7@Gwpjf;C2_I3~lVX6BJNZ2oo?@Nh2`M-+$nr7ZB8 z{u{I)gFbrRVvj#Y8r5bE!Y0mhw*2~PV{5D5w-BGvt<7cK(Zeb=c7$0*7anoBuFMrx z>*B}-lDlRdJv|p#SUjxA7=;%`at|Ch0E+I`?8i%A0}jt19;t040+v*A3m7$#dfjW6 zPI_evH~mZ?a%VGFOa(Wl-yM-FeEorAMo5EPgHbxwUnaOqBirQCObdPN?JHlu_V?>L z@+O_7`imB%sF^9OOgBxvlB~Ye)WjTQJJ3+c@a{(Qo^2_l=n<7WnYVH{DIsRqIpY*^ zN%q~L$?f`J6DEc_D7J5$WeHTIioUH-6`x+pCVdYtjJ*H#FtdgL5mA{ynZS()D-FaO zLdXP$=pxnAJ9y~O=U$SH^Rj}F)-Vc%9wr$1JWC>?=l7rAPx@myy3Lsm1r@4Z8``Oerzkb4*AL6zM!P! z;;i8T{O#StEc63MuCiWrbTA@XF+v@{!^cZ51@XM5W7 zl&+-a9{$vXld-fyDovgS?5inV$D-eR7I1R+H>AFGd)uv6nO9RDLvi~`PIUcgo*sY$I}xfas=8iijkK2{dGVfpdTQ!An#S8u zsCo<%>N#h0SljtO{1b3qjpHY6GY9LS?gF=|5#h7{{R4NTkLAAMEA*y`+e^|Z^WT3K zlh$x!|eptx3Qb=DvdcA2|dU3&vYI*e!iz{7TJMD#z zELj*1wnYl%QhA1S zl^OPYuVfzWco%=h>G>sbr4p0<83_?3Z<~|WEF+jP#MUJ9Iw*9Q-(WsS)0>=Q-2&^aoi;b36MP2w zGMp-p7TC|e+WN-W!V&m%`=j3Jmu*e4h0#ZgdM89a4Sv}dS=3UKt4=a>K+{a`s-Orx zJAbTYM@U#&n7rSy>D$wHyo79Tced1cwq)fQW~wV~cGpbY`9QkEbr<(&vCLsr6ED?z z8Vb7KV#+<1i!GaMW|6t$-L4Y5^0*TmPh>>#*^e4YDA&Gfb?}|hx#ag;{Bw_*@1rmu zHP!Yce_v{^>kjE@WP4>;UW)B#7j=s)uya}a_Kc#OdFejwWN*sKX|v+`%km7IFN=Av zwkS6`G3P~=goTGLSGlz39eeveUW;zTOZ@qKf2&|frTAq{hmf5)lI~n*k12WtXEOSU zU*58@TGQZoB32_Ru&jNHMEtU|PQ&Mi>2n73NsIfoESJ@knmI21{@yNf@~Q}{blZoA z(|jg0FJIVO{`ocQf>JAI|GO>Aes((vWKdqFmyUmay-rVm(lKciI8>@-17oK9$C}yb?R%ZAW7_uH@}mamm-F&!+K7X2xvl9h#5z!k<(& z+nRo7T_C#`no`wz#PC7KYHoeORgt2}(z_h|^+vV7=th*w3qJk`&2kK!nqrZ5aZ?uA z^r|MTpqc*MU@4bjBa0a725*<&9Jk5_n0SLo_{`elKU};;*mZ1OAV2`6IS%dyy@zIG z0zkTznKF?YoYs~eSX+Ha((bA4 zaVT2PN5Fr1jDHOTBA-IEn-RCJgLx`I* zYt{MQa8^5sOYV6Sw88Z{_Xozm^Y60Zcn~`NJ6YCju^VJm^yHKNc_V=b&uPy_e%u(yEWUGKMr&#Lx%_^9lfm8?iF;<_OYKqNcZ}+E?DE~> zHz!5%I?ZkBYOBBVYIUr+%Y0WLzaw|J6zj8#(?VcovUaD=`i%kYf*^S^S`+h1o>p?F zV{g9={un)y-WmBWnxil8U2np$;G6T-vz@ARPFcx1?%Ow=$hM~VZ*L?n2RreO8O>bQ zq@cI2xi|A`qSiP2KD`)O^U02PKizFOlGAFUlR7*Ph}KARwy@Acigej`WOssv;K3h) zQj&_%AJ=2(IVbP1u)j#06+UW~63cqfS=e%}DXKwNj+53mV$0%adzz2zVcmQNmc*Qw zvgw`3M1IT`B8SqinNBtbPpfX1qQ}1_ZDAGT&kJ0ucQ7-Cpchia{I%r znTF!6yWJlvACOsRYpoL5$M5c#>l%tz zdL8wM-^42+qRT^Y+vlrlk%9wVJr;Hg$=5IBQyn+Z%KGD-Gsto70@vEYxyEf-=X(9# z2V`B%Q(6nnoE}(kDsi{5-)bCg6-~PIV2o-;l1G^1hJS$3I{{gS}tUa zC^wH#P=JZC5(t~^DS_`b!Hm2 z4&2GRNGILhW3r)kjpE4i9|>!7t)Dw{Df^Q0$yRTO`U@p1ip*AOI@0EEo+$s|R<=A{ zP%wHnk3mv!`rB|(!DwXrplggDS zj9qrSdSgG;nUms@iq=Bni*6CUf~Gx66xuTyA6w?f9#$?TG#DgXMd_!fSE}u@AATi0qm+1b5P7MvWzg?W^ob3Cl6}vghyuZoq)Z8wHGI3%fZZ) zoWbb-WPF4#z-=POKLmphK7ww;SQPX(pw*AhwB_=RQE3?md;6AK$tN`kwo;ii&AW$; zf*Z$NEXWUkFYRbw?Uaz8a9^yiuJC&m6}xV_fsRqA#^?wS@lDdn6lARbaQyJ^?3`eI zwv#|l{_AfH#<*;zni8xE7x-=neobDL+$2|`3E6JQs3?%CsrlL1?dy8Q#yj`J7f&C# zmd~QXIMKFGk?vJEd;E!I^?}_^ug=G~51l%nzVE8N#iwe&eN?8wDFJi zx}0np$>eLlNfFYTb$b7y3D)~;llc87mBz0d9G6d5UX{wa89J7IJ5x}OxY*n5Tr`h( zwBD4X`_qly++t(R&PRccUKdYS+%fe^IY6nB^UJ#Ad4|yaic-_P?w+m-WcS~0jd*$g zYRM=Qd0_tNnbC~buHva6xdU{(dE)!ynTnN%U)Y4d`CxBj^mW{R{f*1*6~S^^8>g%3 zN;tTp$)o7OpHDjLcDWd6!mqN&5aEXPEIsrzokNzW&Pj*6o$93 z>OgYn(76MSAUPgn{a?$LeA_}uaPT!33@$?p3CpA+rc%w7ZaJ^apUm0;vlQqvr9iXZ ze4csr^Dj{F?eJff2JtlIylklg!Gg}`X4+IIENt@74OgQnhk3+b}T z+BRdOR#RlgDz`fV0(M`pK6=@=Y46qLyXr!AgSm6v7Yxs}m87zZq>~(9=>Kqg=;=&M zNdeQ$`JKYHivyz(`+puu7gc%fA|cp174m?-m`gAHaXyWDRBXfIICJDHr4^=2EEKBU zR5>%#(!NKJ_+oNFr_-#DZ=b3D=PLdw)w|UJ@wtlpj;9;T_vrudZ(7@2X$iEm@V>(z`zBVY%r<$pfA57NmyRVT=F+kL zU-79&d?de@=9rDyEd&?lafP&}q&B4LHLcrA{C;b5XMCRd>XoJJtv8SB{dUP89@(3^ zMmKubZsY9Ym8gELWkzE*!w20D@5k>ljNj~`k`K-^m>XR!-nE71Bh3lL?L5aSCE`mW zZ>B*{$AK^KH18lG;nXQwfzc1vsY!VDt94%f`UOS`18{O-YVx--sYBNQj8qzvcgoAk zu=`mT&ak?hn0b~QwO*dpe*4zn|FWHHU|>)XGdug5`MzUN62PZPVg$@EYaXR;9w=ts zkDe1B;2U6jNN#QYaA<4FCC0V0%em;vwX0XhoHh~{x?uvPrNv1Izoam@z{ktCqb2=j zRCDV$ibx9&hplMmVylvER7bb|^sPUyviW`bUQFsUjdi1#2OqX0fp7c1%C0w&uQTjO4ad$>o~THA`Na2yr#jny3pCClO4Z?rq$zrF z#6~>TjJD&Em#evX3kyzn8tM9_h|Oq)q>kT8j`q$t-&UmEnBygS=gS8jKeD<0xOhhe z6>j6XoV04w+l-!qH0rJ?(rIbO27?NH^ws>x9mj@UjjdTMe@#{ovbwOv#Ra*TSXynp z-OGGgGcF}M-2Y%|OqIFf#1Tb4i=GFuV~MoVgK2o8LYbI`?eF1iX~>i#hl@f|K-6 z$Z?71HE4v;#K+)aB=S; zHrky=-wtq4X?En(U%hgXT|`l`Tp_^tGy^+#tbUY*N%*geHLrS-rrnlix*a*heifVT zkND>PT;Sn;dQnalb@ljOes3po5#z~V$~#*s%0c4}yRR;#iEi@fnlS$f;?CE7zQ9aY zp1azhojc;6Hl0W=6x49+&BojKf!LCcM$ZBb|MrJUez!iRybYOPC5@aDO0TJYaGx{G zeN}dSdTQ6G>UHIdMN;ycQE95GB?5z`qr!dxwvo34f>M`q(z2bC$9whK{4Sj5qU-rF z(;$C+U#YXv&_?*u^$VxKd?Y1scp=A^b#<*m$n|HN?OUI&6@yL3??(#HXh=U zV2Dw=;8YP1&HS>02ksz*UM+0NyTF2_yFRx>r)^AL&eOY_>?v!p(%!ennDngHbSN%97Q4<08 zzE|Ic+;>ftub%`dO(-r2>yw@BKBrjxP&5`u)Gw$jW?071Mx!99?R}n-V`Q-IUG|g9 zi{qbf9D12{`&Pz}bGd;|zb3ObBi|^R=-0ili>y|D9T*hQP{$SbpP#+%U-CLBy6}9%oe57`PhY3__&c(5#T|-d4?ge)sMw91v;KW) zn@BKQ%o7skc@6r_m)>0JWA`cJvfJZhZ;8@x`(kyu|KwNhsB)5Xlm>!!Bli@8M5~&g zC7%+1Y7^R?TWnpEajCY^M!PqZr8tJO;L*>p1RoyW4^byXg@3gT+>cP{yW={vO@BkP z+%}+c-i<23H@07~D=H?*l4*MI*Ea2th4Mmyre{03aGu6OMdiKpV_yQ+SAXfHc(?_I z4M*F(gzw4t@xhs?gC{b^Tl)a z6Ti0VwKLs6rcW3&)i##ejb!&cuRMINt)ViU@VP&qMn->}soz^T$-l~>8^>6kYBt^? zR*@6C#`MtS1kaxUw?LlalLoq?b@dGjO03Mf)>EQBf8Splz31R(=1p2>`f^dj_|W57 zZ^lNw>P|=6ZQW@ud1R<^;4gonZf-se<``WXCxvumrR)d|M~bnSqlTVeepnY3>5fsx zM@Kh9ohaS<6FTGo9faUZ%<1@+q=#yD4nv{;KYp>9UJ4NlSBVS^2Q?~ zcV2_FUr(NCxrz_Y58efy-dcC)Y+>|bU8oDaP+e{ye)n!Ve3-5M=gH@@T9Q$nXx*%O$C2?;*HkJ&iC|MX52&ePu)M?aK5&V zimRV#t?Fj&&YA|!c93%Fg5tWRq>lVE-Oq|nhEtC28%Z$oxZBRgxJJrfebe1((tdX0 z=*RR1()}ElnOQa(y=DhBdV*VXOVY$n1aPzTQu=F0lXo^0|5+wQg2;!V@K`d8$Q$KAW=jyVJ8w~(Hg;hoL=G8sFD{Mx}rx;#2Wr^lGE zXY<(u_Fr=2O$MDQUBp+Hb74N+GM?C`$UQMa&V8!<&oQ2@nh+R+4|2-o)$HDbxXr&u;GNF^*f1^;-OA!fk|iI zCx3QcSR>iQ5(JbC>3%JmA2pO4%3M|uLqgG7w@~*|47H8 zP_B`oVdam3jABEj1-YvLUAYhw73Vj(96zH>6Su?54>`vMN+PGcUoaFrGLL%~n^&i1 zO(Xxswbl3d_oMvI-L*-Hv0EKMjq-(73t^@&HF}nJ&h{7o?&~o*K4%xxa!vJa$7kL* z=i5FmH&wR&q3zA#QrZ0=aPCliip-Nn`aYVoMhy|15gRxQOTFAAF1=*J@p$vn_m4DM ztu3l5@5(M^7&7P0L=cbedl#QzI&ki16bq}CDE&|2w4MQy&sUx3dxgK=$~0|>S_n05 z@hd#?)OV#R;>VX7vXCKWyAn%lnq0?kQG+6!b{cD~MN7QutZZi;2fo+^$*=21Q#ZVh zPUCZ)%{@+wf}yliXG5U*k%x~D#+L{%?yKR0aEginqrIz8=c17c9pnrLcfYjWHLxK zCR%bmom+JjRQjh1Y#B1lXw916v)O2??sQRbXjVB6LF!GZ=jwQPPL|rOpx;w*A={q} z7Z*}$3&2)#!oHD9wZ0*8VW=_1)T27plchQSl3BaCoRyDKJKrzibkDR4hcn=DG!pM0&$!lF078H1s#tKHq+rKMr)Zy>kscX+JKawG^Y z$&G;u2JP>^KeUWQ?l3Ayb2~t%afM31APs&qn1<=#hz5Ux9=^#yIA)!{Qa5aP3LD_* zLgZX`%T3oUogE)%ai09~BO5Iu7(oR)A3?z?y*`xet&^&oP)kZQ5ac}w@$k@A*{`5P zy3?4-odI{avvfJuG6a2)F@NQ-BO_Zvrp;vgoLn;6<(myjh~{OgECWsjD5PF5ad*%-5;4!wB){>S~ zhm#q3s*4JHpHI=241I9N$+n#@E=8NNTIVh8!xWZrMk@Se#n<;$T3kglQMR35+UjhB@ditRWnUfetak6~M#vehW<*5({YM`=oVU zV|zPUWn`{t>nODNb~|^1G@A6ZqI|8P;%BY3`Zl5sH=Yf(rvwqyojKyey`RjSETRh= zXa8Qb{=TaO%Pr+KVHKNDNYi3}|9xJWIU=QyupbGUCK1s}GC7(3JA&U@kznUNjAcdG zsQ8|uif7933je!{V=A8MuoH~tgoSrPap+P8<$r(j70b_SUi5~I`0Io}JdpS*G?dqP zaX!h|H~ZoKz_n=w<*^scA_d21iw7ddkex+6nJScGm( zOXa$DncLH6&w@C9Q;@ncxRGrQ`#KLTz~PB$7q#`ZQ|+yWnE1xWBqY@BRJ1Fy@m_Px zY8lDiIQErH^Y7OT+H^+~u6RDHb}jb&%69Q<^Cbs`d$DEW$^O|Jl^5kNo*v=}gFNln&$<1t22oVmp(uWOl{i|pMA;W+XA7CK68uL7ID2uAW#*c**Sb1JvnuJQE_XRO-P z7q))dQ%cg&u!=71{j0`>9}Nw@9(^--?d2bd@|$W*tk(w$&kHihutdbgoe+ufEl8kc zzMz)x>_S>E#xV8G|7eqx%3DUt^@}d=T%=udO$x_8b*e45=Xm!T(GO7d#7r4KqW`{h z->aaYAl2xE++|;i?uz$L<^0sv71@7Wz$oNFBoC!ol6{pWtzdTPiwBzF8`}qO zMJB#(Y-PNcl=*V;)kUEydn2bS~&67oYYX1*eZyDBRw{C5>1uA%v;!@n9xN9ly z#l5&gaWC%f?rz0hio3hJyF1_Pv-Vnh?eG1S14u|RliZp27}q$*zL9XA9?E^n$Uy%c zV?hXYPYX$sGIFWs2 zan!1I0HqIzFMd8gIk~xjj^)@NP0r)Q6pFK$W1+iVtsnPN8uDU(hQXtk;SiZyb3Eu% zbaSjmi@UK{Ld#{iI$bTs!CV^N^b=%Sm6~+-QkUG+Xlk7i&`3#z0DW11e9`g3)kOgW zAS$I++(IQKKUJGJJ35EiAy7)2YzE6L$))GAK;8=oMP;gno|mKnUr42We1 zR{FVg_8i*_fYSMMG_%IE)L2#>e_QLGKU4uyc^cg0#)gAUzb^a~-`zQ1W1T4r46!$S z!n?TM@_NVO_36kz*!9YCrhlz+dL_~&2pf}}mO9@g#lEO5RXoVS!Z_dQmd&n-1uUfEa; znJ_6$RoZ536XPU5Tbf8Rn5iFXCCN)qj)>*eN%h4;`?MK$-ISD&T4x>@Vm81RxdY?p zD~cxz+43NZokVVHGPGoWFNc1z{O!)jX1Q+(1Eu?cjY96JE%;gH?4}543&SK+$Cw`VWT>y-F`5Ac}2M)(Zwa z$+u9_zA6K>mFoHL=b;13t@S<0rI&P%VXk}4W{2EcA{=$Ed4(&{5E5|EKN>B_+bjW8 zG|eIfY9OkMa>B!#(P-AU2ZOLwGe|;=k4JW_*_=#M-}2Mpw1Ev+8QAMERvSpg!TkAy zx|CUKH5ctHnsT{Io>mb`X4uj@y51M?W2i{H5IZm|LfYlWpGJh7lk2zB(2DJX26XLs z2CDJ>Uv&6S^r3xZ$4<`KOpTcIYBu4P8gXYA$70^9u)>Gd;VS*uCkH)EOG5p< z{j~bP@@63AWgChIW}$|{m^~)NA$!0TADtlB-5MPMfop8u2obKz&aTUi-|qch6=RImp~}3S(wK~o80g97*RftOAi6x-=-pI%mV;-)TrLma zLc_k_j1gh3E?0h=tq}5^c17~Rs$5t>BZA@`W^bQlnPJ@Z1P7^^Ds1}e1qH9vr4Nry zrL$w5Rz9E|USP9;(P z^)G-znB55kKcSCo03XWDy}Y#a1jd8GSSqML0uzo}?9E_@3{o^;xUv;YajwG*Qn$li z+&$7KN{ai>Opj%~{>O9*ctb$UM#1(iG>!c3ElHDmS<%H=eDFBJR#I31>1RHnn~7U6 z&YP2+4bs~5ALYtslVggkol{ip<+$;(RDTSz$SG=*qNU_hQ$_dpB2iFQOv=xNy&PDH zfUJYGUS6&k=AmrVa)C)8dv|p7R3*I}&%;VrtJ~SFe%K#t8f^8OFX^?rxSxI+^7D8# zB^Q6JyjC!*F8Iu3C4f;toVyHt?T%tMT<5!lm!&v%_HM{j`{2~dnF&q~S!c?@35hv7 zmtbE!)1x?EUF;@aJ7;+Ni2YhR|r`%txOWYOrSUY3J-AnnKo-9YmlV}}QIiw69`*`Tefs=GF^DuNTK0qM2q%-ItSC2f_XGnJ zg&H%D07?}(HdDFWvhAj;PgYT9xqtW9Wj1#$FAkoqr+6Py%1LRbeGWZ183Aa~eKzGZ z;>+xtkv(+#gC+&4Pd!$@;wpoG69pG+iAFMvj%e>f^Kj(Y2rx{QWsSdSC#Lpe!7 zM$h>!VcZ}sryDg7Qx+oMhpvvY0x+jNcz4|Td|%X=4W>7lO=nM+o5OY}jeJ2Iuf}{S z5q=SveokOsJ(Wuk=jCr84x~ivB>z%zLCHd7v4FO=5092M3++s?Ue2G1$VXyg%!t^? z=YGgNq=O5i;r@vR^0H8${@sGKVSu8RK3*$k`PsiDs_Yi<@@)-GRVG7SqnpR@rQ7|! zj+&f%TW?bWgY8cK-48h=ow%oovG&|*&&Yn3=cvGPv-uLM1s*o~3ep=Iw%f<&h1`toVY zWWFTB%P>gtf%d~Jr{ih%kw@bW`*jMxjvH?os-z=f@Jlb<^VQAWarF!EibZlv^{+zK z#*vPLPXagAyXIA_vR1Zpb6{FbZelQk4725*;H_&p-7p*pM=eSpA{k=F!+)paQ=bjJ zY^&WPKFqqyYu=znl+&79>7tU9glv=c9G}}Tmm3n7<)1$}AAc3@UNtX-5i)5`r%M&r zRx7mU*lHWV@WiupN>9aju&Ux!`p(fw0v&fe)JGX!QP%a`!KW{$m80J34aPY$oc>}B zLB2SFrifmDU~n*dlHj-%Y=<4rH$O0dtn;X>l*wO!12}VAr=bMQ{>Yvbw=P__q1N5|$eJSo|TD zA(nGJFV21Lm$ledO-LOhT?fmtNd_I8M0!TQ+nqwR>uxv;p;&yfLVCveSu~|o3}K&< zpS7QB8RQY7ZFByCG;w-yVM0P`X8xset;FR8M@yxeAwD&mTNlbs-@x#4-S3%PE7DI% zLla-7zvQE$U34xMCYRBt@vLJx-RlSxtozobF?Gs6-A;unr1+KG=0U*a8)1$PzSz37 z$WM^HRC(zz6q*acWfL4w!Yh34dts`dpt5 zk1LG05)jLE`STLE4Pb|gTg@1X%wVO&`;j%R3UkOw!CD<3F|pU6xN2LpXU0K!j$?_6 z_U#l5aE1+MyaZPuaXhtJuvV4!GKsBx3hEpzNz8R|h)TWZQ!Ys^ZNM^^UWWVF{1pA& zc05WaCYq^|L2eV3M{E~3bh*=JN>nwWGF+j-Y6?#4UMA1grYVNOiMd~-@)Uk7%5`9d z^nciph*3fFv2xQtqtj3#2)1C4?)SE`KrnMMHpZW5Q~9n%Nm*fPJYdEdeNR_dY~2fX zO<2nQ@X`zwF!HE5l|P|Tb#s26i{44iO=@X2J$$j+d5*(4=0>wIA(0D6v-*1i%|o0a zEi7{jV*T{=#5@RKYd;y+i%PDO;9eJ+{!UI15@$toq2jne=b0L(pGSqFcLbr?#e8w| z4s{+<6)OpR6UrE8ptjhM>n_fguXhRvHAH^}=7A#t-Kg~*(!4AOhw3(molq$D(L!Er zHu>XMDz5%iAw^a5W1<1&)G*{I9uo9Yqy=mJlo+fm(Zz`k6G=^pJfXRZMaSf&h78%+ ztV6Jk8qo;i-%RN}Tyu3WD9ypz>z6JSU5nG?v^m_8{OgI?O^-N4o9)i2gUL{ov>xXX z82vVD{sq2c6EX%vLkzAK=Zpw}6!teF`(sxZ1& z7O>gODEutCZ{tv6AuEJZkz{wJ%9d#s_NBZGw}Oq{IPo61WY1!j9kqm`9<#nh@E{3A#keG?vU5A@z*Ad8#%Nq(R045(tP@q);!{h z@a+r4MNiGc%GVWOk`-FRA~dHk+KL}_km?LcL_0$vY8 z?L2hr#FcT4v*U^JjyeXPv-dLSnoUdr35-o~^Cd!adW!IwFM9(2_>FF6*L_$}mn`%R zx~GbfapN*N%?>x^?*fZ>yL=7PYd%vZXeP{1eFh5Atr0+F>FVhL^noQSHjt-*ItmDM z!vFtuB@#AwLxXl){2dl?0jwM<1vHAH!dr@X^xaM zyQ^`G3CwDi6K-PYf*D$6r71c2nfzJRkdA~euJ>(xrB&MCju3?E7%zaD+Z}eJRA(tuxjmF%u_Q07<9xMu{K>eGz6fn@xjv2E!clji zn{z;=U-hO5_uMa_uwwA=Lu}^KEw@2;q)>As`tCt*7>2Q=&iT1d2dS9TR-~EP-Nz>f z3bpIvHTE!#&D&#s`#1B+OG5pwiRb zdP%IR=2x{jv)hh;#-t?KBf1c*HIAXUhptY@5N~sov0^HYYxu6MJ(=`)BqW%J{{tC1 z|J4O{88wP1*kaMT3AFvJKHRKXvTjSxs5Y!#(hsa5TfaYx-_c%rOZ%RC|6;Y38k5oO zBJ7E-Qb|@XZL(WW?ES_{hU<-Xi}kzU6Gc^l0j>5-2u6~_{FD>bx}#OiE$n#)VhYjUa?Dj+qImgz1QRIN0-H?s{CZts(zyD~}bX(92>w5@en zE6xRSZ{>HL2jS+QT@9Dgr;tm&GhRN_KLo{oa$8?2I<<4%o~k%Nv3)sgD5xb3e$Plj*hHWl|N%d2_e^LuotSZGV8&Fz;0GMlJH6W%M{)gW2iS_`aN6W}Dpk z?Z1c_f8}QBNphe66`uidtN{2!|Kl3PJ6Pty|L4Xs+YvN78rWbS{XdHK|BBncvX!=$ z2(ecj|E-0;lFdY(C(s-D^$!^ZWQhvVYJ@bIcl=&@@H8a~6Nk>6ohpnm*K@c_JQbiN zsS6T^w5?|4C!||(Q$YSod$)qZ&?ha5<7|Ne!7T-aLTI4vWB<k+?tHEQzjAk-@&!l54`agKTLMvuc_h5n`ElZjG|%j&H_ zJ-*CxAX}0(-h?seU=02Ub`{gpB&bT~4v{y&G1 zscBr>2pTnz;Ge!g0AvI%E;cr3#m>#h_y{aBK;Y+w13h@47R^}&OyB{?iuU=dyAbqp z2E;suhBNtlA-u9wJ3e_PpCOG!7nf>;AN|A0Z$52}dNmOcsR(gYP?o9n7Z5%by%P-X znI_^ENjvDL&xEAAkL!T+8yF*tUf+m=Mo59^9y7Q>vSBhxNr|zKI&ZqZ%8~<)+G~$S zBgT1Sp&sBE{yqe#HZT!tbh7(9%?JR+-cW%o;ek2};3)$D-SOqc#eFbm@snlqTwK>wU8AG3&D5?@yuX zsS~R^r#+c$f;jEbVq?8BRP|Ygj6#{{YO3u`XRUYdlI+RMk0DZr-?C$3vo*Y2Z`3Rl zFtWRP6+Ew>B~m$?Ssyfro!!OQlA+vmZB2Iw`p9v+=vSfieE3FHK?MEdE#oolAOh?Y zhRi$q)zhNAReh>gjWX6hZ4NF_wk5m5J}Os+$b3WYN?b3k<#cMx%MM854ukPIzCF!7 z8@~G!W%cLd&jy){ruMphZ_=`vyT?>acz+4EDxDKIVC~)#@PY5flHQ zO#}L_`E}n@I0Dg+MZ=?|1?CLaCUGBE>IzN=sC=4y3PP5VY56%bgTaU_=dzz%BP&^B zyT{Dk1L8fu4+{@&R-x#41GBxYSXgKwVsqZn>bp>^31*ep$UkjMY)E%#I^f(Et}$84b^m8v4JLU31{P= zg^Io9973L!{GQz~Gs;PrA3qFkEZX)Ze{jl5R9z59W0PVU$NNmmU~wOf{G7T$N=XImG@l*NMYx3-lJ9Z7=b{()z; zqx~mNgiw#|&NE;2CauYt>=h{yomJmk6J&vpZ$f3D)<+@Lsp)LG#g=k0cSEA1;Mr|O zWHh$@YgI{o-W(=h_Z}$hgP{ywv|xeEVj=PhSx;&fxkKA%{e!|98=LXQZvz+l{d>d{ zF`WV2V_}k9jz{Lq`uGTy9=9GDJS6+PaClnMWZ`U+xNzCEwUKJ}HO+1!7G~ezXRm7# zrS;G8w=u?3FQCOO-@{WHhuz8@6rM4}d47G9jp#+RVcf{lyyBRCZcg9J(wUd^tNkQ* z4OWQzPsR*kyOmM~c_o@unlV2SBD(yw!lw%Z6^rwwA>$^42NLX0FwjNM*9~d6qsD=K z_(n3p7pC8)svzR>OhPxMFY{H0mqO-hpf^AGsv^vWjv@Ymw#(CPkyL`^IXLnR$RbSH z@dz7yA1pjfPB(_$=i%#@(&RjfH+Gt1KHdFx39|*!u#O~iZD27kbViVo^SmN6`7+`N z>po{~a_HmC$;nTsr7xB%IwtAVp2$C@zIF4+Ad<=$F~$-bUqFXwk9%21!wrUY0!Fk2 z;2%;d63j^&8twuN4m_wwLPx(f69XieY4aDXH?&n-!JvjzUtizzWMN={l7k~D=6T%d zu!RaBA7;bYgWIeDgX7ryVY!(vj9pDlBB3n5gxWQ(K_pY_c=^8kSCD8)NEj+J-My_4 zQ{PB_$dGGr)ig8WPhOAt@%dy;?+AVpc6kKZh+d%_<`y@*lkWj5 zwHrZB4&xfMj8XW2wxoVQWz#WBi4T9T-vJ^p!7=j*3`a;v$a6Q5sZn|CKjN$E$b@lo zF+(IAB8Pv&{Gh|Peg*aUHLNgJe~}5FW8i0c71HPKk zh!kz&tdnh|c7Gkok zm~2a~nQHAtFa4z;s!VTw#7UA+!Z_S__pbO zVLq?BMkFRj!vdOtfBEQy|3I&v{1h{@rig^5wl?F}_CKkf=!Al#2J{eZ13zrPwlTo50VG-YLjXbm+jy*A zLn4ZK8TGEkr6LL|_AHF8wFSFhHktRwDTS&t@9c!XR75&Z>zxTA{QPwau@1*@`dvX(*lq#TacU?k3gIK7=hf#pRq6Vj7pfS2LCT^cq)}0r zVj;ej)kuhX5mA*7&;zncatz8%pdS}UL2}PhvF+(O%jfN%q4tN6TH|-<`piE)LzVP&r_CZ zmzi0-68r%lW}e05yjX|j&SA7e#G8vD(Wd^3CpbJe z5&aONmaA3~qoAWlYR&Mq?{kQWhP;?euJU$p6r2iMD6?FMyyjf$G<;;72uLoZd{F6} zTqs7E&O(vFesypz_@RmNWT|?{Hu`!SCMf~Jx8kby@ql1 zWtuSEFR?t#(wfA}G(*;K_}D)^J@2p&xspKdt6ahN4*|y=ucHSB1|Cd5Y{K%o1B5#7 z{cGKKn+SlA0{|rVB}6DB2v2L^ToLdWK<_O+q07~NOkLeA*d+siBV;CrKMUwe0F*5I z6T7l!fD2b|aySFAa4qKW#Ke2hg#u8%DPX)36vd=NhxI@}LCS+2%p6Ez0q6Ol4&n&l z9ADS`Z3Y7^fL`i>}{sMXIZi4q=!$phe;?WKrp3}xp6PSe6Gjkn~YV6mErhdKNgW+L%Wr19wK=%fqd*< zu$p^QV`*)LKVd_2U)%mCv!q$)Zu*ycX^}T1oo33!%>8rak84mXzW*Ha)fqV0+qQc^SbVg*UzmmE83OdThsC2IM5q%7Ch}r zG~sYbyp_(CxS6um2}js9anmBB?IEw|Tj;AwJaqmi*3(B3nRmvlNtnYm!PYMhJw1l| zGu|h<(Fe4+e->yr*1y?)Y7x3PL)heA7U&*xHOI)D07uf7jsx`>eK2R3ddR zn9I(y4UC))aRcGr3HGCvF9B#OL+H3pzb40 z7LKB#+ph@+UtE5yr!e)-)AeG9$CPw;H~97O7aBvvbM7Y3%VAvnKD>vB6*LPIGN8WG z=`C{uVq`fkFB{EO_~4Dm%| zzp<-COzO|y`a-AQJIZV18Wi)IIwTR#SmS))lkM_$=H5!DN4xFYz8WAO@2#$StGo1( z`g72y7$m#19sUd%Po+i9o$jD_Y`Y&d{B2*$lGiJ1md+S*Qd2>Q@Q-l**?C6R=5v#j z;=reL=@pd^%b1WpX0wrW`@H@3-YzO4YK%ymQ$yG?@#D|28Q6_84^kS-&G(n@ZM^sV z7qe+ck{!ihHc-C4&(aO&S`@Y3%zC7qlAu1JH0IlWMP)Z1=z)+5|J(BSO?+$G+f*Jx zu#+{A>zIqSvb@duAbw)#DQsZHH=?2erDyC4C;cI}2Cb#+NR)^!3$8U~0zNv}{`<^X z0G+%T@3+j7;(eA$%dZ5TUHvVoW@IJ#lQ=nd6Je)k=PHuSp(5gIWR6;zLFm`Cwjnv2 z-B!@D*hNL}TdG16bYmwYd&um{gy@Eadn4bIUIHB9p``F7BU)v5CD;K6#w^i7 z$liOiwYk}qyqdLCTJ{WAfya!VO5s4@CE$!g*3ws|U3z+W;j``$m?6jYyKj5My zru(Z#PfG2^`!O6*kXOjVUp6*X_yzFl8IbB@1iz`fr-@JvuynxRT@ioIwk-abbva=R3kQol3flQGhR zlN83kJ{uUK+%7M)^Gwk=j%`K*XA`3e5-d+nedaA z%uLA=7$=WvZG_}O?Z|saC69&k5@#&V(?6j~pdjy>~!Zu3+-k&xk#7 z-z!@X_93Jgp=MrmF`4I&vU~R7!U!t9SsRQNu5Qakl>vyzE>81hO<28oyc#Moa!gC6 zg8g;o@W>D@xOl2Gj|cZME6~wO!JN6~H-eAZQtam&Hg#9HRwnOjmAi(o>Y%FjcKmHN z#~z#N4t<&2&#L728tJE}R}UTbc%FkE{5hVb0qf;vI4Nfs_2vvi&&Y5uBHMjEd3kxD z2bjg0dAISs7@A z6Xpr|2D+DGzz}o@IE8VjOG&|rr`6tthXpNdoG6xo6T<((<7MDiaz_3=5W4DF8Ff!P0 zABkSBRY`tI{{5$n9lxSGxk+nDus{$+Hbe6OIy{5yiYV$q#sW!7wxbY z_unl0CO7A@s|_2DIqB|BQ>V~tpgr0ymX{Ue$VP(_XhE2gQgge;@#h%z`%`0-y;gbFv0&#}hYw6rO~kixXt{d@1NpO=YM&JD z+2DUZO6nMSW0+Z4Ulp7^U5nYaXqs~Z>Rbr#_CKfyaLty{Vcs*nYf?7zAyK`cB((p| zLcElr5CfMQyyJL`xP;i&uXcKgJgjG7#iu;^edxo<$=|kbw z4E5>{SS>f1JL0{OD;BIN7OfPV-|1=eD(f0#Ow5Qge2){H##tn^p!EMpYRUuIe?SF` zmb7aP^ol$VXAfHcg0 zq@>;SeBjdshL!3XQrolB)6+qYaBS>v*2YBr(cBYg1$?~-T1!vegTL($4ULWG0iu0_ z`gR&)E0tvdj7|Q9C%2)aqCy!Ld^ZMQQxG`7kUD);4($>c7pEvKO~=iRJBaWLAGoQZ z=wC8NhU|bu0xEdl{wdxWvI_|b3D#qfkr@M(TAtT0*J(h)2I{yJ+@f6SB(6A_QM7)YV4?)8NdHGxMOnCR!|!Q&5nA*4R7Kkz#~SqT3^0{8rk- zCDR)n5X?}OliS$Y>G5X=4j4oNL}Y1P3@RGK22C#pv-x6gAiLK31J*a3{59#0&*3k8 za0b6?g1EbTdxaI|vVvAzIJM5{lt7KxQk~V`hCp~I$n#cs=dim6ya0A^3&h@+T;G>3 zZJXM^Pfy;2LO{OJz7WAd%wPL2bLDMnTFSX^ANZRGFPz`ME*sXNIk(_|aU$ITOc8L2 zSn~$q|NV_xwI}#f{u-U*ufHw~2kfHG^IxOp4HGsA0=PUU71-I%eX&#zgdh3Gr}?*E z1NoY5E971T0$lZf?{sy@?!RvPMjOVVAM5`(I9n@$nSa$I?9K}o_Dv)a-(b24l?WOS zP}LeiKI5wG4ajnPAD7&bj!{rkz#XSek{^8L5zgtK~8 z@qZpMfGpKM#6WZE^K#@% z-`oA;u)XlCD$Wqk(rm78n~T;hol^zq^#n7wNhEwYjIJ25m045!9(byG;E=QFk+U(u zabEqNhCRiV_B_>%Uxi&lxs3Z{Zft@kJ)2^qAt5QQmitT1{y2u#T2yrG!e&VOk0gc( zF$BNMETN+#GdJ7;o|ci1anWZ>_TS>k`U?Y_to81d!F!jpm?y zla8K#ac`$*Xzgz3A5TVbV%NsrBuX!;r{b`Xrt$2}<06?kIl=Sx_EuZPWt&g1l%~U& zA*DJ~>s@Se=tA>lZK}aBeyFKLTtdi!UDYri?XTA_HPP>%b9Y3w?vyl|$u6<$>!-ep zk(*9YNjgV|M>m<+BcikC$y4r(SZU2MR93J!IoaCS3|3Uy+G-3`aMYXL0;0X^6Lb%k z)0vZ4C){Y(|7+*KjAzw^O2&1drER(LXVf8-sA^?%|HOwtc=Y((tM!v-Cu`>D`|mW1 z_~KUGCXxY-g~f*BAB%p4>?kZZU8u~2UwszX$;}m!Q_*6x>gwCK#lN6`?ua0aNyl$0 z#l7nax=B@anlInqCv0|=ZfcUhId)}pe51q|iX#96{n?3zM8WmNO}m#{lF8*@MG|j$ zOZabXt9v9F{}1`*J~!054v6nZTn|og9$;@CN$0h9A7ZojNeC_sVfZnh$R~f9JecvekT|I8QHdbfMIdRMJ5h>)GeVR`F z;7_ChZZkP)bsYvD(Ih=i{R4iiuYMEOHK}#{8PY?SjGoEcR-44kTM;A65L%0Bv9v0z z1HO7IO_aBiYLUU&Ul()axE5&bSMKYxi^C#te&FUg`=$vrRJQ5w1@}=k<`ij~=^&%p z^h~x{?@tfYzN)YR63!oi-dt_*3O zIYLm(@ke)Haj_|lMurSvarP~FoK%ZuS3F9}(k4_BF__vkFgE!tj0k8{Xz7eiO}cf? zr`|g`Q|1%U*mW81*EYNTX-P}mJ+M9d(jG;9Kbw=R#&fbXr=iA5a4X#r<(H0MZezRU z)7u><#n<97frkK{d`*6DoLyDy`SP4kY0xo}Hd|{h_o_%##r!sdpRbv#6e=S5|zPbNAh2HM&*poTI3d~OX?KxF3U z@6tJk*8BJbR-C7%-h0hiMVjMt=*E1OA%6hF6j2anLxnD8Sp%;BqX@}>sHXm(OVn}(OJ z63xtW^0--8>9^%+$Sha=`R6d|cGeSw>1-wphASA;+A$lBS{mUG7mBi3e{Ls3O$_E0 zl2N|aF`n09EaYi`b*f@pzkgCM)!Kz!yqU!`3|jS8s*X65Lg^Iwju~=hceC{%I=T2B%VVA$(j;f7p!4OVL@;ybPO~Ls!PWj%%!>pgP>GSWQqOA$ilBkbNA|fSt zFh8+zFyt|NLT7S`toL`jw<;@sc09A8W7yssZl2NA4z(0he6bR-cnP=83$+<(W%?$# zB+Q#NhIg^z*ihDD!;#=hjmeG?78r1*=8=DJZK>*drLn(%G%KebVf1w1!Wh`-o>{v! zn-iZd;lLNX#?GTksQ!^NR>s!R4@N`y)nLugGkg_h8JDs5;{0gu?CMYlk>HG9N{Ey@ zgP>H@lhp-0e52JlK0Ku^v%%gadH2^h9x{47OD=!J4?^6WosQPR(r)BB$S0}&hP%C; zHoPH&6`bb9F$eaCbAE+5eC8WXAs^waFuLeh{3))fK0 z+>Nk*U;s35@gDX8^8pmd!^1!C&A(;!J|AKHiPPL%Ld}AlmASN` zwYt5%adJN(WR@@V^PqI_^(NM0QxkTI-7Ch{;q2;~O9>4@;YC9m=QSZ3%#h^BUsyrK za4?1W3`o8W*-E}Xa^sOYRK*cKen!j}czKkcMGSZ%n6KGBXwRQO^ zY!ft}zeHrUG*R6alTdypHyy5LI_7;Rtqrxyq+Uu)o2S%%ed^A;&A^0@N7_QqW184ntmA`%{NR|@BhFCr&uq12u2 zD>=f@q~P8DBaTMW8qx?6CN%tc(#(ffV5Arl5!xaSP5%8tUp8Sy*)F;={ucK>(n= zo!`~qEP0Y+kOaNh=znF#K>YSX0!u)lz+dtKwnf`A|^bS8PhM1nTfu`*cKH*qzW&oq<{iB zCj1Q)w#V!w@3VQ*1ItL*m&0lsl#7t9ci$Dh3yTWV_2Xav(&`9ikBLEwT)GAd_RQ22 zXejh;5V?vaIbNaO|I1B+HD9;G1mBNL7{W;Kj)~>3x$S%-p6GRIL8&}!IUKz z3CJ7K^lT51%fr#1hyL*4YUfuWu~?LM>$PxQRc@+$^~NI32-}2`#X*t^?@3K^!x_~{ zR;=eBPm#Wtiw-Zu-}3_|m*0#{#Tm+hZEB%0BwAv9gMF?t)CojHzt7dgH3W}{1eIGc zkdxTiN699^?9T|aSao*S^&sQxyY8|ZOx^c5@-e|bo%M*dt7wWuJ55C;WC`*pC4Lq5 z|NLV0wc`wOt-Cv|%!|`GxxygNz)V7ZwjAcr8G{|8%p#nmLKj<8WnorK-9Cj^*QJ}N z@k_5@rS{Flb0Qt)%!3-_LZ%|E1OYuxKwz}O%vCYd5@NXAZI_jA!L_hsI6PBzb?e=w zpliI%Wt8|&Yf4f~4QgVV?n&bhTy}O?-YIe?TBmH)^;BWpWq8xUkat+(l!3Q{VHx6aCnN>WOvO{kp*K ztk$|h6Pt6QIXx!o>Twv5XNSAXkJdHW$7?+sM|e7h*39Hz_Wgq>wR=?PmR@A#EUFLc zrs)bI)J=rjQZ^z6LgnCeTZfY#_VRmL6Mj!9t9bunJ?F^G!4Em%D&O9IJh(FtyN5?% zQFL_d>JT!L$s=ruj=nZvS>3PX%gq`LOFKwZAu%H7aT($anGnfwqbjQzl|xYH>UlUk zYM%MwiZ%zkSq|r(f?~`HH1*tIcjr}?r6QxfuB|`UB#E*=in4H%ol_YEOg8f{&%ZPI zG*^ndp5*!vwVc+_V}?IHtb}rmk;?_PUnBVX-e@OhoL$BD%q7r`9*vCaJUu6A8g6aWQ?{~wDhpFhL)H|@P{mSJd6~CG&ql`|XNgku-M?lBmTt!zchKJ{qozw(@(J_DjUwy9;nebiowzht(uVceSFjk0nB{N3oo~MLE`?2%&=XPQmex9BmqViK6zcH(RIkrLg41_|-<9?EudhFD zyz(H%4?+t?xxeHVp9KZkD=~F!*=u}smc~? zKO^{v7MYvYz;I7o(Cnvi5PTFfi8sI!Ei~!L58j=4MM|bsT!Q(q4kwHY%M^noz!{+} z<MwN)Es=e z%nwAy>ZrG*bo*HxJZO(j2ISRDYTq$i+x@TC`P;Mmh~Ig7ly5z$cDs&$mAh!TMZd1y z{%r~8@TJ24ojna%q483y>z_6Ul`^03$jlT~g~LUA$*O~7*7WiWx1s?~mNM54)G1b_ zAJ|O$piv6HRI7XzH1DDr7${8gWsGTEr~k*Gy3Mt*sls5H1zMSPO$Sw|udsXe;sWiK zR%j?%8)xs}MHP$AY|;X|p$)s_uhy1&ChD84sQTA*xM9wT>Pk*o2Yq76nPp@**9;vW zU%Y}jrThvsajNav+Uam47~XJU77>lqNwHH9yO!^vhhpyqk2~G0K?q~DjS}Z@+NjrF zAB+Zo`Ow8Cd(l8b3!xPl=-Gn8%t!j8&-wR{Il4plaM*hAufnODsA(XKAn0xWF<)*V zg$4pvp`Z~oTX|e=)-r5ic<020j*OOj&I$=}Tb|PiNWc7k$K*1IH+kx2$eKi7N=kcI z)0A7)^1*K{Xoz~zbl62Qkw`=MyKwq%Us&1q;cWT-L9fDcDLQ~s5Go(;7X2cq%&*IP z4^sif9zv0yKYP9xm0vITr!)nY!>B(x(Hk<9naRDJ@b3%KSX)X~Wc+QViE-?bv^Fx% zg(fmO7HU7@g}b&oCjp=8{GqRIaDg@k-;8&X>7Y3;WzSysQ9WZ~(rUi~DGi=Ls)C}h zP}OqvjZgx_y0Go-LVIN7K6?}X_MeNHRQE3<>CB9^HMVwvFdGXT?8q8h#Yq9Z&U&s8 zzZt7*a9Uz4T{fVvn|F;1cedQAit;H*0j4)3MB|A z+M}$v-K(j{2O%T*yC&|{>rT%cS5?{C1R{SBw%5?*;81$K5uj={hZkrLX@(o@h51(s zbJGNkuAoUFBslz{7nHJrq^L@z{t%!Afg`tv78hvht*DR{6Duk#oVoG=BqNv8g_1M- zGwU)&%)4o}vFhdCES0F^QPsq+3TCCPHo?=b0i zn=&O(^+QHy*jMJWq4*vVqQIFVUjJ#;W_Jc9CI){D)hDo5{`3>8Hp{{BAZlYih}$C; zHKJ#e*-@d&iB*!KlLv!`N`f`DIrt zft{q}3EI!vXr-F0Z|MU&UQ9V25zuJyUdCWVOmWyaIaRs1UR3J*zh$wpml7Za3@8@E z!k)g9G4Kn!@r5%#IywU7wGqRC{O&qs ztSC!}R`q?yoR4ffb%d&{1lCyTNqGu!+R7~l88H9qsq$I+G zp$&_wT&K)x!0A-w0tflU^*6gC@=K;zWb{zGCni^`-Fk_LT5(2H40}oIRewK&g->CQ zL2(3O#_IK+!YCRQKW)QbB*Qsx|3AjwGN6iXj~hinkrwH0ke2RlkdkgG>Fy4tyFt37 zyIbjQq`SMj?&6&LocEmjez|;L@0q=)*36z+>;EekD?6LznWZIND>DSf039VZX4mV= zq>0)?G5m8QKEEG5bGLp0Wg3K!EpUww2{Uv^9FS}I&Go%D(;|?#&Y+Ad*TFGu&1#qe z9d=fi#J+x_RG!`>^A`j8gEhP3`R@hFFHq**si#@J#;|d}$Vh5CAvh|wxb)li&aac_ zxHbdpJI-m@4>QzN6C;DEB>DNTWiGgokT}G8UO#IQy4;}R7FQ1tboHp9*_GvHc*k+0 zK2_Cuk#N`zXO$ckS^Nq|PKbm>41tJ`{c&%#Y*1>mc*gL&IJa4agWX#oVFODNN1T54V#Jkk}`7c8AmLyRY+S)~&c(bm3>e~j8y=7{#NvAbez&QA&L zZXCwo>{HBkkwe*kG67wyMdqrdl(FKSX507FuPPa1<`g^91Q81w&DU!!^$Aw|x)a>g zXfBlD%nMHIcS+PKfBvQ<(4r!f59+MrukBM((rs;_yuUuN(c)2?A0+=;bZ^fTqqB#I z#A&@KIDp_Oev@n@O}z5W^#JkO8fr1I&O%3w!cR1BRvO#LFel(g+hZOoX%|K5)$7fg zDjE!pBtTH+uHSuZ{DsSi3H&cXLtpQ{Bz>( z`q|RE{Q})lz&XTskKhB7nVA5e*eI#!ap1Ammn)#n$Nafk2-nQS9B%MwQ)oqGuj`U% zZln=kiV;e2R}~?Q@|oPkMY$Xk9$N z*7&1AbAw2~DTkOO9LvMK3tsH~asWW5c$`PC#ohu>xN~3=mWB>o)s!b+!4vRue?Ny_ z6(Ecx`abNJ^?cGWV}CPg{y*?c`{gCpDxW2U7|efTAt$bCFL(eLVL-pUmSZ`u#Blzn zp#K6AD6jYwDgO^TL4Wdl-;n5^qW{ZxWLA9gn*V1GSnB_t^M9@9!F(#Xg#Z&41kNHN z(os`SjE=rTKuBe`S*x=EaR0*MqMfa6PHryn_y^$J$_)S@dXF^8xM8E1R~ z?(@phEjIwT24cld&d&OKdm&D{$Hyz{>+5BcfeizY#Q3O>etU_lo(6_#huFAY;7D&r zSRQ1fZT_YD=_Q25-;lt|CusG=cLqGwI=!yoIBFF@y7Ke)@9*ow<8=qC0z?ClL;GEQ z^lh~!NNxtyuhoC;k5}ocS9EB{K>Sm{@An>8c(e6RWtEmRM_x{V=Y5d1tk@Sx;o4i_iR z0oxn;dNgXE7f#H`9DZizzXKOdZi48O@a@U}S+e8#6V|`sIe0pAUJ^|inQ%jp13Fuw z54~^U;J^|m85bG(RgJ#^Y-GgIJ69G5*6%ehH5u8Pwl^;=SH}DTf&QoEIN6*Z>tEg6 z-<}(Br@5f#jzptD9^sFLAo8BKeEpjzO#lb3EB+^HglBz&f1`PfGZ~&&G>AFq%Uw=I zK$9_MY(K(M2!eIfiWJ~U$;j@jL3Sxol=ul8Km#M6<^Hw9Y@c6F{>s_D?B2@y`ozRU zNJxmj8vpF*Xt^vCB;@xr3q5^(km0k6@Grn{+4P2heEnZ|V&pTl4~X@A1fJ1=p9eI& z!04{4t1C3X3nV_!X*Va1y?sG__@%&^<#svS06o?J&zS|k2ZN8VM`4G>R8mlI zdVUUY+lk4^W{{~?uG@QF{9EI1Ogl*aL_8oQ2hK#|>gt>{H0FPc)vO=D4`YLG`h-uS z``_^0GvDixIl4Pc;QQ{@%EHR(dAWy%YxmN$i_8xZQU9lDuhJ%8yI)ids>(6WK?(MzZd8o$*{4R@WfO%{`U(01-m|Y z5s}k+>}O6eb1qu=EPgR#ieI#S3~%%&hmGSjtIXW4oc&$7eNm%Ox2`_N6`W0Sx4N@5 zkV2bhHD-L#X7rObnXz@+M=V?VY=NGF%3XJY@r3pE5?WNsM)v@#u8WwRXxPz=c^X$A zUjiAmA<2`dqAItg$<&uz-H7yTK9HMRQx*QY^c)YqDd*j_I?mELOsrG7iMi|UfiV~I zjY?mhc~;`Wo<%|hl)UoP`b_VB4;za3c!qgZr^@{AEeqF$%NULPSeZ~l%glY`q*e6; zCko)HLTJr~nf3o4>KjT*0oj*LO%1Iea5_4A&TAzyFz{VbuuR^)vz1#)ynoNS&^19M z0V~a+ys7mlKCB-xDd|StfR2broQK%go$!OZ{ed2HWSfQ>-UJ&S|8Rk=n4L#$Rxa6Z z1BlZ(Unr3UsDsa#c9?%|E`*`{qTS39vq)Y@S#BAKi;hNw;gUR9B+;=Np@>j8b#CX& zTs`YRJz8kQw^}u<6;9_+<)oOp(>fzn2zcL0_2 zB@yXdT=;>TInY7B?M?}eZJEJHV;_V7+cir+{yM1M)mXl3d)gU!wxJZm&$@+_cz^6R zR->t*L0&R@Fpm~~STaO1rLpg54lJ^UFAe!#-SOL#xES-j$giyYqkY<-?%5^66 z+i+~Fj&iTt#F`$F<*|GJzx7ycxuJCy^E)@IiyANzNj&!?KY~b=r;-mYcv_Q}+6HFb zRtAL?;J&)t9*l`@i;Od#Wtj6>6?8Nk9&qg$TXB^G=92F;sZ9ey6WyxceZRA-x_x}Qzp?SXH71R9E?X--gt5=sW!-X*-_5+Zr zQ6%)zn!>%`(&JO$!<_z-<9zd`0>`6Wl*$Z#lIZOV4`Dg4q5}DIB4C0$0oRx3J+I!u zLHFmU#}tmwYJeI8?i@kh-oGT@eYMd&MP!Cw4^gZWZ0 zS+HNLfwgN!jg-!)?ACYDr=Re&NFb)Tx7Dk0?J>RfhT$#Fa|M9Gn8*S@JO3i26U=3x zIKm;Z6t>VTq#-$SxEk)Or$|1?v)+)>!BUzRkB~h0Bqt_|?brJ3+h6E<;SZ}F%GyEN zxSrI2-|6QDAk0Adwo@m$LAm~3n!yGXgICq8)$G;bdwJ` zoP3pA{`f}z0rK@oI#)=So`v}#0RDh!0G1Ljm%EUV5a?XteH&q@E0>d3UP3|LXk0Qp z+vo$H;pAjwKCi`iK&rfNO3Fg!2}vG_EFPDub4VUW5fvpvW@#-eF9QcJ9V@%>wU1Ch z5OK~rg)Gpof`|Lr;wqlQD&u|lm#nBvyVE9gH;d=R{KfOX2Zt!b`epv%a)zP_q176M zyK@eVO;MUH4h4;ww|Z9;#42>^)_$+mXBIB^U5wFB zpL)@qS?qklA-v2e-}&vwwcC)vAeJgA%PD|Lz`K0dA9Jr;Q1|`UBU)!+A)Uwd#h*V@ zo)Ncitfe<3zmBo0LuhBnosbi4euKDAf+VEfs?XoB?m3)}wmgbxX`c5~qNl|+s?Cq^ zlgV4=tWi>OqRLwyi|o4z8!$33K=VaPX|Uch-l%xQVZE;??Cd0~JDl_4Wdt(1inrYY zx>1iarys1+-zQ+5I<3^WC3IM(&R6wv)XSRM9FIRm>BK-q>Kkwe&0<_$o%gWyToog- z--b%lkExL48lpX1i)nG-cs_NuIwZeVRT{VLKuQhjT6>oZ5mKcT)T74$V00+_YSGx z(NWWiw!^?CMiAgVbB8FsVT2Zb{etem>K_WpO3Qz#PG>5_APAn?AT<EmQ&Huk1{W4mAt6PC)i~%05(k;S`YopVAyoY+Q)t4=py0ta7@$tirHDa+rW zQAKr^kBN#zCR%~Ip{@-!sa3G*#JnV?;?PKR!v!B?oUlMaPcQc=Ep zK%wgGTiNL7ATkSqZz$Js4>7|1i38l2L8l%h=)mT90g^i&9^Stbw7bLF?=JFN;6$;^ua-Hrfqaa%TQe^TnIukW>Z+JU zV?9nmuG#cg*T>w|HuiQy2Llu2Za*o~q+ZiuBN|dDp+AaLsiX%Fcz`%aSWBk0tlM z9a-b&-aWaL1jh2O9-kE5aD~A4t!`uoHs(2v_|QelacF4K9|rl~=pnsh9n4oyqa>QO z@OpZ1(bB@3>A|#7FBFqPboa54B*a3TkxBP>TM#W=_$O4RwQDQ2KvsjaO7`5guz5Y0bSQ&-f@P01h#3z>aCA|YEH_+q^2Cg zuneOUKU*ll$SVfp(X%KSW@#<{K@OBg*f_3j@H&6M?9kpe(rc}FAz*g=2CSp=+w*OZ zJ?7*59u*bpHBuly82J#!Lje3GsJNKM_)3dpWh`3^uiveo(p;#sFag z?@9UHVd3GS5csX<%5@>vNsO5}si=a5iN|*B-}3>pdmz!++1|#$!$a^@8+k?$<^r7A z_esD+)0+euIsiDtZv++=yqbq5Xz+S&Eh^ft^MPguTQQ_aKaxl%%lgsr6h>PDSN9lm zUZJZ0&m%E9L$sx3s|_`qx?q+ime2q|=wImQ;JuUP~T3t{c&Z_@#obvg}On ze%fDSjZb7%V>^@PRB_!d5%o_FCAyQ&`wZmgF3z`lbWoZcwKlt=TeQRkcIm&CxQ>wT z@}Jkc8_UmJnh^-krayk?@!^@)B*RTHBL zU=Uf!sf0RtB1D|4O@_t?N(u>0nW~Y7KpmSLmSOc}%&1dn49HS~<@#QpwIdFK^I81g zXGN=4pA1t%hW`-P7k1}!!C?6c&bZalAD`Isx^DgTX6JOWo^a3eCKzOy;lmPnR&&Dd zULNlAv^n{FjV8&VHgc@Vi|aoa_`a5fXAqjIdsG^i@>q1N@*@juxNHv z-(@JA;~)DW{h0gAlWbvP4UDQTEhMS1U2INbMtk<|QJ72Y#w?_=_S#v8l6UdX>kJn9 z)&~m(NPt((No7R@;m7bN??>a%`Z8WpPEqlhwy;dV zpgFffhJWXt(URT5Fp+|Iz3aBD5`VebzPF(u^X_mUkql=fe>drwoYC`iaBO}$3Z)8w zr~ScYETl*7C}vDtc=iu5i6lT=8(;sY?;@Nu{_IKaphYJJH|m*I0iv zzA+kb{~j8rzIY|C_^Y-sR$fCviTLv!FoG=FMqF;PK}QWFJvGhY$_m@yq)8jiQ#;zf z(7$*3k=8uW)6=~C>q08?Sy}A)5#wDu=}S=sQ<#&BOW@PW=4Ola>TBou@$nDH$bZ=F z+lIW`lIip-RF%KWXN&T<-;^6!eEYUlmkz2>k`fZHXl>XvRaI5fBOYcb*J3#`~( z>(ihD2;IBXsQmky$+6%atMoL|AFCfwww_eG2j9yq>>HqdliqMq5FdD+wU~%8Dut#O zML(rkEnW~m%sVxz?!Lq($Vd$3!eyMWl%yndf~{qq3OFuLK6aN=_o>2xt`Q4!eSYEz zr2fh#^=|>72;Qgk;ei1KMa5&Dhi2(rgwQ@n2f{17Bsx#;?S)Ilw@?)XN)kx3KsweT;I&fc_^M1jKU5`0p zZjD>FY7wzh!%7gVqrV#^yo<#D6GWD2Ae{lQw+eB2s;lG+;1ZB8C zeAF}ETJ&7UfP24Bx;zD6B{eN&Y9%}pmnRGqb@RCYH={h z3hIjBQ&P~9_#ko?Ls1aKXxlMkW56;0rWsSMvjch?ozjG_*-Lpke|pqUOIKTLWuM!n z!7cH?+JP$0);%J|?{RK~VEH7&MWi#w>!3?_75k-ek&ZOw6sH=!?tOhutJ5s{C4(I; z)hg_kIpl4=QH{^YwM`kOB~Q1m2AjTcUq00@G&-1d1|rL*Gg>jaoo|IDCCvgcwE*)^ zCL=^Y!3O)?=;~_w>4&}x4SiX71Oz_!o5;k(UT5yt?>NBNi=3PsxGPUhO=V?e<;gOo zC#V2V2;wOINfUE(kjw)03{eT?+Y{60LBFe@q-0@bWn_L1mB8lK-d@l{Kc@20 zbkw=zI~sKO=+2^)Mc(ZXl8DER@SosldUZW)fG z@t5-WxVyWnlr0)8N1a|Mi8<2FG|L5jq^fd+X0*pLse@Z?OKCXZnx>Ym)o{|g9=8~% z`As@#8HA**8tNfdwM{p(vt_RPjg*K8%N635_ydZbowiYf`HX=cCm9*#l3pb;V#G2| ze{Ze1mULmFJ} zd-y&V{YSIM($&fIwX8WbwyQaJ<$DqOa4O%#PZ9(q&98=7*00%ZlNo}3pj5+!!|RwV zFG(a}1gC_(x?p_(A{9p)c0{Q00x6jcC2mJNV5oapd(h zM?bM1qh(X%HdOQHmPZD9kKw{&O=GstHnCUEaCNt)?(T_GX+5*odWYqc)B3aSQWo+s z1*!LucE}OYN38>Ws;kY1gJT)~ck0h2;lDqUF%9w^v|qyYJVmrH`2-ZYt=D^`|C#AV zhZ!quk(-scs-~zGC(HV{SCjiOShDG=`dA`_CG!KBMnNq4z2(8cO*#X%z64Xd#_{v5 z=TXl#`}V^9g56O|+cxj^f*Z65s@Rn!UuA+%T-f7GF6QWofNw>~;j_n}*>DO6puBAy zQ#-+Ld`?{1+q(lkHy{NK1_nk%qzilm1~{xNEF~akOM~1NXA-G_oC5Sjxd1rM#5nvlMuR@sc9tS{yn?0ipu%f*%lwS)RXskM!V*NhcV(p zcz=zMzPMzx#k*qTz72S3JM{q5Uc%L)$x+Oo4Fb}ER*{*71%ZI~0bp;Vbr2_BZ`=zYnQ?(zr1d-er+Z+v z;@dr_W4kj-v?B{~)8;qR&2N4$@&@9cuYf2g2+W$-;6FmZ3dmlA$QV2Qoxlm+@Pi`& zFA&Cd+-)~gDmRvIUMAR~fK4X^1Pn1GNyUhS1u=Im6qtP3UGVZ7;w484B4hRaOTrWc zGZ%j1*<0}DpH+ALe^>pg6&YB1{9FX@Sh)sYv=ydjw{N2Vje=qXA@>5 z^2USp>H3=hKj!kAL)h`hCm{m~?-tj0#pP_s{6d5;2Y3VLop1pldS|J`1%ZU#Zd)_+&V@XMZxlf)*MBwx8LIwYYw%uwIdw11eABir zpclNq3MZ_WJn?~q8WKVB2^adhXn1Yxn8#%>E4)>LF-buck8inR*H`K( zd6>S(`6(#~EgGJayN>(-HZWSPouZoCV6R@{ObjX`{BwV(y)Ho8T~{_ zY5UYvr*{4s!51lAZh91#zefnF2NFKbzo%`%@dUNe7LRsI4SP3|X&)P#cHzPH99B&= zu|)d9d>bd@v(|hGi^Ju|D4j30{6<%nJyZ5ru8Ef}ZmQhlCt;>B@v=D5ee`7|I$kV$ z`VwzYNY)L_I#zv~WqCd4JtGtq5(D-p8F@VE5F6o%9C&u?n2!~(+ahy@u8O!7_kP~o z43+>^SJuRE1Jr?#u9XfiSUMNen{2A zKz7{iFYtg54SirIO2F%pdlQ@VK(lA;ZH5!|k+$e2;@M@6Wua?~j_aOw{Ny)ePm@V~ z-Mw%b7JWZ>`G%Ipz%e1mcZQH(pjHub)$}fd&Z8qK#9wy*I!F^)Zz3#reW0EK5Fj^cl zbF?#hQ_9SRliE4-hmL}L((b!#a^7Qc3*}f3CRP$U$C71n(L>^u+_zBHT=6e5F46u7 z>Z+<7s^pFJG7juq|LL!71j>y*hZLzWCsR=UYE1 zI6D|6LrVeqkLHo`i3@gSYl(a5SdI3l+-HwHGAZPWC~4e5%1Wssl)*vak{+qHr~L@_ zf6{mz^uk+T&Eir_jbWayV-%UfD!GD)ovw ze#dO){;iozviEwIDyDG>bL#i_lRSFmk%@#4XuFRxJNtP{%qjIZgO6^tzswZ7=e2`W zKiQB{nDyLbcU)qAuV56|!j{VWXj@fP$-qR<;qg3J$uX?1u#6txLQ9p-pjoUUghg!U zIurrN<$Gj!=om>#OhV~CnNzwKj8b!1&oPi8q=mBw!*n^lLucI$Belrgprkh4xc#))|A~R|f8o&R<0BVtnGfJ7(&Z?Ra7mJA$0f=l|S&5#TpV?|T21{WV zf-p2BjbxRsGQ~`+sB*(jzifAKl!cbuE&XM4W3Tm@yBMKGy}|Yr*A`t&CWS;%rH3cz zi+t+hu5UI;q`ywRtp>l`&R~JQ>z(KsY%p8`jaW$R#mPf+vxroan;q#oQIGHL7xmE- zZQa)+r%q8o57O7i;f?dz^IBeB{mbWf0jq11Nu{Vs7ye&USrWY^%r)KBtN83o zEM`$9e6CwbOq{*PB(q)YZ>g~D)sE~R`IAtBBKU{OOWa7wnT9?en5q-nT+pwI`mcYP z(&&BrhDBcV!?n7y*jt&}#N^Dj(z*E^08-};)NEwe`)&aRY={3N)yMMka!f32QIVdE z!PzQtww{khIS;+iyJP*7RLHbyJ&iXP)6~L5{zmsBClxkc#&nqicrwZt z6ck7(+B3I6?>Ois1|t^iD>@`(+t-cXCtPK)`-FKw4BMd+Vd5l5y*>ZDooSztl_;){ z@+GR#|L?v^AJG1aIaw~JuxhFC^BaGq*EoxHS{^u7kOx4W?w@%?Nnqr0r9RZ(9~>17 zBA36HK22e#MPF*$+-d{(U(Qsjx6_`J3ozedS$xwWn+X7|K{&i+d7MtHKGfT5pNp`>YcG|?!H z>~J!4_?5{;Wkp03t=p|QTuICv^u(;qmCgBC#gU@aWsFNyp_p`3#GM^OB`kKLpWE#u z$Esm~_pmeco&lyLme&=j=Dan71x%qi9QPHe?RIL^;MBDfYL?PfiWrc;D)+-Q&qAgJo z1bjfLgN}j0#J~XZK7J-9Ms{CfVZlJX9)DwEVgg*Bfbb23f)r~u*aGC1r^676Lrd#% zB6HSv9F`$7+=a)6$me04ZhaYh|Ecfc!lEYV%9+E&cKFM+hfP@(b6#k25o1s(FJ*rI zhYp8O-9WgLtppYM;7BSnH{5T!dUFQFmW&>nSeb}D9TMnfsOEChIZ;3RU&Hg6WQ4>d zw^fuTOzpqR?OGlWh}b*R>`%V2W7MxUuKS`EKSCk?(`~i;WO~ZJtvx1--iTZb9w)Qf zT8j_~J%B0#w@j374I?(6W@sJdeQuYeynIEVc+U=@Elg}=Mt(i!auWR+@h+Jm+Urbm za@N1!E+rc|OX~9jO~2m|Qwb5@3_k#K-yBQv>0W5@*g|r=JJtAzdx_~d)D6!;S6$Oh ze4G9EWak#9#q+Ray7EbeIIrKFeyPTxqNMwPOth$!fk$rN0xRd{Hy<*3*)=erq9*^R zzu)z7Z&SfYXtAydv6%3^7t5wJ?z^5UgTCnFWuP0md7o=xZXUVb;B>5A#&UUa0TQsJ zWvVJFeDt1^uw}ACF=FFGU{^n4Ys-y$AfCI)OKkNloRWyi*;*a+E3RC@B4Y=|VBwIHbwx9St8pp%en`-l!-OI1O| z()oLn9RbtMnFJfBUj<2?_pxd>kNPeW_-znrze=g;{=hlGO9TeJ!$3{A(pq*5pedKtO}FH3n9~q?eXTwPokfcFZr4*K-}D+eA3j?Qqyvu)#ER& zx`yz$^_U~V_WrL`G7-N;=9C9H1z`U0c~aj^ETK)NAm3k(hh?*)xGY?(Glw3L-uO~y&BtgP&_*xA|b?YMzgkqG{q zR2~9ecYa;6!r4PgRMcot*^G~k?d|U;rXZzT+9V>@(b1u&r&nJyF>M^85GGg>$S=~_ z!w(b;9AhNi&s>s`9-=LB!V8z^<0pdB@^MoUO5M%JbJSyBIyQ{ETN3M$4AE`k#hZ^f zPOo`1eZQjBZ^1zZ`7M5U_W77Vr#YO*q=6?sb6Gk|@4>#KU@t^Xb@oVS!Qpad3vD>> z&eUsJ6m!m%hktQSJoUKQaKAEFs#92G_n^9zOMLeR-)(8po)2+sr0HlJdHW4(Q@&l! zCdFIrr@=p6F()_eHacc?k7JN_!+s}1cTUyVNon6Za3E(yUl#mnk^`* z%lhDcQ0%Fq;)Q8S^g*E&?T{gfM^th2%2wFeHh#03Apk(cl?+()bQ}2b<@B6gYG(cX zCO7rF{tA=gdv`12rGRp(VR_`Nv@$WjE!!c>4&9BEQI%L?R5WU}q4-eKHT zH=;(Ttk9V&8ZMUzQn|-v9S#*3BMz^GqeMlNE(JAuqDTxBe|^4TGHgz^+LLgfOf9a? z$zX~)WV;wj=QFq?Kq@Mvu`8d%En&vvu5=I9&7+4JmsJxZs<+1Vc#65t|G6DQX^txaj94)yVpl&9+dviCpl0M_8Xe&h6zj8ThKBMC1ix)+aK>lO3CSI0c za~}Mj>a5|D?_~|zfo99#JENBRU*@A6H1hIiw?{!}=Z9rBr|%xdB{xbSVUQ$NdE<3* zDw&Zws8yx%SJqauOFKH|D^ip0imo_gzA@cEb;)lM=xZ(CT30X4u8RnN)E5LqM#=Ra zg)=y=^N=5Yoc=ZLPRFa8>sl?gZ(8yy-le&IPxTibMMQPnA`xQ8MO@^LLXs2E&5Zn1 zVmBI5N)YHaI_9vMzklPp+qiID=35)}*0`u2?lJYU_P~RNjwe_%C##Bvc_s*5XnQ!V z)#Z^&^4&XFbTqWHy5mo8=Qo8vbgzemz+!cWlY9tLQi=mr@g%HWWaNnEmIZ3+{`Bsy zqbnrER1PzKQeV*?A&)3mXXnvN!MQ4<5oZ^dK00V0OQo^49T3`8hJu4bO+ypg=u zfTbj&kP=HwfJ3N3$myB*dii>%#D^R{S7&z_Z4>Fo`?cWHLk{wFLl1(sj4|PhL&%^A z&Z)RO6^Aaz{Gz=SB>@f2tzaoQzVy?&YKJxn%ERQ7BIxXn;mGbPoAymI7ggRrKlfni z;C0I4@(Pmh=Ud|KJ38ANZ6`c!e|5Bv31*E~JEjK8>Ds_>r0OVgo0#h$g+^_Eym6^` zt8QA5WVH*6@6X?D<&W>_oV;OlYtx?Fb=&;l`(qFGOh{5obcZoo=*kW1$B(LtsJ8+? zgggCCKbRljek9@%WH>epZ%^#=P;Icj+8EkT@G^E5X!2LN8hyD*6UhFxULrUa<%4f4 zVw>J6!-2SKGQjl>5YPo)&97d)+K@1{4`O9z&R`;BVmb%m*?>mgOVHWXMU*a#wGaBT zmKGL=SYH%IATQi|yj?E=`yox9l9uAg;LU9D$nu#~Kf^*wM0#GMy5r|)<>|jH%q(!{ z=d7$OVlAJmn5L~vOhnQoBo*sx;%-i6_a$IScJ^ZWDx=kwVdX!0ZyI=A+@%(|^laE# z2$58jAawM}t7)X4T*Z{6!J6(WHs~U0w@jro@2$neZthhhs!31P3c+y%i_5~JVX@Nj ztoklEKUz+i7KKQ`Rpz2iaf)u4QkNaFO;^p(lkx_mQ>*{FGA0s39w8o)3dek=SzD;z zwJX@qz|lElsxN@4>&g+Wi-^ZcS*{aZboN-)x`HlatPF-r284 zVho*~gAX7%1eD9%bag#jn?_%K`GOrWY=D3e24ZnX*zz3ow5AvEX*WI+ub#S4&Yqq| z3`-}DM>Shs#}_bq1&R`Y!6Gn>5_M{ zT$EFo&M3_;Ep@s7iy%##nz$pL3lk%kO{du?N;kJxDWM|kl|c;s_Gex*NGkDvT*ceH z^(F2whB9IGGWaq`NZBKq5URUl%9{Rk2eJw`A{7lXtx)$-{#X1k1{4Q zg5^klk4%rwV8-0&wM>okNp}y$m%dzFf%Q%%oxL^@$J!~pO#}Mkel9wW4W%bDIFg>F zFqy@y*E76zet%^gSf+IN3`2sSiI3F3HGBZ4acwCT2R1nSc&U+Bqh-LZYiAkgeoc&b zyG6x5N+*8i&6WT0Ov-8+Gf?Y;28GS?;Plq}iSDJRBnPtoBIC)ma4_gJ`AuR!Qc?;W z2>@A?h6YYUI;eKptlweRie0}4oHbyzUQ=5;+}9@|F8&S?5kHp6+i%wCv62I)Wel%* zoml9Vc4$G!vMxrlGO^9rl?Ukmbh2jk6`R~q#mJ%RZhDmeYJDZLQn-$)f@L;l6qq#Y z)Ub+MMgj`d*%gft{_~w|8z(<+!-i->UW=3PfAl)Uosy3xEnBIwKRU~R8#X%14~rse zS49dm?Nhc>uM3h9j=Ay0vgLAeVhfga3MANwgG=aU5L#77CUHwX}O^(DuY4}Gt zY@EbGJKDkAP;20CrQD_mF&(SFe?#SHM{v>llIWN$IX<#+cqw_(q3pwvr)L7URj$)W zKfPY5=rWH#F`bO1c5+GH4rBG#)ivpG9D8OXn2;4DTvCsAdQK{05}qN?b#fMmp~S?G z7GX)4G>$rQCmFD>!?KlU96gnxZ!^<*{+yj{4y0ZG+FzQ|w`zvJm~rmf zIkIJcxMD9kiXi$%P5`OYkzF?$k2guaR?o2w;&gs%3dJTEC9Do^ZsS*1f9MH>QJ2B_ zZhFL`py5sx8WbcSny}p~XyIy6Fs$Y=?$pPpY%4BkQ5!?LHdNK5vqXWT<|?)fE9qsE zUZJIxU_n}7cCffI-af)6q-p8@sl2?>isvN7QRt^=(Ulub4HH2S%7^*t5N560v)z`I zy1o$e<~0Hx$-w6R_I`igAD8p8jFC%r)C)Czkx@R#Z_xJV?2J`Zj)!nQE6+voPMNl# z_VhFvAO0dND{E)~+CFZaWH4JtMU6D2E{eA~93$Zhv5}aT%XAQGGwxeV zQc_~c!9qdX{v6vDTmm~+>GXsmpfEw>b1#*yMlek*o6qbN|0=yCCI2ETge7#RxUXyb zxE&;mCKk53-t$O}{WS0@<2f``=;YJKgXOm6$w@^`O?RMP?eIq+N&f;IUqu-h8gl^A zLVhwa;d;WVF)AQiP)KOHSPcag^@mJqWMpJIkJH8dpi)w3{IE>{k49h6&AJvokCBmn z7)Ry06Fk;u{4n(XwvBXq!bQA0r)QDZYVw(#i{X!~o&DVnzgIaO!XKc7s_jG5O^P$= zewu6q$9t;k>Tg${w~C}@=a>sWNkE@Zc^dC3FVBpl&^~_3DJcj7E6fv;vF{W|iN)vJ zIdh4OIIi^Eh5!YJEWfkkf*2w`cxmUGlUEKytK;KN#|uYwM3WBTTut_i!e}Jba@*$f z1VS=9gY(|;PgsHpm@(oY zHfHs=w6R`gB?tB2D8z$1Ee>pLu_Izc29Cu$)ko+)FnIbStIM_9=Mtzl9!y0a8tp=EV32Y{TgHzhLarBxkXaX4>|cjf~dKh*S%LTA`G{=JRrs?Ox|16bRE>_dRG={ zGwHx}rIR}>ugt~|Cux4g=^Jl(nNaE|0QZPJ>~hjuP>Nmp9lg@u?e<_-*=x%jp&I^% zOf=j7ng`-SC)(y6zGuS1g65tVFfZy0G8~AHLIJrO8^YigUWbxfUA-Oy$IZ>X!Exm4 z`x?kaJ_v`CB#0#-5VGLa^*l&bW*F@ATTu z{Lfi#3$1l(%F6ynK_a{Eb@Nk*+9Af7}JoS zMn*;|N>RL>!-In?e%Af5X_{r8Kxa zRBk+|LB0-v1wE|N0i7F=wXKB#n)<|y@EijAtpK(4{^Q6kbP6d1=Kce~dbO?JP9<>8 z1&&I9ng1Z({|gn9Fh6lpzAW=^c>MP>*Z+Q=yiQbGbII{(>aD^HsQ%AN;6H65{AVEu zev<~zuL!!LJRC0I~BhveADy9eRx-_P^sxr8^aywQ< zc+7pQBIEAhb0a(p3+usx>E*76|9kCrl9ku=ZG^cWi4Vr(6z=8pZ*2tWxWY4GKQi5_ zO^!iKvl7dzE1wcPpEIiiO5MzXaeC?_B0W{(^KWEN+;G?T?GqmJRh`c8=s1}6#)+}0 z9M6mM#V)_z{t1xHH!~hzN;%mWEHOF;4U+tsrKIMU0tRwWr&{Sf*_&HB4vlOt{RzHE zGuZRf6g$oE4(o|2t5y1my0k_SbF+DaUlt|V3yYBh+7bd!QW`3mUJkWy(3IY@&xpT1 zBkqk`Vj|+?bWJEDnA^g}N%n)okULv$cBwKP_}l%9oJk=DWE^Is(Cf6$aG4jEmMY83 zFRdO90b6XH5bc}>e@!7;TgK^{zsa*DB2}pmq<+>Ib+cJsk93QCm!C>oD|Y8Mf4^$$ zoLjCj1J~C(cFk{wEuHr;UYo|iF!!R7n0?qgx|s(!+)mQ{Im zBH|rRL)E7Ne~gR@_P?Ahw+*O%`-Nq_gX;iz@?&|vdT`4qN;M99 zlEKgi@#EC4NNX{*cQ%g*G0sS#Bvj+XUe}y$6kr^5= zF)-rW*Cb~$-yuz&h}i@^A8`4G7q?95!7)KfwpLkjX&(i!x>kRic97t;FUlX6 zyWi|DWrJJvu@B{4BCQEk@BKkN)%0xbsRmt(MWfgH|HIf@KxMgg|DrY^4N_8qBA|pI zDBXyNbV;{_bW4hqG)Sj(cQ;CRcSv`4!=3E?egAvLIcJP}9ea%Zg1+@UYt1#|7scr( zJNw74Wd>2{V<$yao;|0=wtU05@a|_++-ck0I4VyG6*KLguqmPKnCei&GAsH`xm?wX zXAFj;^XV+Kv{Umf=+byi0z$GfAxVi=>zj8k9H}vzYHO-OZv?nRM82$ty|y8-&9%qP z*Wb=bH|L|ZT8&J{>#vXH?O2j7ljsaA?)iFQ>J^OHv+~ArZRsxQx$b%CMh!vVl*Gbo zeT~~|F+NIiiTMenL3b-TY_|4lOs^)V*vkTlxm7`5o*J$iR|+-FJs+2c)4JyDHnC2^){xq&Vgq5r3kmDchs3ZwaMy` zDH(F~HkVRu`PeMV@@unwOKq+EJNx0z`{Nf)O<~ezGztxv%372cbDkwYRq_nw&_CM?xueBRrA&8$;w5V{h%JFV>9@^g=oxMU@TJz9NIxk2J569c|Usn6m z+S)oj?W|tbMou=M7$TIN%hSg4P+$9|^Y~LW2*Mx%Y>Zrf0YP9@ZstwJ7tvf0S~1-%Y>l z`(W>A#Dcu9=>IV%)mEsmIA1DWZNGDe&$483(KFBcr>)s-E)+`7ErF&VgN7e4_jpFI zRPzSoc-u4toQi92Qy36F-gP+etEzUm7L=3<(f;AXZ_~f>W5lEi-!7_9N?wOYtm3V{ zzPY)%Ek~TEr;w!Uce}hr@6!=UeORHMRBdiE;eSHVm=p#JizN?Te5NAAtk+h=PJ>4Gz~qi_dH?p%kYarm1$%*)cD!Ur>x6W ziRC|7{P7yva@ke67&rMzLkpCN7VO8)Qa{_Zd}Dp*YnZ5KyC$-=OU!^3{i>EakH2Ak zI(7e}{;y)~&&>q%FRH9Eoc-*so+)>HONMJY#q97X)FZs)i>>7e4s*?w9t%0$QlGL` z|L+Qyw)(WbfOH>$9nGgWEsWN&F%{0sYYVHHEW8Q4{p8Q==>IxKy$)UY5w6#bC~n6e zo)D6K?9JHF2$Nmq8(c8^P;B~90+Nit2|?|B~gBU*TTX*@PP*&m!pFNq_6;T5w@|i**ZD<>ES6! zjg373bT3v`R{Pwap`kiPMpKiM+3D#&_MBf}x3z)%PI^wx;>-*p3W|&**_3%K5XO4q zI9C>6Ld5}sXXWK5U?~f&7&Ep`t}A)ctg$Az9(%z9P~P2X^Wkrw*ODxp#Ppy^Mt2 zLEe69TzIiuz79AlrS0Cx_uQK#?zk@Ik;xn?F7Hku2Zspvpe;JKkzpwj)09L-6NXPz zivD8ueD{)~Nsye}HiXABptr=+$H&_ZCaJ59|4dR{x__<9)Bj>4T&s<(o!$KI{eppr zp4D$_W50tvdj2cJJJ~k8ER87-3PkM0%E4W)~z-IiCU1V4A4?x8!zDbCPfne;fjSp2$W z@E@As3}TBWkt5IMn#*Knxo-8uJF$=Hc=~p5lV>k(9*!lZ-4RR3E11*VvVS*WLq%w zC*iaM6P(6Ifk(ngvS83#nKQSt@*^e^oK(RB8>WwKTgjB5s|$9%dV(q{Q-Cf9nI^y~ zI9*-9hG7MrB-Q{J$s|IUb|#g5ha)8|4VIB!M7}vWMz*%gCm*09%*&Dh^$-*!Bvyx$ zSK}6g{eWVyn!sN85QLtZ&`^oWWmR`)R7gCRWoclxCYPik;u9H}-qoHKH{WU%G$K*)%geQ1ZTMx9%{-hyOK7A z{Xf5V3;e8B7ujD%kGyJW$b8X3M8hofQncmZN4yg`u2Jzrq^I-$4qgG=c9x(}bELVJ zwvAJASk&CwtmBXzLQ;MFtaD0E_+9Mfimx?N(HUO`Tl9? z4?QdjWNM$p(wX`yM{*3wtuKuy1=Agw2af#BXxPLqlv8r5mY>E4`wP!j4kJ2= zx(dwiCd@K7E&F>L?dg5dH@-OYN+`j(k2N{}+-Z8Xot&zFTVyHx@zonz>c9^T$3)0k z?;aZqdU_1luM)G*=vIu!m2fkPW#N`sZSPHE*W^Zx^^R(nI0gh36xB+p7IZfk1m+d4T5A1OP2srP7Z=Lb}icz{0|sD($rhU0X9)KndLD zWd%I}Qg&;@ywswiB1xSED~TKW(Wg(4EYh;Fj{W|9s{$jW!gz|U*nVLjMV3d^b7L9W zCh6j}P)DfBCw!B879i6V!El$gFV21rPzDPN0tAI1WxrwNsg(7S#c72Gn?Cnc3C)T+ ztJvX-4naX?wN~>?hiCf{&vzB!$iE^fDb>D<&|J)B`EwQ!du#-L)4kuZSc;k&qoU;a zWWT5wZLU9)>g%|7dtZkss+_>?WOlPCnU_AsRNssXYQ%)f?;L+byQ+K_0xwB!lg%1# z?gj+@D1W8;-7oeoMY0gpl4F-7{_6_#m;c*@blw!cDZXL&sk8=1ZFzd2#s&*{&?i~h zww9Lg$RHBT-PVbYn!>~jedP_~Yo4J}fq8U-?n3pzh4+%U4Buz;|MMY|^#-+=?=LYQqcH1ZQH!*m1(Dbnm zkvqcaA~FBc*F{-rZHf$#-D;*|{#=8FWVgI=K149#6^?AKxPlTGX<0qnHTjmc2!26AWb)b;KJ zBXC@ZTk4g^|0oYc6mF2@^L~ITq|9b>v4z_ImfQ3WA4Svs3l^8P%nv9_cmZ~`T@KjT z1ho_P$Uk=*%c-_GJ$2JF(X(;yn|zWJOQ-N5$@FU3?WeTkyAv|zQ9ak+mb925*gVWG zq1&vDjVd)t^V_q@++sB&P&Myu1n1P-g?`fX*+jnY_nT4{ES)6Vk_)`KvlJ9nPp|gn zAF;+42bGR*Jx%+Eh(ZWTDgX|9T98U4v+!QxxfSt(JjkR%r!WW)sD1sNk*}*_5vJsL z>qR^8fdIDp#+)Zsc%G-8UVe6F<_Tp)WF$2`o^>RH-tx%R%sJ&}Ota@S&Px28(HG_8 z=@Tk%7_AMo&V0H{O|@Fl>CL)&Gi#l`=emC95N#Q>b|gM_%Sd_4M=jV|RV*jZu)n9J z+j+GnY!{tRN9)cnRxsP3)Gaw5wO8AxS8uq=Rvei0k_PDKjy&0sH<{VmQTp{WWheo+Ny35O; zb2BP)9*-Aa*6$Z^po(?{kS?{a2hA-eyK7i^{s2y8u5b*q2SA9}u2vmUTsP?~@gYlAOlZCUcX zx}#($&LwxUde4BG>`IP&SHs}w8G+du69;9q=$xm=OHt~oF&_`D)Sk1Y&5zkRr^Uud zt7!ZZ0-a`renEHZEmzqFtWkv|1+?*n8=h{dY#iZZ^_xx`KjyOE+T~$mA}X-0K)tyc zm+bP3IL&TTwTYQmJ{jYIy|2vcwX$MUbIIUkY807dd6#&lDzA#o@RH(aM-sM0i-eOF zip*;l@WM69SxG6Mnmf`+D+dVECaRtG}@aj9%W_{&&)NnN4)QAV3&R3_pgXxkm;zZfp zPCq?81?kBMclQ)1h2U4Qb6~snnLRQx65P_?A)!2Q<b-d}3lhI-G@3Zy%o)e`24~YWrhj%aqyOlO&-4D58Ek3PY}4c?YNj z{Cs>8js^&>YX_C>zxkgHyQwWHm4seo440lMs)|t7cS#HIQM7B2GH1-?Q>M@z8}h&T z+Hb0&vQabq^Nt-V&M$7d)ml#%uY(LZO;lcob^m%TmmHi$@|T;V&ywHc(8W9%{#lDA ziDf4>*zNA+T2xV7J|l6f#wd!tXI$4OrD>9(wdx6}t2vfdePNNRLY_^X>11AIp~LZ; z{^NJMbNzpL<&$-U{37G4`wbaiV;6O_kx#N7#CzV?bMspSyJC*L5obQq) zx}HRT-FM)Rh>Va}^+FX{d82KVS?0(cG`ggnO7U%xVVBF{q~+ONW;k8m#d${c#Uci= zh+8FYCHEZ=Xlj^QSgBNYeg{PBX!g?bvRZ+8=yq=GO6I|V>2!G?rV1}0^%iccfUPNl zryslZNvDL|^ExXbc^?P)$eyuEJgeBG3c3uzEd(@nn(Z<2eu-oEDqWH$`N6?9#d4O& z_1xFPM8ADdh|u*;X7pKBIn)xlb>$I(jf46bNxl5zMGujxjz{i*ATQo{N|{kkx344? zIaSMEug)WxVus=jU!vL%T90cUt76&l&Hb7}@%;#W-yo*Rrm7tQjDAy%FUhkF<1gI; z|HfPy9V{zsPa0HALV3G&d-E{~;Stw<=#brUFSgT=EX)bZzLZB4kD#NfF`F>L;e!Rd zmY7GmH2J0$g$%=S-?bfjZugrW2B#w^5M+EIR_1o>RIRJ8uB=?s@0_1~x*)EKa-O3l zP=%`yO*`#ae>$qeOwq(D-Q1s%+X?gBZk25h6eH!&&wu;GF0T-5l-|B1w7v4EHx~N3R<8A?23pDRe)#Z$k+FYZ;58T5m2Q@VYUxDvR}jNx38p#`UKYDuM;Ndeq?6dKgsgRL#-{+-=Tc+Y!_xZF)l@$DE--3CDI7@4tT6l($j0&y`8cI z_Q&thZnX6hZJFejc{F2i3r%5slI$cPCouWrh31!l#p|BH(D?5xCWDyEf==ZF^5ZLK zOpXgdiE2cv)VezEJ^nOt^qqM-3=W>1TYnnr@Hsx&FJ1NT#vFxs%=}ZM{X;Rm>k5a% z)-mSHtt+C>J#kaLy{4clwes-R3H@%zFO2WJL^mV1f2JT#F0$-{tm1JTF2=XNU6Tlq z^G|b=4Ngzb-sfq6(FrQ4LBveV%}C|u&o^B4CHSSfsSC9U{P^Ed%s3Ic!_v)M>p%0G zTSPZM{AV=t`x~#J4X300H`V`zO8HIlhT-_%=RYP!uQt4)O#X*l$`cIZGE9xZhyU+O ze#32feNXx?u;;6tubm7GUJw#0>F6wq8gzF-BLVKS(!Ob5*TDApD_vO9tBcixFq~y zL<^why`hD^Dt_xA&>v$1)9Yz4bj3UKN&H^RsVpJU3j`=I_Uf&Jp(zf??b`0nMKOPw zc?I|2!sl`K&hf`5um7;ZPp{I8&tuhS(iNF;{QUe}3n+haJA=#IU|%2Ebw_tM7kqFi z!dc$Io7H8^)}epB^L2B)#8LjK_!9&KggS>)tbmp;U%p&-Pug;Si~MH}>fTIkBHY%E zumCj?2PY?jgSf=Pw=3@-KP1d0&On3B)E8dNNxC5`D~pu?KqoIc~@E;QL zNu3494RWQWyW1E*gf+OrA|eCjl(rnJoFWUh0)m2Vtf0Czh>Z!)7-r&!iJFa&pajHzbtJo)NCEd)i>>`rprfPI6201YPvW zKjhq3)ZU)?L0L%&Gk|&*0TRBqvlH(Is!DlzAW=tc{)!OPx=Ox; zE3;GmX=*CbZo~TL+Pdb6i z-)8VnPAtGYdHcT?8@}?uzoXG_;IDhF^!(rJh_CFiRB$sdoyi;CsnfYb@XvIc*P3H9 zE^Yf^uL%4NXn)`ThrW$cIPY?E)Bo9!->y++d!$tYRGwo^#Ne(et@orZtQ#F=JsB)5 zF71xy?CPq=U({pWA|D(|65v%>5ckCO=w^(9s5s zd8+n+icLeoHnl?T0}*|ldjG?N()5aq*)uYqM3dD|F^znl9g`7sq;GApNzWGiNuNFq zo@61e(YeaWp)Cu@d(kRt^yQ0m>^hT1DTSXL$b9>6d^$Unj`|k3@E|V>zjo`Fgl#N- zY0r?}$SRX?B*V(|K{#eOn#uE0OsJ73zN)6yum&-RTc6yI#~H~{EwH_+?%qsGF|oc( zE68Y@95qdvQVh{5Z7eJ;#ie-Y<1LE1Y-c>dCtoMn)OdEXNrvTBnk7%GsxHi`>RMgEcbZib=tP}4}br^i|d|>#m&v1XY23BF8_{xt5j+zsG|G%|4vj! zIEfysGv`2oTUPhSRX0yLKv`h9VnCBWt70wWg4LgEai}EceZx>%m130SUbx*oM`{{B z?j`;_vNxx@lXl1i_yp^}Jlw2#xtXhnMYBA$?8rePrC-%QHM7g+ND+ zXm`U?pf@+yM6Kn4(OaBGkt7GyB<85*QcHrp>CZvuWKbSxu5XC|QP*ScX|5XDSW|0b zV_RF%?60Js4LGU*wY2!1ladk{OsKVN{a(?SX48X&%dwVo=ibjPHsHifcwyEcc{2F?X- zT{Q(6W0Rx5%{ViBI>Qu)28SoEg<8dJEOqm1Y_FIiXVRa zi;@<;zCcr!kR9M>h3*e~S)TLtn;O6O%9WZ8%F>D^BsWLlih!bGl&dSmCRca&;=3Sj zfrg0qqz-dW1i~M5=SN3J^)h@*E57c32J0~31#34!jEav63=S>=Q-p;DZSdldlN*M| zIf^9)@obc!S>74JP!k5ES2#L+gM%&NAAi?$%@LyKL>%>AoRd&p*Ux4{@?0dtQ#myM zZEjIoip5N9v(_Ua^)u8P#quehzVW1fI%AMAf5I_oc@Cf1_q`+adFmuH4&~T8vjrZW zNgX{5?^2xAKWnb3B}r-Wow$3_TUQ@#%(|r69Iwz$@l(I(>T$ZFvh}keXQxa}&BR}< z7O4<1G%A>gRTQD(T;Z_3_=x;`e52VT76XfLYsO-}@9^@N?u=FeueXbmvl{nV5=-cX z32g%TLEyk}O~C0rfvgwat1D$;xF+1!FPFtM%fBu~(Dn`t&n?eW;29l{6I9!j#cUwX zyLTK|7C%~8G*;cP?Q1vOHCLfUJwuZa=|G#F3h#;KO*>E?_-bKUd~$NqDtK*sN;HZ0 z4JDH9Q({^Yr<5w14wvZrjpN(iwS?p}bVY5)?@os9+R$y3=I?J0Tg}QJ1>g_$St(C` z@rz-)xU`SAva;qM5o&sASBd(&A7`o<;eY&+(VdXP-9dEteR;hJuCH@S}Voa9+M>phQo=I^L2&f zK|x!(ry&XKJR$%O&^toQ#gQ=qgm**9vq%glt$G@VW;YJTfWEriF3kR zlRhG&E-~lXO`i+*3q*o>!465THZ`|6GQ3E-g25q~w6gUrRrZ(9$^7bFUoHp4uw&|N z_Y?R$L;`*Xx-y&nkDvQYXHH*4L{?%O+r0~$9!M|a)2BA|eD}C6cy+1d0a7TCQ;r4T z)KphTMMYgrsRF|SJU>C&_4MM@0x)9Q+RxaUs$zFtwb_`Nt!~wzk)KXc3hJA|{1F8& zZEMghsEq*T$E<V6hT?xUt8C_jCL0rd-78`t4qARy zYq#_tK)Eez&W;qH!)6n!Pn;VbmJ@UjTG{Gql;CDuLedHSo|u?7y`L%?DKMQ88b(L| z(x)XDC8H-!kO8!yCi}2Mk?HWKbo!?#Rj6g*(`U6(T*^V#i`@H5mxlx9d5yf=_RTUB0rF313lJ1N_#s* zzDt=^CVu>Pl8?mG$XFiO)F@#4)Fi)QCA&d@hbeeg*mbS)sYcQe1i8#k>HRD%)PU$j65?DO%cYu6G5|sQz@dxzu~q_nU_dOFb9uD9V2o@RL|o;-i}G z&kJ{=Cbe`fFY)9P z1aycOXD26a9v+27!Oh9rlNIyp>pocNk7B>VSn3_tq(vxby+W>RX_55rxVHR%AJ5_J!U zS>oyF=(royI$vK+l$k(pN>3Uxf59p?809v2q9+Y)PgQ}$|CDVqTH(VrDJz6uojub=D9p_r)?1@F<%Z# z%SrxFuSh|gHe=y2{il?VKi8Je);WE$ke<3Y!~=4#WLN<9GlkiIxV;5ZQi10T>+Tt$ z_Ki9I3E_#`q(5?U*f&0xFuhH5NFlJ$FP4%~_QhL8d?T<+-imP1O268Phxzr2v0|Wz z%QibNOK|)4i^Map4;*b0m_ukkB&=t?Vzo)Mt`;q&Hcw7YUb6Gxq};#Yo7;5ZJqFfl z>t*1n!(VS_k|~ypXmV*~8Mkdi%-SEBg8y=YlfAtkT7La$@<<@V04-u(|EZtSp~`HY z1xfrY;f2DC+DXUKUx`g3r#%oK4GTt;t{twCx9r%?L-$|?lt3~~+loFoNyeKl{kAI@- zZOyNfa(aimI6X{aD2M6A#>FDWbZWER^gQO^Y0xn+dU6GY@)f1%o)7NI1eE8i^9mma z&e&_1Ew%K_<1A3I4l$Pm%m;7KcCPw(2dQCPdDX?YJBJA@(v!SfS?}GX2d=a`AGv1o z-L4Lyl|HK}3E7bVC(9NI(S(B9zb~KMgM!}EiP3DXQK9HFS(6ao$L_IWee8Btv$=cT zPl8gRc6>^Vj)=%p?@ja(M61~VY0rqx3>ov6l{y&DPeIq z5N@hkZ@?meSI*MX()&dyvq2{>=I77v7pQv=_2!SagCFEbx`WVt&{H9Dq3;~Lwze#p zNjW)F_B14-1Hwh0-nBd8DvMP$xA z&vReag~=Tqvt6&^^L+VYAv;zkOCtWER#yduX}WxS>NtS@(Jq5Bqu+Wy-5y zSLBIb&n3-Pf9&6hR#8D%}W^oP+K(s&6i{5|k zG0o2Bi^Bc7QR365M|i(XcQ-P&zn)&o&HV~hMzmHntorh8AueGA_mBf`!m0nrg}7v` zs$OlGgQo#OsX;$vmn#_ulXye8-!$Md@>kvNzA2FD>gq-gf!*{Rq0*?bg|#D>rGPPc zevU$!TkM$(qq+IMB1>u50`qb$DV5hsMsEKe_Fa1CrI|TlTZh^5ypoBlmD>!1T*MkK zVT~(F;o=+Sdt8Fu4&hgGeO-Z^X>q+8ZV7p=fP*ToHwq7EFfbNF^Ipr{AFnd6b-AY+ zp<1vyBu3aEe%Vxm5Kvadf|mVjQ~0wYBO!ZB&8Q89;OWsz(dQrKmX`i}2N|tiQeb+f ziblU9+2)9h;zMg_zObwc(jTFQskmteuQtyxjhwOP5>ULXGIUN5brH)2F~;9 z%OGstHP`pSqu*MJ>{SD0W>5uRV6I{%0kur%ZMFx>zD*P4{g`i2N|u+b>7Dqo>>)l~ z_t*#T0JYR0SI_Mxov##&1414B_T`ecfogvl%){hWnFZy3Rw7=8V$8@Aa*}U;;X-)1 zK2eP&D0Cerr%9bK+<1+0s5I!fb20lzUcCENF?WCfRnL4g;_!%^si_SC$$XO+I%!IC zVsrk&fUUETh5RMN){B)a9UbhN(M~>QaKV8Zj9p@CjD}Ewd86b1ylY* z3SQNuIKIq^H%gXl&fMd3*5!Qkdd3YzsVRc&=G+>aQiSjvuc?w)+{50@3bF|WJbdUA z0(&Hgelk)`<{8a10kLJgM~Mc(lrQ@1zX=EkP$e?gR z$e0BfRmhlCO}ID(_Ew_VD%d#45{AEV8GiF%MnAZHo!4oyU0J!l_7~Z?_jrG2rxPG0 zwHDoxU#ItDS%Q=0#9ne9c4Yd*a_7cMSQQBsN8mdQ{vMpGqxRjR91#b(6eEM-i=yN< z=WZb{5aFAyvG?RBj60)YRZtQVs&C$RMcWrbrI$jzen)VfK1(n7_^Q(Q@Pl*GYza*R zopO$`GQ*a}PeHu8>Who;?f!8;BSSySv=aK`G(ujm=pxthk(yFSusIdW$5F^{UuQw5Tg z!yq}1>|veC=--T~LWOI>Ofpt#GQAIZUdYxNp)apDW#xIRE(Y-Ou14Nb)31MubRNG? z%4AgQ<5*ML?I-X$jYc6YA(gGOW!)ZKn3FhmA%y#~ez+3E%||W=>EpQbw9bj03M}?B zUF#gH1@bad{65CVygMDVF_FDaSQBs~9yc0k6$CVn_;hb?xzwC%RoHMz#_UIuE95{C zD(V9jOT<6#U+vRR{Q=ZZ948?O2^!v5t)qR?J3lTF2kvvEg+nEh0=%RA9;{t)T_;D1 zk}o4%Hd~WFFr9<5k#qNT5H;ASs8%3TgE_%kUlM|$7Sz_)GCY6&)+#roQN6g@rn!&S zO26GJOSPbul_++-V}*rkJQ@us9hVG9~ojCi5vb|C|+V*7Y*&ZS+L(g(bnhqS00(QM$&+>ZXrp z#n|cxosO)~w+^QB$+C`lod+ZIag+VMZ!YZ~$pZU2L7L-<69FrWV$fj(xwGKG(Kk)vE zps&9=VP=yllUuw!GkaQe=ZeM8vN%*}|GJmw%`o%UWQ|Yp?em?CAFZ?e53b1u*hc@j z@tmW3Jm`*-?5bW{Ob;mQhpF31T&u;TOxDw+D+${R09#OX3A)XE7VDY=?21pVB_X#>11ZFkifjfZiSZns7)* zOIq5tdFy!k*m}o+ULoft)$eJ~JbH=82_ASE9?nU=BN?iza`p3R^r~5zRPHL}jJ5Vv z+)Nxr5)DJ#1}7=&{56x48-}DCr?y!=4GVZGX>?b)owpY#C|XzKLgZ+V$taa-Gp#P#8-afpTkO)=m{^Yj2kaJR;kkAK6uOWv%_CvdaFvD9s2R$3){tW%xOd9}jvR?vv3~y8F@V$NORzG z?tIb|iRp^){?yR_DYfjOqF!C4pj>A1MK=H{fN?v^$-zhFM%jq_4l zM+ayb`)fllH%Ng3=l9S>72u$ne9(11O^M%DySir&nA0H;eXg=vx89v=0=($8(IkkL zE-oy@aD2r&C$QwEph$V=_xRI3yik7h+UhFwv@#(JtOqSu9QUa*_{Y%aYS@clwcSxC zB#Z{?$HCeVGIF)krQJZPsFRb^FAq~QGnc%Rvop<-FT>ep)>pR9&yK7*`11e2U{K%P zL5^p38Rq7QyX$#%N)^%F(*0Ob@5!S$3{rhXa>nx0TPT1DWH+~R_Z*tbK&iPUjYm&Sxh`)La48c&<-%nTK?#?IIXi_?QE1hYQk^UE&c$B_gX zNtKFZtKXG~CTmT{;t-})6OrayYz|jFunxDU#rgS@Y<|^ReD3+4|1p}asmJ7=!0(0z zeill-kufoXJ6A1ox_l>%*7j;l&}@2|r|I zhD)?%2=Y~|?v;vFDI^Azyd3<(XEm!y5GIo>jHfWGx<_dyid&?C9EUR-E4 zFYNC41Tb#>t*kt~Cdp+neP(!OSZU|-)Dzr?^Ajw-fEqr zM@N{_8{2aC6c3h3&I*ZkcFG&EPX4Xh_T6=@tep6xdyYnsmXINcN$cJSzU1F)~IWExcs|!50W!KgubY|*z>8ZwBzCV4P(TR zkPtV|O|EmK1C@h(71+$LI5q0;X+(f*!;x3qwsNr^X6fzRCme=&j~*?|%zQiD3Am5U zg@$yz+F;FYz44pQN0y8Y7bDKI%Kmt(+-x4Yr!y}RIkj5@!MxS^O@z9-`jfDhW*?GL z_)Nqc9|4jMZcvNup-}9p;r9Oi{e**q2+a;0nr`2H0Fyu|TlCX#^a-!E9kmwWkD{VY zQNhQ#j~+<8P>kcIjjPe)jqGc}ZXM)F#ZP2eo1%%EdlV8x9mlh*8i6MsUs;LnP4>{A zop3^N&f7|7m z21=9)$7~#@{evn|F|n|XPfj06A~;@sJ#qd>vY|+PDnHL^)4I9LKw@y>9A@?${pN2U zIq&hHUZd1%RNljU^r#qmJok}t-%na0l3fRwCZid!khwkXUYONQ&?Rfa?x@2UW+mgs z|5~B1R`>J`H@$0#04k-ML_;J824AbVUv+hLT-@J9Y~pJxVHyv21uZuWK2+U39z-&3 zYGB-g+FM0M#k8hmq6<3`+5bFkjkEJ1BD~F2!;`KTPv9x=!>h0V-w#6MSjPLs|9~&o zv|~hAq%6@N#v-3Ii7_21A4&;1kB-aS)oz=Sgz`H7mkac;pxg&Z@GxrWr3q(PSO$7}CnvjF zKx8AIswSnuSl{$SxtHO#xU#-3BC>BRF2$xDBSd$%PnUXL@OB=@#iJP(hF7mnOzLD` zCgZ=^LqKk{JKw#ttBphL$JqTe+-0RG#0;qeGwa(wmkOhP!R6lveTxi<7z0D{&a5Xq?HP5uE!9Ip!C zG%nC;`K+spC%!6RMj;0Mbuc~A)1&%OY&y#qgoGowJ_%(qWY1K{ij>^k*FuHG*{69(H~a9Z-+WjCBGzp8Uj#(gFpZDlay$cJbZ|Z*CnpEE5e1!r z1nwuX;OC+c`C$L3n+sanp=3d{#OKr2)`qO)jb88X&d%)j{l*GoP{4yFHJ}CgfrKzQ zNo4ViWD%^3>n@Kb-1vaS;GJaE8_)ZF_r1is`;;tJYasyv0bn^dm>~@r3vvOS_m#^` zl3qN7zJ&0BTov}w0Mj>ObALgtYN*EEhMm2N)nW;(w-eOd&36MS2TcuZ3-noZVju#z zTu98!`1<%1f#-&)>B>MFI+~OA5jbpM+!q%Y_i9Zyy+Bq>N=njFSI@Ut7K6rft0gAR zi|5amHpYqoczAStEH5oh$ZD?L6~#=k!kLI=G*(E#$Y|d7lcGK&=&i}$!Ax0X3xEJq zSY@I#%jKzZg7YXhH@CnlG)SPS_JPUa#I!AnNREV%(Ej4YEZbq`w+qP5`{2^@EhoV- zg2hDgM=@8qVy}a~?qeKBg;t9{NXdLEH6&=KFq{9A3F3P{tO*#k-$PlaqN0MiGL$6` z|D_$@EUaogei?w+E#a6e@UK9{}4D&Mt5tu!d8H zLRSBz4n7$qzz2}cN~L@NJIS73+@9Zz!BPVt9}!-RAD-bV-s?wi66oQ1RU{V67RzS! zkn0(yNfo>dh`RM6fhGBu=~_;juBoXhfP0F%VgQA}lK}3r(1nFoTU*;Gfx0@h^F7Am z`#n$zQ*(2-fX!lujDm8oyURV-Br7!>yJPbE ztdHrH3_f})Dhf)Y33PWqmgAMG$;y_%{sz|Zr;6ZUY_7GH6~rYK%Q6YYUK08b+i593+hAA>g}j8DXE1MY2;AfcmA!wP}$maA5Gb#}N8yf*-aHlWP# zzajzZkZ>p!z(LvA&cI|Qu*iCI{BUcE@aWdk{C zzkh$K-0bch)VGj1y}-q&bLl0_FD-3;0I|4IIQaRG@5XC$r?-N4$Ate0J$)WP6tzr*yatDc;FyCEH1!>~$6~1TY^Z6z(s0lRlA_Kk6eD3j zhj`1($>|7X+0Fy1DATQnLfP7+qL6hF7vB=%Vmh1o;|fu7hpe?2T-ybdg`N#Ko*lUO zc1OS6hPR+qEM9?)4NVe&H3~L}zHhYROl@tI?HD`h)q=?F0xvh`)koh*Mx`LfNPWKFM%V67&$zh~5he>jR<+)N5zIVpU|) z4I-hagZw|dzbf=1;D74+DwUQBFe#Cdd8Fx8bX8u?lAi4E?=KMptT7N6C*oZn%JSq% zNJzjC^@_1SFJ^%d>Q)uM-2gna5&5MiENxN-)K|` z0-Ln7v?RG#3=Z}kLA;+45qi41p2i5-2M`du;0A%>2pFVNVEy>_(4{l`_cBmm&bBr( zWTd7(poLiQnA?dXFsoRwmDX`3^$l%kCuj}xTIv( zv^N&w7X*DB_|kLJl8|C^YB+FyTwYw{ZJl9*dsvSePKC$xh|jg(i+UiOUai@{U5SHI zJkHk-&&?1%&Pblx@!lTa6TS2Zu7^b-!NCIq0}a=B^s4dt0G@aA#DwO#Itr+t&;7DL zw-o2ugy$gFxIxIoee}q3a~wz0uW)5;t={d~Xae|0?;jqzn`x2~GU;L1JsV}%!90(K zg__*SLnR58E`1e|a6utN_kE;#WcL6P4J!)^*9571H>*Nb;C~iI>iSH+r{!?2%EajC z34|Lsj@G8C-X0vlArI|z=-6w%V|BjbxQPGU6_sBG1}Qg53!DG|^#6gF_VwbVpsgU2lkpM_H{l(?@@#9DJ zUr?mDuK$+Cd?e?lxiwmFS5kdpuF5|rC+8g*L_&C0Zffdh9-dpBw{pKB-NTvAZ|Pe>sD$cB)wHL)ve2qhn)Uq#z7LTlBdrQ?0JHriOFyH4DoLEW`TE zOq`c;hL9vYy6ycm2uqf#vAzA_8&?dt!L_xuy@hUW_ab^>TDBV+K?b~Kn3zHJVqnPn z0)yFlw%#4y#CmNIX_|!9{Kg8nm)XqtPiK4k_uYmvI<;CufOR~5`dYgc1JN@2jgbT! z{sahadY}ofO9S79zem{p;%@-1rY&G za__I&%}q_Av`V;V-&cSC=D`==U+Tg%h7ubJ8yK*|vjm?Q`bM;HFEBy^Y=8wMtDvCS zrKJa1{9Y0mq@=%qxa#(;l6Rz$MiStiP;x_wOhil!Z8!@6+QLxj54t}oH=3a9cm6%O zTxIHRcNxQ3xElrI&<+R5CH$P;1b&3h#-pSoWo6}^zJY-v$my~Ay09t54z{MMAfd^} z-M|M>8l+~q@_BJGvz&LqcNQRL_1GqJjbH<$PRge@yq`89n`UJn!Av566HfC=i*+f(a{R&+$G_t|CSLO-yVhTmQ*TsLf!! zRt1?$AP%fRhexW2W$_LERIJ9#&YXqo%1#1=4OFe85yiBEYSbEVFH6% zE))==QB09A*@f#am;Fftmd4fYHKeT|9OL2U#?$enOTwUh3O4lq{{C(O)BvNmG@c+c zXz~6i=z^{$9P5xVeV+!6#7CI?$`6B5_>~3OH!RNxXcjx$<9o};f&(v z2VSuxQD2cUR-b6deQ$233tKqmA^iqC-r-8$-MELR9$&TY=6}04DDdtwkA*L8&x7Ac{5dZ#FUB2bXJ?oK zrgJCKz^%tjFoq)wGS8Z1)zw6Rt|7q$Qvo(FSxCfPiV`rreo&HMRu(>ZiZogTSs~cJ zN))$;zD#1&u#G?phm@#GXl1Q!_Cxj-(h1?HPw6LPK-=t|a-}94EWVENJDz zAL-POF1zKhGAb(I6hz9Ls&jT8OiRv1USC=H{ku1Z6@=n9usNe)O(tF6-uDoOZ}dJ{ zVuhmy5aO4FmN~s2sRW_z+xHO;X#SjfiKhR{Re)U!yUMsVkgR^wHNpaN3;@i+%(N$# z{TMO;fTHs%(my_(<+fO84T5}!Cn}mr-~4D}3=Ux4FHfR&;-KFm8p|eYd!3$-iX|zY z4W?gsYp|Ofudf^-b91;a|K)ErYlxz)MOrdsVIH{rbqv%No{gdrp)oh~&}>hrrd z7qSQ`;foh9dPUuAp>ALr2P`rzt&suQ&&p0(j$Lc`4xsvu&jTr)`rl7=VPUw+X%KMp zU7+aka@PDfI(~3q37KE{W9w1?25F)bK%Pv5=F;2u=i@Fig`K%2xF~}C`N}8#=tl#PR^x$V^LIN4}2ofr)yE$)@x?%n=IEl#Um&o}%1{{0);c>Jl7`k>kiF&B0pd~vJ{CXIMbOB;w>z{fv@k}2U( zBL$Lkp|^-t0IW2RZyzk1Ex|phJoB#pis-qA4RU|!|^gQQRWc>G}o|I8QJ7~b^r=Ldd&3w4kmzT{Yz7tp1a@DvH7 zQ7F*7uj%EC{QS)x9A+4opneF|9Dh=u)Xpj{tztaa|HIjP$7B7!f5VlOk*yLU$tJS0 zN{L8Wl@Zy=$lgVyjO@Ml%FGT$$u12$l9G&sB4m_tJ~87`PuD1W#WCbGDaqB0L@KXm{;HAUdDtdl8W5o#*Onw zhGDKy5$JRK`KM1T(kyr3^!EER($F|S(G{b5@nLjoDx8b;Qc)QfY}@XGk*Kto^&0HN zK_?xHoSktY{fE7wjd8G&h~9m%f?72IktPZVz$7s$envS-WS90s-CscOa5qgakDN2M zvI-J&`__|-R!rmJKJP3I?;7$^g@)x_|11Hep%&#sgY!Zm; zCoVH-5)L~)P%(A&_C{xDqLbj6CAJnssgG)E_P?DlYQOU{Lt@I$8l=JVJKIgFW2pJy zhWPpSY;}`I3hq=TqVvnmbjGqQBI0ijJTURxhX_95Z2H;zJ?MIf@H4Xq{yi`dHf-bf zOz9M>(zK+~KaRCl{@P#0CuVq26PO!jis|w$MTzxoi_y{1-dh`Pqy2JCucSG`A|o{( zS@jeA+@7ES$uF|OoV?xe{26Iz(zxpWd&v_17>%=GoI!(t`8_x9m)hDTg$4=!CkFC0 zntOVLxwy;+O7x-m+s8TiI+6WqNBm`eizRpt)JU0{o9|{jJJVNu<&yh3^RI7HyDwN| z<8n88wd{f4&_;Yb_!ZF#oP1y)Eaa@Oj_h(MfWWVBy^1NPE_x5M1A6trbd#9UyaPD` z^Q;;0qYv^bCNZm=tgJ7iqioj?{rjc=V*tArHNhyijS^A@@CIYlu;x#*v&RUlHuov? z9=gcIDeV6UJo5UrHH_(}PoHQV4r&DMqGV=(zKfb#2m>PXmvLI~#p*CLW3~#o;;6zy zI!4AI|2t>x-d7M$hl}66ouyWWM*X63UFRb%^Xt5Y#W{<}jsO^MbY*PcQ-}W8)HfR4 zx79N%3p|+c_46Z?21_}UeD5hWludY#>kSf-MaEqS7Z`h>yf;jcXLF-=$}>Y=h#`g~ zxA`sgfdd$p68sIf0snpd`W5eee*B{onD>Iw7>Aeta63GiTndP3M+z=+fyu*M%)twI zax`YptFq{>vh2nE+W*V_B@hj8LNGYd)gszmVHjMou(A>m1R>}_Y1cje)8He<$9=a* zE;o2>Tom201SYkc8Ev&;Yx2s=kHs*m-Z78^PQsc7Y|-++BJ}O{ZbJQ4tq$~UEzNsHPr)xiU06=%2Vee5fh}zdb4DOgoDSc#XUod zO|xs)4!yhBDr``(`n3oWn)1{p{a9F7z*^ABl*-$G_4V{fp_LKl2w?D>{frflV=AWi z5du?YNm@Nh5nwxiA^C$3K$mdn?SokF@&H2M(c%0PVEl0(ssWq8y_7MN4t;M*|mFjc4%3pF%g&#LH#GbNAF5_9kQOrgMQ8)4At;mT3W)Z8yhq)Uyc*d zo1B>77-oD`{+#qLH6dvEpRbn4%j^i0jnK`Hnf-P^*Kqw!y7!(JF1$wXCVZEnIybxS zrIhQ^&({t> zo4q%*0tXrWqi`zDeJ6#vx&@j?%fil%ihK_H8y-$|*!F!zE_^+$+YDjT2g|cTcs3O% z8w)v(rdcj|e5Px%i2AaWYm^Q^FN-4!6Q>?^*njRx?2>ZuI}-72mA($2pvO~*PEPhfoCvmUvAuo!N^N7BYOOJz{Kj>T5L&OE?jN=QDBZ> z!GFHwPPSX|<9G;y?DGhVQ-&=80Y7Q9^JO}Qma^z6RGOEk&3jc*T@({-QPh|&=>#hA z34)D5cMA)oG&e!;4SoFhv}%~0PliXrq=jVvegb|&n~X=6y$=vZBS(;|ewe=!vTRR| zw_~;dfhY>iuL3vUqziu#o0uqR{x$`mfQu^+>`RHkQ^t}pSjfm*bYzGCOL3C%hEgFcX*YAB3!Bz56kGxJxcnKck}o+;r_x{>dAUgWkLN7Cmpu zVC{N@?(hWUcMO~$EL9#LV%*_}=Tuc$PI^i(a&U2dgnB*3GVxl;tt@?Rq zeZY*vezQo}AFAH2@x=AJZk?;mxtoM5tS*cCaNp#@q9QmUVi66gS{@Thce3 zDCqO=)!Y|B%lv71c^Rey**NvDY-jw9u7hs%BioCl(dgV9A@m+imChyZws45Bq?czH z>I9PnE}w>mhLVz!J8b@9W>l$|+!a`^wB%&+SblEq1ZlUUDbHJ4u7Sb_LhVw&KZ%>{ zOC!({=qE+UB4DXr#quG_7ICL~2l~kq$`|C05FOmQd6QI7D)#bI#8k5E>}MFfo8P}b zP~rsOB5pJEoXMBYj+WGy8`wTo$XE^xVwv3tt`2-={yCj*`5M{0nuRT=CI9`F<@lCc z=ZyH`C=oUcp-uq*z9i7^;-*%eMhE}VGDO|7v>T9Se15^NKS68DtMJ$;3-pbHg9C~U z2&~4&sXBrw-O8O3K0fOWFrz-2kiZ}-+d#CN@-ooom)2k~N5GH!;|>680Y)U0cTMGI z0gtn<5ey0J2`&iLoTS?i=HV%X_+J9<1O{#1TVG!XQZ;;fOLG;u4ND{$BX8YP@ec^d z&NO}vI|rO~RO(_v_%o6xSHNuCY0lhX?9#XWA6Djk5`qD5IroW7=Q~RqYl~km<*E7& zTcdX!Oa_cJ6% z3E%`8IWCdYaekKB{j~Y6di$HLdQ0*G5N1 zHa^n;DU2<_j2`QuD$>o5`5NrUh=At#MMe7t2XzprSfEoM9Rrorac)L&b~HBw49XhV zyJ22N&mfdKckG(akaX{Ms>x3&JYpY=QYrt5cspZ=1V-qMOh`A#iFE#sw57 zHOLfhVOOHd2VIGl6n5=lFj6NemRr}EqF|PBpN9dye^>v!&M4v}*uZePMpVovO-xR5 zUO!YDmY4SxY7--)rpM)QC)ur?DU$3Uk&xsZ-T4r`ROs7x5E7aaX7#==CB)YA{Ipq= zcLQpuN5hJ07V9`n_Z0xB!CZ`j#&z%nrK_iY z5sR)vKMik^%d&uaFFs$pegAVu#Fao4x6dll}7hZ{b2G(-HZt2&_>A zPdBz+m3${oaNK1=#a;dVzfj^H85xP|E2Ij^9)RdEIolTXQor(&M7pcd$F^(*&dj zKY9PGuDmwUqdtJ_B?Tk7rVFbz31a?M?Ylrm;r=~W?!G9*QfnzMzf)>^f{61}S4PGm z(vwU6r^-a(!CKyQcJ5a-$LH-8fvXafaa8=*RQ?Bs?gn8&aCzYFU`>^~r5Q7?K!k*h zz(M4uaeTc0d_OKCQi=PC@rDYxtP;doz-x>GC6{a8;)Ej5AfZ#p?1&en%JVr($ag6p zWM&RpGIlamWH#mBvd9 z2Sbq4S61!-e*l86OoW8pI~`CEREf}Bk7E%LTi<+75#j|a3FC$NOLy*FQd27hCd!>j zm4=H%RGB8_!h3la?IIXX=uc2ECUo@Z56}guo4LCZbCfXIB_9zW&iCoxZ10+SEkQM( z2@H~Y0?3M6;JPg#CCByQ{rmR`(j{VIu+ZOe#nF5P!M~G(!^_vNmwx@S>CW<7txGA} zRjh7c!18Av4zG;p2nR=IrvrQ!YHSd@HvneK^!y8s2_6`LLzyo^vf!eas}H;m(hKx& zy1N~a)u?m*&M0y{1m_XbGfz*MXFc8BJPN<48jx00;DdBJcZ%$@DF!XutCr*0Tb=UI zP@zD6*90}qfdd5W1ieI6d{NO1VpV7Z)WLK(JIn8X*XrFj3W6K>k(8Xg&U@=5^A8*} z`&t<5Bb=O&XaM)VWA29H3nAD)AQ$=_de(@C0JXq2n;=XHiRO~i*~q=3zbbdZK1|x#Q z2Z$WdvZim5f%a_f>X!BDV3W* z^=fXu^1-eFQ#h?GElGc8Wn`%9RvWrk*&^~yc!tl$H3SSq-Z-4JmglOXs;VsxGGNIi zO-%uXlee%nsIEd31H6S;)gIY@Xmki=hoE$gj545>$Z2YAZ~wElcGJV7*%I|uaFilu z9rQ#*_i%GFr(xfeyC3!-W<8$@Nln41?@J<{+YF41@9>3@@W68JWuf6ynBMb|S;GD^ z4xm33t3jrmAH;_4R5ES-{f}Vak&0yiFOImZ)qBp-;WxK++sFuO7VBSykOa6Vz|Pe- zaF9l{;P_~ZpQE=TEZ6!RLS9ccP{n>lngtgXf=a0m|6QYkf7a;578k6a*o}8FpV>_m zlvPzBqEx{_Bry88%2@ldpU@RVOd?B(iHiUB%EPcB2t&QLMG_> z_y{&2EiDaEM0I(2WFKA6w{PD-?ZffP1rTZ7UKl@j0q6Zqs-pFm4wGW6pyIP3}-*Vz>~njKz2FHYFj6?aKW5PBPP*P$Gq~covgN$v#P!)H$DxhO?TU#$! zAspb-$JidIcYZn0r{;;8!0{hH!nOdX63Qwoo0rg_@XhPj01rFx9}y7}Q2dSeL8_f0 zq?TX3c#)4(F5*6nXvd)j=>-Repv%$K6=~new`WN*L*h>%=@Km%X||VoK@G6~^A;$F z=B6eDKm=}G=Pk?_EY2|zd_4$Wu>MGT@(XYjB9Vr-dVq)?D+N`iF`-UOgIR}?nO5cJuc>IC5 z1m}m8C`4&oG610jlH+I+lbDcjYOsOZ5*HWGeRZ0OS)vS^g~$N331b!& zk-COPcTW!)3CSSTBJe0V(-bF9fRo0VcJD+E4EYw!0`19CARk1(!(Px(wQe+W++!U7 z+6p$4%!~{nAa`&Lq~>n&&qI~t?-5K9vZiRv1q6uJ*WlHVd|X&u>_tub%F6zd+4H`@ z)y34GCO>}`0;B!D(!9A04jm~(c8so;|C;UMOWolf7z?ksrtSWLmTgN8whreZH7cqH z>5(h%FDBaM<>di}BB4Fl)8h!Ig9D9Q1)~M5GX;tyH8pkTo6mr&sJd&SW=4(%0p~Nc zAA<3Q{s!hFXZ0|f9En-|&Q}2FkX6d>xXjP5|^ruezgW7HBwN2COK7 z$-|S^z82V|s5m^LtfZ76Y8jQBoQ#`vd9>MewGcjXIGBX(e_mJWmzQ8JFRtuTX(Y|c z&Mwuji%U#=4~mMI*bi5t%5LNn8gqdT!=Pq_{w8N{F3(;;I5kYpxBoDPGmn4$+KKkF zZPAF^sHwXkh#Ea`QjT!=xpDaEIH`Oiw%CRb&CJbF$?DX*mnS9ZLSO;2v@-i%1oE&| zpL_T2t!fZxGIT0L+FL|KByt6E!1Ed!4#+qHa<42d-smsfI~U2}8}Zl5EUh)b$ z&&kVsh55NFgvQRmH82mX$oB(#AiBi;Xs-cnoP6^36Y!r2*CV2$K=6q`+<*$}uC6YO z9a2;41n`AUt0+GoSS}OHmY7xF^R_MspmTB%D5R{LyHEH;um)g^Rel4+ZjT=Q0&>DX zZ)_;X`8Z!+UpS*QRHKN0o|rH*HfDQpV0>bNf<;DxpT8Ky3iJw8tS7-t_!1>1C85Vk z<1_?LU>#7%d8jpS1|LL-NC>+-ZmwuggH;C(upO?|(9{&;<3kGZCNA4B;649W*h@^& zLS-PeK@RUET@S>!wzjrHl}PKO(TjU0yfI{@qN1Wg=J+zOWAiN4Z-xA0b;TPX>VPBu+ zBWAl`gh3)BUp_D};O63zDr(sSWIH`jO0|f2;xub?$^O)G${C3710|Fy$w+v<E7~%XQ--|qFbX?qgWLkW@+f)~uu`XIULw*XWB@9;<@syM= z^~Jx|wqC-q>|1N2TXia69|K7beiHE@OZ8yrVzml0*6`x%f5@#ptl!h_-(Q0>6G+Ep!l?&Y_dn0MbJXU%@A{zxe6QqWDn`*4@7}!wQDMfQlqxuRs4sb_M+9NR@P(6A}K`^~do0wl;sY0U9}_zb22M6JPUy2&wqt z!_n<+ZEaslF~H?iSu`kk^oa$tE?`hEapcI(xLtH80O}qX(7t#vO34e#bNLFwLn!$0 z7u|_q-Gk`AK=z0IMkn7n6_wk|vx$!%ui+UGhd^l>FQ5l??5+l&8A>WD!o@}ule>EL zAWpOl!LMfBBlxysG`&>+JJ-$et3whW9!0R%goo$RLj1G^$PINE`0pyjp9y0q?8lfc z_;-8@03h()pV-fn0A~>t_6wKT2hUkqO(U%gtp_!ST`EWb zM$f3KOzt^}7d)N;AT`1w%>q)q>-~|8^ zGD}Mv@aIV6fB>n5G6T^b_%?)N*92$?e@{&??Xq)`E{={!al%G3311_bY<5Hz`WW~x ztZrr8-vuFwxDNc|6h%O{siA>zQv?+#m{@=@RQS0#INU@s0?!U$xO>3C&24Lbl&C0} z8mQ7&>E{V5-}MxL5*$RFr7L=R=mS{cxwZg+tyggkGeGZWW{x6vJbDUoG!y}zPs0Ab zl3-A|6ohF1zYXfu|7lS3b;`5o(@WS1o56-FvSx|P9T~f^T6PJT*U8BVF~CQ}dZ4mE z&;4U9Pt$!qgUb5r`v2Eztk*x+PdaW#kpDuksi*e=$PLUR|JB;Afq~kKy7DL7 zS$7sO!G2;HBLqh+aJ}W>%b*;Bgk=GY8nA}8mKMZoIXE_8Nsv`Tf5Wmp&!WD>+QPZ| z(=E8ocM!43LS%p09ztDGQUc$YoU8|n1ILQUKN;SDManrJR3N&-7jyjcDz%u=Z3e#U z*8flY1VaYchWt7Oqo~ou-}4Yr`kW7I@BF{EJ8kSK%AZ^Rd6vHyWd9tbj5u0)IP#%z zcZp_X#{az0--FU%1oUrXLy>n(T>QGtKObP{lPy5Au=r(s{K&6%z5pGjzo&cLFp_Xy zqR${8{dYV5R;Lj5<^TK##EJj>@qhCN93MhS%>P*}(*OI93E%ne%m14{5SH|Bq0WEr z2e|~4Wc^*O|DPX}g(`}7ENq3LZUa&ad;9tD{UsL?g&Vdu>jDA-*TT|q$ZbLtk)s?;g|91nHeD1Z2$r`X zKVQ^#c(rE4>(9}|4X%3`e-Y_=I3S?lpLSVsh&*lmLRe)td)JVZ067QiM5rRc#l|g; zN0&CE#=C;vl!l2iHyxotXIp_or6zP14c_;h%2>at3aHZJSxwCf2t+WFcfSG8yMe-j z;=<6@09P0NQ6c(+c2CM_@&eLwfPP@tzwos*sYQgw2pW1J76PvaCmk0Vxwafj2eX%( zl;?LU5z=Wwe#`#zDNmF|)y#hfL6-3xLAR@;qZ}8(%6QjBmA;sjJ+Sky^_FD>%@o3Y z4Uzn6LPUg-g$2oW+PB##fdCwJU!5P#@&h2ygDn9I+~k5{8vvVN;x3QsiVBFME&@iG zn3~#HTbIq_fw1s|J3b5R0!5hQ?cbu#%zVCST7{QM zZ#yeZBQ0l8@2&yb8-7);fO!8BGy=b~FO}rw9XEQu?L|%5b!*y9sNYO)v=;NdIKGKv z<}Ge0w8wY|lTjQSAkqG@pzJiGBa)prMl`99Bw%(T_DM6tP!bYa> zAS+}FH=tXmhB`MrwF1-Opqa_a%i}t^2?iL44+^t0nuPA>I3#c`;6K~6k;yns2c6h3 zC}}3`zo!U|-Rmc;bM_Meic)t#QioR<+v0W*=kLaJC!MTH{Oh+7}@0OC2_YHLy-kJb6iL#aEk z>NgPWV;@i~2(;CPHtk~1Uq9QkQll3e6Vq4gUpU4m8@u^Q9K5hYa6?D9QpV6fTi^r>qK7u|TMua91M=jr_i!h?c3z>4|?f5aV; zTX6#n1%!nor#6%bEgOWdMeHXA>Dnm!g{H19>bOgQ4V_IJ0=R?i{@~<6tBtaIal8)5 zXl|Br`w{XDVF-$*cqJql$Wg~dvOI=D;qN{+B;@2J{-4%lTVbF44tq-)lKdX2_1@Yf z$X~+@4f&;|J;1OcOJFZ(tct^>@nMi4IwlwgV3{T}vO&_>#om!G?AN`j<%}t5sk)gj zkXHwls(*!MHQkGYe=C%aPz~#Sgu)x!g?`NPshh|Pecl2w5y1np<#PIgQ^2GU3=){)q+C-{bDv-NqS0d6 zcJLfi=nSpB@7{+-X|R8gJF_M6ELbCWOt8R`!9yE;g6e#a*Y8CHt)AkFEqRL#6@z(( zxBqmIA`!rPs=53C@||)OqAt^yjVb#WwzyPN22o9R0TfH)^XEobH*b$~qfBPY>0W=4 z>I)ET6`|rH??#DwX47%o=Dcun z@8IgJXpDolhvh0Nw{r>%xC5B<`h*_KSLapF>vwD!GSp4;RyWahWdrKy_z6*0x z5=6gs2@uYCfPc&zd4_J(y_J`CG$lSp?^6wqyqp}8;8DIM76jJpQVxEl=*;d{`pj$s zSYtIja};Log<1st#^#^7tl_iV`+G=734Q56i2zSM)4$%Z;~!gl2p*3R{e^=~^XG+u z)p0KTmhPp4)xq_e93MYr_48-1&%Mt(0h*D_p!vbQpN1 z12M+~hq1P%6d3j()!5Mws($V_Z#FU+GgK1wv%MlKY5x2)WF9h8jt1m{4I3&u$+*W z^J;nn?X-{~XA7O{1RU+=1e=k~gJ zWsFbw&))n|`7bXnB#VbWI<@KT(<`s2i1P-@cvMwIkkr0Sv4pIaL%+;ud$kSfnx_2N-$4;z z>^Pqc4pB}Ir}MrTn4tq(ne{^V1Ur49HB?=kTg^LN0X3tBr22O}V3k$>G=zjg8pX>< z*1!>iqr`+}l#3_}j#s|g*f!zElQmn0ekEqc$BMW6-K`VEI49H%`)@xEjX^2m4_tP2 zeXwKm_W+n0HNXe;Aj6T+0^QOxnZ(_}sUqfKj~`2NqTDRd6F^4HUjFjIYU-KNE0vs{ z#3}`ag=A{K|MmU)&AmN62qV%G6G>bD%#Ys7c&@{xyfan4Q5)q6=)5S0ic_|eCs}T7 zUTJ~**WPoNQT2#wqFN~}?ZVcM%N4-=2v-!^kF&ACACYx&T1ZtDLqC8p00G}K$BCdm z*5>s_FZl)qwf(ASfU~>k&LHwHrn(GYM{#-JeNUihC8Qm>n>TL+xVcGY*7=8JDHaK~ z8I&zf?5^wVdlq*$&`>PKM@5-{^_QJ()Q^u4&?Amx{ za(-vEQxhXSct@(S8uoFf(oZ2kob0~Yyq@))f`V`6!I@qW?lNBMgYE6RONd0y3~d`r zgnOF0a-#NI-rTmke)o$tsvHYs4TK1lKHcR0M!roZQ%5s|jfJxI?_uj`C`mzZyk#tk zNU0vGr}Q`UHnLICKgZhHwNGbeq`xST&lb3y{dzO{w0bjX^lrIL0`AJ9+Q3&X9sd5i za(kvCB{d`C?_A5+`M)rX5X>J!Fdt(JaSZg^TID9Kz=vc+KD{m{ISwCgdik>8en_U$ zUm!teCBfr^n2hJ+&Rx4objsxz4mF|R6$T2~=#kAu=)oY8o2X2L%n_c>iZ>C$-Y)t@_~ zj>avPT}do3eH!|27X_CzL%}q;hpM)hWPEE}L-oV;Kr7vpW}NcRowqi% zp1EHeZeaiWk>b9uhRae+B(C>e4zj#&OU&`;3+d(gOo>|`lzCf^n0J^3^W0SL*vyOy zP^03I^RhpnrhPO`j)!-DbjT~d$ql8F%hlG$KDtB;T&i~8!Sgg;aPmyxeY3h^P+Wf_ zKJ4uO?gu4HKSZ8#N;Fa6;FFX8lm@?i^@@*|x8ez2Nho)xmh&vl(I(cOAWHN_a0*VHd|*wp`@&k$%KhugdzX~F?)VY#dJ%nC875^sSG(M54Uv{@_FooxptkkNtv(>FLD=gJ<<5nBltvsPP)DSCl7C(jDo9Hck9mQ&#*>&x8fwOsi5L-69s;~w8YrcI?CTEoco(WU(AVz#fn~e+@{a_GvYWpjk0qN;(BBIE-CCvl)Q&19 zIr^YPrbpAqnW0<$V_$794XlcEeKYl_E=@&z_%Q#f>*{!{|AT&$x2z*&*GvpPd6=2? zXVS$dYnA^lp?#R#E5Vkm|T7Ex4ws5x#q`#$T%K$fsIG^6rN=4@w*@6Ng>O;_k{6UDKUur`Q@qi4-zfB z$VV*gF80b=)kbfu8XOeL(>^sHD@_F-p*J)@$uRiK>m9^{ac&0{I;<>8cHF*1)O*_ko**+qf{yomu4D%*S zhf|Z%e&vM}amRh@)p}I_DT<#O=TBGN$`_*fM);Zun~1>_D4}zQW?znC+^&xL%oOZ=Og) ztKekV+|O-ZnKy(iHx1Vh3tM+qKVoH4I(MbjZkm_<(&Bhd%T2mlpPnB4(CKaa;qAR= z?8>&w(~0`5BMlD`QyP!9 zUwbZa2@F4W`_QA$^mXOnF|{SlRR0pnw`pY+=gleE%@Zmt!k_rNK99Pcq%EiZtrjDY5gg> zV`o&CG)a$*(f)Ebjh(X;b%Pq^S)Kl5uH}DbpPKAuQYhP>!>u5nyOO3X*Kz#3J4t>7 z_xRfSkGa{=J(bZ<6W@Q_N|hF=%Pde=XJ1OMX?t0IFE#f4>gf||C3?Omzsx>5w*LK( z!FRn^mkW+(wu?Hy<~&N_?&@aO^5&sxbhY*z?+eviUUnlgBm09oE^A#m*>TR(Nsl{U zr%J^C4fpWVTFnnEKYG&drhShgQ}*3mBK+IsqN`)hRZ?T^ImV&Ts1%Lz72)j1+bypd z#Ny zMy%1QZ0OH#x{ZT*|>k>_olbaC$dviD?vU6sqyJL_dx?*;WY z3nu06TW?iT>z1Q_HPyLo>|EG?!%hF0gV)wXw6sip_2s$gK^vo$&4dQ`jq%N&CyI`* z?pD8SSs7>RLBqmb6np>Fh35UMS3MZYxTc!o%AKq%Ysa>&BuO4H{M7#J$yYbdVCg4wO2+xCyckx+SnK`oDcr4A-pLY5)94&CSh4`KF@`cplI7 z@xUXpf`V$?)BuYSN;$@F-x_BcE16_LBf9blWa*;&h&ks@0^X<&1A$z5B*^C1n>|Yx!SJ$LHjeT@cAc-dXq=|0GX4aD1 zt13&?kd2Vo@|q)Up0vVz(u=c>2a2n#O6ECfk{`IIKDXrY%S&(zbwCvdX zPG0KF7uzq@$gt^aR{#0&G5Gn>jp6dQwp-`Q1(~Qv2KT#3{bD(PBW*k`4k4=WE0=U&i=y_(J}POhCOR8xH>l1N!+uu6dUMbyKyf<)3QtyX=x zBROsq{YrihjIV!4RJyzx_)5=KW%r$sEj{6*vJ`6T*G#Wp%XkUk<2Ep$z9SV-jh z`^y+ z57(to>kIdfrI(ZXPN~T;MbCLRYh7CP(}21)6HXl2;O9&V44fLX5LC|Y zJlsi0)Ddc%ckVz|hoJs~+~lIbPXenKpy1!N9mOucoitx`zUuAmkIjkvb9(bZ$ItPv zGt;-7 zfcl545l6r8Jf=@<*il&3)Xc;8u3};Kgm)adS?>i+Vp^{)G1oWxsd`beIi%MLRV^K= zlj7Lkg+3^B(#dsMe&*%OvuRUS{&-_hvQ9&`u9*A7P>I!^bNa9HtAx(0TryNX(@HFv zG&D#r6#L-q^|=1`OpNY7zGxV-lzPrY28b=*n@h1A$W6Z>CTDnYqh0LQ;?zYsv(U4h zZB|QsZu!GWB|fJaX)oNo7jir{$^m7P`XM%KtLc(#Wl(qVSev-n&%2m_^cXF6OJ>@BhAk?_*7(j%)Sz&+D5C zcSiV4Plk)Qj!Gu(DbOJ0*mGe~a>B%{Rrl%iYfocorq(`YdP#0|o}GKmWa=C>=$^!W ze@I^{Yw~I`mRpnP+=OS!g4@%m!>WcvTLnFQY{&aLLdqQZulV@ZF&|BC;C|iN|E{}q zwzTM2V#sguN}boq+MO&?H*fdq3SQ~d&^R3yryAQ}bbCzj?p#WpeG8QynaAv?pryNU z^^;{Pv30Y-+}amLbWVSMF1i)30_AOXF5C?>q zG4!lAfv7b#Z639Ma@pkCHBqO@*N`rP^u=89?~3Wj$I6#r%9j~`UbcD9F7n#d?bISy=frj@;>lM-nlpjb%&?yS8oTX%73WrO5Pv7 zCh$}8=*#u_AN?CM?QSU~@jp#gGc(2YQ>2%hteoev=K9&s=kcHT$;YK@t1|FBcgLkq zhsIPm#~K3t16YPaL_NP4N{=<<)L7dde*EY98q29s-^daz_D_%Hj1?@6+h#+<7e(ma z+On2A+g&`nz(-tBu`+TXgwxciEBGvUT|dZ>4}L*I7+L@(yzoMNd39`>X+;Y)1gCteOGBpvuKij=xu(gGh4Wz zMlAf;p?`1p$j!q;Y5t$;?OWX5KNwTV9JM)^Qn%D7y8ia&$oYV{w>l1A_LtfdPR967 zpHsCkSD;OhzyeQD18x~2qxSap@PpFTR;#`*FDNNtth+V3Njge$w1rkQ{ahEGYb6X04P~u^_Z|OW<%Rrk1IRs5 z9b)|xABVl$(z{O2exEH|aB*35Y?z!uk++3KOl)jsGTmB8%J5a2g9j6bI!;{@s4KG? zJXBOxo2{}aMVwDRk+xh-HBztGcxFIL%XqU$W3n~kYtP75*u(n=AC{j_YTet*<8FN< zFyutWdMZnyR+8wXW|1M`tgnYWUC2e{9s6hE+ZBD)72SMhh zW1132OW!FzsZy`~L+iAbNPKua<#No=DL%`d`5*UU!aj{U=IHS--7=l){lith{fNuQ zo+f@?{optJnfZnN{MpJyj0>|rL`}asTCWiBQEw*W%Rb>t8jKk{*bPk=2#2yua7MSnw@N zut3)?^a({;xyQ|h^txjc@0@$ch-t#Bf1|6U`!?tg55%YY->|&4CGsIcQ@yX;Z^BKq z{&vyl`0l9Bqow!E#qtZ&OjC1@|D65ttR`G_ly`tVQ|Xl7gI2RxZVjuCkDXPrCj~rc zNaRmMzdJ(AAzmr8{EcI#`ks1NQe0qMn!@Sj-KN32(qg_3Xgp3nv3#HD9>>Kz8l9_b z3Z$JA{YkE83%zFd(P^(0SI%7xwThhUll$pXUv(pnS(o~Q9xd-vT5*oIqk*w6Bz~;a zU%Vk=(o)A;dd*yQJ%LB=#Hg@%$$hqWXAKI#2=;An=g{{z?4USUuCIkSsn zlx+^(R}KlkP4DPd)EU$h_2p~$ncLL|ou}T_ZH5om+kb9Ud2N_~W14}P!g0-#k0N&gcA#LqbCvWT)Rfc!O&cc?0Yd1y#6?khj;PF*fSJ7d*N; zI>V%UhQE9bUJrfxGw5E-EW!S_-ipqS?YTTOto$5BB7h5*hHW|0b z=iFy002SqNptPBKwr_(h@)gQ$0QVlRTU2!zP3J<&2F-45iL)1&}MH%+Pu`GL+yEe zR$H`jgG0VCY3+*J@6jGeo;|z0?X__XpYg=wiw))lrO8}FNAySI*~~-Vd^gycZrOWN z>5Z^i>tkn%*~WWQ=Eo_L9<``i#Alkjc20j67UbgyQ@X6)D{Rpf@v3%>@L|TMzb5NF zBBhWSD5$&iM)>`=^gS2&)eldb-4A1N6(~>0JsGU{R{wEc;!Sd%8-49>D%H$F)#-oo z(ie5ViV%6|t)87=e*Bk;-sZ3XPtAj9*S?_p?E^FJj1IngR=uMg)+}ouDwrsrbv;d^ z>9;U%w$#Csz1eNAn(NGuOy zjquK)s?uDA>Vy8AXLk)rhVk$yjm1}T7bZCiWUI|J>q>`=mjx{f)AhN$W)!7g@DCP0 zM?c!7%flZ2@loi-*>>INw;e(5UVb{%t||Hzf{lA85PyQ#l{k!Qco3vU?g;&A549HFkx^H24h#i9^9*v+>wIlGb8>?W3W|<39KV8t0jy zSe2sZ$?Ntbsp{wnkXOfQukx)D_vi-<8{&r3EgjH&G z@lvNh=Op*fWrh3IX+PD5!#5P&vs7pmWT;NwFfm@4Z9GtS^pR+Nm4x=gi_O_-pG1qD z_bpSNQTvh7KVW0P*<&AdSL*M@;6kbx0!rizbiB)RpwBmhteT!|0uodRA>d&`!JbabJi>*Te1xv@EAhFSi>x`K=+@goDCx z`;i`AyE#(2j|zt)1KKYjFK*duzPe_6Hq3nE$s?fW$)E0!mqz`phL}+BYOTdsn+m0V zopRcf=+TSpv>Vq$57t}rEhjZ-+!M1bEGcq3xRk_88`Ne!Xvju=U*07C$M*nXq)MC_$}y!#6A+~)bTKZhok z-wp0;&84=^$_zMoC0f<~dzcITPPyT?=Y@;ozyAc%S?suFJQ2+e$};NwOCPo37(4P2*5z31p8>}aoaZ@s?s zjl#t#>E>&i-2-Wlb`@#Nk{6$C=KSOPY2JHFn8f8)S4m)SIith-kY6HtaZU{R zNsZg3Z+AXe_g7gd%GRQmLBv-~0M+N@M{Y)^$Q-}llBF=FFZ!)-^pz)7ae@GSP}{># zZ%e5U*|>ds|Ndn;5pR9VR&BvE)$l|Cl5t+KyhB;@=iUA17@gBuJXhK|Hc z6M^;7za%TR5-8r;q@HY(8UEhyuXLCyedD;#DSHNqm1&=X&GWM@CJqf6H#9AUW&SYH zyh#;HnLMtR9m6BTa7SQIWzFH_>1f-t_94znmr~2McX+*}PkH<*CdSVAtZL`pvd6-u zS8hcgVeSnc7mEt1@9|R{JbZ-7^ls+9lcJ2|0%c<7EwijjmxNDCRP27)OR;z;vs>7m z!}o*5ilza}(GBV8scD-J!4#hqeLtPQADmd(_2*Sy&duJl!VG3=EGI-oYNWi_=Cy58 z8k_Uh9;S%4KK6?XYc!1AM2n%%?Y=e9UrRik=PtI~D>_1ZC05yR+KK+VNhJeI^9RSl zgb+jNr+;2Q4Zo=SP11QXGjuFot?crEa7xXn)r5WL_n4d)qrILiyH?wuJr}*I|G|Em z_Cj;$n-5h#MC~VzFcA~yTD}6IL0!+_l`^#-NmB@?Pf-%xWb`>j(Db8J7lq?c{YsoT zq0dc^0u<hYp-HK5#1Z@0-Y<~WLcuEgJ1wfbBw>o1H+HDcCTnY=z?0GY zWBjp&V=WVxUo-~k-zfAfG|j)l#(L&}AKAh&`G{bPY=*X8O^5~Fru!yGI!sWe~p26ys)EP zU6u3-rB*~p=K+g)B{1?g67Q_po;2;UEeVle7^L?YWmLCGK7Z}2o<&xtBv~oiut7HAP6y3j^#oF zj9#UXB%rE{M1mN9wpH@)(<*&;pQm^j-)ib{V9!~XFcXdnMs(C_MU&jZt%DGAA+|)O z2}$zL{DgNe`1fU^QDc#|eI0{?wNmC#P@$h$vzD)xa%4O+rRa{_EGT(f|4) zN{THh%L%GIXk*f4A$snu+6C#$YeMVVXQEhzixRO2+e9P(^8u6>!*siO*Y=))k`~20 z{adJeh*mm+=CpsmfXYL{etI983sT{c(Tz^FJeoHx&*CA-dPas)n^LQGcHcrlSSG3d zNq^xUvI$eAlUZ*B%{T9kMfOTJp#l|5%%zPvH^;>53-@B`vt?w6 zZhwQAJN3Tcy_ZN!7GjIJBh%8tdT=%2S)*c3pX3w}ptzZe4M8Otv#b{sP`O>3gq?We zKem|x4asYK|2s0wY8%9iGD=Vj5Gpn-=~*%wAk{kw{R-;!js%@TkBpC~=EN4E)LlqO zXb`0q^?7)N&u(4z!>mhfHh%|YZxV&&A*&v>J7ea~mw==#5CtNNw%K)@2KmoYX9RM zGt~}Te#dS9p7yTsu-yiWctbCtPzUpvUd*;+!wNl4b4<#ZXD~ zc4554DRBS7xvzc0Vj1yoTWH!$j+NvTn^bNE+&%m(E$qt^j_P;&`iQtr8j^R!eLu?a zMP}IItW=JP|NOkzuHZi|J(mJQR_wD2H3E0a96c0ra3wLEOpQfZ>>UT`&M&>EUx&zK zF8S|VUziEtnlP)+vt$TQ^7fH?=)f`jac#3Tw?p{qK6dZc%=MnTeKP@h<2eeySSxcc zZ9T4dXYp>nkntc{z9#!#j&xqBZ==iXrA@KN{tA}+$AH_s%l zeR)AuNHt<1Yj(xO-z@Aa}U;#0&0;gVBLrAt-SqL&KtsqNm!$D}mHeNqq5;{DMq z8oKl%c%!G+X;sYaiuk1^hHO)-{Mug@s@JaeA5*02nd(mrvZ~s;YT(GI_8@pPqtkau za8A@EVy7?m4Pm^UGS!pAW=GK3?bw66V;2&~D$bOYyOywh!d9@3Z z&~oFWX6AjS{Uy>iQop3Dn=9jcbEFh|^J2UjOnIr@Unkw(9Da{#1_Ax**R5s=5Eow? zn3Z&br+H>E+Vt>4b&bt{*7-|L{ix%8p!&YdYa_O3J1>0@^l3G_>koEpXxwf!acFrJ zHOU#HeatL3WGHNRc<`;x3~sthB99X#6DYq~^7Ryuoj=Z*SvESh|80#Tofe6g5%J2@ zO`pdF)4?yk^i=5nP(BywzNy<5`{4>1*(%${FO~*=xrOCXy6DEj&yIe9FJIe*Kd{N! z$eu=&?`!?Nu1Q_%NLBeEt{l%t{dxBsC0X58rPz5MnhXh9>0FcKy`XV;_UUUSrBO8o z`P)CAl?-Hd$9i4k7M`_ZP80ex!x^rZ#OyIr@3J+m-xjAYz4Y@G)49`u#Y*LtvU?<% z?oEE@DP+9Hp?PL8Y=k9LWBE+LKpl}5`w~aDwvFkzu&sqhXPZ3=#_37JKV7@NpTyra zuYTkC@jf=nS-JQ2RYxSVO?s%O$EF;=Db&#{%cJ_A_U1 zf>tp&@i==R;~2AeuVqV!#-+FneeNKJ&%$eZdPzZMj$QWh?ypx2PX$WdE*?vOc*o4Yn$VU$owbi;?cf2ymwcNp2Uvex z%TQ($SPb-_yYxlu!-AKNL27nEzJ~W~tbM1c&YL}Zv%g51@f+I^H@ACzJ`~#VV#55Z z=}2SC9hu_rp{R!k0@EK?womVpHSd$u4c20m6{f#6LoM~W=b;a?mgVfLx`)yf`Ea`uPVbIqPcmrLr*KANKRSFk>P5E4APVvRB7PAYi1`(ZenQ27ElS$GODHSa> zZVx|riN&NR(z{>p-_g+i^yf13-Y_FK*!De55CSitg3Ep_lh8jgmi;+i*$!{ zcOxKO!lFwAk?!sW>6C5+q`SMjyXy?x``zFE&bh7we{fA$YckhdbB#I1b3ga*-eT_T zn>Ze6+79tFp5(xZy#B_wI~3tn>=Su;4GIC8s4Ja)C77Q2G$~S~|OPt~DJzSW|^=tK@DR=uJ$M#2%mMQR698AHI*&*~v z1fEC)*ko1wN6<{k&o=|H6NG%u#NC6vy{K@|z>-XgVj5R&t7d|=b0aF+DYhWCw6TGM zgF$W{TxR2pJ-s;D(7F;ZXo?q}i~N$5(Y9tgei7;ON+i}7L~>2>RP~vJxTp{6KfFSv zJeG|2X4I*goI;gh?<>oRC#`=;7`SGow#EMXpgcZFOqTt*O~X5jIDy(Do4C!Yt8*)j zH3U^IBY5@CT3p&;jJOm2P{yd(-i+M%2gXC8cMpBNIs3E)W@mR=wcqw}w#|`IY3i?Z z%3$ac_3QWO&~@5Rhp>CQP$T@D>Zq65zSO;ZSwx-Fu)D|)|FOeeqeBNMom|lMwzr7M zej|&MRx;5(iJG&fCfn&=-WId1KWMj$x)j?^1H3rA7a_q_tP+EIAC`kesVKPm zD|S7~0{QDN(x6C7tbT$yxc0d}R*Td~C8e)V09h-GAqR@TZTDGkj2k9ErJ!SB`6bEO zKYuP9g9{@peb(IABECC=5fZNQ&qXqOg?t1n5DWfVn zjiaQ0B$1#;X6(M&L~{szuYpVt*Ds|6e;zF_B>zcc7!5PxWinc9UlAf5^O#r!wWOe_ zJRm7=3@PXC;Hl90YKKMMP(4J?MpYt}5QeR-8IcDH38Y^0K)a^Qj#XOV`-nY~VYhSG zN%y@KR!;6MHq8A%fo-3CN$W`ZR=h3yi@DJ}Hf~bD>smKEqH<=)#ti><(U8)S;TPHu zODEPnYZ{!_j2}PPm#*j>NQkwC&gHRuni@_xV^Ey(GyWSpy%-1}a}q{w6tcx!j$rDr z46H|DZc;)DpF#T`kIUKHSI~ew&A( zl50krw+`9L=JZD;#VulD%r%+r^;*cw{=$BX8C3rfZ2|kBCF?7~z2B49ygHJs2;EeB z)~EWt&KYj=%&~(OO@B58_3>*(G5cdCDr#x;+|;YxYI34Et|enWch)lMYmLBT?%a@& z$?EqYREV1!Wo|`-IZTg#h#c(-om2b|%4ON}*J=C7BcXQqB zK1z-8b(d^AUZfP54-(<2Wih;yv3d`OD|1sV+q>o}W(4QGLSC1#GbT@)81Ptn=Iz-l zGI&xHPlBdo;OehgdrA~2zs6LOs9aD?xprkQxK)}3v;F3dVAF^+=?u4N=SbAfLUa03 z)A=1Q%l7*Hn_VM_)6s5`frWt7AnN_MoK}8RzT%RVVw&{`dV>tXtuK;oB3lGEJdpZT8gnETF09}$8<-~*{tt~N()?F{G0Kvo^X2>u-IS0nR-d}xocvVmol zV0mwDx&*H2pUWXX%9n@SrVM(6$mGvy1J~gGhEXH_cdVouoF++}bN080n~!#E2!UD3e(3<5)Yd=vS8-3y29N z9ezSMgS=M!DN~eC6k{VLZz)Ytx!S_QYzCw8it&AU&|+Qb<1*de0BGz4%^leV<_ru7 zIqs8n`Z|-1i5tpP7AidhETa>9brOoBQB4UpLr2fGlw2xu(*D%7!L$;>S5vswm!ycA-+pR-iW62I)nk&R%&)|A+3C!kFZd*% zQOFLO<37?j@{A2Jj0`c5(@>k5;Nm1y_4VHwSkC@(6AV4v`-&fcosqvCgKn5NQo&w` zVi>LAv!x*tQ{;l|C-h?UuPB%)7p;9RmzrlEJJKqpqW;l-;F5k)<);j*+MBdfN!1p8 z+c5*YSe;!d`wDWNpg%@#Wr3xx0Vo$`m<1X2sM1@CjpqVKw12+sM zmwq$_TWAe4XhUJ{KoWAA&m<7n=f(PO z+ABUi-*II#$vyr4SNJ+iNuFdfJw2G_ko=lcr$s2@rt1)qXHk+`EZ>D|DP|aaqdYW4+V#J)ssFPsY>^ISopfqJEYrH_BFN)IYX+OgrB;hk%R zc!u9l+G&5$tk=sF5HUBAoS6L3{Tq7pC^wdf^G0p2MK8uujoYU9GR0_v&fw+&T$aA{ z()wO1dfH4n$1@(pE(^ zDGY{kMKw8D_P81B+8bJg*FeEX`#>3Pon(V|!(|_~5}b3_5FwI+28H0ew9NM+SY*|T z9m?ao5V3sT80dWf=<25wrZ~Q?0TH(@fIpIlKevrvZgyzB3!lK5c`4~yl9t34dg%J_ zmSaM{ZPXVt6-I}MDvT=s%-Ov3`d}pElMcNx9zhAjfT%nCLV+Y)#rdmj+*U|a?f*yJ z0y5duyZ)2)H<<5dYOH}Nym-8M{XGvQyc%n7kPONGRWB!bO0DVPX7T=bVM0MtUBY;u zoaw9?t}=RtAXjBY;fe4r>Q@dE&dX7ZSM6P>U%1YMU1*YL^1pu7C>Tb+_)-?=qFU!B zs#h(Oz#22A4^W>$rXo4ih3a2ClM5S8l$(yx3|Fo_@s%ls)?RniVuvOjOSlMzX4Vo| zGB4KRkV!44n@`mlb4ixvJ>OP=rZ}Q9zWHFb86zP^H31Qt2be?>pZ;9acA2znaSwyn8`65?NpE^E5zMf&O zH`E+9TWyMNBM1xG8YARf_m5HKR&LN z%PFg(C^#dY=-P#niQM0})dydj6R&vdH~OBuR}gngy}?42Fef_tiawi!AtPyIka>Qj zW1)F)1u;qDZoOy~Oz}lkl=G_nR{o#!H}I>xHjc?X`%@b2twP6oa=*d}oaeb;D8u~{ zq>1kP^kDYbSMkNoj(GETf|0Ao)$eQ9c=&UN6z9)vP9@ecI2t}FxFs1$)v}NrQsI!K zgHsD#lJXc83p`aB%U}aM^s9@;;`1TH-$Axqosbkm;YsGCGN@gSKaF+C$J_f$uW`T3 za((l2DYbVqNAc%&c|eBp2*bn0vHpq_{*zxp4(HI`=UwGWqXe4NmZ&y^OkNNj@9kUM zdGp~Qlb_N~Sn9|qWLUF_a}yC>LR{~l5~KOUU&4|4IJ6LCitv70L?8g&kRF(U?P-UP z7(f~V1gi1V`3Q=A;1mM9FC1)ae?~xIz6P0EKn(7VbO1;Tz%h!2SHuU}!@xlC2J()_ z-{uOY^ma6K4Mo-bB9#DF4M<16-Zj>Wb&XA_-fXQmkdsUVVnfq|Dj2V^A_o1CnvV)Bp zj1>q-b_v*BIh-V&YF(XjZvIJie$&(IHl?krj2F(^y+13`mKO;no^3y30uNJ>jBFk> z8Q@-!S#$US$D|4-aAMX2>nD#WC|h4b6I8vxhQ)?`_B0WDDmPQ%BNfIz=_g>!0afQ` zVFRbkrNkK8)u3$sA5my{C>I^^Z%v!O4fOPYFRLk8Ufqg z|CXJG-W_Elg3bT>XAOCOMG?HG;`=jx>OoJ)k`|uR-(&e_-=D|ez~BC@QSocMLTDtx zOZiuA{9niTTNiZ(>m2jD3Mjt+bKKu`DE@gBS4b;YpPws-&yA@pBs-I&?%=&?1lk_= zuQI$sEcC_*S$njT(RKaY)(#~Z)haboSQ2>F&ApA(3$9Xa3=_P%hAA;cl`m#A9D@tp zIh?qx`{12KbD-c*8&)v_Z$k`2{TgZU%ngtaSy;k7(a8fFk^XhC-yfej2?#=VzQ;ek zxPM+W-W?|u*nFB%0&1{Y zOcV?Z!yO$j2f(g=Hy8hvt`H4qxS~Jm4`mI0v#I9Z5g!lcS5Zi8QiveWHMb_1Uuk;P z5iX{*DNd^YCQ0p2gS|#r3T)=DPC#jV$Cmmo;xo9nl4`2j;oK}Xkb zyG;Djb9rmZJ~I?aJLWdElSZe?$xT54u&-MV8r=)bO_UB%0^4yXT$-I8yhJh&&-hG6 z`p^t{-EW*`F$lxOzUZ2QC?cY5g!!*GF6RrVxtxLXqEZgnl-+AlvGrde;{5|;$o`62 zu>A!4L5#i5cfy)T4Iz@mOUJhjn_N@X;5Kv6MJ8|CpXgmDwB9=n8c#*$ni|HAJh zg9H1I*n&2ubv}18BzK(Kpy31r+jyX%-rT%te2u0o^U3bv z_*-+156M-7&0@4-6KSXEE>6+Bbx3isaw84t(Mnci{m}Dq=89Oz9WMIPsdN3r;C<9t zh!pwPA}$kMeTv9twQUwQ4yuo;i=R7FGIwwi#_Jb4MXoK?u8##t~l| zx;8bG;fiXEb*ZZt*9VNrX|TwH69?Si^H(|S8*Z&Ockb4k>Mi+P4RT9xU5?{Ojkltl zX%S(WqI5otnEu{aPiamBn(vW&0O(9oAamt)*CsoUeM(S&VjM#j->)A7+8D6+Zvnjj z^<;OqDWHOYh9qfC8mQ;Oh=vr^{?6-WwiCxFnSVa9PTa4@#^PzvQ)Mhy2FGFrqeP_) zv}SN`1f#M;A{$T_@47or%I1M5cbFp}g%uz+J3lVOktK)^oo*vqeXF1)ccq zejt?##O84Jwc9WKehw^*5n8(wkfX~*3te3Xo3X9uFJLt^)h*_$EYdfBfRNg~flRXIQD{uo|XHbU2g z8LJ&QN7yuFNx z9r1CFinAWe2_KH#P-wouHm|8}5soy@wQMlPh2z$DGcU%$8|Uf|Z1>{ebHhn>P$qI^ zKLS!Qq(M(u2Ylb|?d>fe7~w#m9w5pr#*7UQ=QVA3@M*Wf2n^@%hW_C0l#52Ihj8tG zF;>S%DSY(`e__DI&KCm@w9wIZ*c5vwCm-nL75utT`O|IuOY)^%c(+RTy{6$Zk}1#4 zc;j03z~FSXcWS)R%IcuYJv>=Ohb%oDduNDS@Crh7RkGX)+nANmP-Wzeh|#X2PMzDs z?<`aL2N9xOFr}riLAv&x09=da~d|nH*oCfLh>9A`_eK-JH-gL)r5^Sjp^pG zgV>-ClGkeGZab4AWKXlq=6-TwbX>FAbaFbfYmw zvFW65|Lg9?P!xK7@sZ>9oQ7cZ2@B~gvyQU(uN$35>^4(0vM8&?Zx=EK4U#z%jA|TC z4-3WPVjB27DoDEv@}AimEFHhP1G5E?;e_wG+29Xm1{Ow`ogmS+ht;1wZL2TJTuxcI zE*3efRF##p2B)?KZ!eT`R1pG$u;w5QyJ2Lw%?pVhIf!B?g5-nvbM?27++}x^(jgUA zP#FRcjIdb%f;&U{!yVHQs1ad=!-DVGuwYi>~x7t85pb!izXib(0o%#6BW92l2H zsj=klDq3ZtT>br5tzY}wXuW%_ELOy%&1hT5%YKDC4-?k|yF zhYRW&8avzDM4h7rs)L=f`5Ov=DB%U=0pddZg>W|Z@Gx+E8cgl%f(+t)6BEr%)Z(Ok z$*p~71j#c$t4~;$Gc9aU zU*JoRjS~!23T_opit`GKzqWUm7Z6r|eg5qAe1y`wZ zmSMIrrA&pWmkuV_c+qN&1##U?H>5T>BzQfXpBHj3-p0N^jS2;7iz%R`54$3e$XWT+M`kx@!jK?T`5Z|c2Thn znV#g}0+$n!?1n4U9a)|R%S3k)TNsg2*VJ4mDm55on~HG8zT?X_ZafC&20G@31cY)$ z{zwk<3-SE4J=&8Ktibs5XohmX$D?1VucvQax>?2@pw#@hW@TX!CKM$bJ{~TG7lr&LX+-t5P$oG49BTCR*oU&D_p z**u4djVvjQaG_6)hkte*{flV(tDK$XlqpA4DROGY_&v1^#entV%3P@WVb9`_!P6XL z!Is8OFLj`c@BUABKUG+<2rEW}drrx`3^57?0`3RfHMwc{?t<-~R@@4W8%W}!_8p+h zYp7rQ9-^z8E=M_bzuDTsiB|^lpUc%nMs1fkLEv1f%X(EzcOkKWArEeKS}T zF_ns_%TBA=*+4H&fD*betJa6hpi%KMSHof+O2EDJRaWq^MaHzWm$MfvqnEQ01Sk^w-a5)^@$eN_5 zrpA(BJDI7SN%X)on>=>0^VDAz5RHl4PvVmzzmojqQtyzbG0W<`K;ZQ8hx{R|rO-?7rY?%y> z$mZk?&Rtj0lIXy_3kuHtylC)Q{sf=VITbV#UmE~b$-mp$+q(nA^4wfXfW-nCbl`$) z1ia+yL_m7^>f{6s1EU=44lZYaLVIGz<>vZ9^@FT9kOT;_Y@R}_O)%?t!=N&>fcHnc z&dwC{kKx?D?|}5F2V7LZk%gqdQS0Yu{Y6dhj1HY_}aNV#>W^&@D{-R)0a6d-a;e zzR7?ilyAMnB9S{MkCFyGCMwHd-ym!FOPf7q!%3;HQpBHMJhEaa3t7kA^0X z+oOC$q_PqYPO_6@rm@SzpcJB?wLNZ*Wv~ily5e)4grR}WoG~`svw+^XHq4?*iv=l0 z{Uck7-0g&7-7pICC0L)*MgXoJUx0eudTFWR+CTHHzG1cwMSP~E<)8oc9ogK>BeFjSK5HjIIWJOJb00Ork=R zlW`l0V;0s_P2`7bE$+$id}_?3WuZQ_xr5WRcfUEq(W~1nu8;W;=E!i{77IJS_4JouE${y^0`8_F?NHEWbhf0XvPwVM7}6 z70%mc<PSs5CUH zHbK1MHcf6p!DAP3WOtCi|3_6^2>@Jo0H{DfZ~-KyNOsb*Nsw$`n*_gtYxyYN_tIls zcRj-}AF(r+++Gz)OR9Uq{@YI`S3Wg6tsFYGvF_GC381<|LzFZ$k#?;%Hnx>CvWA{X zJm2nIp0N^UWMxIi#ukL&|BRBz9DhJ`F;Oj;a3BtUwVzdxx4pByyS)n61WdR}*r-m{DPNR&3Gsa`LO9u`?^N;TJ{#kcjlTB7aMjH#GV)R$S-iEZ32(XsL zi4>mcoGfOBTJ<9JFYWfXW~w#EO%&J1JYFX6jMSSewTj07fURXoMoXs2(>@g~SgXGs zZWkd%F_&Qhfbz*CzpMATsV)a|97Fq$xjvFqt1s=wccy&`6^vjN@AHXtS@QF;HGuJ( z7<;7SMBK)OC^9li(+e1|S7#<>E)U8@Ocg$MPu9Xj_{5a{RO_N8$ybr~p)@ghEfMHW zgCIJ`?tb)8G&GP=aU&2PM}`Pn%;pAA#b|p~$mh zPmSQxK3cau$0_1h?Yq_TAMwGZ?{cU#uw+RiOvVBt6n+q^gD}lAk{kn`A6kj50NyB6 z43nIEbmRwfx~a-V02O|<+y?vRO(2(thvuEDyyVR6ta!?=dh6AV+;Ebg98I@t+fVMQ zYKT_(FAM8i5&pr2%9M9Pj~RVU_b++j-dN67@i30nLmu%p*`!lBV%zoHuJ5|Lx`cXm zDj>SiM;vrq&3^eAcSp`^0o(cojzxS<8tUTK*A)!om?EhI7CMcOL$#Itqq*$niX`zf zMVZRwUKL-^Scjsb34}UIZj6&7d=-%@(*LYp5+cC}XD}rGgXzmBN7+(Q!9*3^;atN^rfTyI-*~2@dn$`$r&Qd{ z_9|=ylz7>KI1Z;87KOo@5qj)!6gr`h`w_vkPQ>8*P5(c7`DF@JiMO=Jy?Y-+pwiz8 zWA@uIdl3)c=l%gp`H|E##Hx+gRM^un?Qs=N0mmsyWD@YKIY~O{nKGNlGy;naseENS z={4rd^z$wbt-TM7qYg!1Q2BDwN>RREqj>-*T5ofL2ucQ7bYY|OWhK!WyBljtBljX_-x~5Mq*w zGOWhFPvI*q$t*5TdF0)r>MkAfJwDXOq}7-xaBTJyC3zTnw;60gAmHR*jIIpXBcQ4w10X7_QZv%`b($uE6D`18LoM=avl zvUFk{wn{p0v}h40)nspvX4=atal>m2XO2D=Tz-Zu;x6b!X7AK3|8BWPg=fZf-T+p} z)@{KJ7u5+9Xq8Oi-HVb7H2**KgV0lP@$52xZs2e?WbI4Mw>N6Dp}LFY)+S1BzZc^h zu#(1RM-r2FurZsBmsX#ioY*)zijFJ;Zs;dT7nd8*8%E|i3aoxWn`u!V@Jvid09j!X zgPW-U=Bq)LHt1gE6X^%7Q@tQ~q1{n@>Xyu`93_eeH^t``#;Y|B5hA=?t)}+Mm=NJq ztgHG+<`{gyw$X(^Oi)sieRC;9p>Ba)JXdI9BqOK9IP1>(byB1#9Mv}TCUc4CaqZ(h z49zhdTpxw*U64{?s@-wT0~BPxyPU(Cfw9p{JOwAj3Wve|w5L1Lr%C|1bq0S^e&F=z zcj&Ra;zkjVyWN}2LZ@9FwMm`9-*%pl>k%0Z%BOQf-nu4wO?{h?c=%u}9^Lg74#8Xd zkKw;VzD>;vw+Ryd>1^-QtXVnD`3Y)nj96Krgx+!SnkjWoy*=69`j-puU*LBK1mL3W>hGOvNPo1WDDbs#fMAPALf zhBb9~@gpmZEjj$fOprP@mr|sRy=LwH(nvfdB6htIo6bA_>tY^GPWvL4w!L%F5(nD2 zGsS@)Yvl$hz3{SV9)qcj+JeEn4hv=TyDD3|CUl>g$*#HsBNRk-AKI!5KQaHLpQvs+ z|Ii0%ZzV^5wawhnl9f}#XLwGfO}nc1=g~Mn)vW-h;Zt);yIy)E^))63M7(aJ%>e{v zJaH4_L0T05S9yxuj10Z5Fro-Hr*}HuyjdXNAYD#CK%mQj5d~zhjDaP>r1KQW>r z3riy+JPa%~0&aD#@XA{WJ=+6lfoq?=S~jrG@jdH&_%zg&28&`Ht+|2~7M1@jS=o2e znIA3X7Chy?f*cRhH=sZjQxi$0nEh_}706#Tt-$n03LpcF0QpxQD{vrN0qN z(%>dZI=_nok4J;maw|y10-+r)Api)y0cN{oVQ?>`OYX{EG}9-Ei8f3 zBz@@g>aXeTt{M2lemyM;fTWh~z#V+L`xE^A9~sQOVb#M>5^VpYsVQ&}U{(H?To~pf z;-XCR^o)N=mA?r?utG5>x!#lc{4eni{!35d|0SmZ1r5&w1k z-#>YP9e{K3j|uL@|5kMo)#%^+=fysIhoHy(@l%O8^1u9j|5j_iKS!GV?_GFeP5!^S z@Bh+w-+8VQeP4YN8~=SeOrAOQ6N1hEh@HR9pB!QT5g$JWwPhClU!w6*2)G#js-@rg zUbSQFZ@ovgcH*WvW8ECj+;PpSLL76mq|^zEl($)aCqpThSo8hM7jg`^-ql4$&-dL1 zS%Saaf>V+MTD2SS%S$;U(+bCyd$a@Me~G;l<8$FS|IHC)`pZnF96Qq=ZQa*J%dJ?1 zD3qAha+(MwaAP2e)pE>l=WfgKFxI7H`S_YdD+#kd)zhZOnfuV5SAO{L74+Ri@Gh6V z2}NTxNTkzgrXvnFiSg}>W5_Hx)z{YtNLc?uct_hO0&b5u@VI`e@oV|a&gn3}wdxsb zZN1jG2~ovoCqePYl(mXytbo`*EP3NfV9|QWv1iDt9#WCW4=APbFo^4jkwz#^Uf>!9 z$5sOEQ2K}$ml7qg(dRs2rrOrNso#|^p^W%u=4PiNabZ+`Aa;)Ul4rALYQ0fYb1#|U z(*_QYAPZ+OJRQLyXM3$kF!!W;(eRi&rSa~zIRymP*6Hr-H!7bsSy$0E&a>RCuy_EOwvr{y}wY>4yVaQ zZh9PIbBK2NqmnoOP>$j(U7%5ynV2Qx!_qMj36KJWi3jsm=Y5fi26Q&+Zyl^^(wi)& zyh$RGMClg_7r$YR=T-}L_V;e|YLJvwCikQg?%yBi;_J`md84r*J4c2@5* z?+g>n2}uxUH1R=weNCu0-SWIFIqfo4Me7Y}V0++8yZ99o)nuJND+4^3QAw&&zgJ88 zu%|z1HZ};99XgY3G`;q$)4&2uq=g0@=M~P8BQla3S^On6TTD)Ko|yd)6DrL$ zHsm+ehdo-fmK+iWn9;%8)7G7R;ZNhtT{B43J_qHkH{JpSp~jy-zXeF6cg$A8AoTe3 z`tJFQmv=wKp*#*&w4H`TKMjm)uXKKU)acWdyhyvdv*>Ndi>a&6u}PGf+uEG#>de}_ zNDnm`(3Y+;>3&3`Z%mH5Hy)MMVsdaSihMM^9bV~#$mI_0k5}H^hH|8iz9Hc4XGb1l z+87vA7JK*h>dUm-b)R*9z|PWgChYlPPO(Vr-i>+N1|XklXvEbA#j~66^WoC;Ho`ty zTHf$o3_ug)AKtHG^{N>KS#-#FQ)VcrQ)`k@iw9nOLyE>2mJkkN>4JrqgVYtvPHtmVN&OnCZBGN z{-buWhcUs=pPA69ES$D{SmR=5M-7!SDlgWLYhrL<3N4C}zg?9Dhs0#(inP7N8N@N< zvbxBBuk{+rjFUj52z28Q9r5KZpG0n=ADrnjj}<^(=S#~Nj7^l586MfJW^djWe;%6* z=VqN~bQ@NR(!nYXxhGOSOs=FFykcoD2y!3TwY8g7oW(w`z4n2vrbMi!4HR429XNlD z_?oK*f4)}Gs02^n@IC!3F)~d~DB;{-X;o8;S;(eUx!e3$)cgy?1-`wKECG$$U8}KE zRR_4tQzU1uii5q)cwH8P@f(@;Z%SO~&mT@H& zi$&DPtC0@9XF8ak6>V!hVaZZvFLbvt%rqFwo7&Se?*d-n4!^e?(eq!p&x540HOQFM zIYf=a#x-gb)_)w`v`a~bX}c8}yGK{FRy!too|7zfww6UU?b}c+9C8TxV9I}3*Flb^ zk(Q)|gktY^B5E9BnK5dfCw*tio_v6AbGm%7?j&A#-Gi^+FTG|xl9ZW4l42H#wgvz4 zE1Q`w1()t_WoLKc;9+CQ$F^A=leBYpBoGD&CLbbAn;<3$2qR!dc3}7Ag*b{0cPIhR zPMJJ|baHkEw}>IkNP^GVr|^o>(i)*t9cveK7(+R}2Hjpw#br$Rk16zmYn_AJ zuJ!9#Z9a`vbGJ;I@*|^CvKFPal*I`s$T(UHA!~t? zNrJhzfe)-BCc)Co7g>z1VXw`__|Zn|>qT_cIoy59PTRgmOBBp2^P41qW znhd<6It*dN!q7k5iq;$S?|vp?YC;xH`+0O-K)^g#biD9X(3)vr~8Iq2@_ zEvQ#v6G>1n(1n$u5PhSuhU>qA&}y#cvL>Q+NumHeH44d3QW^qDEDEP9jrH^V6EOZQ zZ-17$DsLJZ6?Bgd{%Rog#U* z_yq+CZG-4$>!#otcrGnv<#VP?EOibvj?z&(ICY^a7Sh}X>wp>uw#W&ge%Hk-sv_kd zq@=$ZZ^r+4J#^IRk4GPixI|N#Ha{r0lack15_1)0NC_~sRo{(FxT0)N_x|k3r-px7 zZejfSq=4<^jf>lEqkKb4W^}}go*{~VvPcsw2X2UcgpK(F_%u;dQv;0h^tV^&#SsnK z=xcDw?Jb~ zl#oWFAz8wvYd^}D}Ev@}}`{^58TO3F(SY4@yw?Ae-&(jPkmT91ib4ta|Mv z;5>AA9z%*D&>^D6h@>Q z4{yVi%b(t!E0ci1&U4N=aHFKf&B&>=NRmdVlt&{edoVgX9lZ82`!gTuvs`0T%GHe0 zLsg_L?ja{9vy3-mb5LAe&~`~!i=DdiMR#P|j_|KH0Ut=p{r&wcEG$4+rlqCLmPyY4 z`O|Bz8(=N=_xD#gmi_r4*%PDN)+(-NBVOAV&!_s^Fv9Ijm{+6MF6$alJ` zcIs}naW6C6tPT$n_D%xtkTQ9Haf*k_3htZzF>HrWDIAp;1guWzi)c_^Rb`60PUbeQ zRTT_7s06d_Est$g>%4Am+;+0!P7aoA>3d;v<%ly-9`xq%NXBSvB8;AZ!uiYF3>NuQ z8?P;R8RU2m&u&$j`-Qsd$Ya&=2^{En=f@`M&pUbZM`2;#FD`P&j z6)L6#R-)o!Mc>HMr;SOzP$Q+7)5olRSvl0?@Fc}j;}I(~3R-SdmxJxu;SQHnNvgK5 z_KT~WdcDb0jmv|qp_MoGC1*E^+QJt1awLs4j`91vHY7yt?iV$S?hwzX#<9sCdh39? z2KoqySXnPXW*zX@x}U81gG{><&aEv_)AScw0l$07w^rMWqEh61V1+;+z}z+v7VXm! znyQeYs^ZsG1uygY6`XXf`d&pG&MpVFi>=qt(S^5{48-B+J0VlBysF|Y`yQLh+}hYc z1gy0;Tbp}tHC3dBF)mzSfOJrB(>ki=X<(qggv5!B4LdeA*KRtc@!E&_Z?H(Gmfn97 zMoq9?!C1k_V5xop2w4Gv8mH&LINR$-R5j!1&n-Iu0Vjq5r+#`^rG~To?{k?yccmw8*&uI}DH`s#(Fvu$U zSp9lvSY0jmWyTv_d{`&^2IIu{V2RW?=}Rc7bHw^39vkf;6szd3yZr^#(UlT+NdIiY z`%+JSc@gnyRNG~)@u*$XQ$+2|vC2ZdM9*@LW@YMqRL$K7pGDs|81hwWp{&-3n93TM z_N@D0cuvYM6V-#BOulj}W>X|?nP?*D-sR84q3LCBZ)(?D<%SIyxAtCnBqY!-%zww{ z7MqpT8=IVo6!q&MvX8!;F8El@KU}0x zSV%wU{H|@~x*kQX9AU8mC7zLAHZj>PJUlrpVchmX#7tk&p2vQ=CD3K14c8z^hCsF^jftS`hYd|m0#t++h=BanwW;1yn}(Ea8eB%@9e;YPsvUk z&el)&0l~(7FtCUYYEL74v4$vD+LQI~dWX4)G`be#bVnSbIubPY_q^6%X@0YBl%E+M zqw4j;W9P=_NR`kByPAD(#;0RvLsd;KEKq##AWuYy1t&N2Jk9xfyS>JsDJ8}-Po6a& z`C2nr%1tg46LMBD=5{RcR&CV&!0B@%tqJ=h&Om06BA;1N-xV>W^={J%r8qrSN+TzVcZ^JSv;@pwhCJ74Zg1%?|!Pa-tIJut?1cd zdkEfJwv|XN+FQ6s4|Jil<^AvRzRi9hM-@~}B_&mit1~i)LD*M!1ldzOP)JBsWu>%~ z6fG4M10y3foyF+~h7-yyPp#^n&q@m%B{g=ayUIljmvQziCvO@kRYQo1@3wXhkDJJ_hk<{mE>6zumb`I5k-z8o%_&q9yDd91f<-DX1F&+;+WJ^~-!+|6J>j z`!0MwpAQecMx5_24L@MhWCtmSwbvHDW?!rHlQEW>28?$h{SWc_MK3ut5;9r~e#n^7 zp!&W)6WPu}#WQ9<(UnB=d>zLy({f0;+nz0>0>^H;`8}*HkX$a&B=Uv&0t~hW<49So z52FMmapQySV>^rSfd=jl``P%RL@;-PIdilY$)lilpgN02bG=q@RceC^Idg!5R_12e zD|C_Qn>UHYwq9JC$Zt@Q(w3Xkme+cTsI?z*2ZfxiBIPxU8f{sM&5sLI7ek5v3OEC za4|6bV%c!oS$j(__v^`bb)CS}Uu7E?R3a={@81WNTJh{2Z$*@x)2qve^=)mR1u)i< z6;|5X%aY_$9dmQN3Ey9}!1sL57~i+v){kaD+DTaFVwK^qe15%V&OHxNCCN`Y#g+PK8=>LT& zf_>&r2dcwE;QK!n=B43dyE0;o|K$fVxuE&qKBE*oq#%v|DrFySJdNA`Q{xr=w` zPLDj2ym}#hq%g&2k>#k|_&GmPe4hwQPzgumt&tLpJ@%5{4+f=>QM4c;WTLufg-WWb zj`PPytm|NH+TI;*;!{35H5HeX)L=Q!DKp@QOaih@{|{Yf85PHtK^$GXLk#7i8dp%U-!FPxP4nklElXdi=P5QI2bc>*ZZj;|v&wM1+KF?BpO~F;W~4 z>gSviKs6kon*4eFEM`5a|M!DFz3N)q*>M3yz91u#os&}nDsTZ@XFtx%&CP8nnLSDq z0u)hgW<=(~Qeq+_mxBT}V=r(>Jk|O=#p&b3QiB(N_vgf3fUK0C zpWoHd($wfE|BZ3nS@tn-PNci9M*(+4R(?Jf4i2b$bN=5a`b$sq@?TS(m8|avU#H!X znyTurtgKH-K=it|zt}%D z-)hjZbIS?%?{A6fc-J|8`8iDZ_m7an`vYXG!V0+M1Vr;7)_wyXV}# zJXMc1AgbgD{cBt_B09QKMBCD3s=qA{MugEmueR#k7riVLuBErQt9{}6`0_4OwcGO1 zkgR5@m5;B5cD@O`%OrgV1;e`OMF9teoH0_`7`#C?h~616nbSnmjQqzc1S=12Zff8$ z`9@1j)x&PtMU`D>Fg;*cLRtDy==b`1%%mlE5cJRftQ^^=H?EABuweWTsUJGAG>9AO z-w!*Aj%IFf(pvw0O1#?nYwZ#6>QyKbHn78t?Z;$X&|N5gR^KO9X2 zhK61uOt*faL#Ni*-sK340?H{iZHdEpr*NFjAXqjcCu3!u(z^-D&!?1-_)+BPd7t|8 zxTZbCE$pY`aXhzyU!Sq`W8&AJ^+;h8(SaivVP$r!T3P0^Zt<;OC@H#Arpv^n(TCzb zP{!2RZkz@qV1mh7D( zu(W+|AvHx0hQ)i?cKeVle;Gt%_GgBBN_QstL|`hk41YthUZi6nm^N>NTF zURGYy?u@M>J(N~p!Q;Uo_)e)=eDHFiC8cC#MeM!loQhm>nZ4Ez8?-7*><2mqh6xHW z7ry$NBH8vewk1uz?LkczugOZNHMW~Yb*FilFa>#8_-4n{l&CWjs}ag0V0Qbk>FsEF zxp_7COAec*Nb8t_F($Wg6W>0OAO|RYw=6EzOS@s1M@|rF*yfCpzivVlp5XBCc^gnr z;*Mvq3XQ&;W0;P3SL1sW3laJ^jV`)hhBqa<+e$5rGNva8ZGcX}saUC9>1e$znY*n{ z42F%KTbFwWY^^4Br&Chfmj#^&X^el$rC1YN-`A0T77#let$S-cWx24Jcnc9tPM}<; z2KP>b?pyP2d$S6@JF>@CFXoz2NR^S%Br{Y0@nVGhXX2pNejB`6=h64km`Ue;nsQ>P z)~0)EE~+@j*J-aG+w5T`CMFmd7{H+Zg#YLVkVMZ0=L$1jT{+Obl@l_$eeSTue`KW= zU88riSRdABHhUepUDTI)q}Btjy!U8*iqh!rJxZ0u3; zXb5H*u!(#Yl&vuncqBzoA{ZIMVQ2X@V@U$}`joX6=0~8|CCf^+oDQq>ham@={l;Gd z@e&{0Y7p{F?GZRoTvj___99UDzgL$^dnk59Xlijj)uPx^^;j(6Ef#S#pk)*;Qm-zjxP%q_RIuyL4GW_8>&3?sQ%L#7MYO&w@oxRj1&#)yF`;A@$DLAR~3V%3! z&;4!Q0}XQ_m$w|1<_UL)njbT_JI^mwd9Co4uCiOe8f4elePVMcE27TuF%98ILT-26 ziCT|nlsOXWecv*<YD-()!ZEZm=6MIt~`A>AG(w zWDShf0!oAH%%7YUC-I*3?rF07$?d_a3RA4vsW$n-ec=>tymk-Kz}#R$AEeNtr?kDx z3C2jdQH(><3_2p`DZggf&K=mJf(V_|u~pXoIgH23hTj*b>TV>u4JIYZ>KMEy2@;Vp zmLqeOL+_EAIv^de8~81Grhnh>Gg3PvkW+2V8Ko+u=ZV|fc59J@CyL0Z(A3X)au zxNAY#r#*Z~hpgshN2xrT4>|2M9sGbQL9Bg4#-TqHh<(Mof%X%p#G^~bLNm(w@oSk@ zn0z((xx7j8BAJWApt#kNx_LNGvNKP~(_U_&yiNxh0fW8Jw5MTs6j#5zx>K_ODxnkA6 z*_iTjrtp)0hAL9ppB;iu>coj~%AOrluy~J{*e&N9xG-8<1j~?d{)(PgDCcFdiirjQ&2%FNlUFIH~Xh?I{jXw zO4#B7Os7s|s+%gsGY(&^EAO75*>R`ye3m8Bg}%~VRYLJ_ zeC}xG>h-?f0;fDzjs-xhL2+MSi3}9CiQWorBzK8lz=@@0pV*pE6tqaGWXBHtL(fzB#D+!%s19iKA zGQW4lMkNr*k0T;4ZRRG%0gi&*HwvQ6u;CYRdlpH%Y(}8)k_WF%(b^YJ?1TSHiD_ky z40si2CKI_iQ_Z{fA04I%mL$gj%YI6Mgp#0y>CYdgU6;Nmsi;4?kXL$AccK!yZpOLj zQB*2%mEqP7xKt|nc_qq9;jiJID#~Be_)CE<89=oL(qT}R7XT`UgoIdHT882CD#^() zu&~fjP}F)p+#)anNKZ&I;OPRd8K?E~i^vzWv?bsy4dGqp`QUoVi}su=eSEkBhX(*N zhvKlyDJcnOjtGZf36Vwtd$4TRHUMdNuYk^NC=bMg#Ds*0vmxGGuTDG(32|{?eJm*| z>d-9%%^nq%mHj=;QQ%h zWbP2B`x%lftl@-;*%qJh`Ywly358=?ykhxx-Y)MC-D6bU)OdBt!7GWlq}p8BhZy}? z%o90{Cf&|M4AkGymJTwhiiq)tnI>rW_ct1c#+J z{a0&BLNAe*@H$xq3hvvw&S^4H-vZ(=)R@>jM0F*tyvS&1uy4t6wkvES=hWzB z%Pg_-IVbDRxIF_s-R*u2BUn1wpvR$B?12_wLMn+*F{@hR?P+Ly%(!8hO1Ky=kRafm zn&cX~Yu<&n1mPs|K~>Hbe|4rE>m1LD)p~sRah-?9Z;#cOQORxVo85?^uR*x)q-sEHIIc@A#3 zE@59)1pG60s)xO}ppsG(hPNc+JesJjD0tvCoR2SrT=VjAT;Q!tzRtWJx*s`lTW6W6coJ1E~WWM zr7UZ@Lz#<&1|!jP0PRjqBQ?-Ve>n5{*Hw|`YPoJjO}q*#^Tt9d3?D#rT(4ziXK!w7 zgy66v-*|)2^M@{Pu3<2{45#H|2SlIU-NKj?-hO>J&GxQl*9&oFf*5vm1~G!OfDd#xyt z1O6laI8&IO9NGfhhhpK~k zcqsv2>3tRA5h#v*Z|L)!?fS;Rf`hNPX{85lJ^ zp7{PNRQYuxG;1s3X@6eKz`fasd2P>B3t#4kK92To(vQQ+4mueUGiGWsT|4v*R*XXI z+K~w{Dz>#DHr*-o_z?9fVeyDm0AEgAT$yl(T&nmkcKY(S#2Bp_J=|WtvNuPoo@akn z{Huq4`XqCe6=r=>k}j*u|K2DXn1pZ?CB46d`DBcjEG zmLSr=LWE>+i2A8m)@sJ2dq!krLjzY`>@-D97@X4 zJ^hd02_a)yaV;Cqx+(CalG*KUZ!gTq({poGG&K4jTbu?a3Z|8XBz@Tgw%Q*$<*sj(ritJ@p4Ynq-88_muB?Et zo!u*4fMh)zWb47CB4H$gxyRkpuNVxrk(zAe72dCfr zg4@FJR!G>9-&ASn20JfAYT{zt0FoBZHYw=zOq}Ypk9-qi;ifTMAqEv_WH%%R*^L)9 zYe5~Jcf#>W9CPKdqA`jJhU@EPIRwcEA0NWB-+)zvm7&q`ai8RGAQKA0rNfq*nhOBv zJyU&n#dnMV$pV6;Y;Qp|APNRXm&ZBq4J~=?u6FzYYj(NB@cuCH@RnB*p&{i?Whx(y zUhMnt*^?yhRNiKDV1c+0`TG_Lai8YfW$q>eAt?(1BJZ9SFxR+CV`WTH?!zV`d-!cW0&*1`CSWX<5PcMhR}$OBegAj0D9bit&tl4X>lxq$`at zC1(68Dq$RTQ(X?BMw(I+00lv5I*Y50$=LyCu}@COvCr?+$RnG+1qpA$XsU8dBB2;n zRl~TUN-UeOab%WH;YmgIQL|dRK!mnwcA!Qkt-oJ#U3u8x^4g}bJ_);PFW?IuV3Z7x zjMQRa)e*Jerx2i^=#6uiS5-AS>|M4)t=%w;4}E?TP;%rGqmWkPV0fHK^yN*FBv>}+ zMvI=m=ci_lsoCn`n8o5sjAu4u0iUKlWv&_)78Wc*nds^DX+j)i^y{?wi--ta984W4 z8{)m0v~PfY%Xp1N1@WoPCDumG6JA&>rph@`jkZ`%=z9;nw25objs?qi=MX8HSx?% zlH6fp3w82fT5_Myrj%09=(#YhaOfdDzd!GKWrvFpy!l#l6N{yjoZUUs2%*9(1;Oc% z)W#444j7g3hty_QK|EuY-w|zB4v{YUzoV%?Gu$m5MQXQH$HAdEcG~ zcB5LmE$OSng*0xr&P9)>$3~Ee3JXIx6$Wh`Kr;Y~&7kYe;&5`>J*_9i*S7=Izh!1- zj#vyivV&O)n8bhuY$sLKgp7<;FuYHb{Hr4+d@8TF804{;ZeNn4gmoz^{Z9KdJ~fpi zm$!ce>N@|e*&SGOb9gDgfIy+stMp!yh48K&?Gb-Tc7TIu>pb$t6ve`JS#`1$J*rke z%b;Wv>4(J_j^SZ*&1S!*nE57!F1+&RbXE{*Qk3ZFV z33RySAbKyxKmEG3VUu`=LnewXMt1jwQ8)J>iu6VM4^{bTMoU~DuttfZ2xBs&7iD@DmPIprdMa5W8hCSt>Sf{3> zL9%B_okAg|++921wz!1_GXU$ASL^^Sd$tLAZ6%^*)VC=Gnl=RE{3|N#K%J@V3IH;I znXvBOq{SvW`o75Fbq%s0fT+ZA(5eJ}7rs)JUxz9Ov|7HT$y`LVxVyuk052u!Jci1& z(l)aj=$yStr^meO~pr)N9c z1?Of}GUq-RKY6BaR&TQfSC-`EwSE!g=MUxGyz!+3lSdF(fP2C>twD^E#dg8vZ9{SR zwTFUFzh`C>wP4CWL~ll^T9Pr$ng@GgMSZi3Jm`QaPM1&4>?Ct$CT`TFC8o&@t2BCi zS~Qf@sAxFwRBj}KQY&dU!7;RJ+a7f8dh06+?>EE6qYjksPsdzt>-K=2W z;h3{n$D=I`J%*;R*^TYqpzPmKASvEoRY+TEoIfBOY15t`_YB@H(|fr)ppmTD)HotE zW^Un!_la|1Nb#q9aVR>(en2=;BzoDyCfx4zhpvkoBYaIu$10nEXam{(X1HIL^3D7p zKvUz^E(#i*j}Q!Cj$UEZ!*Oob1#2|pD|U?;)V$IHezjqpYLk3u-c<6Yi12cw*7oA} z$Q{>i{n%Cg{)#C(G|=VOCsfrq=QbkscY_PVN7*{;-WQR=O9mDG2^VwqhJky#MemW2 z&`5kUla#*uJ<0kc^gkWxX~Dz8gEG7QE2?T(xATL&g9BXP6~xCc0X0NlzI+CLQDo#% z&{3q{6X}@HZDCDoDYrO?ht| zm9DL_zeL2}+tJ$fTj-B(gjPYnYaMOzh6Kd=;}I5k&sk-A2n3KHQdu#0*bG{jm>K^E!_w zZM+#nwup7`$;Nc`?46O?Os2*x`essP0K&})-^=Zz{FOsje+mJAMp5rXnmwbJb zBL0hmon0!KE#l$!7~k;pT9LdAkS2gN?lMx9?^WyTHweI(kKpZpymgbpfp^De3cBLJ zaQWi-9xt8a7g&q%D!G8CT|-U8;u zQ^{9Whp&D>2?2?jHm@{LMtl}OL*WmP`~C9G*QaW__`;&KS3vIgZ|>+HahaCPwQsBr z|0{uPI&<8J{61cM1|I$`HKN0Q&=K~JnuS&Q{XYywf;aMuV57hDOkAKY=zoJp%N-{z zAXoKYF~#}iBGNN@@!#2=7VMOwIJECZ&&p_SI26nt_NCB|<-}g7PY@5p^y|noM@3(&l zPM&12*>st07&r9GiqDM1zn_NxAK%)G&}V&+>E6l2SxCs&-@glJuClW|Jv%MmUcY&@ za;FRO!#sAIutrXxo)rx7-pfFXTjt$xe*afe?W>bGrP;kfPu#3t`4V=Ks5Z{(xBD#jh@7ryE^lsH)x7gnwaZGmi-)KTpWM<;qHc~|U%?a{ zcBy`;%@_O81Pqf4smj6-yZX^CmeJ*b7xjDO{ot<*eKmdsdf#4w>-Gz3LiR7E0s-gZLKs=6pf<8k&) zwf})4IZQco!*Y>UkklRAjaoQ|Jk`RbtkOA4yivu>BSxz_xEn-VM`iPuTOx(D)V!cy zdk9@V^DYv}z`+Xn?a@}=f9@m+p*O2>CA*e=VoA=yG0Xb}(z{iq(mK6hk68LKiPfs1 zVNw{i$>ljzPT>3|CMHm>9lTs6DhZlEgo1@41@&eWxWD zoX9}2+DmbGYRBzydI~dVaQf#V?r1WlAuzck|DlKZo;+@s~QZ*_Qnj-gzS> zHGCA!seX&^K@dEwz-fc_7D*iLOyf;ear#BLPyBGD4s!YEM;92k$@qw_VMPoZ9O6(U zqzo2%t9EAe7{;6Y5#Po!Xxk+uRA$5CT0(EDwU|i!w6F#|f{%n5OH+#`(gd6p1a|{X z6R$T5>u1bbj2GdcOZE!U>9cXmFoOIyN zG4kqtCv#6O5xzE(1Zf!`ady&3D7Ij>MWRY$g@^C*&_#mWO-teJZbjeWzck&)ivx z?mQVpS5y8q=_ni22^)fPWk;P%WDKg){sf%C?5?TcN8F_iac+2SX@!H|SEF5z-d&6J zrE6~VuGY-C{;i*i=TcoRa>LShteXnk7kG=aMhBkyMNoc}A<$M=>++a)Zf2GYcZT9L z88*9Jt+q}^?VL@ehgPU+?K`C3;saq-*xlpOMY zwoRfMIdhF0*Vv+@DGKDob8mb$)NSj&$>^m;T zw(U#8lMsGWd(~Mjq+%m&OjON_$cS)FkXAY3J85|27KppM>7Vs2UoC3k9zQNw}K)2!7s;wW2kZk*=muYpl&Z7{Sc0#+}vf@`-%Kw zqAtk>Yfg9zs>bT1bJi_-+b<#Pi_jnP9C#f$7y4&+Zg&>u{cqKSVVk0H-04k5aY`6l zdB}6J^HGJ;59uOjirXI8v2~ak11&YmZ(_?Fsvx4sQQ2&YiMX_%t}vx()Ezs z6$aQ8si}+K-@*Vh32-@Ztb*kSP%+kg0uwb_abBNSK-sgFMJy735#oN5X!nkmx?|UL z?60s-eETsUX<<5+tmM%lmaoBvJEr)fTA@s&a!d^0$e+^G#E}G-1L%fpIl<_N(a5e$ zdtSIm2Ccfj7;&+8Rh4PqkOhPXCB@8_5Z={Sn#G^#(g#i&1|#rJ6{Lj};snxCS*7_U z!X=ID_ZT+0Oo~~p4UDm#8XCcML{xJ5&(xEr%;)6b|yGPmHZB}cOU(C7KACd9}yCN2krJay;#l`HZ zx}*$;FSg!V9>wA*kdX>w@bG(jTtY2GBBd$xn`G3<#Y!hZagHrSXyW4Mbk7n8hRx0i z41&=l*Y9|8KLVnT66&nnO&kZ0*}yvSFTa3IIode4VAJWkAr77NhA3nsoxvDlHvV$y zzk6NE!}Or# z2c7O$V#%hLR!WI}sn!?R-J*p_7C9f8*wj~=nDpiKsM0M*@p1x9LcP__FMJW-YRKbI zx4pOG4cW^)Q=d)arwLb95P&jC*3gtnqERr>kyhG0v#DU^u5$@Ukylo~U}I``(-!PL z6uMWXpe49(hn6_irO6=`F+QhDXwXk%(rSv-7#^EW^bnPnO_7V0`TTih_tb1N2{M{H#mRe z$P>k!$uIh&80l1FN<3u}Vt?-1B?ROmr`|#Fr`ruX6R~gKk#|Z!f>fl4gXVbeULC#f zyWd$Z$S^qDi2W5xQu;svcyf-PONfkUYdP36=rUm}^gWP#aap;IQ*LUzFHa09ky}zD?l7vg;$B(JcD+LY zPZ6!7uiF2_01Px5s(p12yV$_i@$08rJd8idjP#e-H^C~# zV6394Fh@p46qHzO#qdD?2zcYB8uUf5tAFv=FV@_2&?>*)BczU}$@wQu896IBE*2e0 zjMChpXh%|WX4ts0Cf@&t@-h844J|bS8U3mxSgqpU*^M#V!*+23udwni9z}>$Ml`k1 zy``@bt;WVhQ_8K|zP5(Gnmh(8>RfnB$S&fd?%J?BUrS1k!o1JoXlHJRFU=BogZ+UX zKLZ7hbC5Qsrl!u~2iMeK>X#Hxr}GN^$A&Y^Iq)TV_C`}|M{ljK11%NU>6*Nrc)&dQ zxyKf1-EbN{Ns{#WfFBw{xVZy_?P@zNz|<1Jd+YFu$MYVrKK;Zqe*O+=kRu1o3lN;( z;Na+n0xnM*d?DGRq2dw8IMOT2`aY)rrk)TpoSdW_Z-gHGW!ciD<<^fDQFgl#Z)bS&Af1A%QfF95NPPkdP1xA5e7sV{LaYN8q6egY{d4*wx+`H zyQ#=`XAR~rJFQkOavFkWZ_|ZcZH^db*rn`mw=x*+9vi*U>n%Cl$c{USmN2E8B?yBD z)W(?$RW-MY*#jBeF7SUJ=+EX<8aWM`U(RDbsuu^PCdSit1ZQ3)Dxmq~OpEO|&bB;C zB??CHL1g$_vfc+lnlt80S>=;ItZw2f-!mU5eEo41(SO{hZr)k66RC`x9L#uwe~n4i2E<8wVeNUsXAWd>$z&DAH*~(C66k{?@+~IdeMr6lI&1=U!#qBcFcN zsyl#Q&LS?ly$E%FOvL3f|8F*`DC>J1O`)kOk@{y{uLDd49^_ufDe4z37~J&pJB za4aoul87QIsHsN@kX{1IY$SLB6*R^ZWfbHh#8=_L1FdfXlU%#j|nXbK4~THKjFH>$jHLu@ra z&$FKBm#(w>VBK-wXS^`=j8zUhDSt1o4_=F_#vED;dXMhwM3(d>=^X6|2R5P$6bUVFOc1qFfM>{U~=86Dn@*(C*XtIHSQY-#x7O$W{J}5R1dnm)t`5 zB+O9EB})8Wze@S5;P`FXR(gJ~8vV(0XrM-RL3UjhLM;$xQ3 z3SO0E)r1!nGo<8EB?UlM`>`K02|8b$wszO&s1EX{DriO0N_;NN%MXveDMN#qv+=)= zgDOj{`YcbJ_e0_fT7YTdf*abp$LO8~r6}AHYKNhxBWlk(4hmYWhWBjY7m}O6n>bSJ zD?~>7f*`5~EIpF@d|h7AMhN-{NSiZJSsQxj?Q9ba;}ILfim9G~0RUZarhp!b ztTg(KcW#_joRoe@Zc5GBwuRE*faap6an$2(*7>R}D$8=|Y6PbCz~BiY zZ*}#xHVyEnrvDJyG=o6sZCf0qqW&ecHSo+1YG(R7(Xvi$m-|k1hw>_FEC2YYOY)2G zPF=!{Sis zlz-unZwCn*=1w)e%|07(^RPqUR&Y>nh=r<`>yGw zo`c7Ol%@ns1zJF&Xm)s=+@4w133LjUxU-A^HfPXw2^E&O3C3NNPjinB~}f4d(DG5Hz7v^~`xvySn-47!En?{w3{kDxaUj9WB*zP1l`ii<+5= z2ZUH_AN2h|%jvOve(I4c+QBi#PFQQ3~RNZ}Y6JLPwm-~l;oMFerYyVK5swKDk z{t1UFMHhB_QPWv)O`_f2(((m#Q^TNtWCP`GpU-y3Kxu*<#MkqSi`TDS0WX=dynF>% zkOt}O%&#BF$hx|^Am0*`eDMLuY=g<{z;Tfb3=|~9#5i2e$6*>TGu}TLFyhADF~kR>$#+tAuWC%b!8uhE z%wfzne`ju=$3wY6;&DwGk&;+oC}X=c}${_-04-1kt) zW8+s@l(g?5zE$S;I72!Wv)GK-s-`bSBI`fwXvZin#ur~2ars?p>d*L>h|dJ8T6a6; zZ=q_s2r-8hO?{TOylBJTA5vNd$fCOz0NzUcBM_&)DOL-Ig2Zbic(&`5l6f@ zxlCp8fB>t8HP+vf0n69r?Dc&$QAvftSvDG#l3bp`c$_ZG3_z0sJ5-s&9*Z3e%q5YN zJH6v-p;W<^R3)n{VV>oaQYJ!P2|Cl1amRO?0cO_#Q~ULM0bA9R-3}DlAqjzkuG<6u zr$5&t)JDK=VGqgX3~a{XXecT*h}MzvKC4eb=l29K@CVgNN6Z1ZG+lQ zp(V<=TrxRQ*rbQdZ`D=%xUK@2lZGW=GK+~%$@3@}d|76M8%m1FcQLfW3Hd$0{dvb&7dKq+JKNLy5GanJxkk@hexuhe8TnU(eTDMqZby2qr{^8&y7*e2r`w>c zyQUIWrvp7!d17~@J}%HVsQ{{uE1P!lqXc55-xCL*2Ob|Ef8rn-zn5995h5ZY$}GRp zG!+ea7Pv3>RiS;quR_`%7HiagZ(Dhj7Y-%~NPzztmhlOkuI%jWq@<)S;|YUE0c3KR z8bo&hg)%%X?P+a0Sy&H2B;5=|sD%KjFc;Dqq;=AYIBy+<;aG&QjjlEiV*`E3y5^b* zN*FdzOWxaVPYk5rNEMnF51P0*RRsiC=U;t1jNJ2s6I73b3zQHoK5yx$2`fe}ozd$Fa#Kw=KswnQ%dW<~o$9 zK@U;Qio1=w9!*B#(rlEL+zBtkvX92sRz_I^h?O>u?DEie?jE4#9B{N@p4MN|yMD$8 zH(Ob0O=fplW%>U`5B#hYJX5u+%rrl6)V0f@(+Xc%6~eTcS!CvCY@g1!5;D(jQhQ#x zNfD5*wpljJvcjhT4QByfj`RcjRJ~LPEF?#I2<~P5$9In_IoZy~9*F??BC7csp$e%# z{Wm-~!yIzlrkCX%^s2++hW@5u`vK=>X}twoj^)jwwDxiO>u<*mvH?y1-_7!EE__;A zk6`@dr618103KZ~u6wV7=Wmn}a8~B)fpgc8EL$dRPm9jUjxd~rQ=_SY=xS!-*3ee8B@4l(=k#iJe_hZ{zhl`74hl`5EHfqVar z#A}h!VHvaerd@sdd_Z|3n1jq`xy$Ex7>2`1e!2 z2&0Qn;WmeCedZDVP25BLXYg^?`Mso}|7&^4cvrB|-VWJ5gUM%8B6#g%+JDxR{Ua%M&y%P<-nw7&q7oTw`kzl4)jG=ol9d15JMVyXoD(OG z|LxBhaO+<(C-|%4EeHEwDkHdId;Wxu6T9kv#87af&vJ7V;6whsqmSQJ+$iGWV*ImX z&dCSt>i=v4&N2G-Y&0GJtb6<5JpFtuJS&*X&Fv4-_D5&wu%u&l!527l-;&)uu5g{j zpmdOQ(Ae)SN@~fCx(0HiMuztCq+GgKom#`APhNoJ+8;u~=sVW@H9VVBgZ@I0T!V&! zQSK5^;%Vrpqlt+Ylb8$=6`RUwq~LUm*A@sF_XG1i9-}5Q$^xrJJ83292s`rC#b147 zSI{spDC;o|zj5W|l-wQ|EZ0tZdh-*vx8udmQb-537J8-A5@zt1C?c5L9X0=zUF!hZ zwLj07LnOywh{-y^rBcCZ*jd;E)}mf8=zedmr2ZgHa=$*xus>!kM!U zi@+|wmYl*pzwmjmRluKCvvzd&bK3o?5Qg+;=lL;^Tcdj~88#DTR2RIuUII1kMMkKk zneg7@1m97*zanekE|g`&m}N8ju^{fm>@V@}t74`Q3`Sku@4Se(DGpP;%sw_F(D4u* z1?u6;+=UbsV}AYWP~zpaUws_R-fKT;;eG$=kr)A4>lTMCq>h#|LHF%Qf zbE<1Du;M6AO?urguNK+4`KV+zpEvBE+l4{fl%H~8nVOo{pfVNFU8NL$?+l($&N>O2 z7m?Q;5?Oi&QjH^fX1s=u1id}(C`hiZa8W%3Cg+JwyA0aQ9Q&*XeOuMgf^Y~+1#I7S z>tB^13tSc2L9;z5W!CHb$%N5~Q{8-T@9Jqe8&OZf;H+haikDPMaZF(962?Ae7>wW6 zqh0SYv>-xnN|}}0_hCPIq#|~5d?Njsdi17iWv(&y$rnrd7mK-C53yV|B<_Ubp#UofA)@eiHf(Y!qM{F)0PiHbxnw1J>m7$h*&qsXf@Z@BtZW*Y| z#6UAp95{cPu7`KdUu3nkn$qgYC5}dl2_Vm4kYiHF;ENPY;>QvsIcOZYR}}9>AK{nC z_+=2=ICbGwyhdhHyU^EspL(?A=^lEOe8#io(sgymbHu*I-R1}AyMUY4Otn?4-MrY= z<_#)#s2~MWfy;^x)Gk$2yrvo)9JH@}1gq2CpdaU=-mOHdF)=#2(qT`DBUVM;?ksU^ zg_R3eG#O_WkCQCqJz;m-g)adM+lh5)^^;jHr4^^)b$}wLXBRR`)N=66%_H7=-E7mI zcm9}MH@E=R$BS%PpQ+_3UZ2IH#~4Z!xx$9A_01ljhU1h!yZ#nm0qKKN$`_M&{G*HH zw%76<$C=FW;&A31M$xg^(u7F<)1W+PI&+_TVz<$ctFAvn5*>ffZs_sl-2{j0PHv4p z@6f?kiO(UAmwUkj!_%c^n=t0yd+C?44Qcjk(}Puud{5RkQTuU_^NncI4uCFhad`&A z?GXfw3E+S&i$LP#moB2S^mV%-e)ofh*1zdeS5pRl1Zk_t>foTYW(tNbq9BC z@K#$Jn|OMS!~LI>zlI6!mnVOrGaL0WNO~3M#YY!=YYxMUMZ6&5ezS>dm)$%IKZf@exbM4SJ@_^l&lQJG#2sI`LKP zn+5mk9jSSFUx>7HuQd0pNDUm;hl%VjcK3Ds;nI{Z` z;%HOcxWhKiAE0L*PF}lJ*X48M#m6nvWuYajAM7OB+=c!=pKS4ZtU@-nEhgIpJ}=LT zxGA_dQoR^DIMzIgdyukdR*;glbhK^9 zGkU7WNp4Ww5DJ%*S9CqNwskuajr{s1f?ufZ9q-54oV2}7FH5ay7i#^!{*E~gUv$<% zNVw1DNe$QrOfa6M5fNB+8{?bcMLxNv&N=$y&J47*aXa2}$qO{nGV$2V_xF(YvAWyP z-RsY_CkGy6KB5?Yx_t{ zhT+sb5#0bfpt&_c^PT|w5h>jTPu%X_9>_G^Vw2roUo$Z=-S-qHBqfb0JG{s%;U&LB zi$Yz0%}u8yAK-GoN(PC5O+fPD(=E5a{=){g-4bhDOy&5*B$wC*PKI<=MNk0qx(C6O z0%K+6xB)L%0?WYR`hti=r;y!llNa)Haxz67N!W0*R7aoXY_JF$*9lH(%%}S$3j}4p zCrxkWukAw;Empepi)Tp_fb&J&seSl(dT!j6$$I(IA0iKrWAZ$25h>^=S5ypa z5RgATUdg1_>ug!03)L0I5rib?a zoQ73fUEly=-C8`Qb1C_YG{rZlD8m-VF3pV9$kU+SU`g%HGAnH(gsIWYe&ov-ibn;7 z`#ePUhNNK_eDzlkV9r%qR<^Qgn#5O9Sf~N`{A*odV9)`IB5)NB^!C=7jAe(1BRV=l zw*tZN=0=t@M~4;#MP5Mxm5gkwI!E8oa4?0lx~xoARu*a0tGhHWPa^gsupe(OFN5)< zD_1s?-~_Zb02Q;vUQSL9*zO{uqq%HW-)OuD6m)&KWd^tm90F?U1^Tq3RAf9n&y&>- za1sFI&6?8n^>u(<1R?-DD22ERqH3UWugUBDyFnW5a`KfQs9ln%~k(za^dN}Li z5+A1di@d7MT!T=LQLL904-5K6#YK$HCWd)&{<0kAWcXcZpugaJ^b4jqbjC9nS+jy` z`KD6iw8;jEkCL=^9F5$UO10+bLXG_9-0^7l zIpgto9Etez>VAT`DuH&195%c$B3w>ZQ79%o;}8D{z6RvbW|`J$U%~CW%7w9T zRDz8-MdZ07o;av8>p@O;cB-edZNBoPLfB8t1Rj%*Kg4E^U?HwpWn*$Cm8j~)C zzvbr-;@~+woY!VH!Ch1(A+%SL{VBch)Vz-kc}K76QytOAo{HQ5R<-oA2%F( zSrewKYe=7hLO@+|!~R5)FyCO6qGhMoxWXhO1Q%6|O-VI~f|~t)brUW3W;Rpi#!8#J zo^@uBYIk%obZ1%C^_02bZBni=tWX+>pwMi$lq6I0Ho#Ru{Rm=Z95>R{y?xD&b6iWV zEf}0pLCo{mYi0i%WgP;p3C&H@D|rU2H}N)ko#l~hiweTB<9Pei@M&s#oNte`Tmy0o ziCiqLHarEW8Sxt)2J#^g$sHXX=YCuC4Glql1Jd6&OFK~1=M9MfY5+eG!{xBCvDtHU z3=F`v_XEP~+3V zvW(TPlXK-KKBd8Yg8n=BwFly$r~&+kH(6FguU1{Mgdj&P(I_IQ+6ZZxO68 z6MJA&jPi01qneXni3T+$-mE_kMvcHmt0S5k5i+vZI%kxmK&e#I9Z!c8%Lv`;m!!{_ zUz2ocL2>U_>#oUS^&U`B9iUjG6h3v%FR~h{d5$AeLq z`sLX4ez(E9tRf5+Fv~_9It(;65!jQ};ExDHo*KBj@aE-IHO(q$2+jsLe?2lVNjG^; zeb!@SXC||%zqtP3(Xk)qnU$;FoRaucrg0%B~l4JEmKJ(wR8jLQ8UZ zTAP`)Fo{owoR-zu*A2IVfoky6H;f~6AqiW8x6x@fTIHJlEbA$H!cF^=cxyeZTS<3f z@2ZEHg8_tzKsR5#Ncx?UwEFg)g{z@!vVxZZ&&!deoD-UGbrpsATLWn?N`LvTkj+>Y zD=mW=wcVa`>|8p*kpIKhd&hI#w{O5U*?Vsh*(0*|Ot$QiQba;lwvZ7bB+1O)dv8Ma zDzf*;-Xrmxx~}_rey`{C{Bym!@5I;V^M0S>IFIu<;^QgcyrADMwjN;t%qYciVU}I5 z&{xNHR_#@4Ze`^MXout&aj5UwgUg+Qf&w@;!mHbgX{*XYaPTMhJ(lY3ieie5ZIUEP zPE5o>2lK^Bpnhj(uR)m7($lAB?iuweZq#a!oSo+ z!dqnNyl3i%E9-D-GDzBfD-%w>N2)JnM7lj3vr2w{bSb)Ywj#N;qt#Z#X|N*brwKM~ zVd6B+%OezdtN^*UZyl8{T6IY>0Bf2R*Z0_5^71xQXiy$nb*{VU9p2igql3+LTw3pv z{rARp@9ppFvZ0^oy*Ujy$0bi2Xz%4<_|n_mt!c7Hp>-OVuK)AyX~4~|=`o>LrVii! zEI1c+y{)s8*TCMp5ghB;zr0LVSje$_KJlfBd)U=YzggjxvUGFko(zBP^DS+@^mP_n2O&xIC`Ee7UW&)dC=WcazP z+>3ww`n@TJN=pm%$Bx~54?~!4-pq(<<8@0x`t$pwsN={QcK zAKrVAsAum8*!t?MbRuC;LC+QSu5>D^T>P81$(WR#_5AW-A*t)n(doFc5J|UDGz?iP*+%7j_;b^pAMmU_s!!f_gy))ZTf6DL2P7N#*~h(PN`Wv3ggQBd`OeCO~}E5 z%O^BlkEGZ;8fx2yZl|PXW|ZtokAfEt^j;i|maH#?mZ`_!Rda3vh1bLS*-d%X6F6ZUs5blhdGXKmHpb zRjwl>o;LOAMV|)-m0L|Uy^Owi)$?itO%v_eL3+k!v)Ms%*Q=-z0e(t$OMS_2tFPo= zWssy`X{wtQ@IGg^ckniSNLyHytillB+x0Lqz+Ri5A`Oe;;pG!P;r(yy&Oaqg1Re@L zx^WTA$|%8@o?QQI>S(0Rsqx7eUeURd=J?Tk13AH7C6e{CXQ~ZeZFb*2a8VBP8X!qB zhAK6YOesFNBR=nx)fpM{Cc#poIy001OZl3Kmk9}3QRFaB*+$lbb%Xr;q5{_QkIby+ z8@F1*3XHGc)VHWC%O#y?yClloqu5lM)rlF}pG$llKb(aKgnbp?Z7cNZ6HDpRG7H$7)pa-wcnzsi}~G^x-2J}&4N>B zEb}MF36>%c7a6*Lc|38Ksh=Xf>^%Ny^j%1>A49Bfu=Y)J+TNF#bk;JJ1TKZ-;3hLe z6ZR^%13rGQti3PU)%1Kdr<KsChP1v?q{;Z#Fuapu#q*APu7{=yYT6ozR zTtySg{TctIF|)u(qu_xiWc9$}OEhS=56La%!lN#oJ*U{tQ=e>G)d+l-i+d>yj(hn8e zHcuvctr?se8GIR|H^}Xs-DMsfBkYaV+yNP1+)hEM74Pj z3JhyUofkXq8%|8L8@cLG{EAQeU9lVKbH^rdM~pt`iYr`pV0zP5$RXrbd0Ivp3)Wr~ zN8F34vM0RQQ%`GOSX(`N9U-V}W|M|%88LOT_A`3SqWg9px&eoMqGgHIZIYh1B|Q9R zYBWL)Mmz#f$My_m#Ei9Fl78CQ+-@1zko20$N4^pe6v|Ty>HAKDnYl{aXskPnfSjwj zKa6!an&UjxWzkaUTt>sfjuCQbu;_!UwLM*X{Oi>ON9R$9&;W~k^3#V8QC&=aO&`mx zEqavvLC=ZG_K{W_v6o(ph`)Thto-`DAbY=TcNw~#WTOgy<*}wl^2a|sj=!}mpF9v` z&ys~{^TM$IZ?<13wK+Vzyi^9ioeam0R>>bdX&QUF!nfh~y7fI56}Obi#8#g0&zuJb zO;_(b%0|iK{eY++kj>nH)023MQy(e3<<+)o${vLpyGy1SyvZ{R4CzKL+=-y#$$Nyce(7e~a1r+JIBsh~54pFi%eTi3%0KncjI=Z)RbuKR1_uWx zSCS<~mLpY@CL`~{r`X?xj^x6`gI7%ks@u$tN}giJ?yDS;zdiDe?e4y<>+DRP@LoxW zJawrto5 zsbKyc%yS$jx_GAT-k~8Jr$0b`KFT_U`~Yq#_8aZa@~-)-khytonYvIX)u~!%_O(GE zEUepL`J-dg^0=K!qTw9~UKqMXyn49nOC8aIjD|-pb`jEo?C5rDjx6(verCr8#LU!k8Uv3BZpB(NYO_^#UVux z2BoNv`Pzykcme_g;D2__lZ##dpGZ#&uK)Y@n;`i~IqACXzA`|8KS4}K^n)*C6@$O_ zqgEr6g~cGyuRH&u_-=fByt}*G+o~`F(8txmR9T4epFVv8jZPXdH+ywb45G>#@Q>CW zL{6r!c1ogQ)56bKXzHKG!NCDtRg-e7p#eNBh)menQ?S?togGB=PT+AE7{KofKm3sP zLdC^!xBvRj7hBY(Lx@L5M@?zsEFd;EzTh{kxRy&h@y!ryrUWHdgu7lcm|v&;UwrvovJjZLJOd5sx3sUG((#7iMLF z-czalyv*MZnpTB@R}&Zpu?QbSu4rW!k4~c8=OJas;j|MkzHqY{ZwWWu)tfB)!`^ z={?`l`QiGxNDj;cn9l#C_jH@fz~CpBX&CUhWH9-lG&k#n;veA;VlHMt*wCrG+#N_pwq?=P9L8uS{gM*GA4LJCmotgAIvVTs`jsc z*59Kw`xO#7owz%SPeMWhT}4`MZs>SMN{ap2zU7-A=pT%s`Sd+@I19e)n!{Y%C~zb8{2iEiJ}!b@QIt*d%`b98A>(fLDEe{og|`$4!`2 z*kC(`+;j2ghRp@T^=n?TpKwScX$n&(r=S?CTDa1s|NEuwbPQtR#l5r1#T|6;dd+ut z^^oDZ!Pz#AG=iXhhKSu{xKcFs&un@2ot+=z0Xx+dV0E7xTI24boAnUDo1i*O3K{os?e+b zrQb*Qdj}`gEdTlMwfuAA7dmT) zbH!j#aPJ0u$$!zI-w>VyisM~0ykOIS;BwWIk@>+pAL2I#?hM+h>)9VOIh6AA@u^@$ z7FG`g#R#E(6%_UF$=m2)?b$Nq37lA-7uJ1qLoFHoY3y`0D2Yrb^^42I&9;a7MU^m| z{K@(vjeY+&WF(HS*Ux6DeAr)0!Q&UrJ?z1r*d6rB!wCx~A`;xNCc#Dao z#$oQYXHKuvtF4UJ7#NxNyleI5B=~CN<&@^SNVyRu2z5zDe+><9=G*RCjk$^$#=ZY6 z!?=gGHHAa#b#dx&##a>lG&W&g%z!Z+@-Q`B0u#ovOx z?pG@zk=ZeC2VR+8_G7`a#Esd;j;Wn?qMS?F_g`cRlcyEPyS?ISuAUL#DHn_C^!7X1dYq$-g)_(Mf@RBxN99w`ITN;v_crUG&h-PlXnA{h=Obv#J@wpp6tb;$~nAE4NDW6V0E~y3tYvD3ecF# zaLKO((jp1zqj3Y#pttw?`n0Q(>gOv4ty{BEJqG#)bypwT^mwYbZ!K}&BU2yrlVkk4 zJ}18#QY*TmE9nIBkC0u6bbFWWU3J$T9U`afb?ug_v)J(R^Qb1h0lFuTAMa0l zK~@6Dp6Ocqx&I)Wmad5a;)*5j*R>Jin4Dy=!gs@Shp(I!;?+5O@vz< zTXZIui#K50st|1}y3EpUy2s=yBP*Mt4{Cm(h#VCenUa?`8KplmLYE}zW2&S?{wXaa zMA^kf(AK!Yourneon+RV!nbVx_Zz4_p41gKIJyP-S7bzI?Tm&j-W8sZaO~~u5pT2g ze7rzobdR6W@kq=T!IF_fCE*T77b&-=M^CIbC^$ znwq+ut5aSLplfH7+EGdK4UMDJRv8&uo3Z``n^h=R&#=g9YN|nue9YiC6(ugU*xL5C z+V`sDkiuJ{kGYumZLs7NBv0=MjjcYW&JsMhVv20@_}Df%Io!>*C^B@{zB+a`DuL=V zS;AW1EQ#2oLmoAkNJH^?ZQe_}^Ng}i`s8Nhr+#hGL|+smC?_4f9|nBzzVGbpBaFK4?HI`@ zWVIVZ@pAqaGk*&Gj(^5c{R@7MocYtj)bZj!&4uh2Z8o{xw6ozFv=2wE+kKv8VTG8< znRI?um(p?f4Q;upcp7pK=fZfmf6ziRYsyXd(^{HJ)uW=7diTmLrGUngjIrT$?dNeW zl$a+4eV2&qchrsQwmNVJnuV>E}=N`PGrlD@0^p z15ee9%tQuyeUpO{7H657x+DEhep{4`E_Tn;2gN^7+YnU0vrbPcCdS{}6pUJYvJ}|E zwK-YaJHx`r5E33(ksPz+T2vnqUR5W2abi_p<#;#T{M?7)%{fB%WjK+Sr)SFfRa3?T z(EkA8$j6UkqN5KWkb{V>)k317r%=52;Ti#$71QvmdL2oZ6n#vmr{lgAw5JjHvGb>- z2qEk5nI2c7QIdxqD^}sb<*Par7CX0QBTrIm^3zd2?psr?&ZU}#UyYAbNU@KPC-mHl zcT)nwMCJlxH-f;%jksFU3bpAP65jq^O2M$+r>!ti^w+)f%8ku`!Y}k$^4opZ1p)`V zUKDl)f^MNQlmNLpyJgdbqY{=f^R{LuL0g|YQmYFL)s308p{dS~n(1|=A9kPAED^sU z_36&&P8=V&8>+q(3gN zJIqxsiX_DrTKIFZOO%dZaCI~5eW(x^y;JYj`eW~yjRz^Pje^49=Ny8Pm1q2r2+cja z+ZSDO3t2yM(oYkJdb8R(+Lih3Iu%`}m|3{kin3MZ3KH>O9)!*ZeAA&&QOBjTRE-}S zqmjHN&RlAMB3nBA=W!b)0LQo^UX&Mqm4} zveHt!iE_4^Hv@u~Ae+IHH%C5}F$1wZB+Sd>nBLxAXuMmCmH!Tm$2+yO<2VeoOiXb6 zHX~?6L2eZ_BuhOR7Xt$UDdzoq5vR4t^z@|=qFZxFN;ii$#){5PPv;Oopb-2sAQ4VX zP7)d1z{C_0(b~qC{Q0vb3f5gfxv~w~K>9qG$+TvG!NBHZ6`ooX^mafXXF!dy2IdKcM$AH5jxv;woSwW0vHyNRInbx0hz{2PFgSG1=AQN-pnG@%G`(DtCmr1SH!s7Y&%S&f+9iq zj78P;ZIMY2r)o_=wXWwDmFf>I_QHJ9rL(xU`L6eTzg8%fFP1_pwYx}|RqM@YabWj` zqxdmXfH6)HKh?{|UMa-rGCZw<2CrztED17_;80D4&)2izZZ2z_QH%iUh@FZtcnmYs;4TN_uCM$7*Nl<|3fOdKU>NK!{sH&{Y(CE1|H#fLWEF>g^&re21 zW@I!8O$4FiJ|`t5Wu|I8(k)6VDgeYMySp*M_d7RK2(xgv_*rSJR6bkLDMd9p(D{9eJLztR9@vGZIno?cSt1{Vsdk{n?AGQ(SLq3 z(jzYa;_wR(T4vdN9JR-CFG15X)dY)GS<+P9tM#?YM>j@mz&X$c;n#&=Mo(bJ;L-Us zo#%Y=pGjR}v_d?Q;zj)~%-_N~?xVxb@4S<@jlAbHS7~O6DUq4H)*~22mu4!p&>h`e zU%HW5*Aq=UZ}K`c782uL84I>}ybI00xxO*P(1#azWfK(6o^3}5-9?wP zo9KSQTw-a;u_<*;eZV=F?2!h?k!jkLl)N+pfjb4}bd}?T%bM}K9!CD6T zI@!YqS$N~Zcl$dVFO6fWhFj$1WrGre4yhi9e7B#P!HETiWW7Iq06xi*N3@<*dJg59 z$QZ0}ZKdjsaeut@2t1B{gHnfkT4>V9RvfQNE38wKSxI^g!5NnPGv~HwM7Lk=CW#CM zp|LiX=g&F8vo=JI@~-_H%um9@pu|=^2U%FQpcm?h?tNWd2wQ%{^fs23%R8R{N_yij z?QCuYN&-4Mhak!c3<@}{C|}|W`S~an$n$>B@1hkV-t3#0sEy`pF(V*|0t$@( zGZ#WyphMEpC7b<_p_A4!Ri5NfvQs{@7hcD$V|BfGj=8si7v-@pI3S~4lU|E9g)ZXD z^c6MxcQJ80+LkNTN7TSyv-R|qKhw`OXC&BDRZVoVX6JP@-pr+5em}V2v|%liW;&|n zVvLhHp01ZUQ~KbW!fMZz>}zi+&*mUn%~Z;#^=|WU#^vVg@Nhl@Rz?=K+cRFf{i#Sg8E@30RJ%2Vzxb^m|y& zUlSn>8P_Yl8q(0$&n_<3(9kHZucsD~?|cMOy_lGosqt+Znf3M96IAKMq?O`D#u^&* zjKjKt(f9;*$x_|y7wM__r)|nD?@P&qcNiRfpC34!U;cjQIwY5;NMV0Y(&h&XVfY3H6sX!hK_+U#Hq2WGj+{va75l8mz5!(jvVrCqz_U9Mp_ zI_b;$g-W)AsfE&cWJ{5k)jU_^Bxjw%HPID1_i`_ncNh2^5P$s;rq_$9ko0YrBeXp~ z&3sPIz%VUi$HEwJ{?yv`4@t5Y#l3iUoA z#!o8j&BW*2oMf9kZcl!imYV9Y+D{`SRQ1A@Aorl)hJ`2(&n}3Y?CtG=A38l1jHu3| z`~&K}5@Z$2n}kt_54MPE!7HZc1E&r52Q_}vEpnDyv1h3WuMr7vc`UVYxb{@udX~FE zNk6!rTQxNRlw)o@WWN2J25guBP(GPYP!y2tM%s5F;7;=ZjOC-WV4Ae z5g#MfiHR*finUx=U>VbSc{^8d#V3W8h?}ma^mA0A|6}v>Gb;_U`>OHFD3Y&>z7!== z@F+3=dbXz2P(&+xyUS~JLjs2I7!K(1evba*OXew^hc!LVa&ONxeftm@^QR_O`A7dQ zQ(AEK2E(6aU5hq<#Wl4}H`STndS2;l`H9{_3Ob*)_H|<|siyKj|JaP7NEwv}k)*9T z#jqMMNCIajH}F6M(x!_T+GT_1*?zUdqQ#>}Fo{Tw=!l@HgDUN3*>lr+x0cpc#^W9F zSu^#Uc$!`AvC(>mA#n+!E63BZxRUkp&FTwmT$~B3(S;uC0<%E3%P)l#Z^e_BPd%p+?pE3(g~F+x^>j_8wlLkz{ZzXoXQ5b2{I# zMUMF-xvXtWRfs1of0jd|6aVqQ(YWxdKn8+`Pn{3Ly}h1?hkpwhy7%DJX(+NJ7VCQI zFT7tK_W9XxpSEm;st9e_;?zbZ{ZGrVf(<)HN2_PgJe`CrI?{aYbeT2x8rM%2j>0l^ zV&dw({up2Ank)3y-wO4#6ZDC_7nZF_-Ue1m3ZH5#=L7>K=ziZkf84R1lj3!u zg9~zDI$BzcKN5L_gl0=Edm6odo40GjR;;lx_STouQmrbI<}sLl1mKvOng(;<@V+`G zwo;aTgAIcTP;##Exw-`RswNvfY3bC)MhPx1+zEuE_Uc&y)$65uQ+9UJ+8Yy@tU@ z;SHM&bKIzoZYK^<l!rIg8qfq>6p@Nc)h=aEu;? z;N-`?8)7vJYZ<(^_lX2zvY&T;7aG{_Gs8jEk9PW!QTgfd;sfX9yEUcxEPEnNZHC<& zL-KSsbnV&}JR?8*GLlhAU$waOC9a(xPU^&e5^#=K#q_xM2!}xPMpNP~dS>43j)Slu zEEBPr`ff)9a{~iSZ&3y<7vGCi^X{I`lbxH`S~@F4Dd&H(d7m76cs=1Nqh)2~STBuo zG!xi5{{DGWC-01^(c|L3!G5i7EK8sMT2sIG<wN3HzlHlg%~eJ* zuKjo-<5?fA_j||4dREmgzQoQ$R+}i@Xf6C>b^#*#3uCK>W>+)I`vv76yBJR7M?=2u zev`-dCC53?q7Pp80gpdh`caN^mL}Kh`*xq zqn>G_o|*Z8>Ho*Ww}X9z_832W0C$r@mRoY~#Fym8Wo?qf)5prd6UbfM8R37^?dIM( z_+rrQ#qw?wA8f%Qv?5=qiMh`pcL5K&hLe>wWyjE)Tnr}8Ep1o4Zi9m1=NY@{0aSln z1JH#ps;r@ZxF!;;oy{Q%*AwkxjriarAtU3_id8?K6s*m|Me;k9L`sg6$5s4i{C}Zm zJ{Fo(Qjt%hzk(t6f{4~Q2Uy%N6Z~&dnUa&bziJa8B&7R@?SIojm@n=nqXAb7%om?+ z7U=~BwauAx@cy59K@^UFY4&354qiUR#%OEP&NwlaFXwL#2;lxWMmztWt1vTPz_&?MGIYfR8*>{ z*On&p>M=<>Kgl0@>MblTwmC{&G+7z;_O5|q{f9K(yA4v*s^6w~FO=B1}NZ;E= zn0a-oj&QCF=htV)Sc~0#j?p8Yfum~XDaNfld>^LpM+5S**=0(LPMJ&`NY{_;pGWr3 z?Dy}}OQHG*DA~IV-_wV`&7b@j8w2K&w5-0J6$TJI6lJZ}nlj6RU-)sW!XW>jZxGCd zNM|JTzh{sCe;)WX2jSl@!a#wk<9|Q!?>zkf{n>kFvas)6vIjP2d$onC3)z8&rmr8keSdxfj);bWV*m2x$?J)AuPvPGe~No0 zdzadpdPvmQl~%)=mF^tj7?{1U!|l=#_~KP@yOZPS$xr?&ZO2Kgz+*nJEo_- zHhvV?{K!ZAZVk4+nG@jSy9^LxGg)@xcJc7ggMsp@&)2#YQym=&yV<{g1s8w!VtxZh zpDBnb+?6hzDd?)CSrqTeS*i*T3(Kg)0u{p6`}bN(N*Efq|M=^$sC@kN;RD(x1u=1Z zOUqD!Ha&FN^cj$Ffp>E$y$rpF@DWWKtOPOd<<%6sHmuL zF%j6C(*a+de#p+ocEfXMaFB@%5w@Xk&gi;k0_v)&v!>ENzp`vpl6CB6D#Z^;PovN@QYq0}rPs+>4 z{o^eokz5l6g${805HkdI!W#|F02c)84n`^5$bxI|bRcOuOPvmsw`gf;>21y<@PgT@ z6yMR(h`RKSjJ%vEw+7#YNq7e!%nZLraKqsdtFZ7ZP+ft76PWejZo^ZE)KuI9Gq0#N zkFd6=j%%*8)ZuNZRe0l+Vs6C|5&a-Tkh&`Sm<|pQ0RgXNH*sxmOZkYv1yDo*D%k<> z7o^0{a41Lbt7T+mWu>R*8`n4j74;^eHJku&3U(T$ZA}CsndQ@`larHp6P1hc- zQYmoy8r}97Z|)x)jC_3nrv`LlfQbQQl@_kzm%z<-D|cGgI`5B^UV)l8EF{FQmxhKW z2%DnxQ710BCpPunNUm036(MjUmR?`-U>xF!_ssWBPftOoCUpu42}x=z=&^vdXNyCOT-r^Vw@-KY8!Q`e28HG2v_`m zsR9-pG`}b)D=7`$a|Xa3T!DdFd+Yuul=RK{c|;X@Zf^CHkdlcB!@(gCfJE?cbZ`KR zs`rVBUM;Ut0gZHYbUfsPcaH9awvYXw8szDPg@L&X^1$$yKMIV{Rqu1lYA{LtY5vH= zNB^W1v>iYkA5TOsE~Et1*k@~AqN5?g;>3p!ALy+?U>G)MH13#Nw7tPeL4p5#aj?U_ zZ3%P*5N^|u(=evbXlZGI`7HgohTF6UWzX2%G8MdByk%nD+~)J zXduqFHa3h54Rc}cOQVi;ou|6ymB7Uf;*k5+W0Ey#XaXQ)$n8oAz~Df?;#q7(#hpQF zcJ>XpDAsz3$2Vx{`#|wqY9QzXTKyv%8!XkWrKR-DOa(<=`rekWM*8}jvrSDUB~flu zL~Cf-I8&((3%QHW2ALmNUj~^VZ3t5bUMZ&W7VI7! z9Uelll;Q%NGU_w*czoI1x8iaI5>Xnz*uN&ZS|d7V^4;26cCE=&ePLVYQWakR!WpX{@%Sj6A9}g zCVLe_L&_MfViJu9Dd>KFejqn3HOO-}GA=F%c}+`{zIU!4Zf5GYaLPNFDzLPOP1y#< zSJG%}cY;vv-;KuXrWAcQIOnn=IP*vYeAUS4iS9XtRjnzpvKpX1|FLB9R~p(~Pox6WFJz<}Ix z_WL(-;{A_2i0$TJO$1!Tt)BaXG9xI?us`MsTW4_m;coiuFWp$Oeg3=wcHozm9^bon z&z%iqDOpY(A(-ptJ%Hf(dI-31uelk#qB{eZi|H{HwqF;7CtuNWEF;liEHoVds7}D@Ve1yQm_T|8EZiPi`GFed zMrMZ2b;Y#wUnn32ZsT=&e1aG+3=JGCd}wIkE46}~RZ89P-MY5HbG7e4ql6>kI@gR? zjA|g=-z?gEry0ZC9r&;*FAu$F`dV5ZLI{Sw`-?(&t;-friK23H*n$zQXv1B zuwO)fe`0k;B%}obyp)OgZYl)df&!d~=3-erJu=&GU0s9TW*>_QNl2EVv*(hcGAg$s z5C{`>-EM9Ib;rOK^oE;3#j!s^VR7%7wRKA|a(a1n^~Y>(AOeaguw4_=9PbX_rLm^I zhRNHLG18vOB;SluYPN*z2+$l*Pf<<#dwP%+5J)3qVjicQDZsbMX=wN(d3Axjgd}bT zk~4C0D8v!|{!FlxaQ7~Gb;9x3kZFUv^TEn}pyQ0&J$r_vi~JoikbdR|Qj@Q&pH;J{ zq18DYA($wlU!rnLiOzSo++h{r0atH#Fs{te&XRdGTqr^hP8j(BSnQqv8lrIr@DT=6 zh5W)ow1?1%WO{8EJi6yQoB$|C7$Gd|%CJN~?fZoK7$*?eYG{mdqKZWK@LP*JhK7cE zdU^&2ccHlfY{R(hNqA)BAjk_{516t!Xr6MBap)uXQvvnz{d>YeD*JAL;q&utFHZO9 zvz3tk<_^1s{|=0{vy=(E%sT=C@G2#IF6-ebzdBf1URi;Z151vi`o0S6Kw(7{M^Hd} zg$004dHH9-=aj{G`Y0J^kiKAsB_Ie-e?lCI2<}`8V#?FGPsz!2UAOFUHjyIwdwWro z=_R5MCk1E-2ui?h3XY%J=eq=a^NWix`I>|DKk#h7%A#(g?vtkSp@rSJeFgF|7z_CWs_&qmNXi`VYX^0ZJ2Qck&{HVYl^clwe{ylfrx8v^};)3{QD3xfgxJ?d=iZhflcZQh>^nT9~rl)lamuD z`=w2**xT=}^d-R6tEi~(6Ze1p8fXY1ox04-%zll21duS-7NX?X-(XW9@gcK-0)&aN zF$D6DFll4Ft`)}R?_EM=Ds=*d=+M|0Hz%jp{?a!X%|UpDnTyNL3{E~ycdgHrH|44f z5LKm5VSEi25lSw<9QYjA51=?~u7hd?(I1Gi$bQ4#2~>p?69}p2@R_db$8UbN=s1)p zWA^ZUfkfLnhkP@L)Ci&p*xE}vt>N=XR3kqkU}Xi?l7+!GfNlQcz9i(lgEMF;g$ysP z1|Tm%A_v?%MT7_6PsNWHU5CgRIh!V&KknZv=jJ*HHxIfWNdl>7?Y%g2$v&495}wr= z8J1pN;<6hy%FUKAT`GIhM|tNNakw}?J3E#Yh{ljqf;69$TUc0F^XIrYJ-A@NegjSR zW_)Ap@IQ2Ge4qzBev_BCq_)=m`UpGE5!~hTINpR`+cyMSf3=T1ehTk=yI{%%RoqQ> z_BxBNn1czhVh+zlIhw_<6zLAPL1{q8x=^)@`NKi}l$AtLR~b&#L=h6g`Sa96xVPw6 zYVmyXrlv_;^%PW8qAzCZ5s}dl)@9oO_*`08pyahcnFp%D3r-G>;AK9m5>#QS5WnD7 zUo+!&9FsX55 zc5);PN&oUiTT2Vr?bi#+CMG80;ti0Jk#-P5AQz3yT=~^hzL@ofeOK6-N_k@bOrs9$ zt^|dI+L{1owMT51Ar+W-t%cNY2<|$tLji3Lq={y(o3G1K@};KA)tg#KkaqmJp+~TH zbVM3Pccy?{X#2I^c>b2eW7p}m)&%-AsOcc8g6%65=WqpKECPp8YL4bgfa<| zz+=>c4QMdtFa&rab*<3oXUu6vW4Io4J?0COO!1RWqE8!q|FC?1WyR&{(#v9H`1|+R zj`(~3-oyF?tA8RnT@cs^&8b9E&|56j0mQTq&lF7;p%l^-OJ2;}pT> zP{u1Io^1Z)cUX|4S5ZP_0h%QfX$2_dWG-F= zKqaP+C<4~0ey?AD1{u&(h_P^nDh5!8F|t2F%7J^0toIs;py-F6xqog;lhZ4y%0;I* z=;eHUeSuz%@vf%k3`jF{Vr~feTXS;=NyB$}6+WBl>VEC-$327cH6SQxw*J+~&z}^w z*I~!QU(TJAAIU%K8f`j7d-H%t0)ZRuT52CS!D6bApu`^kzt2MSzh?ni1S&JAY(Khr z;%o8o^Z!2DK=<;7!4ss1tBV7?fTJyT$qPYWZ3xLy&WDGGPzgYTKu1P~o_=FO+thS> zYwNzJPfRshZSk$g?2utLKSR+6j+ao-j-%!RzY|6EzGqEzgs)f#S!=TsU^M*?@HgTI zw|ihO51Ii#AwNd=OD9^c~-UW)>3D`#F_UWop%r6N*|re*>(O+%(^nl;u(>}y)?^w5mk!InOx3W$@{ zSy@lPmpJAowwJk;eB6J}D)N}@Jp!6ei$nVq5u`rfyKl!CsV2H}W50mSO zTX<5)3K7&dgh5Ptb#)aP3lzr@JYFB;&qnw?@^$sKTazDwmK%bTql*jLL*z4IFajD! z#jSw;H$+!MV=dDl6xeED-3uiu_uac6kL$9x>Tk%$B_-j$#!*2qzEOb|>%2C|z^ZJq z9jag^^$~d4*r7<39Gsj$hKH68(gV5xPTOGst>CPoDW~Xt$Ik$YQf*&?P+M1KZ7ro|z&vicz@0lo%N3gc-y4#Q0p%rN zNaoaQ7gC>~!7>6XLCCItI}kixxw$FbB-~2xXlX%gMb2emWv%u+bHwL2r%vHFuex59 zuU}tZACh+_zcjH%S#yJBtoGVD=*+GITLc;}!qbqGi(2asNMeDEs5=!940E-8;St-nVFdxxt{dB)74}j zbNXw1!ODBEAG$0lx3%A|O#YXzBmO-L14z6ytq^$K57)}e1=joq&lpnBJ2;?i$j`sY z61^4(n@Q6Bz|4lKs`)aKk(n8~>LX}&=rt@1gxrOl57#t7q!Ma2kgMV?Z^TCb;kN=8 z($A*$=$jG?OC}7zhL_o8`U=Kto%6D?ZVg%jhTWwOwSa|18nmxzX^b>Y{`^jB8ePx7 z=jz(;(cg$f+Vq4$G8tJM^SuvY;R$%xnkjtjI4^JIh)m<`5WFvMd>t>oRF+oAn z!xs>>>1WERUO&O!`UPj_dZo&BhZft(ymt?bt60UIosU{uWt8BbO5gsQNnFtZkOGtk zaNXy=Nzh!~NEO2`uc@giDdB}fp&_NBf?1pp9ZfWy%nA_7_n{%Mu;D)RG#8q)(h!A9 z@7||ZF(40;w)NhBCYqZOy58FJ102~E$xvP-FdWUw#r1}g7plZ3PoNe)g0}}@0Jk1{ z43CeVi%U&0r!X&XWONjTai-MrZDpk(ZyYiXasc`>Oa%rg@2-uuUX1B<>TRH5lOsfc z^AHC#@q&&oU$(3P{S|V?!2wjy$?D)rsPGPIvr5S9QSAku?mv+tOsnh?_s>Po*Ely#BXv7)ksG_qs?u&=s{Mh?_en! z3Ujc%AP`w?4aKH9EJK5P;Ul)G4qUz4+r|7n{wgw3fa$+*=60~}(| z3TnNpw22TPmxX5M=3?UFq8$f`Ae{y9w!rC6DGk;{YOwWNa(nfvz_^BRsQ~axkV2s! zho39;BVZRns>d(Ky2KIozao8HT~B}$;Hy1H6ZWFn0svoNC~aDtx(7-dBKYI&0z$lx zzLUax6E<>aM2IU_d*dJ3+09H%VJocf&p-R$?fzdij+aObZSD1u$x@9^%g8|G+RbvC+^>n(XfjvD_0g4(!|*<=7XUWg!PF;;g^|kECI$u`93&kzd2sA zONI^m^q2DNQm{%+ocjp+X$YWD&|H(6Pqlzk_rsq))X7phO=TYD-GJU#1S-vR1uH^j{wVWdPvU!W9bWR$5tIVQ_dGc=rl ziXH@(arJO5BBP?DIW*BHEi5b!k5HB9LO0-Hrc7zL-y~$?;_4qA)lpZ+yBQR*@ACWj zIX<$+eT#DG{98(5#|V9R9E4b{gM1%e-vb;TjVAC3HpK&7T|iKLy&>Q4{4DG2?hbVm zARR+e{0DHpvi>(H<0a<2<~o5A9c)8V9%0P-SwUxsHstB^rH^!Y>B%d5A((a6r4})#c|zNRu%>xLQHB|SsCz^q1&9Env$x7vk-FA z_j>H0NO{Ho-z(E5p`~pEH&8%5f&v1tX~pz`qzit7kWG;zkcXkpkC)8<6+L*(6c z`2MM{t$dVH{(P^6NbLXqdW8r!ZM(WK?oxgV^7p?+^w+iQ+KGChDFoKcWP?W)q*iR# zW@9NSDL@W`f;xepv!?$>!wzI_28-d|eF3IwAexFGG!v23K(J`qu(pQ#cd_#iSOBA( z2F$J5_o`rVT4hIrvIkjhWqBEO6U|*#EI6m2U>X!?xVSF$vT>yoVZ#OH98kol-Mg0{ zU`=Q&CjD&J6{xHL1N-#wm!e45)zlyoKsk18@d7U;C}?#!<6eNGy((nW&9r6bD!3ky z{8`Jpx|AY6K-e7}9fh{H!Rt2+gG-VneI(p=>9ZpO15r)7x8~b|A}4`j+x!4joZx{- zlRp_q!kG|;*f7!LI$6Rj75!#IT}jE;9o%MOqN3Qixd;0C?g$FfN_vZxAN>FPrs(+H zvdMG+)ryM#hK_;3#RtX$z>Dy6kdv2(gP4(?4&Y<(@7BZf%ohXMxDI3=^$!7<=7Leh zO#Q3ok8r%;-+{9BpSRVZvSYqJoT0%6TZNFn{J2;+ISbO$QK(@}bqVGnoMw&C+AfyY zpFA)yxKZQxOUk*ky}cP91sfF|-K@^#ITUjMIt&U*;pyn;tm)c8E`cD$@?(}qKmg^t zpC(c^8_2DtCOVZM#RmiiN}s6$z%okAcV*_`O8a9pu?X?Aj6PD@*K7_XWqkI!lu|Y% zEsQxCf>FZ);=FA7Vd8xDXKa;$8mz%T&Qna}?%AdWLL;P^ts_rblEG-HNn8+YMETYC z;fiRIM-Bf-zuPKdgYqj$pWT1}P>WmIZ9H4Hy-t~;*4x?ltt0d~KESIpM30>BvTv^@ z?6}JZSeynIG4oq8?j#ZCT-d5EEab{K`1L(+y?`6QZaF{d*^ zJR-ot7vw#7ewOj-%oi zMb7v>Gov<5ijUuHjG9wa^o|yKOs!46bi1D3-YF$Ejd z0Ux7HSr~yL0$VYR{dpJ@%%KpN9pNwHOx;6O!`7U}ADV77|SR>cRR8@bf}%qC>Le6(0aV83sJ-*4D9*1tGxL*xG`d>8K)|*W>5U z#XqiI!(m>yDe4G1FI4w5T)Y1t%HBFG>vd@xCZwfXX$0x+2I=lbx>LGAy1S*jyHjZ- z1(YtO8w6?iF812T^X&B=>wAy=@`no#7dQ8P{pOlE=bUq9wj47EnowM<07vfbe*GDL z2rkg7zPdVw=Nx1o7aQO{)02@IfsTt={@Jxzet-xX7gaV$;r{($b^iTf#h!ct_?U0D zeLXNSCo1UauIYGZeHHTuUJ7G#9+qGQz$XkE$U=Nzzug<17;RH@4%cF z13o})45kpKGbRGHI)FSDE4def08_gB0o7sZ0suG#h7rJs0iag{D<5WhdyR4dES~-s z=C!xBrX4R9`N66Ev8-^xhGRUes_MDD#qVYdw_Q$+2e9V*+3V{D+W4S=Q5#D~(iguG z_Q5prgUR(&e=nIL0ziSF5T;Tr%k6!A3O*iK=X?Ul3qYqwu!5>)nX0r~dD+BGLYV-_ ze!5ku=N_7~v+Mq5$|)0P&0U`T6)ty#NHU zkQcl^eFyGz@a8s%IRF{!D=YWDVX1;`+_hlOog@Pp8=Ftm=oX5ZwrV0vx(&!Qz|evV z*l!1@2ncyiG7PB)Af1~9M5Dz%9gYksIh^OY%fSz@F?Xin8$TG&o9lKDCLsXU=DEf> z0VS_i65{j`nuP#A22Z0NPa*_WYyLd<6cLMw zn=hSAsHwY>?Ds;DPrtxf#k%?CDiDFoq62y>xgvi5Q*^Zphd@UNvP4g}(j{0yiCJ@ynZAUFH;7p^1`5c$ zjl)A(?ChKzg`R0XBRDOg5b{3sU($HLhJnyT2u88B^ZtBvObj0|r4{AnfJ(7Un$(>Z zqcF<@!*4;@1@zbTQOg>rB3W8n%LoJ4pn&f5c<&J}sj3b3+FNC44}Jb@5T`-y%RwQ{ zI*@t#X%%#Ed;(SiJfeyx%NjWiLF~|T5Tq9`f9~$pcE%c4#Tb+N0>{mpbT|9Ls4mUy z>%>G%MCf)!ety6zQu|x5%Z#2rIzob!RV0!D6m0?HKm+DdD*R$@8hVRa*j!9h)JwEU z0QoQ5JS)Na>$9*kg=V?9xe)`Fj)5U2VR2|kLhb!M2!{ZY3Tde;E1!dl28Mu6^MmwP zmtpSfS1SOEz!pF)P-Af_w`5nF?;p|qv6JPt3bIl|SBqkNHcn1Zilbv>%mG=03eOCg z&unfHsHh9)h?NGV@s{;qJErh&Yj%N&2_Qtbc66v9JhPL$yj}qE0Ja1X8Ch-Jw?fq( z7$@M&8*?`uxqrKCgSF;+@)>a;HGSNI{G0duKDD;?G|Jcm(oB#Ass~qpn_ph$1E~_g zf?#qq4;|g%K}}CHm`vN!A_(v_Xq-+zDgmgPnCp9^bmPRN;8Um7cN!X{3~H3ncXBh| zzM*4ah^XyvY@Dfb{`h_44eV1p0bJg^Y!#KMn>G+xdi(mo)JM=e?+CmRh+80U5)|wK z%o7OkFJQr_T*p$g+3(*w+S{KuzgW#uY2&A{`aPZYp`LW#F(kK?AMQi=ztmU(F@U@e zGBA|%<0Cg{y#R_9D?O(Y5H>&-4X#cS3l_7jtt}Yekp^xM@Jb-91;8%-Sc#quxOO$r zlxD;6DgOz;MIbW(Ko?xhB5uz`m7Ozpu!p`8N^yjGA1It@_naV-@wd8rdi(&ff*n{< zL0e@Hy%tTqd0U`r3@&sdN@_~VG~(34f>aJSkj{ei6OeyczBlj?CLj_sSI2?t4aNbK zM;OV=6;0>~QFDMmaeC@tZ+`-MhHAQRtybDyFezp6n2ki8oLKqU%*ODrwI63wflXg9 zDB39}PfI}FHnp^*-pGF&A3s_++#B8b4d$ouKx3RJjp7~hW(l!yI*1TJJSnPV`1!~Y93pNhA@+RDlUuu2pJ z1bmRqCo+QFn&s!W>F*An%Xlpy;pOGw0Ub1jMMYwqrE+C1fWSiq$u2s2UQJC6jgu%l z=IhsBG*Wzac6C8PB2W+M>dN{6g$M~2BDgo$Ty3C0?>QkBiK8?FND4ZgW*Z<{0>u{Rp_G;93@ z@ac40r@nntQd%Qro&-uw4P|8!L4A)c?5ZJ95(f$c5DIHTWZ;2cLjU#k74S+xtM@2) z=H3bVJZb)*)s;w4CL-(h>;cXb6nX$J?CI%w@e{N-0s*GoYUkd@MqXK&6z48!x!P7v z+2fX8!-fUK8v3Z6#qU)Ge1h2v`x3Vrbb^|n+KGq zfotAwmjnk63=&9T@(znd)E?i#QeYr-J$Kv@^SU0k3^m)WNXt2Z`a8J5V6hi)5umyU zM!`@!1iq7!3Rk3}qoH|*5TJxiUkXajjg7$Eo3B>A?18Z9Iu_zzro;4?=}_Tr*+2IX zfoZj~b91cvjeu2GvQjw%&ISY{z&R+HsCX-Y%9NVC$~}NlCPDQ6Sks^o|71jEtNd;4v=H;|yfBAj_@RX#r&CGb{o}crhg;xFPu0nUw!^ zCJ;~f;By1aBD{Ba=ne2J=c;?(*RT6vJrD2zTz-!Lo3c<)22&U9G;o)#t$*Ok1jD10 z^u;A4o~sYXfWa#A=mZmyfHi<3p^%Wjku~5&{8LszItS)#0M-G#Hv!-^0hr#u3(`&{l<)F`h_ z0rg7t#XTFTb~b>gASg>5KtLGjS{f7Jqx6K*qe46}6oUW;W=S}L{$W5BiAhL+Wa3!_ zg_Vl60KgR>1i?crXJH&eKm-`(;r<>#!%{~|Af8)U0aa~g^9ceV@q!`R0Z!Kgpk9!V z{&w#KTwX{BEMT4iSSu_k0eYM%km+(SDyzwdz(a(ckz#-w;!bAc0dZ|C`vTO4fE@uc z`e>nHr)lo}!O01ypDaTv@Ezq-omeY&=ulzB5b^VX>eh{; zywXg5_G+zRU|t@n%Va3A@9xpj!;0G)3@ohjc;~~PB~Yf*?07!$OmN~r01N>urlaFE zp1}@|7Q`1nKf$JW#PMKN8h$X69gNPn+ydGaAVmV(9D!=jvbgjuD5zq!2HF6c>ANOa zB@HM9aF5r#PWWjKfrADk*uWX=^ATvnL4y1LY2d652-)1`_{4qq0qR z9iRuw%_RY=AOPZ5%B@dM=FGyVO~OfGne!1};* zI6684k%mnIF>~s(o04N2A84!{h`IT4f~ zDweU?(g{tBjg8ANfd2t<1TgK#5nP!4Phi{@7-x=(8v8|I3nXsfx#==!=;(afBO;2G zSV>Gvvj9WGlHXw>qM`!(?ALw)4&^zC;4(OcV49UGng+It6A7ruTA;Q7LbT-`zbDYM z>HMi(m@MA=Yyfxm1>nFC7wj*A3JTEpz;wY;L9eh{PQM`}%mQ8Vz$6iad$k(O42iWM zASj~#{n~{}WxypVB0mqmc5`#$0%g4v0N%p}j96J404HWu0Dd7L?Ot{xfaAAY>wfqd z$v7PpLoB#DH}~v2_KDhb;!sn5VdVrv_*8qZUF9EW){QTa}pZ$-+!4@eQnS$dlcTfP3W)BuZ@foc2<^CYn=B~wpP}SDcTS=l;0i-5KbIQ!Xj9yT_7XTR& zxPYMY1v1Oq*PfCeRY1d>CNNz9g{g%AI54rYx;^eV0jY!E{n-!z=-@M35JEuw>mt2` zZRUe0<&*XXi@)nMGr_QHG_>bwaR7FM5;p#1g5sdS@^9eESm@}+Ky0EU zBqsI)`bprOKMH;Rb@q7h2>}Zg!e9BBlL1HpZy%Jlswyk<3krZ&16%;OXsp2LgP!2_ zAs~6)NUQ+F9uSrShH~Y{%uM2l3HVe1i)}e@J-<7O*uSg}!pd8~uQvz*fLKsY;UiLz zk%_zwSqxiX{}3nl*`~J|uz@u-snSINTLIp78PJijV8{AQNzcO{op?zTbMsI)NC+W> zXP=D62l1I07q#dKh+>}!j_RV@W#d5a?T<)Vpj90>(u3VyK%Zmb;;L)`c`tmh2*|qW z{2(BCRJ&`P^tfk#SnkuVF2O)SRaC^kl6*i0*Ivm zlmJ+21Zwu6jD{+g#pCj$QcIQFIrbHYD>MX2pW*J8g%pVO9Gx97Z3FOUU|9qxc5tMQ z>a{xLWoNH~%@3d&(S3g|6RcnJ3IZbT83jX>5^d|Q17v_5E()**NFUPyL;GnQkT`&t ziiwV9XJY!S4E66f17W3Hb^!!jfYSuW306k{wmMaa1We^~b8yI&2RV430NB3vFZc+t zZV#x1;<7Ssw_{zaSAe(!jszGW7}K0Sy2aw>{{z^~Umww#Szq-3=Kg^Y>fi4H_+W^q zhS*AAg8-QZiEKPGk-p`b0M5CsdJHWtzLG(JfWSw|4WX5VeyIiCEwB~m0uWlk(mJ4} z19~$$9I$l&ocMFI9B>l(Kfth(+fn_;fB_hg4Z#UL47(!aKYmV&B|U23cIk^e2&MqV0*w^VohC@Wd7gHbk^+n< z31Rjf2#1>L&qoUZ5I_in74HAx4xym~|H&VQ(XTxJkpEgAu#FJ3GSyqa&^dAufHHJu zCIRqxU@#p+DlJAhPyzw>zh}Qo%Kq#d!IQa12LK081gPE~9v%jaK7iCjNa!=*%>cjp zd@sOu2autHg(c|Z;s(@^zycv3lXo1T82$4=^E{}Ay8=K3S_Ob$f*}<+Y_JKky{*k~ z1L9x*C-U=)J6?M~1|eXAXaz<%y7K|`G8p%djE(wR4eBqOh6Jw8-*1-)^k#qxJQpu7 z7&po4CUAv^1GdAl5I_XNL0rS}5dmG{$BdBCEhEdnUYygRnZiGB6!0iVJ&fEzMUc-= z)}73S4$7Ytr3(7_Zy><|`{f`Yz%TgM7dX{_eSuee{`x=v`TzWT@Gb3?8j%vBshx?F zv!kh@?ell`MplT-KvB;`^86hiAEUUXjkBpEqqvQsv#F@5vAu~YqpYc&xw8cc7YD0= z0OG%Y)P1o^W7JWF`Q^%Q?8lF-3G_W?X()XVgzdC5dL@w@mS4#rp^$uuM`G_n*r?@n zm&#q}2>Fkzc&JoA6RUnX#hvw>?4Tu@l-LQJ4)-&H-A$oI4ts|uu+68b5tB?2z`T4|uUXvq^bG>>Jqrgek?Wx|%n872(UY2=77X={| z;-c^t`Arm*t%~!03r5|&m_$FC*>42_ud`nscXki{8SH)|N`q!bQBGF+%?uWsIi;>H z#7)8%@&*YXb9JZTIp*c-Fe{VEPSW*8qrlW+NtoHms)vl*6SZgV$yi_Zz`sskBo*272u`Q;qa!%>`yBjxp;mBl_ z9KSn#Sd;VxY1{#VT>$eJxprFR9oyXZG(iw=V!T2HF_7Wyrp>18=-&K{z|%d$2&kY9 zUK$jK%&2GG@aQ#_-%~3K;Muwtd{6$Q3guFDeC)AUyNVsV1H)HQRL!>|u6@X(ZIyNR z0zqaq?$)u1Wb=iGUj>7}R(1kOUi(UUvdbd5TbL*TBaZFyDpVT$`pdU}pldK=FSj0! znr_{fR=6bssNwmc)-!}(_|LhH1_~ojK1!8`FbeyV;HDo#$*m0AT`Y;gL0SHEP&jUO zUS8idY1?d<>f*4l95Ry9;DKAW2{PuwmnxXri2#_4Bh$Yr8eIJ2eGvPIDF5ubchY`?dSN4m9Rl{Vj$)zGD` zWnAEE0h38NG{^7qfv;3}NQGOu@qI;P*<#yvOXKjYJW-*YGqx<0;4q6}TdxCl=M}#i zRlX`^+Fzzd7`z+b`ihTnV$4mwIwE_fd-8IoV||5>DL0TlJk!tgFx~`z^>;^X0ltUA z6H>N5Nq%~7j#5(%OP_Xw$>8!R#dpP}3C-`RR*k!qMO4kao^mzE(scp^lT-uo+XtWC zd3i>C&{sA@r#T}ZpXQfg9X1s)$Mu`jSKvU7=dxj~d4oz3qTFk8`!mH%u|U8->xpw} zRpIeZwv&qB>1}abj`W+3kP2r0oCAC1v4Y z;r!2AI<6}d`-=mk`=n-yn5pjy+TvvZ!~&$_r(Ans6kE5eLqp2pU$uUI71xwvTJ?0C zIIORhk~HtjH80iTjaVMo>%x19Iq*^Z_MC4})&%=5v9-Y;>`x4n(|i4uWb)eHk2NEL z`#D)u=o968J(wK72#tUq<^`xARV4EGqs8`R z!sz96ZdAh`th^&tRCkwK8g+}MtmLRLr`5*SY8TK3gDUQ1Y!QkwzFH-<(+i&|J2??t z=&YpGCM%(NeGKRklHQLL?DEaSeSE2LlSLH#{wclq%JLSY>Y(wv(I4){YNw2)AH8)W z(u#7*xQd11Vpz!m?@+1R=4~zHl5oU1LO2Yl%w^dnS5l^Qi`&~coGmY=zLFsL*d9zx z&-1eRd`j@2RgRivW7O= zE1`QWgy3v=<{rs^Z&j)IKKjV@h-WG~jJVK6N#z&rdpgBeIZAKzzJL^ryjm0H$yf`3 zS>a#DpPNDO*4&HoMzS&tnB(M6776|Au@WsVl`j@6xquwThTJf9A$pfv67D1vx>~Hi zq}Yl~3Xf;m4M|$U^WqyCDO}L>=tmpmk{ z#G?jU4>)|&iGBE87r9ELU-{lv@3Ngxm%^j}FoKPeKDmSn>-sEsq-$qjMtVJrbR6-D zbYP2t0*NcH0{+6M5B zW?mX%P!9CIjqJC5KM@(=77Sy8Dz3&mY#2X5P$%NtD@ZoqM5bM*Rs}nNN8US6bf%Yw zlCR1c`3WjZSkZIHG%1l>#YEbF6d5t4t!pUMfCnK-(O28)B82U8Bgv zQWl1&x4-lxam6PelE8?>aT|(aC`Bss6KfGxI6ZEj%c5qXXm@33DI89kSj@gEk}QJl z?xBXXe1#YbCxOg0{Q0VdBnizP+KVui%+$Q)-3+<0Vr9T;?0D=rRp{Gc`CGUFPia@{ zc4W_tcr}sEl2Ms217)8VhQzG?R60!|vkLB0{4~PCE$SxA71juBKfn8(31PgMd}143 zy%&-8!S3`ta%avT|5xe(?{BFIUHZj>1VmQm{?})Qd&G1M6T-AMUP(icu~7y#AGqx< zEqHFWW~4rNBr;r?`x&~AC7`BPp(SUX5WZQA(9~PzgZ4n?$bh_bmer$3Ck$RyN=er3 zH(A~%iNPSo4Q$cTKxB8M_Fc&NU@bgUtV&U+KUaF)isJn4~XFkfo+H+(`>`k6c zjF$)QW!%<527`vOXC!OrE&+36dSg(SwMjH4Uf5L+)P@@h`x{fD)%?`%F zOk+>1)Q^r?MwJ!Q8f~6*ocWi)z}f~czIN?es=lw9#}zajSU=i1=tZ+|LoFO#*x z$KhmIc^avV82)|s{U@^e7|J)-WXMn9>XL1O9c}P-IaOL}4)bQ44|mwex%5QZU%QKG zTdvd-%a*O>oK@KowAf~iqOS{fW8dKr-VCPDC=JKk6Z{d`6#k>iy2D*gM%^LRvZNfT zdD1j2@{oxkZG`ap4`UqteMa)ygOv$=hO3!lwS+dII@P9Lh4{S$W8=9_>{3bBAvt~U z6n(J8s&;uWp-vQ!W(t>+0<*Tv=}n*c>h8Cn)q3!j;j`7mzo^XBb3Y!~I;1huN)V)W zT}WVeo$-%k&;PZ`l5FG{sGt z#*T|&p`2GjE5?;RXUA$X)F<5U=bGTp)FLkXehbYehxP5tzzkivt$72VH!3^`e_|zA ziURx$<*KLSWo>E~^Iuz?>Omt%Q5gn}=*h_NQI+D&U>}z43soC^Y=7f}$*}>y{ap{NeByuXI-{!TmQYseKv~^D8b`9*X8Atm;snQfe?# zEdu3OswUO@A5!72EOwR2$|DLYZhTyDv7feYgN&z2{3lw!UGDWKDJej93d9!mOSDFr zADnv@yw@H|N{iY4)?6&OMeb!=;-q>-ptiH&rCl)UI=+H5BnPckWNP1ZTF+MXG*eI- z*_-Upd4XS9;KQ9`mxplAH({Tr#?}pqKIe)nx;V3LXf7NP)}48y8xWjh7`HHg9nM`AF2wyb#6Uu z<66T)n2&|+ax;zLw7>Ef^iHiZr-G&4$!mBgNBEnRN+NNqJX)nO>R(7~QQPs>`X6Z$ z0>hY9@y!e%%dd1&t&3nvGY0hXovtS)_w){FI+Q9nRTN=F*%Yo2vB)}e=G#owVe?O@^k!HFMU}bw7M$Bx3!a!h zwx`o|N1w{@mjo0S*uzk_nH#@hmt%+TZ~i=@nIal9hA$+YOU+yOwz=`jXi#UhW)|9m zPWW=wkURydshdzU@1r*Dt0Y1pwX2!5ocq)PG#PF?(*6K__c`vE32!LJQEq9o$f%d< z$qr6D9n|~8L)LODtaG(xK7*!8WnLkf%{3xpd@0lTSYH&Ni4My9@k5c`Gm1-pLzP}a= z3A;bONE53aZNW(P&*jlBhDPhbuwulJhg|`Oclh_;5)F9eJ0uR04S25%Vx-tGrR7$#<(~YbmjNpzuOh*1$*Vysyx;s5aUrTyzMkaiv*7> z?x=j%Yv`(8n@BaEZs|Yt92_pbqvUvWn;As2{=NO1`;LD7Yt5I(OTo;V;IIFLM7jPO zB+AUj^0$0(KzqcFfD^52hxQsezm3t~-~}WGbT`7(_^F{;<0c6lv*Ykd=m6QmrgNPH z`8ZW=*xvT-wdSR!$)^XCgzyUmmYV4tgHYnV8yV?I>MQWakxv=zd^BssCz8BJg_Mfz zc3B6)K+`9d;Sh{!x=p{^yPLhaK8Ei%a4af}%c90ucOPpe;E4*pr*zG}90|k_=;Fei zVT{4+vX)EDgf<@JwkvXOANBocGuh^YF63Ck-Vt*%ZLV%HO5*P= z3}s)Ix`^}s_hBt|r;+xm_4nC*g~4pR4q7_#2rH@P;L}TY?7at7in$xr9H@<9PXZz9m5~?o^$}M&ZQhdU1n7-)Ga$!h5 zTNSj>4wK}ob@8Hop#aSYABF(^`uQ&gIG)3S%d<)>(wL)~@?>lsL+1WesBiO3HDO7r zEx*B!rmLYh4iEgnD(rNJnqLfxAF6v3#rMFL?U9*~I@erVP{|YUVFC&#u%*sN$FNMUm(B@S|$beQpGIbva1k8p7R_!eS0PE zg7cs`{E?c!>i!Z-Dy>-7xfK49L$W=8(`0ld9;r0)05bu)8D%Qb-X+0_<9)*W5uZf? zny#*zmpq$EZCMs*8~%Zh>+rbWa%9)Cixo7oC0T>R-yn6zJs$4Zwf5~y=)jusq*^Q* z>q~ug*@S(|vZ7FqE&HNrq9twn&a}i$P4^f(enIB26P~k_p38nNt37OC%%VBtX2>Q@yl)wLvMpMG(D_}y zx*@61h3zl%DC>|GRN^O!M5j`q%d)L6@0m72X_JwVNEkS%{e8(RnMxR#CZfHB{FXp62X_(c394&o{j~zIZT$5i47a-i&&<5m_JZ3FQ^G7PexbS;u|#FAFyi< zsJc})J!Ja1UjOhqqwRPhpa6Q_aZVz@8P}8x#761CGQ6X?V5>*74KQ$MgkE^ z9`z>jj^54YY5D#QLN{YRtxFS5anZ)z!SR!9o|pM|cRqJX-YvJpgeBcpYsr3FCpG5| z_vpNS1u+ktRz*-m-I-T>LAUYky0_T6O`kgSAEDzY6#CkX6emehQe*USP{`y^ zos(NO=*zM|3XZ_S_|l(_`W@AuiHX}ZLfG_46pBU7B{?RUBNG|o#m4Ej4PuJ*9# z9ycmAoQW|Gk?wAhkQ5;f4&uF=6IRL>+NYm{21~O0E57|@GD%(vXvcY``nvA z=;Fc!b(=bPN*dlPYz}eaoGQrU_WI}yDbaI%P#cfMm6*?&Fpt)i)1gY>I7y}1Cc}vJ z+lx=MjYHc^*9@^JxDeyGah0NzAN$_oC7|wZmLZMlj+Q=>a!m(zegp?Fr0O1 zh_SfDBc=Y;`sxBPfm@uOo6oyb{cRj7x)qm!CcD@?r0>4Hb0;T_g^PKh^qYxv6mKYr zS*a^7=sze513rqi9h*c18MKj+b{so|&c!Xbixlg>>K)$R78~YIhd)S|!Ueysr#=jP zyFMSa%}ostn90)SP{c{(KxFl@#Qf&wC~M|Peu}Q|Jd&-peG{#p*{J(a%)jfRx4&Sc znE#OSs`-0l-K#_cV#(hJUqnMuLMaVlc^gLfTg<`~0|%~&X05fXGH%R_?HgddN%PEuwJvABQ2B_`DIa2Y1XQk5#v%_1;Mo7uDEs6;?amAskTxW z=1m&nrn&XOaqx4ykm@O@Fk`XjnGR9D9AMC9*2a{3%@&^ zl@(PLGOqE;MRK=Y@fz?j-#doBk<*yObc0qZloR zM*{N1;4Ob2IeQB0$92P{G|z0VlVN$al=|~r#{vXpy?V?K9sWxd6^E4~UnyU=U8dw} zYmKspCxxdZN7+G-s+Mx1&ve542+6UaiigEiNm*9i!SEjiRvTFr~OFut(dp6D~nNI_M!l9aJ~ zVN|UerrO$bQV}6`pMBf-Rm(yr%L&JGz-85O=vC8C#$FNW$9&9;j6QAleF~VoqvC=a zA4%h(cj##1yI4V3`MlVk;pED?EZC5Ad6C0f+vUP*T+v?{y_Hot#V{i_1>Dj}>Brk( zJ2m1t)zmV}u-b&k8=HJ}ZkA?BCq`HHu?IPBXdDwiovXZ+(M-K=62>{R$*N8Ij)Y%p zCn}@Hpi)rjm}cAU`FOP2l%8$-CKp}$kBQNfM$*OHukD%jbJKzc?t(|Y^EltVCx!Om z*rth%U!jbGzEtc$YG#Lb%@w016}m8v)QReMkNPfv#OWWLCty?tUAB>`a2R+iP%K+)USK=&(ZC*FVARv z7!!Z?2TeOs;w2eu%FnfK`=jM(`B?|`S|#{H+7}r0W6-B9ECS=6!F@=HgaT>HC1#~< zcUaBmaSb3%4cvGVR^p3;j^p2=7cURf1<<%uUqOV;v zZT3kddzTe2_Nkh&Bx14&)MB#fDLxjlIc_Fd+L#}&j5`}It+2OSbR8LVH65pkwSMk+ zkfu>Fog_wi@89rGr}|$d94uUai%fd)a*@5yr}}{H$Axq>ZtPMe~L1gxOVzQo;4 zLRKYRqO=<$LJ?hk*UQV>M-Q(3n6funM0JEGfZZ+eN%;7gvQz;zFixOt@kgxh=W6BX z5WZLlBlE-u17fBHc%MGbr$4qZ+GW~lnWGu+_rIm_x|YJGiHQksB*YQTL3#CYX%}lp zou})-Y!FE z|HgLNx&M~c=_Tn|{}jR#2dCV2SdTUC-Ap1BiT0F9g$c~`IczeP*;;}0R z6KuTwi~B@&bS6<6(t;izBOHC9k^O*@{6gy}qSUa5iz-w?~X8Vr~z&^%L*ZiwFbt1s0R=&&--0xUyzG zsGMZj2;`V7H0HQ+Wp%_J?pIr_PPc6I>{Lsy7N4N#Vv< zBQJIh-#kH7Nkqh@GoPcdR9cdZW{?fh$P70`PzhZr2B}XW|GqfHnQq|y(|{%}92Bp{ zf^R7pl^Mu{7&k!b4iD!Ay`Z<5k9|SK>$htNkY7&_*XJ=^pc-Uj@K~gzA2eR z~O4Mm38bC6s?v6SK;gwNX)U6JSqq!ZIgq)df7lH$C7nz9HMP~ zK2}0`6X}RncCN}FYa2yO5OwfrXlih_CM1M|?dPO` z?)&y?`$*#!qSwb$uTfoYZFX&EP#OkL{64X1D*uC7ax(olX34_#x3ZU>qOe^c6I$mT zwwJ7`*b9^+7*cdaRgI!5>2nBU#(rf@ok4{R9 z@6u6TU)bS@?^dy&jo|vwWIz-lY zu|71n;^xKmjqM0;Q%A};Z4a znb7FHOd+aTV*gpkYlg%`fNfj_tCy@wIy*ksoKDCY1{YhNoALD zbbD}IQQ4EO=oSKbU7c?3uXd4?pa)6Pg)4H?(yh@us=~&6EWc&sjRq~^RYqd!f&pt` z?ZoZ(zZs_&tP$>=3zrbF1seG-gnzF&t<;qt1pC-Gn0E!chIo+Dn>kFYUbnIy&h`m>wDRPsjXU2`E_Eng4do(<@eiOjvNIUO8l`gay}Hw!%T`ZxfrA z(vF}toeqOCf@a@e9F^RJzL!;j`^e^MsXY8wx-?89$k3=Gv}P>wt~SsQ-m8s z%(U84kbKkpu7H43kZr#KKdh}Jzj{^h{Z(inmZRY9s^i-lZx5an-!U$iFn$57y3g%2 z`$M*cc^FwHmitWGkFrJf1-`WdDWj}iV^7^|Z&xCbbTZEu@5@f4^(;x4StdtVR3?Ug zYLDy{XQVijGi(;FUYO9)m%Me7JoWqa1<`V+`oZ>s;CM%+b!WhrgBCsyA|g70Fi8j| zsM7%{c{nnv7eZUO6k`CbykDKe-WF@26B$c5ja2&`cVl2}3cPjrYA%%V)YnjHcy>%w zk#UIlx=`jr{z2^ov_+wL{V05lL&myz1d~Y{Pkf+$V$H8tV#zW?^*ifN zK(oxB)0!`Bq}aO&K?e?jPImG#qI5!Rl)a6@BS~^7iQ+ar@gjG zwz4W3ctiGi7p@MWm2(+V8>@ka@+DX%bfWbJNuIqGbjC<8?p8^qdr4Jw5; zR=brHsr25Kimkrri~5YC^>HL>uyt=)XAFaNyndYPCU?hfj>6h_JH=))bSLxoQX^(EAVDuO#da=Otfl8H2q3o6KWX2J8v5PGsFx6U5m4F<3u&q8md&%YmMT7GdL|(w zvw}oMECpWp9s2Ydrb#%sSScs8su`cgb7MFlkxkVPE~3r_Cj`*HTB;Oi$BNRxECiU4 z^Tt^fQgRrn7b?DpUZfP)9k$PJ5nb!Y8aQ=eiLZIp0dL*Q8Cd7NWqVU!1x3%fsAJWt zV2+R$^M0dvmbKqR?-D)h=T=1h&-S|G?2o^?O5{0+`8Rh>78uT_r;Hq=Klql>q*jXP zANUS**C=V1HyxEE{65j_l|lNIgN&(GtG7UyBRJ>TpUXN_(pyHs++U zC)~o=ZT&KFmk)rB4Rs=vsy5kbm9CXBXg^sBkHym1k$F+a8nC}5!Ur$JGwUqwD)^G! z@Sb+HogpZNi;wkj%1X&cKnEO1; zqrq5t+|_q4Zmy~kA1rSo8SO7{h)G`DJt0%}hU&s2LNd(a$3^RJ;gEP@D+IJ$yPSuI z7`GF`xmhidDaOAb#x7LI?d{3^9p594+j<-ikLA~uoBWA(8C1Ije^U$Z2IY`S$jn}4cOQL6{c%oB#b(o~O4G1jv-o6@Y5^$+e{jR^; zlSXjPxZ*ee+dD9F*V$96B|p~5Pe_D0;w_Apd1#<1Y72&5%+*pmf%5&uUPwz;D3*xL z(Q4O{`WpTb31ibs-VmGVk3S4$eCjjG#>T$s-+U8aXMSXuu+&&L;vLnNA|-6%ULdNO zSva6@xEpTc`c+p}Y&y_&`qRzCh%G$99j2KXgKAjjn?rhH*Xwn+%XjT_#Bpe6M%dB( z1BM8B*9N`0GkX_2deuZ%&cq=wfe&^Xv2$DJ?w#{9evtIB2xkA}_Bj66?fw6Y`$f7zp@ZklO$By8n@s{Xe@?R*t{@K3i2ESxj?+?t-a z@XatP_X9&?jmM{MB3?lmKa-_IsG9A^|s zceXP?WR=>1`B*Tmfi49fK!!g2@(p5ov@B^)fsyL%iG=lq4N8}i0xL(Nt$hHEfNxy} z{jxPP{%;#q5pVCGy$1U7RccDq?aSUjEXO&Oc*GToN~x+Mq)oFRXGO&tUM9cW*&Bn6 zU{~C8rZjDt#-TNBtoa3$Mhk)C-n+Js32rAMhxD^Bx^m2GaCL@Wv=@tUnHliVWY3l z<$ZqfAT-1&fdefkw(V+DBA2R?nup|GwbNXepeK@1knB_{M_-n}df*aRGE`9OE$JJq z4?&Lg-tEY1E7{JC;!OM->?f4D@e_Y*N#eu)&8~5x^*e53+HsHn_P9LkYOVR_fo2F5$=kTp${!!&Tys4 zWe#48ZQTI(3VY~6RKx^t8)ek~Jerl;rUS-VJzgWG#nG={#|w=ib9>>Eb$(@5=NCbT;#yDk1z9!HiLh2(+qbct4iC<2Mx@GN7+4~C01+?V1$mpW zi@x>sXC2x49w8fdlppR!H|W#WTD-2Tg0J;MebMWk$I#PmM`Y%gSs?;e|D%p%mQ!|b z9)!Nu;nk6)Uj{60y1sF9pOXDxm|jis-6p@!Y>vi8}$@A~1fu(e3bdYU6%q}Iaf#KzKfdVlM9vWH~7tH)kkSPY7~-$2{oaQPip zQ#So^Uu+KS^3a<($HSM34810w&rGT?`FRl!B*Y+1?P&&A+@cHm-DBFhk^FeWwaiGg z*(&-hT;x6pp#@`*mZf*tQ>L1g)utp&5#nI+z@~Q^F=PE0&@Q zTfmuQy#Aw(G2D9SPTnUX2fva2ES|XNWAcc!7L&aBX{)m@306F3AfyM$^tb+s*Ccns zK8b1YsB-2-j1ZPDa0Li9D*nu>X?R&z@be=pTRPn-#kN!r{wlltAzgBI(tWXMI*?`$`y)F10$T~+n7P1Bv7-6drNSDCflAe;f{F$)fX)y(NT?Sh1?>j{Z~e(#eyNMb za)gY7Wr3Q`(xO%SIZ52JKS&4(YCjPgh=qZ zRu{Bz$h@qNE29N`(S@@ee|>RTcDIAF4(Aeei1KeB?3H8tMVWp;2jiYzl>TM9a|rwO z`>&5hnDQj>A6?%(@oXM_TXq_ix-X&TrPJpmN;BpTuEi694>RnS{K;;_cb4=SiuKFX zWAb5_>3e~gRRK~&Ke5@)1*aVbO$wywgu6Q_?B?Iw6Ip^Y*X{kTTQ)jxCs#hQn7Zfo zRGEjhRL$7v>?}0DHj#cT?Kyf~kEX*&TxK3uQ#CgCW5B$^RX>KPhbl(P3#~$wP`^-~r;jYBq9lV-PTc?k(sagkw8dVFmmg6?T(uN1L ziA$b$RD2JCz2;B$-@9Mg$BhK?2f{xJ|F%jOA_*Y1376_O`RQVW$ef%e-YMKECHvM4 zjWt}W-^K`qIW|p!jsyoIGOQ(hpdZ7Cx-Lpnxbt17%sl#^erY4@x(v;CTxizeE^F z2?#SF3xcQUh37_>rwWr45feoyC0!bK=RJ?5@5d<+8xP0(`23jq}7Ci%9 zqjI%2qW;#j&@*X^sznLA;5e3{skuQwc0AXr^oe&ni+RD=7e{8m_UDc<>tJ)#!xnqX zT!M|+JXVyK*E0SHQ+Vj6j3?faTn=H6?|m?W3MG~tS2&(?)>#9gl@9BN%l_MNK?Q9d zYN*31&4&|DyL{y-_!Gh4tMS%NoDUzqW?vH|B@=uZoOXYqLBUt5bP%u`hxbFGZylZg zyGT=joPrrfLL%m`H(!u#xNnmyOO183lPif;?mEzL;+qnKeWf|5T4SmVd?`j>&*Q+> z_*WU(yn7$25TrihiOat{tCPba6!lU0gK5=I9PZZ#>1m0{K_rsSPQP2OFZERBlfQgt zb}5pBfpezPFRAz{+MZz4?EiRgGi3!^Bh^RVG9IUhfTEG<%RiMo=ZT@@D$HKOf-)_~ zZbRGi)7}W?^&Vkx=}!wmH;!=EKZ{pNLsxJH(j3OgxuH6qcoi*nESs*BF3tFvJPR@{ zJe+#@otUj$$1WeNxn2iu$JIG_l#(u&|$6E~_-#-pZU(^d}c-t?@e7bICRJ=^- zUZ)VH^tu<8|1`4D&%qRXRovdS-=BRu$~0G;Tu5gla}Z5q+=Ce^dSkm3WHf1(Ihv{{ z5f+Jz%zno*XQ^m434ey8--E?|l&S@#`_uYL5DToT7| zcs&nA95Q`YGlLr~sWJrzx>w0Df%tO64FG5t22F_j|-!clC_l8GPIMoBeJrxq@vBc+O+-|ncn)deAvg? zSVhZ&UPWzDSB11Lp!C3O83i6KbqKfcAgQD;m?R#p{xljOH*Cd%5tVQ%~Ah#XjyNPsJTH3T8c88VbT`` z0+_|2rd%PCY&M@)yAD?awxbUAkR?w}bX@vo$cmX0$4e?AXr=L2zmY1V9(x`TzeKZk zU{xGylhmZ-Xw}ov4zK<}z`I1z*0e#y@s2A&HS~YtN>Z_H zyJFjTW1Igvef2y2o$hb+82fJTvG&bcV?Jxn2Px~A>U08X*)>@l{4VlZbp6}iI@B9U zi7Etw)W(H{iS^$b60x5jrmimA9ukC9x8gxfn3XT}~oXUjOCO(4WQ!wfR|Xa-Omn*bc$?RAF< ziiyF%Ei$rbuay)T&V1RxDPz4Wc}4I1=l;CQ!nRV_!Yq>&*y9r;Zw%qgd0$aaRdogDAd|NHKs?ggy%^`Axci+8Hu_^`-IP zLRmNtkY|@9h&c#=rvt_mZ_GtOyC02@F(k1-mO4xrh%*UP zz?gh`%cCV{wIT%+p6GlvSq5QypHuq2=+z{=ocM$*4fjs)|J=_A8jd~K>I`HfWpjA( z>>~!#*~3)pbG+HIXA>+m5T2XOS}WSsyWa@$>veX&`y|{<dzIsXp ziKU3GO^BD0SSl-cQfBR$y-`4EV791+6II8VYVh-&;QERIgQok+*Zg*h{ytC}68eg5 z-&>H#7S=Gy72wpY6DmOHp%8B;t+C$sx}+9NpYe5(e#5oT zsyw-)*`;yykuYK_YX3{V!Q0L@myQ`}i0djmLcU2tCQ3?C%1F9!eBGB9N%(pEK3j{v z)yyAOPgBue4;~Jq-Ys)CQc_5<9npR(q+Se++neAp-*EBU0RA9lelo$8 zh!I1$Vs>F4%V;etbN^LDNT_t);mF8+*k={=;qnCTH0e)T>l>bW&fW@Z%oqq}Q=`cI z`s>oL`LAQ1xs{FJQUu@1SLAll)J5Eed24rVnI=0&{r9QUCp%aEE{BWZ#aLOoaQ%#~ z_ZI+GVN0-c+iDpYqyWU&EDTc1eWMY%pwGP&LIPclo&YGkW!xuQ=vMP7t&Pj^ z3M78g#qLU#_B2|f9etBoz2=-g=E-%i75CsT(P5}-AR?CF6Sk(KKfl=!ACM}=o5I%y za=Df6hO@>xW|-Oq?$3aOrh71h%yKWr{9D5<5`bydfPNuo^7A?ScgbicWq}xZRCxTD zB}rzcrDbL`BG|X#k{xxhXm&hyP-(n0n(js1U%Z7-?d^i-zcFzK zgq>x{JZZ{Jtlo>PqcP*+-^(g#e@Diwn88cTd+K^(O&a%k4#+=EK4*LDd3#{vHk{|= zz|Evukj#TVyo2`aRF|1lGQOmzR**`2>@DC74>Kv}!&O2W#x6?UUjDR(lcK%0ttqG7 zXCK0CRz-q)2!w(h-2o$pW{dRm0Gjd0oaV<|3)P}D76hDGc{0MOM;2&^YKyu~<$5nH zxwr0-_*^|pl>jQX{j?wTK1Z1T8Xxf2NX=DJL`5Skxzm5TBBT!-n<4d0G*Syq%kIcJ zb~IGXM@xgY==tk>qaW>B^Y;5eI-tyy>;SK}>j%T?VBM~Ss_@H3G(HH%jETI{Zn@Uh zz<5ev<03@9vtBj&@W<$`dcK3x-GjXhJ%_nJq_30K3{DUO#_lfIu}ARW(apM>b$(hm z9Jox7rv8U(%SR;W_d^+HQ(Nx={T)UovOa!{CJDDR&$*Rb7a3#m&QCWU#87>XIVJ5O zk=j3cbzmyQSj>e!KhQ*O!Mo<4cp6s-ZEE8fMTP>6XveB&?A;j-0p-Rpl;D z{g3cpIpH{BXu}fJZgUN4>$GdC1PbLw6yFk%3nQRYC8Q4^Zo=nc>)p(j$t5tlS3ryn zCZejZkO6jHM5p&lV#%05%{z>)P?<<$=A`r$lja|}`Q&6jl1&zB6VE3S&v_|$&wdpI z`8uC9*oJ1BEf-kC+6pa-x~vXyMa^tzT@bW)HkW4foz-Tz7lwtMnNBAGkzHtk{dLA> z(}b&a5Z?moRt9XB8!cSL<5bZan^g1bUqK%+HW7qeiH(OOcN1GV$`}}tcCY%vN{lVI z5bz5l)k~iXdGNUh&!WFD$<6l@RZv9%-kO4`e~pX#cvom?Mro&NlJDo~`h377JjMZy z_goR#%F9T%Kta>WkxLEOOF!QAE1Cyh%NL?$Y(56*DP=m!*kmNBl7TlS#`UlRvCqSP zIK^H#VqnO%zs7A^m3Uf>)027`vh_0*PVpnw;MY+S*|7fsJ%Gmm;pP3Yj~OUsaz$Es ze~GXswqL1PtjV*tc;jxiVA!z`Zoxk0o(qs%k8yWPqOoK*%%pU=*%*#qA00QjH4jt< zV?=&=-XRhp@?1#AV&OB-9Jwc%xBxEge0diI%sJWmuxEikc{-uxvK&(pU-pwi_N|p| zbtpL9{HPXtck4V@mB`eyZ@|TK=RDll?4EJLYd!4BT|Fouqb&cy-b@S*0Ga@kB~MjU z9YsZ~cV5r9bKU%WKA{F_%~3L#^3c^zUUI^4$oLi!*ru1UN=ndKhoS5LShTj1rl>GI!hKq{Qa%r(4pGn~ zrSbuMS#)KwW5AGG&hmT8Jx)jXI~*8e!8UV9ujngnU|Ta`O=Jg?1Jm1{E!^UxfP_4(ywFe5-wfS#m$S36 zox7~{b&$!WU=XOU6X2w|#89nU^cGVVBZ11EDB~6-i>W!#V3CL=Xu9eRZ#XBd4Z>Tm zq2Ie%Q4c;z@sMR?O?9)l`E}FPoqqV6Kb(61_PhHv=U{{6r@ltIS#YwJs$w)bt?+^&4#2)Y0(hJ6yG)OX+HQzSoAp2cloKXf_t5)b`j2sV)hKQafM02 zMQhws#VAnHRie;8jJ5<1l5#$CURMk`rS?G8^F;i#8j8oUS*;(37#2~-dx`If-sIFz z+@rKyX8C6@q%ltn7I9LY>>wJtJYS7`%P<2m(~SFNh}A1Ung|2YwpawF;2tCIQuBT4 z>LWq87&P!vrWEvBep9bfaMdp3SFC=(U!uN8bBs_4R6@EYA8oAMCCrn*R)5 zBw3_>Zof;D{4)GQP0D{6EW!6-)kg1m!Q;T7G0r5>nJfMMGA3>kwrCkq$b&TYDee;s zd_P-8y#F)Tk_(HBzc z9k_`kCf*LMk$-zfg`E<8t3WGxsEM^{dcQ=c_Z%cfZiCue#q+AC1@G?J65u&T-xI)ee+^NY`3d+#fzJ+Yn$2xP=QViCDaE z*!sko)4pJF!wYfDhS2aYHD`*` z8O%ecHpjWq8kMn|8_H3$1gk)*O%ifaCSCFb_20>A1XH~3@DDUO)HtKNt6*|HdPo+< zG&xh-N`0#lgzNl+B*ExlWyM9}_&gMD5l}mfSW5%us5G{`-V^FB+OC`v0^f-*kZw;D z!)U#y63z@`6QI(wf$86@5t1jrE(aB+Gv}qfKmUMaepYR}Cwz4?3u_|XoA%~z$LyOr zl(BJ_hd;&Gx%G1}r19`W!%O%I075)gixS_H%WIK4;nsIRdEN)LFV<)NIJvPc&LVKC zzVM{2*f9iQ@}&9iauZ6)7iw#ta}8K{)H6{wD`X`N_Zrbq48i66nD=H3I%%U|W27Wg zOH8h)v_8`~7}8}ZgPUtNa7_D^Q*!QyWx@Syk2&bp#l6}5=55}xS14P;g{apV zB=8`kgQ8sxzg+H4y%);A46XcqUbzufRZ|9_t0!v67C4+{6|(BZ zlcKdn{#Gkpvuq2TO6r2pX+*L_e6U=RFutSo{uU?Bn}I0I$LsK`IkPWdT@=j2MN>b6 zDGrx>^ji^~*YZ z)cXb+JLHS6_F2zUq>~Z~d(*YpNU~l-WX;HhOQ5Ab}G+VEF3!a#b@*+O7 zSsP*Sy|2ryRwqPMN=)H@(y=>=Yxvvl(Zqh)>$cVBR+mv(ou7GY=5-yJa9Ds0?>NQ4 z?n$o}?N#`S??ojn=g)Maqf1j;^F(>C$xBT+XSc%)NSQ$#7KB&!ACz~)P7kZ>hLngv z{mgf*nH0TbVQbLtHs6F9vFpc14uLJ3D?YGGhWk<7!KXpDp1awK>%mq`FjiViF+Exe z{kzEecVZt~0hZd9Qj+$ZntveDiE;Iu!Od#WrTRzx^u0np`#z6Bb_=d-M&y#_|)5w`?aRsn)5m0+0#BNPCtD@ zUybfUz#+>=rA`uK%)-(px-3NP?w%)|w1PKbL$qrreK!!s^$nHtGn7U;)+ou`k4D&}mvVcmrJ{Ldp$?5!=D<#w9BoW;0qNM{*v zqbVIx=aSd?kOECrzA~WZv3^Mu?Usc(6zhvrie&XT7C9MPiaYVrKhN$leG7}FgGU^| z4bJ?1fYvmqAxKOGMUapz>Q|C&2JZ$R-&@hr*~5m8L<0W|V{vwT+CFr0{zc?IXH>bX zr7c5rpQbr2!E^hW4V=E>4@`j0?J8H5_1UTJlij&dIT!f;tQzovS$-m~gl|V1gQPQc zX(O!g_S6hYM`VW8Z->vRd+@Q1X`&{GiKx&vx` zqP0<7Uu`cR%zRzM=v#LXguVC*OKA#|GZAZJJW+pK$fu}xzPS2Qy%(H^eehpzL_WUM zds@tb7P?>v9E}-RxYCgg0#X*NhYoLrc4FS^CrRAKYHX%%9jWeiux7IZtp!W8%1}9# zdXxy6OjoF_ggxs7!6OqD%V|>eDK(DLj)u;b30osLEc_Qu`IPuqp-klwj9Ca(>qP=` z>MNc>0Ac-1!s;c^A(?JdD0jK{=x>;mwHM+YwmKP&HH%c%D`)mB+@IbHnAQvj&J8pN zX%5_w+VE&tpsLci8Wa8jo3~iHU@_ZZPB_1{0~uA7g4EC3y3F43R@_1rGWtU5Y!ugf z-<&D~)rpF;iWgS8ecOBzZt6#5ABqYA{k{eMnG}=7>%_xWf?nZ(M)3D`uZ`D}G1sqtpAk=Zc)qEd7=(YFt2wKtFE3@PPp4ujy6G6|rI8(~cf!T+7$r z%()(moSY*44DXNxA(*gkNh&^H4p?hv--cgbys%bd#9;w7gL~5{>DG~|uLuSg`M{0) zC4^dpnhq$$+L*+5?l}FBkA3f?!bZW)pT#Pcz33)0f*)w<0%14BQE_#$=W6 z7aW`gjl^`mCw15u)^dV%!Sxk!ICj&D0SC^|uihAt^|6*~3wfvUvst?W7HcoIJm;wk%=?ZX(9G7>OoZ)yyw zQP>kJ#{d;l`YHY;2-hfnU&zKVt%k6jp2ae~9f$0kApGYFOYB3)*v6_Zig@MN6yDf!0y6JSG za*7bz7${?6;-ucNUyvn`G2EhkoRqZTxI%xEc&}lZKZ7mN#I@ye1ds=n_T>wNs=mXv zsfN@RFm%L=3{2>nqzY?}@4gy_?m~?_x(tiUsk&Ad0lZvHU306IT7d6cys4zEnT%hg zpMD&_;n4rnVD%ro#s8VW!~Acw{J#XA`0cOl&$lnXFZ!>yr!x>RNMr*dR0CF) z|MZuC(1iZ4<6AbCf1BRADCtWmD`N4xX|K-}nwmgQUQp9SuBB=rEhQnu47~@*!NBa< zaW%UU=i3jg(_=Xpa0S|d5z^{VE~@jkWt z_Vm{6_MVt#`#261}+)Sr82! zzcbYfBEdwMk{>wnLH~rnu2+!?aFF^T>z*-4M2gecn+RSV7aN=(7YQ#UlpN0Vtp?LX zh-hqO5WOc4fXYWj_U=F`@>qgoWYUvybb*Tp?IqkNaMdeO6Sryh<}?JoAJTaKHa-2$ z%qBE?GiAwBTSqh6@6f#Lm51w6DtF1V5Ixzod~Y-P+F%Bhj8gK|@nqre{Og%(J<~My z@P1VJ`irShhWe%RTS%K`(T)z57i;$)`dPq>&C<)bEmExQqNTPrYn*9Kxn)zPdI_(h zmpakR;sfRNVuMx7_T*L)^F8A9u-S03P#;BsOvOui{V$%XiHg&s@rM*v;M#EeqhTG3 zJ`E+ntdO#n^cBW?cn12E@uA+{+3hC1doxjU4vgMaq^R9!J8FV+!=;&FD2%#QuJ1u> zGf|5QBQNC-meqsSi$|Rb9me>f6bd^<>kSfdJNV^)+S~u2s{PL=i1ELjAgllZ5D;%j zkc9uRBIiG76#v)L!pP3}Z}KmIs+WSYI!+Iu+rtCIyJ;*6I8cK%WZ>q zSnt`YqHBJK6tB~T&W8KwmlK~nz_ z>|#!xK@wzm0JP4422DHqBlsij=bofr7lj^RLb*o03<0BR2!kvx+?{z=!-&}ejunH8 ziiG49p(if?`@wz3AMc#HiOTsosh~(-b-9w!6BT3ZFv}Bw7+6lp62${VW1at$id}w{ zY15btW@hvf>YXEJPT6ec2~(k@xKo2qv$f#SRsJHTX4QY@3fQDeP@JgsiB@G?c7HUMDHDPRw@I zA|EcAT&t*=qRF%2oqg_;P=YlxGQ~5x!Q7e*BdEyeBpp`SSTr56;f8aT18xxX;}(Wt zbbQAH3>EYgjNn=t0#z^tB!7!&*p~OvBp{6a-03BLbHoho*rv1RmHB~T<)oaW(NN(Q z7?9Ag9KKpwL!zgPPT#^=AJ!6-TK+AmM5lhXmc$tQX0OmCF5&ue!LQfy9$H=VkMSu*PgH^Zd<u%`gZ5oNisMIW`%>;3d*@*|mJQ4O2+S)o7JYLs_tn)Cjlo z<=5)2wI%okEm)x+>9i+WGnk53fN)dFOfO3VYUu<7H=2piYa85QG7VjI--)$3u@^Vb z=H_8;!4qo}tke;#uEPiG4}nDSr+9dKo?n-sBZ9wXD`V3FfqrJ zoPlyNzKx`z;f}L&@=<;(LBzYd&P39tj&!S7iaGKLvquZYAjU`Mi>g`Z#y~KkS5c?f z0q_EF{ku_&&~hCRK(@tyuDy=VcdeZxN|EMUEn7#Fl+f*eMAFbEMh`f-f^@_oeYSxDr=@Gm3 zozIu-nuYaZ?%hq@L5T?(FGFqTwFgTi6L{95bLmV=MQhHnvN9j5BMr&pmH?cx-P<@4 zMK_IKtl*kWQUYulErt3%^qrBeX4?e;d=pD<>h0_Ne9tHDQ$Xs~5Sp>QbHwKFl4@TP zV^gG`n|=ifRE~tX5G|>gfsIC@IUzE11pJ+0^*I6G2~k_T2;^GwLMipG4Zm&FUuY7r z$AfomgdBZ&j|~XlYL3Q)7}2F^cr(2`O4BjC%&shNqbAMjcXzX}(Ke5E-L9(S_Vm;3I=;+1nqTd}iB;8;#PG?~Z>+YHbZv}3#aD;JCfG>xx{N`_`{ zw8p~Wl-Eq1@d@6iIpa*UKRJ>3>cqKIn42EW&KGn&%+n^{KbzTwU)_9+*o!^FJ*}eJ zCzV#WvYDwD{VsOpZA?7pn(g@_6G4HFj^q0gPvIDdU=(t*tBB2ae12?&&t=J7URD-{ z;A-DwC=|5=_6}-4uyCuV5lt9x*AN(d+n)TNQfQw0Lb9Bq986aLNjLpE70e$OMY!I4E zclZj|+`nx_7pk!-V+6(2$kHZi&`mT?kpoo}u=TPGw)uwlh8OEIi5PZQpmK`s$i|tO zEeHH87CX86gz5*v|0mHi=RcT#|8sd|`tO{=ZvkNNGO+MGkno5gD16_p{!^L#2lV~F zmRTk?#($Fprl?zKd{@WG1<62}oJ%EMWAZd@Zi4R6nJZUycB?|K5%of;tXe`PIuMc& zqC-Ybh7FW~45XkqBu6IF0b7VvaINyOylB4FFqd^}A+vGQ?zm`fzi8&2=Y3zv@b6#x zXh`x%%uY&r>Av#WzVl^9rJ;aMlKA2F^KX_D3)c54BuXO!=F|D1Hk)@P-wa_$cmJEl zU^CEXeaKrw!EBkprBTol6T$iE{1#uPuMXLE_<9#VeHuCD&m0DI?19h-N<+5VRxtbMA8W~~ektwr# zUOaaiG!4QTsTLDWCYIPm#5t=dIqnPpFuU7faKt#yXPHX~lw4Bo~Uy;4#p@ ze;;7LNQs=)s48}Ga8S$QS~6D~0YF>PIJ{2?oq@X3W`ph5ccCe3VU8s={ zn48Y2suii(MSNgaItj~gq#7X^psc{s;6x1&3={M%8Q|8A)Ph^%K60dnUkv80HV(2?K-qZ{c<&XEy9(ZJY4>L6`==fG*?J0?33vM9Ls;sN{0 z){twB7>84%ZN>BUvw!HX4f(k<9ACIatH*JQ;Nud>a`RUV8W%9mjHafB0ap5BOZpQ{ z6wiHU1=2=aPh8k;k`s}`lj>|ld{SNww6PAJcI`X990plu!^7Jrdj+>R$V=&%OSiZG zsZGW8jQNOc+os_%I!OKLFSQej;zXv6j{(1vz^DpyVutswCu%$MztbP|s~`wv6D~h! zoP%qEA$A!lt$b0a9jbn1M=FFLJHPvF4VV{nt-&rb=z3|h4{3co=Z5gn{THbFDSGLrDRkUA+W&H0_*Gh69OgptDZFa`0(F^G&$BJ(lx-^Tkyi` zm^ZBN%oyy=vyXNlEn4=S)$vQuaCf!dBj$+_Tj8ri1wfyA0Rh*>d;-2|z$FS<92>2g z{I8VQZa)7{WM{Qy$_WeLk?9Xc8b>f(AH-dB3?YI&D+n7ChZliK%$)O>tm{Hx~$bC`ag&$i77({|+yHcF1J?sx|SuH=~pVi0Q88?a7)+0nMa4FB`zf$%SScVD;f_Es|RkM<{XK2c%Y@ zi6Y9et@CmVQvZ$=E0f9TNz7(?YM(CYXQMSQln_VSfIweDL%5s{4bl z>57?^z~4-(EQ6g7a^L=T5|R-t z2w4ei|K?2nOj?_x z?|*v-jmg&MAHazmvLl7TlvQ>Q5Kb$EqDq=g5I!W>qe7fl6^SbwOU$uZ{y54Tnd(Ca zV>o~%BF%YU_zDMJ-%5R9ARM?fa1@BP1YaVtRX7u;qta%xcOPMn(GX>I<=4n>Ww&x- zHz(umXF(oxJyNmyyY9(w!pE|fM><39OtE+UE`cw`ysKn+QIw9z885u|{p~DU6lj5n zV(C>j75Dhl-53gZ!mCkKyz3c=_f~7?UVC!Tw+VtBfw!cWiCukZg4_GXJbr7I>a)Vn zGvjS!s(4u?`mk4^xi=`qpXX2cJ;0lipHcbz7Mn5Leo3C%9&P$6)f4fMyP@>LJy#If z;^(>uyA1UmP;7hhA~vWKH0)-+qv*sXrZVf4{{pZ0B@lA2C!wusF`v7!om+N+s%>&8 zHCw7gqzHE7HRYum3Sl#UA@)nWEU=>UC`ISKPbxvDt}lL;JswT6kQ61Nzx$IFJ~%+% z4?(iFS*!c?WKz3@kN4(e6;2 zv+7HZFD;19u4)8KzXYMqLrlCbF(Hi|Cr`cOwlc&t57;Sm;th31-ml*Tae*MF z$prBPKOtP}ibck4ps%I`QkpvwA@s7P%nhZN6?xUKL-P|#-jqLDG|upbK=|BDNbxI+ zUxfJ7SHE^nb9-W6u=(h%x6t_{;9}q4bx8R4&6SHAQgz}d_`H6EtsP-;3Jc>#liNyT zi1viF)K;_X{!yzvaSPUW$O(M^ioU%Wg;|6ml*#$}YtVxT)2oLv*s=Z7`V6#tcpDlC zw8`9gsAR5>XNuRHUoN(4UBhJMkE<)FhWy6kmZqqe0wn=w#z$Z8&R8m+z-5aHdxNZz z)%`Xt%K^L>1Q)xzuq1^3BtOv=yV?N=TJX9|U{Z5K)jd(QNaZGVmnFYek|6$+g9%}Q zszfd*=Lyjk$+Q2@j(#c@1fCI%>RGll7dWqD)OK=K&YTxunUm_z;WLY6%%EdI3tL@g zZSk%>YiqZ;v>jFpw}yr|jBGb=Zt!>It(gY)v2VGDS9wjsc$g{sm{PpmIE$kFTz})^ zk&u0RY>4Ubn2y8h3$iCgo8MI0JS%ecvRPB;Lz2kdrm%yya*a85B-`wr;J4Jzz!@U_ zbk^9c3O~b;auY?Nk>FOiZu;`c8%tC5wc(bRxU3v%87Rgm;9N&BJTPA|Vw$-)Z%Qp4 z3DU;MsW_^&uvqgBHmUv|64oBU2_mM*zCLpyC?XOiL#49D z@23dXiD1qz8#<;zi9-7sr+yml}fA z)M_O~+js~>78b9a32@Mo(18wugNyIqBQdBINc(LM11?AcevONHEeIWQY!5HSo-K~4 zVlK*XjbNrwvS@(V<1W0oH69!nTHf5iO{%Dsj=1=_vFq0v$! zSuiZLjQ~MB#l;W7AuO{U2+-0TQc8gb=!hAHU1BPK0k1!(bJe^gagB`lJ4rLhNN9`* z-vgM6c$x7~polp{pUa;nc)W*3(Uv@;f7l<`RRvUMRj15eQTJTAIa&p>QkRio2uS2pcr~u3}qJO z5$j+U%)2#k;w;E8hn`~CPU1MfI41ctMh-E+AcKdT+&ib*@=&X z^W_p5OS=%Mm_SA~9rP*XCA9H9`{N8~_mvVOar_P`9r9dWD`oImv8d&WI&MG_U1|71 zIJ?`opg*zzCP*N|D?|RI^FfZTVbjxDy#pceA%E0${=?>VXzTRFCh@+i8P#vB?a=l1 z(v{OAs&9a2I`z(${*3`2K<~$~iTFHXPSFi)B|ymV54bON@0FLE>y0{@WYK?!^NgBh z?4`e(nx%#Jp?5Z$`S5U0y11VegxSFm<|4_bxAh1^)NOuRu#zi7I0;tai z0-ws0A%xJITR@7We+5XUF@Pn~2||+S3c(AsgJXp@QtrN4aOpjq$RNe-CFohFNLOvO z&Mni)YWI8&XB$klUUdQPI##W(b+<=D`Q~SUXK$6ISIX;j5&GQ;vk0#^*W6n(B{;9v z!uq9GcL+DP|MkEk+`uAm2!qLSX;~dxhnFIEs=i*1vHnUxP)z!-M_HD}%3hCkXW_w- zqE)Z?kNQn8Pc_H=F`!v%gH{}ypd`Ng)j7*hF=M6&z&5>qW2-fB#CfS$cgSf*YHAE>gPZICggLr_m$V=~RgLYqy+0F%P zQB{`6?sZ$Nv=yFu8`=_GuoX(O$TDBO=4`XN!aKj1&s<&A$&2Tiz^07Ps;$jtJMCPW zs!n@Y^$vPm$DpwWi#NJy^fPHgPuvmVtQ)uK;Lgi-A((MtER6T%lyYz^^;WJCzHob( z#KtGRBKIz*jM3(439qE$&_~dA%7?kSa8|Dt`_=5P^HKpy`7*8aBG z=bY>1OrqLw)2-0S=+>x%dx+OH~XJdal#S8;+B0kcEZ&w@kHqXGWH%fE=kY!^ruh{ z*M+wZ=-l}cP@d2CB}ww!ZPU9EQXI8TnHF)8utlge%^eC z*=5<^1#j}9FZRvpGu++xD>@+oYCe+}z1J%mi|j)1ffv+;P<@3kV4jnVJ|`x4MH9VT z=M@XR`Lmuo0DUMvkjnxWQCy>z_!G{qY(XO5OUEm_U(UMAz)xtE^?Wt&vJ|g!Z?6hs zE&O0LIuhHMeMpKy-v=kcN$55~w)m+*vsCd6LGKf>SYdl-8<6O`fVzd5WhpS={`cR> zILHq3K`&Nbv`Gfu+p&?V^@Z=ljj?+0&N3beg#oLr7#U(Qva(A1s1w1SxTk3Rc`UCi zEI;}bI3{IhLl7f9%86d|ZtzIrqY;lM7TZLYyJDc;nR8d_$dQW=%UUw}~<7rV@ zyE?7=X{!geY&vt-74j849h`YR+JmbOOuC2T^5StLQ7xJ!Z{D0!sq-%f$KKJLmYII1 zy>k~AG#&YrQJ7GlUDm8xa(0YXgK^=dY+iQ9a9x*K&ysUTr3OK6)U!UFI05h^ zXT~TpPq3w*W5MDf+kE52Nlz9N`$$Rb^Ni$V1G*|MQu8ZyVkB{7uFyiW;^Lqvr@6+a z>9GXUKO3TNE?2EN`s6S@`6rnSJQ%a-)mBNnKN-D&z~9#~XR$O*Oy6*wk4(4A0}F?+%8pZWi~M84KHeLWb8l^w1 znnDpYEX6EM*G!tx1|w24P}w*0;@Xqwf7S2`<0>Q%9lkrJ_k3kWGrmPT_?dXlcG`N@sik2BAs`)L4&CfkaL$!P zABM>=FeQpDCLS?6&^V1;I*t(b=9p4LDNAe?#{U&I9jBe;`L%JZPx$D&w8MBE!0aJa z$>zJ-%;ocJQml>50JpVT`F(84WAr0fh64U%vIr6gWO98#%@1vqL~&%()p)4`r+ul8 zdZO^$pOE;EryvfDAcYbPb`8v?DQ^nXE^W%Ru9#9F2)cyA~?%= z8s+d`DCl|wE3BdMr} z{SuizIll<$5{*8wqKN(ygMMp={~J9s%JV~RuBkzhJHJ$u$)4T~*E_v*f4-@{8@s&x zn_)`p@RQc7aZ~G?BrTYIPpdeD7UZ5pcJu%vuDAi>kr760|7?1gu|17kpF?_FP#p+d z9rVaPcy{;@2l&rjmF!S5jmUWi$f?164tO&|1iB%QR^+rDPn`%rD`Lw&`9|RSHPK~1 zZz~c~xR(-UXVejUz%(paUJFFCX8?WqgGCTqJX32+c{#$tK`biejO?&vWTNt7u>TL^ag_@I literal 0 HcmV?d00001 From 8bbd77203abfb47205348b65299e59e220f8cdef Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 1 Jun 2026 22:44:14 +0300 Subject: [PATCH 073/120] Add practice report --- report/biblio.bib | 71 ++ report/practice.tex | 1322 ++++++++++++++++++++++++++++-------- report/reach-fuzz.png | Bin 0 -> 111748 bytes report/run-example.png | Bin 0 -> 33521 bytes report/run-with-prints.png | Bin 0 -> 49763 bytes research/research.ipynb | 2 +- 6 files changed, 1113 insertions(+), 282 deletions(-) create mode 100644 report/reach-fuzz.png create mode 100644 report/run-example.png create mode 100644 report/run-with-prints.png diff --git a/report/biblio.bib b/report/biblio.bib index 9203646..cd24608 100644 --- a/report/biblio.bib +++ b/report/biblio.bib @@ -84,3 +84,74 @@ @article{leis2015good language = {english}, note = {(дата обращения: 01.05.2026)} } + + +@misc{DBReport, +title = {Исследование рынка СУБД}, +url = {https://www.mordorintelligence.com/industry-reports/database-market}, +language = {english}, +note = {(дата обращения: 17.05.2026)} +} + +@misc{PostgresDocs, +title = {Документация PostgreSQL}, +url = {https://www.postgresql.org/docs/current/sql-select.html}, +language = {english}, +note = {(дата обращения: 17.05.2026)} +} + +@misc{PostgresBisonGrammar, +title = {Грамматика PostgreSQL}, +url = {https://github.com/postgres/postgres/blob/master/src/backend/parser/gram.y}, +language = {english}, +note = {(дата обращения: 17.05.2026)} +} + +@misc{Antlr4PostgreSQL, +title = {Грамматика PostgreSQL для ANTLR4}, +url = {https://github.com/antlr/grammars-v4/blob/master/sql/postgresql/PostgreSQLParser.g4}, +language = {english}, +note = {(дата обращения: 17.05.2026)} +} + +@book{silberschatz2020database, + title={Database system concepts}, + author={Silberschatz, Abraham and Korth, Henry F and Sudarshan, Shashank and others}, + year={2020}, + publisher={Mcgraw-hill New York}, + language = {english}, + note = {(дата обращения: 17.05.2026)} +} + +@inproceedings{pantilimonov2019machine, + title={Machine code caching in postgresql query jit-compiler}, + author={Pantilimonov, Michael and Buchatskiy, Ruben and Zhuykov, Roman and Sharygin, Eugene and Melnik, Dmitry}, + booktitle={2019 Ivannikov Memorial Workshop (IVMEM)}, + pages={18--25}, + year={2019}, + organization={IEEE}, + language = {english}, + note = {(дата обращения: 17.05.2026)} +} + +@book{petrov2019database, + title={Database Internals: A deep dive into how distributed data systems work}, + author={Petrov, Alex}, + year={2019}, + publisher={O'Reilly Media}, + language = {english}, + note = {(дата обращения: 17.05.2026)} +} + +@article{graefe2002volcano, + title={Volcano - an extensible and parallel query evaluation system}, + author={Graefe, Goetz}, + journal={IEEE Transactions on Knowledge and Data Engineering}, + volume={6}, + number={1}, + pages={120--135}, + year={2002}, + publisher={IEEE}, + language = {english}, + note = {(дата обращения: 17.05.2026)} +} diff --git a/report/practice.tex b/report/practice.tex index 7dbc091..6b32298 100644 --- a/report/practice.tex +++ b/report/practice.tex @@ -48,6 +48,14 @@ \anonsection{ВВЕДЕНИЕ} +В эпоху стремительного роста объемов данных системы управления базами данных +(СУБД) являются важной частью информационных систем. По данным аналитических +исследований, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено +как расширением круга решаемых задач, так и усложнением структуры обрабатываемых +данных и увеличением их объема. Реляционные базы данных, работающие с различными +диалектами языка SQL, продолжают занимать доминирующее положение в сегменте +обработки транзакций и аналитических запросов. + Одним из определяющих факторов конкурентоспособности между различными реализациями СУБД является качество оптимизатора запросов. Оптимизатор представляет собой компонент, ответственный за преобразование декларативного @@ -67,8 +75,9 @@ Преимущества архитектуры Cascades заключаются в расширяемости, модульности и возможности управлять поиском с помощью набора правил. -Целью практики является разработка и исследование программного прототипа -SQL-компилятора с оптимизатором запросов на основе архитектуры Cascades. +Целью данной работы является разработка и реализация оптимизатора подмножества +SQL-запросов на основе архитектуры Cascades, а также создание каркаса для его +итеративного улучшения путем сравнения с промышленными реализациями. Для достижения поставленной цели необходимо решить следующие задачи: \begin{itemize} @@ -82,235 +91,775 @@ \item реализовать метод ветвей и границ для эффективного отсечения неоптимальных планов; \item реализовать исполнение физических планов над таблицами в формате CSV; - \item добавить интерпретацию и JIT-компиляцию выражений; - \item подготовить тесты и вспомогательные средства для исследования планов. + \item реализовать метод дифференциального анализа физических планов для + автоматизированного поиска примеров неоптимальных планов. \end{itemize} -В рамках практики разработана модельная СУБД, включающая основные этапы -обработки SQL-запроса. Программа разбирает текст запроса, строит дерево -операторов реляционной алгебры, выполняет стоимостную оптимизацию, формирует -физический план и исполняет его над таблицами в формате CSV. Дополнительно -реализована JIT-компиляция скалярных выражений с использованием LLVM. - -\section{ПРОЕКТИРОВАНИЕ} - -\subsection{Назначение и область применения} - -Разработанная программа является исследовательским прототипом обработчика -SQL-запросов. Она не заменяет промышленную СУБД, поскольку не содержит -транзакционного менеджера, журналирования, многоверсионности и сетевого -протокола. Программа предназначена для изучения этапов компиляции запросов, -экспериментальной проверки правил оптимизации и измерения стоимости физических -операторов. - -Входными данными служат SQL-запрос и директория с CSV-файлами. Каждый файл -соответствует одной таблице. Первая строка файла задает схему отношения, а -остальные строки содержат кортежи. Результат запроса выводится в стандартный -поток вывода в текстовом виде. - -Поддерживаются запросы \SELECT{} с предложениями \FROM{} и \WHERE{}, -проекции столбцов и выражений, соединения и декартовы произведения таблиц. -Скалярные выражения включают сравнения, \sqlkw{BETWEEN}, \sqlkw{IN}, строковые -и целочисленные значения, а также \sqlkw{NULL}. Реализованы агрегатные функции -\sqlkw{SUM}, \sqlkw{COUNT}, группировка \GROUPBY{} и сортировка \ORDERBY{}. - -Некоторые возможности полного SQL намеренно не реализованы. К ним относятся -\sqlkw{DISTINCT}, \sqlkw{HAVING}, оконные функции, подзапросы и операции над -множествами. При встрече неподдерживаемой конструкции парсер возвращает -диагностическое сообщение. - -\subsection{Общая архитектура программы} +\section{Проектирование} -Сначала программа читает SQL-запрос, выполняет лексический и синтаксический -анализ, затем строит логическое представление. Оптимизатор заполняет Memo, -перечисляет эквивалентные выражения и выбирает физический план с минимальной -стоимостью. Исполнитель обрабатывает план над CSV-файлами и выводит схему и -кортежи результирующего отношения. +В рамках данной работы был разработан оптимизатор запросов для модельной +реляционной СУБД. -\section{РЕАЛИЗАЦИЯ} +Структурно реализация модельной СУБД состоит из следующих модулей: +\begin{itemize} + \item модуль синтаксического анализа SQL-запросов; + \item модуль построения логического представления запроса; + \item модуль стоимостной оптимизации на основе структуры Memo; + \item подсистема физического хранения на основе статических CSV-таблиц; + \item модуль исполнения физических операторов. +\end{itemize} -\subsection{Выбор инструментов разработки} +Основой для проектирования оптимизатора была выбрана архитектура Cascades. В ней +пространство допустимых планов формируется с помощью набора правил +преобразования и хранится в структуре Memo. Эта структура объединяет логически +эквивалентные выражения в группы, что позволяет избежать повторного рассмотрения +одинаковых поддеревьев. Поиск оптимального физического плана выполняется с учетом +стоимостной модели и требуемых свойств результата, например порядка сортировки. + +Данная архитектура была выбрана по причине ее модульности и расширяемости. +Добавление новых логических преобразований и физических операторов выполняется +путем реализации отдельных правил и не требует изменения основного алгоритма +поиска. Это также удобно для итеративного процесса разработки, предполагающего +постепенное улучшение качества итоговых планов путем уточнения и расширения +пространства поиска. + +Модуль синтаксического анализа SQL-запросов отвечает за лексический и +синтаксический разбор поступающих на вход SQL-запросов. Для реализации этого +модуля было решено использовать генератор синтаксических и лексических +анализаторов, ввиду того, что грамматика SQL является очень объемной, и +использование готового формального описания для генератора гарантирует +совместимость с одним из диалектов языка. + +Модуль построения логического представления запроса отвечает за преобразование +результата синтаксического анализа во внутреннее представление, пригодное для +оптимизации. В качестве такого представления решено использовать дерево +операторов реляционной алгебры. Этот подход является общепринятым и позволяет +отделить особенности синтаксиса SQL от последующих этапов обработки запроса, а +также выполнять оптимизацию над ограниченным набором формализованных операций: +фильтрацией, проекцией, соединением, агрегацией и сортировкой. + +Подсистема физического хранения отвечает за предоставление модулю исполнения +табличных данных. Для хранения выбраны статические таблицы в формате CSV. +Использование простого текстового формата позволяет сосредоточиться на +проектировании оптимизатора и не усложнять прототип реализацией транзакций, +индексов, буферного кэша и управления дисковыми страницами. Кроме того, +CSV-файлы удобно создавать, изменять и использовать при проведении тестов. + +Модуль исполнения физических операторов отвечает за выполнение выбранного +оптимизатором плана и формирование результата запроса. Физический план решено +представлять в виде дерева операторов с единым интерфейсом взаимодействия. +Каждый оператор получает данные от дочерних узлов, выполняет определенное +преобразование и передает результат вышестоящему оператору. Такой подход +обеспечивает модульность подсистемы исполнения и позволяет добавлять новые +физические операторы независимо от уже реализованных. + +% TODO: Описание выбранных правил реализации / трансформации +% TODO: Описание подмножества SQL. + +\section{Реализация} Программа написана на языке C++ с использованием стандарта C++23. Этот язык -позволяет контролировать представление данных в памяти, использовать -стандартные алгебраические типы и корутины, а также интегрироваться с LLVM. -Для сборки применяется CMake. Воспроизводимое окружение разработки описано -в файле \texttt{flake.nix}. - -Для синтаксического анализа выбран генератор парсеров ANTLR4. Асинхронное -взаимодействие физических операторов построено на Boost.Asio. LLVM -используется для генерации машинного кода скалярных выражений. Модульные тесты -реализованы с помощью GoogleTest, а измерения производительности физических -операторов --- с помощью Google Benchmark. +популярен в сфере разработки СУБД, являясь достаточно низкоуровневым и +производительным, но в то же время удобным для реализации больших систем. Для +сборки применяется CMake и его встроенные средства для зависимостей в виде +библиотек на C++. Окружение для разработки описывается декларативно и +воспроизводимо при помощи функционального доменно-специфичного языка \verb|nix| +для соответствующего пакетного менеджера. + +Для синтаксического анализа выбран генератор парсеров ANTLR4, ввиду простоты и +удобства в использовании. Асинхронное взаимодействие физических операторов +построено на Boost.Asio, по причине совместимости со встроенными в язык +корутинами и понятной модели асинхронности. Для тестирования корректности и +производительности используется Google Tests, Google Benchmarks и pytest. \subsection{Модуль синтаксического анализа} -Для синтаксического анализа используется грамматика PostgreSQL и генератор -парсеров ANTLR4. Сгенерированные классы лексического и синтаксического -анализаторов находятся в каталоге -\texttt{src/stewkk/sql/logic/parser/codegen}. Функция \texttt{GetAST} -инициализирует анализаторы, строит дерево разбора и запускает обход дерева. - -Обход реализован классом \texttt{Visitor}. Для интересующих конструкций SQL -переопределены методы посещения узлов грамматики. Например, предложение -\WHERE{} преобразуется в логический оператор фильтрации, список выражений -после \SELECT{} преобразуется в проекцию, а список таблиц после \FROM{} --- -в дерево соединений. - -Результатом работы парсера является структура \texttt{ParsedQuery}. Она -содержит логический оператор верхнего уровня и необязательное требование к -порядку строк для \ORDERBY{}. Логические операторы и скалярные выражения -представлены алгебраическими типами на основе \texttt{std::variant}. В них -входят операторы таблицы, фильтрации, проекции, агрегации, соединения, ссылки -на атрибуты, константы и арифметические выражения. +Для реализации парсера был выбран ANTLR4, ввиду его удобства и возможности +генерировать лексические и синтаксические анализаторы под практически любой язык +программирования. + +Грамматика PostgreSQL была взята из официального репозитория проекта +ANTLR4~\cite{Antlr4PostgreSQL}. Она была портирована автоматически из грамматики +для Bison~\cite{PostgresBisonGrammar} из официального репозитория Postgres, +поэтому является наиболее полной из существующих. + +ANTLR4 генерирует несколько файлов на C++, в том числе лексический и +синтаксический анализаторы, а также класс \verb|Visitor| для обхода дерева +разбора. Для интересующих конструкций SQL переопределены методы посещения узлов +грамматики. Например, предложение \WHERE{} преобразуется в логический оператор +фильтрации, список выражений после \SELECT{} преобразуется в проекцию, а список +таблиц после \FROM{} --- в дерево соединений. + +Результатом работы парсера является структура \texttt{ParsedQuery}. Она содержит +логический оператор верхнего уровня и необязательное требование к порядку строк +для \ORDERBY{}. Логические операторы и скалярные выражения представлены +алгебраическими типами на основе \texttt{std::variant}. В них входят операторы +таблицы, фильтрации, проекции, агрегации, соединения, ссылки на атрибуты, +константы и арифметические выражения~\refAlgo{lst:logical}. + +\begin{listing}[H] + \caption{Объявление типов для операторов реляционной алегебры и выражений.} + \label{lst:logical} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} +using Operator = std::variant; + +using Expression = std::variant; + +struct Projection { + std::vector expressions; + std::shared_ptr source; + std::vector> aliases; + + bool operator==(const Projection& other) const; +}; + \end{minted} +\end{listing} + +Выражения хранятся в алгебраическом типе \verb|Expression|, реализованном +аналогично \verb|Operator|. + +Функция \verb|GetAST| внутри строит абстрактное синтаксическое дерево и обходит +его с помощью \verb|Visitor|, который и генерирует представление запроса в виде +дерева из \verb|Operator|. + +Дополнительно реализована визуализация дерева из операторов реляционной алгебры +в формате Graphviz с помощью функции \verb|GetDotRepresentation|. \subsection{Модуль оптимизации запросов} -Оптимизатор получает логическое дерево, набор правил, оценки кардинальности, -каталог схем и требуемые свойства результата. Центральной структурой данных -является Memo. Она хранит группы логически эквивалентных выражений. - -Каждая группа содержит логические и физические выражения. Дочерние узлы -ссылаются на группы, поэтому одно выражение компактно представляет множество -возможных поддеревьев. Повторяющиеся выражения не добавляются в Memo повторно. - -Правила оптимизации разделены на две категории. Трансформационные правила -создают новые логические выражения, эквивалентные исходным. Реализационные -правила добавляют физические операторы, которые могут быть непосредственно -исполнены. - -В текущей версии реализованы следующие трансформации: +Модуль оптимизации запросов отвечает за преобразование логического дерева +операторов в физический план исполнения с минимальной оцененной стоимостью. +Пространство исследуемых эквивалентных планов эффективно хранится в структуре +Memo и расширяется с помощью добавления новых правил. Поиск выполняется сверху +вниз с использованием стоимостной модели, физических свойств и метода ветвей и +границ. + +\subsubsection{Структура Memo} + +Структура Memo хранит группы логически эквивалентных выражений. Выражения из +одной группы возвращают одинаковый результат. Например, $A \Join B$ и +$B \Join A$ являются эквивалентными. + +Дочерние узлы выражения ссылаются не на конкретные операторы, а на группы. +Благодаря этому одно выражение компактно представляет множество деревьев. +Объявления классов \verb|Memo| и \verb|Group| приведены в +листинге~\ref{lst:memo}. + +\begin{listing}[H] + \caption{Основные элементы структуры Memo.} + \label{lst:memo} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +class Memo { +public: + utils::NotNull AddGroup(LogicalOperator op); + utils::NotNull AddLogicalExprToGroup( + utils::NotNull group, LogicalOperator op); + utils::NotNull Populate(const Operator& op); + +private: + std::deque groups_; + std::unordered_map expr_index_; +}; + +class Group { +public: + utils::NotNull AddLogicalExpr(LogicalOperator op); + utils::NotNull AddPhysicalExpr( + PhysicalOperator op, bool is_enforcer = false); + + LogicalExprs GetLogicalExprs(); + PhysicalExprs GetPhysicalExprs(); +}; + \end{minted} +\end{listing} + +Метод \verb|Memo::Populate| рекурсивно обходит исходное логическое дерево и +создает первоначальные группы. Для предотвращения повторного добавления +выражений используется отображение \verb|expr_index_|. Ключ строится из типа +оператора, его параметров и идентификаторов дочерних групп. Таким образом, +одинаковые выражения добавляются в Memo только один раз. + +Каждая группа содержит логические и физические выражения. Логические выражения +описывают семантику запроса, а физические выражения определяют конкретный способ +исполнения. Например, логическому соединению могут соответствовать физические +операторы соединения вложенными циклами и хеш-соединения. + +\subsubsection{Правила оптимизации} + +Расширение пространства поиска выполняется с помощью правил. Реализовано два +типа правил: трансформационные и реализационные. Их интерфейсы приведены в +листинге~\ref{lst:optimizer-rules}. + +\begin{listing}[H] + \caption{Интерфейсы правил оптимизации.} + \label{lst:optimizer-rules} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +class TransformationRule { +public: + virtual bool IsApplicable(utils::NotNull expr) = 0; + utils::NotNull Apply( + utils::NotNull expr, Memo& memo); + +private: + virtual LogicalOperator ApplyImpl( + utils::NotNull expr, Memo& memo) = 0; +}; + +class ImplementationRule { +public: + virtual bool IsApplicable(utils::NotNull expr) = 0; + virtual utils::NotNull Apply( + utils::NotNull expr, Memo& memo) = 0; +}; + \end{minted} +\end{listing} + +Правило трансформации создает новое логическое выражение и добавляет его в +ту же группу Memo, что и исходное выражение. Следовательно, правило должно +сохранять семантику запроса. Правило реализации создает физическое выражение, +которое может быть передано модулю исполнения. + +Реализованы следующие трансформационные правила: \begin{itemize} \item коммутативность соединения; \item ассоциативность соединения; - \item разбиение фильтра с конъюнкцией на последовательность фильтров; + \item разбиение конъюнкции на последовательность фильтров; \item объединение последовательных фильтров; \item проталкивание фильтра через проекцию; \item проталкивание фильтра во входы соединения; - \item преобразование списка \sqlkw{IN} в цепочку сравнений. + \item преобразование выражения \verb|IN| в цепочку сравнений. +\end{itemize} + +Например, правило коммутативности преобразует выражение $A \Join B$ в +$B \Join A$. Для левого и правого внешнего соединения одновременно изменяется +тип соединения. Реализация правила приведена в +листинге~\ref{lst:join-commutativity}. + +\begin{listing}[H] + \caption{Правило коммутативности соединения.} + \label{lst:join-commutativity} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, + linenos=false, xleftmargin=1.5em]{cpp} +LogicalOperator JoinCommutativity::ApplyImpl( + utils::NotNull expr, Memo&) { + auto join = std::get(expr->root_operator); + std::swap(join.lhs, join.rhs); + + if (join.type == JoinType::kLeft) { + join.type = JoinType::kRight; + } else if (join.type == JoinType::kRight) { + join.type = JoinType::kLeft; + } + return join; +} + \end{minted} +\end{listing} + +Правило проталкивания фильтра через соединение разбивает предикат на конъюнкты. +Каждый конъюнкт анализируется отдельно. Если он ссылается только на атрибуты +одного входа соединения, фильтр переносится ближе к соответствующей таблице. Это +позволяет уменьшить число кортежей до выполнения соединения. Для внешних +соединений учитывается направление: фильтр нельзя переносить в такой вход, для +которого это изменит семантику результата. + +Реализационные правила создают: +\begin{itemize} + \item последовательное сканирование таблицы; + \item фильтрацию; + \item проекцию; + \item агрегацию; + \item декартово произведение вложенными циклами; + \item соединение вложенными циклами; + \item хеш-соединение. \end{itemize} -Реализационные правила создают последовательное сканирование, фильтрацию, -проекцию, агрегацию, соединение вложенными циклами, декартово произведение -вложенными циклами и хеш-соединение. Хеш-соединение применяется только для -простого внутреннего соединения по равенству двух атрибутов. - -Поиск выполняется сверху вниз с использованием стека отложенных задач. Для -каждой пары из группы и требуемого набора физических свойств сохраняется -лучший найденный вариант. Такой вариант называется победителем группы. -Стоимость полного плана равна сумме локальных стоимостей его операторов. - -Для уменьшения пространства поиска используется метод ветвей и границ. -Оптимизатор вычисляет допустимую нижнюю оценку стоимости группы. Если даже -нижняя оценка не меньше стоимости уже известного решения, дальнейшее -исследование ветви прекращается. - -Физические свойства описывают дополнительные требования к результату. В -текущей версии реализовано свойство сортировки. Если запрос содержит -\ORDERBY{}, оптимизатор должен построить план, выдающий строки в требуемом -порядке. При необходимости в план добавляется обеспечивающий оператор -\Sort{}. - -\subsection{Физический план и его сериализация} - -После завершения поиска оптимизатор преобразует выбранные физические выражения -в дерево \texttt{PhysicalPlanNode}. Физический план отделен от внутренней -структуры Memo и может быть исполнен независимо от процесса оптимизации. - -К основным физическим операторам относятся последовательное чтение CSV-файла -\SeqScan{}, фильтрация \FilterOp{}, проекция \ProjectionOp{}, соединения -\NestedLoopJoin{} и \HashJoin{}, сортировка \Sort{} и хеш-агрегация -\sqlkw{HashAggregate}. - -Планы сериализуются в текстовый формат S-expression. Его удобно читать, -сравнивать в тестах и передавать вспомогательным утилитам. Дополнительно -реализован экспорт плана в формат Graphviz DOT. После запуска программы файл -сохраняется в каталоге \texttt{.plans}. - -\subsection{Модуль хранения и исполнения данных} - -Каждой таблице соответствует CSV-файл с совпадающим именем. Например, таблица -\texttt{users} хранится в файле \texttt{users.csv}. Первая строка содержит -описание столбцов и их типов: - -\begin{Verbatim}[fontsize=\small] -id:int,name:string,age:int -1,Alice,25 -2,Bob,31 -\end{Verbatim} - -Исполнитель физических планов реализован классом \texttt{Executor}. Он -параметризуется способом вычисления выражений и функциями доступа к таблицам. -Благодаря этому один исполнитель используется с интерпретатором, JIT-компилятором -и различными реализациями сканирования. - -Операторы взаимодействуют через каналы Boost.Asio. Отдельные каналы передают -описание атрибутов и порции размером до 2048 кортежей. Это уменьшает число -операций синхронизации по сравнению с передачей отдельных строк. - -Проекция и фильтрация являются потоковыми операторами. Они получают порцию -входных кортежей, обрабатывают ее и передают результат следующему оператору. -Для блокирующих операций может потребоваться накопление данных. Например, -сортировка сохраняет все входные кортежи в памяти. - -Соединение вложенными циклами материализует один вход во временный бинарный -файл, после чего многократно читает его при обработке второго входа. -Хеш-соединение строит хеш-таблицу по ключу левого входа и выполняет поиск -совпадений для кортежей правого входа. - -Для строковых значений используется интернирование. Строка помещается в общий -пул, а внутри кортежа хранится целочисленный идентификатор. Это сохраняет -компактное представление значения и упрощает передачу кортежей между -операторами. - -\subsection{JIT-компиляция выражений} - -Для часто вычисляемых выражений реализована JIT-компиляция с использованием -LLVM ORC JIT. Класс \texttt{JITCompiler} преобразует дерево выражения в LLVM IR, -запускает оптимизирующие проходы и возвращает указатель на машинную функцию. - -Скомпилированная функция получает указатель на результирующее значение, -указатель на входной кортеж и описание атрибутов. Структура значения содержит -флаг \texttt{is\_null} и объединение для непосредственного значения. Такое -представление учитывает трехзначную логику SQL. - -В проекте доступны интерпретируемая, JIT-компилируемая и кэшируемая -JIT-компилируемая стратегии вычисления выражений. Последняя сохраняет -полученные машинные функции и переиспользует их. - -Текущая реализация JIT предназначена для целочисленных и логических выражений. -Строковые операции, \sqlkw{IN}, агрегатные выражения и возведение в степень -через JIT не поддерживаются. Для них следует использовать интерпретируемый -режим. +Хеш-соединение применяется только для внутреннего эквисоединения двух атрибутов. +Для остальных условий доступно соединение вложенными циклами. Проверка +применимости правила приведена в листинге~\ref{lst:implement-hash-join}. + +\begin{listing}[H] + \caption{Проверка применимости хеш-соединения.} + \label{lst:implement-hash-join} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +bool ImplementHashJoin::IsApplicable( + utils::NotNull expr) { + if (!std::holds_alternative( + expr->root_operator)) { + return false; + } + + const auto& join = + std::get(expr->root_operator); + + if (join.type != JoinType::kInner) return false; + + const auto* bin = + std::get_if(&join.qual); + + return bin && bin->binop == BinaryOp::kEq + && std::holds_alternative(*bin->lhs) + && std::holds_alternative(*bin->rhs); +} + \end{minted} +\end{listing} -\subsection{Руководство пользователя} +Для каждого выражения хранится информация о ранее примененных правилах. Это +предотвращает повторное выполнение одного правила над одним выражением и +ограничивает образование циклов при заполнении Memo. -\subsubsection{Требования к окружению} +\subsubsection{Оценка кардинальности} -Для сборки программы требуются CMake, компилятор C++ с поддержкой C++23, LLVM, -ANTLR4 и библиотеки Boost. В репозитории присутствует файл \texttt{flake.nix}, -поэтому в системе с пакетным менеджером Nix рекомендуется открыть окружение: +Стоимость физического плана зависит от количества обрабатываемых кортежей. +Для получения этой величины используется класс +\verb|CardinalityEstimates| из файла +\verb|src/stewkk/sql/logic/optimizer/cardinality.cpp|. -\begin{Verbatim}[fontsize=\small] -nix develop -\end{Verbatim} +Оценка кардинальности вычисляется для группы Memo и кэшируется. В текущей +версии используются следующие эвристики: +\begin{itemize} + \item для таблицы используется известное количество строк или значение по + умолчанию; + \item фильтрация и проекция сохраняют оценку кардинальности входа; + \item скалярная агрегация возвращает одну строку; + \item декартово произведение имеет кардинальность $N_l N_r$; + \item для соединения используется произведение кардинальностей входов и + коэффициента селективности. +\end{itemize} + +Для эквисоединения двух атрибутов коэффициент селективности оценивается как +\[ + S = \frac{1}{\max(1, N_l, N_r)}. +\] +Для конъюнкции условий коэффициенты селективности перемножаются. + +\subsubsection{Стоимостная модель} + +Стоимость плана вычисляется как сумма локальных стоимостей физических +операторов. Коэффициенты были подобраны с помощью бенчмарков отдельных +операторов, описанных в разделе тестирования. + +Для входных кардинальностей $N$, $N_l$ и $N_r$ используются следующие формулы: +\[ +\begin{aligned} + C_{\text{scan}} &= 100N, \\ + C_{\text{filter}} &= 100N, \\ + C_{\text{projection}} &= 22N, \\ + C_{\text{aggregation}} &= 510N, \\ + C_{\text{nested-loop join}} &= 70N_lN_r, \\ + C_{\text{cross join}} &= 104N_lN_r, \\ + C_{\text{hash join}} &= 69(N_l + N_r), \\ + C_{\text{sort}} &\approx 11N\log_2N. +\end{aligned} +\] + +Фрагмент реализации стоимостной модели приведен в +листинге~\ref{lst:optimizer-cost}. + +\begin{listing}[H] + \caption{Вычисление локальной стоимости физических операторов.} + \label{lst:optimizer-cost} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +int64_t CalcCost(PhysicalExpr* expr, + CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) { + return 100 * cardinality.GetCardinality(expr->group); + }, + [&](const physical::NestedLoopJoin& j) { + return 70 * cardinality.GetCardinality(j.lhs) + * cardinality.GetCardinality(j.rhs); + }, + [&](const physical::HashJoin& j) { + return 69 * (cardinality.GetCardinality(j.lhs) + + cardinality.GetCardinality(j.rhs)); + }, + [&](const physical::Sort& s) { + auto n = cardinality.GetCardinality(s.input); + return 11 * n * std::bit_width( + static_cast(n)); + }, + ... + }, expr->root_operator); +} + \end{minted} +\end{listing} + +\subsubsection{Алгоритм поиска} + +Класс \verb|Optimizer| реализует алгоритм поиска. При создании объекта исходное +логическое дерево помещается в Memo. Поиск запускается для корневой группы и +требуемых физических свойств результата. + +Алгоритм использует стек отложенных задач. Это позволяет разделить процесс на +небольшие операции: исследование группы, применение правила, оптимизацию +физического выражения и обработку его дочерних узлов. + +Основной метод оптимизации группы приведен в +листинге~\ref{lst:optimize-group}. + +\begin{listing}[H] + \caption{Оптимизация группы Memo.} + \label{lst:optimize-group} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +void Optimizer::OptimizeGroup(Group* group, + PropertySet required, + Limit limit) { + WinnerKey key{group, required}; + if (winner_.contains(key)) return; + + if (IsExplored(group) + && limit + && LowerBoundCost(group) >= *limit) { + return; + } + + if (!IsExplored(group)) { + tasks_.emplace([=] { + OptimizeGroup(group, required, limit); + }); + tasks_.emplace([=] { + ExploreGroup(group, limit); + }); + return; + } + + for (auto expr : group->GetPhysicalExprs()) { + if (expr->is_enforcer) continue; + auto cost = local_cost_[expr.get()]; + if (!limit || cost < *limit) { + tasks_.emplace([=] { + OptimizeInputs(expr, required, {}, cost, limit); + }); + } + } + + AddEnforcers(group, required, limit); +} + \end{minted} +\end{listing} + +Если группа еще не исследована, в стек добавляются две задачи. Первая расширяет +группу с помощью правил, вторая повторно запускает ее оптимизацию после +расширения. Если группа уже исследована, для каждого физического выражения +вычисляется полная стоимость с учетом дочерних групп. + +Для каждой пары из группы и требуемого набора свойств хранится лучший найденный +вариант. Ключ такого варианта представлен структурой \verb|WinnerKey|: + +\begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +struct WinnerKey { + Group* group; + PropertySet required; +}; +\end{minted} + +Хранение победителя отдельно для каждого набора свойств необходимо, поскольку +самый дешевый неотсортированный план может отличаться от самого дешевого плана, +удовлетворяющего требованию \verb|ORDER BY|. + +Дочерние группы физического выражения оптимизируются последовательно. После +получения победителя дочерней группы его стоимость прибавляется к накопленной +стоимости. Если все дочерние группы обработаны, проверяются выходные свойства +плана. Затем найденный вариант при необходимости становится новым победителем. + +\subsubsection{Метод ветвей и границ} + +Полный перебор пространства планов быстро становится непрактичным при +увеличении количества соединяемых таблиц. Для сокращения перебора используется +метод ветвей и границ. + +Для каждой группы вычисляется нижняя граница стоимости. Она равна минимальной +сумме нижней оценки локального оператора и нижних оценок дочерних групп. +Например, для логического соединения выбирается минимум между стоимостью +хеш-соединения и стоимостью соединения вложенными циклами: +\[ + LB_{\text{join}} = + \min(69(N_l + N_r), 70N_lN_r). +\] + +Если нижняя граница не меньше стоимости уже известного решения, исследование +ветви прекращается. Фрагмент реализации приведен в +листинге~\ref{lst:lower-bound}. + +\begin{listing}[H] + \caption{Вычисление нижней границы стоимости группы.} + \label{lst:lower-bound} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +int64_t Optimizer::LowerBoundCost(Group* group) { + if (auto it = lower_bounds_.find(group); + it != lower_bounds_.end()) { + return it->second; + } + + int64_t best = std::numeric_limits::max(); + + for (auto expr : group->GetLogicalExprs()) { + int64_t cost = LowerBoundLocalCost(expr, cardinality_); + + for (auto child : GetChildren(expr)) { + cost += LowerBoundCost(child); + } + best = std::min(best, cost); + } + + lower_bounds_[group] = best; + return best; +} + \end{minted} +\end{listing} + +Метод \verb|OptimizeInputs| также уменьшает границу для очередного дочернего +узла. Из общей допустимой стоимости вычитаются уже накопленная стоимость и +нижние оценки еще не обработанных дочерних групп. Благодаря этому заведомо +неоптимальные ветви отбрасываются до построения полного плана. + +Для исследовательских задач предусмотрен метод \verb|OptimizeExhaustive|. Он +запускает тот же алгоритм без ограничения стоимости и используется при +проверке достижимости внешних физических планов. + +\subsubsection{Физические свойства} + +Некоторые требования к результату нельзя выразить только стоимостью. Например, +конструкция \verb|ORDER BY| требует от результата определенного порядка +кортежей. Для представления таких требований используется класс +\verb|PropertySet|. + +В текущей версии реализовано свойство сортировки \verb|SortProperty|. Порядок +считается удовлетворяющим требованию, если требуемые ключи являются префиксом +фактически полученного порядка. Например, сортировка по $(a, b)$ удовлетворяет +требованию сортировки по $a$. + +Некоторые операторы сохраняют порядок дочернего узла. Фильтрация и проекция +сохраняют свойства входа. Соединение вложенными циклами сохраняет свойства +левого входа. Хеш-соединение и агрегация не гарантируют сохранение порядка. + +Если подходящий план не найден, оптимизатор пытается добавить обеспечивающий +оператор. Для сортировки используется класс \verb|SortEnforcer|. Он проверяет +наличие требуемых атрибутов в схеме группы и создает физический оператор +сортировки. + +\begin{listing}[H] + \caption{Добавление оператора сортировки для обеспечения свойства.} + \label{lst:sort-enforcer} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +std::optional SortEnforcer::TryBuild( + utils::NotNull group, + const PropertySet& required, + SchemaCatalog& schema) const { + const auto* sort = required.Get(); + if (!sort) return std::nullopt; + + if (!ContainsRequiredKeys(schema.GetSchema(group), + sort->order)) { + return std::nullopt; + } + + return physical::Sort{group, sort->order}; +} + \end{minted} +\end{listing} + +\subsubsection{Формирование физического плана} + +После завершения поиска метод \verb|BuildOptimalPlan| рекурсивно восстанавливает +итоговое дерево физических операторов. Для каждой группы выбирается сохраненный +победитель с учетом требуемых свойств. Затем аналогичным образом +восстанавливаются планы дочерних групп. + +Результатом работы оптимизатора является объект \verb|PhysicalPlanNode|, который +не зависит от структуры Memo. Он может быть сериализован для анализа или передан +модулю исполнения запросов. + +Таким образом, модуль оптимизации разделяет представление пространства планов, +правила его расширения, стоимостную модель и алгоритм поиска. Такая организация +позволяет добавлять новые правила и физические операторы без изменения основной +логики оптимизатора. + +\subsection{Модуль физического хранения данных} + +Данные хранятся в одной директории, где каждому отношению соответствует +файл с CSV-таблицей. Название файла совпадает с названием отношения. +Первая строка CSV-файла содержит описание атрибутов и их типов, +последующие строки содержат кортежи отношения. + +Для чтения таблиц реализован класс +\verb|CsvDirSequentialScanner|~\refAlgo{lst:csv-dir-scanners}. Он +выполняет последовательное сканирование CSV-файла и передает прочитанные +кортежи модулю исполнения физических операторов. + +\begin{listing}[H] + \caption{Объявления классов сканирования CSV-таблиц.} + \label{lst:csv-dir-scanners} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} +struct CsvDirSequentialScanner { + std::string dir; + + boost::asio::awaitable> operator()( + const std::string& table_name, + const std::string& output_table_name, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const; +}; + +struct CsvDirIndexedScanner { + std::string dir; + + boost::asio::awaitable> operator()( + const std::string& table_name, + const std::string& output_table_name, + const Expression& predicate, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const; +}; + \end{minted} +\end{listing} + +Дополнительно реализована поддержка индексов. Индекс представляет собой +отсортированный бинарный файл, содержащий целочисленные ключи и смещения +соответствующих строк в CSV-файле. Использование смещений позволяет +извлекать подходящие кортежи без полного сканирования отношения. + +Список доступных индексов задается в файле \verb|indexes.meta|, +расположенном в директории с данными. Каждая строка файла содержит +название отношения, название индексируемого атрибута, тип индекса и имя +бинарного файла~\refAlgo{lst:meta}. + +\begin{listing}[H] + \caption{Пример файла с метаданными о доступных индексах.} + \label{lst:meta} +\begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{text} +users id sorted users.id.sorted.idx +\end{minted} +\end{listing} + +Для чтения данных с использованием индекса реализован класс +\verb|CsvDirIndexedScanner|~\refAlgo{lst:csv-dir-scanners}. Если указанный в +метаданных бинарный файл отсутствует, индекс строится при первом обращении к +таблице. Для поиска диапазона подходящих ключей используется упорядоченность +записей индекса. + +Поддерживаются индексы только для целочисленных атрибутов. Индексное +сканирование применяется для предикатов сравнения атрибута с +целочисленной константой. Поддерживаются операции равенства, строгого и +нестрогого сравнения. После чтения найденных строк дополнительно +вычисляется исходный предикат, что обеспечивает корректную обработку +составных условий. + +\subsection{Модуль исполнения физических планов} + +За исполнение запросов отвечает класс \verb|Executor|~\refAlgo{lst:executor}. +Он получает физический план, запускает исполнение его операторов и формирует +результирующее отношение. Физический план представлен деревом объектов типа +\verb|PhysicalPlanNode|. Для каждого типа узла предусмотрена отдельная функция +исполнения. + +Поддерживается исполнение последовательного и индексного сканирования, +фильтрации, проекции, сортировки, агрегации, декартова произведения, соединения +вложенными циклами и хеш-соединения. Операторы могут обрабатывать дочерние узлы +плана независимо и передавать результаты вышестоящим операторам по мере их +готовности. + +\begin{listing}[H] + \caption{Основные элементы объявления класса Executor.} + \label{lst:executor} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} +template +class Executor { +public: + using SequentialScan = std::function>( + const std::string& table_name, + const std::string& output_table_name, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan)>; + + using IndexScan = std::function>( + const std::string& table_name, + const std::string& output_table_name, + const Expression& predicate, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan)>; + + Executor(SequentialScan seq_scan, + IndexScan index_scan, + boost::asio::any_io_executor executor); + + boost::asio::awaitable> + Execute(const PhysicalPlanNode& op); + +private: + SequentialScan sequential_scan_; + IndexScan index_scan_; + ExpressionExecutor expression_executor_; +}; + \end{minted} +\end{listing} + +Класс параметризуется интерфейсами \verb|SequentialScan|, \verb|IndexScan| и +\verb|ExpressionExecutor|. Первые два интерфейса отделяют исполнение физического +плана от конкретного способа хранения данных. \verb|SequentialScan| выполняет +полное чтение таблицы, а \verb|IndexScan| получает дополнительный предикат и +извлекает строки с использованием индекса. Благодаря этому исполнитель не +зависит от формата CSV-файлов и устройства индексных структур. + +Параметр \verb|ExpressionExecutor| определяет способ вычисления скалярных +выражений. Реализованы стратегии для интерпретации выражений и для +JIT-компиляции. По умолчанию используется интерпретируемый вариант. + +Значения атрибутов представлены структурой \verb|Value|. Она содержит признак +\verb|NULL| и значение одного из поддерживаемых типов: целого числа, логического +значения или идентификатора строки. Исходное значение для строк сохраняется в +пул, а в кортеже хранится числовой идентификатор строки. Кортеж представлен +вектором значений, а отношение состоит из описания атрибутов и списка кортежей. + +Коммуникация между физическими операторами осуществляется с помощью асинхронных +каналов. Используются два типа каналов: \verb|AttributesInfoChannel| для +однократной передачи схемы отношения и \verb|TuplesChannel| для передачи данных. +Кортежи передаются векторами. Это уменьшает число операций синхронизации и +позволяет потоковым операторам начинать обработку до полного завершения дочерних +узлов плана. + +Для реализации каналов используется +\verb|boost::asio::experimental::concurrent_channel|. Данный класс обеспечивает +потокобезопасность, буферизацию, асинхронную передачу данных и совместимость с +корутинами. Такой подход позволяет единообразно организовать взаимодействие +между операторами независимо от конкретных алгоритмов для их реализации. + +\subsection{Руководство пользователя} + +Для сборки программы требуются CMake, компилятор C++ с поддержкой C++23, LLVM, +ANTLR4 и библиотеки Boost. Дополнительно требуется Python, pytest и Docker. В +репозитории присутствует файл \texttt{flake.nix}, описывающий необходимые +зависимости, поэтому в системе с пакетным менеджером Nix рекомендуется открыть +окружение при помощи команды \verb|nix develop|. Все команды далее выполняются из корневого каталога проекта. \subsubsection{Сборка программы} -Для первичной конфигурации и сборки следует выполнить: +Для выполнения конфигурации и сборки следует запустить команды на листинге~\ref{lst:build}. -\begin{Verbatim}[fontsize=\small] +\begin{listing}[H] + \caption{Конфигурация и сборка проекта.} + \label{lst:build} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} cmake -S . -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -- -j 6 -\end{Verbatim} + \end{minted} +\end{listing} После успешной сборки исполняемый файл находится по пути \texttt{build/bin/sql}. Для повторной сборки также можно использовать цель \texttt{make build}. -\subsubsection{Подготовка входных данных} +\subsubsection{Запуск программы} Пользователь должен создать отдельную директорию и поместить в нее CSV-файлы. Имя каждого файла без расширения считается именем таблицы. В заголовке каждого @@ -318,70 +867,201 @@ \subsubsection{Подготовка входных данных} \texttt{int} и \texttt{string}. Пустое SQL-значение записывается как \texttt{NULL}. -Для первого запуска можно использовать готовые тестовые данные: - -\begin{Verbatim}[fontsize=\small] -test/static/executor/test_data -\end{Verbatim} - -\subsubsection{Запуск SQL-запроса} +Для первого запуска можно использовать готовые тестовые данные в \verb|test/static/executor/test_data|. SQL-запрос передается программе через стандартный поток ввода. Простейший -пример запуска: +пример запуска представлен на листинге~\ref{lst:run-example}. -\begin{Verbatim}[fontsize=\small] +\begin{listing}[H] + \caption{Простейший пример запуска программы.} + \label{lst:run-example} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} echo 'SELECT users.id FROM users;' | \ ./build/bin/sql --data-dir test/static/executor/test_data -\end{Verbatim} - -Для запуска запроса из файла следует использовать перенаправление ввода: - -\begin{Verbatim}[fontsize=\small] -./build/bin/sql --data-dir path/to/csv_dir < query.sql -\end{Verbatim} + \end{minted} +\end{listing} Программа выводит заголовок отношения, содержащий имена и типы столбцов, а затем полученные строки. Если запрос не содержит \ORDERBY{}, строки вывода сортируются лексикографически для воспроизводимости результата. -\screenplaceholder{Выполнение SQL-запроса над тестовыми данными}{fig:practice-run}{% - Вставить скриншот запуска запроса через стандартный поток ввода\\ - и напечатанного результирующего отношения.} +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{run-example.png} +\caption{Выполнение SQL-запроса над тестовыми данными}% +\label{fig:practice-run} +\end{figure} \subsubsection{Вывод логического и физического планов} Для диагностики предусмотрены параметры \texttt{--print-ast} и \texttt{--print-plan}. Первый параметр выводит логическое дерево после -синтаксического анализа, второй --- выбранный физический план: +синтаксического анализа, второй --- выбранный физический план. +Пример использования представлен на листинге~\ref{lst:run-plan}. -\begin{Verbatim}[fontsize=\small] +\begin{listing}[H] + \caption{Запуск программы с выводом логического дерева и физического плана.} + \label{lst:run-plan} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} echo 'SELECT users.id FROM users WHERE users.age > 18 \ ORDER BY users.id;' | \ ./build/bin/sql --data-dir test/static/executor/test_data \ --print-ast --print-plan -\end{Verbatim} - -\screenplaceholder{Вывод логического дерева и физического плана}{fig:practice-plan}{% - Вставить скриншот запуска с параметрами\\ - \texttt{--print-ast --print-plan}.} - -\subsubsection{Запуск с JIT-компиляцией} - -Для выбора JIT-компиляции выражений используется параметр \texttt{--jit}: - -\begin{Verbatim}[fontsize=\small] + \end{minted} +\end{listing} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{run-with-prints.png} +\caption{Вывод логического дерева и физического плана}% +\label{fig:practice-plan} +\end{figure} + +Для проверки полноты набора правил оптимизации предусмотрен режим +\verb|--check-reachable|. В этом режиме программа получает SQL-запрос и +сериализованный физический план, после чего выполняет полный перебор +пространства поиска без отсечения по стоимости. Если заданный план может быть +получен с помощью реализованных правил, программа выводит сообщение +\verb|REACHABLE|. + +План передается в отдельном файле в формате S-expression. Например, содержимое +файла \verb|target.plan| может иметь вид, представленный на листинге~\ref{lst:target-plan}. + +\begin{listing}[H] + \caption{Пример содержимого файла с целевым физическим планом.} + \label{lst:target-plan} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +(PhysicalProjection (exprs (attr users id)) + (PhysicalFilter (> (attr users age) 18) + (SeqScan users))) + \end{minted} +\end{listing} + +Проверка выполняется командой на листинге~\ref{lst:check-reachable}. + +\begin{listing}[H] + \caption{Запуск программы в режиме проверки достижимости плана.} + \label{lst:check-reachable} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} echo 'SELECT users.id FROM users WHERE users.age > 18;' | \ - ./build/bin/sql --data-dir test/static/executor/test_data --jit -\end{Verbatim} - -Параметр рекомендуется применять к запросам с целочисленными арифметическими и -логическими выражениями. Запросы со строковыми выражениями и \sqlkw{IN} следует -запускать без JIT. - -\screenplaceholder{Выполнение запроса с JIT-компиляцией выражений}{fig:practice-jit}{% - Вставить скриншот запуска программы с параметром \texttt{--jit}.} - -\subsubsection{Доступные параметры командной строки} + ./build/bin/sql \ + --data-dir test/static/executor/test_data \ + --check-reachable target.plan + \end{minted} +\end{listing} + +Если план недостижим, программа выводит сообщение \verb|NOT REACHABLE| и +описание первого обнаруженного расхождения. Параметр \verb|--data-dir| +необходим для загрузки схем таблиц. В частности, схема используется при +проверке достижимости планов с сортировкой. + +Для автоматизированной проверки достижимости планов используется Microsoft SQL +Server. Контейнер с СУБД запускается с помощью Docker Compose. Перед запуском +скриптов в директории research, следует выполнить команды на листинге~\ref{lst:docker-up}. + +\begin{listing}[H] + \caption{Запуск контейнера с Microsoft SQL Server.} + \label{lst:docker-up} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +cd research +docker compose up -d +cd .. + \end{minted} +\end{listing} + +Для запуска модульных тестов C++ следует выполнить команду на листинге~\ref{lst:ctest}. + +\begin{listing}[H] + \caption{Запуск модульных тестов C++.} + \label{lst:ctest} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +ctest --test-dir build --output-on-failure + \end{minted} +\end{listing} + +Модульные тесты проверяют синтаксический анализ запросов, вычисление выражений, +исполнение физических операторов, индексное сканирование, сериализацию планов, +структуру Memo, правила оптимизации и физические свойства. + +Для запуска Python-тестов преобразователя планов Microsoft SQL Server +необходимо предварительно запустить контейнер, после чего выполнить команды на листинге~\ref{lst:pytest-converter}. + +\begin{listing}[H] + \caption{Запуск тестов преобразователя планов Microsoft SQL Server.} + \label{lst:pytest-converter} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +cd research +pytest -q test_converter.py +cd .. + \end{minted} +\end{listing} + +Тесты инструментов Star Schema Benchmark запускаются командой на листинге~\ref{lst:pytest-ssb}. + +\begin{listing}[H] + \caption{Запуск тестов инструментов Star Schema Benchmark.} + \label{lst:pytest-ssb} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +pytest -q benchmarks/datasets/ssb + \end{minted} +\end{listing} + +Для поиска ошибок исполнения реализован дифференциальный фаззер. Он генерирует +случайные SQL-запросы, выполняет их в модельной СУБД и Microsoft SQL Server, +после чего сравнивает полученные результаты. Перед запуском необходимо поднять +контейнер с Microsoft SQL Server. + +Фаззер запускается из корневого каталога проекта командой на листинге~\ref{lst:diff-fuzz}. + +\begin{listing}[H] + \caption{Запуск дифференциального фаззера.} + \label{lst:diff-fuzz} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +python -m research.fuzz.diff_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data + \end{minted} +\end{listing} + +Для проверки режима JIT-компиляции можно дополнительно передать параметр +\verb|--jit|. При обнаружении расхождения фаззер выводит начальное значение +генератора случайных чисел и текст запроса, что позволяет воспроизвести ошибку. + +Второй фаззер проверяет полноту набора правил оптимизатора. Он получает +физический план запроса из Microsoft SQL Server, преобразует его во внутренний +формат проекта и запускает программу в режиме \verb|--check-reachable|, как показано на листинге~\ref{lst:reach-fuzz}. + +\begin{listing}[H] + \caption{Запуск фаззера проверки полноты правил оптимизатора.} + \label{lst:reach-fuzz} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +python -m research.fuzz.reach_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data + \end{minted} +\end{listing} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{reach-fuzz.png} +\caption{Пример вывода фаззера проверки полноты правил оптимизатора}% +\label{fig:reach-fuzz} +\end{figure} + +Оба фаззера поддерживают параметр \verb|--start-seed|. Он задает начальное +значение генератора и используется для воспроизводимого повторного запуска, +как показано на листинге~\ref{lst:reach-fuzz-seed}. + +\begin{listing}[H] + \caption{Запуск фаззера с фиксированным начальным значением генератора.} + \label{lst:reach-fuzz-seed} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +python -m research.fuzz.reach_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data \ + --start-seed 1000 + \end{minted} +\end{listing} \begin{longtable}{|p{4.2cm}|p{9.3cm}|} \caption{Параметры командной строки программы.}\label{tbl:practice-cli}\\ @@ -411,61 +1091,141 @@ \subsubsection{Доступные параметры командной стро \hline \end{longtable} -\section{ТЕСТИРОВАНИЕ} +\section{Тестирование} -Модульные тесты написаны с использованием GoogleTest. Они проверяют парсер, -вычисление выражений, исполнение операторов, сериализацию планов, свойства -сортировки, Memo и оптимизатор. Отдельные тесты проверяют интерпретируемое и -JIT-исполнение. +Тестирование разработанной модельной СУБД выполнялось на нескольких уровнях. Для +проверки отдельных компонентов использовались модульные тесты. Корректность +выполнения запросов и полнота пространства поиска оптимизатора дополнительно +проверялись с помощью фаззинга. Для оценки производительности и калибровки +стоимостной модели были реализованы бенчмарки. Вспомогательные инструменты на +языке Python проверяются с помощью библиотеки \verb|pytest|. -Для проверки корректности C++-части проекта следует выполнить: +\subsection{Модульные тесты} -\begin{Verbatim}[fontsize=\small] -ctest --test-dir build --output-on-failure -\end{Verbatim} +Модульные тесты реализованы с использованием библиотеки GoogleTest. Они +проверяют синтаксический анализ SQL-запросов, исполнение физических операторов, +индексное сканирование, вычисление выражений, сериализацию физических планов, +структуру Memo, правила оптимизации и обработку свойств сортировки. -В результате запуска успешно выполняются 126 тестов. Для проверки конвертера -запросов Star Schema Benchmark используется команда: +Отдельные тесты проверяют выбор физического плана. Например, при различных +оценках кардинальности оптимизатор должен выбирать подходящий порядок соединения +таблиц. Также проверяется достижимость физических планов при полном переборе +пространства поиска. -\begin{Verbatim}[fontsize=\small] -pytest -q benchmarks/datasets/ssb -\end{Verbatim} +Пример теста синтаксического анализатора приведен в +листинге~\ref{lst:googletest}. + +\begin{listing}[H] + \caption{Пример модульного теста.} + \label{lst:googletest} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{cpp} +TEST(ParserTest, SelectSingleColumnFromSingleTable) { + std::stringstream s{"SELECT users.id FROM users;"}; -Набор содержит 17 тестов, которые также выполняются успешно. В каталоге -\texttt{benchmarks} находятся тесты производительности на основе Google -Benchmark. Они предназначены для измерения характеристик отдельных физических -операторов. + Operator got = GetAST(s).value().op; -Вспомогательные Python-скрипты из каталога \texttt{research} генерируют -запросы, сравнивают результаты с Microsoft SQL Server и проверяют достижимость -внешних физических планов. Для последней задачи программа поддерживает режим -\texttt{--check-reachable}, запускающий полный перебор пространства планов без -отсечения. + ASSERT_THAT(got, VariantWith( + Projection{ + std::vector{{Attribute{"users", "id"}}}, + std::make_shared(Table{"users"}) + })); +} + \end{minted} +\end{listing} + +\subsection{Python-тесты} + +Для проверки вспомогательных инструментов используются тесты на языке Python, +запускаемые с помощью библиотеки \verb|pytest|. Они разделены на две группы. + +Первая группа проверяет преобразование физических планов Microsoft SQL Server из +формата ShowPlanXML во внутренний текстовый формат проекта. Рассматриваются +последовательное и индексное сканирование, фильтрация, сортировка, агрегация и +соединения. Часть тестов использует заранее подготовленные XML-фрагменты, часть +может быть запущена с подключением к экземпляру Microsoft SQL Server. + +Вторая группа относится к Star Schema Benchmark. Она проверяет преобразование +исходных таблиц SSB в CSV-формат модельной СУБД, обработку некорректных входных +данных и успешное выполнение стандартных аналитических запросов. + +\subsection{Фаззинг} + +Для проверки системы на большом количестве входных данных реализован генератор +случайных SQL-запросов. Он строит запросы из поддерживаемого подмножества языка: +проекции, фильтры, соединения, группировки, агрегатные функции, сортировки, +строковые выражения, \verb|IN| и \verb|BETWEEN|. Использование фиксированного +начального значения генератора позволяет воспроизводить найденные ошибки. + +% TODO: заменить на макросы \sqkkw + +Дифференциальный фаззер выполняет каждый сгенерированный запрос в модельной СУБД +и в Microsoft SQL Server. Результаты сравниваются как мультимножества строк. +Для запросов с \verb|ORDER BY| дополнительно проверяется корректность порядка +результатов. При обнаружении расхождения выводятся начальное значение +генератора, текст запроса и результаты обеих систем. + +Отдельный фаззер используется для исследования полноты набора правил +оптимизации. Для случайного запроса из Microsoft SQL Server извлекается +физический план, после чего план преобразуется во внутренний формат проекта. +Затем модельный оптимизатор выполняет полный перебор пространства поиска и +проверяет, достижим ли полученный план с помощью реализованных правил. Такой +подход позволяет находить отсутствующие преобразования и физические операторы. + +\subsection{Бенчмарки} + +Тесты производительности реализованы с помощью библиотеки Google Benchmark. +Для запросов предусмотрены два режима построения физического плана: +\verb|Naive| и \verb|Optimized|. В первом случае физический план строится +непосредственно по логическому дереву без применения оптимизатора. Во втором +случае используется стоимостная оптимизация. Сравнение этих режимов позволяет +оценить влияние выбранного физического плана на время выполнения запроса. + +Бенчмарки выполняются как для небольших синтетических тестовых запросов, так и +для набора аналитических запросов Star Schema Benchmark. Дополнительно +поддерживается сравнение интерпретируемого и JIT-компилируемого способов +вычисления выражений. + +\subsection{Калибровка стоимостной модели} + +Для калибровки коэффициентов в стоимостных формулах реализованы отдельные +бенчмарки физических операторов. Измеряется время выполнения последовательного +сканирования, фильтрации, проекции, сортировки, агрегации, хеш-соединения, +соединения вложенными циклами и декартова произведения. + +При выполнении этих бенчмарков данные хранятся в оперативной памяти. Это +позволяет уменьшить влияние файловой системы и измерять преимущественно +стоимость самого физического оператора. Для каждого оператора выполняются замеры +на таблицах различного размера. + +Дополнительно формируются группы запусков с приблизительно одинаковой расчетной +стоимостью. Для этого размер входных отношений выбирается на основе стоимостной +формулы оператора. Сопоставление расчетной стоимости с фактическим временем +выполнения позволяет сравнить операторы между собой и скорректировать +коэффициенты модели. Благодаря этому оптимизатор принимает решения на основе +оценок, соответствующих характеристикам реализованного исполнителя. \anonsection{ЗАКЛЮЧЕНИЕ} -В ходе практики разработан программный прототип SQL-компилятора и модельной -системы исполнения запросов. Реализован сквозной процесс от разбора SQL-текста -до получения результирующего отношения. Программа работает с CSV-файлами, -поддерживает основные операторы реляционной алгебры и формирует физический план -на основе стоимостной модели. - -Ключевой частью проекта является расширяемый оптимизатор, использующий -структуру Memo и правила преобразования. Реализован поиск планов с учетом -физических свойств, нижних оценок стоимости и метода ветвей и границ. -Поддержка обеспечивающего оператора сортировки позволяет корректно обрабатывать -требования \ORDERBY{}. - -Исполнитель построен на корутинах C++ и каналах Boost.Asio. Потоковая передача -порций кортежей сочетается с материализацией для блокирующих операторов. -Для ускорения вычисления выражений добавлена JIT-компиляция с использованием -LLVM и кэширование скомпилированных функций. - -Корректность основных компонентов проверяется модульными тестами. Дополнительно -подготовлены бенчмарки физических операторов и инструменты дифференциального -сравнения с Microsoft SQL Server. Эти средства позволяют использовать проект -как основу для дальнейшего исследования правил оптимизации и уточнения -стоимостной модели. +В ходе практики разработана модельная СУБД и оптимизатор для нее. Программа +работает с CSV-файлами, поддерживает основные операторы реляционной алгебры и +формирует оптимальный физический план на основе стоимостной модели. + +Ключевой частью проекта является расширяемый оптимизатор, использующий структуру +Memo и правила преобразования. Реализован поиск планов с учетом физических +свойств, нижних оценок стоимости и метода ветвей и границ. + +Корректность основных компонентов проверена модульными тестами. Дополнительно +подготовлены бенчмарки физических операторов, оценен прирост производительности +относительно наивного плана и реализованы инструменты дифференциального +сравнения с промышленной СУБД Microsoft SQL Server. + +Цель курсовой работы была достигнута. Получена стабильная и расширяемая система, +демонстрирующая возможности оптимизатора. + +В заключение, несмотря на достигнутые положительные результаты, существует +потенциал для дальнейшего улучшения реализации оптимихатора. Это включает в себя +реализацию дедупликации групп в процессе поиска, добавление новых правил +трансформации и реализации и поддержку подзапросов. \renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} {\catcode`"\active\def"{\relax} diff --git a/report/reach-fuzz.png b/report/reach-fuzz.png new file mode 100644 index 0000000000000000000000000000000000000000..530de087f076d20bce46e85233299ca391fd947e GIT binary patch literal 111748 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 z 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 literal 0 HcmV?d00001 diff --git a/report/run-example.png b/report/run-example.png new file mode 100644 index 0000000000000000000000000000000000000000..3517d1e0d4f415e291b4b12b3c05d52d075133aa GIT binary patch literal 33521 zcmb@u1z1*Vw=VozfPx?hf`kYnN|$t}gdp7^sUV?rgCf%10#brB($Y#w3sRCwcQ*)U zOqcHO+yD8`zRup);c~4P<~#Fw#xuq}?s1RlCogyZ@+IO+C=}|ll%$v<3Uyuzg*q#N zfd*UN8;+#H$9WqODP;`!am6t5g}<-cimTfyS((^6=vy139$Q*j7&F)yS{oZ%+B~tc zT{~AN06X1Ab`rHV*0(javb?EmYGI6GWoG4IV1|Dz%B(CrY#co7EH`D9WD4A0h@((9 zQBq>U%8m)kV@|FQ)K1aYyE}~ZZX4hfM#^hZ3j3CcQ7QIkCk|(q3A{Zi2@x0=&@4%> zukarmz!#Mlk%UR>}RA@6n}m{ z`-nPBvaLf|S^3pWd(16L%Cqg!40JvpXnnTkx~FmqYU|4<+%Y*h%l)x^{+#YXW`}Ti zNy$Ad;(HkPgGoOp3wz1K;W0C-5si&v2?B1!Z{NNhs&(Ua-kw+Jp}_s;C(KV$TI(#A zpdk5~GiSJLX0ZnHbpn1i_{2OmkE-`V$64PUvAV^_NBa5mXUCP&L0TTFKX=IbLJ?gm z<6%-TQ{6Eh38!V_2mOXNwtVT^+}zj6c-<@z(UMn=TwQrI{6eC=0;Q^W(VNqkqRbN}_o)YR|&!=!BU zcxL^x?-XfPC+Z3$+q=4&OH99g%~ZJc#fWuiWF*aHZ@0fpyxo`l2vQ>EQfXjGK4rGY%@g_dA4Q3He2-ZpLu3JNaQeP-2M z^%qfeY6i#q8?hV~#3G`i3TYCT>9s$~ryp}z3_t2g701BBLT2*Wk56Z&XJ+(g+Mk~yh=;i(Xfb; zB_k%XdQwEusi>)G-7j6b^kZhmTdUkMD{><3K2G{XJo{5LPEO8OK0ZqXUKu>G@$t9V z*p$lK{$3~@Mz^u8?Gh?9BEqmQ@iGa=gN-McD46_7SO5*YYt`q_(b2_gmzT{^o<2V4 zW__6{+cxVzgz@q5Gb1gYKF#5f75I_%6l)Rx+BHf+LA@Sg3dvmr3UveHb_*PD|2YQtp?1eaeAEEFu;sd0OSE&O3{=3)ik)o4F<`wXv~*@`Mcw zH6DL#H9MgXJ6v5$D@~)=gv;Zky2k;A`&q|Zev%M!!RCQHErlFahN%0-(;){RtEw6r z8bnRCG&PAYVPeYO@Z#CreKJy(Cwz40pR=X5-Jiny1m=Np`EviEWw_naz~`o>3-0dj zU)tNh#aivJ|GY~}TmSkp$p?>9cPugkjm~^VSLZ>Ic3eCT>y6%lRtnciI8yQiZ98H{> z5kye1@G*hEsB&0qc3G==Z+~+2?-&i=!wxSo>%U~!9QZj~CFdDD2P-D=y(d?4b928I z8s5KWFwVoskzYRpYje2Adr+B&)(iXmhExy=OgO>7)#1mSKe@#7#Sriy_fS14sM3!^mA@b z?QNmTrR&$P&rj3|p6pNIEDsf)`*paJGavfLSA98uZ(Qmu3QmZawXV|)!TIy&AGJl& zpgnw}8I{0ecM06-{#Li(Mmtm8GtWOxeg1;#ta*B=S${p;=K8^0(k)h2Jn-^-liB#z zHa0)!=Y4JFx@f2)ZvVMILZz&b5x$2QXZ*wr+8k*UV+yCH{+|ToZclR z^4D~We%!qH$A9B;N&ek@-qVZf&mLkZ*nE4mUHVf9OH1M6$whqsRB1g%1r;0G1CHUh zZ-br>dSuPZ`})pb2#bjD;5dTbUU5CZmLeewerEXiL`kG*)A&OLcDeTgaa8e-dOi%RxPH+CD#s zK3Dkbr+A5tZNomA4xL+t7=fwWwC?fle35izU3<=cMpN=7-}$CUaB-M~jLDW`l}`q8 zHN<^H#olo$>2zCLTQfVXYNLb(^L2t$Esd`d5O_;PQ0qf1ARv?W&Nf?-@1MMVw&Y_( zV^0The}@IWAl|KI+aELJJ-gfH$D}TrE4v-_+JRLkm?s3axJy%AKR!j&ec0-`?dr65 z#aZX@#$&}*BGQJQ#`t+xdy4Ve?Q?iry_Xpavgz=}G32T*qUJTyR4SsMF4umc?`R5l zx&L*mzI>gJA3d>)@zbj%k}JFSntv1ptvt6Rh9S+{-s(y}Rk2kk$j+TgDJqEz>JV8N zenO$bJDVG-66;gPcH=Bcagz-i<*`u zCe#AIwv|3sRDAB}z{1AH1`lwDQTt@JN zb<4#(c&<87cuSB|=0sgnGgZ_F+pK%AqvOGYIMxe6#OyC0PS8X z3(b@)6%=rt_f~_h-jRDW{Uz+lU_Ke%)vJZ>znrU24woQKcth+%-Mo1d1@Y^g{PE>& zSk4<=ylcr1lK?LB^7493rhABqi&NabeF1DoL|j8Xo?V{pmpR)4_a< zix*#%mzSqL0POVP19SSXSKi(*nL-%)%h|OhB^7VOOyW5#UY3`0zTvde%|BvTI{Yy` z{fgY<7*}Yc)OmBdl{%;;c18ZiVD08|`Q|DnYi-;59?@5W(0A1rF-WC9qR~+8&-M#v zn*KzgGEFSK3U~DG8_gP$N@27tM2^hsd=p*!wXbINB0|ce;rl4|4eXsD0{1Ap`BpoW z=fl$GXB_1WgVsUc3Gd@IY&bNFO5RpHUSGUYJv)k(b)d1oKU?rI+@5^m{spycVLU=i zm*a&kJ=CXQAHt2M#B+b=+{|K^nUmn#$+(}Zg6}nZyJvJ$6vQKaLbj@u*!&e}YIJuV z*ly*_Gt)7!6;BE(y*ZJ5?c-wzSapBR<20b4?nE<8z zay_Tye=SB6e+Jg z7DS(>T#aIUrmL=ty+Q0LIFP|NrlrDrx zr#sFiI?(c9)%4|RTon)y_~?3ucmU2zsg#Puv$QCCe(ZU69)wyeF>^c$Ljf&vC6 zrs$(bH$5kX@o;c(u)~QIGzQsv&8M1!z^xPUIXH^kQy-d){#t6RYa*D%e>@(JqyXm1vwAyMa)LmO@_@RHP>+vM1>uxT4iFM?-`)rjR#Q#Y`J#PZdmn9tTvwUI z=7?p)QgV|7bB$CiWNYFR zn-L>Vl8!G<1LvffX0Gte+2I}WRslxSwJAF37Hs+B{R=2%m(~0zGn1welZzPX?%%u_ zf9UuD`w(Av=bEKOFuKlywWY31h*H9y zhPRV%t6cr^hzqWxK22qU*1N$I<50cgSBi<~eH+c;*Syw~Bwjd2VWPf&{|*_`8-uPh zE-o&%YvVdAm(Y=IJa)8zU{P#rY+O7%sgJwg(v}akU!-96IC1UEQbM1don2pF7kc*W zSscrkIez8=QZ!XnRq0cK?y)g4p$#(P?xVrFlk|OwtfDWS4DNgn#?n~HUDt&xMsF() z7cVWoy(%Xu`RUcgt3MVOFU37T)6&wiT^>?+J}4qpNg5%vVR+*d?DGub0ffQQ5)uBJvznY(a;K@>{5qf9(hp9_q>j_G4QQ_sNc% zAlw8b;PN@Dd5RNP=kW>{=i)Os*aoV}2&7`Bes(4D67ksH1uvH8$TYXM76P!HW`>U2 zrytk>6uzMUJJbAo7VYfDW2mt%PK$!2L)Lk@@X^$>)gCL48|U5$oxP|{zZ|L%8?dzS zJoW~z51)dsKq=oD{O-#XN%wE2-^3J8#o%DYRF`2uq2!2X2`iEkkC!KU(b0M@Su<}m zQ}=!N;FH*a7h?16!;h{reTBBlqY5|G#zwEjc{@qceHl<64|OJces6)AQ84IpxQkC= zzYX86K&`)T$Nf-|mj|nBw6kWdbhMvhmzJI{edi-8W0jf4pP6!96n$dzf zCLzf$56Az`c0iY0<9LhOy2s^T8`Th5CX%#UzP+U1&R$i2x}D{vtT$G( zIJfaVzIb$2TsJq4mLA#kzqJ0j)XulV6$|x&tysif|3+8F=;wnz7xgh`s%kQlY>S58 zwy19zOtusg-3_EOt$sIVi8(aF7=J~FC;9nta!}O#NaB>4xKA$5>w|{Yl#Ho!C>t}S z#>mHi!!D2X`JJtc&ALYy$g%f(3HZe zQf{pWo;|BfpzV$d?ch*L!Efvmm zP_cegpXWRk9b8=fQ1jR?^7uhuU9E7K?np0gDFc~|lkvif^YEq;|T1dAls6Z zlKOnOv-A^;0vMU5Vp-%$HP!aU3ZoS(*T?T9#T1A-Uck)0Eyza3|UbT zk+TS**T?<%v5{CTk5Y3%o z9SVzxh-6*$a6kRE2Y`Nm``g2?=;+q~>mJR2P03Wvd(&EgQ^`E7X|QbnHQf^P8og&h z0TYM$kmsvc=R4v#AI|WesZpPq}4{T`HSI3w~)4gjr)FaJl{v##rr|d1uOSk?fz+uhnU#xt-!of9*IGZ zygs)tcd+Q54u9~e$Ws4qcAkfuU06;*K;m?V&C-bP6Bx4!niRIfJ`N*)P&4}AfGPdM zOBZK3+|Yj|HC56G;4e*zpim7uylFu-Ih1Q*jn78g95Ld={AU<^QX-VDz9TT2nu@QZ zTs95tZ+G9 zdCfOSafHgiYQ5Dn9A4%Zquidk{HPvfJ575H5A%uHMhrtGfY=>$mq0TL$$!f)Hnuhf`mPTOpV>?KgeDl7dbo8%k@La%l=5%a4KRI^V-`^+VTVO(!JROu< zaFA`0v$ifWXiDGSwnfgow>HsI?X(5UTUYl6EbkAF8wRM;j{B+kf)7$?$sYqz-3TtP zr_5r6^-f0Ltg}Qml6*t9*YvJ`k&BD#5flylCj|F@oV#Z=PCDUnS|jX5HLOi;tN*36 zacCu3W(;_4FY$nrinKCF`k#zfSM<7^)tT&{ait4cveGCjE)I))cYx_4BO?QOis)Q* zW#0aH@)@9_L=!R-_M^rh|{#IZvL|x z4-w|&tc(^`{mC7Vl()w0SotHux4VajzJ1)jM{Gx*lk!%DUE7&B$kb!4v5(qn5_qaJ zs9#TAa;jIm-)Vhep!Lk_P+ak8iobr^Cwn6NeZ1q+)v-!Lh%CfwS7>syl@?YvY2SPw zs9))5QNOWuC%Oe6CwRMHC1~h=tF#jvrp*QwlWdN)-2&&ql>7=ANqu|I%J-#}o`N#Y z=uzHWhkvcQVpoo5=t3I>Dt^2<(%DusSV?9au)-gmJ8OS&b#4Dw ztKIRC8P{@$ZQYKhz^M>~$d;lIrT} zQZF-)Yd$cv_4}+$dF$4h%&raO@<3r-HztP~h$nDildv$lwpvOaP&WV_!D2lvS+l1j zFOOnkVj8XUAouh0gG9?KCMKpgks(7lDx^5<)_vl>UFAwxM!zqMhIMyG^y}7~NsaT) zkENvmcz}2wvBY^7hOBw}`JObN-nGs*>|Rhn`A^ml^`y+r+Ds}vJ-t`2Ud<<{#Z(?Z zdUu0>j+RzLQ89e7M+!1NxCOly%>~{3ti_CiqWq=T%uhn!70O-?e7cUNIw9znuHf;= zw2%B*aego=CYngKAVOGXd$CP7&%oAa;E#ZY(3@c);XdFa!k%q& zaQw2wl!V?OVUpqyUo$)UU?!NT0$@^Z0E58IIrb$lld@9g{Wj@W{6U|8(B;Te`F{m~ zHk_?NGrjjXr+Z(;>Woa*qL{&(#o3wp3?h{L`&?_;CT+@wHymq*Zsr*EY?Hv`dY79y ze`>17<|U`;4rA`^SDTSTleJwa=i68gPMRC;5DvkqKWxsCsavoI|ZHhE%@zpb*Cnm^GPEPiZ*6LU+ zN4c=Bvz`Y_p|x7oEVm3QA9rq_KjKuWAZP_!O*W$ynJ>Mgm({FK&Q5)mo!-wYIi!LDbOMoNF z)QkfvP;LZn z!eqZQnQesuyRj>11(s|*oj7DU?9Bt{bGYHw=q%r*_GxzU?FB0Xqw?-2$K@Rgsxq+| zmTLfj9?$N-W_s`)8E4cZ@tmLg%ez(|BM#2HnYm2W$tq6>rO!V8slCXL5(>ptD`ios z7`DDw-26_Wjod#!y~XrP9{-Icm6-HC(qOY2O6QU{D2Uz2y`0871JNBL<6rYc2S3qQ zLr1N@F6KS#+iVQ<9oy&s$uoP;jYN@uE%SS&9bL9sL4NoNtKb$eRyM~cM{Ca<99mMv z1C-IEBsrm2_0eUI(f!ws8iWE=Jf~H&KLOp>8W)G<;ZhmnaV(t>DGSxZuk5c0HI8;y z5J(RtPD2Qq>eY^gpS`F6fqy6~lYjvB9GEL8YkV3RAu%-_9;~O}PH#1&O@OyP$(i_7bh}~Z%T`o=a2^=Uy3n?AbWhLDx?3lt9)Kco z-tvq=~&4+l%EwCS9@vvcJz2V3c4e-2a_ zuOrk9HW|+=&Iwng!n~3x`dha|3w81{GaZ|RAaWc7$9hF1S*OaL%YHd_d}D*_mMFjD zI;tgvyaln0+0FSkU7g_`KHJ>XL9$6t{R&4u_aS)Mrj}L5BS<`^as?uql$6xRXFtyl zms=G?4u*2uJW#PzS>yCteaO8(&4g8bd`kdp!ng03K32-;iG?1{+iukj$+mXoqsqnZ zSqGprlRI!;u`?{6L4EgjLMlsI-k)rpYp!EYGt6K?Q4)uBKqsC z{ITQ%oESCsF3g_A?_!yRZzU+GZYwI3&#-t*KADtloOw5|lFvArtAoO4`dqc7Ky?26 z+v#-umRtQefv0^7T0ZTxj&5X@y4Co4l zZSkN$Bt!MMur6)>P;^KxT$ww0H!IuP*_;FUw3*`#~P!2&jbswftobV<;&vcxtn-D zp-e)=ZiWvTLcU}~s}T}g5U>Q{;%=`UH?>`g4AyNR!LS(_8P~VA*c>ms%8(718yGIL zh*xxe@+5P-`vpnEeR8)~XqSnR+Of3PxlNVyw`)@$KXN5-+ejGqXN7xF0rf8dX}o-% zCc78)b+_-qY#tt`v~|4_PCdJ$qeaG;{{H@Lu8rsA`8j7=oLi&RAgt{eKYfY`v}4fV z1-Ja$&6em&->7wUx;Whm>Wp{9jRD$EhZOLga&^G%JzE-J2s#Swwj;QDHO;=Nb|yN# z=wz%fT3Bz&nVX}rzRKrH*a60vNZsoIZ~jfO7n52?s>va!BX~4mG}RUHEgzf(K5!P-Cw!?HB67HP!dO77 z`f))cjlHZfsRg3Z{$5b$hiHwP<;->aBl>>$5z_R7IS=D!uFcTNzSgid)o|l)bMvQr z7=ZJ&S2gM4GgH5yjk$Fw^E|+sI8PFHp$Kz};^xf=$&HlwO{~q~=o}fn5(jf%2@Xcz zHtELdFK+vXt7{1Ak4cMf>;1Ymu-RCKPIx6gB9KB&^|Pvp-*P>lxL&3fj|NHQww8R* zz&^|D`QA%K2;IyTH!^AJer=e$lH!uz8~Yc*{lqD6DlRK-6(gnMXUxT~W70^jl@n!d zu)mq_wW=hoJ4A3`lA-8_?Q!xibhPrL!W@}hf@%Ggq&T;u`b};xaUiFSAEA7ISMNEY zlt#|e>s~&hZXK>O4D=NaVuh7Ku2PfO{lr@OF0E9=@U_R*9Y_vh zN|%pwXaYaIRmC#l`o#Jx&wLVKGnJ%T_Gh6gd8Ky{nw%Y#RCHa17??9L7QLm)(;j% zVu+-NKR&+&N~34T`_BOyWYRy5kBjpINI>h}-PTqQDzOjN#v7%Xz+fX7z;p6I1oR}{ z6*hB|p#FF=QOgf z1G&QP?zPP}N&+bTz%yMjD_p$x%S1qOr57deWYI2-(#I7Tw?`AtCDG8_x^>Q~_JA4+ z=3#H%_=6_rVq9F@{{B=5ffFoUy9$9wBTLI*;Q7o)KjN~R^$Dd(1OdaJ?IsHX zV;os|x>HDz+L@(cAT)F-eVadoF(>lq?p#)??xH)A?0%`DSxun)<=Vzi@#>0qsw5VM z76o$rc?@AY#Xga)IfJCmE=h|)^Fr}CnEJAC2mnd?0j zd!VYAWs!Q>scMI-?p>cdo``SBv3cQqm+(*WO0g1tb}d_;Vxhpg-GGm&8J54-I0gkA z6u$psnCGXRbN;;j>eIsA6Pi*t`d3$^oUR+VPrD1fxV`XDxqk|B6Zb}A0t%L{u^8Ope zzGJ@!Vz5C*1Y^c#%X0QA%VI%k{nj>V&&ufFWJ~N+>Ibp-1!unbUK43MUjF;P@A>0l z1lRh0wzP&vdK2w#oJMGln;|B}toZ6xWYAA5DpXc>A;=d}9zN`u?W6BuGOyU@ol23L z$%#lzWH9N7r6A@ozxz%x>qB87Zf$KXl5x;F6&DpXM$#yWfuhMj~DxOEN zxa^vHjmTh7C@Lv6eF?keotBpNp`-*Kl%|ubV^wBH`@kiodYqorH#La^a@038yv1X; zNX20_o~xM8*z)d*2A75uo1UI0_#@a z-k#HEk0g;m!1UElbumAtatHH8=hPX^dXvA40uRH@4O4S z-sjvA7kOZ=Ka<^2v*n`RlNr5EA9Q$bwXC$TX3U3xEV#9^u9%#cT=(T~J(u@lQ8DTn zD9i*Z3$G(-?BaknYq;;c_y@=gI+6s*pFe+2P;^Po%#0T5h~Ux9JL1^hkM3Drg6cri zWK#g{)vI2IJ1T0AT{VcA^O@GxR%si7P<^=st{0&Ag#t=Js%Vz{-%BVQeY}i&ot(TJG~mw9 z@d*g@K@ErG)KI9R;~`Cr!G^Dte*R1Ohcf-H@gMp?*MHNFqyL9&5cMqdui6~r6Q+RV zW&@7kBjCCS$RwibIdb@h2>%fb&MbM8QTh4%*T0jBxI#vz)03in-MqNX%T4(A_sS>I zWK;(b`fr9whQ4{Dsk=eM@LD#W;|vNEWvcotM8%{3NXpVc4kQtjLScqhDV zF`(^=l~dE#Y!y1&h2Ewg*0iGWzom-`GrRTUQbnfUs3F3pIc?2?`cUCNDU?#Ab~jQ> zHB_2w|53=(dN57jY;6i4L<(70HqAYJbJy8&-(Lvx0nhFV~Q*ra+Z2!Nv&C)^3 zgHjp-uwcY`9S!G(c25dXkTPu($c7DzHuV}ga_ z&LUO6;k5{D)Fq&Bpo(=Tm|XD0wPzB14x*t>)va+xz9bH3zTH*2qzbpdU_x@8rsr= zl$Oexni^=PxB_AwQ%R*c$JFX;Dh566GI5#@B^shz~nBZq@*D7YF&#A3-Y7={YNmX>LpKbL4oz+%sI51 zbaXO3)a@}$gE`uwi>kzK!8>pYM9q%iwXlSQK#&7XmJaGRK;`M@!a`QrFNu&FK|p0A z(mKbbyz(DFg|KAw9;Rj|#i!HUy(=Uyf5me2;|ttd5(vHExc=h|WPh)!tNGHaGk7L! zX<~jaT3z|{pyZAOZY9(ehzn-rNj!Gas4LL#pep@PN(vXQdJQ;G|B^3XB+m#zHAs@i zN>}$SWTTNF&kfRL;j@CuaD7*ooRNu1wmF*$7A%3^h6O%VdI3aY^{uVHqfLSJZ?-ka zAskq243q(Q73l@Qj`hRCn$>&bF2wB&d7ZWkh7_;9baoOzx_Axb%Xn~4i2a}S+=nvy z4kH-ag7qCKso@(-05sL4L;U^mkYH;yQA=BJ<|fEZntaIJGs`UcY4Vu1{mNMr5Z{>3;p^valxOT1Ubrf_}{O%60*xKBzhpHbz-5@Au zNk(l>yBV9#ArXq6o*pnWn(h48Gcco# zNggMDu!<2Kk8@0p)mWg^jkPTY$9v{OS9B_EKSNQmueR&^_v?V0yp%O}Nn4F~yahH? zqiu@m!@|N)o6Fg`0YUn+LIr~0BS*@KnYel^0YrYeZMX* zkHLO*)DQYM(xCVcuKqqit)2osL0B-C@%$P?7@39{rxBGLT4k#2rDzq=S(!FSKjA`^ry!yy5`Jp#s0Qa+GvH^mlJ>a zUQ2!bl|hW98M5)T(F?z(BOY$&KXm$<(TQ3)Qdi5MEiYo`zgN&vw1>yBj3zIcNeXJ*Ym7jp@vgEP(?72}E{v^M6SYE|9guXd!tbLJ#@laJ(Vn zeO=?SM@d6-k&sba2)O5{GKgfdbDP@~YXML(in5?n%Lhl@010VSZ>cGp+u=S?im|*7 zjLghqZ#|P&fvzqq)bW2zT{;Y3fKsNzEB`fc-#xzSN-QL2t_h^DQ(%Lt2 zg4%2?7x4-z1>_z+R9oa!O0G`$c;CZ4h|{3Ai1i?&|WC zIIN8Wro9Pr5ubk%8J{8ABVl!WZGv2ABX4X>M+o0T{3lNIQ|Pi~p1}3j*(;08I`^Sx+00&2w0eW_}Tb=zH(! z02bVwLSF?yQfas6^Is{jNI0WF1I7jTWC z9_kkaGN^Kpe!@D(z`;>-mG4j2)>#@Tx6(txujA25`M;4Jpp6-*Vv=s=bzFb+Z$u14 zJw#+rlpGczNrmWqA+Bc>y4fvYx=rQH+bEG-xNu>8dt1!Wk?S=Mc`#h`mVm$wgkuN4 z9Cg^KJQrU(gNGoj9?W;SGgeT(Rd833PxJ*L-OiNF;%Fbn6L6G2baZLa z{DR3n>q*3F=p@6M4IB7K#BPtBHmCg*HGt<$g^*p}+$;f|S^`pd+B zt26YkrOGcRQmHh7bh8k&7LARK$v{96kjX`T0Hc{J1b9Nkw#xObEz?RIXgP;>qu_`>C_@GHcv&deDo1zMdCv7RFf&W`!}@azOsr8Y77z=O_Dc}SWgDq-)=7Y9kNQC@3To`Y4Gawrr^4XD1iWus zDlRT&u^7I0&#VuFH4Y2djrs8!UP!A_IJn>h9;ZhWDCFWdnVGL3g=4P^m5s@Ca2{wT zgMU~z_|y$+fq~y%86kv&kvbz_Hc;xwFu3$*tH9r{Lqc$%{|L)pc--n=dQ}E!PlVpR za}Ytzwxp@>=%G~;1+5J4B-xrtY5zQmN|3NaI0gms{E!m`k_+Bo&?*yyLYe*Acn|>2 zAAol-5J@2Tl>f815rNE*!T;|_Qw{47=^rR6Dq=S6r3!Kabs>P~S5T37)aZ+gG=_i# z$rCJ*f{E$j)DlR8UMD1w0`qgD+-gDs`Y^VGg)N~T0*ki^lDE*%P*2FcQo#Fuv|k~9 z1MQfo_1)cOz}tX5{#~RughH7CbewhnJJ0vfE{BiSxDW#0(gbB+W|$E1L!{OLuJ$Kj z8vl~e&?}?@u0()on<1DIEL^32AOxQB!?T|vrCwAJbVNa|g-b@3w|}L;3hNL=^fys= zqy9>y3|B`hV%eWYQ~o+W*n%dM9W#DQG7>@S=Tu^Z5Q*yJA6`jX*E z)GMrSM>FbNLOmJ!Kp_!Cd;#^*W)2(4SRlWAxJ~Pq- zqGP6RO{Fw9w6>bHL&qnl^WQZo)~!?_-Y`5&j0%m8&Is4gAw~gBXb8|_sN9MiNwD0G z?2$gm;>X>p(_!6rCRbOnJv=DJqqjtg8FXbH+C=lEU?CO0nu~%)0^guoVIgvJrBv$q>wJLQ@GlBl&Xfg%q7l4>I9MV=RimUkW&ZJ`+o|Cg3UV@^ z{`9)zsu-X#{44OK{$I7g{#%6m^Xu=<*#E}nHX^EvPz?s<7{YzU#;WVG{9{76xKX^w z3kp>8>Pf7sUjzmQZU+8+6+@;-Ch%qRX(8)BeaI&v2Wx=gXy^UYlT4Xvjl479?p+LU zfemv>9@trt-=hCKW=}x(1D(lut6Gim=l}8KcgLy!qsbRL{O{&7|271u|0kP;pjVoJ z?EIexR1lv^r20E-|Ie@W|9``ttY}gq@LB?3&>>P&QB!AkBHggp*-VoE>4t??nolq~ zeo(21IR6(08C}AocqL!155XHL&y=o z-uk2Zr@C`z3g{BR)ATX^e~0zD$jZ%DB#r^ag~XsMB9C^Lznh^;fpQ=Sd?^`HX{-0f zBv|O_>3PzVdSTpkOBPg3?c1gQ@RXF4tf9j#7B64E{9rX9;CgZ}7b?vz7-n;@X^i>= zbVFn>luUgAU;Su{qLaXi`r{YB*g~Uq?ZIrkW)0+IB&Z)hek2!l_VnNa6^Zsr;?G1V zy9bt4%0hnVezd{~exX}k{EyGajUq|A9G(DpWnE#SUxws?pvj>vfoD z)Aw%P2@68Ume$Pj%s5M{C3`WjO|kd9-I{HVpkBwK>^&+zbJ(Gkf|q8*Q&mg_^Kx8IVtXu?A(vRW!3AG_+RfK> z2`9DwLUEndNYZ`Xi`)n%>pIu7N3-2YNm`Z_x4lIu2z4FxMQ6^#?sv1Cqo`mD&|X%I z71QCPc7r-`_e>QbLrR1YIa}1uXhVGwxt$b+yVnAmnz4~P_&PK?hP<%mrZn;#o>c$S z53Re%3sc@AHDmd^MnCJl<8_{B%_2{4Zna1+1zL{=KwbIG>fx+hY(5RJ0Q$ZtfE7bZ}Awmfo~=|iT+^DexD2Zaj%Z+}pE8x*RWFJD294(g1fLOvD3k^fWuPd~nk zNU^#dZUfw9fN24tey&{?2nDTS(Yyzq&lL3Oh?oWf#ADEO-M)wg7n8q4U`Gb6ry^b4 za|tD|0=w=I1~fsMP9Gw8;wZDMBp#w4l@()XOEup156k6qP16q)cptjQs`v#~48V9KLP7en;uLH<+ zIow`|fR=s^b4@tN6EADWIv$yt{s?Hmo>+$N{L&j*)sD}3Z0FZMM<6GTRFGP=WCI4R zdc7W#dp6ckx{wbx3wb?V4>y9^>ve8xqe_Rhw>Dke?^9yX;j6oTJZqL)!T|9oL9pEp zvWCq*rHAQ|DNy|LeHy>K+@_TZ!2t)J3~C_8dNrr!cl=I?1-9?F9@HG zQqygP z|F#%QyEJN??En(R05y;fd{$O&ZU<|63dQi_g@+zy>!0926s&jfCVM!+#O$<#Iu1IFwfmFs zP=O?zjL=mj2`mdo9K1lN+ID4_{e6P9wEJ#xk_9Q^>7eUB@#;f9mhv%st=0)-JcQi( zovB-){KIP878yv!%OU%w&rMtoDwp|nCx?LmTO&50x{fR#C+Nu};eb9zl#rit9|srk z+gcACPZ92YW;+gHP{;%yZOX!mVPv zSEd*|9$bUUs%A%3lmT%;@`{&L!=WdIPw#k=(B`K%;Vg7nyNyFkbDbiYc#=7TECK24 z&(h(0i*ONOy50hVWCR#D-4U@aPc#)U8UR;a6?1RnL3Y#6H2}<{vYOgssBZ2!{obc2 zQ%$M}!U*Kx0#G0tHmc6frUjzVV;9UETJ(x^&mfm+OVM>G=iVJMEC$8XTnAfs2Xq+} z!@`(>rP;YsKJgaB0PHw?>q7q)L*OdyX(0k{pqYpZ2`27`-;y#QdU5~oJZJrDXK?Pz ztq}9f1UNnFw#vUp5@~A(6667JNNyuHDHQqJi%R{sKg#68p|y!0gjO;s@?QXslz&vW zv$KQ82*JPP{opNM#b*&DvP5bo-fo2kV#FYoRa7i?3^+%hiR!u^%%ELFY+7CpLI_j{ z+B6;~Mqx5lGf$lCmY18QKoFkom0{|%tXdgJ{xePk;o#^f;#iHPn}f;Xsb$M7N5bI^ z1*|gB^sRffdo^g6F_1H26O>+t6wo&QniI5#Y$csSoBUP>+c)3={$BI4wL?7Mx%AXj zN^qJMzB6zfsx5!~cB@S{e~gw@4Ljsna!~aop}Y#;2z~FbqPouSY+DI08nJTUioYC& zc)VnVz8os2NxwUrKfG{EAbZrPv^52`G6vekZcANb(yiV|LT30kf&lY~raD-4sEdc> zHv{U_2W@J#;Z)qew!dw8Gr6XmT>Nbe$pcj*=6T>Efms%a59B{uE=Del!~saQ`sqlK z+o^!-EmeItoLs<{as-< zl(E9n499Rr2&=byep8ysX3+>VvU}dwiVaw%fdMD};~LWwqk5`*s@n%xt_>zJny} z?x~mqjsO&ggU%X=Jx6=t2yoRMjjb&f{|>3&BbNu*A-(Pf1&U1R?@eCWYEqlfDL4z# zkS<8?6sCqCKmP`$h(r3{{)+=JX?Aw@W~Y@q8#wea>M4(tt)wjId1Um!%r>DYfyr(pfPvv!I){WTJha={cE(tRJZfL~Ao5B_l^ z|1aSfysC>8bY|Pj-`NNV2#}!o>BawQ?K_~N%C>D$+O}I;Y;PM{KoBWViA@$kFrk)2 z36jAC2t^Q(99s-+AXwy#3L;r@ra&b_fn+G4KnhB7C~^`0+J)ZR?~eDzd+-167(KL4 zov_aiYt1>=+Uqcjfu{bSI>lsKEzBI_jk!>o59iv^Cr2E0JlBResSkDw)qo0azcyP< zg^>}$-i79RKfeCo`^6=gtt0P0vecsvfZnnhT83Bz;uWbzrKg2UX3me2cc5N4qXjMw zEEMRwr(!qPsP^3^q3tUavltg%tldOrwRO>51%)ZX=7xY#Nx`-^j9yd$cnyMV{#Y$& zFG_gu3ZhtbL&In=e{aDuArHr_fcp4E>5qlQjR=}T95E48$5EINV2*CdGiLvVgmYK% zV7sIsJFNl8zSzwV4?)P0OpNt(<#3zG{629lN_$Q9C!r0I#e*;%SCt7>-QpnuVL_L%W-Q0F@E~|gVJ&)VO+m;-m>5=%&Ub@l#Fo$T zjYc6H(GV>og=R9MQIXa~Cm}C@=md-AaUF77YU(imcRe~k1$!|N<|~9&A~=HPDjKQ- z+6FHHMM-F?z{%ctzW)H=zI#BK|IZ!}#~v%|Vh62?mVd%-ccu0LvMJ*6&x%--!v5f* zM%k-CVTx@@uj)8r)>*c$J^m0xhNO9@K?=K-H>M`JePN++&n6?%(Z;3}h286pkrQ&e( zY^}I6R@C;(r-?H9)M4?vY8Qm}z+pAfJ$m>Om_}$M(S6RpY7W@4qnbV;7|5Gc!bjQF zo!nC>z_^Ko4pv>@AaV?pI3Jd}7`LfzwR*-PPyo8FDm!}-_NEO9Y)$7RfL=0F1>B91 zQcVyMX0yP;J-oBb1Mqh$pB+Gy8323;=y;Ofh(P;M9tNQRSOrBBVMe0PKT&)>Q%6A3 z5y1lQs*bpPCImT_->Wmo!$pP{4ESIF74OGrg!JYbtrbQEwswg_K%ns(RJWrtp8Om= zxy&g}M_?p7cHNT0Yi%~_ehXH5rkt4ugoPTSZ(R#f3sI;!2&*DL6BK4J*cW~Acm7-E zw-^VfG9_pZ*+oLI-3;{CmDNr{S*?K?Dh>J2@R;#%_s84l<<(WPX$1uf|mvG0rpnF3MT>vy`|-_(77<6MmE*vTDeG0wcq>Bb{$d|1xiImTrq9C1-#zs7}j3@_Afs)z>- zQU*4*->@zkeG4h5IR@cyAs{ZIufFiVQM+KVZ;-3Vb{wJKKvg+us6|l&iDVil_Oo&$ z_g*uh|D6a#8&ye^R z1p;D_3@1F|tnU72mA7WseT?Znop#{5hYN=M>bah<&#t) zTodAsLk0mra!de)j>43a7TZDqzGB#Z+`sX#-`t^GWnT-CWR!f;-R3{9mtXdW6{Dpq@|@*2>c4>Aw3?w%5G#6 z)L0}IF;Fs98LF(r64r)=r5D;X{sZ+2HTIN7b`pSPkB$p^`qkGRzWSj8y7=$Z%gAee z0m_Q?#GsDgSG8&QJq{-U@KYt5>)!_y-nre;?As7JTioo%KdFc}oMrHDS z-GQe7TC7jY?~eeSk_hEhhKXC}BPo0CQ(+j>lGq_i=!$IyQ01#xYYJC{vuL1W#f(?v7 zL2W!hZ%KF<5u!z+mR;}J?>C<_*~0({76+y|p#(WGkus4<*ahyLxq!#@UwzBvHB zMaJ4+K4r&HVE?a~@i!`MaS{tm_FrsB{L&T{L2Rh@cx)78LYGuI!)^&hRx}mkMA~%m zko+Q_7~^Vj_zh~JIENd_J|BeN+_%$S1h!faVc`I|d|4*bc z9FM-Qt|B}8DavE9o2}Xy*8c>IFw*+0Au^D)6D`dX39LM|BT#MO1V~3Upfz0$N4*_4 zkvBRe`JKiDqch_^gOxS{brZo$7cevyN-;7{*1$S+LTp)vTJjpga(*DVSi&VcnVN74M#xQ-y5f=hzA{H7?wd( zv{QdLvXWU@qL z?g}#hKoQY8{k!=uWd@Q`&2F#6;rjJe6r=_smIi#z4z{q3z+PmcvQ%GCtBOq8ziSRlNB1qnsgZ1m{P_1Cc($}x7Hm5ff7}0zW9!oc2N;GAl+8H| z1Dd>n@q@@uAO;dcl<)}Z!9pAb1r-%$@4t__#6+FiX9d-|Un1uV5CscTNGouXUMRRR z+`!OnBw+#qRYaqSUeD~q!=DkeR)GXUSx|w78yI7EP(mob`v#Q0X-Wt+Dw>@I*)R*P zV({91m)Wm{+(VBWR;Pwzz(ud|`ok>f{DuA0A5CYL3~Dbhmb-p54;CVoxEGV)Ds?k& zDPWn=aq-8jJXi>S;xRA}--)W3wR5@;l|2 z>%nD!z%7bcCbCxUbAhpzFQU*Z@o3?;;!3s}(3R+joXUU6jc@&F7Wh3E;C~d$NJ_wj z|D9{xrZ6~S5)3{2z4C2^P}~crWB`thczQe)RM%JEUHc_$%XcEds{$|$B4qVHACFS= zGeAu=$!&MT|D89~ZCUzTDOd5J+zkJ@lcNTzt;C{9e)^l+(ZY)Ui!dY*w_qePDFq2w z$gZyee;*7sI8p6H5I5?@v$|HZO88JC*OQPdQUBLI?)?}zT7J3Xpd$Y1Z^wDDD$>J2 z_$O!(?+Qeg_P*5-cngaOrl=wWuZ)P_8rm&}jdA|+6m;Th-K`t+1I+vzWvKt=?b=)l z5pB)_=1zr(I1xp{qmh4%OC6I9yn~QMo~17EmuuhL+O2H1e1vb@4J>C5mcu`oICpME z-2T@At8W*yUBjmu6XdiF9kh^~4q)Xi&}YQ2X~e2)vEE@UV=-TXTS43j&1C>c6X@3^0J5^R==JN~ zjVc^6y#Lv4XN0&p9$Ie-sLC8Dykox$RTlJ1>7f^5EwE|U0Q`kHNK4$63_szkCuOaS zNBkBf-;Y(*GLtzPAmqG+;6NzJ)BF1GjA(RmVlOeCDp!McE1i3%Nez)mpG2$t1xKP+l4I1pNo@~ooi{x>r zPGtsZX^}6MzJBILvk|>8PMFoy1F`cF#Qk$R{S>q)zcWhr@UI(_Y4+YC+GKH+Kd00 zjez$95T9N&mJD?VWe^zwE6NbShC_{ooaEpc-dQNN^@Y9@l0>7C+dT|Q1VZ9SenCP# zB&-EP-0&^X$G?%0_V#vUYLT^E8`CEAoZ1*S-aHM7?nH@BgFt|G!Dmju-OrwEFX%Oe zG1Seq&|;CM1SnTY$$Ek&Umy4j{2ccJ>?vd#p$y#^037JoDcFGFf@fIpYpu_PioU*H zVgdY)fz~&|=P6nNZcKo->jJf+?W+!(AsMO=N+-5LnX*gI(5hBr&9&~0z?ellT(>S5 zeC+G*1kpmE$lQ>2CajJ8y?0g;a1*o`QNSCVtl(0wy((;8h&|%i#f3tbz{~5R_n{V2 zETXV;5QZ?xC|#^`Dx*ak*j653s|I@%4a$>@S(NQ1xX^ep4o*glTnP_LRvdN-HGyH1 zJUk7s7}9kEV0jjNXXKZ#S$4y97%X6E-&&A2$j_BJfY zu22Hm{EFqju$LFLWQ<=DKxuC@Ke;}l=M1Koa8%pVDYfVxlrH}#dM(19NqT_0yQW8gfJ|K@*)t#X#~rt zS#^q(0hp9xA4@ktI2m-|qRb&UlW9*X5l^Yu$*BbUCbA$-CsniCW0>E#7TGtTr){Sk z5z&IpH!kpP8%e)3gF;cr$MQt97kLQ;Tsd6sY%FPydPhOvLA}vqBGV-1@Oyj{qU=FfCgQ1P$UAukRrA1)@ z7fzSaB@Y_|tKJwVZ15up;|MYW22qVr;KFNPFU!|~rbP>kUBf^Kx)!pY!kZv4>;e)x zE_HK#+Djf<12SI&B7on7As6^0fV|q{9?NA}B+u+!lSbV@N(596g|qk(+<+{{{u{#g z8$_z(!KxHOTtw|FzdbGTxV+2md0cONirGk}U+W2+m^6Aw|ol6m1%` zgSg$u%gY?Kuo*MkcI^;hSpoJ1h7bA6dk%Fy7L#C+ohgSe)7%?s0=1tJnuWyJjLeN| zmyhJu4uPy<2FgYgtSWfjqW%kT$1GrHR&F$SUb$mN2Oh<`u!xIDe0}cwyU4Af1VL;T ze6?i_jb_<$rSMx&4cVw@%&{#X+ufh)bqS0`*$*(U(lVipMH=o1Np0B@_qYd%Cr|;R zdwB(QC+87}aKe{{Bp#iARUynTy*%L43W>J8&?hVYo6G*PYcn5#Pur@?SxZF$FGGl3H3CDCHx>hUJX8Mtu3GwQ7_@D!tajMbzOppYA58zr^yICNT zx<_G0gCAsG0omx3wgF`sc_vm|93B=yHjdVoz36b9nL3+U@w zsWE~~T^mR~%uM$IJ!_Oq@IqJuaeKsXrL(OLAr1*anPI5v?En#*7>GqyR( zTkz&`yXn%F&QhTEpQ!M6_^r1!R9Ex!AEXTK5NnNBt1&O;2zmSH@o4kaTp{EiDySlN;dD*E{f;(_zgKNEKGDggi-Z|-McvtCA>3y#a zw|+5+DtXdq;L7KIW2=W3!Ap1`?&5er5Z+EwPRP=9s)Kc-VZr6*N{Ra$x*2V{m_u)9 zdCnolek!$ij$WCKV=rE8ub%r@>ep1h=+?&nk$bn$8_h~5HIpmRZPrsZBQGB$)~&TGw!Ajap3pADsgSMI7H#s~N;|CY z(zJyeKNB`T^WN^$cdT3A`NAUpqOXl2VK1rPtRvZ+ro4-EU_4o))YB@Ork$EXBqxvX zV*3rVWi!&+3K<4d%MU&O9o@gz7qE~fSJ++JLEU$pGw zsqaXyJ44$D!%<};re)<%5>^`u7f!#S3_fZySt)AQEwgjj$eCYYZyycZv&0N$ zdh2tk zV_a-k*4zjEJMVl|p^xDEjjv{(Z_T;`>_*b2n8f}XCPMB&w>XwdewCt~tsR+eu6Gv? z&#D`R`Bf1uA3Z#Nom%T;oZ30=o;TFr{R*p4H1+=WYEED7pDkX_>tmAyUMx$0rrBw6 zoMDFp+g!1;^I*eTnuT@5{s>BsYIM*ja}{OQr%92VS8U>8>rvITpTfE49 z9I%XJ*Oa8SVP^Vi7=x>!M|w;XN362n76|1Nqy?Et(=SzX`lVwnXu>Ye@X;N^+<2o5 zu>xA6y=J27TeTDM%|{RI^KecxB1rm|(%kW=bAmkj9W%~CJB2`Q2OQ|Q*72(06wuIKX@I;|TZO49j7~q$Y z#+z0gdNZ9-rSyHiN5DK@VTM=*OiNWG4*?DGy4yi5?F5&=XA|8;ie-z!J58Vg)=^F* zHr3(kY_HN<`|2ha%n(%;kLgZwA+3$X*_e4`hGER-ngR{bePJ?2%9h+P_58fl;Oo_! z&Yw=c(}!M}Orq^BoS)uHNf@TJCb>jL<&EDw+`k|uA?h`fq$t%bGa&rL$lx|H+D4^m zuklJOrdF9A6~XK@@p9qh$U`&hn%(u(1h;yX@V4nx-_T=PFa+bqbh2#G%!)7l#)L+p z;>PX#bJB5!OMBC8}0dD}SNU>It((!Y^4zpyqFyje@rvTrTZ zO?fdPd2})|H~D3LP~NZ`sfSGV@mg9>HPDXMa5@}T+`sDKXw@wz-$PF+oR}sw#Dpg3vZ288>lzwHdNB1rId9`4XWz_fA><}(_IrgQI$(3r(l*#cfV@huD^Nkh4w54QyOKytYqP!G7X7m9t&_FFb*>W&K-Yey&Gv^xs>pZ2lTaZfkYi76U2YGud<71Lv0(y5!$!UD0O zyeBCws_ey?N0VSxB(5)*xopJJZ{%1PUAUfR9C-M-aV=*^L-!rd7gj3`u(!+9Wy*7W z35%EJKQywj;#DWzC$G;R zZYZ&lU(99!-@DxNn|bT~CsA4T<;opaU&&9F2>C3HdWjZ&V_qfsmD%=en-jBcGjbg%KTLHd*fUi@h?g?O0Qc3!%OssPvvHqp?h8!GChi5#Te; zAz5vuzNM2klI+x)+AO~5QN9^ysDHm^^~S%#e4(MUP8hxeiUQRI)EMr8<>JpUE#1k-&=Dg>LK4w+r>P=QKJc)}-C2+x zpVn+^qcF9fq}~n_%M#7NFxroUMaz?lsXJ6OUz%H{^mf7k@4JyI z6n>pF8S|*U-mb^k>w3mgo}f!U7>W=wc~5%pc)^;>==jPajc_IZpv(w8cG)iZ`S{$p zSJ{-CBEB#s^v(ylM9RPsH&bwAmk2Y)D+>?8S1NnuA)dp!x^(lS8wvcQbuYDT-nvpB0s9Jj$w6M!XrPBW>FYF)3v)cTvsM=9V!62ZVrEbi@k zzqjhoNmt8;=DgP?Dt*HNnC^nTm*y(uvac&gQmfs(Bz$DNPH&dgb4d>xv!sepLpoy{ zI71t-oktuSwoMjMC&v<`H*ErGALd*N$I}jD@k5Rqo1|jez=?VpmI1QU^quT(_Q>Z) zBOh`HJb%b^F6n^U-TgBM+pa1L+&+hkX31-P?&|RFwL792RNxAnKGxSJ`vTDYe30O>bM*X^YCS$7uy) z&yQz1PyeWi8Gclf-#UEud3Gr|qgADN-bi|=V<6IA@0I)#@8$%F z4{?!X{57$e`VxMT>#_S5wm&7$Q$(E8)`S{Vg?BJTjb(oM%pG~H)Gaz__Az7E5s?t) zh^JI04ic}04u%hL-qu<_n3_!9Zg0Rh61K}$f3Z>|;cIYxT-%QI33*_!4C-W&<#wokCXE#SJbN*xv5Aqx8#f@^`X@=?$rEKR5HWaS^67tcEXT=P>=M5^wk9nV#C0 zLcE3Lsmwj}3Ew~7-3MN{E0A|vhQ!W9vr-Srd_eRs>o3KuRs3zLAyHRRb4Sy)LQ0!9 zv7k1b@cFA-w9&%k=M)kPDW`9m6 z7qUKapZ)bj*Nvs{kA2Tw4*w=nt@&3Hw(yF2^^mZ_bG5rQkM-1U-R#g@vzXW7>eQ_i zvdrh$!DJx)m#)?0o*v5;+iOe%SwZe=#6ts)w9(RgduRQidKvs-4LgV3Cfgn6Q(MJ8?`rTa zTWav>s$iE1uAKXFe?<{qX0?=fM5N`Xqd$@5J`@aAJms)Cs+~61JE7v7WV_SC!}f>X znHwt=UO$-RZY!yFV=Cu$++j%Kb==PM!%tkrs+7ga z`D|VA1u7d3XLE0}=Tq}QOor6-Cl!*&{=-?eLT0nePO;?RK>*f)lvG|;wZE8u;!keT?b6#Db?x=+ob!gDm1F) zeqa))U*D$Q=E^>94NH9BXxyX6`wPX zutsonJ=Wd%)xPqa^k2!Ojmr(|Uuwgq%R|BJ6RD#VN16hs2X$R4V!A7nfP{tZ~xVMEL_l z9FsHiz17B^S=g9g@z+TmQHvj$rqf^2_Y!`7qJObW?zemsRiASSADN$!KUD?B4(`(U zGidOwXxi_>5}tmi=_l9jZ$AG^!(!mx(|*+_J9bR%xzfp|94p;>OYM&azjHs$cTK#1 z)iKh?WuG@8X0P<9tE=G1&I#oLH!}IxjJ7xu4|IOegYAlqVsH4gi8@LmBS)qBAFiff zm%YC%m@1ofn8iuB&UYlBt+~@AXs}&F;?!sRAM@MN9~mVnBWFINTLTcNu>)AQ%ZKQVdiX^KZ$j|>+)OXBN%v9*QAK_+s^$OkgQU!PE!(Kb$L3^Ax+~_ zi-Bpa~Yvoy}#t{(AAjntQ0kWWtJ+(9LXzKnO&(x6)%@yY{rg` z9+-7LPb_ZB4!OyYpkLU+a4 zIe}C|ANXC`)RVJ*0 L%Ek2aHy->SxdjEH literal 0 HcmV?d00001 diff --git a/report/run-with-prints.png b/report/run-with-prints.png new file mode 100644 index 0000000000000000000000000000000000000000..d007a75959495185be78fc27e44a6be555d07bc5 GIT binary patch literal 49763 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 literal 0 HcmV?d00001 diff --git a/research/research.ipynb b/research/research.ipynb index 454f982..b36f0be 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -3226,7 +3226,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.7" + "version": "3.13.13" } }, "nbformat": 4, From 012be6fd01fe78aa483a2b9a7e8837deaffb56c0 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 1 Jun 2026 23:04:16 +0300 Subject: [PATCH 074/120] Fix segfault --- benchmarks/main.cpp | 19 +++++-- benchmarks/operator_cost.cpp | 29 ++++++---- .../sql/logic/executor/materialization.hpp | 2 +- src/stewkk/sql/logic/executor/executor.cpp | 44 +++++++++------ .../sql/logic/executor/materialization.cpp | 56 ++++++++++++++++--- 5 files changed, 105 insertions(+), 45 deletions(-) diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index 14d29e7..a5cfc3c 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -108,6 +108,16 @@ CardinalityEstimates LoadCardinalityFromCsvDir(const std::filesystem::path& dir) return CardinalityEstimates{std::move(counts)}; } +class ScopedClogSuppression { +public: + ScopedClogSuppression() : nullstream_("/dev/null"), previous_(std::clog.rdbuf(nullstream_.rdbuf())) {} + ~ScopedClogSuppression() { std::clog.rdbuf(previous_); } + +private: + std::ofstream nullstream_; + std::streambuf* previous_; +}; + enum class PlannerMode { kNaive, kOptimized }; template @@ -159,8 +169,7 @@ static constexpr char kMultiwayROC[]{ template void BM_SQL(benchmark::State& state) { - std::ofstream nullstream("/dev/null"); - std::clog.rdbuf(nullstream.rdbuf()); + ScopedClogSuppression suppress_clog; boost::asio::io_context ctx; boost::asio::co_spawn( ctx, @@ -205,8 +214,7 @@ REGISTER_BM_SQL(kMultiwayROC) template void BM_SQL_Multithreaded(benchmark::State& state) { - std::ofstream nullstream("/dev/null"); - std::clog.rdbuf(nullstream.rdbuf()); + ScopedClogSuppression suppress_clog; boost::asio::io_context ctx; boost::asio::co_spawn( ctx, @@ -269,8 +277,7 @@ std::filesystem::path SsbDataDir() { template void BM_SSB(benchmark::State& state, std::string query, std::filesystem::path data_dir) { - std::ofstream nullstream("/dev/null"); - std::clog.rdbuf(nullstream.rdbuf()); + ScopedClogSuppression suppress_clog; if (!std::filesystem::is_directory(data_dir)) { state.SkipWithError(("SSB data directory not found: " + data_dir.string() diff --git a/benchmarks/operator_cost.cpp b/benchmarks/operator_cost.cpp index c6426f3..9f4d8e9 100644 --- a/benchmarks/operator_cost.cpp +++ b/benchmarks/operator_cost.cpp @@ -208,17 +208,22 @@ void SetBinaryCounters(benchmark::State& state, int64_t lhs_rows, int64_t rhs_ro state.counters["output_rows"] = static_cast(output_rows); } -void SuppressClog() { - static std::ofstream nullstream("/dev/null"); - std::clog.rdbuf(nullstream.rdbuf()); -} +class ScopedClogSuppression { +public: + ScopedClogSuppression() : nullstream_("/dev/null"), previous_(std::clog.rdbuf(nullstream_.rdbuf())) {} + ~ScopedClogSuppression() { std::clog.rdbuf(previous_); } + +private: + std::ofstream nullstream_; + std::streambuf* previous_; +}; void BM_OperatorSeqScan(benchmark::State& state) { const int64_t rows = state.range(0); auto tables = MakeTables(rows); auto plan = Scan("t"); - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -236,7 +241,7 @@ void BM_OperatorFilter(benchmark::State& state) { .predicate = Binary(AttrExpr("t", "v"), BinaryOp::kLt, IntExpr(kThreshold)), }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -260,7 +265,7 @@ void BM_OperatorProjection(benchmark::State& state) { .aliases = {std::nullopt, std::nullopt}, }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -277,7 +282,7 @@ void BM_OperatorSort(benchmark::State& state) { .keys = SortOrder{{SortKey{.table = "t", .column = "id", .dir = Direction::kAsc}}}, }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -295,7 +300,7 @@ void BM_OperatorAggregation(benchmark::State& state) { .aggregates = {CountStar()}, }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -315,7 +320,7 @@ void BM_OperatorNestedLoopJoin(benchmark::State& state) { .qual = Binary(AttrExpr("t", "k"), BinaryOp::kEq, AttrExpr("u", "k")), }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -335,7 +340,7 @@ void BM_OperatorNestedLoopCrossJoin(benchmark::State& state) { .rhs = PlanPtr(Scan("u")), }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { @@ -357,7 +362,7 @@ void BM_OperatorHashJoin(benchmark::State& state) { .qual = Binary(AttrExpr("t", "k"), BinaryOp::kEq, AttrExpr("u", "k")), }}; - SuppressClog(); + ScopedClogSuppression suppress_clog; benchmark::DoNotOptimize(RunPlan(plan, tables)); for (auto _ : state) { diff --git a/include/stewkk/sql/logic/executor/materialization.hpp b/include/stewkk/sql/logic/executor/materialization.hpp index 75ed8ce..6ed9d7d 100644 --- a/include/stewkk/sql/logic/executor/materialization.hpp +++ b/include/stewkk/sql/logic/executor/materialization.hpp @@ -32,7 +32,7 @@ class DiskFileWriter { private: fs::path path_; std::ofstream f_; - std::size_t tuple_size_; + std::size_t tuple_size_ = 0; }; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 9d174a1..0669992 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -18,6 +18,14 @@ namespace stewkk::sql { +namespace { + +Value MakeBooleanValue(bool value) { + return Value{false, static_cast(value)}; +} + +} // namespace + template requires std::invocable && std::same_as, Ret> @@ -35,7 +43,7 @@ Value ApplyBooleanOperator(Value lhs, Value rhs) { if (lhs.is_null || rhs.is_null) { return Value{true}; } - return Value{false, {.bool_value = Op{}(lhs.value.bool_value, rhs.value.bool_value)}}; + return MakeBooleanValue(Op{}(lhs.value.bool_value, rhs.value.bool_value)); } struct IntPow { @@ -260,17 +268,17 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co } switch (op) { case BinaryOp::kGt: - return Value{false, {.bool_value = cmp > 0}}; + return MakeBooleanValue(cmp > 0); case BinaryOp::kLt: - return Value{false, {.bool_value = cmp < 0}}; + return MakeBooleanValue(cmp < 0); case BinaryOp::kLe: - return Value{false, {.bool_value = cmp <= 0}}; + return MakeBooleanValue(cmp <= 0); case BinaryOp::kGe: - return Value{false, {.bool_value = cmp >= 0}}; + return MakeBooleanValue(cmp >= 0); case BinaryOp::kNotEq: - return Value{false, {.bool_value = cmp != 0}}; + return MakeBooleanValue(cmp != 0); case BinaryOp::kEq: - return Value{false, {.bool_value = cmp == 0}}; + return MakeBooleanValue(cmp == 0); default: std::unreachable(); } @@ -291,16 +299,16 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co case BinaryOp::kOr: { bool lhs_true = !lhs.is_null && lhs.value.bool_value; bool rhs_true = !rhs.is_null && rhs.value.bool_value; - if (lhs_true || rhs_true) return Value{false, {.bool_value = true}}; + if (lhs_true || rhs_true) return MakeBooleanValue(true); if (lhs.is_null || rhs.is_null) return Value{true}; - return Value{false, {.bool_value = false}}; + return MakeBooleanValue(false); } case BinaryOp::kAnd: { bool lhs_false = !lhs.is_null && !lhs.value.bool_value; bool rhs_false = !rhs.is_null && !rhs.value.bool_value; - if (lhs_false || rhs_false) return Value{false, {.bool_value = false}}; + if (lhs_false || rhs_false) return MakeBooleanValue(false); if (lhs.is_null || rhs.is_null) return Value{true}; - return Value{false, {.bool_value = true}}; + return MakeBooleanValue(true); } case BinaryOp::kPlus: return ApplyIntegersOperator, int64_t>(std::move(lhs), std::move(rhs)); @@ -325,16 +333,16 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co return Value{true}; } if (child.value.bool_value) { - return Value{false, {.bool_value = false}}; + return MakeBooleanValue(false); } - return Value{false, {.bool_value = true}}; + return MakeBooleanValue(true); case UnaryOp::kMinus: if (child.is_null) { return Value{true}; } return Value{false, -child.value.int_value}; case UnaryOp::kIsNull: - return Value{false, {.bool_value = child.is_null}}; + return MakeBooleanValue(child.is_null); } } Value operator()(const InExpression& expr) { @@ -352,14 +360,14 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co continue; } if (ValuesEqual(lhs, value, lhs_type)) { - return Value{false, {.bool_value = !expr.negated}}; + return MakeBooleanValue(!expr.negated); } } if (saw_null) { return Value{true}; } - return Value{false, {.bool_value = expr.negated}}; + return MakeBooleanValue(expr.negated); } Value operator()(const AggregateExpression&) { throw std::logic_error{"aggregate expressions cannot be evaluated as scalar expressions"}; @@ -384,10 +392,10 @@ Value CalcExpression(const Tuple& source, const AttributesInfo& source_attrs, co case Literal::kNull: return Value{true}; case Literal::kTrue: { - return Value{false, {.bool_value = true}}; + return MakeBooleanValue(true); } case Literal::kFalse: { - return Value{false, {.bool_value = false}}; + return MakeBooleanValue(false); } case Literal::kUnknown: { return Value{true}; diff --git a/src/stewkk/sql/logic/executor/materialization.cpp b/src/stewkk/sql/logic/executor/materialization.cpp index e1018e2..78f4890 100644 --- a/src/stewkk/sql/logic/executor/materialization.cpp +++ b/src/stewkk/sql/logic/executor/materialization.cpp @@ -1,23 +1,56 @@ #include +#include +#include +#include +#include + #include // TODO: implement async file io with asio (and benchmark it) namespace stewkk::sql { +namespace { + +constexpr std::size_t kDiskValueSize = sizeof(uint8_t) + sizeof(int64_t); + +void AppendValue(std::vector& buf, const Value& value) { + const int64_t payload = value.is_null ? 0 : value.value.int_value; + buf.push_back(static_cast(value.is_null)); + const auto* payload_bytes = reinterpret_cast(&payload); + buf.insert(buf.end(), payload_bytes, payload_bytes + sizeof(payload)); +} + +Value ReadValue(const char* buf) { + int64_t payload; + std::memcpy(&payload, buf + sizeof(uint8_t), sizeof(payload)); + return Value{static_cast(buf[0]), {.int_value = payload}}; +} + +} // namespace + DiskFileWriter::DiskFileWriter() : path_(fs::temp_directory_path() / fs::unique_path("%%%%.tmp")), f_(path_, std::ios::binary) {} void DiskFileWriter::Write(const Tuples& tuples) { - tuple_size_ = tuples.front().size(); + if (tuples.empty()) { + return; + } + if (tuple_size_ == 0) { + tuple_size_ = tuples.front().size(); + } + std::vector buf; + buf.reserve(tuples.size() * tuple_size_ * kDiskValueSize); for (const auto& tuple : tuples) { - std::size_t tuple_size = tuple.size(); - // NOTE: better to store tuples in continious buffer and than flush to - // disk - f_.write(reinterpret_cast(tuple.data()), - tuple.size() * sizeof(Tuple::value_type)); + if (tuple.size() != tuple_size_) { + throw std::runtime_error{"cannot materialize tuples with different sizes"}; + } + for (const auto& value : tuple) { + AppendValue(buf, value); + } } + f_.write(buf.data(), static_cast(buf.size())); } DiskFileReader DiskFileWriter::GetDiskFileReader() && { @@ -42,13 +75,20 @@ void DiskFileReader::Rewind() { Tuples DiskFileReader::Read() { Tuples buf; buf.reserve(kBufSize); + std::vector tuple_buf(tuple_size_ * kDiskValueSize); while (buf.size() < kBufSize) { Tuple tuple; - tuple.resize(tuple_size_); - f_.read(reinterpret_cast(tuple.data()), tuple_size_*sizeof(Tuple::value_type)); + tuple.reserve(tuple_size_); + f_.read(tuple_buf.data(), static_cast(tuple_buf.size())); if (f_.gcount() == 0) { break; } + if (f_.gcount() != static_cast(tuple_buf.size())) { + throw std::runtime_error{"truncated materialized tuple"}; + } + for (std::size_t offset = 0; offset < tuple_buf.size(); offset += kDiskValueSize) { + tuple.push_back(ReadValue(tuple_buf.data() + offset)); + } buf.push_back(std::move(tuple)); } return buf; From 081074b961b7c35c4e45aad4e12b5235b6540baa Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 2 Jun 2026 01:49:42 +0300 Subject: [PATCH 075/120] Add more benchmarks --- benchmarks/main.cpp | 47 +- benchmarks/operator_cost.cpp | 18 +- .../stewkk/sql/logic/optimizer/optimizer.hpp | 1 + .../sql/logic/optimizer/schema_catalog.hpp | 6 +- report/Makefile | 2 +- report/calibration.png | Bin 0 -> 36668 bytes report/naive-vs-optimizer.png | Bin 0 -> 25109 bytes report/optimizer-speedup.png | Bin 0 -> 28446 bytes report/practice.tex | 100 + report/scaling.png | Bin 0 -> 80847 bytes .../operator-cost-matched.json | 6408 +++++++++++++ research/benchmark-results/operator-cost.json | 8495 +++++++++++++++++ research/benchmark-results/query.json | 1266 +++ research/benchmark-results/ssb-sf001.json | 3240 +++++++ research/benchmarks.ipynb | 1248 +++ research/benchmarks.pdf | Bin 0 -> 283622 bytes research/research.ipynb | 2 +- .../sql/logic/optimizer/cardinality.cpp | 50 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 57 +- .../sql/logic/optimizer/optimizer_test.cpp | 69 +- .../sql/logic/optimizer/schema_catalog.cpp | 37 + src/stewkk/sql/main.cpp | 32 +- 22 files changed, 21024 insertions(+), 54 deletions(-) create mode 100644 report/calibration.png create mode 100644 report/naive-vs-optimizer.png create mode 100644 report/optimizer-speedup.png create mode 100644 report/scaling.png create mode 100644 research/benchmark-results/operator-cost-matched.json create mode 100644 research/benchmark-results/operator-cost.json create mode 100644 research/benchmark-results/query.json create mode 100644 research/benchmark-results/ssb-sf001.json create mode 100644 research/benchmarks.ipynb create mode 100644 research/benchmarks.pdf diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index a5cfc3c..eb158b4 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -1,10 +1,12 @@ #include +#include #include #include #include #include #include +#include #include #include #include @@ -24,6 +26,7 @@ #include #include #include +#include #include #include @@ -120,6 +123,11 @@ class ScopedClogSuppression { enum class PlannerMode { kNaive, kOptimized }; +struct PlanStats { + std::chrono::nanoseconds optimizer_runtime{}; + std::optional cost; +}; + template PhysicalPlanNode MakePlan(const Operator& op) { if constexpr (Mode == PlannerMode::kNaive) { @@ -131,16 +139,30 @@ PhysicalPlanNode MakePlan(const Operator& op) { } template -PhysicalPlanNode MakePlan(const ParsedQuery& query, CardinalityEstimates cardinality) { +PhysicalPlanNode MakePlan(const ParsedQuery& query, CardinalityEstimates cardinality, + SchemaCatalog schema, PlanStats* stats = nullptr) { if constexpr (Mode == PlannerMode::kNaive) { - return ToPhysicalPlan(query.op); + auto plan = ToPhysicalPlan(query.op); + if (query.required_order) { + return PhysicalSort{ + .source = std::make_shared(std::move(plan)), + .keys = *query.required_order, + }; + } + return plan; } else { PropertySet required = query.required_order ? PropertySet{SortProperty{*query.required_order}} : PropertySet::Any(); - Optimizer optimizer(query.op, MakeMainRules(), std::move(cardinality), {}, + const auto started = std::chrono::steady_clock::now(); + Optimizer optimizer(query.op, MakeMainRules(), std::move(cardinality), std::move(schema), std::move(required)); - return optimizer.Optimize(); + auto plan = optimizer.Optimize(); + if (stats) { + stats->optimizer_runtime = std::chrono::steady_clock::now() - started; + stats->cost = optimizer.GetBestCost(); + } + return plan; } } @@ -293,8 +315,10 @@ void BM_SSB(benchmark::State& state, std::string query, std::filesystem::path da } PhysicalPlanNode plan; + PlanStats plan_stats; try { - plan = MakePlan(parsed.value(), LoadCardinalityFromCsvDir(data_dir)); + plan = MakePlan(parsed.value(), LoadCardinalityFromCsvDir(data_dir), + LoadSchemaFromCsvDir(data_dir), &plan_stats); } catch (const std::exception& e) { state.SkipWithError(e.what()); return; @@ -311,13 +335,26 @@ void BM_SSB(benchmark::State& state, std::string query, std::filesystem::path da return fut.get(); }; + std::chrono::nanoseconds execution_runtime{}; try { benchmark::DoNotOptimize(run_once()); for (auto _ : state) { + const auto started = std::chrono::steady_clock::now(); benchmark::DoNotOptimize(run_once()); + execution_runtime += std::chrono::steady_clock::now() - started; } } catch (const std::exception& e) { state.SkipWithError(e.what()); + return; + } + + using Microseconds = std::chrono::duration; + state.counters["execution_us"] = benchmark::Counter{ + Microseconds{execution_runtime}.count(), benchmark::Counter::kAvgIterations}; + state.counters["includes_order_by"] = parsed.value().required_order.has_value() ? 1.0 : 0.0; + if (plan_stats.cost) { + state.counters["optimizer_us"] = Microseconds{plan_stats.optimizer_runtime}.count(); + state.counters["plan_cost"] = static_cast(*plan_stats.cost); } } diff --git a/benchmarks/operator_cost.cpp b/benchmarks/operator_cost.cpp index 9f4d8e9..fc56ac1 100644 --- a/benchmarks/operator_cost.cpp +++ b/benchmarks/operator_cost.cpp @@ -171,6 +171,17 @@ int64_t SortModelCost(int64_t rows) { return 11 * (rows > 1 ? rows * static_cast(std::bit_width(static_cast(rows))) : rows); } +int64_t HashJoinModelCost(int64_t lhs_rows, int64_t rhs_rows) { + constexpr int64_t kInputWidth = 3; + constexpr int64_t kOutputWidth = 2 * kInputWidth; + constexpr int64_t kHashBuild = 100; + constexpr int64_t kHashProbe = 35; + constexpr int64_t kTupleCopy = 10; + return kHashBuild * lhs_rows * kInputWidth + + kHashProbe * rhs_rows + + kTupleCopy * std::min(lhs_rows, rhs_rows) * kOutputWidth; +} + int64_t FindSortRowsForTargetCost(int64_t target_cost) { int64_t best_rows = 1; for (int64_t rows = 2; SortModelCost(rows) <= 2 * target_cost; ++rows) { @@ -368,8 +379,8 @@ void BM_OperatorHashJoin(benchmark::State& state) { for (auto _ : state) { benchmark::DoNotOptimize(RunPlan(plan, tables)); } - SetBinaryCounters(state, lhs_rows, rhs_rows, 69 * (lhs_rows + rhs_rows), - 169 * (lhs_rows + rhs_rows), + SetBinaryCounters(state, lhs_rows, rhs_rows, HashJoinModelCost(lhs_rows, rhs_rows), + HashJoinModelCost(lhs_rows, rhs_rows) + 100 * (lhs_rows + rhs_rows), std::min(lhs_rows, rhs_rows)); } @@ -397,7 +408,8 @@ void RegisterCostMatched(int64_t target_cost) { register_unary("Projection", BM_OperatorProjection, DivideRounded(target_cost, 22)); register_unary("Sort", BM_OperatorSort, FindSortRowsForTargetCost(target_cost)); register_unary("Aggregation", BM_OperatorAggregation, DivideRounded(target_cost, 510)); - register_binary("HashJoin", BM_OperatorHashJoin, DivideRounded(target_cost, 2 * 69)); + register_binary("HashJoin", BM_OperatorHashJoin, + DivideRounded(target_cost, HashJoinModelCost(1, 1))); register_binary("NestedLoopJoin", BM_OperatorNestedLoopJoin, SqrtRounded(DivideRounded(target_cost, 70))); register_binary("NestedLoopCrossJoin", BM_OperatorNestedLoopCrossJoin, diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index b4975da..c0dbbc8 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -32,6 +32,7 @@ class Optimizer { PhysicalPlanNode Optimize(); PhysicalPlanNode OptimizeExhaustive(); + std::int64_t GetBestCost() const; utils::NotNull GetRootGroup() const; private: diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp index 7a336e9..b7abe72 100644 --- a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -1,5 +1,7 @@ #pragma once +#include +#include #include #include #include @@ -17,8 +19,8 @@ class SchemaCatalog { public: SchemaCatalog(std::unordered_map tables = {}); - std::optional GetSchema(utils::NotNull group); + std::int64_t GetWidth(utils::NotNull group); private: std::optional Derive(const LogicalOperator& op); @@ -27,4 +29,6 @@ class SchemaCatalog { std::unordered_map> cache_; }; +SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir); + } // namespace stewkk::sql diff --git a/report/Makefile b/report/Makefile index 4694b53..c99d8c0 100644 --- a/report/Makefile +++ b/report/Makefile @@ -3,7 +3,7 @@ all: build build: - @latexmk -f -pdf -output-directory=build -shell-escape ./thesis.tex + @latexmk -f -pdf -output-directory=build-practice -shell-escape ./practice.tex bib: @cp ./biblio.bib ./build diff --git a/report/calibration.png b/report/calibration.png new file mode 100644 index 0000000000000000000000000000000000000000..865144ebe7ee7641d6c02f4bb467ccff645a2d22 GIT binary patch literal 36668 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 C1wvu~ literal 0 HcmV?d00001 diff --git a/report/naive-vs-optimizer.png b/report/naive-vs-optimizer.png new file mode 100644 index 0000000000000000000000000000000000000000..ed0bc7a05323f292206b5b3f5563f7dd9a4c2c34 GIT binary patch literal 25109 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 oYjQ8yedP5|1JM8az0M2EWpqqS{p4%K{nc{R%8B zKNz#He0TY$AMq0w_0aeDUlGd#$1N32&sy4?HrHi2a@z9zIaAAX24~h->zZ2_n3@Ri zZ~ui~m~V}~rR8}Gk!{#aG z|ErR1KzF@efZWjZbYH8`_?zP|f|7I!Ou8=p`ZjsLlAF$Gih@i?@&;KQOjp6{(aDmcp~=JAcM7ud?g$J#YBaIPEF6;1dovW!S}4@s{CeD6 z%~y90T@Svzcx~%ntq2seQz(l#QWl$-6SH)qoV0h^xwrS9URkty!R#+@V|nZD8L9R2 z(xss<+*far@?fvYb;-@J=}kEK*xaDx{sFh^*URG69`0DTk@0?=d7O;~wV5`iR_&z+ z9EQ8(_v~?X$X0uJ_Qb=p?j`3L@A9g*6-$|Hj|?9Cc)y9+DW@7L3z^haTkd2Y)LM+QhI9A%J)`~2w{mk` z+^h8Wwn&h$rRbP7AF!(?tLrJHDQh*(OS zW)J!1jQ5DTvk4r$vWTm)-lj3$ropb&H_<6O#2BZLa{B3ysrn`BI9>`&`Qx|uoNa1q zU-9T9e>P6VUqH{}M2db$dV{@ew*8Pf*DSoDrT^(7$+k-?G>;9m6wA6ixsuU=I>Fg89Os}g_WMS`DvRo0z>)}k$I*0|<&;ymA_^?jDB zjkPJu`TXHJKIG<)3)!Q3>N7h(Jiq?p>31wFYbFogSh?1(Abh0JMe_L*6>mpJ$H4}N z-j~hh1|Rcp_6+@bVRk{YdApyMvwUru@v`O1BiMz_+miA)%aXM7>RJyRJZLyR+F?qbhzO;~J%qkPx>U zH_Fvbvv05KO--;HvP&H5%gvpd9w?HGRgP78b$g57_uqf7go`W;mXv%xlxVX0f#ayT zRd%1LJq9QosyKb!ayu_A*Es}kbh zy*qX3;>9SLTN}oj{j?MU{d{|+#`M&0WLR}>UbAM;5A&8QO;1f?p*JhFK0e96fKzOD zg}shWScYZ0cTA{h?xf05vA&Du&9B07q||e76+@T`U@FF40To+ zRm3P~V38crrI*&q$jF>{Y#x69{(YrK=ieIzDTYZe#)Tc(q7rvZK|#Sydy&{D*F(O1 z(KrG9Pw)Obk!73YFKFj{0t3&ZLMA!Ebcv6tqpX!vwOHF%^W&u!TjrKn?T zn~Q?A9-B9NbH|^2tYFnyS@H7LMj^X?9VaZMn3Io_Iqlm*j7++VQ;k$d$HokYyWXC7 zaOyWlC#S^GI$GdAF5--n;&IV_Wj9bBuf7Y>ZAZo9U7ZTvmlts*(2ID`W!P&% z4#VdHC7e!-)LD31cU8Za*cRVdQ_HFy{k)bD;~y% zZQHgv;nuE_bk5poTod-=f>kF691tj7ukbAr(l358Hr|`77{?*$Tojw@6$^CfS2i+z`=t!79OgZ=Gx`e%?2CvCnv3jfj~CG z*Vkh~A9*4;I?KZtZAy_5}9M9J?%04WnF5)0KW@a5gU zy)UD+A+7-5x8oc;>K6D(K|0 ztG~B5QZ7(rGvZms^f_F~8h6wEzJL4?_29uTBdxp4hs5aWwjB);n>%-|!nt!@3yNwH z(trQ`_qy6SCvQu-OtE@8IXe1?+L&N1iD^8ZniO+(cBVJ)*|R5R= zW1pTbsz@5){z*$q5If4w z!68;N+kTahp$|5{LV&|V{=}9z&FnFu-~xO#^|pTQYl;pUIiY6qd??{=gXC(QuXI!K zPBF2QKmhXl_g^$`d2Lr{^Cp!~mfvqng@iud@W2zd;C^W6P~on|HYDb%x~gIPUrmQ)~~? zjBAJewX_iESUnSmM(T~Q;N*K7vMYcuXrDGZjRa~s4Jiv5l;Pbo#eq*EetW8=}Dy2s17xPm)Ar&dl(P9~0CHmX|vmu7DUkF0N&i8anW?1=y6 zG{imWz6}fU&+{HrljEJ8iMf@u8V+1v9=`JR1|FVv;1z6|j>cS-F9Q*nj$Sw$^BC^F#i-f(GljxVV53dN0=s*!EBEmy$Ai z>CGczKN#h3{bE=ccj4V#+bSLdVz^zqCX#&=^Q@Y;E$d!pZ;m?cnVv`3WB@k3IpYb=6Ma(d zT#}kr9py4Zsq%=&TuvG7B;%R~0f9uZ!)S*dtqu;YDfs%YE3 z4|9L|>DZ;Y%S;MJmakqN3+NMzAKHJowlT%5=>=NT()6l+#Mv8`}`Ui zQO82|ikN-4Xx&p6y;VJ}t?Z~|c6h7l+vM<9e%lhGqBbGMshXLYQRsDBzBNX)H%s6- zBKwXVI~4X^Sy*9|m>nTG^?BcsyE~O_Z66`J#^77t-Mf$PyFCA9n4pVfV(wIiFQ3|d zAS}aoPkzH@D#c~TKGZ9U7}FH7>InO8){pvlf%Z32LJ07Yl(6~7M=c{$l<^%#dJG$L zvKMlSMOA4!9Ki*aVr^K+Y7mH-4l~dnH(kMh^4Q_SHzkrlng~c6) zm4-ShhK6fRJH!1nOZ%GgfHU~(okr?Uq?-f+0XP*Vsy{j(LKzG&M~mN27WbeW`=hzF zwN*kd-)k*JEBnE=5afYa1Xe7RY2(qH4<9~Qw!CKRZpc!_yls4mZj4Tb=%s|3#8Ff5M>869YiMQX2_Xh1I5R~RI&zDRQ70l#Ke zR9l-qP|?~7=jT|fp8^Up##H_^7(^(EvS@u1-4OTd5{DYxYMsRwW-qGrTD#A(t9ttg zXUroZwfF)yfwOJbHUU1#FgGNW~Q3G!TX3Vu8 z>Iiq99D9k7yVVSva^`E-J0S0q8J04O#0QT>tgPO!abstZh3t8WyZSG8x`0y>(yCLI^`g}T~1^C2K)Q77D{+00)1BVFN`0$u6{UO z|BUeu788SvG6eWE|LxkB|N85%a(ur!DD(XLz3cyEyk(8(p|awgNIAU2o?{rRnFbp7H|o$37L)>8OMer2g(3XopL z_yAVPN{4=+0Cjr2*aJCJV@3z|@7Hh4ae8$}ATp_yd14#;Y>(C=PILeQMprIfy0qfK z>3yCF$n~3W5B6gZs=BWdVr65CKIpzGdjGX0K`*d0>C2Vx&!&)Wqy^ypaHUQ}gyNc1 zBk_z%Zys6JWy`{8`K(*FS2;$hq&!+t-2Go)evL)#pnsZ_SJ)qatQ=_-weBLkIBuq( z;GHwtvKrwvKXl_Xw%Fj*cyFvtZ-YHJYpOxn1_Tw^si`S~CNTrsu!*j(*p|Vyal;1t zK}W`cz21h~>8n3B*9C7NB588r=anmoY1j>ZeEIUFo10tdr}s~JWax}=azpq8Een0o zGtYinz_#OA=(k%UGf=#9=S~%0T?+BQ^SAn23OglQKwYn1{Rx1=Velic#xVp9g}B>W z)m4I>hTjSm^)}|_+K=>fI|l&$tUKUlI~c$`u{(5PDf;p<({&t1hw3w|K-?2pjWTU| zttG2+kw*&}8yl+!5JBl{&)HioA>GrsnSL9N_=f>DylOU&K740~eb3`orHI39o(TgV zu5XJ0>{=z^_(;UE?HP^{?^boCki9=RjkQN|YQ$oj5;JXi6Br8&-RZuop%|fg2w=*7 z)x4RrgCg-S&)yWL=G&^}xh^gXI79@WkKOzALOB*|s%c|GXlK34^dwO)ad+lESM$!Z zsd3O7woJdu`Ql{&`hLH6}x;;o&uxf|SRU|&|4<{Mtx~B#Thf~WPJ#Lxa z?2#al>1-p;Tiig>VPRpGFBo^+wd*+~7;|&;gC7~c$I`aE;VOw2^yOtHwyH)GuqRZ? zQw5*5Y{`=Q#l^>z<4-7SzqnD-T;M0LdHt8SvgoWfXyAMgSd;-ZAr*uXa>{Wm-dnnA zW0NC|w57MICGRir+olS9d$5HWrTMlN?yFtA{$Sg?KQ9n7R!TbaoHY+&A_4%M*#9aq z+XwA87@y*09A@Wm@ug#3>jS-}~(v z;Vb&`G7cYg&j&3G1LBRrNp{p{reh7Rm#In8z5)R)l0(#5zv+cL+j7<~zrm7xL2!|A z!R;-PMB}jw${?%o`4#ZUB=gDYzVaza)-ABC(y-AzevI)8`3rG^x2NnLCIK26bymjL zWILpDM=M1ufFzqA)L~xdxxCPjZe;+Cv&Wc=lxHZl#6UWN8oo~#{CQDE2Gv9MZ z+W$(LV#Hy25UPV`8Eb0)7p#zWnBTsq%+< zM~&+mia31dK12wAH^#kV z@vtngscE>Hm}u%>ByQ1igVSkH{z#yR^85Gi*%pKE&wR13-*-7J$aeUxUd8)dE9s;8YRAzTviZvpzOk|5(K4=x$o)NqQ~9z%}Lk{D}S|HHrj71nM9 z(JKTx)+0$bR$lKvc^S{)-Ec;D2mqGRP_?#aG}x<%GMxa!rtfM=8ig% zYS`b`cN2hJB~df}+R}}$z?;GNqjMr$rl$aQea4%xr_z^jG0tMgRs;})>=`)zV)WxJ zk|KwYJ&`clag)mfge}S=k8+6*ycS@)i7YVlmArrvzb!k;c@IcQb^di}9%(qBixu={ z1m1sp^OZF3!IrzG9jR5CWzda$AoD?gpLP2!*SsDl>b4wzk*Pf zeUOod+smXDFJ4U2&=4YA2iPCmP3B%q=D|||`YC~&^|8A<{tB1#aU|JdBBhY?^!7_I z&OToShZ_6*xee*N3fJcYXbYCHg`Z!pq@-lC{Qdn0br?{?^<0y0!_}^sd-v85X+~N~ z2a8CtXq8iZ%sAQ__5ROt>M|lWJpnlT(3Zlxv8Vq0ebp|L0MhXqoyQ9;|MtN-Wy3e6 zI79+_2% z7d4x2PhlnxOKCvIojZs9gPFVfb$_xb^CR9(+fE$R@wNm?rqnZgA$u{{xdJF$1qJirUdDI)7!+#@ zu5oA+uX(cTIC-`fSGr+ug2S zEyk)+PSh0lOkn0BwO^5ou+tr5Qc==sqpSd3HW4YAZf*Nq3v6*21*n##R?Lq&zuB|# z>S6CU!IFu%Glqk0C8Yi1){&BI`2)xnRR^eSf>@Rtp@^Ee&4A{^=?o?8@&M*`p@g7##z-dMSPFWw|GV!;e-XPa+VE^RFe zPDI8BsQ9&`Dlr%lJ{*Xajjb9XUQyPUuLSWy8Df2BP!(_{HrcC5GbrdLIx!A% z-XEBxvm$mQAR(5m#t8e--VES*y`jE5u1=^Ss^Ex_@_1w*kQ~DYNmViVPuv;+1*|tV zmwr+*yvu=tSv!d_`SEMqkYwf?9c#|)#di#Rb>EH-GCtI+Jq*~1@edX@&ycOmOIr6g zpps;DRDI^>u143o(#v~(+Lh{}GcR*JOaA>E3yl}C@4mP9(%hG|wY490zhlW?9`H$W z!;)!>nX_XnY%AUg`~qPolF}=1q<@wm%bHtfif0zQtJ=XC2%~iFT-I}KUIU_Ht}WnC}W-dCK4Bv+GR6`M2B zFI$nIp$=gP3SJeSKq7=ieMmBFHwP}KnbgO4dHt+imANvvsycN?DY9&r$9Y9dgM}LF z9)2i_5T@_^n=eYVm-1~Kl=0hB*?O@`IMHm4Q*u-11a`lHNRh6ZZ}ZDb7cN{NFh$Z7 zZ)H`2Ml7MMuD1_^PV#G@6#Mw$iZ7Ss8X6#Cb?Efz(^cX&$ihU{ROLj zIpx|avmol^YiC# z`Es_394xMLkmzbbj=$T^c=Rl#Tjv|kUa-oCk==Hl|0^(LiOrSoS&~<5%VcIImMKqw z6?;27EFg^$TNK|izGub->z2M^YZT6SIkj>e)p95Lub+Jr5WRNa<(2c8Q2y;r#Oca- z^~e(rBqoC{7&K(rbyUXR{aY$yt1U}IrDUupv-hwDiQM#+%(H%9E$XpGrC~CgPd<8Z zt$_KlY0Z7ZKLPLZHe7w3%ty7dUw{3T3J5p8F{u~OIv$xdDa<#{&dT!HWvW>br>2PC z;hb#?Vku}psLvs6zMo22FFd&t9eN(;HFbXZT$Vj5@36d4s(TUSh;y|^l&7k0v`Kvi z#rg6$HG%Hxq=D08Rx_jNhuxArf@|ZBrE?Skf}J7EF|cU_I#GprHLpWn}}h*r$YmT>%hzA!*o5kTb7kPt%(Ewy9@?))2sHjuWoMr{3iQV`{% z#s?tl7y(TgHe@|^h(Gh(ZL>ny)gR}t^n#wEJe^}yl^oaE@DlYWm!Y2e+R5F*!fG4k z0*;|%Vrn~*SdU$=jJhxf7z(z#b)K2v%r3??ww2+sv7!I-w`Pa@e0AHucrD&7C>r?e zp6`r`6i^gjg+0Hr<9UUi=qigI<5FrrzFdE-uroMkr?-9lpL zG&0kOLPAt%i;fKH7hL}3C@eY@4vZjsS63f*8Z40_u>)}yWx};qUDfia$Z=}SSvS`r#w$*D_9l zW%`rtQFR%Aafh^?oN*HZkXU@)VZeFqNF%#eeT@XG8R3osEaF5vLZ1p0NN!#f{ZJ>` z6}X6T$mC^s=dBG#N}*s5)fgqd%xj%ad*%)$5%JkjkaSr3(%FTJ*VfiX?fJG+C&f(A zpqoq;!%G9udaFv@A4p#QhLeD^Dv%Bj>o9S|xq{Y~$gn}s(9XAd!4)WV>!|rsO#`XM z@Y&VH{yU9NeC0IkTL8ogTQ6U_q~$60n%a6cx=>kfpn2x*S$*j(2 z?LC6;w0sf}Xqv#IhZYx1gd;O__dyszmT_`AKlO}lefJ_6aj+mcPJQwNeG1941R!{2 zQI5WgB^m=znHj2MPo-B-ZW8#Q=87X2lVSqau&zBgmj#f;i@)p?;zkC_cRtWtK?FNM zM3li8nwy%|!=!{VBjBeT@L8&8OjF;gk@<-h7C3*2tT$yIRgcuN-W1;1ZT3N^3b-R) zRnzVOScxAul)6sq7q7fO-??Kw@mlaYE-7oQBi0@&{4!S7Fz6^V&j{>vQ$aFhm+}lN zBeF@L5cojUFd_{&Uoco5W`_BPKRCV(FHrv?90Grq<~WVhg8_f&pc=>V`nS`D_zFM}e08)q$5 zI7qcDa{U1BQYxVu7WsJ;Bjs*$TlF?*}_RhQPSTPKLf zOyyFX9dy6c6y1X5R4TIv+!H$Wge5cddo?#?=|_)t)5#FuM21Oq7%^G4P4grb=@6mr zA>!yMsYre5?X0f;jU;xD%U#h|hkVKPgz`(JILvO$-} z$K$xTE5Ucp_6d~Dh^`{GpYAz)a#E)9&WaU!QhZX;0F_qLH#=SW7HRDA)5sXK)z37k z7ny|ZqJLmOHc1mD3=Rp$>f^seQZ|{I7&y9Y>xn`CJY+VzGD)S+QhgtuFN1v&73;F> zmZqjqGNnMetwKaF)fUm?MS8*NUW6rk$QydqQY_^sP80bz*Yi$&f1$JKKU_>KN*ghn z*%?r1;-Fd>f(TnnnR7dz^?zD)_#u{OB|&m1;&e`@_y76q`45{esDUd~K*Xr072 zd5OtkB?zK%$k-!IFm{FQ&e3`4tu%eY&FDX!Zz8ItggXVzKT0b{D_na2Ve8)(Rvm1U zJ=w046BD#)>Oqrx$R47E3R<^Y>&mL}ysftUnU?LaQ=%m5W&SZggjX?Qlc1myqW-J9 zyAq*&7P@$yE=R1k?5PvJbm@}D05G&S{6ap)nsIFHsE+|;v}j40)%J-MAVby`nGgD>He$ebu9(BbFgRPhS5^5muJ_@^WYFU|IQWE&*w}w!skvN z^MttSaBOJF=?O(FO&q^6NZf%mK9u`6;o+0r6>(w5W`@$W<4&xp$kmils^dMGwWtl+ z%#oyBofQiMvlexB``*qR>>r#rcR61a&L`$*umnX8@@=`Z3o8Ki&zn^%_<3TW2)T(b zQ(I@w45b6YEQ$QW?*8Yutz>C{uPW>W+$y<{T=e#>Yn^dr#vR|zA#Se(IA4?Flvx?4 z77BX>Le{GuTMuuX2DHDhqjz@brsx%MN*x^&nD>fZP|m~&cMQ%>qQQ#^z{2)CiNG5 zL|Asvwh(Lr$Vtp+J>sMs=z-;>M|$_5+8#gOVJ(<%nDq~5>Czp zSY#+6Ljk>rPmF-c06Xs}8CC!Zx;)xesy&wFI+_c4^9M>b^!Tv8Wykc&+UG9Y+=geR zg6!#j<%^)@3R9LNEn;%{KvwelBCvM{Em+%4HWjEl6wRqX0^2B$q@?7LJ39^_&Zmn8 zh3Yi(i#L=F1CGc;%%UooJBO$WP;doE$52OXVvK2H4%^M`vckYgcq-a9H~40F28(oe zV=h0f8^c0>Aw>J+Bi911^B3MfYSFf%Nv!YL(lH>pZjYNhV77yHop1!k`DxnA0IewC zlgQ*uj$CBy#4eAP-9)0{hTxHTdU=5&3_=KmoMeLb-)(lkuswihi%mP2A65rkMe;L+ z$KJOOrQq~5A2iNOe+tz^35Mw5!tJhr{sk$SI3H5*ww`=M#otmGcj7k&+5Y7;(N+?Q z+_^?0V(|=Qg~qX;!XBz%@K$JS)yz7MsAN99=p|XAu&0R9@7!280aaj(cm=E}k6Y|f ztZ698BtLM$1Rfs+*=SPX$gzU3$>kqg)z0z(Rx z573sTN_%Nj_hOi^?xDyWv8pEFTPf9xEqk=(F0?^kMA1-W?~dmyw90XkL$G5%DtbT3 zQRX25j$;AS>Xw3JSjyHF-Vu<3xRslgooxl%HxCRNSoswYC8MD&<@H3};neUy5KMR- zA;}loXN!wAmes}?bo5#3so*_gPg&S@khX~icvJBeSSSXCdHb%UymNA`j<}i0qI-RB zDraCv5*IOoIf?9-sB-YM2a6k{a;1nO{eBd%ErV;JP(L)_cz4$27jJKGG6hXN_4;up zNLaK6+89C~r}8t843@Lv!?T6t44)jyomSqv_j?-wd)Jvur04^rO@&MHV!>TFV=hKA z{9?+j&$Ow+SrT%Zc?uAf6k#n`#((lSYQFMcQu57DZ$x{`5#8dE@f5vb!jl)(7Wtm; zNO~3aLUV7gsm=U6h?u_x&805O|To1#rKt zs!|0S$JI8UlWSwA_ny50W2_PGk(;}F1%MV^C;>oVA4Q<_ZjaWL&?m~%8=Yfkb2*a3 zKz7Jz0?Ra+_s+mfFyMUOxYQ_2iS8g=C7!Ua33-~Rr={gG znToPtxL%OmqV?LZPkWz|@D`%0B8dNkK5=#xo^S)$r zKZ8u;8hs1gZ2QfU_{vKT)1+=-K2U^(DXFkw6`x z9MU@~X53iq)jhjC4&o)fv48#eV+S1#`rNWrt73qfXY4WHf16d}q9Cl*a+GW*pAl_z z1edc~&6clTX++rR*FxbU%lKsHzh=x-pm}72B)LM|J|)PpUxsY{>j%CN;&(fd?*d4* zCYf(#4Z@o|l6yI7AKl1efG3Jq7ILJVEnM}(4?keB?t0#bQ?B-TZAVY7q0Aa9(!R-k zSDmLM5GKiVGjxd79aiKS{qbp3!MF=s(+n#%&$_jnOXG{kfJloyKBG7M`?qgkjE~a` zc2a@E$xBy_=mXhf;MLH__ttq9K4iA1RueKxjJBvrXVNq3O<4d|0-RKLcL>(qdc&HO zXib+%E16RGZI$7;fzBw>R4Q`S&yQL)rZjqUt4{K-=>6!l^q=sK8ZHPnt*6w8BQxE# z5lH?ND#L{>I&YSMq+(@KV}iAmSr(m0<5fPWso1% z@|Yp4@8htBB(1$^Q9_as9?_R<^S{5%zkyo7S&|N^(*qmFMGcp7sPDIw0$PPfsYp+D zWHP<(-Md#1dfVve=wr`mq=pJSAiuR2bT`(dn+5}Q-!v450zuBx?nNI@{loLn8$%t0 zr_kY|37F@FG93<3mfPIqpnIO7t9Gv9eF!~y6E4+krK`aFyVuS+{hy?i#mHg$PmW z^K2BG0^-!oosc;yW-SuChtf^^S9u?LRVkRFGP(%>Txb8s_5W>G%y|;MvgYiXg5*Is zAt@F>e%p+_O6Bqvt*uX{k)zs5p_I-9y8ra;7(`x@lnCm=I0rEOP}EyHV7J*`7+@4( z*sM1KF|PV!ySC+Uml}M32a#7&wue~gT;XS{Syc)Bgnoz{tPK66-i+OSCUG!f)Xe99 zK~&6ddm&;G+#Ljm+XM@`_l%~3LZiQ^O#%!jXH56Zw#Dm8_x5~8Ak~}v1X!|Bz{v!q zX;(PGv4CfHt58NDx2rhZul~Daf5_=jJLRb;i?tJpnyxB5rzxTY+Wz}GZK19yzinET zNGBA+199~zkNd!Ek19reANy&TrT~0ykN2V3&C>xZe}ON9;H6=GMk*|;XKciz{_&9zS^z3n97+QtC8Ip*vgy2cEdCbmd1SyX zP-&?TN8g34w{>qrJRn{tjDglKEH9ob3BNSo?~gz9@us4V>ZDMJeJ0c&SoyF>!U&49 zskM~Ff0NHi&K7WjflYT3?zQMj7>K1};WXXJZ5{-}CHcO3^1xxzAp5;@&Vr7#W%urC z4}FhYGdH1@kC#`51UC3i$;k-atG-9tT_qez;X8|U_w@k~j0;S@i?pjq8 z_LD@g2tEXK@PzV(%2ob_FVC;Gv}m8?^XwWa#KS+$AhUVhsQn zShVLqtjjDb)Q-q?g3>&-KFFB6aI&)pe5j*Tws?D4Eh?edR&l5%cOn^+3wG$mYSTxa zHi!#A(f(p~$?m*?Yeg+zuD+@3+FlkJi|p@@J`L_@2!?YPEKmkkvP5Z0#6i-%76^&C zA!e!=RF0g%ip-xHO?>Vn>0@fVaoP~ts!A39N9@y|K^-2LoCu1$@k}Rl#(rrAT&LqY#^CkhA2 zq7mz7H2(h*(Dw}gf*4KiBuLeoS^6jjm0jN7@=J zaw?;es2E2O8j6fZgVx);9u~DiR8+t@dY!vkTQ_QHX^m)OX*qj^FaC$XZqPs#1Ym}C zL`kI_$5Dj^t8Q8Y!&RbL2}x@sh@}c>G0uZDZ!`{$+-;IUUD5lDwl;NStzH_zwXb&m z1F#e95?OD)f>MC<1i&_F@2RoQZK9#V-_pqcfwNS|i@<*}3fq_CYW`_)wNM@*Qa-VU zPoS+fJ&_>6jCj4f0mYFaXr7Ue9!kW%lT&|+i|qFB(*4InA}t*OwRz+`-o0za^k==) zyBuWouD5UzxTc`)D^}zRo0%R2e&ARm#T~7@$e(0tAXadE8mPV*<~OkAyWZhkHq-@z zuXmTJnFl$GYK+kyW>v|0=sinxc#XbbP_Xpv?hmP>kC+^%}hZH&p9i_&H zZ*pbLDtOH1kno4ouui0|CNeIA)Kx?rS&jN!2~x_h{}3?!SD*<1<{~X>h{77_@|Y#< zjl0GQ!50`J^0=qFyE0BEany6Z+_~_a{ ziiQ8~=SQ+qz>J6kdpVf)!&3CLf!cK53lZx^fvCn*r+GrIWVsF{!|T z8;252CRbIQT3LkUo4x;ZNmY+6^o$VVQ5K6s-{zAUyXe4br#0PFxQs<;tArX+Z$#EX zw5U3fvu)=FS;?LhAwCocaJ3eann`CaaoWE7Zp1Pdsh8?u8hz}S{wd%l0yCnyE|+cw zc(Xd<{^7pgRu|k{e+6t{eC8aeKu*PIH04nb2c9`3MY7I!0)M56YG&-7ka+)kBOl*k z)RvXN%Xnl!{}j;8QXC)aRn(|A-?`2d9teH7n87%I_`XgM}$0D+>| z$#JBoo}#4toWKkJbXT^)#F)WF9YnxE?eI5K(-=7d00Uoxi7sPjkDH!om84>z(An23 zt$OO-_RUh4=`t{?0s4=F`mK&y_e?$*>r9N?Jq7cy8obG2N7@7a>6yGfjuHX5PICQr zcJc{UA}F4QbqQ9a0)PZxD4-Q+$nJy~2i6yWVu2bGMe1DEO{bt*HYW2Gtb$1+)wb`< z-CN_t;gTtZc2ORyx~(4OMSIlBh&CVy=g^da6`HocLIW*>KSDXn z)~xW4?fZyQ<21TGY&*MxR_O_?-er=K1L2g_2(P4IazH%nfG5Q52OpqXcS=!2@1N3X zp~HB0dOUowozQ)gB&H`Uj8G1$#3`QxQCEZdn+j?8{H zUBu2tun`XbVEOYuan!8*d}$-BB04_B5fD&o?nK@&6}CnxY$Y)$a56;DCtP z)nL1iWPDttkWT*3=sPM$;X@(E(XJbs{rZD9jsdCCzzHfMVHQgX_=+wFkR5QGpnmZh zs)Q2YhMg^n6z0D!&LJmyw}&5poq^GD9JV4+OA^5K5Dc#>Xs)J|HPVMV$L&q>fBpaD zM@aIb#9)XHFW;t##jKQYQW$)KI?j?rgPK68VgTK&^YWKae=F3IHY{-kL>v^)x;%6) z*N+S62thp|_pLEF@)kkCaL1ksEp*D!SzqYJ{U z3+RwMM<^)VI}6+fDKK*Fl_5jgos3; z@X49*An@>$)e56+u6+cUe4YjKm z-Z@y)TkyqOxF>B1dbmZ=7oL#^02PP6V5q%ndoc6G3KRzW6^?i)h}<%0Lq}(No3UIA zCEoHBgR=5mIF!NTOC@X9v7EIi}@^~AB17UyFm?~@}UQ*sY}GJKa86O5D{R=eqVZx=@(9j zhIk3FpWWsKdqUJ;m;0UsrP!$&>F1dr}{T zL$jOfj zc>{S67qpy5!>Q&(20W;XXw!Un(38{HMlf#_ylfElr7-5;BV%cuh5No3n^{gO0@pM+ zjcABZPYlq$L2oP=1~sP8+!ItrX@*Muc7g0?&z`Y*GWse|v5E!sCoAlD02*;c*NMyw zi!cdy8J_(HRq_SbUYmg$zU5$8tnO5yvquQC3urb5+B$)~XcPgF(accc-)9t9)tI4J zZDDky%~Y;@e0(f3n}jRT-OYu}a2WEoDyTZJ?s`*GQ{oPA3Y9?tLH;aQ`4y+j1&Kw& ziljMEjc#kGYA{5!9<3Qnf-SfNRGSd^Q?2!`4Rs}|p=fkT=>ysQV3&q<22kAS=2H78EsKC(2Ck#okE%ORGci`> z1VVo0Oc3SMQP8wzw1VwvLD&y&2L>Xk2Rsi6I09XOZD@=+ed_K(X!rlUFV0%Z@&*u| zJb1U2TPoR`;cq1wjc&C@mTgId<=OL*3`4vLNv70xc*ti{2zE#e8c3;TP@lx!iSTv; z(3_|c=I+c0h_DUOEuo@F$#~LP)Cl~e;fw14z2l|^5oHLD72&cgNP7gQuOtTuRO;H* zf*j0exaKxini9?4pj+6JJMD~oQku=Ve7Ut~sICkw5D)1S;ov&CNaFK7m`hLDgdL8B zY&(XYTol!LWbC_Bt7gD7DzDyySpL-FKph`}+siI7ABaNV7si_EY~_O$562&1KgyXV zHd%b#ur&1#4W)`6j9B*b&-bvuqoi-H^A4lY6-c!e5F+?xAWrAPFMAIPQ7xN*hGQ4Q z-RSyS4~fuPD&HGi@Ye$e4p2)3Zzb|he6aJF3>LE9DTk%d{1w5sA%Nb8R$+k9Os%uy zpRpu48rL$nXP5#w57qUl-xe{j+vAol?CvKJ1rMb*fcIm_){D#g-<087G-(~h>LfXt zoO0xVb`smL;ULc;p9kAdkJ-Kb8du7I(!txJL3s@^8ibq~^*7mjfw;+KlnP6hL!r~f zo3IE!rA{yebfRd;5{KO6rlC)Dz`gtshfHFwl7vp++)Av6RGpVgfHMvQR?0&)#M9nV z5vzJsQ?qVq+chZZv4B#*6Q|s0l2+&SZ8_9XV|=JZ421#`?of79j0;8_M|!Mc_YnQz z>y3B`?-6-AsDVn$vF{Rsb|lO|Q6#ovvIly3x;_4Ar&kgE6v6GOjb5e{@GKF^We1!B zRGI5q&_=y{6(}q#p^XPhSw`cUqL<9I_s(|$u9p+ZI@bt2i+_H1fkGVa&1v|9sMVW< z0#xkCSb|5OFjGBj*#wiHDpkZVq6e6P&=5+`s$hXW7><$+0oGb7OP850y-XlI6aK2- z?&S^(ks9Cz;FUk-3y~3yN_rI5H68m7NcH~tI%55d0>SbqgbKSr--lBrKu0if;aBgK z)gRK-@m^%?aENq~$8!hXh%SSbOmVZo*GsxgvNYMIPMD$qhJP6ETc`ID^oL|283oKQ zflg>uzbLF884C-?$8Zvu$QvLTLA)=C*~GRZ9jpW>Wm`oC&K*W=pk_YkVU?OS;J(8n_i&vj-t7I^F(Z>1;13<%mhJUrmmb|7EWBb5!S0y(NEVMB%#AMbj& z`PeHlXG?evwW0ld zC(pjKe|M|Y0`Dqf#g89{h)2FCV6f_CMcdDuIaBIr0$oGk z7nv6y$PWGc_o-(qP zgUqiDeF%i;c+C5BZuFk}I$aQF<>E@D=yt*d<{Xk9NbhFikt#uxy4^C~x@xFDn7hUQ zJTWmrqd~x@YL^w=gbywOaWV#X(fcE3IfM#jcO6}G!drn-y)!wt;aOL@RX=_dF0z1MuAj{cWiL%?fli($;Zqyi8ea}PxQ zL*W4qZx_S5z@Uiva@xz8si3YHjCly-b_}2*c!$9!M6Np|7eBHTQ86Uo=lm0;J3W}J zf@mc@Kb$O3D&~V?HPfSYe;Gg_3MxP)lpDe-tX!_of|!xz8lJZiM1HI>-*NYc+%V^w zQ|&4fXSj&w+uwl#B>plj=n@XiGv}cx1 zFL)Lq7Z`&wU@cpr89FvYValWDVUpZYA+T}ak~|MMrmq25BqYIb!QMP;9)KYHlU>uBUC z%~*tmv6^FR+4XDJ%v^Fz8zr)lUx>7j(*jf?Vs|=u>O_OIspE)DghI{}wwa+T^O#FJ ze~+f7CWvZugKbw#Y@Y4<9Yx&0(tynrJxH)KWXZw69unr6k?CCo)=esiB?b{}5*8MI zo&^8@Tc1~KUn&MXbgRhTixfm|@Xx!r# z>QNHDK0Y+?hs+rXwjP3JAIKg_Q?(Q^)&TREYB7G6g4S1b3|YX;r2!?`Y&c$FCQ&5? zdO;qXMz+}aZz{HO^A(UI3d&u59-@#E+>t|VB~Nkma+EaS`d*nP^(6rA+5EpAEX)%7 zX?h@LGStg^U1K)V@7atV2m^_9#9p>P{*~`s&B^G-i=OCRV-0K(qZsMo=&0b~4Jvpa zNkAZF=n42RO--QgghSHO(pDPKY#~V^msBV6FOA2Hk%c@Fz1idxs+wZ7-+mWc; zF*+&~;({T{;NSCCiK97x1+`vMnFX~!liim44H-y>+W=+S;ma@gob&v0ZLX{P`}>KK z-`-`~z)Fgu3QVK~j{s_6bBBp09*g9h4Xe(XuM5uz^E2baTpBFn04w@OMr^ob4;>t`!tH!zo2DdQj;p4}TthH9`Fi}%EkU$DRHTBHy+;CWuIRWbt&7qY>)$jj! zB!bv$lry;;Km7(}8J0I`jDNWWB!^zIbuuDOV=0t7pt?kXNRbXe02nm6t|ctpgSjXY z44^W3he5z4;Rr?Wog2+_u5j8*lXnEAA68aYZY`}w*1W)p7Pa&O>JK50>ZC2U6@?p$ zQaH~jc#nxghF(eQV(dkhx(%3u`sn>#PjR#-pq?f`Mog4t6w$rMJ^9dGDrD~^ven6y zGVmcbd^K3tBW8BlWr@ZdI;}>R>1>*c*ZtDp$43WS2GR9;{bKfQ5J}*yu#s%Qu7@-d z_~A30<6T$J&i@u*v0E%LiIj%ZVf4kL_ks5xC4pMgP({q+b8-{^{iZdlu%#g1LYP_= zuaT)jm0*O=`n-|u+DKGgYX10T^6RqQ#R{Juv1UMQip%7bwrF`x^A{>G%@ES{5v0vz zQQy!wjG+Z$QH3|$>SO+5@&5evG;FgzFW9by4ZuK!Y69DJ$C#Mz$pU~dIUGwK=hNlk z&BKj}kx=@}QJ_QxUMm`zpra-=mW=t1qy29=iWbwHL7MwRbr9;(!k5HOR76p^d|EP{ zj~4VVOL|ud1`88wp@t@a3j><~zGfsd`X`Mc*$lS_oob?Hw!%b)WI{KjKa4bM74jr; zho)R+|2F^3x6p>UJ78c0ApVD4@GZ62f$thYxhCO}Dsdn<`e;|P2Y9C(lezw^A&gih z&{lx+yv{fQF=DR5O>|r6C?*d!F?;yW@52UdD$JWNBQ0G_PseG@l6V+RHl%5hF#kRh z?SY>emF%a*!yC}ZMTJ)<Vt(}lVU4k`2=V;g&!eL>bdByMogal{ zk&WB8%ab;PoMbHB#!iFRFdQfrlWz5a7l=-y5*LO!vPv^G7tM@sPYo{2Jzy);CI>B2 z--caE9Y7EeBLdTuWfWkMC#r_7DspFoz68N(ND2x$p(@cL4`677LaTM&p*6+Y2>OQ=Ab3#MXgGWV zG1wUhTDO3%^=!oQ@^5XN83F|Rpe*1}8Tu*)u_)U}4}J36EV8lC6Gb|xs?!?nxLVe1 z{xX>l$QX>QzQ^_j^FFysVV6fh-q~ZCGa3O=raa5e0_aDURCv)75i6i?V4rJH$2Q4l z^m*Xpr4SXA(ddCX`ERHIK&4cZG2pcM0RPOS7CRwXH zhI;$iqM&$M+faCs@xy6|JuN~PdS@ zF+f3Mxj#k;l_SQ$Q09$tY&=}Koe7ye2pjU>QW=V_v_>+lyUE(S31cIp-^d(3tOOM% z6}rUgB_gtz^9M`PedyX40x4T6Y4ZyP9?@7kth39x7*$9l7Y`L}%sVJ=Vu`B&Gm}ta zlPLFX9gy>v=sEQgP+uU;_kgaW443mcxhq{g|6LcHY^{{}21wDUC6Q`et8!F)$cMCB z{B8k=E#?XPz3||OjSP0K>AC7!3$-r}k%j6iRcNk@0_m^jc&YvE@*y~t;Bn84BfuUf zR!MC>G)IK$S74Y1Hv8ZCqg{m$wwz3D+t+XJGNg?)Psx{oT~{>Eu=A)Xf?L@9)D|XYd2+-DMGcg!DzW-z=2>9Rd557}4ZUG+0~Wrm zz-}U#pV(bfoFXW~H_J*S-EzG4SBOZ+ah3#G%7_xg1k2bo}$;s(9 zAmF}r7T<0j>5BwZNE0PcI6~?)5yaKE){3GknMEZa!%2v&^3+QJ+5hWAwkKvJqC)hJ zMu;L6n!6p&k}3#;WaFZ7w!=Rjp3Mv~EbPQl{x1Q{m!J6@Sk^2(%@~=2nQ!~QN}?<* z1~*}&q|vdY3_^1{$zNqvByRTMnepMXUzr_?$1gZ}^yg+s=9Uy!zWhoZS#~TQX3koA zw;O%11oTp!CqA3O9Z>6)&;IR1TkTi>bTZ3U9ycvr*j?=_z<9EKgIvHS82~{N+u*jS z%R^kDrA*Vr6KoGYV2YV6d7IEG&dm!SHG~nlq-DP&VgfW#(>%=VWeHc?zm^AFn`lrn zgE5P`nSH$xyDJfDSy9e{8U!|B)b(S*>YEHOdp-afaIAW|35^9NQzsfjq`g60!oe77 z0{ESnPnhL=0O+g%usjh<%>S?J#E|<+DJ zP1HRB@QbK$&(xq;*jtgsN$W^;1`=c4cXA^$OS3#NV@L-XTv{Aob%QOwiGUfLtf=E=7wW=w;NUoCB#ffosll48{U~eMzx6WfVKm37?cO~3IQ4&qTxtP z178t9#@|T}OWvHn^RAVxx;Bg(%JNAG@t24t(cf=t?=(}<1>n`^YfENI`JFicD?a6se zD2>ez{?0fd4+}tZveQGMpt;^8@;mNkn;Ef8Z#f@;jMauXNMbw8JZt<4bZxk`zpaR- zid1>to}2W8R`$ z6NZmG;8h#zJE+4rS9U!#uc>tu=1r|&n*Uh#Z1{^Q3bC+90*s+<;*05Brhk(H@WCkh z(fkK_lxb$_-*t~ldZfQX8mwA!$}HrPfT8FtIjgYaf=GhiuKl77g?8&a*%jXwnk|-h z85I9}G*%mOAq`Za2m$S_hNDpX+e#`S5RJb^LpmDv_AxX$T1sSo!rj z&IceVkwQrT4t+7@a9Goff+PNdHw*BmFv!e=Q84bn-`W-@iaviWM6-xdp_Y_hg03J* z7{Ak?)Cz|qN%`q({|1;@@^E$kH=dQ{`dg$%6-g1X4Yq@$GhrLm*6hod4|!AIfw1xlfCo^G@HLep zn1q%kk5?@@3|5giR3S*1p=lP}GN{PFTk#M?;M@M(jUcUrdOWGEc>Xa+o!(QAJJW!s zc1Fr_eVtY7x}NNTX!RnrmX$U2Skek;6NgiT=i!{3P3PA=hGjL(jDKF&zJ8MH;fr5S zPv`H`$o@7q^{1ID)#0Tf+bAof0 z*a8(0iDv%T2_zE&9BA;mdAi66DSm$DPW)Q(ikYXBzk_Co;lKn+scDBM_CsSjOn(T0 z7BbDI_eSkB1^O$i7XG4$9DHq0Cs9&-ia$0x!APvjjA)`7DL(iBTsXH3wvsCL3)a?V z;#%Hepm6|CM*u&15{*m4uED^W0L+(}n}AflSu@MlKKB4VLucvC7Ir=NzJnueTJ%(Q z5GXZeJ!%|4SqK+FjVBt9&i@LkXc4Rm{X?m$6VaDQ3v`+`P%eLT8vyVd4&TMY-sAhF zD3-qj#D&T!INvCoO0);+TfH>80DndUKfi5w_aa$zC6A)74CgHfbB{AZVa9PNyM%;ZEbG7M)*Ca~k@1=3hWbdLKr;#~qY$pd38zzp6V{QuO zJCEQ8bb~l%aIGt!F@$F~43C8AJ?j4rSSp=5t({zdQwMnW7jTN<8gR+Y*CWFIDK9|B zJ}P8GCKC?;YuBZ~4Ye7-<#(VdjJt(E^By=rDinz$wxBa=J@nzl8L;IIFR{rgq=3c& k8w1FN9&9{;!D!-t_FqRbc{Lut3IZwfboFyt=akR{00*`^zyJUM literal 0 HcmV?d00001 diff --git a/report/practice.tex b/report/practice.tex index 6b32298..76c316a 100644 --- a/report/practice.tex +++ b/report/practice.tex @@ -39,6 +39,21 @@ \end{figure} } +\newcommand{\graphplaceholder}[3]{% + \begin{figure}[H] + \centering + \fbox{% + \begin{minipage}[c][4.5cm][c]{0.91\textwidth} + \centering + \textbf{МЕСТО ДЛЯ ГРАФИКА}\\[0.4cm] + #3 + \end{minipage}% + } + \caption{#1} + \label{#2} + \end{figure} +} + \setcounter{page}{2} \newpage @@ -1185,6 +1200,51 @@ \subsection{Бенчмарки} поддерживается сравнение интерпретируемого и JIT-компилируемого способов вычисления выражений. +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{naive-vs-optimizer.png} +\caption{Сравнение времени выполнения запросов при наивном и оптимизированном + построении физического плана.} +\label{fig:benchmark-naive-optimized} +\end{figure} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{optimizer-speedup.png} +\caption{Относительное ускорение выполнения запросов после применения оптимизатора.} +\label{fig:benchmark-speedup} +\end{figure} + +В таблице~\ref{tbl:ssb-benchmark} приведено среднее время выполнения трех +повторений запросов SSB для набора данных масштаба \texttt{sf001}. Ускорение +рассчитывается как отношение времени выполнения наивного плана ко времени +выполнения оптимизированного плана. + +\begin{table}[H] + \centering + \caption{Результаты выполнения запросов Star Schema Benchmark.} + \label{tbl:ssb-benchmark} + \begin{tabular}{|l|r|r|r|} + \hline + Запрос & \texttt{Naive}, мс & \texttt{Optimized}, мс & Ускорение \\ + \hline + \texttt{q1.1} & 8.11 & 6.51 & 1.25 \\ + \texttt{q1.2} & 8.20 & 6.59 & 1.24 \\ + \texttt{q1.3} & 8.00 & 6.58 & 1.22 \\ + \texttt{q2.1} & 8.80 & 9.33 & 0.94 \\ + \texttt{q2.2} & 8.84 & 6.18 & 1.43 \\ + \texttt{q2.3} & 8.68 & 5.80 & 1.50 \\ + \texttt{q3.1} & 35.67 & 5.90 & 6.04 \\ + \texttt{q3.2} & 35.88 & 5.58 & 6.43 \\ + \texttt{q3.3} & 38.05 & 5.86 & 6.49 \\ + \texttt{q3.4} & 37.12 & 5.77 & 6.43 \\ + \texttt{q4.1} & 9.06 & 12.21 & 0.74 \\ + \texttt{q4.2} & 9.05 & 11.12 & 0.81 \\ + \texttt{q4.3} & 9.28 & 6.31 & 1.47 \\ + \hline + \end{tabular} +\end{table} + \subsection{Калибровка стоимостной модели} Для калибровки коэффициентов в стоимостных формулах реализованы отдельные @@ -1204,6 +1264,46 @@ \subsection{Калибровка стоимостной модели} коэффициенты модели. Благодаря этому оптимизатор принимает решения на основе оценок, соответствующих характеристикам реализованного исполнителя. +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{scaling.png} +\caption{Зависимость времени выполнения физических операторов от размера входных + данных.} +\label{fig:operator-benchmark} +\end{figure} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{calibration.png} +\caption{Сопоставление расчетной стоимости физических операторов с фактическим + временем выполнения.} +\label{fig:cost-model-calibration} +\end{figure} + +Стоимостные формулы физических операторов, полученные по результатам +калибровки, приведены в таблице~\ref{tbl:cost-model-coefficients}. + +\begin{table}[H] + \centering + \caption{Стоимостные формулы физических операторов.} + \label{tbl:cost-model-coefficients} + \small + \begin{tabular}{|p{0.40\textwidth}|l|} + \hline + Физический оператор & Формула стоимости \\ + \hline + Последовательное сканирование & $100\,n$ \\ + Фильтрация & $100\,n_{out}$ \\ + Проекция & $22\,n_{out}$ \\ + Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ + Агрегация & $510\,n$ \\ + Соединение вложенными циклами & $70\,n_l n_r$ \\ + Декартово произведение & $104\,n_l n_r$ \\ + Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ + \hline + \end{tabular} +\end{table} + \anonsection{ЗАКЛЮЧЕНИЕ} В ходе практики разработана модельная СУБД и оптимизатор для нее. Программа diff --git a/report/scaling.png b/report/scaling.png new file mode 100644 index 0000000000000000000000000000000000000000..61a1867174c9392642cf9c11b2c26c8c2c03e528 GIT binary patch literal 80847 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%0AvS=1*i`%FnQn{E&~)XAta5g$|7gdU!Hc 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%0AUPO*cwOB?eB|UYy$~Dk{S0V8KWXWY3W& zidy!~yLW@eJo@ZiE)74=Nt%XZ73q#@2jihAgi>9}>RVh{F_ApVc;?Q?lZ_Cpjai{K zbkbAmpN<^U1gc5#u53ujx(C&&saD0Ul0)W7&xVkZ}(duV^-uUt=llsehk3g8vyC-__WDK$U6M z#f3rD&NK}MHtCcKe`T~Kk8;^>ea?|e_$VZ_N>Fy?ed-JcGU(yhVg6#-16L&ckKlsE z@p&s9BB8(au5Jvkc7*d7nCA$^t!HGHBj-qucz2fy*~Ls|3SY|R2d{YTXWT&RcQn5| z9pN~mW)hs>L5m3f9?8o^-M*jW{NNrY@Cct8i4JL_mLgpq(bhR!m}_ng>JiqpTQ<^~ zxqF#LbXVA9p>b(5&$Fk+AYQxHFolDST@G9|z!F0O0Z%(X=AT)1E(s2`!8d7LF{tz3 zJ}v2%I*9xd5XroW9f^QqmJ$$)(-z10;iBNPypyw=6bbGn6H+4@Jid0)mZZP#=LGc+ zy`pYRzjuE-DZjzsFAjh?2plvjm(X|)D`Fri-M)H!#e>=WR{QkX^)RpWprze+ug^>T zl>9fi%d1^CTr6lNhe+)@pB@mj9xe=FY^e}zdW{J8XP2)V;{?lmhTOsv6Y+tQZU^w& zW7kG7Bgh08b%C%C;)|~jb8%C<%SRVQ(Q%j<#8}dof<9%F(#G`fdNz0c4$Ikg$8Oe& zH-G9H3^c_M=YLAPAFzANhqU_u&t>%u+Gj3_i?r&6kUz!lRuTPb-KL)AVaoEi6DAz$ zG(~be!3{<{?&Oh5y zlRg9TuJaZ>d6>2HnV5QJG*4%z=4Sb};b>=FJuVh&JK>x*9->{YlIYrT!n}B;K5}&V7CHBWqB4HlLi*f`T&F0-&x1I%il*7fWTOc@8ZaxFfO{POMJiK0z)dOj3o#3hF z{To-J;D;+HD3EPPqrp7{9v9m$7|La4sJ~Xc;JSoE#YgRveqyQJY*#LFsyC)Y_0z-H@aKwd4JYHn zsc_$JVye6H{yV~iz)ItZ15=R2^(@ugrBGmPB$!7CMz~x3xx8BZb+}y0(Rkzaw*?NH zQA#ywo?|q zhiOj4spa@Ta1L@@cM&1*P(L(}c8GWVZ&)5DN7K8TrQvoFzk9&1{p8y_?!>D!ezEan zE;T3W(O#DZV%t}?w1xDP{O?mE5Gl$gEFR?K)LWrTjr|1bOMiu`5-2+mx@|ZA^3>V1 zg!(>X=aU1ZIDeyL`E@~&4dUzTYrP($4C4V!OLYN<<#gln?wj*>jIV;0ooNHT&B~*Qu`L!$$tX?Z=bg2|cC5CO(DVO$mY4#;=}gWnJypw61<{`JiVB4Xq_v2q?m^V4xrmy)}5G=52g1 zIiWkzS9f4}Vu0@T@ItWB^_qhd%>;*k<`EIam@h=IT{`ZR?(}+M zR(qoP0Ba@~_>K0EMOKhDX#HUYR3%-JRFa&|N2CxiQ9O{$6$J*)s_zK$w5b7Rtid*+L(}lE>Z#@Vb$*n zX*D_>yJS}d@-~j*X zg6NdSH>1%gi4T2rvn^Y||0u_TckByDsMj+2HV+J{P#-gwr=!ScDc_)>9g|SG5XGBa zTAly~+8?k!7dFPHJ6SJ@@#Gm5_cPI$KzpRRXLZOqU)j4XYJ*UMntwe75kj@q5{xt- zjIlp~P3lV}u_Fhdgc&g-`S_@FL{%8Tx!G0h&Ot8-KFk*GZYOz~c&toXNxe}Pxa(&f z>J1JI)gMg}__Y*2kRwoA{nGXk&g>C>=o1L1LK3D!n{Ym6sNFSczEIXO@u5u&J;BFi zD=IAu2@I^{kvQQdb+TdZPV@S{a(yaW1ck0Tt{gy7)P4C|u_9Qpl(26qNj}KQp#cd| z{V4{!-#UPrTUpZq>;CrAN+~4ww02?dZs!#{z19aoEzM{Bdg)fP*;#}2sRvIG*jzQ6 znG?>$N%TQH^hL^9;XSPM?fPt35n-kTcEk%W43qPsv5@%6IelLcFq>~M+!Q}zC`}6t z)R>Q6b08IwM(zZ3G|LS*$J~PsG-%3Nf^8JxsL{!Ln_J*WG23x*l-}NSgsOt+alotH zy6*@YPk4Zn9#)8FI%=Cdy5~_gq)JjQB6Zp(?~{oaSNiZXr4^$@XIxPkW8wTRpjf?# z9RwZF(&x(9ty7P$v>&m4OAfG$%HrP2Jsg&MQx?BwWnUnmq(6@|C1&%W%AEoPNu;-?D5p<_Rb<9*pXTL1sqpYWq zv?VwkHF#LO=DCPgy5R~66oY0^9+EHLUFn~AU1A>Sckj%>*V~g_96)Iv-I1}(2JPa_ z%gQJLyXgSm0^krc0^t_K z*Uyg`^l|)O6aDBMt$Zu5e{y>9v%(n&*481EbZf|BkMRXnCQLDZ-4lZMR?BBmv_+k~ z@6>SGEM}iW4~TyrpR4r*r(Q5P9M4~Hg2OMGp}#;o7zdTa8+x<{4G||j>{t>;kLpjSjK0Uu8lB~7FmIN%((t%A6#9zG6kcp$bOnAmdBj#hzAI{%3sbANUd3oe2TrpU(fani! z7R@;uAX^+t=c9D-?`}WnReqoM_ns$sL8dR@RoQL>585$Y_|zv*kMfK0>j>y#WzjXr z#A^7zITjlV{^4vD9XPYI+%8W`g3Usp)v^29?jl1ge#xBn5J>Pu-?tE(tigt`jzy28 zN9mMG3p9E!%w$oSDq%;TkhGR%!s#1ErUoOo5*wxmG_iy~43Rt_5g1*+&6`(&e52}- z=;)v%?{erycivg*KEkg(kvNW>& z7m!k&6bw;gg+nGv_@=MMXdZFFdZS*5?R_g$WfM(KKAK9?YqmM>Cp}l(kbf^El-SRN z1RGKZx(OhjfariWmsA3aU!W1;@E6-X8ZJoz1IbB=c?WsEcKuacu6t8|>C_*5?+2V( z-S~{29TEmKVxYo1G5Q^BE^6cy;R1uL=^k`&qS_dyrs0arOK3zK{k}m?Zu?r|WVY_x zRgQ((;rAtk02ucIBi&KS$pb((L8acF7Su^09bH{4ppXJI<2_n01S z$$<|%7gbs(UrL`$-pP*L#BQcF%hH{2YDO1N%NmB^1yKEw=4L|(OCdTt7I8ba1 zwh8p?1VPR2^YfZxdM5E(6ZeAASN+`%8s34G(=ZmB%LS+5uO<1+PNsXnq&eoTpD;5s zOE(!86(km^rbUA8Bh~c=!n^8k5QNaAjy$|6^tkA~q`!|Tx!8{M-}jnZo7kkA8F&1O*>*#ZHQ$ z2i)c55xjMMf9I}2YZ23&XCl>}Hlzs$K@%BHFn3n|zv?;&yoPMRaEyzgtOE{C z%d2jv%!06e>fqoOj=ThV2q*W4UTGYQ&h1O-;MycXaS>;Jc-67uw19EC)EVxXi`#%m zuwRo&TqOIhYds3?IDUE}LB7EwGH5554&?uO>fcsMK<2?%ang|LGu` zb8mvhmsVEO#^@qG^J1u-3*-eJTDZR2OE@`@q>z(0jnPInh)2DNh>2N0WCDGXB0y*h zYO}*!hO8_sk>DR1F)`*^Ro?U2!8AO&sUvu(2F6DnbhvD*_!&_9Q;%<{YFC!DgZ(dR! z0?MAv%jQQuE-o%YKG$f#cVxX^HO0Plx)RKIa=Y}H3K;ldNXS&T1Fo)6GbqPb&>0y5 zb!Cg$_jXRw?RiU$IC)-t%RpKAZfV#3w$~P*EZ|-^2-)cMMl}GQ4}TPrp#`TU z7_G+e)eTVNaoI`_a6azDsoN{>zgl{{*Uphm8v>8@7T^zuWQv5gt=p#9>;ozbsTxb^ zN1>T@TejNaYj!eJv~4l?eu)?Sl?2LqvLP+6P-!@a-!m#L+jz%RJkH_U@;eJL% ztwyP&y6(`z7^BkWC56_25Zgcb`qS7L)Xz%Z)bHUbNKu2K*y@I=_ny&wpmgPVex8Ly z;@3Ha^+NVM_Z9^GA zLMimfEz*gBjg1YkvK&q8hqHZ6V=;WWJ6UvkeM;D<=2M~hN_wOpjiEJ^sjD{hx4+N(S+sL95TljJXaqss)~Z}w5gY%D&wjS zydZ|d?m>M323rBgh1P2UQDERH(omU`FcN{V?o~2o<}yJyJw5Vn86M0#_Z*oN3BZ5| zSjAz=ufXnrsF$aR0CXX2VX;Yo3LDJ?d7Y}0f8R-qn8UrML+ap!UtofGtXpbNWPbK6 zRN=1hLgg7%@a4*^Cj2)xa@6i|%#Wg`ptKoyB?>-Mrd$QTNgUtbMr5w8P^GMGiYzG5 zo@QBY1iYh?;q}j31oJDN=!q0X(?qmiN65PS~KbM5?EU zQg{)(vacv4#GU7O&j84N0|t$FGEJ2~f3_BJ7>?T*OzMUaS~>F;T_AzTJ?r*Yt8aJ5 zgzSvD)W1NSrlTYR1j4IP-iN>7vOlisjHfW|95^;d^lc;6#GNpP|Ghhdh&X`dO9#uR z_s>IcSE5Pn0uIa&KtUEmr)<06Ff~zA0K{2!YQp$R*-7mie`w zebA|4$}qZUT~t5B0-=oO6<;qMBcm};i#{(oJvo`KG{FF8H)3-;q*alfwjY!7qbeEe)syq}2cUO8ji_AGx4^eA9kdClgY88XTZAVm2AgVx2u~ zIF-@zx_4;dMY^9cPFvp^$wb0q@fEn=mIc8?(}X^cYA?|AreZ0_dVLL$OaTpA;dOIH z;>=*n?MdEW-C^;D6Evx-)kO5|$nT#MW{W>lC^qSkvNaA44UER zu)o(#nxlmJL^yqzT|k`}6DX_s3B0zKveb5DW9_Tm$pr`GcIFC>R*#H3g50;x;Ja4CkQVqjor~)j^ z0EvgQgxStqVT9mQ2jomwWoBo%B)_BndJLC3*t_&}iXUo`lk3ThXgtsWtU<1wvY`DB z)hYs;UE!Jt2~b!{b~d}k+t)Hio{(YPekBu1weuSje&rw2XV8*30Y|fjkJAn2U`4_? z&ep;Wl;AdTnT_W9>oC`?N;`Z|qs7l0qaT4i!iOt!CxyrZ044-+3=5!Gm^TXUZK zVivkohN{n##;4RB4}?Ao0muAnI}zLpaTMwdapy67am|5Qs=LHvn> zXx>9{ZSRySg|`~>Tadk1r&G!b2@TjCx1fSVzkr%kffbP{}CmM3{FWnvuKY+XYT(-QFV~|6Io;p(0`#ke`E6@*Vr0U%iQ-{8VWBL$KlaifSO4mwY5CS}H^%^5 zX`<#i3h!gI6j=QsfR_QwN3fX~i5EK(+VV!G7Zao^1JP?ifq~i+vb`EkzB`9M-c!j7 z31#`671NTFd)iFWCOpYNY%YZ67=Yz_5Bl=pM3+yD1m7I32j=oolm?tDvAVdmj%+Mc zti_fR8#L0e_dUiUO1FN^{ZUXT%dmj~C8q8=RJM0u&%aT-^53_L2>XnRhSqG8mY3nK zNg>Z7N`)Rf64P?^SwIx5$*2u&F9sS~8dFHr^EeLh&Y5)SndoH*yB4D0>Z-OElt4g~ z}&JT(*gDSHccFz}HEwqkpRL1m!~o1Q~RksGPt+Ur*?AA=ul4 zm)P?R*tLUK))UY)2?WT+h{Qw*SJ(RHPyhTVS{*5NI}?)E^ARns|LVCB{`2kaj>N>Y zJlH*e*XZ|u?h|}t`@=t`3qHV}6t)zw7dI+wH()O!v2V>!z7ES+^6uDk-xI=C2>hTU z^=afO(a&F$hlG87eGoATi4!~E`e3gd08=1*-L2YOY|vAMc5CAQCo=p$m0f!{lB4(Q|Ot&4{ zDibmdM~*Fn*dfexD%aY{DcQM=)5SdHGTGF)43b+Z3OkAzj8ci2!Q?W`?BCZu`#C+& zxqp9oJm0+E;0|u{(dXebjU9m&-Na#^KW+Tmb@r&KEY{TDlYxNm3C}!DZsgIWJNe|)f>DU4aNT^D7 zwUCZ)cFvsSG$f8N2TGCx+9O<=u9WU8p@S?kYO?BOk|?XBvMV!`-(!`%r6auEPBhtl zvC9pYR1+4 zCZ)9eL{52?amU{uW1uDeUKD4Wca7hMi$QcH)7N&6_WsaOjdwwzPjVWB8}~KouvGis z2Nh>{$EHO64i0`8v5U5LO0F&rT&&sGc zby1+crZ_cj&F>Qz{g1y0cZ1{KnbH>);gtd5z>WUh)}Y_h*nFG>V&1f}9e?!NukaWoqK$twek zyuWfd&!Xq+tzNzQXwRegFeG*WUB@g<=K~}r7r3m44&v>sEOfLiN6cKHrPU{XZtYaZ zW69QHD~SzSp~otgq3g@f+R4VnWob>^vXLNCw>#d3sRL+6H8!|SCu%yCm6i4f4)h4q zt({`(j_H}2E<6olUlcOOFW6iBj1DF2yH(36`mlx_1&FKsO3!Yt4E$Us-p%WZe&~yY z@^RP02+!dVtOKD!wcOnNC-7~9@G^-iz6Y{ofvXYzoxSwluAxykLE@Dw#$ls=gmkG9 zOFA2EM6Ih&#m^Ra-j1~BAt2uu1!+a z645u1Ht;PSixddR3b9fVH!(4B{}1$@Gx>o6Hi#34#X=5vEcqTUb(cI{Qr0%o-?r1% zR*gN`M=u0Rx}Qa=&!Wa4d;4Oq z#qtN}Isdn%qOnKq71e%+jBgoeuTddImLCafufhY?_w$7V zamF@b*9}D9P$*@JrX$>@$GseOJ&2E6$%o>veqS5R{&1U16!PSs`bFyO(P^N7HB!px z$~SR-Hc8nA?j;2UBw*tYpy3E?P76DgnM1Uyk*O2fr+0-0PK^4)CP2D5w-x-xTTXr? zsd%^Kcqk^uz&o79QkzKjEqx5_r#1_h_{Cne!IZ#v^G03=s7Er6l2p~n5|xU`xkEb( zbPXG?NY^*cH}%NE&cW1W3P}{44mhO=K0}Ny-C5A>4xd_I?v`sB>_ei4w}HqV{TPa` z_TD_0;w^~7`U^aqW6RgXH~Z&ESw$eh%tW;D((cvl0~|WaxxG$bsSyjcz zdsRPrfS;b;dBLvIdi_aFG2s;Udj2i9qY!c1%i7+49-s=hH?;|KTOD&;b{{*I!MTp% zzC6*ZC?n7b=ojb?ixoehV>fxTkFLIcBx<39k_zCT({1ZOC-wWhe@;7}8zX zDON%H(b{;IQ4!o7vr2{N@i7uergB*029B;F9^o7Ci>LYp6 zK1k%lM6{%xZ9#;&m7boy&6!HA*5D;OJubG#_aK|4^Wal|+wMJk?$}9G5L#nmWADT< zaNVrKd8)jYC(zHlX6~=MV3qBk@X0K-Jb3}?>&=dX14Vu7AsJf<#}|y3J_hL{=Qr|s zz=3uUNnzj`f)Lgf`WFIMaR@JuwoZkX{nnYwAj#<7k0T8j48~knt;qe#th{@1D2X67 zI}s2-(76*=LMu;}Ye~{GEBS?U=ccR9)tvs|QM}&cCr?EDvPna<6uu4?{rL2n3HOy0 z_9XwDIQIy{WG@^&1v=(_UvCY6(GQqJMyC{B9ROSN*JK^LytLG$q*??J_~xV7?CaA8 z3(mHCZJYBXv@2o>vOuEGmigLzGxPPM?yB>BnZc`UsMHfp`^==sDvS{WtwuYi#m2@a zEkX@FpZz%_Rn*}NtAVwF8PYNYc0q&mIpKy?V6Q6;3}V2k-16~t;pLTkuSzJ&AIJq{hXxdqRhaoR^3WXRq)^%3IgTO~ zz62{~(R+Q^X$TmwlP8Wt(*jzz5Fa@PEdXK*8?g%&_hI(V%&Tz)-tyUVOiW%dIZZV| zAd&c`g}l|k1MGq+gGzeck)nK7>up#Ed9i5NW(Jb))D$E(/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 34521, + "real_time": 2.0956768459664425e+04, + "cpu_time": 2.0850844152834507e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 34521, + "real_time": 2.4071903450188511e+04, + "cpu_time": 2.3901399727701977e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 34521, + "real_time": 2.2447170504518679e+04, + "cpu_time": 2.2296074881955916e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.2491947471457202e+04, + "cpu_time": 2.2349439587497462e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.2447170504518683e+04, + "cpu_time": 2.2296074881955912e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5580501387545544e+03, + "cpu_time": 1.5259777759478854e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.9271464408840328e-02, + "cpu_time": 6.8278122588878470e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 34621, + "real_time": 2.1451438086390688e+04, + "cpu_time": 2.1330684237890302e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 34621, + "real_time": 2.0835122295628222e+04, + "cpu_time": 2.0741762340775836e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 34621, + "real_time": 1.9800852661814268e+04, + "cpu_time": 1.9729751278125987e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.0695804347944391e+04, + "cpu_time": 2.0600732618930710e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.0835122295628222e+04, + "cpu_time": 2.0741762340775840e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.3406545238738693e+02, + "cpu_time": 8.0973058621220582e+02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.0301185610610510e-02, + "cpu_time": 3.9305912133829508e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 34006, + "real_time": 1.9905235928914706e+04, + "cpu_time": 1.9806883432335464e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 34006, + "real_time": 2.0232451567379769e+04, + "cpu_time": 2.0150346409457165e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 34006, + "real_time": 1.9979601540792919e+04, + "cpu_time": 1.9905176204199270e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.0039096345695798e+04, + "cpu_time": 1.9954135348663967e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.9979601540792919e+04, + "cpu_time": 1.9905176204199270e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.7152912980545207e+02, + "cpu_time": 1.7688824871481089e+02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 8.5597237942465817e-03, + "cpu_time": 8.8647413492990296e-03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 34063, + "real_time": 1.9751227049826088e+04, + "cpu_time": 1.9676696679681751e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 34063, + "real_time": 1.9815156415895137e+04, + "cpu_time": 1.9738392008924649e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 34063, + "real_time": 1.9429818571364620e+04, + "cpu_time": 1.9358088336317978e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.9665400679028615e+04, + "cpu_time": 1.9591059008308122e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.9751227049826088e+04, + "cpu_time": 1.9676696679681751e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.0650892971011589e+02, + "cpu_time": 2.0410310854664775e+02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.0501130034453817e-02, + "cpu_time": 1.0418176396696689e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 9523, + "real_time": 6.7734826314987717e+04, + "cpu_time": 6.6976087892470867e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 9523, + "real_time": 7.4560993069410833e+04, + "cpu_time": 7.3580527459834018e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 9523, + "real_time": 7.2185913472089000e+04, + "cpu_time": 7.1298075606426384e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.1493910952162521e+04, + "cpu_time": 7.0618230319577080e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.2185913472089000e+04, + "cpu_time": 7.1298075606426384e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.4652977874184539e+03, + "cpu_time": 3.3542954118975481e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.8469831084455968e-02, + "cpu_time": 4.7499001273721468e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 8590, + "real_time": 7.2206211525310428e+04, + "cpu_time": 7.1370953317811305e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 8590, + "real_time": 7.1837302561354969e+04, + "cpu_time": 7.0986034225844036e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 8590, + "real_time": 6.9535109429968230e+04, + "cpu_time": 6.8780370430733412e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.1192874505544547e+04, + "cpu_time": 7.0379119324796251e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.1837302561354954e+04, + "cpu_time": 7.0986034225844036e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.4474675264996595e+03, + "cpu_time": 1.3978695205702243e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.0331634823748123e-02, + "cpu_time": 1.9861992221288299e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 9950, + "real_time": 7.1095941407224585e+04, + "cpu_time": 7.0266699899497558e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 9950, + "real_time": 7.4232385930226155e+04, + "cpu_time": 7.3228391859296491e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 9950, + "real_time": 7.8242160603649754e+04, + "cpu_time": 7.7059992261306659e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.4523495980366817e+04, + "cpu_time": 7.3518361340033574e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.4232385930226155e+04, + "cpu_time": 7.3228391859296491e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5819926014453490e+03, + "cpu_time": 3.4059164703608490e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.8065278665791834e-02, + "cpu_time": 4.6327426350105498e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 9612, + "real_time": 7.8121309405331005e+04, + "cpu_time": 7.6963363503953427e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 9612, + "real_time": 6.8386549001906576e+04, + "cpu_time": 6.7663309821056770e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 9612, + "real_time": 6.5304516334599408e+04, + "cpu_time": 6.4723655326674838e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.0604124913945663e+04, + "cpu_time": 6.9783442883894997e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.8386549001906576e+04, + "cpu_time": 6.7663309821056770e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.6899759602507065e+03, + "cpu_time": 6.3893534273306313e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 9.4753330182969372e-02, + "cpu_time": 9.1559733416437653e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 8005, + "real_time": 8.7787281075910752e+04, + "cpu_time": 8.6833757276702265e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 8005, + "real_time": 9.4056740163364142e+04, + "cpu_time": 9.2897929419112756e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 8005, + "real_time": 8.4392947408685955e+04, + "cpu_time": 8.3606973141786482e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.8745656215986950e+04, + "cpu_time": 8.7779553279200496e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.7787281075910738e+04, + "cpu_time": 8.6833757276702279e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.9026609900321755e+03, + "cpu_time": 4.7171352212497422e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 5.5243954454516651e-02, + "cpu_time": 5.3738428199172378e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 8132, + "real_time": 8.8670200074989538e+04, + "cpu_time": 8.7742495450073635e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 8132, + "real_time": 9.5884095057348080e+04, + "cpu_time": 9.4661022503689237e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 8132, + "real_time": 9.4811416625880011e+04, + "cpu_time": 9.3695866945401081e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.3121903919405871e+04, + "cpu_time": 9.2033128299721327e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.4811416625880011e+04, + "cpu_time": 9.3695866945401067e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.8924169988747799e+03, + "cpu_time": 3.7470026689048532e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.1799156106640034e-02, + "cpu_time": 4.0713629299898517e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 8535, + "real_time": 8.7415463152392287e+04, + "cpu_time": 8.6224500761569769e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 8535, + "real_time": 8.5500912711091936e+04, + "cpu_time": 8.4545625659050886e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 8535, + "real_time": 8.0450461627986442e+04, + "cpu_time": 7.9660843819566682e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.4455612497156879e+04, + "cpu_time": 8.3476990080062445e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.5500912711091936e+04, + "cpu_time": 8.4545625659050871e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5982358124065668e+03, + "cpu_time": 3.4098217861917587e+03, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.2605052595263558e-02, + "cpu_time": 4.0847445301051367e-02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 8615, + "real_time": 7.9806666743270805e+04, + "cpu_time": 7.9028190133488184e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 8615, + "real_time": 8.0841487405394131e+04, + "cpu_time": 8.0040353105049435e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 8615, + "real_time": 8.0566300986022805e+04, + "cpu_time": 7.9794792571096725e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_mean", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.0404818378229247e+04, + "cpu_time": 7.9621111936544781e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_median", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.0566300986022805e+04, + "cpu_time": 7.9794792571096739e+04, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_stddev", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.3597660877733244e+02, + "cpu_time": 5.2796040795162992e+02, + "time_unit": "ns" + }, + { + "name": "BM_SQL/real_time_cv", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "BM_SQL/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.6659762385889018e-03, + "cpu_time": 6.6309097563520070e-03, + "time_unit": "ns" + } + ] +} diff --git a/research/benchmark-results/ssb-sf001.json b/research/benchmark-results/ssb-sf001.json new file mode 100644 index 0000000..46f78a1 --- /dev/null +++ b/research/benchmark-results/ssb-sf001.json @@ -0,0 +1,3240 @@ +{ + "context": { + "date": "2026-06-02T01:16:41+03:00", + "host_name": "nixos", + "executable": "./build-release/bin/benchmarks", + "num_cpus": 8, + "mhz_per_cpu": 4200, + "cpu_scaling_enabled": true, + "caches": [ + { + "type": "Data", + "level": 1, + "size": 49152, + "num_sharing": 2 + }, + { + "type": "Instruction", + "level": 1, + "size": 32768, + "num_sharing": 2 + }, + { + "type": "Unified", + "level": 2, + "size": 1310720, + "num_sharing": 2 + }, + { + "type": "Unified", + "level": 3, + "size": 8388608, + "num_sharing": 8 + } + ], + "load_avg": [0.800293,0.489258,0.491211], + "library_version": "v1.9.0", + "library_build_type": "release", + "json_schema_version": 1 + }, + "benchmarks": [ + { + "name": "SSB/q2.1/Interpreted/Naive/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 74, + "real_time": 9.5399927162656542e+06, + "cpu_time": 9.4592325405405406e+06, + "time_unit": "ns", + "execution_us": 9.5399293783783778e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 74, + "real_time": 9.5605493782361895e+06, + "cpu_time": 9.4841847567567565e+06, + "time_unit": "ns", + "execution_us": 9.5604816216216223e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 74, + "real_time": 9.5072076622494254e+06, + "cpu_time": 9.4303343648648672e+06, + "time_unit": "ns", + "execution_us": 9.5070937837837828e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_mean", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.5359165855837557e+06, + "cpu_time": 9.4579172207207214e+06, + "time_unit": "ns", + "execution_us": 9.5358349279279282e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_median", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.5399927162656542e+06, + "cpu_time": 9.4592325405405406e+06, + "time_unit": "ns", + "execution_us": 9.5399293783783778e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_stddev", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.6903453256290217e+04, + "cpu_time": 2.6949280628643854e+04, + "time_unit": "ns", + "execution_us": 2.6928399517925090e+01, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_cv", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.8212760687276171e-03, + "cpu_time": 2.8493885069751368e-03, + "time_unit": "ns", + "execution_us": 2.8239162822606082e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 54, + "real_time": 1.0037977036888523e+07, + "cpu_time": 9.9676256296296343e+06, + "time_unit": "ns", + "execution_us": 1.0037876462962964e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.7225999999999999e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 54, + "real_time": 9.9924028518553637e+06, + "cpu_time": 9.9165896666666660e+06, + "time_unit": "ns", + "execution_us": 9.9923292222222226e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.8481600000000003e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 54, + "real_time": 1.0025189036915198e+07, + "cpu_time": 9.9565894629629608e+06, + "time_unit": "ns", + "execution_us": 1.0025109962962963e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.9701099999999997e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_mean", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0018522975219695e+07, + "cpu_time": 9.9469349197530858e+06, + "time_unit": "ns", + "execution_us": 1.0018438549382716e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.1802900000000000e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_median", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0025189036915200e+07, + "cpu_time": 9.9565894629629608e+06, + "time_unit": "ns", + "execution_us": 1.0025109962962963e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.9701099999999997e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_stddev", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.3506996177584002e+04, + "cpu_time": 2.6852840303399800e+04, + "time_unit": "ns", + "execution_us": 2.3495076168409312e+01, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.7359587487644710e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_cv", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.3463534730346343e-03, + "cpu_time": 2.6996095299743222e-03, + "time_unit": "ns", + "execution_us": 2.3451834387761910e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 5.7894753716120954e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 76, + "real_time": 8.7039228421513382e+06, + "cpu_time": 8.6439320526315812e+06, + "time_unit": "ns", + "execution_us": 8.7038643815789474e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 76, + "real_time": 8.6583044605121315e+06, + "cpu_time": 8.5988706052631680e+06, + "time_unit": "ns", + "execution_us": 8.6582170526315804e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 76, + "real_time": 9.3222038947140779e+06, + "cpu_time": 9.2485660657894760e+06, + "time_unit": "ns", + "execution_us": 9.3221419999999998e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_mean", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.8948103991258480e+06, + "cpu_time": 8.8304562412280738e+06, + "time_unit": "ns", + "execution_us": 8.8947411447368431e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_median", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.7039228421513382e+06, + "cpu_time": 8.6439320526315812e+06, + "time_unit": "ns", + "execution_us": 8.7038643815789474e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_stddev", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.7083575776777492e+05, + "cpu_time": 3.6279402221624833e+05, + "time_unit": "ns", + "execution_us": 3.7084300987039086e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_cv", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.1691249293432882e-02, + "cpu_time": 4.1084402923873581e-02, + "time_unit": "ns", + "execution_us": 4.1692389225944419e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 82, + "real_time": 7.6156441585825216e+06, + "cpu_time": 7.5675113902438954e+06, + "time_unit": "ns", + "execution_us": 7.6155775121951219e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.6565400000000000e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 82, + "real_time": 7.1717341218950097e+06, + "cpu_time": 7.1357460243902411e+06, + "time_unit": "ns", + "execution_us": 7.1716639268292683e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 3.8833100000000002e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 82, + "real_time": 6.8620688536789315e+06, + "cpu_time": 6.8320234878048692e+06, + "time_unit": "ns", + "execution_us": 6.8619944512195125e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.0497500000000002e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_mean", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.2164823780521527e+06, + "cpu_time": 7.1784269674796686e+06, + "time_unit": "ns", + "execution_us": 7.2164119634146336e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.1965333333333331e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_median", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.1717341218950078e+06, + "cpu_time": 7.1357460243902421e+06, + "time_unit": "ns", + "execution_us": 7.1716639268292683e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.0497500000000002e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_stddev", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.7877531580342352e+05, + "cpu_time": 3.6959688964571577e+05, + "time_unit": "ns", + "execution_us": 3.7877915403441733e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.0697686473967188e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_cv", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 5.2487527296596996e-02, + "cpu_time": 5.1487170005364069e-02, + "time_unit": "ns", + "execution_us": 5.2488571322525782e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 9.6979299915725334e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 78, + "real_time": 9.1113512307623383e+06, + "cpu_time": 9.0432772435897458e+06, + "time_unit": "ns", + "execution_us": 9.1112552948717948e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 78, + "real_time": 8.6346743462341595e+06, + "cpu_time": 8.5800766153846048e+06, + "time_unit": "ns", + "execution_us": 8.6344918846153851e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 78, + "real_time": 8.5204761793974247e+06, + "cpu_time": 8.4644627435897533e+06, + "time_unit": "ns", + "execution_us": 8.5202679230769245e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_mean", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.7555005854646415e+06, + "cpu_time": 8.6959388675213698e+06, + "time_unit": "ns", + "execution_us": 8.7553383675213681e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_median", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.6346743462341595e+06, + "cpu_time": 8.5800766153846048e+06, + "time_unit": "ns", + "execution_us": 8.6344918846153851e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_stddev", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.1342075018464419e+05, + "cpu_time": 3.0630801892083330e+05, + "time_unit": "ns", + "execution_us": 3.1347954116386535e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_cv", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 3.5797010933328766e-02, + "cpu_time": 3.5224260840295132e-02, + "time_unit": "ns", + "execution_us": 3.5804389048713747e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 100, + "real_time": 6.8578639200131865e+06, + "cpu_time": 6.8280424500000151e+06, + "time_unit": "ns", + "execution_us": 6.8578044700000000e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.2579700000000000e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 100, + "real_time": 6.7883046199858654e+06, + "cpu_time": 6.7604466500000097e+06, + "time_unit": "ns", + "execution_us": 6.7882362399999993e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.2811300000000000e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 100, + "real_time": 6.8803217500681058e+06, + "cpu_time": 6.8523420499999868e+06, + "time_unit": "ns", + "execution_us": 6.8802654000000002e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.2294300000000001e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_mean", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.8421634300223850e+06, + "cpu_time": 6.8136103833333375e+06, + "time_unit": "ns", + "execution_us": 6.8421020366666653e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.2561766666666665e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_median", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.8578639200131865e+06, + "cpu_time": 6.8280424500000151e+06, + "time_unit": "ns", + "execution_us": 6.8578044700000000e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.2579700000000000e+02, + "plan_cost": 6.5429700000000000e+05 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_stddev", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.7975692768569374e+04, + "cpu_time": 4.7617271514498192e+04, + "time_unit": "ns", + "execution_us": 4.7981938081231597e+01, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.5896612391110088e+00, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_cv", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 7.0117724107640056e-03, + "cpu_time": 6.9885521530514911e-03, + "time_unit": "ns", + "execution_us": 7.0127481034479621e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.1478096008044622e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 18, + "real_time": 3.8937311166793935e+07, + "cpu_time": 3.8712069666666716e+07, + "time_unit": "ns", + "execution_us": 3.8937161388888890e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 18, + "real_time": 3.9064163278251521e+07, + "cpu_time": 3.8822397722222254e+07, + "time_unit": "ns", + "execution_us": 3.9063921277777779e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 18, + "real_time": 3.8310177499725901e+07, + "cpu_time": 3.8103214999999970e+07, + "time_unit": "ns", + "execution_us": 3.8310018666666670e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_mean", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.8770550648257114e+07, + "cpu_time": 3.8545894129629649e+07, + "time_unit": "ns", + "execution_us": 3.8770367111111111e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_median", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.8937311166793935e+07, + "cpu_time": 3.8712069666666709e+07, + "time_unit": "ns", + "execution_us": 3.8937161388888890e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_stddev", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.0370836189274536e+05, + "cpu_time": 3.8731986628299789e+05, + "time_unit": "ns", + "execution_us": 4.0367999093955950e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_cv", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.0412758012011717e-02, + "cpu_time": 1.0048278163698658e-02, + "time_unit": "ns", + "execution_us": 1.0412075536521546e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 110, + "real_time": 6.2202605272018854e+06, + "cpu_time": 6.1849632818181701e+06, + "time_unit": "ns", + "execution_us": 6.2202009818181823e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.9295580000000000e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 110, + "real_time": 6.0389436180809168e+06, + "cpu_time": 6.0085279818181582e+06, + "time_unit": "ns", + "execution_us": 6.0388967363636357e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.8750630000000001e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 110, + "real_time": 6.2369481182858264e+06, + "cpu_time": 6.2012304999999981e+06, + "time_unit": "ns", + "execution_us": 6.2368883272727271e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.1177420000000002e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_mean", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.1653840878562098e+06, + "cpu_time": 6.1315739212121079e+06, + "time_unit": "ns", + "execution_us": 6.1653286818181814e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.9741210000000001e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_median", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.2202605272018863e+06, + "cpu_time": 6.1849632818181692e+06, + "time_unit": "ns", + "execution_us": 6.2202009818181823e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.9295580000000000e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_stddev", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0981809150501342e+05, + "cpu_time": 1.0687087067044435e+05, + "time_unit": "ns", + "execution_us": 1.0981072123498265e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.2732898329523852e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_cv", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.7812043814321183e-02, + "cpu_time": 1.7429598345169717e-02, + "time_unit": "ns", + "execution_us": 1.7811008447744105e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.4499077460418344e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 18, + "real_time": 3.9345425389506601e+07, + "cpu_time": 3.9083877999999970e+07, + "time_unit": "ns", + "execution_us": 3.9345259055555551e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 18, + "real_time": 3.7325661277767114e+07, + "cpu_time": 3.7112491444444530e+07, + "time_unit": "ns", + "execution_us": 3.7325462888888891e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 18, + "real_time": 3.7373497555866688e+07, + "cpu_time": 3.7160567166666701e+07, + "time_unit": "ns", + "execution_us": 3.7373306833333336e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_mean", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.8014861407713458e+07, + "cpu_time": 3.7785645537037067e+07, + "time_unit": "ns", + "execution_us": 3.8014676259259257e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_median", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.7373497555866681e+07, + "cpu_time": 3.7160567166666701e+07, + "time_unit": "ns", + "execution_us": 3.7373306833333336e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_stddev", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.1525504152139013e+06, + "cpu_time": 1.1245592312922264e+06, + "time_unit": "ns", + "execution_us": 1.1525667850952459e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_cv", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 3.0318416864727582e-02, + "cpu_time": 2.9761546092680780e-02, + "time_unit": "ns", + "execution_us": 3.0318995148998922e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 112, + "real_time": 6.9647932320679370e+06, + "cpu_time": 6.8685307321428703e+06, + "time_unit": "ns", + "execution_us": 6.9647337946428579e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.7715730000000001e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 112, + "real_time": 6.7527474464960899e+06, + "cpu_time": 6.7025273303571437e+06, + "time_unit": "ns", + "execution_us": 6.7526715267857144e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.7676240000000000e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 112, + "real_time": 5.9284909910794729e+06, + "cpu_time": 5.9033411696428452e+06, + "time_unit": "ns", + "execution_us": 5.9284348482142859e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.6728640000000000e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_mean", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.5486772232144997e+06, + "cpu_time": 6.4914664107142864e+06, + "time_unit": "ns", + "execution_us": 6.5486133898809530e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.7373536666666664e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_median", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.7527474464960890e+06, + "cpu_time": 6.7025273303571446e+06, + "time_unit": "ns", + "execution_us": 6.7526715267857144e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.7676240000000000e+03, + "plan_cost": 8.1708300000000000e+05 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_stddev", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.4746148329547106e+05, + "cpu_time": 5.1605014944297587e+05, + "time_unit": "ns", + "execution_us": 5.4745654532576668e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 5.5884581776498678e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_cv", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 8.3598788676706656e-02, + "cpu_time": 7.9496698710668140e-02, + "time_unit": "ns", + "execution_us": 8.3598849517014906e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 3.2166497155251265e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 72, + "real_time": 9.8714068056627475e+06, + "cpu_time": 9.8088458194443993e+06, + "time_unit": "ns", + "execution_us": 9.8713369444444452e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 72, + "real_time": 9.8148878751089796e+06, + "cpu_time": 9.7541922638888992e+06, + "time_unit": "ns", + "execution_us": 9.8148010694444456e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 72, + "real_time": 9.8309506667849049e+06, + "cpu_time": 9.7578262638888806e+06, + "time_unit": "ns", + "execution_us": 9.8308839166666658e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_mean", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.8390817825188767e+06, + "cpu_time": 9.7736214490740579e+06, + "time_unit": "ns", + "execution_us": 9.8390073101851849e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_median", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.8309506667849030e+06, + "cpu_time": 9.7578262638888806e+06, + "time_unit": "ns", + "execution_us": 9.8308839166666658e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_stddev", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.9123592842815324e+04, + "cpu_time": 3.0559265206945231e+04, + "time_unit": "ns", + "execution_us": 2.9130197943231966e+01, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_cv", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.9599909307146217e-03, + "cpu_time": 3.1267084945100238e-03, + "time_unit": "ns", + "execution_us": 2.9606846529198982e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 97, + "real_time": 6.7420687009496419e+06, + "cpu_time": 6.6998269278350407e+06, + "time_unit": "ns", + "execution_us": 6.7420070206185565e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.8372300000000000e+03, + "plan_cost": 8.4173300000000000e+05 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 97, + "real_time": 6.7336789587963866e+06, + "cpu_time": 6.6964097628865652e+06, + "time_unit": "ns", + "execution_us": 6.7335818453608244e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.7550090000000000e+03, + "plan_cost": 8.4173300000000000e+05 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 97, + "real_time": 6.7037841133814128e+06, + "cpu_time": 6.6609851855669953e+06, + "time_unit": "ns", + "execution_us": 6.7037164226804125e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.6368679999999999e+03, + "plan_cost": 8.4173300000000000e+05 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_mean", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.7265105910424804e+06, + "cpu_time": 6.6857406254295334e+06, + "time_unit": "ns", + "execution_us": 6.7264350962199314e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.7430356666666667e+03, + "plan_cost": 8.4173300000000000e+05 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_median", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.7336789587963866e+06, + "cpu_time": 6.6964097628865642e+06, + "time_unit": "ns", + "execution_us": 6.7335818453608244e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.7550090000000000e+03, + "plan_cost": 8.4173300000000000e+05 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_stddev", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.0123780299044145e+04, + "cpu_time": 2.1506815342452126e+04, + "time_unit": "ns", + "execution_us": 2.0120872000614874e+01, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.0071620174695735e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_cv", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.9917116797292288e-03, + "cpu_time": 3.2168186813365043e-03, + "time_unit": "ns", + "execution_us": 2.9913128890401756e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.6907625445271120e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 82, + "real_time": 8.3701032438889015e+06, + "cpu_time": 8.3232259512195010e+06, + "time_unit": "ns", + "execution_us": 8.3700274512195119e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 82, + "real_time": 8.3095583047507694e+06, + "cpu_time": 8.2580036951219542e+06, + "time_unit": "ns", + "execution_us": 8.3095001707317060e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 82, + "real_time": 8.3321985732210325e+06, + "cpu_time": 8.2793346707317252e+06, + "time_unit": "ns", + "execution_us": 8.3321304878048777e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_mean", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.3372867072868990e+06, + "cpu_time": 8.2868547723577246e+06, + "time_unit": "ns", + "execution_us": 8.3372193699186973e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_median", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.3321985732210316e+06, + "cpu_time": 8.2793346707317242e+06, + "time_unit": "ns", + "execution_us": 8.3321304878048777e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_stddev", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0591489748300475e+04, + "cpu_time": 3.3255069071954960e+04, + "time_unit": "ns", + "execution_us": 3.0582845873257334e+01, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_cv", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 3.6692380653724076e-03, + "cpu_time": 4.0129904512002717e-03, + "time_unit": "ns", + "execution_us": 3.6682309192441905e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 96, + "real_time": 7.0156404894987643e+06, + "cpu_time": 6.9773537500000075e+06, + "time_unit": "ns", + "execution_us": 7.0155440833333332e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.0377199999999999e+02, + "plan_cost": 7.0505700000000000e+05 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 96, + "real_time": 7.0003509583026851e+06, + "cpu_time": 6.9640076458333442e+06, + "time_unit": "ns", + "execution_us": 7.0002539895833334e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.1572300000000001e+02, + "plan_cost": 7.0505700000000000e+05 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 96, + "real_time": 7.0112785000067865e+06, + "cpu_time": 6.9756842395833535e+06, + "time_unit": "ns", + "execution_us": 7.0112306874999995e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.8978700000000001e+02, + "plan_cost": 7.0505700000000000e+05 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_mean", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.0090899826027453e+06, + "cpu_time": 6.9723485451389020e+06, + "time_unit": "ns", + "execution_us": 7.0090095868055550e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.0309399999999999e+02, + "plan_cost": 7.0505700000000000e+05 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_median", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.0112785000067865e+06, + "cpu_time": 6.9756842395833535e+06, + "time_unit": "ns", + "execution_us": 7.0112306874999995e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.0377199999999999e+02, + "plan_cost": 7.0505700000000000e+05 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_stddev", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.8762076766789150e+03, + "cpu_time": 7.2715037772238584e+03, + "time_unit": "ns", + "execution_us": 7.8833183330908740e+00, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.2981286030281781e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_cv", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.1237133060395062e-03, + "cpu_time": 1.0429059491429938e-03, + "time_unit": "ns", + "execution_us": 1.1247406977344136e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.3917624500387904e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 19, + "real_time": 3.9211451842627294e+07, + "cpu_time": 3.8979828157894909e+07, + "time_unit": "ns", + "execution_us": 3.9211177105263159e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 19, + "real_time": 4.4341554473871119e+07, + "cpu_time": 4.3979117894737087e+07, + "time_unit": "ns", + "execution_us": 4.4341388578947372e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 19, + "real_time": 3.9951646631571315e+07, + "cpu_time": 3.9624417210526310e+07, + "time_unit": "ns", + "execution_us": 3.9951415210526313e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_mean", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.1168217649356566e+07, + "cpu_time": 4.0861121087719433e+07, + "time_unit": "ns", + "execution_us": 4.1167993631578953e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_median", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.9951646631571315e+07, + "cpu_time": 3.9624417210526310e+07, + "time_unit": "ns", + "execution_us": 3.9951415210526313e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_stddev", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.7729987437357800e+06, + "cpu_time": 2.7194304234752706e+06, + "time_unit": "ns", + "execution_us": 2.7730515199158563e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_cv", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.7357755619986623e-02, + "cpu_time": 6.6553005671021084e-02, + "time_unit": "ns", + "execution_us": 6.7359404121864142e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 104, + "real_time": 6.8156256249774462e+06, + "cpu_time": 6.7677546346154129e+06, + "time_unit": "ns", + "execution_us": 6.8155434519230766e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.3639480000000001e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 104, + "real_time": 7.9270326922806604e+06, + "cpu_time": 7.8430371923076874e+06, + "time_unit": "ns", + "execution_us": 7.9269643942307694e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5024209999999998e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 104, + "real_time": 7.2504763558334578e+06, + "cpu_time": 7.1795292692307970e+06, + "time_unit": "ns", + "execution_us": 7.2504182500000006e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.4591250000000000e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_mean", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.3310448910305211e+06, + "cpu_time": 7.2634403653846337e+06, + "time_unit": "ns", + "execution_us": 7.3309753653846146e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.7751646666666666e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_median", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.2504763558334587e+06, + "cpu_time": 7.1795292692307970e+06, + "time_unit": "ns", + "execution_us": 7.2504182500000006e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.4591250000000000e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_stddev", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.6006685668833507e+05, + "cpu_time": 5.4253013627135591e+05, + "time_unit": "ns", + "execution_us": 5.6007250814457188e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.3161776108049196e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_cv", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 7.6396593529739890e-02, + "cpu_time": 7.4693273294689805e-02, + "time_unit": "ns", + "execution_us": 7.6398088962230201e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 3.5580798386806484e-01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 64, + "real_time": 1.1331777671784949e+07, + "cpu_time": 1.1222810328125000e+07, + "time_unit": "ns", + "execution_us": 1.1331710281250000e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 64, + "real_time": 1.0571693093652356e+07, + "cpu_time": 1.0485617125000069e+07, + "time_unit": "ns", + "execution_us": 1.0571592640625000e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 64, + "real_time": 9.9321193904415853e+06, + "cpu_time": 9.8627125781249888e+06, + "time_unit": "ns", + "execution_us": 9.9319845156249994e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_mean", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0611863385292964e+07, + "cpu_time": 1.0523713343750019e+07, + "time_unit": "ns", + "execution_us": 1.0611762479166668e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_median", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0571693093652356e+07, + "cpu_time": 1.0485617125000069e+07, + "time_unit": "ns", + "execution_us": 1.0571592640625000e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_stddev", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.0069327482225641e+05, + "cpu_time": 6.8084870845222904e+05, + "time_unit": "ns", + "execution_us": 7.0072695587149144e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_cv", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.6029240047827120e-02, + "cpu_time": 6.4696622400550435e-02, + "time_unit": "ns", + "execution_us": 6.6033041848343271e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 99, + "real_time": 8.4135951312621031e+06, + "cpu_time": 8.3329886666666716e+06, + "time_unit": "ns", + "execution_us": 8.4135333232323228e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.0316160000000000e+03, + "plan_cost": 8.4170300000000000e+05 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 99, + "real_time": 7.9685093636854999e+06, + "cpu_time": 7.9010814444444580e+06, + "time_unit": "ns", + "execution_us": 7.9684414141414136e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.8065950000000000e+03, + "plan_cost": 8.4170300000000000e+05 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 99, + "real_time": 7.5900591414532335e+06, + "cpu_time": 7.5348109191919388e+06, + "time_unit": "ns", + "execution_us": 7.5899939898989905e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.0731710000000000e+03, + "plan_cost": 8.4170300000000000e+05 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_mean", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.9907212121336116e+06, + "cpu_time": 7.9229603434343562e+06, + "time_unit": "ns", + "execution_us": 7.9906562424242420e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.3037940000000001e+03, + "plan_cost": 8.4170300000000000e+05 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_median", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.9685093636854999e+06, + "cpu_time": 7.9010814444444580e+06, + "time_unit": "ns", + "execution_us": 7.9684414141414136e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.0731710000000000e+03, + "plan_cost": 8.4170300000000000e+05 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_stddev", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.1221706209984189e+05, + "cpu_time": 3.9953841343068337e+05, + "time_unit": "ns", + "execution_us": 4.1221885247221934e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.3593386964882581e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_cv", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 5.1586965826552131e-02, + "cpu_time": 5.0427920387330377e-02, + "time_unit": "ns", + "execution_us": 5.1587609323456331e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 3.3435793511001416e-01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 18, + "real_time": 4.0607061499839701e+07, + "cpu_time": 4.0351481166666761e+07, + "time_unit": "ns", + "execution_us": 4.0606629222222226e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 18, + "real_time": 4.2216152555839568e+07, + "cpu_time": 4.1927299333333209e+07, + "time_unit": "ns", + "execution_us": 4.2215964611111114e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 18, + "real_time": 4.0317931277968451e+07, + "cpu_time": 4.0051651055555403e+07, + "time_unit": "ns", + "execution_us": 4.0317765944444443e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_mean", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.1047048444549240e+07, + "cpu_time": 4.0776810518518455e+07, + "time_unit": "ns", + "execution_us": 4.1046786592592594e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_median", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.0607061499839701e+07, + "cpu_time": 4.0351481166666754e+07, + "time_unit": "ns", + "execution_us": 4.0606629222222226e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_stddev", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0227425817755453e+06, + "cpu_time": 1.0075678183839857e+06, + "time_unit": "ns", + "execution_us": 1.0227870880844279e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_cv", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.4916348934495878e-02, + "cpu_time": 2.4709333701477390e-02, + "time_unit": "ns", + "execution_us": 2.4917592167105294e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 102, + "real_time": 7.6368030000309115e+06, + "cpu_time": 7.5570298725490328e+06, + "time_unit": "ns", + "execution_us": 7.6367491764705883e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.6016930000000000e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 102, + "real_time": 6.9085890196113130e+06, + "cpu_time": 6.8497502745098546e+06, + "time_unit": "ns", + "execution_us": 6.9085281372549016e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.3022220000000000e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 102, + "real_time": 7.4443227746158699e+06, + "cpu_time": 7.3763595294117853e+06, + "time_unit": "ns", + "execution_us": 7.4442646764705878e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.7854520000000000e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_mean", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.3299049314193651e+06, + "cpu_time": 7.2610465588235566e+06, + "time_unit": "ns", + "execution_us": 7.3298473300653586e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.5631223333333332e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_median", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.4443227746158689e+06, + "cpu_time": 7.3763595294117853e+06, + "time_unit": "ns", + "execution_us": 7.4442646764705878e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 1.6016930000000000e+03, + "plan_cost": 8.1674300000000000e+05 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_stddev", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.7734928441820020e+05, + "cpu_time": 3.6746961553308601e+05, + "time_unit": "ns", + "execution_us": 3.7735257698592523e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.4391305924516035e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_cv", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 5.1480788352480059e-02, + "cpu_time": 5.0608354120321719e-02, + "time_unit": "ns", + "execution_us": 5.1481642112532304e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.5604220734599811e-01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 63, + "real_time": 1.1912171571609741e+07, + "cpu_time": 1.1778481253968276e+07, + "time_unit": "ns", + "execution_us": 1.1912071285714286e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 63, + "real_time": 1.1182683618879685e+07, + "cpu_time": 1.1075830492063552e+07, + "time_unit": "ns", + "execution_us": 1.1182583476190475e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 63, + "real_time": 1.1056025269984579e+07, + "cpu_time": 1.0965050603174526e+07, + "time_unit": "ns", + "execution_us": 1.1055877841269841e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_mean", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.1383626820157999e+07, + "cpu_time": 1.1273120783068784e+07, + "time_unit": "ns", + "execution_us": 1.1383510867724868e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_median", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.1182683618879685e+07, + "cpu_time": 1.1075830492063550e+07, + "time_unit": "ns", + "execution_us": 1.1182583476190475e+04, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_stddev", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.6209333478380990e+05, + "cpu_time": 4.4114617770796997e+05, + "time_unit": "ns", + "execution_us": 4.6211001512515378e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_cv", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.0592804216450611e-02, + "cpu_time": 3.9132569072668148e-02, + "time_unit": "ns", + "execution_us": 4.0594683002003584e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 43, + "real_time": 1.3773635348581253e+07, + "cpu_time": 1.3660822558139587e+07, + "time_unit": "ns", + "execution_us": 1.3773483767441861e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.6575780000000004e+03, + "plan_cost": 8.4320300000000000e+05 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 43, + "real_time": 1.5205280976789612e+07, + "cpu_time": 1.5054663325581398e+07, + "time_unit": "ns", + "execution_us": 1.5205187930232558e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.0114719999999998e+03, + "plan_cost": 8.4320300000000000e+05 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 43, + "real_time": 1.2281950813959092e+07, + "cpu_time": 1.2207621767441912e+07, + "time_unit": "ns", + "execution_us": 1.2281651488372092e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.4066629999999996e+03, + "plan_cost": 8.4320300000000000e+05 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_mean", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.3753622379776651e+07, + "cpu_time": 1.3641035883720964e+07, + "time_unit": "ns", + "execution_us": 1.3753441062015505e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.6919043333333329e+03, + "plan_cost": 8.4320300000000000e+05 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_median", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.3773635348581254e+07, + "cpu_time": 1.3660822558139585e+07, + "time_unit": "ns", + "execution_us": 1.3773483767441861e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.4066629999999996e+03, + "plan_cost": 8.4320300000000000e+05 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_stddev", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.4617678336244028e+06, + "cpu_time": 1.4236239119959881e+06, + "time_unit": "ns", + "execution_us": 1.4618712714367416e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 8.5932427202444433e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_cv", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.0628238825095185e-01, + "cpu_time": 1.0436332871867321e-01, + "time_unit": "ns", + "execution_us": 1.0629131028700617e-01, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.2841251596261280e-01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 66, + "real_time": 9.9791058486461584e+06, + "cpu_time": 9.9133320757576339e+06, + "time_unit": "ns", + "execution_us": 9.9790416818181820e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 66, + "real_time": 9.7421464090461303e+06, + "cpu_time": 9.6840114545454606e+06, + "time_unit": "ns", + "execution_us": 9.7420595606060597e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 66, + "real_time": 9.9354656971020941e+06, + "cpu_time": 9.8686349090908114e+06, + "time_unit": "ns", + "execution_us": 9.9353701515151515e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_mean", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.8855726515981276e+06, + "cpu_time": 9.8219928131313007e+06, + "time_unit": "ns", + "execution_us": 9.8854904646464638e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_median", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.9354656971020941e+06, + "cpu_time": 9.8686349090908114e+06, + "time_unit": "ns", + "execution_us": 9.9353701515151515e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_stddev", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.2611277094789948e+05, + "cpu_time": 1.2156726806552755e+05, + "time_unit": "ns", + "execution_us": 1.2611946247567755e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_cv", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.2757254980824176e-02, + "cpu_time": 1.2377047140881716e-02, + "time_unit": "ns", + "execution_us": 1.2758037947304618e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 50, + "real_time": 1.3572907519992443e+07, + "cpu_time": 1.3484294879999936e+07, + "time_unit": "ns", + "execution_us": 1.3572817620000002e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.9196149999999998e+03, + "plan_cost": 8.4317300000000000e+05 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 50, + "real_time": 1.3961699460051022e+07, + "cpu_time": 1.3863721519999929e+07, + "time_unit": "ns", + "execution_us": 1.3961627600000000e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.8879760000000001e+03, + "plan_cost": 8.4317300000000000e+05 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 50, + "real_time": 1.3328604919952340e+07, + "cpu_time": 1.3238763319999976e+07, + "time_unit": "ns", + "execution_us": 1.3328537479999999e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.1023909999999996e+03, + "plan_cost": 8.4317300000000000e+05 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_mean", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.3621070633331932e+07, + "cpu_time": 1.3528926573333280e+07, + "time_unit": "ns", + "execution_us": 1.3620994233333333e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.9699939999999997e+03, + "plan_cost": 8.4317300000000000e+05 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_median", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.3572907519992441e+07, + "cpu_time": 1.3484294879999936e+07, + "time_unit": "ns", + "execution_us": 1.3572817620000002e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.9196149999999998e+03, + "plan_cost": 8.4317300000000000e+05 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_stddev", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.1928347638208332e+05, + "cpu_time": 3.1486057068819489e+05, + "time_unit": "ns", + "execution_us": 3.1928281282363724e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.1574532727933205e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_cv", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.3440409713519083e-02, + "cpu_time": 2.3273137671455262e-02, + "time_unit": "ns", + "execution_us": 2.3440492474645316e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.9155038339940074e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 73, + "real_time": 9.4941860821962431e+06, + "cpu_time": 9.4339479178081937e+06, + "time_unit": "ns", + "execution_us": 9.4941211917808214e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 73, + "real_time": 9.5839359040439054e+06, + "cpu_time": 9.5257411917808335e+06, + "time_unit": "ns", + "execution_us": 9.5838616438356166e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 73, + "real_time": 9.4410957671280894e+06, + "cpu_time": 9.3849140273972545e+06, + "time_unit": "ns", + "execution_us": 9.4410327945205481e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_mean", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.5064059177894127e+06, + "cpu_time": 9.4482010456620920e+06, + "time_unit": "ns", + "execution_us": 9.5063385433789954e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_median", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.4941860821962412e+06, + "cpu_time": 9.4339479178081919e+06, + "time_unit": "ns", + "execution_us": 9.4941211917808214e+03, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_stddev", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.2199857790542941e+04, + "cpu_time": 7.1487315639248089e+04, + "time_unit": "ns", + "execution_us": 7.2193959645042938e+01, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_cv", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 7.5948637597553856e-03, + "cpu_time": 7.5662356562649271e-03, + "time_unit": "ns", + "execution_us": 7.5942971434911511e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 105, + "real_time": 6.6341793333690260e+06, + "cpu_time": 6.5972472380952323e+06, + "time_unit": "ns", + "execution_us": 6.6341253999999999e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.7711900000000003e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 105, + "real_time": 7.0254607809363818e+06, + "cpu_time": 6.9796631619047793e+06, + "time_unit": "ns", + "execution_us": 7.0253927428571433e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.4759100000000001e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 105, + "real_time": 6.8238354951886106e+06, + "cpu_time": 6.7844589619047903e+06, + "time_unit": "ns", + "execution_us": 6.8237815047619042e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.3170299999999997e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_mean", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.8278252031646715e+06, + "cpu_time": 6.7871231206349349e+06, + "time_unit": "ns", + "execution_us": 6.8277665492063479e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.5213766666666663e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_median", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.8238354951886097e+06, + "cpu_time": 6.7844589619047912e+06, + "time_unit": "ns", + "execution_us": 6.8237815047619042e+03, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.4759100000000001e+02, + "plan_cost": 8.3660300000000000e+05 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_stddev", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.9567123224914467e+05, + "cpu_time": 1.9122188159851517e+05, + "time_unit": "ns", + "execution_us": 1.9566410971631640e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.3046852221800975e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_cv", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.8657914698585391e-02, + "cpu_time": 2.8174217293501287e-02, + "time_unit": "ns", + "execution_us": 2.8657117712828098e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.7045925938180931e-02, + "plan_cost": 0.0000000000000000e+00 + } + ] +} diff --git a/research/benchmarks.ipynb b/research/benchmarks.ipynb new file mode 100644 index 0000000..f475c98 --- /dev/null +++ b/research/benchmarks.ipynb @@ -0,0 +1,1248 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "b5291871", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-02T01:16:13+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 0.38, 0.38, 0.46\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "----------------------------------------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations\n", + "----------------------------------------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 22492 ns 22349 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 22447 ns 22296 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1558 ns 1526 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 6.93 % 6.83 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 20696 ns 20601 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 20835 ns 20742 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 834 ns 810 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.03 % 3.93 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 20039 ns 19954 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19980 ns 19905 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 172 ns 177 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.89 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19665 ns 19591 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19751 ns 19677 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 207 ns 204 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.05 % 1.04 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 71494 ns 70618 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 72186 ns 71298 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3465 ns 3354 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.85 % 4.75 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 71193 ns 70379 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 71837 ns 70986 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1447 ns 1398 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.03 % 1.99 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 74523 ns 73518 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 74232 ns 73228 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3582 ns 3406 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.81 % 4.63 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 70604 ns 69783 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 68387 ns 67663 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 6690 ns 6389 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 9.48 % 9.16 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 88746 ns 87780 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 87787 ns 86834 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 4903 ns 4717 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 5.52 % 5.37 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 93122 ns 92033 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 94811 ns 93696 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3892 ns 3747 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.18 % 4.07 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 84456 ns 83477 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 85501 ns 84546 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3598 ns 3410 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.26 % 4.08 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 80405 ns 79621 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 80566 ns 79795 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 536 ns 528 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m" + ] + } + ], + "source": [ + "!mkdir -p benchmark-results\n", + "!cd .. && timeout 120s ./build-release/bin/benchmarks --benchmark_filter='^BM_SQL<(InterpretedExpressionExecutor|CachedJitCompiledExpressionExecutor), (kSimpleSelectSmall|kJoinSmall|kComplex5), PlannerMode::(kNaive|kOptimized)>/real_time$' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/query.json --benchmark_out_format=json" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "94b2cd75", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-02T01:16:41+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 0.80, 0.49, 0.49\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "----------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "----------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9535917 ns 9457917 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.53583k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9539993 ns 9459233 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.53993k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 26903 ns 26949 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=26.9284\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.28 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.28%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 10018523 ns 9946935 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0184k\u001b[m includes_order_by=1\u001b[m optimizer_us=818.029\u001b[m plan_cost=836.603k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 10025189 ns 9956589 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0251k\u001b[m includes_order_by=1\u001b[m optimizer_us=797.011\u001b[m plan_cost=836.603k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 23507 ns 26853 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=23.4951\u001b[m includes_order_by=0\u001b[m optimizer_us=47.3596\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.27 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.23%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=5.79%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8894810 ns 8830456 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.89474k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8703923 ns 8643932 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.70386k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 370836 ns 362794 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=370.843\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.17 % 4.11 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.17%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7216482 ns 7178427 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.21641k\u001b[m includes_order_by=0\u001b[m optimizer_us=419.653\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7171734 ns 7135746 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.17166k\u001b[m includes_order_by=0\u001b[m optimizer_us=404.975\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 378775 ns 369597 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=378.779\u001b[m includes_order_by=0\u001b[m optimizer_us=40.6977\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 5.25 % 5.15 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.25%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=9.70%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8755501 ns 8695939 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.75534k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8634674 ns 8580077 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.63449k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 313421 ns 306308 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=313.48\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.58 % 3.52 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.58%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6842163 ns 6813610 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.8421k\u001b[m includes_order_by=0\u001b[m optimizer_us=225.618\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6857864 ns 6828042 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.8578k\u001b[m includes_order_by=0\u001b[m optimizer_us=225.797\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 47976 ns 47617 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=47.9819\u001b[m includes_order_by=0\u001b[m optimizer_us=2.58966\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.70 % 0.70 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.70%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.15%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38770551 ns 38545894 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.7704k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 38937311 ns 38712070 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.9372k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 403708 ns 387320 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=403.68\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.04 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.04%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6165384 ns 6131574 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.16533k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.97412k\u001b[m plan_cost=817.083k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6220261 ns 6184963 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2202k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.92956k\u001b[m plan_cost=817.083k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 109818 ns 106871 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=109.811\u001b[m includes_order_by=0\u001b[m optimizer_us=127.329\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.78 % 1.74 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.78%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=6.45%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38014861 ns 37785646 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.0147k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 37373498 ns 37160567 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=37.3733k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1152550 ns 1124559 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.15257k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.03 % 2.98 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.03%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6548677 ns 6491466 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.54861k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.73735k\u001b[m plan_cost=817.083k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6752747 ns 6702527 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.75267k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.76762k\u001b[m plan_cost=817.083k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 547461 ns 516050 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=547.457\u001b[m includes_order_by=0\u001b[m optimizer_us=55.8846\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 8.36 % 7.95 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.36%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.22%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9839082 ns 9773621 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.83901k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9830951 ns 9757826 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.83088k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 29124 ns 30559 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=29.1302\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.31 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.30%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6726511 ns 6685741 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.72644k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.74304k\u001b[m plan_cost=841.733k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6733679 ns 6696410 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.73358k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.75501k\u001b[m plan_cost=841.733k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 20124 ns 21507 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=20.1209\u001b[m includes_order_by=0\u001b[m optimizer_us=100.716\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.32 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.30%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.69%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8337287 ns 8286855 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.33722k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8332199 ns 8279335 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.33213k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 30591 ns 33255 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=30.5828\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.37 % 0.40 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.37%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7009090 ns 6972349 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.00901k\u001b[m includes_order_by=0\u001b[m optimizer_us=203.094\u001b[m plan_cost=705.057k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7011279 ns 6975684 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.01123k\u001b[m includes_order_by=0\u001b[m optimizer_us=203.772\u001b[m plan_cost=705.057k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 7876 ns 7272 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.88332\u001b[m includes_order_by=0\u001b[m optimizer_us=12.9813\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.11 % 0.10 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.11%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=6.39%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 41168218 ns 40861121 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.168k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 39951647 ns 39624417 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=39.9514k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 2772999 ns 2719430 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.77305k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 6.74 % 6.66 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.74%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7331045 ns 7263440 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.33098k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.77516k\u001b[m plan_cost=816.743k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7250476 ns 7179529 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.25042k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.45913k\u001b[m plan_cost=816.743k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 560067 ns 542530 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=560.073\u001b[m includes_order_by=0\u001b[m optimizer_us=631.618\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 7.64 % 7.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.64%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=35.58%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10611863 ns 10523713 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.6118k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10571693 ns 10485617 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.5716k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 700693 ns 680849 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=700.727\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 6.60 % 6.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.60%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7990721 ns 7922960 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.99066k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.30379k\u001b[m plan_cost=841.703k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7968509 ns 7901081 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.96844k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.07317k\u001b[m plan_cost=841.703k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 412217 ns 399538 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=412.219\u001b[m includes_order_by=0\u001b[m optimizer_us=435.934\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 5.16 % 5.04 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.16%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=33.44%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 41047048 ns 40776811 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.0468k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 40607061 ns 40351481 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=40.6066k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1022743 ns 1007568 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.02279k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.49 % 2.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.49%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7329905 ns 7261047 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.32985k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.56312k\u001b[m plan_cost=816.743k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7444323 ns 7376360 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.44426k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.60169k\u001b[m plan_cost=816.743k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 377349 ns 367470 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=377.353\u001b[m includes_order_by=0\u001b[m optimizer_us=243.913\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 5.15 % 5.06 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.15%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=15.60%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 11383627 ns 11273121 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.3835k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 11182684 ns 11075830 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.1826k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 462093 ns 441146 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=462.11\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.06 % 3.91 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.06%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 13753622 ns 13641036 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.7534k\u001b[m includes_order_by=1\u001b[m optimizer_us=6.6919k\u001b[m plan_cost=843.203k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 13773635 ns 13660823 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.7735k\u001b[m includes_order_by=1\u001b[m optimizer_us=6.40666k\u001b[m plan_cost=843.203k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 1461768 ns 1423624 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.46187k\u001b[m includes_order_by=0\u001b[m optimizer_us=859.324\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 10.63 % 10.44 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.63%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=12.84%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9885573 ns 9821993 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.88549k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9935466 ns 9868635 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.93537k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 126113 ns 121567 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=126.119\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.28 % 1.24 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.28%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 13621071 ns 13528927 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.621k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.96999k\u001b[m plan_cost=843.173k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 13572908 ns 13484295 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.5728k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.91961k\u001b[m plan_cost=843.173k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 319283 ns 314861 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=319.283\u001b[m includes_order_by=0\u001b[m optimizer_us=115.745\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.34 % 2.33 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.34%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.92%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9506406 ns 9448201 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.50634k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9494186 ns 9433948 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.49412k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 72200 ns 71487 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=72.194\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.76 % 0.76 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.76%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6827825 ns 6787123 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.82777k\u001b[m includes_order_by=1\u001b[m optimizer_us=852.138\u001b[m plan_cost=836.603k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6823835 ns 6784459 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.82378k\u001b[m includes_order_by=1\u001b[m optimizer_us=847.591\u001b[m plan_cost=836.603k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 195671 ns 191222 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=195.664\u001b[m includes_order_by=0\u001b[m optimizer_us=23.0469\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.87 % 2.82 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.87%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.70%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m" + ] + } + ], + "source": [ + "!cd .. && SSB_DATA_DIR=benchmarks/datasets/ssb/generated/sf001 timeout 180s ./build-release/bin/benchmarks --benchmark_filter='^SSB/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/ssb-sf001.json --benchmark_out_format=json" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6f8e3873", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-02T01:17:41+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 1.43, 0.74, 0.58\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "----------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "----------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCost/SeqScan/1024/real_time_mean \u001b[m\u001b[0;33m 38473 ns 38210 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_median \u001b[m\u001b[0;33m 38428 ns 38240 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_stddev \u001b[m\u001b[0;33m 753 ns 851 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_cv \u001b[m\u001b[0;33m 1.96 % 2.23 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_mean \u001b[m\u001b[0;33m 69707 ns 69380 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_median \u001b[m\u001b[0;33m 69583 ns 69238 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_stddev \u001b[m\u001b[0;33m 909 ns 889 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_cv \u001b[m\u001b[0;33m 1.30 % 1.28 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_mean \u001b[m\u001b[0;33m 154163 ns 152385 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_median \u001b[m\u001b[0;33m 153859 ns 152316 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_stddev \u001b[m\u001b[0;33m 901 ns 563 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_cv \u001b[m\u001b[0;33m 0.58 % 0.37 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_mean \u001b[m\u001b[0;33m 390148 ns 385602 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_median \u001b[m\u001b[0;33m 399998 ns 395298 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_stddev \u001b[m\u001b[0;33m 30561 ns 29527 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_cv \u001b[m\u001b[0;33m 7.83 % 7.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_mean \u001b[m\u001b[0;33m 924368 ns 914961 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_median \u001b[m\u001b[0;33m 931261 ns 921625 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_stddev \u001b[m\u001b[0;33m 17627 ns 17412 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_cv \u001b[m\u001b[0;33m 1.91 % 1.90 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_mean \u001b[m\u001b[0;33m 1901611 ns 1885331 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_median \u001b[m\u001b[0;33m 1933730 ns 1916091 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_stddev \u001b[m\u001b[0;33m 90232 ns 87205 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_cv \u001b[m\u001b[0;33m 4.75 % 4.63 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_mean \u001b[m\u001b[0;33m 4965998 ns 4909459 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_median \u001b[m\u001b[0;33m 4998141 ns 4946201 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_stddev \u001b[m\u001b[0;33m 155421 ns 163668 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_cv \u001b[m\u001b[0;33m 3.13 % 3.33 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_mean \u001b[m\u001b[0;33m 12138600 ns 11998804 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_median \u001b[m\u001b[0;33m 11162739 ns 11038913 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_stddev \u001b[m\u001b[0;33m 1830952 ns 1805064 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_cv \u001b[m\u001b[0;33m 15.08 % 15.04 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_mean \u001b[m\u001b[0;33m 25644707 ns 25374424 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_median \u001b[m\u001b[0;33m 23244999 ns 23024292 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_stddev \u001b[m\u001b[0;33m 4388803 ns 4299232 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_cv \u001b[m\u001b[0;33m 17.11 % 16.94 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_mean \u001b[m\u001b[0;33m 70425 ns 70146 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_median \u001b[m\u001b[0;33m 70365 ns 70086 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_stddev \u001b[m\u001b[0;33m 535 ns 551 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_cv \u001b[m\u001b[0;33m 0.76 % 0.79 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_mean \u001b[m\u001b[0;33m 125482 ns 125054 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_median \u001b[m\u001b[0;33m 125359 ns 124936 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_stddev \u001b[m\u001b[0;33m 329 ns 322 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_cv \u001b[m\u001b[0;33m 0.26 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_mean \u001b[m\u001b[0;33m 244461 ns 243272 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_median \u001b[m\u001b[0;33m 244237 ns 242959 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_stddev \u001b[m\u001b[0;33m 1017 ns 1018 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_cv \u001b[m\u001b[0;33m 0.42 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_mean \u001b[m\u001b[0;33m 479696 ns 477349 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_median \u001b[m\u001b[0;33m 477488 ns 475398 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_stddev \u001b[m\u001b[0;33m 6388 ns 6050 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_cv \u001b[m\u001b[0;33m 1.33 % 1.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_mean \u001b[m\u001b[0;33m 993383 ns 988008 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_median \u001b[m\u001b[0;33m 990927 ns 985217 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_stddev \u001b[m\u001b[0;33m 5275 ns 5696 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_cv \u001b[m\u001b[0;33m 0.53 % 0.58 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_mean \u001b[m\u001b[0;33m 2178959 ns 2166464 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_median \u001b[m\u001b[0;33m 2129820 ns 2118195 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_stddev \u001b[m\u001b[0;33m 101295 ns 99833 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_cv \u001b[m\u001b[0;33m 4.65 % 4.61 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_mean \u001b[m\u001b[0;33m 4436384 ns 4413484 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_median \u001b[m\u001b[0;33m 4473698 ns 4450082 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_stddev \u001b[m\u001b[0;33m 137556 ns 135091 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_cv \u001b[m\u001b[0;33m 3.10 % 3.06 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_mean \u001b[m\u001b[0;33m 9775161 ns 9717069 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_median \u001b[m\u001b[0;33m 9723418 ns 9663916 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_stddev \u001b[m\u001b[0;33m 113812 ns 109969 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_mean \u001b[m\u001b[0;33m 20011648 ns 19895345 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_median \u001b[m\u001b[0;33m 20028071 ns 19914759 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_stddev \u001b[m\u001b[0;33m 218024 ns 212289 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_cv \u001b[m\u001b[0;33m 1.09 % 1.07 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_mean \u001b[m\u001b[0;33m 94356 ns 94028 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_median \u001b[m\u001b[0;33m 94592 ns 94279 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_stddev \u001b[m\u001b[0;33m 520 ns 549 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_cv \u001b[m\u001b[0;33m 0.55 % 0.58 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_mean \u001b[m\u001b[0;33m 176410 ns 175840 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_median \u001b[m\u001b[0;33m 176334 ns 175777 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_stddev \u001b[m\u001b[0;33m 553 ns 490 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_cv \u001b[m\u001b[0;33m 0.31 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_mean \u001b[m\u001b[0;33m 351209 ns 349742 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_median \u001b[m\u001b[0;33m 350576 ns 349336 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_stddev \u001b[m\u001b[0;33m 6628 ns 6489 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_cv \u001b[m\u001b[0;33m 1.89 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_mean \u001b[m\u001b[0;33m 688010 ns 684898 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_median \u001b[m\u001b[0;33m 687349 ns 684331 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_stddev \u001b[m\u001b[0;33m 6078 ns 6140 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_cv \u001b[m\u001b[0;33m 0.88 % 0.90 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_mean \u001b[m\u001b[0;33m 1408705 ns 1401811 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_median \u001b[m\u001b[0;33m 1405017 ns 1397537 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_stddev \u001b[m\u001b[0;33m 8952 ns 8860 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_cv \u001b[m\u001b[0;33m 0.64 % 0.63 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_mean \u001b[m\u001b[0;33m 3063583 ns 3046674 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_median \u001b[m\u001b[0;33m 3021017 ns 3006734 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_stddev \u001b[m\u001b[0;33m 134698 ns 132627 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_cv \u001b[m\u001b[0;33m 4.40 % 4.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_mean \u001b[m\u001b[0;33m 6409382 ns 6374643 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_median \u001b[m\u001b[0;33m 6414271 ns 6383091 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_stddev \u001b[m\u001b[0;33m 25434 ns 28186 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_cv \u001b[m\u001b[0;33m 0.40 % 0.44 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_mean \u001b[m\u001b[0;33m 13727593 ns 13637236 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_median \u001b[m\u001b[0;33m 13847824 ns 13759305 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_stddev \u001b[m\u001b[0;33m 291770 ns 293141 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_cv \u001b[m\u001b[0;33m 2.13 % 2.15 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_mean \u001b[m\u001b[0;33m 33247794 ns 33037538 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_median \u001b[m\u001b[0;33m 33275241 ns 33069358 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_stddev \u001b[m\u001b[0;33m 180580 ns 170487 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_cv \u001b[m\u001b[0;33m 0.54 % 0.52 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_mean \u001b[m\u001b[0;33m 114160 ns 113790 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_median \u001b[m\u001b[0;33m 114326 ns 113955 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_stddev \u001b[m\u001b[0;33m 589 ns 604 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_cv \u001b[m\u001b[0;33m 0.52 % 0.53 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_mean \u001b[m\u001b[0;33m 266928 ns 266080 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_median \u001b[m\u001b[0;33m 266698 ns 265906 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_stddev \u001b[m\u001b[0;33m 743 ns 705 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_cv \u001b[m\u001b[0;33m 0.28 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_mean \u001b[m\u001b[0;33m 600007 ns 597438 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_median \u001b[m\u001b[0;33m 600843 ns 598069 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_stddev \u001b[m\u001b[0;33m 3889 ns 3608 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_cv \u001b[m\u001b[0;33m 0.65 % 0.60 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_mean \u001b[m\u001b[0;33m 1353285 ns 1347286 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_median \u001b[m\u001b[0;33m 1352224 ns 1346166 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_stddev \u001b[m\u001b[0;33m 3159 ns 3530 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_mean \u001b[m\u001b[0;33m 3330166 ns 3313456 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_median \u001b[m\u001b[0;33m 3280666 ns 3263886 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_stddev \u001b[m\u001b[0;33m 102432 ns 100860 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_cv \u001b[m\u001b[0;33m 3.08 % 3.04 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_mean \u001b[m\u001b[0;33m 8325146 ns 8276866 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_median \u001b[m\u001b[0;33m 8328091 ns 8280027 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_stddev \u001b[m\u001b[0;33m 8924 ns 5969 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_cv \u001b[m\u001b[0;33m 0.11 % 0.07 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 22543761 ns 22399862 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_median \u001b[m\u001b[0;33m 21748033 ns 21608460 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 1392405 ns 1376023 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 6.18 % 6.14 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_mean \u001b[m\u001b[0;33m 63230431 ns 62728449 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_median \u001b[m\u001b[0;33m 62867420 ns 62387321 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_stddev \u001b[m\u001b[0;33m 1185317 ns 1168169 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_cv \u001b[m\u001b[0;33m 1.87 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_mean \u001b[m\u001b[0;33m 176649519 ns 175484283 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_median \u001b[m\u001b[0;33m 175323726 ns 174144845 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_stddev \u001b[m\u001b[0;33m 6750024 ns 6601525 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_cv \u001b[m\u001b[0;33m 3.82 % 3.76 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_mean \u001b[m\u001b[0;33m 274703 ns 273781 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_median \u001b[m\u001b[0;33m 275378 ns 274420 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_stddev \u001b[m\u001b[0;33m 1834 ns 1818 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_mean \u001b[m\u001b[0;33m 547245 ns 544909 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_median \u001b[m\u001b[0;33m 542243 ns 539784 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_stddev \u001b[m\u001b[0;33m 15295 ns 15170 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_cv \u001b[m\u001b[0;33m 2.79 % 2.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_mean \u001b[m\u001b[0;33m 1141244 ns 1135478 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_median \u001b[m\u001b[0;33m 1143881 ns 1138252 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_stddev \u001b[m\u001b[0;33m 15733 ns 15158 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_cv \u001b[m\u001b[0;33m 1.38 % 1.33 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_mean \u001b[m\u001b[0;33m 2426264 ns 2414370 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_median \u001b[m\u001b[0;33m 2422686 ns 2411175 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_stddev \u001b[m\u001b[0;33m 43691 ns 43834 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_cv \u001b[m\u001b[0;33m 1.80 % 1.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_mean \u001b[m\u001b[0;33m 5812245 ns 5776502 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_median \u001b[m\u001b[0;33m 5826207 ns 5793681 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_stddev \u001b[m\u001b[0;33m 108021 ns 105107 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_cv \u001b[m\u001b[0;33m 1.86 % 1.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_mean \u001b[m\u001b[0;33m 16768921 ns 16655176 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_median \u001b[m\u001b[0;33m 16630918 ns 16514790 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_stddev \u001b[m\u001b[0;33m 241465 ns 245756 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_cv \u001b[m\u001b[0;33m 1.44 % 1.48 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_mean \u001b[m\u001b[0;33m 52625470 ns 52271134 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_median \u001b[m\u001b[0;33m 52315635 ns 51975856 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_stddev \u001b[m\u001b[0;33m 2766613 ns 2683321 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_cv \u001b[m\u001b[0;33m 5.26 % 5.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_mean \u001b[m\u001b[0;33m 129696984 ns 128861029 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_median \u001b[m\u001b[0;33m 128465716 ns 127653219 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_stddev \u001b[m\u001b[0;33m 3404042 ns 3352711 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_cv \u001b[m\u001b[0;33m 2.62 % 2.60 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_mean \u001b[m\u001b[0;33m 300294351 ns 298535917 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_median \u001b[m\u001b[0;33m 298677499 ns 297021558 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_stddev \u001b[m\u001b[0;33m 11210695 ns 10988337 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_cv \u001b[m\u001b[0;33m 3.73 % 3.68 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 155098 ns 154565 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 155342 ns 154745 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 1119 ns 1070 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.69 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 301359 ns 300041 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 302359 ns 301088 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 2615 ns 2492 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.87 % 0.83 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_mean \u001b[m\u001b[0;33m 599260 ns 596096 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_median \u001b[m\u001b[0;33m 599183 ns 596316 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_stddev \u001b[m\u001b[0;33m 2586 ns 2808 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_cv \u001b[m\u001b[0;33m 0.43 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_mean \u001b[m\u001b[0;33m 1274549 ns 1266452 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_median \u001b[m\u001b[0;33m 1234395 ns 1226034 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_stddev \u001b[m\u001b[0;33m 78831 ns 77036 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_cv \u001b[m\u001b[0;33m 6.18 % 6.08 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_mean \u001b[m\u001b[0;33m 2941091 ns 2919158 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_median \u001b[m\u001b[0;33m 2911038 ns 2889304 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_stddev \u001b[m\u001b[0;33m 67545 ns 67104 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_cv \u001b[m\u001b[0;33m 2.30 % 2.30 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_mean \u001b[m\u001b[0;33m 6940540 ns 6889217 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_median \u001b[m\u001b[0;33m 6908295 ns 6859205 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_stddev \u001b[m\u001b[0;33m 70111 ns 72151 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_cv \u001b[m\u001b[0;33m 1.01 % 1.05 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_mean \u001b[m\u001b[0;33m 15832571 ns 15709972 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_median \u001b[m\u001b[0;33m 15705191 ns 15604051 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_stddev \u001b[m\u001b[0;33m 240004 ns 235698 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_cv \u001b[m\u001b[0;33m 1.52 % 1.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 341299 ns 339396 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_median \u001b[m\u001b[0;33m 340857 ns 338876 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 7369 ns 7193 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 2.16 % 2.12 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 1072887 ns 1067776 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_median \u001b[m\u001b[0;33m 1069796 ns 1064744 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 8259 ns 8226 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 0.77 % 0.77 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 3943250 ns 3924191 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_median \u001b[m\u001b[0;33m 3886867 ns 3870416 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 115332 ns 111745 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 2.92 % 2.85 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 14965494 ns 14909916 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_median \u001b[m\u001b[0;33m 15020643 ns 14962434 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 136569 ns 133694 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 0.91 % 0.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 57691018 ns 57436935 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 57607890 ns 57430034 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 451356 ns 317271 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.78 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 229988242 ns 229099036 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 229828521 ns 229065432 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 2792600 ns 2747616 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 1.21 % 1.20 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_mean \u001b[m\u001b[0;33m 130942 ns 129796 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_median \u001b[m\u001b[0;33m 131308 ns 130105 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_stddev \u001b[m\u001b[0;33m 1935 ns 1924 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_cv \u001b[m\u001b[0;33m 1.48 % 1.48 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 288639 ns 286761 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_median \u001b[m\u001b[0;33m 288545 ns 286708 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 3202 ns 3171 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 1.11 % 1.11 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 899354 ns 893066 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_median \u001b[m\u001b[0;33m 881125 ns 874885 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 52481 ns 51442 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 5.84 % 5.76 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 5036885 ns 4983636 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_median \u001b[m\u001b[0;33m 5043142 ns 4984503 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 47815 ns 44463 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 0.95 % 0.89 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 25155229 ns 24914236 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_median \u001b[m\u001b[0;33m 25126405 ns 24885776 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 71506 ns 52169 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 0.28 % 0.21 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 125736836 ns 124681210 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 124916767 ns 123921643 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 2950666 ns 2904895 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 2.35 % 2.33 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m" + ] + } + ], + "source": [ + "!cd .. && timeout 300s ./build-release/bin/benchmarks --benchmark_filter='^OperatorCost/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/operator-cost.json --benchmark_out_format=json" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "bcfd11fc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-02T01:20:14+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 1.60, 1.07, 0.73\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "------------------------------------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "------------------------------------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_mean \u001b[m\u001b[0;33m 320159 ns 317346 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_median \u001b[m\u001b[0;33m 319599 ns 316785 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_stddev \u001b[m\u001b[0;33m 1160 ns 1115 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_cv \u001b[m\u001b[0;33m 0.36 % 0.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_mean \u001b[m\u001b[0;33m 409248 ns 407255 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_median \u001b[m\u001b[0;33m 399719 ns 397882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_stddev \u001b[m\u001b[0;33m 18699 ns 18531 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_cv \u001b[m\u001b[0;33m 4.57 % 4.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_mean \u001b[m\u001b[0;33m 3097292 ns 3075629 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_median \u001b[m\u001b[0;33m 3113549 ns 3091459 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_stddev \u001b[m\u001b[0;33m 46014 ns 45803 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_cv \u001b[m\u001b[0;33m 1.49 % 1.49 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_mean \u001b[m\u001b[0;33m 714273 ns 707808 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_median \u001b[m\u001b[0;33m 704145 ns 697639 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_stddev \u001b[m\u001b[0;33m 21201 ns 20423 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_cv \u001b[m\u001b[0;33m 2.97 % 2.89 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_mean \u001b[m\u001b[0;33m 353749 ns 351405 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_median \u001b[m\u001b[0;33m 352784 ns 350809 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_stddev \u001b[m\u001b[0;33m 1705 ns 2169 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_cv \u001b[m\u001b[0;33m 0.48 % 0.62 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_mean \u001b[m\u001b[0;33m 251418 ns 250042 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_median \u001b[m\u001b[0;33m 250657 ns 249485 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_stddev \u001b[m\u001b[0;33m 1990 ns 1973 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_cv \u001b[m\u001b[0;33m 0.79 % 0.79 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_mean \u001b[m\u001b[0;33m 676351 ns 670795 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_median \u001b[m\u001b[0;33m 675430 ns 670332 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_stddev \u001b[m\u001b[0;33m 2046 ns 2832 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_mean \u001b[m\u001b[0;33m 398744 ns 394565 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_median \u001b[m\u001b[0;33m 399361 ns 393912 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_stddev \u001b[m\u001b[0;33m 3592 ns 3590 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_cv \u001b[m\u001b[0;33m 0.90 % 0.91 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_mean \u001b[m\u001b[0;33m 352346 ns 350260 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_median \u001b[m\u001b[0;33m 349456 ns 347781 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_stddev \u001b[m\u001b[0;33m 6767 ns 6945 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_cv \u001b[m\u001b[0;33m 1.92 % 1.98 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_mean \u001b[m\u001b[0;33m 664349 ns 660903 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_median \u001b[m\u001b[0;33m 655750 ns 652271 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_stddev \u001b[m\u001b[0;33m 24445 ns 24189 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_cv \u001b[m\u001b[0;33m 3.68 % 3.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_mean \u001b[m\u001b[0;33m 5560017 ns 5518016 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_median \u001b[m\u001b[0;33m 5563214 ns 5519348 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_stddev \u001b[m\u001b[0;33m 17569 ns 19382 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_cv \u001b[m\u001b[0;33m 0.32 % 0.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_mean \u001b[m\u001b[0;33m 1181814 ns 1176185 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_median \u001b[m\u001b[0;33m 1183289 ns 1177677 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_stddev \u001b[m\u001b[0;33m 7241 ns 6718 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.57 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_mean \u001b[m\u001b[0;33m 540896 ns 538945 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_median \u001b[m\u001b[0;33m 539330 ns 537405 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_stddev \u001b[m\u001b[0;33m 3827 ns 3777 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.70 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_mean \u001b[m\u001b[0;33m 408221 ns 406089 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_median \u001b[m\u001b[0;33m 413762 ns 411413 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_stddev \u001b[m\u001b[0;33m 10162 ns 9830 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_cv \u001b[m\u001b[0;33m 2.49 % 2.42 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_mean \u001b[m\u001b[0;33m 1006221 ns 997401 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_median \u001b[m\u001b[0;33m 1002051 ns 996991 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_stddev \u001b[m\u001b[0;33m 7815 ns 1517 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_cv \u001b[m\u001b[0;33m 0.78 % 0.15 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_mean \u001b[m\u001b[0;33m 600207 ns 596002 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_median \u001b[m\u001b[0;33m 600347 ns 596164 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_stddev \u001b[m\u001b[0;33m 1109 ns 1109 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_cv \u001b[m\u001b[0;33m 0.18 % 0.19 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_mean \u001b[m\u001b[0;33m 1284652 ns 1276040 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_median \u001b[m\u001b[0;33m 1257372 ns 1248532 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_stddev \u001b[m\u001b[0;33m 75695 ns 74938 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_cv \u001b[m\u001b[0;33m 5.89 % 5.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_mean \u001b[m\u001b[0;33m 2176167 ns 2165969 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_median \u001b[m\u001b[0;33m 2159127 ns 2150028 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_stddev \u001b[m\u001b[0;33m 45990 ns 44955 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_cv \u001b[m\u001b[0;33m 2.11 % 2.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_mean \u001b[m\u001b[0;33m 20058836 ns 19892307 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_median \u001b[m\u001b[0;33m 19959603 ns 19781221 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_stddev \u001b[m\u001b[0;33m 272114 ns 258775 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_cv \u001b[m\u001b[0;33m 1.36 % 1.30 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_mean \u001b[m\u001b[0;33m 4184701 ns 4161788 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_median \u001b[m\u001b[0;33m 4182936 ns 4160248 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_stddev \u001b[m\u001b[0;33m 21162 ns 17617 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_cv \u001b[m\u001b[0;33m 0.51 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_mean \u001b[m\u001b[0;33m 1881536 ns 1872941 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_median \u001b[m\u001b[0;33m 1876677 ns 1867856 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_stddev \u001b[m\u001b[0;33m 19364 ns 18755 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_cv \u001b[m\u001b[0;33m 1.03 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_mean \u001b[m\u001b[0;33m 1306558 ns 1298432 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_median \u001b[m\u001b[0;33m 1306181 ns 1297919 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_stddev \u001b[m\u001b[0;33m 1248 ns 1251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_cv \u001b[m\u001b[0;33m 0.10 % 0.10 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_mean \u001b[m\u001b[0;33m 2883331 ns 2862880 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_median \u001b[m\u001b[0;33m 2883138 ns 2870337 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_stddev \u001b[m\u001b[0;33m 25044 ns 36841 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_cv \u001b[m\u001b[0;33m 0.87 % 1.29 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_mean \u001b[m\u001b[0;33m 1967699 ns 1948450 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_median \u001b[m\u001b[0;33m 1961065 ns 1941733 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_stddev \u001b[m\u001b[0;33m 26641 ns 26322 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_cv \u001b[m\u001b[0;33m 1.35 % 1.35 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_mean \u001b[m\u001b[0;33m 3804148 ns 3769127 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_median \u001b[m\u001b[0;33m 3743306 ns 3710163 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_stddev \u001b[m\u001b[0;33m 161694 ns 156528 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_cv \u001b[m\u001b[0;33m 4.25 % 4.15 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_mean \u001b[m\u001b[0;33m 4921571 ns 4893957 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_median \u001b[m\u001b[0;33m 4900259 ns 4872979 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_stddev \u001b[m\u001b[0;33m 133893 ns 133878 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_cv \u001b[m\u001b[0;33m 2.72 % 2.74 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_mean \u001b[m\u001b[0;33m 41998731 ns 41673692 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_median \u001b[m\u001b[0;33m 41714916 ns 41392995 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_stddev \u001b[m\u001b[0;33m 535414 ns 528570 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_mean \u001b[m\u001b[0;33m 10271929 ns 10215490 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_median \u001b[m\u001b[0;33m 10293266 ns 10238813 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_stddev \u001b[m\u001b[0;33m 86829 ns 86031 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_cv \u001b[m\u001b[0;33m 0.85 % 0.84 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_mean \u001b[m\u001b[0;33m 4438157 ns 4412963 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_median \u001b[m\u001b[0;33m 4443256 ns 4415243 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_stddev \u001b[m\u001b[0;33m 14085 ns 12792 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_cv \u001b[m\u001b[0;33m 0.32 % 0.29 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_mean \u001b[m\u001b[0;33m 3043218 ns 3022074 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_median \u001b[m\u001b[0;33m 3034737 ns 3013058 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_stddev \u001b[m\u001b[0;33m 25639 ns 24888 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_cv \u001b[m\u001b[0;33m 0.84 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_mean \u001b[m\u001b[0;33m 5812015 ns 5788677 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_median \u001b[m\u001b[0;33m 5776632 ns 5752852 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_stddev \u001b[m\u001b[0;33m 65428 ns 65349 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_cv \u001b[m\u001b[0;33m 1.13 % 1.13 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_mean \u001b[m\u001b[0;33m 5684609 ns 5595092 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_median \u001b[m\u001b[0;33m 5585757 ns 5512270 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_stddev \u001b[m\u001b[0;33m 283233 ns 295277 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_cv \u001b[m\u001b[0;33m 4.98 % 5.28 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_mean \u001b[m\u001b[0;33m 7200013 ns 7134821 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_median \u001b[m\u001b[0;33m 7204414 ns 7137446 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_stddev \u001b[m\u001b[0;33m 91581 ns 86674 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.21 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_mean \u001b[m\u001b[0;33m 9183200 ns 9123227 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_median \u001b[m\u001b[0;33m 9274288 ns 9209433 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_stddev \u001b[m\u001b[0;33m 246032 ns 243070 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_cv \u001b[m\u001b[0;33m 2.68 % 2.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_mean \u001b[m\u001b[0;33m 76154538 ns 75642732 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_median \u001b[m\u001b[0;33m 76053968 ns 75558307 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_stddev \u001b[m\u001b[0;33m 1296686 ns 1279602 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_cv \u001b[m\u001b[0;33m 1.70 % 1.69 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 21631748 ns 21479851 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_median \u001b[m\u001b[0;33m 21592685 ns 21449075 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 209379 ns 211435 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 0.97 % 0.98 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_mean \u001b[m\u001b[0;33m 10929372 ns 10855646 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_median \u001b[m\u001b[0;33m 11005949 ns 10931545 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_stddev \u001b[m\u001b[0;33m 184863 ns 178071 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_cv \u001b[m\u001b[0;33m 1.69 % 1.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_mean \u001b[m\u001b[0;33m 6579551 ns 6525622 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_median \u001b[m\u001b[0;33m 6319543 ns 6271821 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_stddev \u001b[m\u001b[0;33m 521111 ns 515812 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_cv \u001b[m\u001b[0;33m 7.92 % 7.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_mean \u001b[m\u001b[0;33m 10203401 ns 10165100 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_median \u001b[m\u001b[0;33m 10207017 ns 10169491 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_stddev \u001b[m\u001b[0;33m 25817 ns 28217 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_cv \u001b[m\u001b[0;33m 0.25 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_mean \u001b[m\u001b[0;33m 11246723 ns 11120161 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_median \u001b[m\u001b[0;33m 11156642 ns 11021816 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_stddev \u001b[m\u001b[0;33m 358953 ns 352800 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_cv \u001b[m\u001b[0;33m 3.19 % 3.17 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_mean \u001b[m\u001b[0;33m 17194941 ns 17060021 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_median \u001b[m\u001b[0;33m 17199810 ns 17065589 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_stddev \u001b[m\u001b[0;33m 69765 ns 71670 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_cv \u001b[m\u001b[0;33m 0.41 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_mean \u001b[m\u001b[0;33m 20268578 ns 20143106 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_median \u001b[m\u001b[0;33m 20226671 ns 20105167 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_stddev \u001b[m\u001b[0;33m 948813 ns 923956 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_cv \u001b[m\u001b[0;33m 4.68 % 4.59 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_mean \u001b[m\u001b[0;33m 158375198 ns 157223598 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_median \u001b[m\u001b[0;33m 158155639 ns 157165675 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_stddev \u001b[m\u001b[0;33m 1530329 ns 1447113 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_cv \u001b[m\u001b[0;33m 0.97 % 0.92 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_mean \u001b[m\u001b[0;33m 66118518 ns 65605278 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_median \u001b[m\u001b[0;33m 65766383 ns 65262983 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_stddev \u001b[m\u001b[0;33m 1233820 ns 1224222 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_cv \u001b[m\u001b[0;33m 1.87 % 1.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_mean \u001b[m\u001b[0;33m 36824897 ns 36546612 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_median \u001b[m\u001b[0;33m 37531672 ns 37260669 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_stddev \u001b[m\u001b[0;33m 1680229 ns 1661849 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_cv \u001b[m\u001b[0;33m 4.56 % 4.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_mean \u001b[m\u001b[0;33m 15544874 ns 15433459 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_median \u001b[m\u001b[0;33m 15391909 ns 15276462 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_stddev \u001b[m\u001b[0;33m 395978 ns 386476 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_cv \u001b[m\u001b[0;33m 2.55 % 2.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_mean \u001b[m\u001b[0;33m 21482184 ns 21403674 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_median \u001b[m\u001b[0;33m 21404013 ns 21323764 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_stddev \u001b[m\u001b[0;33m 178260 ns 184469 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_cv \u001b[m\u001b[0;33m 0.83 % 0.86 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_mean \u001b[m\u001b[0;33m 24928068 ns 24677118 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_median \u001b[m\u001b[0;33m 24799747 ns 24566264 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_stddev \u001b[m\u001b[0;33m 300738 ns 283592 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_cv \u001b[m\u001b[0;33m 1.21 % 1.15 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m" + ] + } + ], + "source": [ + "!cd .. && timeout 300s ./build-release/bin/benchmarks --benchmark_filter='^OperatorCostMatched/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/operator-cost-matched.json --benchmark_out_format=json" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "b16b9fb4", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import re\n", + "from pathlib import Path\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "\n", + "RESULTS = Path(\"benchmark-results\")\n", + "UNIT_TO_MS = {\"ns\": 1e-6, \"us\": 1e-3, \"ms\": 1.0, \"s\": 1e3}\n", + "\n", + "def mean_rows(filename):\n", + " data = json.loads((RESULTS / filename).read_text())\n", + " return [row for row in data[\"benchmarks\"] if row.get(\"aggregate_name\") == \"mean\"]\n", + "\n", + "def time_ms(row):\n", + " return row[\"real_time\"] * UNIT_TO_MS[row[\"time_unit\"]]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d3172304", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "( executor query mode \\\n", + " 0 InterpretedExpressionExecutor kSimpleSelectSmall Naive \n", + " 1 InterpretedExpressionExecutor kSimpleSelectSmall Optimized \n", + " 2 CachedJitCompiledExpressionExecutor kSimpleSelectSmall Naive \n", + " 3 CachedJitCompiledExpressionExecutor kSimpleSelectSmall Optimized \n", + " 4 InterpretedExpressionExecutor kJoinSmall Naive \n", + " 5 InterpretedExpressionExecutor kJoinSmall Optimized \n", + " 6 CachedJitCompiledExpressionExecutor kJoinSmall Naive \n", + " 7 CachedJitCompiledExpressionExecutor kJoinSmall Optimized \n", + " 8 InterpretedExpressionExecutor kComplex5 Naive \n", + " 9 InterpretedExpressionExecutor kComplex5 Optimized \n", + " 10 CachedJitCompiledExpressionExecutor kComplex5 Naive \n", + " 11 CachedJitCompiledExpressionExecutor kComplex5 Optimized \n", + " \n", + " time_ms \n", + " 0 0.022492 \n", + " 1 0.020696 \n", + " 2 0.020039 \n", + " 3 0.019665 \n", + " 4 0.071494 \n", + " 5 0.071193 \n", + " 6 0.074523 \n", + " 7 0.070604 \n", + " 8 0.088746 \n", + " 9 0.093122 \n", + " 10 0.084456 \n", + " 11 0.080405 ,\n", + " query executor mode time_ms\n", + " 0 q2.1 Interpreted Naive 9.535917\n", + " 1 q2.1 Interpreted Optimized 10.018523\n", + " 2 q1.3 Interpreted Naive 8.894810\n", + " 3 q1.3 Interpreted Optimized 7.216482\n", + " 4 q1.2 Interpreted Naive 8.755501\n", + " 5 q1.2 Interpreted Optimized 6.842163\n", + " 6 q3.3 Interpreted Naive 38.770551\n", + " 7 q3.3 Interpreted Optimized 6.165384\n", + " 8 q3.4 Interpreted Naive 38.014861\n", + " 9 q3.4 Interpreted Optimized 6.548677\n", + " 10 q4.3 Interpreted Naive 9.839082\n", + " 11 q4.3 Interpreted Optimized 6.726511\n", + " 12 q1.1 Interpreted Naive 8.337287\n", + " 13 q1.1 Interpreted Optimized 7.009090\n", + " 14 q3.2 Interpreted Naive 41.168218\n", + " 15 q3.2 Interpreted Optimized 7.331045\n", + " 16 q2.2 Interpreted Naive 10.611863\n", + " 17 q2.2 Interpreted Optimized 7.990721\n", + " 18 q3.1 Interpreted Naive 41.047048\n", + " 19 q3.1 Interpreted Optimized 7.329905\n", + " 20 q4.2 Interpreted Naive 11.383627\n", + " 21 q4.2 Interpreted Optimized 13.753622\n", + " 22 q4.1 Interpreted Naive 9.885573\n", + " 23 q4.1 Interpreted Optimized 13.621071\n", + " 24 q2.3 Interpreted Naive 9.506406\n", + " 25 q2.3 Interpreted Optimized 6.827825)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "synthetic_pattern = re.compile(\n", + " r\"BM_SQL<(?P[^,]+), (?P[^,]+), PlannerMode::k(?P[^>]+)>/real_time_mean\"\n", + ")\n", + "synthetic = []\n", + "for row in mean_rows(\"query.json\"):\n", + " match = synthetic_pattern.fullmatch(row[\"name\"])\n", + " synthetic.append({**match.groupdict(), \"time_ms\": time_ms(row)})\n", + "synthetic = pd.DataFrame(synthetic)\n", + "\n", + "ssb = []\n", + "for row in mean_rows(\"ssb-sf001.json\"):\n", + " _, query, executor, mode, _ = row[\"name\"].split(\"/\")\n", + " ssb.append({\"query\": query, \"executor\": executor, \"mode\": mode, \"time_ms\": time_ms(row)})\n", + "ssb = pd.DataFrame(ssb)\n", + "\n", + "synthetic, ssb" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f4e060f2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "( operator input_rows model_cost time_ms\n", + " 0 SeqScan 1024 102400.0 0.038473\n", + " 1 SeqScan 2048 204800.0 0.069707\n", + " 2 SeqScan 4096 409600.0 0.154163\n", + " 3 SeqScan 8192 819200.0 0.390148\n", + " 4 SeqScan 16384 1638400.0 0.924368\n", + " .. ... ... ... ...\n", + " 59 NestedLoopCrossJoin 64 425984.0 0.288639\n", + " 60 NestedLoopCrossJoin 128 1703936.0 0.899354\n", + " 61 NestedLoopCrossJoin 256 6815744.0 5.036885\n", + " 62 NestedLoopCrossJoin 512 27262976.0 25.155229\n", + " 63 NestedLoopCrossJoin 1024 109051904.0 125.736836\n", + " \n", + " [64 rows x 4 columns],\n", + " target_cost operator input_rows model_cost time_ms\n", + " 0 640000 SeqScan 6400 640000.0 0.320159\n", + " 1 640000 Filter 6400 640000.0 0.409248\n", + " 2 640000 Projection 29091 640002.0 3.097292\n", + " 3 640000 Sort 4476 640068.0 0.714273\n", + " 4 640000 Aggregation 1255 640050.0 0.353749\n", + " 5 640000 HashJoin 1620 639900.0 0.251418\n", + " 6 640000 NestedLoopJoin 96 645120.0 0.676351\n", + " 7 640000 NestedLoopCrossJoin 78 632736.0 0.398744\n", + " 8 1000000 SeqScan 10000 1000000.0 0.352346\n", + " 9 1000000 Filter 10000 1000000.0 0.664349\n", + " 10 1000000 Projection 45455 1000010.0 5.560017\n", + " 11 1000000 Sort 6993 999999.0 1.181814\n", + " 12 1000000 Aggregation 1961 1000110.0 0.540896\n", + " 13 1000000 HashJoin 2532 1000140.0 0.408221\n", + " 14 1000000 NestedLoopJoin 120 1008000.0 1.006221\n", + " 15 1000000 NestedLoopCrossJoin 98 998816.0 0.600207\n", + " 16 3240000 SeqScan 32400 3240000.0 1.284652\n", + " 17 3240000 Filter 32400 3240000.0 2.176167\n", + " 18 3240000 Projection 147273 3240006.0 20.058836\n", + " 19 3240000 Sort 19636 3239940.0 4.184701\n", + " 20 3240000 Aggregation 6353 3240030.0 1.881536\n", + " 21 3240000 HashJoin 8203 3240185.0 1.306558\n", + " 22 3240000 NestedLoopJoin 215 3235750.0 2.883331\n", + " 23 3240000 NestedLoopCrossJoin 177 3258216.0 1.967699\n", + " 24 6760000 SeqScan 67600 6760000.0 3.804148\n", + " 25 6760000 Filter 67600 6760000.0 4.921571\n", + " 26 6760000 Projection 307273 6760006.0 41.998731\n", + " 27 6760000 Sort 38409 6759984.0 10.271929\n", + " 28 6760000 Aggregation 13255 6760050.0 4.438157\n", + " 29 6760000 HashJoin 17114 6760030.0 3.043218\n", + " 30 6760000 NestedLoopJoin 311 6770470.0 5.812015\n", + " 31 6760000 NestedLoopCrossJoin 255 6762600.0 5.684609\n", + " 32 12250000 SeqScan 122500 12250000.0 7.200013\n", + " 33 12250000 Filter 122500 12250000.0 9.183200\n", + " 34 12250000 Projection 556818 12249996.0 76.154538\n", + " 35 12250000 Sort 65536 12255232.0 21.631748\n", + " 36 12250000 Aggregation 24020 12250200.0 10.929372\n", + " 37 12250000 HashJoin 31013 12250135.0 6.579551\n", + " 38 12250000 NestedLoopJoin 418 12230680.0 10.203401\n", + " 39 12250000 NestedLoopCrossJoin 343 12235496.0 11.246723\n", + " 40 26010000 SeqScan 260100 26010000.0 17.194941\n", + " 41 26010000 Filter 260100 26010000.0 20.268578\n", + " 42 26010000 Projection 1182273 26010006.0 158.375198\n", + " 43 26010000 Sort 131364 26010072.0 66.118518\n", + " 44 26010000 Aggregation 51000 26010000.0 36.824897\n", + " 45 26010000 HashJoin 65848 26009960.0 15.544874\n", + " 46 26010000 NestedLoopJoin 610 26047000.0 21.482184\n", + " 47 26010000 NestedLoopCrossJoin 500 26000000.0 24.928068)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "operator = []\n", + "for row in mean_rows(\"operator-cost.json\"):\n", + " parts = row[\"name\"].split(\"/\")\n", + " operator.append({\n", + " \"operator\": parts[1],\n", + " \"input_rows\": max(map(int, parts[2:-1])),\n", + " \"model_cost\": row[\"model_cost\"],\n", + " \"time_ms\": time_ms(row),\n", + " })\n", + "operator = pd.DataFrame(operator)\n", + "\n", + "matched = []\n", + "for row in mean_rows(\"operator-cost-matched.json\"):\n", + " parts = row[\"name\"].split(\"/\")\n", + " matched.append({\n", + " \"target_cost\": int(parts[1].split(\":\")[1]),\n", + " \"operator\": parts[2],\n", + " \"input_rows\": max(map(int, parts[3:-1])),\n", + " \"model_cost\": row[\"model_cost\"],\n", + " \"time_ms\": time_ms(row),\n", + " })\n", + "matched = pd.DataFrame(matched)\n", + "\n", + "operator, matched" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2075a20f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0dixY/XVV18pNDRUnTt31ldffSVJeuSRRzR+/HhJ1wP0bdu2adu2bTZBYnaWLVummTNnauLEiZo/f74uXLigRx55REOGDNGWLVs0ffp0ffTRR/rtt9/02GOPZQks//2eZV438/HKK69IkqpWrSrJvj7eyfubafr06Vq1apWmTp2qzz//XG5uboqKirJZ8zTTY489pvDwcC1atEjDhg3TvHnzNHjwYOv+gQMH6o8//sgS+q5cuVKHDh3Siy++KElasGCB+vXrpyZNmmjJkiVaunSpBg8enCXI/LfVq1erUaNGOnLkiKZMmaKVK1fqtdde08mTJ63HHD9+XAEBAZo4caJWrVql9957T/ny5VO9evX0xx9/5Ph9+bcRI0bozz//1MyZMzVz5kwdP35cERER+vPPP2/6vAMHDqh169b65JNPtGrVKg0aNEhffPGFzSzTTFevXlXbtm318MMP6+uvv1bv3r319ttva9KkSdZjbve9k6Tly5ercePGNuFq0aJFVb58eb3//vuaMmWKfv/99xv+DGcuqdC9e3ctXbrUGuLeTHp6uq5du6arV6/q6NGjGjRokC5evJjtbNqIiAht2bJF586du+V5AQCAiRkAAABOEhsba0gy4uLijNTUVKNs2bJGnTp1jIyMDMMwDKNJkyZG1apVb/j89PR04+rVq8acOXMMd3d348yZM9Z9PXr0MEJDQ63bp06dMjw9PY0RI0bYnOPJJ580AgMDjatXrxqGYRjz5883JBmLFi2yOS4uLs6QZLz//vt2vcZr164ZKSkpRoECBYxp06Zlee39+vWzOX7y5MmGJOPEiROGYRjGvn37DEnG4MGDbY6bO3euIcno0aPHTa//wQcfGJKML774wmZ80qRJhiRjzZo11jFJho+Pj5GYmGhTf6VKlYzy5ctbx7788ktDkrF+/fos1/v3+5553qCgICMlJcU6tnTpUkOSUbNmTWu/DcMwpk6dakgy9u7de9Nz/tP3339veHt7G127drWeK6d9vNP3Nz4+3pBkhISEGJcvX7aOJycnG0WKFDGaN29uHRs9erQhyZg8ebLNOfr162d4e3tba09PTzfKli1rtGvXzua4qKgoo1y5ctbjXnrpJaNQoUI3rW/9+vVZelWuXDmjXLlyNvXeyrVr14y0tDSjQoUKNu9V5uuPjY3NUR21atWy6ffhw4cNDw8P45lnnrGOZb5PN5KRkWFcvXrV2LhxoyHJ+Omnn6z7evToke3Pe+vWrY2KFStat3Py3mXn5MmThiRj4sSJWfb98MMPRunSpQ1JhiTDz8/PePTRR405c+bYvGbDMIyxY8canp6e1mPDwsKMvn372rwWw/jffeLfDy8vrxvei9auXWtIMlauXGn36wMAAObBTFsAAGAKnp6eeuONN7Rz50598cUXNzxu9+7datu2rQICAuTu7i4PDw91795d6enp2r9//w2fFxAQoDZt2mj27NnWNSPPnj2rr7/+Wt27d1e+fNeX+l+2bJkKFSqkNm3a6Nq1a9ZHzZo1FRQUlOVj5v+WkpKiV199VeXLl1e+fPmUL18++fr66uLFi9q3b1+W49u2bWuzXaNGDUmyLqewfv16SVLXrl1tjnvyySetNd/Md999pwIFCujxxx+3Gc9cRuDfszkffvhhBQYGWrfd3d3VqVMnHTx4UEePHr3l9W6kadOmKlCggHW7cuXKkqSoqChZLJYs4/9eTuJG9u3bp7Zt26phw4b69NNPrefKaR/v9P3N1LFjR3l7e1u3/fz81KZNG23atEnp6ek2x2bX8ytXrigpKUnS9Y/Hv/TSS1q2bJmOHDki6foM81WrVqlfv37W1/jAAw/o3Llz6ty5s77++utsZ3L/2/79+3Xo0CH16dPHpt5/u3btmsaPH68qVarI09NT+fLlk6enpw4cOJDtz3FOdenSxabfoaGhatiwobUPN/Lnn3+qS5cuCgoKsv69b9KkiSRlqcdisWSZgVujRg2bn6nbee8kWZcuKV68eJZ9devW1cGDB7Vq1SqNGDFCDRo00Lp169S9e3e1bdvWZubtqFGjdOTIEX366ad6/vnn5evrqw8++EC1a9fW/Pnzs5x7zpw5iouLU1xcnFauXKkePXroxRdf1PTp07Mcm1nbsWPHcvSaAACAORHaAgAA03jqqadUq1YtjRw5MssatZJ05MgRNWrUSMeOHdO0adP0/fffKy4uTu+9954k3XLpgt69e+vYsWNau3atJGn+/PlKTU21WQf15MmTOnfunHW9yH8+EhMTbxnudOnSRdOnT9czzzyj1atX64cfflBcXJyKFSuWbX0BAQE2215eXjavJfOj00FBQTbH5cuXL8tzs3P69GkFBQXZBGXS9WAnX758WT6a/e/r/HMsJx/jvpEiRYrY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dNPrFilSRO+8847c3NxUsWJFTZ48WZcuXdKIESMkScOHD9fEiRO1ZcsWPfXUU1me7+/vL3//6+sFL168WB988IG+/fZbBQUF6dChQ5o/f76OHj2qkJAQSdfX1V21apViY2M1fvx4TZs2TS1btrR5LVu3btWqVavsfQvtwkxbAAAAAAAAAHckc4atxWKRJDVo0MBmf4MGDbRv3z67z1u1alW5uf0vwgwMDFT16tWt2+7u7goICFBSUtJNz7N79251795d7733nh566CFJ0o8//ijDMBQeHi5fX1/rY+PGjTp06JAkad++fdm+Fkdjpi0AAAAAAACAmypfvrwsFot+++03tW/fPsv+33//XYULF1bRokVveI7MQNceHh4eWc6R3VhGRsYNz5GYmKi2bduqT58+6tOnj3U8IyND7u7u2rVrl9zd3W2e4+vrK+l/YXReY6YtAAAAAAAAgJsKCAhQZGSk3n//fV2+fNlmX2JioubOnatOnTpZg9nt27fbHLN9+3brOrLS9TA2PT3d4XVfuXJF7dq1U6VKlTRlyhSbfffff7/S09OVlJSk8uXL2zwyl22oUqVKtq/F0QhtAQAAAAAAANzS9OnTlZqaqpYtW2rTpk1KSEjQqlWrFBkZqRIlSmjcuHHWY7ds2aLJkydr//79eu+99/Tll19q4MCB1v1lypTRunXrlJiYqLNnzzqs5ueff14JCQl655139PfffysxMVGJiYlKS0tTeHi4unbtqu7du2vx4sWKj49XXFycJk2apBUrVkiSBgwYoFWrVllfy/Tp0x2+nq1EaAsAAAAAAAAgBypUqKCdO3eqXLly6tSpk8qVK6fnnntOTZs21bZt21SkSBHrsUOGDNGuXbt0//336/XXX9dbb72lli1bWve/9dZbWrt2rUqVKqX777/fYTVv3LhRJ06cUJUqVRQcHGx9bN26VZIUGxur7t27a8iQIapYsaLatm2rHTt2qFSpUpKk+vXra+bMmXr33XdVs2ZNrVmzRq+99prD6s1kMZy1MEMeSU5Olr+/v86fP6+CBQs6uxwAAAA4QJlhy/PkOocnPpIn17lX5EVf6In96Iv5cA8DXMuVK1cUHx+vsLAweXt7O7schyhTpowGDRqkQYMGObsUp7hZj3OaVTLTFgAAAAAAAABMhNAWAAAAAAAAAEwkn7MLAAAAAAAAAHDvOHz4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unXl5+en4sWLq3379vrjjz9sjunZs6csFovNo379+vaWDQAAAAAAAAB3BbtD2+HDh+unn37Shg0b5O3tbR1v3ry5Fi5caNe5Nm7cqBdffFHbt2/X2rVrde3aNbVo0UIXL160Oa5Vq1Y6ceKE9bFixQp7ywYAAAAAAACAu4Lda9ouXbpUCxcuVP369WWxWKzjVapU0aFDh+w616pVq2y2Y2NjVbx4ce3atcvmy8y8vLwUFBRkb6kAAAAAAAAAcNexe6bt33//reLFi2cZv3jxok2IezvOnz8vSSpSpIjN+IYNG1S8eHGFh4fr2WefVVJS0h1dBwAAAAAAAADMyu7Qtm7dulq+fLl1OzOo/fjjj9WgQYPbLsQwDEVHR+uhhx5StWrVrONRUVGaO3euvvvuO7311luKi4tTs2bNlJqamu15UlNTlZycbPMAAAAAAAAAgLuF3csjTJgwQa1atdJvv/2ma9euadq0afr111+1bds2bdy48bYLeemll7R3715t3rzZZrxTp07WP1erVk116tRRaGioli9fro4dO2Zb35gxY267DgAAAAAAAABwJrtn2jZs2FBbtmzRpUuXVK5cOa1Zs0aBgYHatm2bateufVtF9O/fX998843Wr1+vkiVL3vTY4OBghYaG6sCBA9nuHz58uM6fP299JCQk3FZNAAAAAAAAAOAMds+0laTq1atr9uzZd3xxwzDUv39/LVmyRBs2bFBYWNgtn3P69GklJCQoODg42/1eXl7y8vK649oAAAAAAAAAwBluK7SVpKSkJCUlJSkjI8NmvEaNGjk+x4svvqh58+bp66+/lp+fnxITEyVJ/v7+8vHxUUpKimJiYvTYY48pODhYhw8f1ogRI1S0aFF16NDhdksHAAAAAAAAANOyO7TdtWuXevTooX379skwDJt9FotF6enpOT7XjBkzJEkRERE247GxserZs6fc3d31888/a86cOTp37pyCg4PVtGlTLVy4UH5+fvaWDgAAAAAAAACmZ3do26tXL4WHh+uTTz5RYGCgLBbLbV/836Hvv/n4+Gj16tW3fX4AAAAAAAAAuNvYHdrGx8dr8eLFKl++vCPqAQAAAAAAAACX5mbvEx5++GH99NNPjqgFAAAAAAAAAFye3TNtZ86cqR49euiXX35RtWrV5OHhYbO/bdu2uVYcAAAAAAAAALgau0PbrVu3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", + "text/plain": [ + "

\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
operatorcoefficientvalue
0SeqScanrow100
1Filteroutput row100
2Projectionoutput row22
3Sortn * (floor(log2(n)) + 1)11
4Aggregationinput row510
5NestedLoopJoininput row pair70
6NestedLoopCrossJoininput row pair104
7HashJoinbuild row * width100
8HashJoinprobe row35
9HashJoinoutput row * width10
\n", + "" + ], + "text/plain": [ + " operator coefficient value\n", + "0 SeqScan row 100\n", + "1 Filter output row 100\n", + "2 Projection output row 22\n", + "3 Sort n * (floor(log2(n)) + 1) 11\n", + "4 Aggregation input row 510\n", + "5 NestedLoopJoin input row pair 70\n", + "6 NestedLoopCrossJoin input row pair 104\n", + "7 HashJoin build row * width 100\n", + "8 HashJoin probe row 35\n", + "9 HashJoin output row * width 10" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coefficients = pd.DataFrame([\n", + " (\"SeqScan\", \"row\", 100),\n", + " (\"Filter\", \"output row\", 100),\n", + " (\"Projection\", \"output row\", 22),\n", + " (\"Sort\", \"n * (floor(log2(n)) + 1)\", 11),\n", + " (\"Aggregation\", \"input row\", 510),\n", + " (\"NestedLoopJoin\", \"input row pair\", 70),\n", + " (\"NestedLoopCrossJoin\", \"input row pair\", 104),\n", + " (\"HashJoin\", \"build row * width\", 100),\n", + " (\"HashJoin\", \"probe row\", 35),\n", + " (\"HashJoin\", \"output row * width\", 10),\n", + "], columns=[\"operator\", \"coefficient\", \"value\"])\n", + "coefficients" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/research/benchmarks.pdf b/research/benchmarks.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cb0f791cc2100b5357c8fded6fe61fcc35442da9 GIT binary patch literal 283622 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%0D6fcU=Hn*@CYs2^L8;AX#x_7@ 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

LT9#-; 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 z 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 Tswo16@bd67g~J0wPn!N4>@i9` literal 0 HcmV?d00001 diff --git a/research/research.ipynb b/research/research.ipynb index b36f0be..454f982 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -3226,7 +3226,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.13" + "version": "3.13.7" } }, "nbformat": 4, diff --git a/src/stewkk/sql/logic/optimizer/cardinality.cpp b/src/stewkk/sql/logic/optimizer/cardinality.cpp index 2749864..9097843 100644 --- a/src/stewkk/sql/logic/optimizer/cardinality.cpp +++ b/src/stewkk/sql/logic/optimizer/cardinality.cpp @@ -8,7 +8,52 @@ namespace stewkk::sql { namespace { +constexpr double kEqualitySelectivity = 0.10; +constexpr double kRangeSelectivity = 0.50; +constexpr double kUnknownSelectivity = 0.50; +bool IsConstant(const Expression& expr) { + return std::holds_alternative(expr) + || std::holds_alternative(expr) + || std::holds_alternative(expr); +} + +double EstimateFilterSelectivity(const Expression& predicate) { + return std::visit(utils::Overloaded{ + [](const BinaryExpression& b) { + const auto lhs = EstimateFilterSelectivity(*b.lhs); + const auto rhs = EstimateFilterSelectivity(*b.rhs); + switch (b.binop) { + case BinaryOp::kAnd: + return lhs * rhs; + case BinaryOp::kOr: + return lhs + rhs - lhs * rhs; + case BinaryOp::kEq: + return (std::holds_alternative(*b.lhs) && IsConstant(*b.rhs)) + || (IsConstant(*b.lhs) && std::holds_alternative(*b.rhs)) + ? kEqualitySelectivity + : kUnknownSelectivity; + case BinaryOp::kGt: + case BinaryOp::kLt: + case BinaryOp::kLe: + case BinaryOp::kGe: + return kRangeSelectivity; + default: + return kUnknownSelectivity; + } + }, + [](const UnaryExpression& u) { + return u.op == UnaryOp::kNot + ? 1.0 - EstimateFilterSelectivity(*u.child) + : kUnknownSelectivity; + }, + [](const InExpression& in) { + const auto selectivity = std::min(0.50, in.values.size() * kEqualitySelectivity); + return in.negated ? 1.0 - selectivity : selectivity; + }, + [](const auto&) { return kUnknownSelectivity; }, + }, predicate); +} double JoinSelectivity(const Expression& qual, int64_t lhs_card, int64_t rhs_card) { const auto* b = std::get_if(&qual); @@ -49,7 +94,10 @@ int64_t CardinalityEstimates::GetCardinality(const LogicalOperator& op) { return 10; }, [this](const logical::Filter& f) -> int64_t { - return GetCardinality(f.source); + auto source_cardinality = GetCardinality(f.source); + auto filtered = static_cast( + source_cardinality * EstimateFilterSelectivity(f.predicate)); + return std::max(1, filtered); }, [this](const logical::Projection& p) -> int64_t { return GetCardinality(p.source); diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 43c3d86..c76cf2f 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include @@ -59,7 +60,19 @@ PropertySet DeriveOutputProps(utils::NotNull expr, }, expr->root_operator); } -int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstimates& cardinality) { +int64_t HashJoinCost(utils::NotNull build, utils::NotNull probe, + utils::NotNull output, CardinalityEstimates& cardinality, + SchemaCatalog& schema) { + constexpr int64_t kHashBuild = 100; + constexpr int64_t kHashProbe = 35; + constexpr int64_t kTupleCopy = 10; + return kHashBuild * cardinality.GetCardinality(build) * schema.GetWidth(build) + + kHashProbe * cardinality.GetCardinality(probe) + + kTupleCopy * cardinality.GetCardinality(output) * schema.GetWidth(output); +} + +int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstimates& cardinality, + SchemaCatalog& schema) { return std::visit(utils::Overloaded{ [&](const logical::Table&) -> int64_t { return 100 * cardinality.GetCardinality(expr->group); @@ -79,12 +92,17 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima [&](const logical::Join& j) -> int64_t { auto n_l = cardinality.GetCardinality(j.lhs); auto n_r = cardinality.GetCardinality(j.rhs); - return std::min(69 * (n_l + n_r), 70 * n_l * n_r); + return std::min({ + HashJoinCost(j.lhs, j.rhs, expr->group, cardinality, schema), + HashJoinCost(j.rhs, j.lhs, expr->group, cardinality, schema), + 70 * n_l * n_r, + }); }, }, expr->root_operator); } -int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality) { +int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardinality, + SchemaCatalog& schema) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) -> int64_t { return 100 * cardinality.GetCardinality(expr->group); @@ -106,7 +124,7 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi return 104 * n_l * n_r; }, [&](const physical::HashJoin& j) -> int64_t { - return 69 * (cardinality.GetCardinality(j.lhs) + cardinality.GetCardinality(j.rhs)); + return HashJoinCost(j.lhs, j.rhs, expr->group, cardinality, schema); }, [&](const physical::Sort& s) -> int64_t { auto n = cardinality.GetCardinality(s.input); @@ -189,7 +207,7 @@ int64_t Optimizer::LowerBoundCost(utils::NotNu int64_t best = std::numeric_limits::max(); for (auto expr : group->GetLogicalExprs()) { - int64_t local = LowerBoundLocalCost(expr, cardinality_); + int64_t local = LowerBoundLocalCost(expr, cardinality_, schema_); int64_t children = 0; bool overflow = false; for (auto child : GetChildren(expr)) { @@ -300,7 +318,7 @@ void Optimizer::TryRules( tasks_.emplace([this, expr, rule]() { Log("Applying implementation rule {} to group {}", rule, expr->group->GetId()); auto new_expr = rules_applier_.Apply(ImplementationRuleId{rule}, expr, memo_); - auto lc = CalcCost(new_expr, cardinality_); + auto lc = CalcCost(new_expr, cardinality_, schema_); Log("Local cost for group {} expression: {}", new_expr->group->GetId(), lc); local_cost_[new_expr.get()] = lc; }); @@ -372,7 +390,7 @@ void Optimizer::OptimizeGroup( auto op = enforcer->TryBuild(group, required, schema_); if (!op) continue; auto enf_expr = group->AddPhysicalExpr(*op, true); - auto lc = CalcCost(enf_expr, cardinality_); + auto lc = CalcCost(enf_expr, cardinality_, schema_); Log("Enforcer local cost for group {}: {}", group->GetId(), lc); local_cost_[enf_expr.get()] = lc; if (!limit || lc < *limit) { @@ -474,15 +492,36 @@ void Optimizer::RunSearch(Limit limit) { template PhysicalPlanNode Optimizer::Optimize() { + const auto started = std::chrono::steady_clock::now(); RunSearch(std::numeric_limits::max()); Log("Optimization complete, building plan"); - return BuildOptimalPlan(root_->group.get(), global_required_); + auto plan = BuildOptimalPlan(root_->group.get(), global_required_); + const auto runtime = std::chrono::duration_cast( + std::chrono::steady_clock::now() - started); + Log("Optimization finished in {} us, chosen plan cost {}", runtime.count(), GetBestCost()); + return plan; } template PhysicalPlanNode Optimizer::OptimizeExhaustive() { + const auto started = std::chrono::steady_clock::now(); RunSearch(std::nullopt); - return BuildOptimalPlan(root_->group.get(), global_required_); + auto plan = BuildOptimalPlan(root_->group.get(), global_required_); + const auto runtime = std::chrono::duration_cast( + std::chrono::steady_clock::now() - started); + Log("Exhaustive optimization finished in {} us, chosen plan cost {}", runtime.count(), + GetBestCost()); + return plan; +} + +template +std::int64_t Optimizer::GetBestCost() const { + WinnerKey key{root_->group.get(), global_required_}; + auto it = winner_.find(key); + if (it == winner_.end()) { + throw std::runtime_error{"no optimal plan cost"}; + } + return it->second.cost; } template diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 8bfeba0..7d44fc9 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -1,5 +1,8 @@ #include +#include +#include + #include #include #include @@ -20,6 +23,41 @@ namespace stewkk::sql { // FIXME: сделать API в виде DoStep(), которое возвращает какой-то внутренний стейт оптимизатора // FIXME: применение правила (по крайней мере трансформации), должно создавать несколько выражений +int64_t EstimateCardinality( + std::string_view sql, std::unordered_map table_sizes) { + std::stringstream s{std::string{sql}}; + Memo memo; + auto root = memo.Populate(GetAST(s).value().op); + CardinalityEstimates cardinality{std::move(table_sizes)}; + return cardinality.GetCardinality(root->group); +} + +TEST(CardinalityEstimatesTest, AppliesFilterHeuristics) { + ASSERT_THAT(EstimateCardinality("SELECT * FROM users WHERE users.id = 1;", {{"users", 1000}}), + Eq(100)); + ASSERT_THAT( + EstimateCardinality("SELECT * FROM users WHERE users.age BETWEEN 18 AND 30;", + {{"users", 1000}}), + Eq(250)); + ASSERT_THAT( + EstimateCardinality("SELECT * FROM users WHERE users.id IN (1, 2, 3);", + {{"users", 1000}}), + Eq(300)); +} + +TEST(SchemaCatalogTest, DerivesJoinWidth) { + std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + Memo memo; + auto root = memo.Populate(GetAST(s).value().op); + SchemaCatalog schema({ + {"users", {Attribute{"users", "id"}, Attribute{"users", "name"}}}, + {"orders", {Attribute{"orders", "id"}, Attribute{"orders", "user_id"}, + Attribute{"orders", "total"}}}, + }); + + ASSERT_THAT(schema.GetWidth(root->group), Eq(5)); +} + TEST(OptimizerTest, Simple) { std::stringstream s{"SELECT * FROM users;"}; Operator op = GetAST(s).value().op; @@ -28,6 +66,7 @@ TEST(OptimizerTest, Simple) { auto got = optimizer.Optimize(); ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n n0 [label=\"SeqScan\\\\nusers\"]\n}\n")); + ASSERT_THAT(optimizer.GetBestCost(), Eq(1000)); } TEST(OptimizerTest, JoinCommutativity) { @@ -62,8 +101,8 @@ TEST(OptimizerTest, MultiwayJoinOCR) { Serialize(got), Eq("(PhysicalProjection (exprs (attr orders id) (attr customers id) (attr regions id))" " (HashJoin Inner (= (attr orders customer_id) (attr customers id))" - " (SeqScan orders) (HashJoin Inner (= (attr customers region_id) (attr regions id))" - " (SeqScan regions) (SeqScan customers))))")); + " (HashJoin Inner (= (attr customers region_id) (attr regions id))" + " (SeqScan regions) (SeqScan customers)) (SeqScan orders)))")); } TEST(OptimizerTest, MultiwayJoinROC) { @@ -85,7 +124,7 @@ TEST(OptimizerTest, MultiwayJoinROC) { Eq("(PhysicalProjection (exprs (attr orders id) (attr customers id) (attr regions id))" " (HashJoin Inner (= (attr orders customer_id) (attr customers id))" " (HashJoin Inner (= (attr customers region_id) (attr regions id))" - " (SeqScan customers) (SeqScan regions)) (SeqScan orders)))")); + " (SeqScan regions) (SeqScan customers)) (SeqScan orders)))")); } TEST(OptimizerTest, OrderBy) { @@ -119,6 +158,30 @@ TEST(OptimizerTest, AliasedJoinOptimizesWithAliasQualifiedAttrs) { ASSERT_THAT(serialized, HasSubstr("(attr o customer_id)")); } +TEST(OptimizerTest, PushesSelectiveFilterIntoHashBuildSide) { + std::stringstream s{ + "SELECT * FROM lineorder AS lo " + "JOIN supplier AS s ON lo.suppkey = s.id " + "WHERE s.region = 'AMERICA';"}; + Operator op = GetAST(s).value().op; + SchemaCatalog schema({ + {"lineorder", {Attribute{"lineorder", "suppkey"}, Attribute{"lineorder", "value"}}}, + {"supplier", {Attribute{"supplier", "id"}, Attribute{"supplier", "region"}}}, + }); + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"lineorder", 6000}, + {"supplier", 100}, + }), std::move(schema)); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + Eq("(HashJoin Inner (= (attr lo suppkey) (attr s id))" + " (PhysicalFilter (= (attr s region) (str \"AMERICA\")) (SeqScan supplier s))" + " (SeqScan lineorder lo))")); +} + TEST(ReachabilityTest, SeqScanReachable) { std::stringstream s{"SELECT * FROM users;"}; auto result = IsPlanReachable(s, SeqScan{"users"}); diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index 43c801f..1a10aba 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -1,6 +1,10 @@ #include +#include +#include #include +#include +#include #include @@ -18,6 +22,11 @@ std::optional SchemaCatalog::GetSchema(utils::NotNull group) { return schema; } +std::int64_t SchemaCatalog::GetWidth(utils::NotNull group) { + auto schema = GetSchema(group); + return schema ? std::max(1, schema->size()) : 1; +} + // TODO: refactor to remove duplicate logic: both executor and optimizer derive // attributes std::optional SchemaCatalog::Derive(const LogicalOperator& op) { @@ -76,4 +85,32 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { }, op); } +SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir) { + std::unordered_map tables; + if (!std::filesystem::is_directory(dir)) { + return SchemaCatalog{}; + } + + static const std::regex kBench{R"(_\d+$)"}; + for (const auto& entry : std::filesystem::directory_iterator{dir}) { + if (entry.path().extension() != ".csv") continue; + auto stem = entry.path().stem().string(); + if (std::regex_search(stem, kBench)) continue; + + std::ifstream in{entry.path()}; + std::string header; + if (!std::getline(in, header)) continue; + + Schema schema; + for (const auto& part : header | std::views::split(',')) { + std::string token{part.begin(), part.end()}; + auto colon = token.find(':'); + if (colon == std::string::npos) continue; + schema.push_back(Attribute{stem, token.substr(0, colon)}); + } + tables.emplace(std::move(stem), std::move(schema)); + } + return SchemaCatalog{std::move(tables)}; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index d477e22..f1d0e25 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -1,14 +1,10 @@ #include #include #include -#include #include #include -#include -#include #include #include -#include #include #include @@ -88,30 +84,6 @@ Args ParseArgs(int argc, char** argv) { return args; } -SchemaCatalog LoadSchema(const std::string& dir) { - std::unordered_map tables; - static const std::regex kBench{R"(_\d+$)"}; - for (const auto& entry : std::filesystem::directory_iterator{dir}) { - if (entry.path().extension() != ".csv") continue; - auto stem = entry.path().stem().string(); - if (std::regex_search(stem, kBench)) continue; - - std::ifstream in{entry.path()}; - std::string header; - if (!std::getline(in, header)) continue; - - Schema schema; - for (const auto& part : header | std::views::split(',')) { - std::string token{part.begin(), part.end()}; - auto colon = token.find(':'); - if (colon == std::string::npos) continue; - schema.push_back(Attribute{stem, token.substr(0, colon)}); - } - tables.emplace(std::move(stem), std::move(schema)); - } - return SchemaCatalog{std::move(tables)}; -} - std::string SerializeAst(const Operator& op) { return std::visit([](auto&& node) -> std::string { using T = std::decay_t; @@ -245,7 +217,7 @@ int main(int argc, char** argv) { MatchResult mr; try { SchemaCatalog schema = args.data_dir.empty() ? SchemaCatalog{} - : LoadSchema(args.data_dir); + : LoadSchemaFromCsvDir(args.data_dir); mr = IsPlanReachable(sql_stream, target, {}, std::move(schema)); } catch (const std::exception& e) { std::cerr << "reachability error: " << e.what() << "\n"; @@ -275,7 +247,7 @@ int main(int argc, char** argv) { PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} : PropertySet::Any(); - Optimizer optimizer(parsed.op, MakeMainRules(), {}, LoadSchema(args.data_dir), + Optimizer optimizer(parsed.op, MakeMainRules(), {}, LoadSchemaFromCsvDir(args.data_dir), std::move(required)); plan = optimizer.Optimize(); } catch (const std::exception& e) { From 53b7421139fba95321586dcc4e1ab1c5f5caa938 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 2 Jun 2026 02:18:11 +0300 Subject: [PATCH 076/120] Add cost to runtime comparison on random queries --- research/cost-on-random.ipynb | 311 ++++++++ research/cost-stats.csv | 1305 +++++++++++++++++++++++++++++++++ research/fuzz/cost_stats.py | 128 ++++ src/stewkk/sql/main.cpp | 18 +- 4 files changed, 1761 insertions(+), 1 deletion(-) create mode 100644 research/cost-on-random.ipynb create mode 100644 research/cost-stats.csv create mode 100644 research/fuzz/cost_stats.py diff --git a/research/cost-on-random.ipynb b/research/cost-on-random.ipynb new file mode 100644 index 0000000..bba8ee6 --- /dev/null +++ b/research/cost-on-random.ipynb @@ -0,0 +1,311 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "aed19ec2", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-01T23:13:22.984825Z", + "iopub.status.busy": "2026-06-01T23:13:22.984699Z", + "iopub.status.idle": "2026-06-01T23:13:22.988427Z", + "shell.execute_reply": "2026-06-01T23:13:22.987712Z" + } + }, + "outputs": [], + "source": [ + "# !cd ~/c/iu9-sql-compiler/ && python -m research.fuzz.cost_stats \\\n", + "# --cli build-release/bin/sql \\\n", + "# --data-dir test/static/executor/test_data \\\n", + "# --count 400 --repeats 5 \\\n", + "# --out research/cost-stats.csv" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c50c4c78", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-01T23:13:22.990006Z", + "iopub.status.busy": "2026-06-01T23:13:22.989865Z", + "iopub.status.idle": "2026-06-01T23:13:23.532199Z", + "shell.execute_reply": "2026-06-01T23:13:23.531501Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "400 samples\n" + ] + }, + { + "data": { + "text/html": [ + "

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
seedplan_costexec_usrows
count400.000000400.0000004.000000e+02400.000000
mean199.50000027901.1225003.037728e+043445.482500
std115.61430187392.0421812.148684e+0524278.190578
min0.0000001122.0000001.170000e+020.000000
25%99.7500002085.0000001.705000e+022.000000
50%199.5000009220.0000003.205000e+025.000000
75%299.25000017220.0000001.303000e+0329.250000
max399.000000687256.0000003.085577e+06384231.000000
\n", + "
" + ], + "text/plain": [ + " seed plan_cost exec_us rows\n", + "count 400.000000 400.000000 4.000000e+02 400.000000\n", + "mean 199.500000 27901.122500 3.037728e+04 3445.482500\n", + "std 115.614301 87392.042181 2.148684e+05 24278.190578\n", + "min 0.000000 1122.000000 1.170000e+02 0.000000\n", + "25% 99.750000 2085.000000 1.705000e+02 2.000000\n", + "50% 199.500000 9220.000000 3.205000e+02 5.000000\n", + "75% 299.250000 17220.000000 1.303000e+03 29.250000\n", + "max 399.000000 687256.000000 3.085577e+06 384231.000000" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "df = pd.read_csv('cost-stats.csv')\n", + "df['exec_ms'] = df['exec_us'] / 1e3\n", + "print(f'{len(df)} samples')\n", + "df[['seed', 'plan_cost', 'exec_us', 'rows']].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "49d0ecdc", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-01T23:13:23.533678Z", + "iopub.status.busy": "2026-06-01T23:13:23.533532Z", + "iopub.status.idle": "2026-06-01T23:13:23.674869Z", + "shell.execute_reply": "2026-06-01T23:13:23.674232Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxMAAAJOCAYAAADMPVrNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAin1JREFUeJzs3Xd8U/X+x/F30jbpXnRRKKWCTFmiQAXBgVTEjQqKAor6k1v0IqLIVUFcuBdXwXFVrqK4J4Iiy4WgCMpQLiIKQgdQunfy/f3BbS6hBdqQpoPX8/HoQ3LONzmffJrYvHO+5xyLMcYIAAAAAOrI2tAFAAAAAGiaCBMAAAAAPEKYAAAAAOARwgQAAAAAjxAmAAAAAHiEMAEAAADAI4QJAAAAAB4hTAAAAADwCGECAAAAgEcIE8AxZvny5bJYLFq+fHlDlwIfs1gsuvvuuz2+/9ixY9W2bVuv1eNrTqdTJ5xwgu6///6GLgXN3O23366+ffs2dBmATxAmgGbilVdekcVicf0EBgaqQ4cOmjBhgrKyshq6vAbx7LPP6pVXXmnoMpqUXbt26e6779a6desauhSve+ONN7Rjxw5NmDDBtYz3TeP2yy+/6Oyzz1ZoaKiio6N11VVXaffu3bW+/0cffaQTTzxRgYGBatOmjaZPn67Kyspq49asWaNzzz1XCQkJCg0NVffu3fX000/L4XBUG1tQUKDbbrtNKSkpstvtatWqlS655BIVFxe7xkycOFE//fSTPvroI8+eONCE+Dd0AQC865577lFKSopKS0v19ddfa/bs2fr000+1YcMGBQcHN3R5PvXss88qJiZGY8eObehSmoxdu3ZpxowZatu2rXr27Om27oUXXpDT6WyYwrzgkUce0ciRIxUREVFtHe+bxuevv/7SwIEDFRERoQceeECFhYV69NFHtX79eq1evVo2m+2w91+4cKEuvPBCnXbaaZo1a5bWr1+v++67T9nZ2Zo9e7Zr3Jo1a3TKKafo+OOP15QpUxQcHKyFCxfq73//u7Zu3aqnnnrKNTYvL0+DBg3SX3/9peuvv17t27fX7t279dVXX6msrMz1WklISNAFF1ygRx99VOeff379NAhoLAyAZuHll182ksz333/vtnzSpElGknn99deNMcYsW7bMSDLLli1rgCp9q2vXrmbQoEENXUadOBwOU1JSUi+PLclMnz79sGO+//57I8m8/PLL9VJDQ/nxxx+NJPPFF1+4La/t+8YXCgsLfbYtT1VUVJiysjKfbGv8+PEmKCjI/Pnnn65lixcvNpLMc889d8T7d+nSxfTo0cNUVFS4lt1xxx3GYrGYX375xbXsuuuuMzabzezdu9ft/gMHDjTh4eHVaoqMjDS///77Ebf/zjvvGIvFYrZu3XrEsUBTxjQnoJk744wzJEnbtm075JivvvpKl156qdq0aSO73a6kpCTdfPPNKikpcRs3duxYhYaGaufOnbrwwgsVGhqq2NhYTZ48ucbpADVZuHChBg0apLCwMIWHh+vkk0/W66+/7jbm7bffVu/evRUUFKSYmBhdeeWV2rlzp9uYzMxMXX311WrdurXsdrtatmypCy64QH/88YckqW3bttq4caNWrFjhmsJy2mmn1VhTRUWFoqOjdfXVV1dbl5+fr8DAQE2ePNm1bNasWeratauCg4MVFRWlk046qdpzqC2LxaIJEyZo3rx56tq1q+x2uxYtWiRJ2rlzp6655hrFx8fLbrera9eueumll9zuX15ermnTpql3796KiIhQSEiITj31VC1btqzOtSxfvlwnn3yyJOnqq6929a1qqtjBx0z88ccfslgsevTRR/XMM8/ouOOOU3BwsIYMGaIdO3bIGKN7771XrVu3VlBQkC644ALl5ORU2+7ChQt16qmnKiQkRGFhYRo2bJg2btxY5/oP54MPPpDNZtPAgQNrNb6m981rr73mel1GR0dr5MiR2rFjh9v96vpe2rp1q8455xyFhYVp1KhRkqQtW7Zo+PDhSkhIUGBgoFq3bq2RI0cqLy/Pdf/Kykrde++9ateunex2u9q2bat//OMfKisrc9tO27Ztde655+rrr79Wnz59FBgYqOOOO07//ve/j9iDA3+/Tz75pGtbmzZtqlUPj9a7776rc889V23atHEtGzx4sDp06KC33nrrsPfdtGmTNm3apOuvv17+/v+bhPG3v/1Nxhi98847rmVV7/HIyEi3x2jZsqWCgoJct3Nzc/Xyyy/r+uuvV0pKisrLy6v1+0CDBw+WJH344Ye1er5AU8U0J6CZ27p1qySpRYsWhxzz9ttvq7i4WOPHj1eLFi20evVqzZo1S3/99Zfefvttt7EOh0NpaWnq27evHn30UX3xxRd67LHH1K5dO40fP/6wtbzyyiu65ppr1LVrV02dOlWRkZFau3atFi1apCuuuMI15uqrr9bJJ5+smTNnKisrS0899ZS++eYbrV271vUHf/jw4dq4caNuvPFGtW3bVtnZ2Vq8eLG2b9+utm3b6sknn9SNN96o0NBQ3XHHHZKk+Pj4GusKCAjQRRddpPfee0/PPfec2/SJDz74QGVlZRo5cqSk/VN9brrpJl1yySX6+9//rtLSUv38889atWqV6znU1dKlS/XWW29pwoQJiomJUdu2bZWVlaV+/fq5wkZsbKwWLlyocePGKT8/XxMnTpS0/4PQiy++qMsvv1zXXXedCgoK9K9//UtpaWlavXp1talKh9O5c2fdc889mjZtmq6//nqdeuqpkqRTTjnlsPebN2+eysvLdeONNyonJ0cPP/ywLrvsMp1xxhlavny5pkyZot9++02zZs3S5MmT3QLRq6++qjFjxigtLU0PPfSQiouLNXv2bA0YMEBr16712gHf3377rU444QQFBATUavzB75v7779fd911ly677DJde+212r17t2bNmqWBAwe6vS7r8l6qrKxUWlqaBgwYoEcffVTBwcEqLy9XWlqaysrKdOONNyohIUE7d+7UJ598otzcXNcUrWuvvVZz587VJZdcoltuuUWrVq3SzJkz9csvv+j99993285vv/2mSy65ROPGjdOYMWP00ksvaezYserdu7e6du16xF68/PLLKi0t1fXXXy+73a7o6OhDjs3Ly1NFRcURHzMwMFChoaGHXL9z505lZ2frpJNOqrauT58++vTTTw/7+GvXrpWkavdPTExU69atXesl6bTTTtObb76p//u//9OkSZNc05zee+89PfLII65xX3/9tUpLS9W+fXtdcskl+uCDD+R0OpWamqpnnnmm2nstIiJC7dq10zfffKObb775sPUCTVpD7xoB4B1V0zW++OILs3v3brNjxw4zf/5806JFCxMUFGT++usvY0zN05yKi4urPd7MmTONxWJxm2IwZswYI8ncc889bmN79eplevfufdj6cnNzTVhYmOnbt2+1aTxOp9MYY0x5ebmJi4szJ5xwgtuYTz75xEgy06ZNM8YYs2/fPiPJPPLII4fdZl2mOX322WdGkvn444/dlp9zzjnmuOOOc92+4IILTNeuXWv1mLUhyVitVrNx40a35ePGjTMtW7Y0e/bscVs+cuRIExER4fqdVVZWVpt2sm/fPhMfH2+uueaaats6mmlOY8aMMcnJya7b27ZtM5JMbGysyc3NdS2fOnWqkVRtisnll19ubDabKS0tNcYYU1BQYCIjI811113ntp3MzEwTERFRbfnRaN26tRk+fHi15bV53/zxxx/Gz8/P3H///W73Xb9+vfH393dbXtf30u233+42du3atUaSefvttw/5XNatW2ckmWuvvdZt+eTJk40ks3TpUtey5ORkI8l8+eWXrmXZ2dnGbrebW2655ZDbMOZ/v9/w8HCTnZ192LFVBg0aZCQd8WfMmDGHfZyq1+G///3vautuvfVWI8n1OqrJI488YiSZ7du3V1t38sknm379+rluV1ZWmgkTJpiAgABXfX5+fmb27Nlu93v88ceNJNOiRQvTp08fM2/ePPPss8+a+Ph4ExUVZXbt2lVtW0OGDDGdO3c+7HMFmjqmOQHNzODBgxUbG6ukpCSNHDlSoaGhev/999WqVatD3ufAXflFRUXas2ePTjnlFBlj3L7Bq3LDDTe43T711FP1+++/H7auxYsXq6CgQLfffrsCAwPd1lksFknSDz/8oOzsbP3tb39zGzNs2DB16tRJCxYscNVrs9m0fPly7du377Dbra0zzjhDMTExevPNN13L9u3bp8WLF2vEiBGuZZGRkfrrr7/0/fffe2W7kjRo0CB16dLFddsYo3fffVfnnXeejDHas2eP6yctLU15eXn68ccfJUl+fn6uPSlOp1M5OTmqrKzUSSed5BpT3y699FK3g5qrTol55ZVXuk0x6du3r8rLy11T1hYvXqzc3Fxdfvnlbs/Rz89Pffv29Wiq1qHs3btXUVFRh1x/uPfNe++9J6fTqcsuu8ytzoSEBB1//PFuddb1vXTw3ryqPn722WduZwc6UNW38pMmTXJbfsstt0iS631SpUuXLq69TJIUGxurjh07HvE9W2X48OGKjY2t1djHHntMixcvPuLPbbfddtjHqZoWZrfbq62r+n/DwVPH6nL/A+/r5+endu3aKS0tTXPnztWbb76p8847TzfeeKM++OAD17jCwkJJ+/9/tWTJEl1xxRUaP368PvjgA+3bt0/PPPNMtW1FRUVpz549h32uQFPHNCegmXnmmWfUoUMH+fv7Kz4+Xh07dpTVevjvDbZv365p06bpo48+qvbh/MB52tL+P8QHf7CIioo64of6qmkjJ5xwwiHH/Pnnn5Kkjh07VlvXqVMnff3115L2f0B46KGHdMsttyg+Pl79+vXTueeeq9GjRyshIeGwdRyKv7+/hg8frtdff11lZWWy2+167733VFFR4RYmpkyZoi+++EJ9+vRR+/btNWTIEF1xxRXq37+/R9uVpJSUFLfbu3fvVm5urp5//nk9//zzNd4nOzvb9e+5c+fqscce06+//uo2xeTgx60vB85pl/73gTgpKanG5VWvlS1btkj63/EJBwsPD/dqncaYQ6473Ptmy5YtMsbo+OOPr/G+B06dqst7yd/fX61bt3ZblpKSokmTJunxxx/XvHnzdOqpp+r888/XlVde6erfn3/+KavVqvbt27vdNyEhQZGRka73UZWDfz9S7d6zB9ZUW71796712MOpCmU1HZNQWlrqNsaT+x943wcffFBPPfWUtmzZ4pp6ddlll+n0009Xenq6zj33XPn7+7vuc95557lN0erXr59SUlL07bffVtuWMcb1ZQnQXBEmgGamT58+Nc4zPhSHw6GzzjpLOTk5mjJlijp16qSQkBDt3LlTY8eOrXYqUD8/P2+X7JGJEyfqvPPO0wcffKDPPvtMd911l2bOnKmlS5eqV69eHj3myJEj9dxzz7lOKfnWW2+pU6dO6tGjh2tM586dtXnzZn3yySdatGiR3n33XT377LOaNm2aZsyY4dF2D/5QVNXzK6+8UmPGjKnxPt27d5e0/6DgsWPH6sILL9Stt96quLg4+fn5aebMma4AV98O9Zo41PKqD/VVz/PVV1+tMQQeuFfjaLVo0eKwH54P975xOp2yWCxauHBhjc+p6oNlXd9Ldru9xqD/2GOPaezYsfrwww/1+eef66abbtLMmTP13XffuYWP2n5IPdLv4UgO96H9YDk5OSovL6/VY9Z0it4qLVu2lCRlZGRUW5eRkaHo6Oga9zrUdP+DQ21GRob69Onjuv3ss8/qjDPOqHYMx/nnn69Jkybpjz/+UPv27ZWYmCip5mOv4uLianx97du3TzExMYesE2gOCBPAMW79+vX6z3/+o7lz52r06NGu5YsXL/bqdtq1aydJ2rBhQ7VvVKskJydLkjZv3lzt2+rNmze71h/4mLfccotuueUWbdmyRT179tRjjz2m1157TVLtP2xVGThwoFq2bKk333xTAwYM0NKlS10Hbx8oJCREI0aM0IgRI1ReXq6LL75Y999/v6ZOnVptCpcnYmNjFRYWJofD4TojzKG88847Ou644/Tee++5Pd/p06d7tG1ffota9ZqIi4s74vM8Wp06dTrsGc0Op127djLGKCUlRR06dDjkOG++l7p166Zu3brpzjvv1Lfffqv+/ftrzpw5uu+++5ScnCyn06ktW7aoc+fOrvtkZWUpNze32vvEly6++GKtWLHiiOPGjBlz2AtKtmrVSrGxsfrhhx+qravNiQWq1v/www9uwWHXrl2ua0RUycrKqvFsdFV7+aoucle11+XgM8tVPW6nTp2qLd+2bZvblxFAc8QxE8AxrupbywO/pTTGuF2oyRuGDBmisLAwzZw50zVN4cDtSfvPvBIXF6c5c+a4TU9YuHChfvnlFw0bNkySVFxcXO0x2rVrp7CwMLf7hYSEKDc3t9Y1Wq1WXXLJJfr444/16quvqrKy0m2Kk7R/7v2BbDabunTpImOM68NHcXGxfv31V4/nSvv5+Wn48OF69913tWHDhmrrD7wCcE2/v1WrVmnlypUebTskJESS6tQ3T6WlpSk8PFwPPPBAjWcAqsuVjo8kNTVVGzZsOOypPA/l4osvlp+fn2bMmFHt23xjjOs14Y33Un5+frUrNHfr1k1Wq9VV+znnnCNJevLJJ93GPf7445Lkep80BG8dMyHtP1bjk08+cTv97pIlS/Sf//xHl156qWtZRUWFfv31V7e9GF27dlWnTp30/PPPuwWF2bNny2Kx6JJLLnEt69ChgxYvXuz23nY4HHrrrbcUFhbmCr0dO3ZUjx499OGHH7q9tz///HPt2LFDZ511llv9eXl52rp16xHPhgY0deyZAI5xnTp1Urt27TR58mTt3LlT4eHhevfdd712YHOV8PBwPfHEE7r22mt18skn64orrlBUVJR++uknFRcXa+7cuQoICNBDDz2kq6++WoMGDdLll1/uOjVs27ZtXadX/M9//qMzzzxTl112mbp06SJ/f3+9//77ysrKcp3CVdr/TeLs2bN13333qX379oqLizvk/PwqI0aM0KxZszR9+nR169bN7ZtfaX8oSkhIUP/+/RUfH69ffvlF//znPzVs2DCFhYVJ2v/N6emnn67p06fr7rvv9qhfDz74oJYtW6a+ffvquuuuU5cuXZSTk6Mff/xRX3zxhet6Deeee67ee+89XXTRRRo2bJi2bdumOXPmqEuXLq4DRuuiXbt2ioyM1Jw5cxQWFqaQkBD17du3Xo6/CA8P1+zZs3XVVVfpxBNP1MiRIxUbG6vt27drwYIF6t+/v/75z396ZVsXXHCB7r33Xq1YsUJDhgyp033btWun++67T1OnTtUff/yhCy+8UGFhYdq2bZvef/99XX/99Zo8ebJX3ktLly7VhAkTdOmll6pDhw6qrKzUq6++6gqYktSjRw+NGTNGzz//vHJzczVo0CCtXr1ac+fO1YUXXqjTTz+9Ts/Pm7x1zIQk/eMf/9Dbb7+t008/XX//+99VWFioRx55RN26dXO7JszOnTvVuXPnans7HnnkEZ1//vkaMmSIRo4cqQ0bNuif//ynrr32Wrf39e23364rr7xSffv21fXXX6+goCC98cYbWrNmje677z63Y2KeeOIJnXXWWRowYID+7//+T3l5eXr88cfVoUOHagfTf/HFFzLG6IILLvBaT4BGybcnjwJQXw51Jd+D1XRq2E2bNpnBgweb0NBQExMTY6677jrz008/VTtF6JgxY0xISEi1x5w+fbqp7f9OPvroI3PKKaeYoKAgEx4ebvr06WPeeOMNtzFvvvmm6dWrl7Hb7SY6OtqMGjXKdWpbY4zZs2ePSU9PN506dTIhISEmIiLC9O3b17z11ltuj5OZmWmGDRtmwsLCjKRanSbW6XSapKQkI8ncd9991dY/99xzZuDAgaZFixbGbrebdu3amVtvvdXk5eW5xlT1+EinYTVm/+la09PTa1yXlZVl0tPTTVJSkgkICDAJCQnmzDPPNM8//7xbvQ888IBJTk42drvd9OrVy3zyySfVTuNata3a1PThhx+aLl26GH9/f7fXwKFODXvwKXqrnv/Bpzc91Gt02bJlJi0tzURERJjAwEDTrl07M3bsWPPDDz8csda66N69uxk3blytaqrJu+++awYMGGBCQkJMSEiI6dSpk0lPTzebN292jTna99Lvv/9urrnmGtOuXTsTGBhooqOjzemnn17tyt0VFRVmxowZJiUlxQQEBJikpCQzderUaqdLTU5ONsOGDau2nUGDBh3x/XCo368vbdiwwQwZMsQEBwebyMhIM2rUKJOZmek2pqrOmk43+/7775uePXsau91uWrdube68805TXl5ebdyiRYvMoEGDTExMjLHZbKZbt25mzpw5Nda0ePFi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tWvXTqNHj3a9ftLT01VWVqYvv/xS69ev10MPPaTQ0NAaH7tTp0569NFH9be//U3bt2/XX3/9pRtuuEEPPfSQunTpUuN9du7cqYEDB8put2vp0qVas2aNrrnmGlVWVkra//p87LHH9Oijj+rnn39WWlqazj//fNfr5+mnn9ZHH32kt956S5s3b9Zrr72m5ORkSdL3338vSXr55ZeVkZHhuu1LXLQOAAB4zBSXalvbIQ2y7ZQ/PpclJOiI4yIiImSz2RQcHKyEhITDjq2oqNDs2bPVrl07SdIll1yiV199VVlZWQoNDVWXLl10+umna9myZRoxYoS2b9+ul19+Wdu3b1diYqIkafLkyVq0aJFefvllPfDAAzVu58UXX1RJSckh6wgICDjkuszMTNlsNkVGRrotj4+PV2Zm5iHvUzXmUPfJzMxUXFyc23p/f39FR0e7jUlJSXEbU3WfzMxMRUVFVdv2lClTlJiY6AoyVcFn6tSpeu655xQSEqInnnhCf/31lzIyMmqsf8+ePbr33nvdplwdyjnnnKP/+7//kyRNmzZNs2fP1sknn6xLL73UVU9qaqqysrKUkJCg7du3a/jw4erWrZsk6bjjjjvs4//tb3/Tp59+qiuvvFI2m00nn3yybrzxxkOOf+aZZxQREaH58+e7fq8dOnRwrX/00Uc1ZcoUjRw5UpL00EMPadmyZXryySf1zDPPaPv27Tr++OM1YMAAWSwWtWnTRv369ZMkxcbGSpIiIyOP+NquL4QJAACA/woODnYFCWn/h+22bdu6fVMdHx+v7OxsSdL69evlcDjcPhxK+799P9xVwlu1auXlyhunBx98UPPnz9fy5ctdeyICAgL03nvvady4cYqOjpafn58GDx6soUOH1ri3KT8/X8OGDVOXLl109913H3Gb3bt3d/27KjxVBYUDl2VnZyshIUE33XSTxo8fr88//1yDBw/W8OHD3R6jJi+99JI6dOggq9WqjRs3Hva4m3Xr1unUU0+tMSDm5+dr165d6t+/v9vy/v3766effpIkjR07VmeddZY6duyos88+W8OGDdMZZ5xxhC74DmECzVJhWaUy80oUGxqoiOBDf7sDADg6luBApfzxeYNt29sO/sBnsVhqXOZ0OiVJhYWF8vPz05o1a+Tn5+c27lBTZaT905y++uqrQ65PTk7Wxo0ba1yXkJCg8vJy5ebmuu2dqPqm/VD3qRrTsmVLt/v07NnTNaYqJFWprKxUTk6O6/4JCQnVzhpVdZ+Dt/3oo4/qwQcf1BdffFHtw3nv3r21bt065eXlqby8XLGxserbt6/bFCtJKigo0Nlnn62wsDC9//77h91jU+XAMVUf8mtaVvU7vPbaa5WWlqYFCxbo888/18yZM/XYY48ddm/DTz/9pKKiIlmtVmVkZLj19GBBQUfee3Y4J554orZt26aFCxfqiy++0IgRI3TGGWfo3XffParH9RbCBJqd/2QVaNGGTDmcRhaLNKhDrHq1qb7bFQBw9CwWS62mGjU0m80mh8Ph9cft1auXHA6HsrOzdeqpp9b6fkczzal3794KCAjQkiVLNHz4cEnS5s2btX37dqWmptZ4n5SUFCUkJGjJkiWu8JCfn69Vq1Zp/PjxkqTU1FTl5uZqzZo16t27tyRp6dKlcjqd6tu3r2vMHXfcoYqKCleNX3zxhTp27Og2xenhhx/W/fffr88++6xaQDhQ1Wl5t2zZoh9++EH33nuva11+fr7S0tJkt9v10UcfuR1j4W1JSUm64YYbdMMNN2jq1Kl64YUXDhkmcnJyNHbsWN1xxx3KyMjQqFGj9OOPPx4yNHTv3l1z585161mV8PBwJSYm6ptvvtGgQYNcy7/55hv16dPHbdyIESM0YsQIDR8+XEOHDlVOTo5atGihgICAenlt1xZhAs2KMUYrNu+Ww2n+e1v6dutedU2MkM2f8w0AwLGqbdu2WrVqlf744w+Fhoa6DgY+Wh06dNCoUaM0evRoPfbYY+rVq5d2796tJUuWqHv37ho2bFiN9zuaaU4REREaN26cJk2apOjoaIWHh+vGG29Uamqqay69tP/YhJkzZ+qiiy6SxWLRxIkTdd999+n4449XSkqK7rrrLiUmJurCCy+UJHXu3Flnn322rrvuOs2ZM0cVFRWaMGGCRo4c6Toe5IorrtCMGTM0btw4TZkyRevXr9c///lPPf74467tPvTQQ5o2bZpef/11tW3b1nW8RdXB5ZL09ttvKzY2Vm3atNH69ev197//XRdeeKGGDNl//E3VKWiLi4v12muvKT8/X/n5+ZL2Hydw8F6gozFx4kQNHTpUHTp00L59+7Rs2TJ17tz5kONvuOEGJSUl6c4771RZWZl69eqlyZMn65lnnqlx/IQJEzRr1iyNHDlSU6dOVUREhL777jv16dNHHTt21K233qrp06erXbt26tmzp15++WWtW7dO8+bNkyQ9/vjjatmypXr16iWr1aq3335bCQkJrr1Sbdu21ZIlS9S/f3/Z7fYaj1upT4QJNCtOIxWVV7otK690qqTCQZgAgGPY5MmTNWbMGHXp0kUlJSXatm2b1x775Zdf1n333adbbrlFO3fuVExMjPr166dzzz3Xa9s42BNPPCGr1arhw4errKxMaWlpevbZZ93GbN682e0ib7fddpuKiop0/fXXKzc3VwMGDNCiRYvcvvGfN2+eJkyYoDPPPNP1+E8//bRrfUREhD7//HOlp6erd+/eiomJ0R133OF2YPTs2bNVXl6uSy65xK2e6dOnu455yMjI0KRJk1zTrkaPHq277rrLNfbHH390nUGqffv2bo+zbds2tW3b1rPG1cDhcCg9PV1//fWXwsPDdfbZZ+uJJ56ocey///1vffrpp1q7dq38/f3l7++v1157TQMGDNC5556roUOHVrtPixYttHTpUt16660aNGiQ/Pz81LNnT9dxElUX47vllluUnZ2tLl266KOPPtLxxx8vSQoLC9PDDz+sLVu2yM/PTyeffLI+/PBDWa37P9c89thjmjRpkl544QW1atVKf/zxh9d6UxsWU9vzqh3D8vPzFRER4Tolma85nU5lZ2crLi7O9cLBoX24bqd+313kuh0fHqgr+rap9f3pt+/Rc9+i377VnPpdWlqqbdu2KSUlpV6nnBwNY4wqKyvl7+/fJC9G19TQb9/zpOeHeu964zMueybQ7KR1TdDXW/ZoZ26J4sPt6t8+pqFLAgAAaJYIE2h2AgP8NLhL/JEHAgAA4Kg07f2tAAAAABoMYQIAAACARwgTAAAAADxCmAAAAHVSdeVgAE1Dfb5nG/QA7NmzZ2v27Nmu8+F27dpV06ZNc52jt7S0VLfccovmz5/vdg7l+Pj/HVy7fft2jR8/XsuWLVNoaKjGjBmjmTNnyt//f09t+fLlmjRpkjZu3Oi6yMjYsWN9+VQBAGjybDabrFardu3apdjYWNlstkZ3OlBOVepb9Nv36tJzY4zKy8u1e/duWa1W2Ww2r9fToGGidevWevDBB3X88cfLGKO5c+fqggsu0Nq1a9W1a1fdfPPNWrBggd5++21FRERowoQJuvjii/XNN99I2n+RkWHDhikhIUHf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Emp8jM8//1ybNm3SF198ofj4ePXs2VP33nuvpkyZorvvvls2m01z5sxRSkqKHnvsMUlS586d9fXXX+uJJ55QWlpa/T1BAAAAoBlr0DBxsLy8PElSdHS02/J58+bptddeU0JCgs477zzdddddCg4OliStXLlS3bp1U3x8vGt8Wlqaxo8fr40bN6pXr15auXKlBg8e7PaYaWlpmjhxYo11lJWVqayszHU7Pz9fkuR0OuV0Oo/6edaV0+mUMaZBtn0sot++R899i377Fv32LfrtW/Tb97zZc288RqMJE06nUxMnTlT//v11wgknuJZfccUVSk5OVmJion7++WdNmTJFmzdv1nvvvSdJyszMdAsSkly3MzMzDzsmPz9fJSUlCgoKcls3c+ZMzZgxo1qNu3fvVmlp6dE/2TpyOp3Ky8uTMUZWK8fM1zf67Xv03Lfot2/Rb9+i375Fv33Pmz0vKCg46noaTZhIT0/Xhg0b9PXXX7stv/76613/7tatm1q2bKkzzzxTW7duVbt27eqllqlTp2rSpEmu2/n5+UpKSlJsbKzCw8PrZZuH43Q6ZbFYFBsbyxvVB+i379Fz36LfvkW/fYt++xb99j1v9jwwMPCo62kUYWLChAn65JNP9OWXX6p169aHHdu3b19J0m+//aZ27dopISFBq1evdhuTlZUlSa7jLBISElzLDhwTHh5eba+EJNntdtnt9mrLrVZrg71RLBZLg27/WEO/fY+e+xb99i367Vv027fot+95q+fe+J016G/dGKMJEybo/fff19KlS5WSknLE+6xbt06S1LJlS0lSamqq1q9fr+zsbNeYxYsXKzw8XF26dHGNWbJkidvjLF68WKmpqV56JgAAAMCxp0HDRHp6ul577TW9/vrrCgsLU2ZmpjIzM1VSUiJJ2rp1q+69916tWbNGf/zxhz766CONHj1aAwcOVPfu3SVJQ4YMUZcuXXTVVVfpp59+0meffaY777xT6enprr0LN9xwg37//Xfddttt+vXXX/Xss8/qrbfe0s0339xgzx0AAABo6ho0TMyePVt5eXk67bTT1LJlS9fPm2++KUmy2Wz64osvNGTIEHXq1Em33HKLhg8fro8//tj1GH5+fvrkk0/k5+en1NRUXXnllRo9erTuuece15iUlBQtWLBAixcvVo8ePfTYY4/pxRdf5LSwAAAAwFFo0GMm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jz32mF588UWlpaUd3ZMHAAAAjmF1PpvTxIkT1a1bN40bN04Oh0ODBg3St99+q+DgYH3yySc67bTTav1YtbnERWBgoJ555hk988wzhxyTnJxcbRrTwU477TStXbu21rUBAAAAOLw675l455131KNHD0nSxx9/rG3btunXX3/VzTffrDvuuMPrBQIAAABonOocJvbs2eM6S9Knn36qSy+9VB06dNA111yj9evXe71AAAAAAI1TncNEfHy8Nm3aJIfDoUWLFumss86SJBUXF8vPz8/rBQIAAABonOp8zMTVV1+tyy67TC1btpTFYtHgwYMlSatWrVKnTp28XiAAAACAxqnOYeLuu+/WCSecoB07dujSSy91nX7Vz89Pt99+u9cLBAAAANA41TlMSNIll1xSbdmYMWOOuhgAAAAATYdHYeL777/XsmXLlJ2dLafT6bbu8ccf90phAAAAABq3OoeJBx54QHfeeac6duyo+Ph4WSwW17oD/w0AAACgeatzmHjqqaf00ksvaezYsfVQDgAAAICmos6nhrVarerfv3991AIAAACgCalzmLj55pv1zDPP1EctAAAAAJqQOk9zmjx5soYNG6Z27dqpS5cuCggIcFv/3nvvea04AAAAAI1XncPETTfdpGXLlun0009XixYtOOgaAAAAOEbVOUzMnTtX7777roYNG1Yf9QAAAABoIup8zER0dLTatWtXH7UAAAAAaELqHCbuvvtuTZ8+XcXFxfVRDwAAAIAmos7TnJ5++mlt3bpV8fHxatu2bbUDsH/88UevFQcAAACg8apzmLjwwgvroQwAAAAATU2dw8T06dProw4AAAAATUytjpkwxtR3HQAAAACamFqFia5du2r+/PkqLy8/7LgtW7Zo/PjxevDBB71SHAAAAIDGq1bTnGbNmqUpU6bob3/7m8466yyddNJJSkxMVGBgoPbt26dNmzbp66+/1saNGzVhwgSNHz++vusGAAAA0MBqFSbOPPNM/fDDD/r666/15ptvat68efrzzz9VUlKimJgY9erVS6NHj9aoUaMUFRVV3zUDAAAAaATqdAD2gAEDNGDAgPqqBQAAAEATUueL1gEAAACARJgAAAAA4CHCBAAAAACPECYAAAAAeIQwAQAAAMAjHoWJrVu36s4779Tll1+u7OxsSdLChQu1ceNGrxYHAAAAoPGqc5hYsWKFunXrplWrVum9995TYWGhJOmnn37S9OnTvV4gAAAAgMapzmHi9ttv13333afFixfLZrO5lp9xxhn67rvvvFocAAAAgMarzmFi/fr1uuiii6otj4uL0549e7xSFAAAAIDGr85hIjIyUhkZGdWWr127Vq1atfJKUQAAAAAavzqHiZEjR2rKlCnKzMyUxWKR0+nUN998o8mTJ2v06NH1USMAAACARqjOYeKBBx5Qp06dlJSUpMLCQnXp0kUDBw7UKaecojvvvLM+agQAAADQCPnX9Q42m00vvPCC7rrrLm3YsEGFhYXq1auXjj/++PqoDwAAAEAjVecwUaVNmzZq06aNN2sBAAAA0ITUOUwYY/TOO+9o2bJlys7OltPpdFv/3nvvea04AAAAAI1XncPExIkT9dxzz+n0009XfHy8LBZLfdQFeKygtEJrt+equNyhTglhahsT0tAlAQAANEt1DhOvvvqq3nvvPZ1zzjn1UQ9wVMornXrz+x0qKK2UJP2Ska9zu7fU8fFhDVwZAABA81PnszlFRETouOOOq49agKP2+55CV5Co8vNfeQ1UDQAAQPNW5zBx9913a8aMGSopKamPeoCj4m+t/pL292MqHgAAQH2o8zSnyy67TG+88Ybi4uLUtm1bBQQEuK3/8ccfvVYcUFcpMSGKDbNrd0GZJMnPatGJbaIauCoAAIDmqc5hYsyYMVqzZo2uvPJKDsBGo+Nnteiyk5K0ObNAReWV6hAfpugQW0OXBQAA0CzVOUwsWLBAn332mQYMGFAf9QBHzeZvVbfWEQ1dBgAAQLNX5zCRlJSk8PDw+qgF8LodOcXauCtPAX5W9UyKVItQe0OXBAAA0GzU+QDsxx57TLfddpv++OOPeigH8J4dOcV698e/9EtGgX7+K0/zv9+hgtKKhi4LAACg2ajznokrr7xSxcXFateunYKDg6sdgJ2Tk+O14oCjsXFXnoz53+3ySqf+k1Wo3skckA0AAOANdQ4TTz75ZD2UAXhfgF/1HW+2GpYBAADAMx6dzQloCnomRerXzAKVVzolSZHBAeqQENrAVQEAADQftQoT+fn5roOu8/PzDzuWg7PRWLQItWt0arL+k1Uom59VHRJCZff3a+iyAAAAmo1ahYmoqChlZGQoLi5OkZGRNV5bwhgji8Uih8Ph9SIBT4UFBnCMBAAAQD2pVZhYunSpoqOjJUnLli2r14IAAAAANA21ChODBg1y/TslJUVJSUnV9k4YY7Rjxw7vVgcAAACg0arzqW1SUlK0e/fuastzcnKUkpLilaIAAAAANH51DhNVx0YcrLCwUIGBgV4pCgAAAEDjV+tTw06aNEmSZLFYdNdddyk4ONi1zuFwaNWqVerZs6fXCwQAAADQONU6TKxdu1bS/j0T69evl81mc62z2Wzq0aOHJk+e7P0KAQAAADRKtQ4TVWdxuvrqq/XUU09xPQkAAADgGFfnK2C//PLL9VEHAAAAgCamzgdgAwAAAIBEmAAAAADgoQYNE19++aXOO+88JSYmymKx6IMPPnBbP3bsWFksFrefs88+221MTk6ORo0apfDwcEVGRmrcuHEqLCx0G/Pzzz/r1FNPVWBgoJKSkvTwww/X91MDAAAAmr06HzPhTUVFRerRo4euueYaXXzxxTWOOfvss92O07Db7W7rR40apYyMDC1evFgVFRW6+uqrdf311+v111+XJOXn52vIkCEaPHiw5syZo/Xr1+uaa65RZGSkrr/++vp7cmgwmXmlWvprtvYWlqlNi2AN7hyvEHuDvtQBAACaJY8+YW3ZskXLli1Tdna2nE6n27pp06bV+nGGDh2qoUOHHnaM3W5XQkJCjet++eUXLVq0SN9//71OOukkSdKsWbN0zjnn6NFHH1ViYqLmzZun8vJyvfTSS7LZbOratavWrVunxx9/nDDRDDmcRh//tEuFZZWSpN93F+kLZemCnq0auDIAAIDmp85h4oUXXtD48eMVExOjhIQEt6thWyyWOoWJ2li+fLni4uIUFRWlM844Q/fdd59atGghSVq5cqUiIyNdQUKSBg8eLKvVqlWrVumiiy7SypUrNXDgQLfrYqSlpemhhx7Svn37FBUV5dV60bD2Fpa5gkSV7XuLG6gaAACA5q3OYeK+++7T/fffrylTptRHPW7OPvtsXXzxxUpJSdHWrVv1j3/8Q0OHDtXKlSvl5+enzMxMxcXFud3H399f0dHRyszMlCRlZmYqJSXFbUx8fLxrXU1hoqysTGVlZa7b+fn5kiSn01ltT4wvOJ1OGWMaZNtNTajdTwFWqcJhXMtiQu116h399j167lv027fot2/Rb9+i377nzZ574zHqHCb27dunSy+99Kg3XBsjR450/btbt27q3r272rVrp+XLl+vMM8+st+3OnDlTM2bMqLZ89+7dKi0trbftHorT6VReXp6MMbJaOQHXkfRp6af1f+Wr0uFUYICfesYEKTs7u9b3p9++R899i377Fv32LfrtW/Tb97zZ84KCgqOup85h4tJLL9Xnn3+uG2644ag3XlfHHXecYmJi9Ntvv+nMM89UQkJCtQ+JlZWVysnJcR1nkZCQoKysLLcxVbcPdSzG1KlTNWnSJNft/Px8JSUlKTY2tkGu/O10OmWxWBQbG8sbtRbi4qRu7R3KL6lQdIhdflbLke90APrte/Tct+i3b9Fv36LfvkW/fc+bPQ8MDDzqeuocJtq3b6+77rpL3333nbp166aAgAC39TfddNNRF3Uof/31l/bu3auWLVtKklJTU5Wbm6s1a9aod+/ekqSlS5fK6XSqb9++rjF33HGHKioqXLUuXrxYHTt2POTxEna7vdpZoyTJarU22BvFYrE06PabmiCbVUG2gCMPPAT67Xv03Lfot2/Rb9+i375Fv33PWz33xu+szmHi+eefV2hoqFasWKEVK1a4rbNYLHUKE4WFhfrtt99ct7dt26Z169YpOjpa0dHRmjFjhoYPH66EhARt3bpVt912m9q3b6+0tDRJUufOnXX22Wfruuuu05w5c1RRUaEJEyZo5MiRSkxMlCRdccUVmjFjhsaNG6cpU6Zow4YNeuqpp/TEE0/U9akDAAAAOECdw8S2bdu8tvEffvhBp59+uut21dSiMWPGaPbs2fr55581d+5c5ebmKjExUUOGDNG9997rttdg3rx5mjBhgs4880xZrVYNHz5cTz/9tGt9RESEPv/8c6Wnp6t3796KiYnRtGnTOC0sAAAAcJSO6kpexuw/Y86Bp4eti9NOO831GDX57LPPjvgY0dHRrgvUHUr37t311Vdf1bk+AAAAAIfm0USpf//73+rWrZuCgoIUFBSk7t2769VXX/V2bQAAAAAasTrvmXj88cd11113acKECerfv78k6euvv9YNN9ygPXv26Oabb/Z6kQAAAAAanzqHiVmzZmn27NkaPXq0a9n555+vrl276u677yZMAAAAAMeIOk9zysjI0CmnnFJt+SmnnKKMjAyvFAUAAACg8atzmGjfvr3eeuutasvffPNNHX/88V4pCgAAAEDjV+dpTjNmzNCIESP05Zdfuo6Z+Oabb7RkyZIaQwYAAACA5qnOeyaGDx+uVatWKSYmRh988IE++OADxcTEaPXq1brooovqo0YAAAAAjZBH15no3bu3XnvtNW/XAgAAAKAJqVWYyM/PV3h4uOvfh1M1DgAAAEDzVqswERUVpYyMDMXFxSkyMrLGK14bY2SxWORwOLxeJAAAAIDGp1ZhYunSpYqOjpYkLVu2rF4LAgAAANA01CpMDBo0yPXvlJQUJSUlVds7YYzRjh07vFsdAAAAgEarzmdzSklJ0e7du6stz8nJUUpKileKAgAAAND41TlMVB0bcbDCwkIFBgZ6pSgAAAAAjV+tTw07adIkSZLFYtFdd92l4OBg1zqHw6FVq1apZ8+eXi8QAAAAQONU6zCxdu1aSfv3TKxfv142m821zmazqUePHpo8ebL3KwQAAADQKNU6TFSdxenqq6/WU089xfUkAAAAgGNcna+A/fLLL9dHHQAAAACamDqHiTPOOOOw65cuXepxMQAAAACajjqHiR49erjdrqio0Lp167RhwwaNGTPGa4UBAAAAaNzqHCaeeOKJGpfffffdKiwsPOqCAAAAADQNdb7OxKFceeWVeumll7z1cAAAAAAaOa+FiZUrV3LROgAAAOAYUudpThdffLHbbWOMMjIy9MMPP+iuu+7yWmEAAAAAGrc6h4mIiAi321arVR07dtQ999yjIUOGeK0wAAAAAI0b15kAAAAA4JE6HzPx/fffa9WqVdWWr1q1Sj/88INXigIAAADQ+NU5TKSnp2vHjh3Vlu/cuVPp6eleKQoAAABA41fnMLFp0yadeOKJ1Zb36tVLmzZt8kpRAAAAABq/OocJu92urKysasszMjLk71/nQzAAAAAANFF1DhNDhgzR1KlTlZeX51qWm5urf/zjHzrrrLO8WhwAAACAxqvOuxIeffRRDRw4UMnJyerVq5ckad26dYqPj9err77q9QIBAAAANE51DhOtWrXSzz//rHnz5umnn35SUFCQrr76al1++eUKCAiojxoBAAAANEIeHeQQEhKi66+/3tu1AAAAAGhC6nzMhCS9+uqrGjBggBITE/Xnn39Kkp544gl9+OGHXi0OAAAAQONV5zAxe/ZsTZo0SUOHDtW+ffvkcDgkSVFRUXryySe9XR8AAACARqrOYWLWrFl64YUXdMcdd7idCvakk07S+vXrvVocAAAAgMarzmFi27ZtrrM4Hchut6uoqMgrRQEAAABo/OocJlJSUrRu3bpqyxctWqTOnTt7oyYAAAAATUCdz+Y0adIkpaenq7S0VMYYrV69Wm+88YZmzpypF198sT5qBAAAANAI1TlMXHvttQoKCtKdd96p4uJiXXHFFUpMTNRTTz2lkSNH1keNAAAAABohj64zMWrUKI0aNUrFxcUqLCxUXFyct+sCAAAA0MjV+ZiJu+++W06nU5IUHBzsChJ5eXm6/PLLvVsdAAAAgEarzmHiX//6lwYMGKDff//dtWz58uXq1q2btm7d6tXiAAAAADRedQ4TP//8s1q3bq2ePXvqhRde0K233qohQ4boqquu0rffflsfNQIAAABohOp8zERUVJTeeust/eMf/9D//d//yd/fXwsXLtSZZ55ZH/UBAAAAaKTqvGdC2n8V7KeeekqXX365jjvuON1000366aefvF0bAAAAgEaszmHi7LPP1owZMzR37lzNmzdPa9eu1cCBA9WvXz89/PDD9VEjAAAAgEaozmHC4XDo559/1iWXXCJJCgoK0uzZs/XOO+/oiSee8HqBAAAAABqnOh8zsXjx4hqXDxs2TOvXrz/qggAAAAA0DR4dM/HVV1/pyiuvVGpqqnbu3ClJevXVV/Xrr796tTgAAAAAjVedw8S7776rtLQ0BQUFae3atSorK5O0/6J1DzzwgNcLBAAAANA41TlM3HfffZozZ45eeOEFBQQEuJb3799fP/74o1eLAwAAANB41TlMbN68WQMHDqy2PCIiQrm5ud6oCQAAAEATUOcwkZCQoN9++63a8q+//lrHHXecV4oCAAAA0PjVOUxcd911+vvf/65Vq1bJYrFo165dmjdvniZPnqzx48fXR40AAAAAGqE6nxr29ttvl9Pp1Jlnnqni4mINHDhQdrtdkydP1o033lgfNQIAAABohOocJiwWi+644w7deuut+u2331RYWKguXbooNDS0PuoDAAAA0EjVOUxUsdls6tKlizdrAQAAANCEeHTROgAAAAAgTAAAAADwCGECAAAAgEcIEwAAAAA8QpgAAAAA4JEGDRNffvmlzjvvPCUmJspiseiDDz5wW2+M0bRp09SyZUsFBQVp8ODB2rJli9uYnJwcjRo1SuHh4YqMjNS4ceNUWFjoNubnn3/WqaeeqsDAQCUlJenhhx+u76cGAAAANHsNGiaKiorUo0cPPfPMMzWuf/jhh/X0009rzpw5WrVqlUJCQpSWlqbS0lLXmFGjRmnjxo1avHixPvnkE3355Ze6/vrrXevz8/M1ZMgQJScna82aNXrkkUd099136/nnn6/35wcAAAA0Zx5fZ8Ibhg4dqqFDh9a4zhijJ598UnfeeacuuOACSdK///1vxcfH64MPPtDIkSP1yy+/aNGiRfr+++910kknSZJmzZqlc845R48++qgSExM1b948lZeX66WXXpLNZlPXrl21bt06Pf74426hAwAAAEDdNGiYOJxt27YpMzNTgwcPdi2LiIhQ3759tXLlSo0cOVIrV65UZGSkK0hI0uDBg2W1WrVq1SpddNFFWrlypQYOHCibzeYak5aWpoceekj79u1TVFRUtW2XlZWprKzMdTs/P1+S5HQ65XQ66+PpHpbT6ZQxpkG2fSyi375Hz32LfvsW/fYt+u1b9Nv3vNlzbzxGow0TmZmZkqT4+Hi35fHx8a51mZmZiouLc1vv7++v6OhotzEpKSnVHqNqXU1hYubMmZoxY0a15bt373abYuUrTqdTeXl5MsbIauWY+fpGv32PnvsW/fYt+u1b9Nu36LfvebPnBQUFR11Pow0TDWnq1KmaNGmS63Z+fr6SkpIUGxur8PBwn9fjdDplsVgUGxvLG9UH6Lfv0XPfot++Rb99i377Fv32PW/2PDAw8KjrabRhIiEhQZKUlZWlli1bupZnZWWpZ8+erjHZ2dlu96usrFROTo7r/gkJCcrKynIbU3W7aszB7Ha77HZ7teVWq7XB3igWi6VBt3+sod++R899i377Fv32LfrtW/Tb97zVc2/8zhrtbz0lJUUJCQlasmSJa1l+fr5WrVql1NRUSVJqaqpyc3O1Zs0a15ilS5fK6XSqb9++rjFffvmlKioqXGMWL16sjh071jjFCQAAAEDtNGiYKCws1Lp167Ru3TpJ+w+6XrdunbZv3y6LxaKJEyfqvvvu00cffaT169dr9OjRSkxM1IUXXihJ6ty5s84++2xdd911Wr16tb755htNmDBBI0eOVGJioiTpiiuukM1m07hx47Rx40a9+eabeuqpp9ymMQEAAACouwad5vTDDz/o9NNPd92u+oA/ZswYvfLKK7rttttUVFSk66+/Xrm5uRowYIAWLVrkNr9r3rx5mjBhgs4880xZrVYNHz5cTz/9tGt9RESEPv/8c6Wnp6t3796KiYnRtGnT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lzrvvPOUmJgoi8WiDz74wG29MUbTpk1Ty5YtFRQUpMGDB2vLli1uY3JycjRq1CiFh4crMjJS48aNU2FhoduYn3/+WaeeeqoCAwOVlJSkhx9+uFotb7/9tjp16qTAwEB169ZNn376aZ1racxmzpypk08+WWFhYYqLi9OFF16ozZs3u40pLS1Venq6WrRoodDQUA0fPlxZWVluY7Zv365hw4YpODhYcXFxuvXWW1VZWek2Zvny5TrxxBNlt9vVvn17vfLKK9XqOdL7oTa1NHazZ89W9+7dXecQT01N1cKFC13r6Xf9efDBB2WxWDRx4kTXMvrtXXfffbcsFovbT6dOnVzr6bf37dy5U1deeaVatGihoKAgdevWTT/88INrPX8zvadt27bVXt8Wi0Xp6emSmunr26BRmz9/vrHZbOall14yGzduNNddd52JjIw0WVlZDV1ag/r000/NHXfcYd577z0jybz//vtu6x988EETERFhPvjgA/PTTz+Z888/36SkpJiSkhLXmLPPPtv06NHDfPfdd+arr74y7du3N5dffrlrfV5enomPjzejRo0yGzZsMG+88YYJCgoyzz33nGvMN998Y/z8/MzDDz9sNm3aZO68804TEBBg1q9fX6daGrO0tDTz8ssvmw0bNph169aZc845x7Rp08YUFha6xtxwww0mKSnJLFmyxPzwww+mX79+5pRTTnGtr6ysNCeccIIZPHiwWbt2rfn0009NTEyMmTp1qmvM77//boKDg82kSZPMpk2bzKxZs4yfn59ZtGiRa0xt3g9HqqUp+Oijj8yCBQvMf/7zH7N582bzj3/8wwQEBJgNGzYYY+h3fVm9erVp27at6d69u/n73//uWk6/vWv69Omma9euJiMjw/Wze/du13r67V05OTkmOTnZjB071qxatcr8/vvv5rPPPjO//fabawx/M70nOzvb7bW9ePFiI8ksW7bMGNM8X9+EiUauT58+Jj093XXb4XCYxMREM3PmzAasqnE5OEw4nU6TkJBgHnnkEdey3NxcY7fbzRtvvGGMMWbTpk1Gkvn+++9dYxYuXGgsFovZuXOnMcaYZ5991kRFRZmysjLXmClTppiOHTu6bl922WVm2LBhbvX07dvX/N///V+ta2lqsrOzjSSzYsUKY8z+5xMQEGDefvtt15hffvnFSDIrV640xuwPf1ar1WRmZrrGzJ4924SHh7v6e9ttt5muXbu6bWvEiBEmLS3NdftI74fa1NJURUVFmRdffJF+15OCggJz/PHHm8WLF5tBgwa5wgT99r7p06ebHj161LiOfnvflClTzIABAw65nr+Z9evvf/+7adeunXE6nc329c00p0asvLxca9as0eDBg13LrFarBg8erJUrVzZgZY3btm3blJmZ6da3iIgI9e3b19W3lStXKjIyUieddJJrzODBg2W1WrVq1SrXmIEDB8pms7nGpKWlafPmzdq3b59rzIHbqRpTtZ3a1NLU5OXlSZKio6MlSWvWrFFFRYXbc+zUqZPatGnj1u9u3bopPj7eNSYtLU35+fnauHGja8zhelmb90NtamlqHA6H5s+fr6KiIqWmptLvepKenq5hw4ZV6wn9rh9btmxRYmKijjvuOI0aNUrbt2+XRL/rw0cffaSTTjpJl156qeLi4tSrVy+98MILrvX8zaw/5eXleu2113TNNdfIYrE029c3YaIR27NnjxwOh9sLSpLi4+OVmZnZQFU1flW9OVzfMjMzFRcX57be399f0dHRbmNqeowDt3GoMQeuP1ItTYnT6dTEiRPVv39/nXDCCZL2P0ebzabIyEi3sQf3wdNe5ufnq6SkpFbvh9rU0lSsX79eoaGhstvtuuGGG/T++++rS5cu9LsezJ8/Xz/++KNmzpxZbR399r6+ffvqlVde0aJFizR79mxt27ZNp556qgoKCuh3Pfj99981e/ZsHX/88frss880fvx43XTTTZo7d64k/mbWpw8++EC5ubkaO3aspOb7/xP/Oo0GcExLT0/Xhg0b9PXXXzd0Kc1ex44dtW7dOuXl5emdd97RmDFjtGLFioYuq9nZsWOH/v73v2vx4sUKDAxs6HKOCUOHDnX9u3v37urbt6+Sk5P11ltvKSgoqAEra56cTqdOOukkPfDAA5KkXr16acOGDZozZ47GjBnTwNU1b//61780dOhQJSYmNnQp9Yo9E41YTEyM/Pz8qh1Zn5WVpYSEhAaqqvGr6s3h+paQkKDs7Gy39ZWVlcrJyXEbU9NjHLiNQ405cP2RamkqJkyYoE8++UTLli1T69atXcsTEhJUXl6u3Nxct/EH98HTXoaHhysoKKhW74fa1NJU2Gw2tW/fXr1799bMmTPVo0cPPfXUU/Tby9asWaPs7GydeOKJ8vf3l7+/v1asWKGnn35a/v7+io+Pp9/1LDIyUh06dNBvv/3G67setGzZUl26dHFb1rlzZ9fUMv5m1o8///xTX3zxha699lrXsub6+iZMNGI2m029e/fWkiVLXMucTqeWLFmi1NTUBqyscUtJSVFCQoJb3/Lz87Vq1SpX31JTU5Wbm6s1a9a4xixdulROp1N9+/Z1jfnyyy9VUVHhGrN48WJ17NhRUVFRrjEHbqdqTNV2alNLY2eM0YQJE/T+++9r6dKlSklJcVvfu3dvBQQEuD3HzZs3a/v27W79Xr9+vdsfo8WLFys8PNz1R+5IvazN+6E2tTRVTqdTZWVl9NvLzjzzTK1fv17r1q1z/Zx00kkaNWqU69/0u34VFhZq69atatmyJa/vetC/f/9qp/P+z3/+o+TkZEn8zawvL7/8suLi4jRs2DDXsmb7+q7T4drwufnz5xu73W5eeeUVs2nTJnP99debyMhIt6P8j0UFBQVm7dq1Zu3atUaSefzxx83atWvNn3/+aYzZf2q5yMhI8+GHH5qff/7ZXHDBBTWe5q5Xr15m1apV5uuvvzbHH3+822nucnNzTXx8vLnqqqvMhg0bzPz5801wcHC109z5+/ubRx991Pzyyy9m+vTpNZ7m7ki1NGbjx483ERERZvny5W6nuysuLnaNueGGG0ybNm3M0qVLzQ8//GBSU1NNamqqa33Vqe6GDBli1q1bZxYtWmRiY2NrPNXdrbfean755RfzzDPP1HiquyO9H45US1Nw++23mxUrVpht27aZn3/+2dx+++3GYrGYzz//3BhDv+vbgWdzMoZ+e9stt9xili9fbrZt22a++eYbM3jwYBMTE2Oys7ONMfTb21avXm38/f3N/fffb7Zs2WLmzZtngoODzWuvveYaw99M73I4HKZNmzZmypQp1dY1x9c3YaIJmDVrlmnTpo2x2WymT58+5rvvvmvokhrcsmXLjKRqP2PGjDHG7D+93F133WXi4+ON3W43Z555ptm8ebPbY+zdu9dcfvnlJjQ01ISHh5urr77aFBQUuI356aefzIABA4zdbjetWrUyDz74YLVa3nrrLdOhQwdjs9lM165dzYIFC9zW16aWxqymPksyL7/8smtMSUmJ+dvf/maioqJMcHCwueiii0xGRobb4/zxxx9m6NChJigoyMTExJhbbrnFVFRUuI1ZtmyZ6dmzp7HZbOa4445z20aVI70falNLY3fNNdeY5ORkY7PZTGxsrDnzzDNdQcIY+l3fDg4T9Nu7RowYYVq2bGlsNptp1aqVGTFihNs1D+i393388cfmhBNOMHa73XTq1Mk8//zzbuv5m+ldn332mZFUY93N8fVtMcaYuu3LAAAAAACOmQAAAADgIcIEAAAAAI8QJgAAAAB4hDABAAAAwCOECQAAAAAeIUwAAAAA8AhhAgAAAIBHCBMAAAAAPEKYAAAva9u2rZ588smGLsNn/vWvf2nIkCE+2dZpp52miRMnHtVjvPLKK4qMjPRKPQ3BYrHogw8+8Pj+c+bM0Xnnnee9ggAc0wgTAIBqavuBtbS0VHfddZemT5/u1e0vX75cFotFubm5bsvfe+893XvvvUf12CNGjNB//vOfo3qMhpSRkaGhQ4dKkv744w9ZLBatW7eu1ve/5ppr9OOPP+qrr76qpwoBHEsIEwAAj73zzjsKDw9X//79fbK96OhohYWFHdVjBAUFKS4uzksVVVdeXl5vjy1JCQkJstvtHt/fZrPpiiuu0NNPP+3FqgAcqwgTAFAHp512miZMmKAJEyYoIiJCMTExuuuuu2SMOeR9Hn/8cXXr1k0hISFKSkrS3/72NxUWFrrWV027+eyzz9S5c2eFhobq7LPPVkZGxmFr2bhxo84991yFh4crLCxMp556qrZu3SpJcjqduueee9S6dWvZ7Xb17NlTixYtct23vLxcEyZMUMuWLRUYGKjk5GTNnDlT0v5pWpJ00UUXyWKxuG7XZP78+dWmzBxp21Xfps+fP1+nnHKKAgMDdcIJJ2jFihWu9aeffrokKSoqShaLRWPHjnX1/8BpTm3bttV9992n0aNHKzQ0VMnJyfroo4+0e/duXXDBBQoNDVX37t31ww8/VOv3gY9hsViq/VTZsWOHLrvsMkVGRio6OloXXHCB/vjjD9f6sWPH6sILL9T999+vxMREdezYscZeVY070MSJE3Xaaae5bp922mm66aabdNtttyk6OloJCQm6++673e5z4F6jlJQUSVKvXr1ksVhcj7V8+XL16dNHISEhioyMVP/+/fXnn3+6HuO8887TRx99pJKSkhprBYDaIkwAQB3NnTtX/v7+Wr16tZ566ik9/vjjevHFFw853mq16umnn9bGjRs1d+5cLV26VLfddpvbmOLiYj366KN69dVX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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cost = df['plan_cost'].to_numpy(dtype=float)\n", + "time_ms = df['exec_ms'].to_numpy(dtype=float)\n", + "\n", + "# Proportional fit through the origin: time = slope * cost.\n", + "slope = float(np.sum(cost * time_ms) / np.sum(cost * cost))\n", + "r = float(np.corrcoef(cost, time_ms)[0, 1])\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "ax.scatter(cost, time_ms, s=14, alpha=0.5, edgecolor='none')\n", + "xs = np.array([0.0, cost.max()])\n", + "ax.plot(xs, slope * xs, color='crimson', lw=1.5,\n", + " label=f'time = {slope:.3g} ms x cost')\n", + "ax.set_xlabel('plan cost (optimizer units)')\n", + "ax.set_ylabel('execution time (ms)')\n", + "ax.set_title(f'Plan cost vs. real time (Pearson r = {r:.3f})')\n", + "ax.legend()\n", + "ax.grid(True, alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "226372f9", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-01T23:13:23.676337Z", + "iopub.status.busy": "2026-06-01T23:13:23.676195Z", + "iopub.status.idle": "2026-06-01T23:13:24.113644Z", + "shell.execute_reply": "2026-06-01T23:13:24.112874Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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eimWLFmCl19+GTqdzvfaRx99BKfTiSuvvBJA0+NAt912G+bMmYPbb78dDocDP/74I77//nvf9xCsr776Cu+//z5uueUWZGVlobCwEOXl5TjvvPN8E4/s7GwsXboU119/PRoaGnDHHXcAaJr4/Otf/8JVV12FG264ARaLBa+99hqmTp2KDRs2tHicqT39+/fHY489hoceegg33ngjxo4dCwAYNWpUu/XefvttuFwu3HrrraipqcHf/vY3XH755Zg0aRJWr16N++67D/v27cPzzz+Pu+++229y9Oabb2Lu3LmYOnUq/vrXv8Jut+PFF1/EmDFjsGXLFlkWi5eXl2PUqFGw2+247bbbkJmZiYULF+KSSy7BokWLcOmllwJo+nR+0qRJKC0txe233468vDy88847IU3SmjU2NmLChAnYt28fbrnlFnTv3h0ffPAB5s2bh7q6Otx+++0Amu5UXXzxxdiwYQNuvvlm9OvXDx9//DHmzp0b9vd/um+//RaDBg1q8w7UZZddht69e+PJJ5+EJEltxhFFsdWJYmtSU1PbveO1ZcsWAPDdbW02bNgwqFQqbNmyBddcc80Z25k/fz6sVivUajXGjh2Lv//9734xDQYDRo4ciTfeeAPnn38+xo4di7q6Ojz++ONIT0/HjTfeGND305phw4YBANatW4ehQ4eGHIcobkhE1GH9+9//lgBIK1askCorK6WjR49K7777rpSZmSkZDAbp2LFjkiRJ0qpVqyQA0qpVq3x17XZ7i3hPPfWUJAiCdPjwYd+1uXPnSgCkxx57zK/s0KFDpWHDhrWbX11dnWQ2m6WRI0dKjY2Nfq+JoihJkiS5XC4pJydHGjRokF+Zzz77TAIgPfTQQ5IkSVJtba0EQPr73//ebpsDBw6Uxo8f326ZZl9++aUEQPr000/9rl944YVSjx49fF/PmDFDGjhwYEAxAwFAUqlU0k8//eR3/frrr5c6deokVVVV+V2/8sorpdTUVN/PzOPxSE6n069MbW2tlJubK/3mN79p0dbDDz/cbj4bN26UAEj//ve/W7w2d+5cqaCgwPf1wYMHJQBSdna2VFdX57v+wAMPSACkwYMHS26323f9qquuknQ6neRwOCRJkiSLxSKlpaVJN9xwg187ZWVlUmpqaovrgSooKJDmzp3r+/qOO+6QAEhr1qzxXbNYLFL37t2lwsJC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xBNPICMjw1f2n//8Jx599FG/uyBXXHEFDAYDRo0ahZycHOzcuROvvPIKjEYj/u///s9Xd9iwYZg8eTIWLlyIhoYGTJkyBaWlpXj++edhMBh82zif2lZdXR1OnDgBAPj0009x7NgxAMCtt97qt2nB8uXLkZ+fz61mKXHEZjMqIoqG5u1mN27c2G651rab3blzp1RUVCSZTCYpKytLuuGGG6Rt27a12F5x7ty5UnJycouYzdtUBuKTTz6RRo0aJRkMBiklJUUaMWKE9N///tevzHvvvScNHTpUSkpKkjIyMqRf//rXvu1yJUmSqqqqpOLiYqlfv35ScnKylJqaKo0cOVJ6//33/eKUlZVJ06dPl8xmswQgoK1nRVGUunXrJgGQ/vKXv7R4/eWXX5bGjRsnZWZmSklJSVLPnj2le+65R6qvr/eVae7jM23tKklNW8AWFxe3+lp5eblUXFwsdevWTdJqtVJeXp50wQUXSK+88opfvk8++aRUUFAgJSUlSUOHDpU+++yzFlvDNrcVSE4ff/yxNGDAAEmj0fj9DrS13ezp2/42f/8ffPCB3/W2fkdXrVolTZ06VUpNTZX0er3Us2dPad68edKmTZt8ZbZv3y4BkO6///4z5n/6drOSJEn79++X5syZI6WlpUl6vV4aMWKE9Nlnn7Woe+DAAWn69OmSwWCQsrOzpT/84Q++rWC/++67M7Z9+nazktT0c5w/f76UlZUl6XQ66ayzzmp129LKykrp6quvlsxms5SamirNmzdPWrdunQRAevfdd8/YdjDOPvts6frrr/e71jyOKysrZW0rGK+88orUt29fSafTST179pSeffZZ33bUzZrzPPXvsOeee04aMWKElJGRIWk0GqlTp07SNddcI+3du7dFG3a7XXrsscekAQMGSAaDQUpNTZUuuugiacuWLS3KFhQUtLmF7sGDB33lvF6v1KlTJ+nPf/6zXF1BpHiCJLWzDQQREZFCvfDCC7j33nuxf//+Ng86jJQFCxbgzjvvxLFjx9rdtjkSPvroI1x66aVYu3ZtWDuPne7NN99EcXExjhw54jt0kkL30Ucf4eqrr8b+/fvRqVOnWKdDFBWcWBARUVw69TToSGpsbPRbjO1wODB06FB4vV7s2bMnqm17vV5MmTIFmzZtQllZWUhbrrZFFEWcffbZuOqqq1rdoICC03yK99/+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8+bNw6ZNm/DJJ59g/fr1kCQJF154IdxuNwBg3bp1uOmmm3D77bdj69atmDx5Mp588smg27n33nuxePFiLFy4EJs3b0avXr0wdepU1NTUAAAOHjyIOXPmYObMmdi2bRt+97vf4U9/+lO7MTdu3Ihf/epXuPzyy1FaWornnnuuRZnvv/8eALBixQqUlpZiyZIlAeW7adMm3HbbbXjsscewe/duLFu2DOPGjWuzfHM/LlmyBN9++22LfgQAu92OJ554Av/5z3+wbt061NXV4corr/S9vmbNGlx33XW4/fbbsXPnTrz88st444038MQTT7TZ7ttvvw2TydTunzVr1rRZf/369SgqKvK7NnXqVKxfvz6QbgIAvPbaaygqKkJBQQEAwOPxwOv1tlh0bTAYsHbt2oDjhoKLt4mIiCjuSXYHDhZOiUnb3Q/9D0KyIeh6e/fuxSeffIJ169Zh1KhRAJreqHbr1g0fffQRLrvsMjz//POYNm0a7r77bgBAnz598O233+Kzzz4LuB2bzYYXX3wRb7zxhm/tw6uvvorly5fjtddewz333IOXX34Zffv2xd///ncAQN++fbFjx45231RnZ2cjKSkJBoMBeXl5bZYBgMzMzDbLtObIkSNITk7GRRddBLPZjIKCAgwdOrTVss39uHbtWowYMQIajaZFPwJN2xT/85//xMiRIwEACxcuRP/+/bFhwwaMGDECjz76KO6//37MnTsXQNPdlscffxz33ntvm5OsSy65xBevLV26dGnztbKyshanXefm5qKsrKzdmM1OnDiBpUuX4p133vFdM5vNOP/88/H444+jX79+yMzMxLvvvov169ejV69eAcUNFe9YEBEREcXAzz//DI1G4/fGNDMzE3379sXPP/8MANi9ezdGjBjhV+/cc8/1/f+RI0f8Ph1v7W7G/v374Xa7MXr0aN81rVaLESNG+LVzalwALdqNpsmTJ6OgoAA9evTAtddei7fffht2u73VsoH0I9C0peqp32O/fv2QlpbmK7Nt2zY89thjfv15ww03oLS0tM22zWYzevXq1e6f5pOtI2HhwoVIS0vDzJkz/a6/+eabkCQJXbt2hclkwvPPP4+rrroq4rvn8Y4FERERycrp8eLnUgvsLg/65JqRZYr8Ql7BqEf3Q/+LeDtttR0rnTt39ttxKSMjI2a5yMlsNmPz5s1YvXo1/ve//+Ghhx7CI488go0bNyItLS0ibVqtVjz66KOYNWuW33VJkto8y+Htt9/G7373u3bjLl26FGPHjm31tby8PJSXl/tdKy8vD+jujiRJeP3113HttddCp9P5vdazZ098/fXXsFqtqKmpQbdu3XDllVf61rxECicWREREJBuPV8T7G4+iyuoCAGw6VItLh3ZBtwxjRNsVBCGkx5FiqX///vB4PPj+++99j0JVV1dj9+7dGDBgAICmR5JOX2S9adMm3/9rNJozPt7Ss2dP6HQ6rFu3zvccvtvtxsaNG3HHHXf42jl9m1M5tidtfsPbfPpzMDQaDYqKilBUVISHH34YaWlp+Oqrr1q88T+1H5vvspzej0DT2oNNmzb5yuzevRt1dXXo378/AOCcc87B7t27W/SnJEltLuAO91Go888/HytXrvT9HABg+fLlOP/889uNCQBff/019u3bh+uvv77NMsnJyUhKSkJtbS2+/PJL/O1vfztj3HBwYkFERESyOVhl800qAMArSth8pDbiE4t41Lt3b8yYMQM33HADXn75ZZjNZtx///3o0qULZsyYAQC49dZbMW7cODzzzDO4+OKL8dVXX2Hp0qVBHbCWnJyMm2++Gffccw8yMjKQn5+Pv/3tb7Db7b43pb/73e/wzDPP4L777sP111+PrVu34o033gAQ3qFwOTk5MBgMWLZsGbp27Qq9Xo/U1NQz1vvss89w4MABjBs3Dunp6fjiiy8giiL69u3bomxzP954440oKSlBWloaHnjgAb9+BJoe/7r11lvx//7f/4NGo8Ett9yC8847zzfReOihh3DRRRchPz8fc+bMgUqlwrZt27B9+3Y88sgjreZpNpthNptD6xwAt99+O8aPH4+nn34a06dPx7vvvotNmzbhlVde8ZV54IEHcPz4cSxcuNCv7muvvYaRI0di0KBBLeJ++eWXkCQJffr0we7du/HAAw+gX79+vp2jIoUTiwCIoghRFM9YRpIk2colGqX3Syzyi1SbcsYNJ1aodYOpF6myiSIe+oRjU/44odQ/tY5H9AKn7ZJ0+r+j4Y7N5mvNf+LNqXm//vrruOOOO3DRRRfB5XJh3Lhx+Pzzz6HRaCBJEkaNGoUXX3wRjz32GP785z9j6tSpuOOOO1BSUuKLdaa2AOCpp56C1+vFtddeC4vFguHDh2PZsmVIS0uDJEko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8rd/+7d873vf4//8n/8z7P6qqvJ3f/d3nDhxgh/96Ee89dZb/OEf/uGAfSKRCH/913/NT37yE/bs2cOVK1f4/d///WHLbG5u5p577sFisfDWW29x6NAhvvSlL5FKpQD427/9W7773e/y13/91xw7dowHH3yQxx57jHPnzgHwd3/3d7z88sv8x3/8B2fOnOFf/uVfsgHERx99BMA///M/09ramn09lH379rF27doB22507j5/8Ad/wO/93u9x+PBhNmzYwKOPPkpXVxe1tbXs2LEDgDNnztDa2srf/u3fDluHv/mbv+HOO+/k8OHDPPLII3zuc5/j85//PL/5m7/Jxx9/zJw5c/j85z8/bPD30Ucf0draSmtrK1evXuX222/n7rvvBiCZTPLggw/icrnYu3cv7733Xjbwu/bJxO7duzlz5gw7d+7klVdeGbauo/GjH/0Ih8PBBx98wF/+5V/yp3/6p+zcuXPIfT/88EMAdu3aRWtrKy+88AKpVIonnniCe++9l2PHjrF//36+8pWvDAiW1q5dSyqV4oMPPphQXYUQAl0IIcS43HvvvfqiRYt0TdOy2/7oj/5IX7RoUfZ1fX29/jd/8zfDlvGzn/1MLy4uzr7+53/+Zx3Qz58/n922fft2vby8fNgynn/+eX3WrFl6IpEY8v2qqir929/+9oBt69at03/nd35H13Vd/+pXv6rfd999Az7HtQD9xRdfHPb8uq7rPT09OqDv2bNnTOe+dOmSDuh//ud/nn0/mUzqNTU1+l/8xV/ouq7rb7/9tg7oPT09A8q599579a9//evZ1/X19fpv/uZvZl+3trbqgP7Nb34zu23//v06oLe2tuq6nmlvt9s95Gf62te+ptfX1+sdHR26ruv6T37yE33BggUD2ikej+s2m01/4403dF3X9aefflovLy/X4/H4sG3Vt9/jjz8+YNvXv/51/d577x3w+e66664B+6xbt07/oz/6o+zra382fW15+PDh7PtdXV06oL/zzjsj1sfj8eg//OEPR9xHCCFuRJ5YCCHEBNx+++0D7v5u2LCBc+fOkU6nh9x/165d3H///VRXV+Nyufjc5z5HV1cXkUgku4/dbmfOnDnZ15WVlXR0dAxbhyNHjnD33XdjMpkGvRcIBGhpaRk07+HOO+/k1KlTQGZYzpEjR1iwYAFf+9rXePPNN0f34a/R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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mask = (cost > 0) & (time_ms > 0)\n", + "lc = np.log10(cost[mask])\n", + "lt = np.log10(time_ms[mask])\n", + "\n", + "a, b = np.polyfit(lc, lt, 1)\n", + "r_log = float(np.corrcoef(lc, lt)[0, 1])\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "ax.scatter(cost[mask], time_ms[mask], s=14, alpha=0.5, edgecolor='none')\n", + "xs = np.array([cost[mask].min(), cost[mask].max()])\n", + "ax.plot(xs, 10**b * xs**a, color='crimson', lw=1.5,\n", + " label=f'log-log fit, slope = {a:.2f}')\n", + "ax.set_xscale('log')\n", + "ax.set_yscale('log')\n", + "ax.set_xlabel('plan cost (optimizer units)')\n", + "ax.set_ylabel('execution time (ms)')\n", + "ax.set_title(f'Plan cost vs. real time, log-log (r = {r_log:.3f})')\n", + "ax.legend()\n", + "ax.grid(True, which='both', alpha=0.3)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5dd0a12c", + "metadata": { + "execution": { + "iopub.execute_input": "2026-06-01T23:13:24.115407Z", + "iopub.status.busy": "2026-06-01T23:13:24.115256Z", + "iopub.status.idle": "2026-06-01T23:13:24.118679Z", + "shell.execute_reply": "2026-06-01T23:13:24.118166Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "samples : 400\n", + "cost range : 1122 .. 687256\n", + "time range (ms) : 0.117 .. 3085.6\n", + "Pearson r (linear) : 0.086\n", + "log-log slope : 0.794 (1.0 == perfectly proportional)\n", + "log-log correlation : 0.581\n" + ] + } + ], + "source": [ + "print(f'samples : {len(df)}')\n", + "print(f'cost range : {int(cost.min())} .. {int(cost.max())}')\n", + "print(f'time range (ms) : {time_ms.min():.3f} .. {time_ms.max():.1f}')\n", + "print(f'Pearson r (linear) : {r:.3f}')\n", + "print(f'log-log slope : {a:.3f} (1.0 == perfectly proportional)')\n", + "print(f'log-log correlation : {r_log:.3f}')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/research/cost-stats.csv b/research/cost-stats.csv new file mode 100644 index 0000000..0680edf --- /dev/null +++ b/research/cost-stats.csv @@ -0,0 +1,1305 @@ +seed,plan_cost,exec_us,rows,query +0,9220,262,3,"SELECT t1.price AS c2289 +FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id;" +1,1122,249,55,"SELECT t0.region_id AS c3748 +FROM customers AS t0 +WHERE t0.region_id = 7;" +2,1660,248,500,"SELECT t0.region_id, t0.id +FROM customers AS t0 +ORDER BY t0.id DESC, t0.region_id DESC;" +3,1220,129,5,"SELECT t0.id +FROM departments AS t0;" +4,4325,164,0,"SELECT t0.id, SUM(t0.id) +FROM markets AS t0 +WHERE t0.id IS NULL +GROUP BY t0.id +ORDER BY t0.id DESC;" +5,649400,20979,3,"SELECT markets.region, markets.id AS c7685 +FROM markets CROSS JOIN orders CROSS JOIN departments +GROUP BY markets.region, markets.id;" +6,17610,722,4,"SELECT t1.id, t0.id AS c6716, t0.region_id +FROM customers AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN departments AS t2 ON t0.id = t2.id +WHERE t1.department_id <= 11;" +7,3343,282,1,"SELECT departments.id +FROM departments RIGHT JOIN employees ON departments.id = employees.id +WHERE (employees.id != 33 AND employees.department_id IN (34, 74)) +GROUP BY departments.id +ORDER BY departments.id DESC;" +8,1133,1113,1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE (orders.id = 117 AND orders.id > 60) +ORDER BY orders.customer_id DESC, orders.id DESC;" +9,15694,7696,2,"SELECT t0.customer_id AS c3674 +FROM orders AS t0 CROSS JOIN departments AS t1 +WHERE (t1.id >= 4 AND (t0.id IN (130) OR t1.id IS NULL));" +10,12035,296,3,"SELECT regions.id +FROM books RIGHT JOIN employees ON books.id = employees.id JOIN regions ON books.id = regions.id +WHERE books.price >= 6;" +11,9660,335,22,"SELECT employees.department_id +FROM users FULL JOIN employees ON users.id = employees.id +ORDER BY employees.department_id DESC;" +12,5070,1115,3,"SELECT orders.id AS c2380, markets.region, markets.note +FROM markets JOIN orders ON markets.id = orders.id;" +13,14600,2984,15000,"SELECT markets.region, orders.customer_id AS c8705, markets.note +FROM markets CROSS JOIN orders;" +14,1854,132,10,"SELECT t0.department_id, t0.id AS c1827 +FROM employees AS t0 +WHERE (t0.department_id BETWEEN 5 AND 34 OR t0.id NOT IN (2, 68, 69));" +15,1488,140,0,"SELECT books.price +FROM books +WHERE (books.id < 2 AND (books.price NOT BETWEEN 41 AND 55 OR books.price IN (57, 63, 77, 77)));" +16,9220,308,22,"SELECT t0.age AS c4948 +FROM users AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id;" +17,52970,336,4,"SELECT users.age, COUNT(departments.id), COUNT(*) +FROM regions JOIN users ON regions.id = users.id CROSS JOIN departments +WHERE (users.age >= 52 OR regions.id IN (4, 9)) +GROUP BY users.age;" +18,1775,283,436,"SELECT customers.region_id +FROM customers +WHERE customers.region_id != 8 +ORDER BY customers.region_id ASC;" +19,8275,321,3,"SELECT t0.id +FROM books AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id JOIN markets AS t2 ON t1.id = t2.id +WHERE t1.id < 3 +ORDER BY t0.id ASC;" +20,129600,28568,85,"SELECT orders.id AS c5497, orders.customer_id, departments.id AS c8484 +FROM departments CROSS JOIN users CROSS JOIN orders +WHERE orders.id = 82;" +21,1220,126,10,"SELECT regions.id +FROM regions;" +22,6760,146,11,"SELECT t0.department_id +FROM employees AS t0 +GROUP BY t0.department_id +ORDER BY t0.department_id ASC;" +23,14760,484,10,"SELECT customers.region_id +FROM customers LEFT JOIN books ON customers.id = books.id +GROUP BY customers.region_id +ORDER BY customers.region_id ASC;" +24,88720,418,4,"SELECT t2.id, COUNT(t0.id) AS c2763, COUNT(t2.id) +FROM regions AS t0 CROSS JOIN users AS t1 LEFT JOIN markets AS t2 ON t0.id = t2.id +GROUP BY t2.id;" +25,5410,250,3,"SELECT customers.id +FROM books JOIN customers ON books.id = customers.id +ORDER BY customers.id DESC;" +26,17660,144888,5489,"SELECT customers.region_id, employees.department_id +FROM employees FULL JOIN orders ON employees.id = orders.id FULL JOIN customers ON employees.id = customers.id +ORDER BY customers.region_id ASC;" +27,33040,11022,2,"SELECT orders.customer_id, users.id +FROM users RIGHT JOIN orders ON users.id = orders.id CROSS JOIN departments +WHERE orders.customer_id IN (34, 321) +GROUP BY orders.customer_id, users.id;" +28,6760,158,5,"SELECT departments.id AS c2364, SUM(departments.id) +FROM departments +GROUP BY departments.id +ORDER BY departments.id ASC;" +29,11870,375,5,"SELECT customers.id, markets.id +FROM customers FULL JOIN departments ON customers.id = departments.id JOIN markets ON customers.id = markets.id;" +30,178400,391,51,"SELECT markets.id AS c2619 +FROM markets CROSS JOIN users CROSS JOIN books +WHERE markets.region != 'AMERICA';" +31,2896,155,8,"SELECT t0.id, SUM(t0.id) +FROM users AS t0 +WHERE ((t0.id NOT IN (5) AND t0.age != 12) AND t0.age NOT BETWEEN 33 AND 64) +GROUP BY t0.id;" +32,6760,163,11,"SELECT t0.id AS c8338, COUNT(t0.department_id) +FROM employees AS t0 +GROUP BY t0.id +ORDER BY t0.id DESC;" +33,24825,209075,1000,"SELECT orders.customer_id, customers.region_id +FROM departments RIGHT JOIN orders ON departments.id = orders.id CROSS JOIN customers +WHERE departments.id BETWEEN 4 AND 96 +ORDER BY customers.region_id DESC;" +34,687256,33154,3,"SELECT markets.note AS c1833, markets.region, SUM(books.id) AS c1917, COUNT(*) +FROM orders CROSS JOIN markets CROSS JOIN books +WHERE ((orders.id != 89 OR markets.note IS NOT NULL) OR (markets.id IN (22) AND books.id NOT BETWEEN 1 AND 3)) +GROUP BY markets.note, markets.region +ORDER BY markets.region DESC;" +35,20060,18309,50000,"SELECT regions.id, orders.id +FROM orders CROSS JOIN regions JOIN customers ON regions.id = customers.id +ORDER BY orders.id DESC, regions.id DESC;" +36,14600,405,51,"SELECT books.price AS c7084 +FROM books CROSS JOIN users;" +37,84010,424140,1591,"SELECT orders.customer_id +FROM customers CROSS JOIN markets FULL JOIN orders ON markets.id = orders.id +WHERE orders.id < 95;" +38,18962,5240,2,"SELECT t1.department_id, COUNT(*) +FROM regions AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id +WHERE ((t1.id = 3 OR t2.id = 185) OR (t1.id < 3 AND t2.id IS NULL)) +GROUP BY t1.department_id +ORDER BY t1.department_id DESC;" +39,1775,139,0,"SELECT t0.id, t0.note, t0.region +FROM markets AS t0 +WHERE t0.note IS NULL +ORDER BY t0.note DESC, t0.id DESC;" +40,65600,615,500,"SELECT t1.id, t1.region_id AS c2127 +FROM books AS t0 CROSS JOIN customers AS t1 +GROUP BY t1.id, t1.region_id;" +41,61064,491931,50000,"SELECT customers.region_id, orders.id AS c1616 +FROM orders CROSS JOIN customers +WHERE ((orders.id >= 3 OR customers.region_id != 41) OR orders.id IN (73)) +GROUP BY customers.region_id, orders.id;" +42,7635,1383,3,"SELECT t1.price, t0.region_id, t2.customer_id AS c2615 +FROM customers AS t0 JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t0.id = t2.id +WHERE t2.id IS NOT NULL;" +43,1122,162,0,"SELECT markets.region, markets.id AS c9574 +FROM markets +WHERE ((markets.note IS NOT NULL OR markets.region != 'AMERICA') AND (markets.region IN ('EUROPE', 'EUROPE') AND markets.note IN ('North, South', 'North, South')));" +44,4325,271,6,"SELECT t1.id AS c8372, t1.age AS c1550 +FROM customers AS t0 JOIN users AS t1 ON t0.id = t1.id +WHERE t1.id > 11 +ORDER BY t1.id ASC, t1.age DESC;" +45,6160,184,0,"SELECT t1.department_id AS c7018, t0.id AS c6686 +FROM regions AS t0 JOIN employees AS t1 ON t0.id = t1.id +WHERE t0.id >= 10 +GROUP BY t1.department_id, t0.id;" +46,1122,130,1,"SELECT t0.id +FROM regions AS t0 +WHERE ((t0.id IS NOT NULL AND t0.id != 5) AND (t0.id > 8 AND t0.id > 9));" +47,9133,1124,1,"SELECT employees.id +FROM customers FULL JOIN employees ON customers.id = employees.id +WHERE employees.department_id = 32 +ORDER BY employees.id ASC;" +48,22320,125403,11,"SELECT customers.region_id AS c1201, SUM(customers.region_id) +FROM orders FULL JOIN customers ON orders.id = customers.id FULL JOIN markets ON orders.id = markets.id +GROUP BY customers.region_id;" +49,1133,1222,0,"SELECT orders.customer_id, orders.id +FROM orders +WHERE ((orders.id = 130 OR orders.id <= 96) AND orders.id = 97) +ORDER BY orders.customer_id DESC, orders.id DESC;" +50,9610,263,3,"SELECT markets.id +FROM markets RIGHT JOIN departments ON markets.id = departments.id +WHERE markets.id < 45;" +51,1220,127,5,"SELECT t0.id +FROM departments AS t0;" +52,50320,5259,5000,"SELECT orders.id, COUNT(*) +FROM books CROSS JOIN orders +WHERE books.price NOT IN (45, 55, 55, 66) +GROUP BY orders.id;" +53,26360,331,3,"SELECT users.id, COUNT(employees.id) AS c5902 +FROM employees CROSS JOIN users JOIN markets ON users.id = markets.id +GROUP BY users.id +ORDER BY users.id ASC;" +54,4990,179,15,"SELECT users.age, users.id AS c207, SUM(users.id) +FROM users +WHERE (users.age > 27 OR (users.age <= 123 AND users.age > 1)) +GROUP BY users.age, users.id +ORDER BY users.id ASC;" +55,1220,121,11,"SELECT t0.department_id AS c7732 +FROM employees AS t0;" +56,433400,17179,3,"SELECT books.id, SUM(orders.customer_id) AS c2549, COUNT(*) AS c1539 +FROM books CROSS JOIN employees CROSS JOIN orders +WHERE employees.id < 68 +GROUP BY books.id;" +57,1732,1401,3001,"SELECT orders.id AS c9114 +FROM orders +WHERE (orders.customer_id > 214 OR orders.customer_id BETWEEN 75 AND 84);" +58,86560,1627742,110,"SELECT employees.department_id, customers.region_id, COUNT(*), SUM(orders.customer_id) +FROM employees CROSS JOIN customers FULL JOIN orders ON customers.id = orders.id +WHERE customers.id <= 149 +GROUP BY employees.department_id, customers.region_id;" +59,6320,383,500,"SELECT customers.id, customers.region_id, COUNT(customers.region_id) +FROM customers +GROUP BY customers.id, customers.region_id;" +60,9660,265,17,"SELECT t0.id +FROM markets AS t0 FULL JOIN users AS t1 ON t0.id = t1.id +ORDER BY t0.id ASC;" +61,13485,287,5,"SELECT t1.region, t1.id, t1.note +FROM departments AS t0 CROSS JOIN markets AS t1 +WHERE ((t0.id < 43 OR t0.id >= 2) AND t1.note = 'Old World') +ORDER BY t1.note DESC, t1.id ASC, t1.region ASC;" +62,11870,487,3,"SELECT departments.id AS c7718 +FROM departments LEFT JOIN books ON departments.id = books.id JOIN customers ON departments.id = customers.id;" +63,14760,300,11,"SELECT users.age AS c5029, COUNT(*) AS c2096, SUM(users.age) +FROM users FULL JOIN departments ON users.id = departments.id +GROUP BY users.age +ORDER BY users.age ASC;" +64,9660,116327,500,"SELECT customers.region_id AS c6827, orders.id, customers.id +FROM customers LEFT JOIN orders ON customers.id = orders.id +ORDER BY customers.region_id ASC, customers.id ASC, orders.id DESC;" +65,9632,280,0,"SELECT markets.id AS c8656, markets.region +FROM markets FULL JOIN departments ON markets.id = departments.id +WHERE departments.id = 60 +GROUP BY markets.id, markets.region;" +66,1632,162,1,"SELECT markets.note AS c5953, SUM(markets.id), SUM(markets.id) +FROM markets +WHERE markets.region = 'EUROPE' +GROUP BY markets.note;" +67,1220,236,500,"SELECT customers.region_id, customers.id AS c651 +FROM customers;" +68,17660,9937,5001,"SELECT users.id, regions.id AS c5610, orders.id AS c9918 +FROM users FULL JOIN orders ON users.id = orders.id FULL JOIN regions ON orders.id = regions.id +ORDER BY users.id DESC;" +69,32064,2232,2380,"SELECT t0.id AS c499 +FROM books AS t0 FULL JOIN users AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 +WHERE ((t0.price > 66 OR t0.price NOT IN (55, 77, 93)) OR t2.id < 93) +ORDER BY t0.id ASC;" +70,2308,161,1,"SELECT markets.region, markets.note +FROM markets +WHERE markets.id IN (2, 31) +GROUP BY markets.region, markets.note +ORDER BY markets.note ASC, markets.region ASC;" +71,65600,379,5,"SELECT departments.id AS c3175, SUM(departments.id), COUNT(books.price) +FROM books CROSS JOIN departments +GROUP BY departments.id;" +72,1775,166,4,"SELECT t0.id +FROM departments AS t0 +WHERE t0.id >= 2 +ORDER BY t0.id ASC;" +73,2462,320,0,"SELECT customers.id, customers.region_id +FROM customers JOIN markets ON customers.id = markets.id +WHERE ((markets.id = 3 AND markets.region != 'AMERICA') AND (customers.id < 17 AND customers.region_id IS NULL));" +74,10610,621,3,"SELECT books.id AS c9785 +FROM customers RIGHT JOIN departments ON customers.id = departments.id RIGHT JOIN books ON departments.id = books.id +WHERE books.price >= 55;" +75,14600,296,110,"SELECT t1.department_id AS c5193, t1.id +FROM regions AS t0 CROSS JOIN employees AS t1;" +76,10098,282,17,"SELECT t0.id AS c3431 +FROM users AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id +WHERE ((t1.id != 67 AND t0.id IS NOT NULL) OR (t0.age NOT BETWEEN 33 AND 123 OR t0.age >= 22));" +77,15560,209476,0,"SELECT t1.region_id AS c1177, t0.id AS c3278, COUNT(*), COUNT(t0.id) AS c3474 +FROM orders AS t0 CROSS JOIN customers AS t1 +WHERE (t0.id = 64 AND t0.customer_id > 397) +GROUP BY t1.region_id, t0.id;" +78,1220,243,500,"SELECT t0.id, t0.region_id +FROM customers AS t0;" +79,1366,146,2,"SELECT t0.id AS c7963, t0.age AS c5437 +FROM users AS t0 +WHERE t0.age IN (5, 11, 63);" +80,18500,267,30,"SELECT regions.id AS c2137 +FROM regions CROSS JOIN markets +WHERE markets.note != 'AMERICA';" +81,14110,329,5,"SELECT markets.region AS c3832, users.age, departments.id +FROM users LEFT JOIN departments ON users.id = departments.id RIGHT JOIN markets ON users.id = markets.id +WHERE departments.id <= 5;" +82,1133,138,0,"SELECT users.age AS c4898, users.id AS c4014 +FROM users +WHERE ((users.id = 4 OR users.id BETWEEN 11 AND 16) AND (users.age = 22 AND users.id <= 57)) +ORDER BY users.age DESC;" +83,6110,265,6,"SELECT t0.age AS c499, t1.price AS c7644, t0.id +FROM users AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id +WHERE t0.id < 7;" +84,18098,330,3,"SELECT books.price, regions.id, markets.id AS c8988 +FROM markets LEFT JOIN regions ON markets.id = regions.id LEFT JOIN books ON regions.id = books.id +WHERE ((books.price BETWEEN 6 AND 77 OR markets.id NOT IN (1, 2, 2, 3)) OR books.price NOT IN (55));" +85,6320,334,500,"SELECT t0.id, t0.region_id +FROM customers AS t0 +GROUP BY t0.id, t0.region_id;" +86,1220,1184,5000,"SELECT orders.customer_id, orders.id +FROM orders;" +87,6320,141,11,"SELECT employees.department_id, employees.id AS c6314 +FROM employees +GROUP BY employees.department_id, employees.id;" +88,14760,297,5,"SELECT departments.id AS c2839, COUNT(*) +FROM employees RIGHT JOIN departments ON employees.id = departments.id +GROUP BY departments.id +ORDER BY departments.id DESC;" +89,6320,148,3,"SELECT t0.region AS c5477, t0.id AS c2794, COUNT(*) AS c9570 +FROM markets AS t0 +GROUP BY t0.region, t0.id;" +90,4160,436,500,"SELECT customers.region_id, customers.id AS c6247, COUNT(*) AS c8943 +FROM customers +WHERE customers.region_id <= 40 +GROUP BY customers.region_id, customers.id;" +91,1220,142,5,"SELECT departments.id +FROM departments;" +92,73300,291,3,"SELECT markets.region, markets.id +FROM markets CROSS JOIN regions +GROUP BY markets.region, markets.id +ORDER BY markets.region ASC;" +93,4970,933,3,"SELECT t0.id, t1.id AS c1156, t0.customer_id +FROM orders AS t0 JOIN books AS t1 ON t0.id = t1.id;" +94,27722,329,0,"SELECT t1.price +FROM departments AS t0 CROSS JOIN books AS t1 RIGHT JOIN users AS t2 ON t1.id = t2.id +WHERE (t2.id BETWEEN 45 AND 86 AND t1.id IN (2));" +95,20644,350,0,"SELECT t2.id +FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE ((t1.department_id IN (1, 5, 12, 34) AND t1.id IN (69)) AND t1.department_id <= 1);" +96,10070,948,16,"SELECT t1.id AS c5555, t0.id +FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.id;" +97,1643,163,0,"SELECT regions.id, SUM(regions.id), COUNT(regions.id) AS c9550 +FROM regions +WHERE ((regions.id < 2 AND regions.id = 32) AND (regions.id <= 2 AND regions.id != 3)) +GROUP BY regions.id +ORDER BY regions.id ASC;" +98,12888,254,0,"SELECT books.id +FROM books CROSS JOIN departments +WHERE ((books.price IS NULL AND departments.id = 1) AND (books.price IS NULL OR books.price NOT IN (55, 77)));" +99,3212,258,0,"SELECT customers.id, SUM(customers.id), COUNT(customers.id) AS c8662 +FROM regions JOIN customers ON regions.id = customers.id +WHERE customers.region_id = 63 +GROUP BY customers.id;" +100,1660,132,17,"SELECT users.age, users.id AS c7470 +FROM users +ORDER BY users.id ASC;" +101,26500,369,50,"SELECT markets.id, departments.id AS c1258, markets.region +FROM employees LEFT JOIN markets ON employees.id = markets.id CROSS JOIN departments +WHERE ((markets.id IN (3) AND markets.region = 'EUROPE') OR employees.id < 69);" +102,1220,1173,5000,"SELECT t0.customer_id, t0.id AS c8685 +FROM orders AS t0;" +103,17410,1080,11,"SELECT users.age AS c405 +FROM users JOIN orders ON users.id = orders.id RIGHT JOIN regions ON orders.id = regions.id +GROUP BY users.age +ORDER BY users.age DESC;" +104,1122,135,0,"SELECT employees.id +FROM employees +WHERE employees.id = 14;" +105,22320,2174,3,"SELECT markets.id, orders.customer_id, COUNT(*) +FROM orders RIGHT JOIN markets ON orders.id = markets.id LEFT JOIN books ON markets.id = books.id +GROUP BY markets.id, orders.customer_id;" +106,21032,333,25,"SELECT books.price AS c2329, markets.note +FROM users CROSS JOIN books JOIN markets ON books.id = markets.id +WHERE (markets.region = 'EUROPE' OR (users.age NOT IN (5, 22, 64, 123) AND users.age < 22)) +ORDER BY markets.note ASC;" +107,1643,160,1,"SELECT regions.id +FROM regions +WHERE regions.id IN (5) +GROUP BY regions.id +ORDER BY regions.id ASC;" +108,1775,242,51,"SELECT customers.id AS c9166, customers.region_id +FROM customers +WHERE customers.id < 52 +ORDER BY customers.region_id ASC, customers.id DESC;" +109,9220,297,22,"SELECT employees.id, users.age, employees.department_id +FROM employees FULL JOIN users ON employees.id = users.id;" +110,9632,285,0,"SELECT employees.department_id, employees.id, COUNT(users.id) AS c6401, COUNT(*) +FROM employees FULL JOIN users ON employees.id = users.id +WHERE ((employees.department_id = 31 AND employees.department_id NOT IN (6, 59, 72)) AND (employees.department_id NOT IN (1, 5, 6, 32) AND users.id = 5)) +GROUP BY employees.department_id, employees.id;" +111,1122,2084,28,"SELECT orders.customer_id, orders.id +FROM orders +WHERE ((orders.id IN (97, 99, 184, 198) OR orders.id BETWEEN 31 AND 58) AND (orders.customer_id IS NOT NULL AND orders.id BETWEEN 3 AND 65));" +112,11660,2819,2,"SELECT markets.id, markets.note, COUNT(orders.id), SUM(orders.customer_id) +FROM markets RIGHT JOIN orders ON markets.id = orders.id +WHERE ((orders.id < 188 AND orders.customer_id >= 193) OR (orders.customer_id BETWEEN 239 AND 436 OR markets.id = 1)) +GROUP BY markets.id, markets.note +ORDER BY markets.id DESC, markets.note DESC;" +113,1610,157,1,"SELECT t0.region, t0.note AS c6295 +FROM markets AS t0 +WHERE t0.id < 2;" +114,1220,218,500,"SELECT t0.id +FROM customers AS t0;" +115,9220,276,10,"SELECT t1.id AS c2831, t0.id, t0.department_id +FROM employees AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id;" +116,8825,1378,3,"SELECT t2.customer_id +FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t1.id = t2.id +WHERE t2.customer_id > 244 +ORDER BY t2.customer_id DESC;" +117,1610,156,1,"SELECT t0.id AS c6139 +FROM departments AS t0 +WHERE t0.id >= 5;" +118,12132,344,0,"SELECT books.id AS c118 +FROM departments RIGHT JOIN users ON departments.id = users.id FULL JOIN books ON departments.id = books.id +WHERE ((users.id > 3 AND books.price = 77) AND users.age > 443) +GROUP BY books.id;" +119,6160,979,5,"SELECT orders.id, COUNT(departments.id) +FROM departments JOIN orders ON departments.id = orders.id +WHERE departments.id < 36 +GROUP BY orders.id;" +120,12970,4674,11,"SELECT orders.customer_id, employees.department_id +FROM employees JOIN customers ON employees.id = customers.id LEFT JOIN orders ON employees.id = orders.id;" +121,1122,136,0,"SELECT employees.id +FROM employees +WHERE ((employees.id > 68 OR employees.department_id = 5) AND (employees.id BETWEEN 2 AND 4 AND employees.department_id IN (3, 5, 5)));" +122,4402,297,0,"SELECT markets.note, employees.id +FROM employees LEFT JOIN markets ON employees.id = markets.id JOIN departments ON employees.id = departments.id +WHERE ((departments.id != 36 OR markets.region IS NULL) AND departments.id = 4);" +123,1854,157,1,"SELECT t0.id, t0.note, t0.region +FROM markets AS t0 +WHERE t0.id NOT BETWEEN 2 AND 21;" +124,2833,342,1,"SELECT books.price AS c5178 +FROM books RIGHT JOIN customers ON books.id = customers.id +WHERE customers.id = 158 +ORDER BY books.price DESC;" +125,1122,153,0,"SELECT employees.id AS c9929, employees.department_id +FROM employees +WHERE (employees.department_id = 35 AND employees.department_id < 32);" +126,17632,351,0,"SELECT books.price, books.id +FROM books FULL JOIN markets ON books.id = markets.id FULL JOIN regions ON books.id = regions.id +WHERE (markets.region != 'EUROPE' AND (regions.id IS NULL AND books.price > 66)) +GROUP BY books.price, books.id;" +127,1432,254,3,"SELECT t0.region_id +FROM customers AS t0 +WHERE t0.id IN (16, 32, 137) +ORDER BY t0.region_id DESC;" +128,1288,144,2,"SELECT regions.id +FROM regions +WHERE regions.id BETWEEN 9 AND 10 +ORDER BY regions.id DESC;" +129,22760,3072,3,"SELECT orders.customer_id, COUNT(orders.id) AS c1702 +FROM markets LEFT JOIN books ON markets.id = books.id LEFT JOIN orders ON markets.id = orders.id +GROUP BY orders.customer_id +ORDER BY orders.customer_id DESC;" +130,11770,2770,5,"SELECT regions.id, orders.id AS c452, orders.customer_id +FROM regions JOIN departments ON regions.id = departments.id LEFT JOIN orders ON departments.id = orders.id;" +131,14320,7939,11,"SELECT regions.id AS c9060, COUNT(orders.customer_id), COUNT(orders.id) +FROM orders FULL JOIN regions ON orders.id = regions.id +GROUP BY regions.id;" +132,3666,248,0,"SELECT t0.id AS c4692, t1.department_id AS c2149, t1.id +FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +WHERE (t1.id IN (32, 66, 68, 80) AND (t1.id <= 26 OR t1.department_id <= 5));" +133,4970,923,11,"SELECT t1.id AS c8251, t0.customer_id, t0.id AS c2451 +FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id;" +134,22300,15759,55000,"SELECT orders.customer_id AS c6356 +FROM employees CROSS JOIN orders +ORDER BY orders.customer_id ASC;" +135,17660,12773,11,"SELECT users.id, regions.id AS c3154 +FROM orders FULL JOIN users ON orders.id = users.id RIGHT JOIN regions ON orders.id = regions.id +ORDER BY users.id DESC, regions.id DESC;" +136,89160,385,4,"SELECT books.price +FROM regions CROSS JOIN markets LEFT JOIN books ON regions.id = books.id +GROUP BY books.price +ORDER BY books.price DESC;" +137,6320,148,5,"SELECT departments.id, SUM(departments.id), COUNT(*) AS c6998 +FROM departments +GROUP BY departments.id;" +138,6320,136,10,"SELECT regions.id AS c7258 +FROM regions +GROUP BY regions.id;" +139,4160,154,2,"SELECT markets.id +FROM markets +WHERE ((markets.note = 'Old World' OR markets.id >= 2) OR (markets.region = 'AMERICA' AND markets.region = 'EUROPE')) +GROUP BY markets.id;" +140,1610,151,3,"SELECT t0.price, t0.id AS c3105 +FROM books AS t0 +WHERE t0.id IS NOT NULL;" +141,20160,323,0,"SELECT t1.id AS c8895, t1.note AS c8854, SUM(t1.id) +FROM books AS t0 RIGHT JOIN markets AS t1 ON t0.id = t1.id RIGHT JOIN employees AS t2 ON t0.id = t2.id +WHERE t1.id > 24 +GROUP BY t1.id, t1.note;" +142,12970,374,17,"SELECT t1.region_id AS c1630 +FROM users AS t0 JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN employees AS t2 ON t0.id = t2.id;" +143,1610,159,1,"SELECT t0.id, t0.price +FROM books AS t0 +WHERE t0.price <= 55;" +144,44000,291,10,"SELECT t1.department_id AS c3966, SUM(t1.id) AS c1392, COUNT(*) AS c3892 +FROM books AS t0 CROSS JOIN employees AS t1 +WHERE t1.department_id != 12 +GROUP BY t1.department_id;" +145,6122,270,2,"SELECT t1.department_id AS c6376, t1.id AS c3596 +FROM books AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +WHERE ((t0.id < 1 OR t1.id IS NOT NULL) AND (t0.id != 3 AND t1.department_id <= 35));" +146,6760,157,5,"SELECT departments.id +FROM departments +GROUP BY departments.id +ORDER BY departments.id DESC;" +147,22600,351,110,"SELECT regions.id +FROM departments FULL JOIN employees ON departments.id = employees.id CROSS JOIN regions;" +148,18500,255,20,"SELECT books.id, books.price AS c5525, regions.id +FROM books CROSS JOIN regions +WHERE books.price < 69;" +149,1775,283,422,"SELECT t0.region_id AS c6318 +FROM customers AS t0 +WHERE t0.id > 78 +ORDER BY t0.region_id DESC;" +150,31360,1154,1040,"SELECT t0.id, t1.id AS c921 +FROM regions AS t0 CROSS JOIN customers AS t1 +WHERE t1.region_id IN (5, 9, 51) +GROUP BY t0.id, t1.id;" +151,11688,6072,0,"SELECT regions.id, users.age, orders.id +FROM regions RIGHT JOIN users ON regions.id = users.id FULL JOIN orders ON users.id = orders.id +WHERE ((orders.customer_id BETWEEN 283 AND 359 AND users.id IN (10, 17, 17, 39)) OR (users.id IN (14, 16, 64, 75) AND users.id >= 81)) +ORDER BY orders.id ASC, regions.id DESC, users.age ASC;" +152,22300,262,55,"SELECT departments.id, employees.department_id, employees.id +FROM departments CROSS JOIN employees +ORDER BY employees.id ASC;" +153,14600,1238,1500,"SELECT t1.id, t0.region_id, t0.id +FROM customers AS t0 CROSS JOIN books AS t1;" +154,5655,182,10,"SELECT regions.id, SUM(regions.id) AS c8443 +FROM regions +WHERE (regions.id >= 1 OR (regions.id >= 8 OR regions.id = 5)) +GROUP BY regions.id +ORDER BY regions.id ASC;" +155,18170,1267,2,"SELECT markets.region +FROM markets LEFT JOIN orders ON markets.id = orders.id JOIN employees ON markets.id = employees.id +GROUP BY markets.region;" +156,9220,3877,10,"SELECT t1.customer_id, t1.id AS c2544, t0.id AS c7170 +FROM regions AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id;" +157,26500,1949,4840,"SELECT t1.region_id, t2.id +FROM users AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id CROSS JOIN regions AS t2 +WHERE t0.id IS NULL;" +158,12260,290,0,"SELECT t1.id, t0.id AS c3888, t2.id AS c5161 +FROM employees AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id JOIN books AS t2 ON t0.id = t2.id +WHERE t0.id IS NULL;" +159,14056,2677,3,"SELECT orders.customer_id AS c3770, departments.id AS c4567, COUNT(*) AS c2771 +FROM departments LEFT JOIN orders ON departments.id = orders.id +WHERE ((orders.customer_id NOT BETWEEN 115 AND 380 OR departments.id IS NULL) OR orders.id = 174) +GROUP BY orders.customer_id, departments.id;" +160,1220,1139,5000,"SELECT t0.id, t0.customer_id AS c1926 +FROM orders AS t0;" +161,19820,395,33,"SELECT t1.region AS c961, t2.id +FROM employees AS t0 CROSS JOIN markets AS t1 JOIN customers AS t2 ON t1.id = t2.id;" +162,1366,155,3,"SELECT employees.id, employees.department_id +FROM employees +WHERE ((employees.id NOT IN (5, 67, 68) AND employees.department_id = 28) OR (employees.id > 4 AND employees.department_id > 32));" +163,56060,1836,2,"SELECT markets.region, COUNT(*), COUNT(*) +FROM users CROSS JOIN markets LEFT JOIN customers ON markets.id = customers.id +WHERE users.age >= 1 +GROUP BY markets.region;" +164,1775,171,3,"SELECT markets.id, markets.note AS c529, markets.region +FROM markets +WHERE (markets.region = 'EUROPE' OR markets.id <= 91) +ORDER BY markets.region ASC, markets.id ASC, markets.note ASC;" +165,6320,155,3,"SELECT books.id, COUNT(books.price), SUM(books.id) +FROM books +GROUP BY books.id;" +166,2328,151,9,"SELECT regions.id +FROM regions +WHERE regions.id NOT IN (2, 95) +ORDER BY regions.id ASC;" +167,1122,265,0,"SELECT t0.id +FROM customers AS t0 +WHERE ((t0.region_id > 32 AND t0.id = 78) AND (t0.id >= 20 OR t0.id IS NULL));" +168,31392,1276,1,"SELECT t1.region AS c6909, t1.note, SUM(t2.id) +FROM customers AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN departments AS t2 +WHERE ((t0.id = 89 OR t1.id BETWEEN 49 AND 71) AND t0.id IS NOT NULL) +GROUP BY t1.region, t1.note +ORDER BY t1.region ASC;" +169,12160,272,2,"SELECT departments.id +FROM departments RIGHT JOIN markets ON departments.id = markets.id +WHERE departments.id != 1 +GROUP BY departments.id;" +170,14760,2948,505,"SELECT t1.id AS c5737, t0.customer_id +FROM orders AS t0 LEFT JOIN departments AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.customer_id +ORDER BY t0.customer_id DESC, t1.id ASC;" +171,83620,525,110,"SELECT employees.id AS c3715 +FROM regions CROSS JOIN employees FULL JOIN books ON regions.id = books.id;" +172,9775,683,0,"SELECT t0.id, t0.department_id AS c3676, t1.region_id +FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id +WHERE t0.department_id >= 57 +ORDER BY t0.id DESC, t1.region_id ASC;" +173,22300,20218,85000,"SELECT orders.customer_id +FROM users CROSS JOIN orders +ORDER BY orders.customer_id DESC;" +174,1432,152,3,"SELECT users.id, users.age +FROM users +WHERE users.id IN (3, 11, 12) +ORDER BY users.age DESC, users.id DESC;" +175,2822,250,1,"SELECT books.id, employees.id, employees.department_id +FROM employees RIGHT JOIN books ON employees.id = books.id +WHERE books.price = 77;" +176,4160,169,2,"SELECT books.price, SUM(books.price) AS c5357 +FROM books +WHERE books.price >= 66 +GROUP BY books.price;" +177,2085,150,14,"SELECT users.id, users.age AS c4847 +FROM users +WHERE (users.age < 16 OR users.age < 71) +ORDER BY users.id ASC, users.age DESC;" +178,1660,133,17,"SELECT users.age AS c7380, users.id +FROM users +ORDER BY users.id DESC;" +179,6688,415,500,"SELECT customers.id, customers.region_id +FROM customers +WHERE ((customers.id != 141 OR customers.region_id != 10) OR (customers.id NOT IN (197) OR customers.region_id IN (8))) +GROUP BY customers.id, customers.region_id;" +180,6760,402,500,"SELECT customers.id AS c95, customers.region_id +FROM customers +GROUP BY customers.id, customers.region_id +ORDER BY customers.region_id DESC;" +181,649400,2991,500,"SELECT customers.region_id AS c397, customers.id AS c5003, SUM(books.id) +FROM customers CROSS JOIN books CROSS JOIN departments +GROUP BY customers.region_id, customers.id;" +182,10070,1156,500,"SELECT t1.id AS c6022, t0.id +FROM orders AS t0 JOIN customers AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.id;" +183,1632,229,1,"SELECT customers.id, COUNT(customers.id), COUNT(customers.id) +FROM customers +WHERE customers.id = 24 +GROUP BY customers.id;" +184,18500,494,500,"SELECT books.price AS c5308, customers.region_id AS c1694 +FROM books CROSS JOIN customers +WHERE books.price <= 55;" +185,1220,134,5,"SELECT t0.id AS c9527 +FROM departments AS t0;" +186,9220,284,18,"SELECT users.id +FROM regions FULL JOIN users ON regions.id = users.id;" +187,9930,306,8,"SELECT users.id, regions.id, users.age AS c4755 +FROM users LEFT JOIN regions ON users.id = regions.id +WHERE ((regions.id != 31 AND users.age <= 64) OR users.id >= 66) +ORDER BY users.age DESC;" +188,27984,334,0,"SELECT t2.price AS c5573, COUNT(*) +FROM employees AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE (t2.price > 55 AND t0.id BETWEEN 66 AND 69) +GROUP BY t2.price;" +189,2292,319,0,"SELECT markets.id AS c7660 +FROM markets JOIN customers ON markets.id = customers.id +WHERE (markets.note IS NULL AND (customers.id = 198 AND markets.region IN ('AMERICA', 'EUROPE')));" +190,6760,164,5,"SELECT departments.id +FROM departments +GROUP BY departments.id +ORDER BY departments.id DESC;" +191,49850,319,55,"SELECT departments.id, employees.id +FROM departments JOIN regions ON departments.id = regions.id CROSS JOIN employees +WHERE employees.id IS NOT NULL +GROUP BY departments.id, employees.id +ORDER BY departments.id DESC, employees.id ASC;" +192,13620,267,3,"SELECT books.id, markets.region +FROM markets CROSS JOIN books +WHERE markets.region = 'EUROPE';" +193,11870,661,10,"SELECT customers.region_id, regions.id +FROM users JOIN regions ON users.id = regions.id LEFT JOIN customers ON regions.id = customers.id;" +194,225614,8292,25000,"SELECT t2.id +FROM customers AS t0 CROSS JOIN markets AS t1 CROSS JOIN users AS t2 +WHERE ((t1.id IN (3) OR t2.age != 1) OR (t1.id != 2 OR t2.id > 61));" +195,17220,7112,10,"SELECT t0.id +FROM regions AS t0 FULL JOIN books AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t1.id = t2.id;" +196,68250,595,30,"SELECT customers.region_id, books.id, SUM(regions.id), SUM(customers.region_id) +FROM books JOIN regions ON books.id = regions.id CROSS JOIN customers +GROUP BY customers.region_id, books.id;" +197,7720,252,3,"SELECT t0.price AS c8028, t2.id +FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id JOIN regions AS t2 ON t1.id = t2.id;" +198,1220,134,17,"SELECT t0.age AS c2991 +FROM users AS t0;" +199,18134,295,30,"SELECT t1.id, t0.id +FROM regions AS t0 CROSS JOIN users AS t1 +WHERE (t1.age BETWEEN 33 AND 33 OR t1.id IN (12, 49, 95));" +200,2085,145,6,"SELECT employees.department_id +FROM employees +WHERE ((employees.id > 66 OR employees.id IN (33)) OR employees.department_id IN (6, 12, 12, 50)) +ORDER BY employees.department_id DESC;" +201,1220,1137,5000,"SELECT orders.customer_id, orders.id +FROM orders;" +202,4666,206,6,"SELECT employees.id AS c3304, users.id AS c2088 +FROM users JOIN employees ON users.id = employees.id +WHERE ((users.age IN (42, 64) OR users.id < 16) AND users.id != 99) +GROUP BY employees.id, users.id;" +203,6320,150,3,"SELECT books.id, books.price +FROM books +GROUP BY books.id, books.price;" +204,10170,272,3,"SELECT t0.id AS c8592, t1.region +FROM customers AS t0 JOIN markets AS t1 ON t0.id = t1.id +GROUP BY t0.id, t1.region;" +205,13664,12314,1,"SELECT t1.id AS c8725, SUM(t1.id), COUNT(*) +FROM users AS t0 CROSS JOIN orders AS t1 +WHERE (t0.age IN (33, 64) AND t1.id = 156) +GROUP BY t1.id;" +206,1220,250,500,"SELECT t0.id AS c4257 +FROM customers AS t0;" +207,20110,4160,0,"SELECT t1.customer_id, t0.department_id +FROM employees AS t0 CROSS JOIN orders AS t1 JOIN customers AS t2 ON t1.id = t2.id +WHERE t0.department_id IS NULL;" +208,9220,264,3,"SELECT books.price AS c3720, employees.department_id, books.id +FROM employees RIGHT JOIN books ON employees.id = books.id;" +209,11210,449,2,"SELECT t2.region, t1.id, COUNT(t2.id) +FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id FULL JOIN markets AS t2 ON t0.id = t2.id +WHERE t0.id < 1 +GROUP BY t2.region, t1.id;" +210,14600,3063,15000,"SELECT orders.id, books.id AS c7933, orders.customer_id +FROM books CROSS JOIN orders;" +211,84010,3085577,0,"SELECT t2.region_id, t2.id, t0.customer_id +FROM orders AS t0 CROSS JOIN users AS t1 LEFT JOIN customers AS t2 ON t1.id = t2.id +WHERE t2.region_id >= 23;" +212,14320,2182,3,"SELECT orders.id +FROM books LEFT JOIN orders ON books.id = orders.id +GROUP BY orders.id;" +213,1620,141,2,"SELECT t0.id +FROM regions AS t0 +WHERE t0.id IN (4, 4, 9, 88) +ORDER BY t0.id ASC;" +214,178400,91814,247665,"SELECT orders.id, orders.customer_id, employees.id +FROM orders CROSS JOIN employees CROSS JOIN departments +WHERE orders.customer_id >= 52;" +215,1610,966,29,"SELECT t0.customer_id +FROM orders AS t0 +WHERE t0.id < 30;" +216,1488,142,3,"SELECT departments.id +FROM departments +WHERE departments.id IN (1, 3, 4, 60);" +217,12160,683,3,"SELECT t0.id, t1.region_id +FROM employees AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id +WHERE t1.region_id >= 8 +GROUP BY t0.id, t1.region_id;" +218,9220,241,5,"SELECT books.price AS c5412, books.id, departments.id AS c9618 +FROM departments LEFT JOIN books ON departments.id = books.id;" +219,178400,23808,45000,"SELECT t1.note, t0.customer_id AS c4395 +FROM orders AS t0 CROSS JOIN markets AS t1 CROSS JOIN books AS t2 +WHERE t1.region IS NOT NULL;" +220,83832,1508595,45001,"SELECT customers.region_id, orders.id, employees.id +FROM employees CROSS JOIN orders RIGHT JOIN customers ON employees.id = customers.id +WHERE (customers.id IN (181) OR employees.id BETWEEN 3 AND 92) +ORDER BY customers.region_id ASC;" +221,1133,144,0,"SELECT t0.id AS c9777 +FROM regions AS t0 +WHERE ((t0.id <= 5 OR t0.id IN (4, 12)) AND (t0.id = 9 AND t0.id NOT IN (2, 4, 5, 89))) +ORDER BY t0.id ASC;" +222,6056,174,11,"SELECT t0.id, t0.department_id AS c2878, COUNT(t0.id), COUNT(*) AS c2633 +FROM employees AS t0 +WHERE ((t0.department_id IS NOT NULL OR t0.department_id IS NOT NULL) OR (t0.id > 26 OR t0.id = 52)) +GROUP BY t0.id, t0.department_id;" +223,14600,13517,55000,"SELECT t0.id +FROM orders AS t0 CROSS JOIN employees AS t1;" +224,1220,136,11,"SELECT employees.department_id +FROM employees;" +225,12970,4690,11,"SELECT orders.customer_id, customers.id AS c4775, employees.department_id AS c6986 +FROM employees LEFT JOIN customers ON employees.id = customers.id JOIN orders ON employees.id = orders.id;" +226,9854,279,3,"SELECT books.id, regions.id, books.price AS c1520 +FROM books LEFT JOIN regions ON books.id = regions.id +WHERE ((regions.id < 10 OR books.price = 77) OR books.price > 60);" +227,9122,5911,9,"SELECT orders.id, books.price, orders.customer_id AS c7568 +FROM orders FULL JOIN books ON orders.id = books.id +WHERE orders.customer_id = 63;" +228,25402,1409,1000,"SELECT t1.id AS c1443, t2.region_id AS c2237 +FROM employees AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 +WHERE ((t1.id < 3 OR t1.region = 'AMERICA') AND (t2.region_id IS NULL OR t1.note != 'North, South'));" +229,26940,545,0,"SELECT departments.id +FROM departments LEFT JOIN customers ON departments.id = customers.id CROSS JOIN markets +WHERE markets.region IS NULL +ORDER BY departments.id ASC;" +230,11870,10874,5000,"SELECT departments.id, users.age AS c5139, orders.id +FROM departments JOIN users ON departments.id = users.id FULL JOIN orders ON users.id = orders.id;" +231,1220,123,5,"SELECT departments.id +FROM departments;" +232,14760,765,16,"SELECT customers.id, COUNT(*) AS c3789 +FROM customers RIGHT JOIN users ON customers.id = users.id +GROUP BY customers.id +ORDER BY customers.id DESC;" +233,22470,746,1353,"SELECT departments.id +FROM departments JOIN markets ON departments.id = markets.id CROSS JOIN customers +WHERE (customers.region_id NOT IN (10, 10) AND (customers.id <= 80 OR departments.id >= 1));" +234,9220,256,10,"SELECT t0.note +FROM markets AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id;" +235,5604,255,1,"SELECT t1.region_id AS c5511 +FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id +WHERE (t0.price NOT BETWEEN 66 AND 94 OR (t0.id > 3 AND t1.region_id = 10));" +236,17660,4310,17,"SELECT t1.department_id AS c2338, t0.customer_id +FROM orders AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN users AS t2 ON t1.id = t2.id +ORDER BY t1.department_id ASC;" +237,22600,2092,5010,"SELECT regions.id +FROM users FULL JOIN customers ON users.id = customers.id CROSS JOIN regions;" +238,6122,652,0,"SELECT customers.region_id +FROM customers LEFT JOIN employees ON customers.id = employees.id +WHERE (employees.id IN (38) AND customers.region_id != 5);" +239,4325,176,6,"SELECT employees.id +FROM employees +WHERE employees.id > 5 +GROUP BY employees.id +ORDER BY employees.id DESC;" +240,649400,379,3,"SELECT t0.price AS c6143, SUM(t2.id) +FROM books AS t0 CROSS JOIN users AS t1 CROSS JOIN departments AS t2 +GROUP BY t0.price;" +241,22600,3857,25000,"SELECT customers.id, customers.region_id, departments.id +FROM customers RIGHT JOIN departments ON customers.id = departments.id CROSS JOIN orders;" +242,13864,236,0,"SELECT books.id +FROM books CROSS JOIN employees +WHERE (employees.id != 33 AND (employees.id < 1 AND employees.department_id < 12));" +243,7730,1760,5,"SELECT employees.department_id, books.price AS c4475, books.id AS c4655 +FROM orders JOIN employees ON orders.id = employees.id RIGHT JOIN books ON employees.id = books.id +WHERE ((orders.id >= 13 AND orders.customer_id != 233) OR (orders.id > 39 AND orders.customer_id <= 359)) +ORDER BY books.id DESC;" +244,10922,333,0,"SELECT regions.id +FROM regions RIGHT JOIN employees ON regions.id = employees.id LEFT JOIN markets ON employees.id = markets.id +WHERE (regions.id NOT BETWEEN 2 AND 8 AND markets.note = 'Fast lane');" +245,1775,142,1,"SELECT markets.note, markets.region, markets.id +FROM markets +WHERE ((markets.region != 'AMERICA' AND markets.region = 'AMERICA') OR markets.id < 2) +ORDER BY markets.note DESC, markets.id ASC, markets.region DESC;" +246,1244,154,9,"SELECT regions.id AS c713 +FROM regions +WHERE regions.id BETWEEN 2 AND 45;" +247,14408,2095,3,"SELECT t0.id AS c7208 +FROM orders AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id +WHERE t0.customer_id NOT IN (244, 365) +GROUP BY t0.id +ORDER BY t0.id ASC;" +248,13424,7694,5000,"SELECT t1.id, COUNT(*), SUM(t0.id) AS c7387 +FROM users AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t1.customer_id = 494 AND t1.customer_id != 145) OR (t0.age > 53 OR t1.customer_id IS NOT NULL)) +GROUP BY t1.id;" +249,9610,256,3,"SELECT markets.region, users.age +FROM markets LEFT JOIN users ON markets.id = users.id +WHERE users.id < 17;" +250,9220,591,10,"SELECT customers.id, customers.region_id +FROM regions LEFT JOIN customers ON regions.id = customers.id;" +251,9775,4003,42,"SELECT orders.customer_id, regions.id, orders.id AS c3346 +FROM regions FULL JOIN orders ON regions.id = orders.id +WHERE orders.id <= 42 +ORDER BY regions.id ASC;" +252,83533,19602,39,"SELECT orders.id AS c8852, orders.customer_id, books.price AS c8813 +FROM books CROSS JOIN orders FULL JOIN departments ON orders.id = departments.id +WHERE ((orders.customer_id = 163 OR orders.id IN (69, 96, 152)) AND (orders.id IS NOT NULL AND books.id IS NOT NULL)) +ORDER BY orders.id DESC;" +253,18894,439,40,"SELECT customers.id +FROM regions CROSS JOIN employees JOIN customers ON employees.id = customers.id +WHERE (employees.id IS NOT NULL AND customers.id >= 65);" +254,9220,246,11,"SELECT markets.id AS c3977, employees.department_id +FROM markets FULL JOIN employees ON markets.id = employees.id;" +255,6320,2350,5000,"SELECT orders.id, orders.customer_id AS c7286 +FROM orders +GROUP BY orders.id, orders.customer_id;" +256,31360,277,9,"SELECT t0.id, t1.id AS c9218 +FROM markets AS t0 CROSS JOIN employees AS t1 +WHERE t1.department_id IN (5, 12, 33) +GROUP BY t0.id, t1.id;" +257,8970,178,3,"SELECT t1.price, t0.id AS c7828 +FROM regions AS t0 JOIN books AS t1 ON t0.id = t1.id +GROUP BY t1.price, t0.id;" +258,18510,378,3,"SELECT customers.region_id +FROM customers JOIN users ON customers.id = users.id RIGHT JOIN markets ON customers.id = markets.id +GROUP BY customers.region_id +ORDER BY customers.region_id DESC;" +259,1660,255,500,"SELECT customers.id +FROM customers +ORDER BY customers.id ASC;" +260,1366,237,118,"SELECT customers.region_id, customers.id +FROM customers +WHERE ((customers.region_id IS NULL OR customers.id >= 198) AND customers.region_id <= 4);" +261,14760,449,3,"SELECT customers.region_id AS c4278, books.id +FROM books LEFT JOIN customers ON books.id = customers.id +GROUP BY customers.region_id, books.id +ORDER BY books.id ASC;" +262,14600,277,110,"SELECT t1.department_id AS c5186, t0.id, t1.id +FROM regions AS t0 CROSS JOIN employees AS t1;" +263,8650,330,5,"SELECT markets.id, departments.id, regions.id +FROM regions LEFT JOIN departments ON regions.id = departments.id JOIN markets ON regions.id = markets.id +WHERE markets.note != 'Old World' +ORDER BY markets.id ASC, regions.id DESC;" +264,17220,885,500,"SELECT users.id AS c6920, markets.region AS c5238, users.age AS c1104 +FROM markets RIGHT JOIN users ON markets.id = users.id RIGHT JOIN customers ON markets.id = customers.id;" +265,9220,277,17,"SELECT t1.id, t0.id AS c2693 +FROM users AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id;" +266,1133,239,1,"SELECT customers.id AS c604, customers.region_id +FROM customers +WHERE customers.id = 135 +ORDER BY customers.id DESC, customers.region_id DESC;" +267,1610,140,0,"SELECT books.id +FROM books +WHERE books.price IS NULL;" +268,649400,33743,11,"SELECT employees.department_id, SUM(orders.customer_id) +FROM orders CROSS JOIN books CROSS JOIN employees +GROUP BY employees.department_id;" +269,1220,121,3,"SELECT books.price AS c8205 +FROM books;" +270,1220,1113,5000,"SELECT orders.id AS c7922 +FROM orders;" +271,2972,1247,0,"SELECT orders.id AS c8902, departments.id AS c4368, orders.customer_id +FROM orders JOIN departments ON orders.id = departments.id +WHERE ((orders.customer_id = 483 AND departments.id > 4) AND orders.id != 24);" +272,8660,1918,2,"SELECT orders.customer_id, orders.id, COUNT(*), COUNT(*) +FROM orders RIGHT JOIN books ON orders.id = books.id +WHERE books.id != 1 +GROUP BY orders.customer_id, orders.id;" +273,6320,156,11,"SELECT t0.id, SUM(t0.department_id), COUNT(t0.department_id) +FROM employees AS t0 +GROUP BY t0.id;" +274,1244,152,2,"SELECT t0.id AS c7269, t0.age +FROM users AS t0 +WHERE t0.age IN (33, 33);" +275,1122,1452,0,"SELECT orders.id AS c6877 +FROM orders +WHERE ((orders.customer_id <= 56 OR orders.customer_id != 343) AND (orders.customer_id IN (52, 86) AND orders.customer_id >= 224));" +276,73300,1476,11,"SELECT users.age AS c7960, SUM(users.id) +FROM customers CROSS JOIN users +GROUP BY users.age +ORDER BY users.age ASC;" +277,1643,169,1,"SELECT t0.id +FROM departments AS t0 +WHERE ((t0.id IN (2, 10, 59) OR t0.id IS NULL) AND (t0.id != 5 AND t0.id IS NOT NULL)) +GROUP BY t0.id +ORDER BY t0.id DESC;" +278,9976,278,5,"SELECT t1.id AS c8751 +FROM users AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id +WHERE (t0.age IS NULL OR (t1.id != 5 OR t1.id < 14));" +279,3432,1033,0,"SELECT regions.id, orders.id, COUNT(*), SUM(orders.customer_id) +FROM orders RIGHT JOIN regions ON orders.id = regions.id +WHERE ((regions.id IN (8, 9, 22) AND regions.id <= 6) AND orders.id IN (39, 49, 104, 106)) +GROUP BY regions.id, orders.id;" +280,9122,6240,0,"SELECT orders.customer_id +FROM users FULL JOIN orders ON users.id = orders.id +WHERE ((users.age > 33 AND orders.customer_id < 84) AND (users.id = 15 OR orders.id IN (68, 128, 128, 198)));" +281,1133,155,0,"SELECT t0.id, t0.note, t0.region +FROM markets AS t0 +WHERE ((t0.note = 'unknown' AND t0.id != 1) AND t0.id > 67) +ORDER BY t0.id ASC, t0.note DESC;" +282,84010,11429,9,"SELECT employees.id, orders.customer_id AS c5471, books.price +FROM books CROSS JOIN orders LEFT JOIN employees ON orders.id = employees.id +WHERE employees.id > 66;" +283,83533,2140,0,"SELECT books.id, markets.id, books.price AS c2723 +FROM books CROSS JOIN customers FULL JOIN markets ON customers.id = markets.id +WHERE ((markets.id > 55 AND customers.region_id NOT IN (8, 9, 10)) AND markets.region IN ('AMERICA', 'EUROPE')) +ORDER BY books.id DESC, markets.id ASC;" +284,6760,178,2,"SELECT t0.region AS c1153, SUM(t0.id) AS c3569 +FROM markets AS t0 +GROUP BY t0.region +ORDER BY t0.region ASC;" +285,20522,379,0,"SELECT employees.id AS c5654, users.id +FROM markets FULL JOIN employees ON markets.id = employees.id CROSS JOIN users +WHERE ((markets.note = 'Fast lane' AND employees.department_id NOT BETWEEN 11 AND 37) AND (users.id != 4 AND users.age <= 443));" +286,10308,882,3,"SELECT customers.id, COUNT(customers.id) AS c434, COUNT(*) +FROM customers FULL JOIN departments ON customers.id = departments.id +WHERE departments.id BETWEEN 2 AND 4 +GROUP BY customers.id +ORDER BY customers.id DESC;" +287,8435,270,0,"SELECT t2.id, t1.id, t0.id +FROM books AS t0 JOIN departments AS t1 ON t0.id = t1.id RIGHT JOIN regions AS t2 ON t1.id = t2.id +WHERE t0.id IS NULL;" +288,4122,173,1,"SELECT regions.id AS c1673 +FROM users JOIN regions ON users.id = regions.id +WHERE (users.age IN (33, 47, 98) OR users.id > 54);" +289,14060,267,3,"SELECT departments.id, books.price AS c551 +FROM departments CROSS JOIN books +WHERE departments.id = 5 +ORDER BY departments.id DESC;" +290,8660,1278,6,"SELECT t2.region, t1.department_id, t0.customer_id AS c8493 +FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id +WHERE t0.customer_id < 239;" +291,23720,4263,10,"SELECT orders.id, COUNT(orders.id), SUM(regions.id) +FROM users CROSS JOIN orders JOIN regions ON orders.id = regions.id +GROUP BY orders.id;" +292,6760,174,3,"SELECT t0.region, t0.id, SUM(t0.id), COUNT(*) +FROM markets AS t0 +GROUP BY t0.region, t0.id +ORDER BY t0.region ASC, t0.id DESC;" +293,9122,273,0,"SELECT t0.age, t1.id +FROM users AS t0 FULL JOIN books AS t1 ON t0.id = t1.id +WHERE (t0.age = 18 AND (t0.age != 123 AND t1.id <= 89));" +294,6688,160,3,"SELECT books.price AS c6589, books.id, COUNT(*) +FROM books +WHERE ((books.price > 77 OR books.id < 3) OR (books.price IN (49, 55, 55, 77) OR books.price IN (26, 66, 66, 68))) +GROUP BY books.price, books.id;" +295,8970,187,5,"SELECT users.id, SUM(users.age), COUNT(users.id) +FROM users JOIN departments ON users.id = departments.id +GROUP BY users.id;" +296,1660,154,3,"SELECT t0.region, t0.id AS c2775, t0.note +FROM markets AS t0 +ORDER BY t0.id DESC;" +297,13848,1207,22,"SELECT t2.department_id +FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id FULL JOIN employees AS t2 ON t0.id = t2.id +WHERE ((t2.id NOT BETWEEN 4 AND 6 OR t1.age != 21) OR t0.id <= 61);" +298,2098,152,4,"SELECT departments.id +FROM departments +WHERE ((departments.id NOT IN (4, 4, 5, 7) OR departments.id NOT IN (2, 5)) OR (departments.id NOT BETWEEN 3 AND 27 OR departments.id IS NULL));" +299,8375,263,0,"SELECT books.price, employees.id AS c7128 +FROM employees RIGHT JOIN books ON employees.id = books.id +WHERE ((books.id > 68 OR books.id >= 52) AND (employees.department_id < 6 OR employees.department_id != 1)) +ORDER BY books.price DESC;" +300,10775,4138,4965,"SELECT orders.id AS c9121 +FROM orders LEFT JOIN departments ON orders.id = departments.id RIGHT JOIN books ON departments.id = books.id +WHERE orders.customer_id <= 497 +ORDER BY orders.id ASC;" +301,10170,180,3,"SELECT users.id, COUNT(markets.id), SUM(markets.id) +FROM users JOIN markets ON users.id = markets.id +GROUP BY users.id;" +302,12310,647,500,"SELECT regions.id, customers.region_id, employees.id +FROM regions FULL JOIN employees ON regions.id = employees.id JOIN customers ON regions.id = customers.id +ORDER BY customers.region_id ASC, employees.id ASC, regions.id ASC;" +303,1610,151,8,"SELECT employees.id, employees.department_id +FROM employees +WHERE ((employees.id <= 33 OR employees.id = 3) OR (employees.department_id NOT IN (5) AND employees.id = 67));" +304,1220,128,11,"SELECT employees.department_id AS c3770 +FROM employees;" +305,2896,164,2,"SELECT regions.id AS c2143, COUNT(*), COUNT(*) +FROM regions +WHERE regions.id IN (3, 10, 89) +GROUP BY regions.id;" +306,8074,195,5,"SELECT employees.id, employees.department_id, SUM(employees.id), SUM(employees.department_id) AS c8963 +FROM employees JOIN departments ON employees.id = departments.id +WHERE (departments.id <= 3 OR (employees.id = 68 OR employees.id <= 6)) +GROUP BY employees.id, employees.department_id;" +307,12510,1269,3,"SELECT t0.note AS c4138 +FROM markets AS t0 JOIN regions AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id +WHERE ((t2.customer_id = 298 OR t0.region = 'AMERICA') OR t0.region != 'AMERICA') +GROUP BY t0.note;" +308,4325,166,1,"SELECT departments.id, COUNT(*) AS c9125 +FROM departments +WHERE (departments.id > 56 OR departments.id = 4) +GROUP BY departments.id +ORDER BY departments.id DESC;" +309,1632,153,1,"SELECT t0.id AS c7541, COUNT(t0.id) +FROM markets AS t0 +WHERE (t0.note != 'Fast lane' AND (t0.id = 3 OR t0.note = 'Old World')) +GROUP BY t0.id;" +310,20325,11529,7,"SELECT t1.id, t2.id, SUM(t2.id) +FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t0.id = t2.id +WHERE (t2.customer_id < 243 OR (t2.id >= 38 AND t2.customer_id = 302)) +GROUP BY t1.id, t2.id +ORDER BY t2.id ASC;" +311,9432,2641,2,"SELECT t0.region, t1.customer_id AS c7183 +FROM markets AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t0.id <= 3 OR t0.note = 'Fast lane') AND (t0.note != 'North, South' OR t0.note = 'Fast lane')) +ORDER BY t0.region ASC;" +312,11870,1089,5,"SELECT t1.id, t0.id +FROM departments AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id JOIN employees AS t2 ON t1.id = t2.id;" +313,12504,1024,2,"SELECT employees.id, orders.id AS c4699, orders.customer_id +FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN employees ON departments.id = employees.id +WHERE employees.department_id NOT BETWEEN 5 AND 33;" +314,2264,168,13,"SELECT t0.age, t0.id +FROM users AS t0 +WHERE (t0.age > 5 AND t0.id != 2) +GROUP BY t0.age, t0.id;" +315,6110,185,5,"SELECT t0.id +FROM regions AS t0 JOIN departments AS t1 ON t0.id = t1.id +WHERE t1.id IS NOT NULL +GROUP BY t0.id;" +316,6320,133,3,"SELECT books.id +FROM books +GROUP BY books.id;" +317,9220,2702,5000,"SELECT orders.id AS c7996, books.price +FROM books FULL JOIN orders ON books.id = orders.id;" +318,22320,329,4,"SELECT books.price, books.id +FROM books FULL JOIN employees ON books.id = employees.id RIGHT JOIN regions ON employees.id = regions.id +GROUP BY books.price, books.id;" +319,2896,146,3,"SELECT books.id AS c9150, books.price, COUNT(books.id) +FROM books +WHERE ((books.price IN (76, 77) AND books.id BETWEEN 1 AND 96) OR books.price IN (55, 66, 77)) +GROUP BY books.id, books.price;" +320,4970,237,11,"SELECT customers.region_id, employees.id +FROM customers JOIN employees ON customers.id = employees.id;" +321,16824,934,10,"SELECT t0.id AS c6071, COUNT(*), COUNT(*) AS c7241 +FROM regions AS t0 CROSS JOIN customers AS t1 +WHERE ((t1.id >= 59 OR t0.id IS NULL) AND t1.id = 126) +GROUP BY t0.id;" +322,17220,823,500,"SELECT t1.region_id, t1.id, t2.price +FROM regions AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN books AS t2 ON t0.id = t2.id;" +323,14275,522,3,"SELECT t0.region_id +FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id +WHERE t1.id < 14 +ORDER BY t0.region_id ASC;" +324,12160,2620,3,"SELECT orders.id AS c4187, regions.id +FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN regions ON departments.id = regions.id +WHERE regions.id < 4;" +325,15822,329,4,"SELECT markets.note AS c7216, books.price +FROM departments CROSS JOIN markets LEFT JOIN books ON markets.id = books.id +WHERE ((departments.id != 2 AND markets.note = 'Old World') AND (departments.id BETWEEN 1 AND 5 OR departments.id >= 41));" +326,1220,129,17,"SELECT t0.age +FROM users AS t0;" +327,6760,156,11,"SELECT t0.age +FROM users AS t0 +GROUP BY t0.age +ORDER BY t0.age ASC;" +328,84498,84707,54310,"SELECT employees.department_id +FROM orders CROSS JOIN employees LEFT JOIN regions ON employees.id = regions.id +WHERE ((employees.id <= 25 OR orders.id NOT BETWEEN 47 AND 184) OR orders.id IS NULL);" +329,5680,195,3,"SELECT t0.id +FROM markets AS t0 JOIN users AS t1 ON t0.id = t1.id +WHERE (t0.id != 2 OR t0.id != 1) +ORDER BY t0.id ASC;" +330,11143,1166,0,"SELECT books.price, employees.id, COUNT(*) +FROM customers LEFT JOIN books ON customers.id = books.id FULL JOIN employees ON customers.id = employees.id +WHERE ((customers.id > 96 AND employees.department_id != 32) AND (employees.id > 5 OR books.id IS NOT NULL)) +GROUP BY books.price, employees.id +ORDER BY books.price DESC, employees.id DESC;" +331,83620,1674673,50490,"SELECT t2.region_id, t2.id +FROM orders AS t0 CROSS JOIN regions AS t1 FULL JOIN customers AS t2 ON t1.id = t2.id;" +332,1610,145,10,"SELECT regions.id AS c7728 +FROM regions +WHERE regions.id IS NOT NULL;" +333,22320,304862,6,"SELECT departments.id, COUNT(*) +FROM orders FULL JOIN departments ON orders.id = departments.id LEFT JOIN customers ON departments.id = customers.id +GROUP BY departments.id;" +334,1775,165,10,"SELECT regions.id AS c1480 +FROM regions +WHERE regions.id IS NOT NULL +ORDER BY regions.id DESC;" +335,1133,144,0,"SELECT books.price, books.id +FROM books +WHERE (books.price < 44 AND (books.price IN (55, 55, 66, 66) AND books.price != 77)) +ORDER BY books.price DESC, books.id DESC;" +336,1122,139,1,"SELECT t0.department_id +FROM employees AS t0 +WHERE ((t0.department_id = 12 AND t0.department_id < 35) AND (t0.id IN (4) OR t0.department_id != 31));" +337,1488,156,10,"SELECT users.id, users.age +FROM users +WHERE users.age IN (1, 21, 33, 64);" +338,1732,149,9,"SELECT t0.id +FROM regions AS t0 +WHERE ((t0.id NOT BETWEEN 1 AND 15 OR t0.id < 10) AND (t0.id <= 40 OR t0.id != 3));" +339,1610,151,1,"SELECT departments.id +FROM departments +WHERE ((departments.id <= 98 OR departments.id > 1) AND (departments.id IS NULL OR departments.id IN (3, 3, 30, 91)));" +340,12160,557,13,"SELECT customers.region_id AS c4276, markets.region AS c7002, COUNT(*), COUNT(*) AS c3968 +FROM customers LEFT JOIN markets ON customers.id = markets.id +WHERE (markets.note = 'Fast lane' OR customers.id IS NOT NULL) +GROUP BY customers.region_id, markets.region;" +341,18070,391,3,"SELECT customers.id, SUM(customers.region_id) +FROM markets JOIN users ON markets.id = users.id RIGHT JOIN customers ON users.id = customers.id +GROUP BY customers.id;" +342,1122,140,0,"SELECT employees.department_id, employees.id +FROM employees +WHERE ((employees.id >= 66 OR employees.id != 2) AND (employees.id > 69 AND employees.department_id = 33));" +343,1660,145,17,"SELECT users.age +FROM users +ORDER BY users.age ASC;" +344,6110,278,3,"SELECT t1.price AS c605, t0.id AS c1651, t1.id +FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id +WHERE (t1.id != 3 OR t1.id = 3);" +345,9660,441,3,"SELECT books.id, customers.id AS c5626 +FROM books LEFT JOIN customers ON books.id = customers.id +ORDER BY customers.id DESC;" +346,84032,439,0,"SELECT t1.region, t2.id, COUNT(t1.id) +FROM employees AS t0 CROSS JOIN markets AS t1 FULL JOIN regions AS t2 ON t1.id = t2.id +WHERE t0.department_id = 36 +GROUP BY t1.region, t2.id;" +347,9610,5218,0,"SELECT users.age AS c6973 +FROM users RIGHT JOIN orders ON users.id = orders.id +WHERE users.id > 94;" +348,19356,1399,1187,"SELECT t1.id, t0.id +FROM departments AS t0 CROSS JOIN customers AS t1 +WHERE ((t1.id BETWEEN 28 AND 146 AND t1.id IN (46, 50, 104, 146)) OR (t0.id < 4 AND t1.region_id NOT IN (2, 2, 10, 12))) +ORDER BY t1.id DESC;" +349,8825,280,5,"SELECT regions.id, departments.id AS c6050, COUNT(*), COUNT(*) +FROM regions RIGHT JOIN departments ON regions.id = departments.id +WHERE departments.id IS NOT NULL +GROUP BY regions.id, departments.id +ORDER BY departments.id ASC;" +350,14320,278,11,"SELECT employees.department_id, departments.id AS c3106, COUNT(*) AS c7893 +FROM departments RIGHT JOIN employees ON departments.id = employees.id +GROUP BY employees.department_id, departments.id;" +351,83766,55158,261,"SELECT t0.customer_id, t2.id AS c6006, t2.age +FROM orders AS t0 CROSS JOIN departments AS t1 FULL JOIN users AS t2 ON t1.id = t2.id +WHERE (t1.id >= 3 AND (t0.id < 55 OR t0.id < 88));" +352,21794,3404,80,"SELECT t1.customer_id, t1.id, t0.id +FROM departments AS t0 CROSS JOIN orders AS t1 +WHERE (t1.customer_id IN (426) OR (t1.customer_id IS NULL OR t0.id >= 57));" +353,1220,237,500,"SELECT t0.id, t0.region_id +FROM customers AS t0;" +354,2962,167,1,"SELECT t0.department_id, t0.id +FROM employees AS t0 +WHERE (t0.department_id >= 31 AND (t0.department_id > 34 OR t0.id < 33)) +GROUP BY t0.department_id, t0.id +ORDER BY t0.department_id DESC;" +355,1244,243,2,"SELECT customers.id, customers.region_id +FROM customers +WHERE customers.id IN (153, 183);" +356,17220,320,5,"SELECT employees.department_id, departments.id +FROM books LEFT JOIN employees ON books.id = employees.id FULL JOIN departments ON employees.id = departments.id;" +357,5424,3425,4914,"SELECT orders.id AS c1456, orders.customer_id, COUNT(*), COUNT(orders.customer_id) +FROM orders +WHERE (orders.id > 86 OR orders.customer_id IS NULL) +GROUP BY orders.id, orders.customer_id;" +358,4160,153,0,"SELECT t0.department_id, t0.id AS c8666, COUNT(*) AS c1170, COUNT(*) +FROM employees AS t0 +WHERE t0.id IS NULL +GROUP BY t0.department_id, t0.id;" +359,6320,149,10,"SELECT regions.id, COUNT(regions.id) AS c1004, COUNT(regions.id) AS c9498 +FROM regions +GROUP BY regions.id;" +360,1220,137,3,"SELECT t0.id, t0.note AS c1949, t0.region +FROM markets AS t0;" +361,649400,49930,11,"SELECT t2.department_id, COUNT(t2.id), SUM(t0.id) +FROM departments AS t0 CROSS JOIN orders AS t1 CROSS JOIN employees AS t2 +GROUP BY t2.department_id;" +362,88720,780221,3,"SELECT markets.id AS c6682, markets.note AS c3493 +FROM orders CROSS JOIN customers RIGHT JOIN markets ON customers.id = markets.id +GROUP BY markets.id, markets.note;" +363,1775,156,3,"SELECT books.price +FROM books +WHERE books.price IS NOT NULL +ORDER BY books.price DESC;" +364,1288,261,44,"SELECT customers.region_id AS c2372 +FROM customers +WHERE customers.region_id IN (4, 89) +ORDER BY customers.region_id DESC;" +365,13135,2618,3,"SELECT t0.id AS c4468, t1.customer_id, t0.region +FROM markets AS t0 FULL JOIN orders AS t1 ON t0.id = t1.id JOIN customers AS t2 ON t0.id = t2.id +WHERE t0.id <= 17;" +366,1366,153,1,"SELECT users.id, users.age +FROM users +WHERE (users.id = 15 OR (users.id != 3 AND users.id IS NULL));" +367,1220,141,17,"SELECT t0.age +FROM users AS t0;" +368,21794,262,49,"SELECT t0.id, t1.age +FROM books AS t0 CROSS JOIN users AS t1 +WHERE (t1.id = 96 OR (t1.age != 18 OR t0.price <= 61));" +369,3332,1069,0,"SELECT t0.id AS c4185, SUM(t0.id) +FROM markets AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t0.id BETWEEN 1 AND 7 OR t0.note != 'North, South') AND (t0.note != 'Old World' AND t0.note IN ('ASIA', 'Old World', 'unknown'))) +GROUP BY t0.id;" +370,1610,145,2,"SELECT markets.note AS c2495, markets.id, markets.region +FROM markets +WHERE ((markets.note = 'North, South' AND markets.note != 'North, South') OR markets.note != 'Fast lane');" +371,14600,283,110,"SELECT regions.id +FROM regions CROSS JOIN employees;" +372,1930,1577,3214,"SELECT t0.id +FROM orders AS t0 +WHERE (t0.id <= 95 OR t0.customer_id BETWEEN 55 AND 369) +ORDER BY t0.id DESC;" +373,6320,361,500,"SELECT customers.id, COUNT(customers.region_id) +FROM customers +GROUP BY customers.id;" +374,36830,5349,0,"SELECT orders.id AS c9907, COUNT(*) AS c8627 +FROM departments CROSS JOIN orders +WHERE ((orders.id >= 79 OR orders.customer_id IN (63, 185, 226, 480)) AND departments.id IS NULL) +GROUP BY orders.id +ORDER BY orders.id ASC;" +375,1854,1405,4999,"SELECT t0.customer_id AS c3627, t0.id AS c1197 +FROM orders AS t0 +WHERE (t0.customer_id <= 56 OR t0.id > 1);" +376,18098,331,9,"SELECT t1.id, t0.id, t1.department_id +FROM regions AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id FULL JOIN departments AS t2 ON t0.id = t2.id +WHERE t0.id NOT IN (3);" +377,1643,469,341,"SELECT customers.id, customers.region_id, SUM(customers.region_id), SUM(customers.id) +FROM customers +WHERE ((customers.region_id != 9 OR customers.id = 20) AND (customers.region_id >= 3 AND customers.id > 5)) +GROUP BY customers.id, customers.region_id +ORDER BY customers.id DESC, customers.region_id ASC;" +378,6320,130,3,"SELECT markets.region, markets.id AS c5516 +FROM markets +GROUP BY markets.region, markets.id;" +379,1220,117,11,"SELECT employees.department_id, employees.id +FROM employees;" +380,2494,2285,4329,"SELECT orders.customer_id +FROM orders +WHERE (orders.id < 86 OR (orders.customer_id IN (21, 71) OR orders.customer_id NOT BETWEEN 371 AND 436)) +ORDER BY orders.customer_id ASC;" +381,18500,308,34,"SELECT t0.age AS c6869, t0.id +FROM users AS t0 CROSS JOIN markets AS t1 +WHERE t1.note != 'Old World';" +382,6056,163,3,"SELECT t0.id AS c3548, t0.note, SUM(t0.id) AS c5991, COUNT(*) +FROM markets AS t0 +WHERE ((t0.note IN ('Fast lane', 'Fast lane', 'Old World') OR t0.region = 'AMERICA') OR t0.id NOT IN (1, 2, 3)) +GROUP BY t0.id, t0.note;" +383,178400,10350,8500,"SELECT customers.id, customers.region_id +FROM regions CROSS JOIN customers CROSS JOIN users +WHERE regions.id < 2;" +384,433400,370,9,"SELECT markets.id, books.id, COUNT(markets.id), COUNT(markets.id) +FROM regions CROSS JOIN books CROSS JOIN markets +WHERE regions.id != 5 +GROUP BY markets.id, books.id;" +385,1366,133,0,"SELECT t0.id AS c9611, t0.age AS c4657 +FROM users AS t0 +WHERE ((t0.id >= 3 OR t0.id IS NULL) AND t0.age IS NULL);" +386,17220,2250,3,"SELECT markets.note, markets.region AS c394 +FROM markets LEFT JOIN orders ON markets.id = orders.id LEFT JOIN employees ON orders.id = employees.id;" +387,2922,304,0,"SELECT employees.id AS c1393 +FROM employees LEFT JOIN books ON employees.id = books.id +WHERE ((employees.id IS NULL AND books.id IS NOT NULL) AND (books.price = 55 AND employees.department_id = 12));" +388,14600,10525,25000,"SELECT orders.customer_id AS c3285 +FROM orders CROSS JOIN departments;" +389,13135,2093,2,"SELECT employees.id AS c6990 +FROM orders LEFT JOIN markets ON orders.id = markets.id JOIN employees ON orders.id = employees.id +WHERE markets.id < 3;" +390,22600,1888,5000,"SELECT markets.note AS c1438, customers.region_id, markets.id AS c7869 +FROM customers LEFT JOIN markets ON customers.id = markets.id CROSS JOIN regions;" +391,14760,2533,5,"SELECT orders.customer_id AS c6961, departments.id +FROM departments LEFT JOIN orders ON departments.id = orders.id +GROUP BY orders.customer_id, departments.id +ORDER BY departments.id DESC;" +392,88055,535,11,"SELECT employees.department_id AS c8803, SUM(users.id), SUM(employees.id) +FROM users CROSS JOIN employees LEFT JOIN markets ON employees.id = markets.id +WHERE ((markets.id >= 18 OR users.id = 4) OR employees.id >= 2) +GROUP BY employees.department_id +ORDER BY employees.department_id ASC;" +393,13620,498913,384231,"SELECT orders.customer_id, customers.id +FROM orders CROSS JOIN customers +WHERE (orders.id IS NOT NULL AND (orders.customer_id <= 190 AND customers.region_id IN (1, 5, 8, 9)));" +394,1732,136,8,"SELECT t0.id +FROM employees AS t0 +WHERE t0.department_id NOT IN (6, 11, 32, 94);" +395,14600,10322,15000,"SELECT orders.id, orders.customer_id, books.price AS c2061 +FROM orders CROSS JOIN books;" +396,1610,148,0,"SELECT markets.region, markets.id, markets.note +FROM markets +WHERE markets.region IS NULL;" +397,6320,392,500,"SELECT t0.id, t0.region_id, SUM(t0.region_id) +FROM customers AS t0 +GROUP BY t0.id, t0.region_id;" +398,4626,240,10,"SELECT regions.id, customers.id, customers.region_id +FROM regions JOIN customers ON regions.id = customers.id +WHERE (customers.id NOT BETWEEN 18 AND 150 OR regions.id IN (1, 9, 10, 63));" +399,4325,156,1,"SELECT departments.id AS c2818, COUNT(departments.id), COUNT(departments.id) +FROM departments +WHERE departments.id <= 1 +GROUP BY departments.id +ORDER BY departments.id DESC;" diff --git a/research/fuzz/cost_stats.py b/research/fuzz/cost_stats.py new file mode 100644 index 0000000..190a4d7 --- /dev/null +++ b/research/fuzz/cost_stats.py @@ -0,0 +1,128 @@ +""" +Collect (plan cost, actual execution time) pairs over random queries. + +Generates random queries with the shared query generator, runs each through our +compiler with --stats, and records the optimizer's chosen-plan cost alongside +the measured execution wall time (microseconds, taken inside the process so it +excludes interpreter/process startup). To damp timing noise each query is run +several times and the median execution time is kept. + +The resulting CSV (seed, plan_cost, exec_us, rows, query) feeds +research/cost-on-random.ipynb, which checks whether cost tracks real time. + +Usage: + python -m research.fuzz.cost_stats \\ + --cli build-release/bin/sql \\ + --data-dir test/static/executor/test_data \\ + --count 500 \\ + --out research/cost-stats.csv +""" +from __future__ import annotations + +import argparse +import csv +import random +import re +import statistics +import subprocess +import sys +from itertools import count +from pathlib import Path + +from research.query_generator import DIALECTS, QueryGenerator, load_schema, render_query + +_STATS_RE = re.compile(r"STATS plan_cost=(-?\d+) exec_us=(-?\d+) rows=(\d+)") + + +def _run_ours(cli: str, data_dir: str, query: str, jit: bool) -> subprocess.CompletedProcess: + cmd = [cli, "--data-dir", data_dir, "--stats"] + if jit: + cmd.append("--jit") + return subprocess.run( + cmd, + input=query, + capture_output=True, + text=True, + timeout=60, + ) + + +def _parse_stats(stderr: str) -> tuple[int, int, int] | None: + """Return (plan_cost, exec_us, rows) from the CLI's STATS line, or None.""" + m = _STATS_RE.search(stderr) + if m is None: + return None + return int(m.group(1)), int(m.group(2)), int(m.group(3)) + + +def main() -> None: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--cli", required=True, help="Path to our sql binary") + ap.add_argument("--data-dir", required=True, help="CSV table directory") + ap.add_argument("--out", required=True, help="Output CSV path") + ap.add_argument("--start-seed", type=int, default=0) + ap.add_argument("--count", type=int, default=500, help="How many valid samples to collect") + ap.add_argument("--repeats", type=int, default=5, + help="Runs per query; the median exec time is kept") + ap.add_argument("--jit", action="store_true", help="Run our CLI with the JIT executor") + args = ap.parse_args() + + schema = load_schema(Path(args.data_dir)) + pg = DIALECTS["pg"] + + out_path = Path(args.out) + out_path.parent.mkdir(parents=True, exist_ok=True) + + collected = 0 + attempted = 0 + skipped = 0 + with out_path.open("w", newline="") as f: + writer = csv.writer(f) + writer.writerow(["seed", "plan_cost", "exec_us", "rows", "query"]) + + for seed in count(args.start_seed): + if collected >= args.count: + break + attempted += 1 + rng = random.Random(seed) + query = QueryGenerator(schema, rng).generate() + sql = render_query(query, pg) + ";" + + cost: int | None = None + rows: int | None = None + samples: list[int] = [] + failed = False + for _ in range(args.repeats): + try: + proc = _run_ours(args.cli, args.data_dir, sql, args.jit) + except subprocess.TimeoutExpired: + failed = True + break + if proc.returncode != 0: + failed = True + break + parsed = _parse_stats(proc.stderr) + if parsed is None: + failed = True + break + cost, exec_us, rows = parsed + samples.append(exec_us) + + if failed or not samples: + skipped += 1 + continue + + exec_us = int(statistics.median(samples)) + writer.writerow([seed, cost, exec_us, rows, sql]) + f.flush() + collected += 1 + if collected % 25 == 0: + print(f"collected={collected} attempted={attempted} skipped={skipped}", + flush=True) + + print(f"done: collected={collected} attempted={attempted} skipped={skipped} -> {out_path}", + file=sys.stderr) + + +if __name__ == "__main__": + main() diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index f1d0e25..42e445b 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include #include #include @@ -46,6 +48,7 @@ struct Args { bool print_plan = false; bool print_ast = false; bool jit = false; + bool stats = false; std::string check_reachable_path; }; @@ -65,6 +68,8 @@ Args ParseArgs(int argc, char** argv) { args.print_ast = true; } else if (a == "--jit") { args.jit = true; + } else if (a == "--stats") { + args.stats = true; } else if (a == "--check-reachable") { if (i + 1 >= argc) { std::cerr << "--check-reachable requires a plan file path\n"; @@ -77,7 +82,7 @@ Args ParseArgs(int argc, char** argv) { } } if (args.data_dir.empty() && args.check_reachable_path.empty()) { - std::cerr << "usage: sql --data-dir [--print-plan] [--jit] < query.sql\n" + std::cerr << "usage: sql --data-dir [--print-plan] [--jit] [--stats] < query.sql\n" << " sql --check-reachable < query.sql\n"; std::exit(kUsage); } @@ -243,6 +248,7 @@ int main(int argc, char** argv) { } PhysicalPlanNode plan; + std::int64_t plan_cost = 0; try { PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} @@ -250,6 +256,7 @@ int main(int argc, char** argv) { Optimizer optimizer(parsed.op, MakeMainRules(), {}, LoadSchemaFromCsvDir(args.data_dir), std::move(required)); plan = optimizer.Optimize(); + plan_cost = optimizer.GetBestCost(); } catch (const std::exception& e) { std::cerr << "optimizer error: " << e.what() << "\n"; return kOptimizerError; @@ -262,7 +269,9 @@ int main(int argc, char** argv) { } Result result; + std::int64_t exec_us = 0; try { + const auto exec_started = std::chrono::steady_clock::now(); boost::asio::io_context ctx; boost::asio::any_io_executor exec = ctx.get_executor(); auto fut = args.jit @@ -272,6 +281,8 @@ int main(int argc, char** argv) { boost::asio::use_future); ctx.run(); result = fut.get(); + exec_us = std::chrono::duration_cast( + std::chrono::steady_clock::now() - exec_started).count(); } catch (const std::exception& e) { std::cerr << "runtime error: " << e.what() << "\n"; return kRuntimeError; @@ -283,5 +294,10 @@ int main(int argc, char** argv) { } PrintRelation(result.value(), parsed.required_order.has_value()); + + if (args.stats) { + std::cerr << "STATS plan_cost=" << plan_cost << " exec_us=" << exec_us + << " rows=" << result.value().tuples.size() << "\n"; + } return kOk; } From aa7cec6576c683b53bf7fbf2bb4359b934521fa1 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 2 Jun 2026 02:35:21 +0300 Subject: [PATCH 077/120] Fix --- .../sql/logic/optimizer/schema_catalog.hpp | 3 + research/cost-on-random.ipynb | 116 ++- research/cost-on-random.pdf | Bin 0 -> 126649 bytes research/cost-stats.csv | 800 +++++++++--------- .../sql/logic/optimizer/schema_catalog.cpp | 26 + src/stewkk/sql/main.cpp | 5 +- 6 files changed, 502 insertions(+), 448 deletions(-) create mode 100644 research/cost-on-random.pdf diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp index b7abe72..f3d1082 100644 --- a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -31,4 +31,7 @@ class SchemaCatalog { SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir); +std::unordered_map LoadTableSizesFromCsvDir( + const std::filesystem::path& dir); + } // namespace stewkk::sql diff --git a/research/cost-on-random.ipynb b/research/cost-on-random.ipynb index bba8ee6..65f1656 100644 --- a/research/cost-on-random.ipynb +++ b/research/cost-on-random.ipynb @@ -12,13 +12,37 @@ "shell.execute_reply": "2026-06-01T23:13:22.987712Z" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "collected=25 attempted=25 skipped=0\n", + "collected=50 attempted=50 skipped=0\n", + "collected=75 attempted=75 skipped=0\n", + "collected=100 attempted=100 skipped=0\n", + "collected=125 attempted=125 skipped=0\n", + "collected=150 attempted=150 skipped=0\n", + "collected=175 attempted=175 skipped=0\n", + "collected=200 attempted=200 skipped=0\n", + "collected=225 attempted=225 skipped=0\n", + "collected=250 attempted=250 skipped=0\n", + "collected=275 attempted=275 skipped=0\n", + "collected=300 attempted=300 skipped=0\n", + "collected=325 attempted=325 skipped=0\n", + "collected=350 attempted=350 skipped=0\n", + "collected=375 attempted=375 skipped=0\n", + "collected=400 attempted=400 skipped=0\n", + "done: collected=400 attempted=400 skipped=0 -> research/cost-stats.csv\n" + ] + } + ], "source": [ - "# !cd ~/c/iu9-sql-compiler/ && python -m research.fuzz.cost_stats \\\n", - "# --cli build-release/bin/sql \\\n", - "# --data-dir test/static/executor/test_data \\\n", - "# --count 400 --repeats 5 \\\n", - "# --out research/cost-stats.csv" + "!cd ~/c/iu9-sql-compiler/ && python -m research.fuzz.cost_stats \\\n", + " --cli build-release/bin/sql \\\n", + " --data-dir test/static/executor/test_data \\\n", + " --count 400 --repeats 5 \\\n", + " --out research/cost-stats.csv" ] }, { @@ -72,73 +96,73 @@ " \n", " count\n", " 400.000000\n", - " 400.000000\n", " 4.000000e+02\n", - " 400.000000\n", + " 4.000000e+02\n", + " 400.00000\n", " \n", " \n", " mean\n", " 199.500000\n", - " 27901.122500\n", - " 3.037728e+04\n", - " 3445.482500\n", + " 3.293322e+07\n", + " 3.063712e+04\n", + " 3446.78750\n", " \n", " \n", " std\n", " 115.614301\n", - " 87392.042181\n", - " 2.148684e+05\n", - " 24278.190578\n", + " 2.369086e+08\n", + " 2.124881e+05\n", + " 24278.01832\n", " \n", " \n", " min\n", " 0.000000\n", - " 1122.000000\n", - " 1.170000e+02\n", - " 0.000000\n", + " 3.660000e+02\n", + " 1.220000e+02\n", + " 0.00000\n", " \n", " \n", " 25%\n", " 99.750000\n", - " 2085.000000\n", - " 1.705000e+02\n", - " 2.000000\n", + " 2.987250e+03\n", + " 1.787500e+02\n", + " 2.00000\n", " \n", " \n", " 50%\n", " 199.500000\n", - " 9220.000000\n", - " 3.205000e+02\n", - " 5.000000\n", + " 4.735800e+04\n", + " 3.300000e+02\n", + " 5.00000\n", " \n", " \n", " 75%\n", " 299.250000\n", - " 17220.000000\n", - " 1.303000e+03\n", - " 29.250000\n", + " 6.809730e+05\n", + " 1.214250e+03\n", + " 30.00000\n", " \n", " \n", " max\n", " 399.000000\n", - " 687256.000000\n", - " 3.085577e+06\n", - " 384231.000000\n", + " 2.984422e+09\n", + " 2.956573e+06\n", + " 384231.00000\n", " \n", " \n", "\n", "" ], "text/plain": [ - " seed plan_cost exec_us rows\n", - "count 400.000000 400.000000 4.000000e+02 400.000000\n", - "mean 199.500000 27901.122500 3.037728e+04 3445.482500\n", - "std 115.614301 87392.042181 2.148684e+05 24278.190578\n", - "min 0.000000 1122.000000 1.170000e+02 0.000000\n", - "25% 99.750000 2085.000000 1.705000e+02 2.000000\n", - "50% 199.500000 9220.000000 3.205000e+02 5.000000\n", - "75% 299.250000 17220.000000 1.303000e+03 29.250000\n", - "max 399.000000 687256.000000 3.085577e+06 384231.000000" + " seed plan_cost exec_us rows\n", + "count 400.000000 4.000000e+02 4.000000e+02 400.00000\n", + "mean 199.500000 3.293322e+07 3.063712e+04 3446.78750\n", + "std 115.614301 2.369086e+08 2.124881e+05 24278.01832\n", + "min 0.000000 3.660000e+02 1.220000e+02 0.00000\n", + "25% 99.750000 2.987250e+03 1.787500e+02 2.00000\n", + "50% 199.500000 4.735800e+04 3.300000e+02 5.00000\n", + "75% 299.250000 6.809730e+05 1.214250e+03 30.00000\n", + "max 399.000000 2.984422e+09 2.956573e+06 384231.00000" ] }, "execution_count": 2, @@ -172,7 +196,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxMAAAJOCAYAAADMPVrNAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAin1JREFUeJzs3Xd8U/X+x/F30jbpXnRRKKWCTFmiQAXBgVTEjQqKAor6k1v0IqLIVUFcuBdXwXFVrqK4J4Iiy4WgCMpQLiIKQgdQunfy/f3BbS6hBdqQpoPX8/HoQ3LONzmffJrYvHO+5xyLMcYIAAAAAOrI2tAFAAAAAGiaCBMAAAAAPEKYAAAAAOARwgQAAAAAjxAmAAAAAHiEMAEAAADAI4QJAAAAAB4hTAAAAADwCGECAAAAgEcIE8AxZvny5bJYLFq+fHlDlwIfs1gsuvvuuz2+/9ixY9W2bVuv1eNrTqdTJ5xwgu6///6GLgXN3O23366+ffs2dBmATxAmgGbilVdekcVicf0EBgaqQ4cOmjBhgrKyshq6vAbx7LPP6pVXXmnoMpqUXbt26e6779a6desauhSve+ONN7Rjxw5NmDDBtYz3TeP2yy+/6Oyzz1ZoaKiio6N11VVXaffu3bW+/0cffaQTTzxRgYGBatOmjaZPn67Kyspq49asWaNzzz1XCQkJCg0NVffu3fX000/L4XBUG1tQUKDbbrtNKSkpstvtatWqlS655BIVFxe7xkycOFE//fSTPvroI8+eONCE+Dd0AQC865577lFKSopKS0v19ddfa/bs2fr000+1YcMGBQcHN3R5PvXss88qJiZGY8eObehSmoxdu3ZpxowZatu2rXr27Om27oUXXpDT6WyYwrzgkUce0ciRIxUREVFtHe+bxuevv/7SwIEDFRERoQceeECFhYV69NFHtX79eq1evVo2m+2w91+4cKEuvPBCnXbaaZo1a5bWr1+v++67T9nZ2Zo9e7Zr3Jo1a3TKKafo+OOP15QpUxQcHKyFCxfq73//u7Zu3aqnnnrKNTYvL0+DBg3SX3/9peuvv17t27fX7t279dVXX6msrMz1WklISNAFF1ygRx99VOeff379NAhoLAyAZuHll182ksz333/vtnzSpElGknn99deNMcYsW7bMSDLLli1rgCp9q2vXrmbQoEENXUadOBwOU1JSUi+PLclMnz79sGO+//57I8m8/PLL9VJDQ/nxxx+NJPPFF1+4La/t+8YXCgsLfbYtT1VUVJiysjKfbGv8+PEmKCjI/Pnnn65lixcvNpLMc889d8T7d+nSxfTo0cNUVFS4lt1xxx3GYrGYX375xbXsuuuuMzabzezdu9ft/gMHDjTh4eHVaoqMjDS///77Ebf/zjvvGIvFYrZu3XrEsUBTxjQnoJk744wzJEnbtm075JivvvpKl156qdq0aSO73a6kpCTdfPPNKikpcRs3duxYhYaGaufOnbrwwgsVGhqq2NhYTZ48ucbpADVZuHChBg0apLCwMIWHh+vkk0/W66+/7jbm7bffVu/evRUUFKSYmBhdeeWV2rlzp9uYzMxMXX311WrdurXsdrtatmypCy64QH/88YckqW3bttq4caNWrFjhmsJy2mmn1VhTRUWFoqOjdfXVV1dbl5+fr8DAQE2ePNm1bNasWeratauCg4MVFRWlk046qdpzqC2LxaIJEyZo3rx56tq1q+x2uxYtWiRJ2rlzp6655hrFx8fLbrera9eueumll9zuX15ermnTpql3796KiIhQSEiITj31VC1btqzOtSxfvlwnn3yyJOnqq6929a1qqtjBx0z88ccfslgsevTRR/XMM8/ouOOOU3BwsIYMGaIdO3bIGKN7771XrVu3VlBQkC644ALl5ORU2+7ChQt16qmnKiQkRGFhYRo2bJg2btxY5/oP54MPPpDNZtPAgQNrNb6m981rr73mel1GR0dr5MiR2rFjh9v96vpe2rp1q8455xyFhYVp1KhRkqQtW7Zo+PDhSkhIUGBgoFq3bq2RI0cqLy/Pdf/Kykrde++9ateunex2u9q2bat//OMfKisrc9tO27Ztde655+rrr79Wnz59FBgYqOOOO07//ve/j9iDA3+/Tz75pGtbmzZtqlUPj9a7776rc889V23atHEtGzx4sDp06KC33nrrsPfdtGmTNm3apOuvv17+/v+bhPG3v/1Nxhi98847rmVV7/HIyEi3x2jZsqWCgoJct3Nzc/Xyyy/r+uuvV0pKisrLy6v1+0CDBw+WJH344Ye1er5AU8U0J6CZ27p1qySpRYsWhxzz9ttvq7i4WOPHj1eLFi20evVqzZo1S3/99Zfefvttt7EOh0NpaWnq27evHn30UX3xxRd67LHH1K5dO40fP/6wtbzyyiu65ppr1LVrV02dOlWRkZFau3atFi1apCuuuMI15uqrr9bJJ5+smTNnKisrS0899ZS++eYbrV271vUHf/jw4dq4caNuvPFGtW3bVtnZ2Vq8eLG2b9+utm3b6sknn9SNN96o0NBQ3XHHHZKk+Pj4GusKCAjQRRddpPfee0/PPfec2/SJDz74QGVlZRo5cqSk/VN9brrpJl1yySX6+9//rtLSUv38889atWqV6znU1dKlS/XWW29pwoQJiomJUdu2bZWVlaV+/fq5wkZsbKwWLlyocePGKT8/XxMnTpS0/4PQiy++qMsvv1zXXXedCgoK9K9//UtpaWlavXp1talKh9O5c2fdc889mjZtmq6//nqdeuqpkqRTTjnlsPebN2+eysvLdeONNyonJ0cPP/ywLrvsMp1xxhlavny5pkyZot9++02zZs3S5MmT3QLRq6++qjFjxigtLU0PPfSQiouLNXv2bA0YMEBr16712gHf3377rU444QQFBATUavzB75v7779fd911ly677DJde+212r17t2bNmqWBAwe6vS7r8l6qrKxUWlqaBgwYoEcffVTBwcEqLy9XWlqaysrKdOONNyohIUE7d+7UJ598otzcXNcUrWuvvVZz587VJZdcoltuuUWrVq3SzJkz9csvv+j99993285vv/2mSy65ROPGjdOYMWP00ksvaezYserdu7e6du16xF68/PLLKi0t1fXXXy+73a7o6OhDjs3Ly1NFRcURHzMwMFChoaGHXL9z505lZ2frpJNOqrauT58++vTTTw/7+GvXrpWkavdPTExU69atXesl6bTTTtObb76p//u//9OkSZNc05zee+89PfLII65xX3/9tUpLS9W+fXtdcskl+uCDD+R0OpWamqpnnnmm2nstIiJC7dq10zfffKObb775sPUCTVpD7xoB4B1V0zW++OILs3v3brNjxw4zf/5806JFCxMUFGT++usvY0zN05yKi4urPd7MmTONxWJxm2IwZswYI8ncc889bmN79eplevfufdj6cnNzTVhYmOnbt2+1aTxOp9MYY0x5ebmJi4szJ5xwgtuYTz75xEgy06ZNM8YYs2/fPiPJPPLII4fdZl2mOX322WdGkvn444/dlp9zzjnmuOOOc92+4IILTNeuXWv1mLUhyVitVrNx40a35ePGjTMtW7Y0e/bscVs+cuRIExER4fqdVVZWVpt2sm/fPhMfH2+uueaaats6mmlOY8aMMcnJya7b27ZtM5JMbGysyc3NdS2fOnWqkVRtisnll19ubDabKS0tNcYYU1BQYCIjI811113ntp3MzEwTERFRbfnRaN26tRk+fHi15bV53/zxxx/Gz8/P3H///W73Xb9+vfH393dbXtf30u233+42du3atUaSefvttw/5XNatW2ckmWuvvdZt+eTJk40ks3TpUtey5ORkI8l8+eWXrmXZ2dnGbrebW2655ZDbMOZ/v9/w8HCTnZ192LFVBg0aZCQd8WfMmDGHfZyq1+G///3vautuvfVWI8n1OqrJI488YiSZ7du3V1t38sknm379+rluV1ZWmgkTJpiAgABXfX5+fmb27Nlu93v88ceNJNOiRQvTp08fM2/ePPPss8+a+Ph4ExUVZXbt2lVtW0OGDDGdO3c+7HMFmjqmOQHNzODBgxUbG6ukpCSNHDlSoaGhev/999WqVatD3ufAXflFRUXas2ePTjnlFBlj3L7Bq3LDDTe43T711FP1+++/H7auxYsXq6CgQLfffrsCAwPd1lksFknSDz/8oOzsbP3tb39zGzNs2DB16tRJCxYscNVrs9m0fPly7du377Dbra0zzjhDMTExevPNN13L9u3bp8WLF2vEiBGuZZGRkfrrr7/0/fffe2W7kjRo0CB16dLFddsYo3fffVfnnXeejDHas2eP6yctLU15eXn68ccfJUl+fn6uPSlOp1M5OTmqrKzUSSed5BpT3y699FK3g5qrTol55ZVXuk0x6du3r8rLy11T1hYvXqzc3Fxdfvnlbs/Rz89Pffv29Wiq1qHs3btXUVFRh1x/uPfNe++9J6fTqcsuu8ytzoSEBB1//PFuddb1vXTw3ryqPn722WduZwc6UNW38pMmTXJbfsstt0iS631SpUuXLq69TJIUGxurjh07HvE9W2X48OGKjY2t1djHHntMixcvPuLPbbfddtjHqZoWZrfbq62r+n/DwVPH6nL/A+/r5+endu3aKS0tTXPnztWbb76p8847TzfeeKM++OAD17jCwkJJ+/9/tWTJEl1xxRUaP368PvjgA+3bt0/PPPNMtW1FRUVpz549h32uQFPHNCegmXnmmWfUoUMH+fv7Kz4+Xh07dpTVevjvDbZv365p06bpo48+qvbh/MB52tL+P8QHf7CIioo64of6qmkjJ5xwwiHH/Pnnn5Kkjh07VlvXqVMnff3115L2f0B46KGHdMsttyg+Pl79+vXTueeeq9GjRyshIeGwdRyKv7+/hg8frtdff11lZWWy2+167733VFFR4RYmpkyZoi+++EJ9+vRR+/btNWTIEF1xxRXq37+/R9uVpJSUFLfbu3fvVm5urp5//nk9//zzNd4nOzvb9e+5c+fqscce06+//uo2xeTgx60vB85pl/73gTgpKanG5VWvlS1btkj63/EJBwsPD/dqncaYQ6473Ptmy5YtMsbo+OOPr/G+B06dqst7yd/fX61bt3ZblpKSokmTJunxxx/XvHnzdOqpp+r888/XlVde6erfn3/+KavVqvbt27vdNyEhQZGRka73UZWDfz9S7d6zB9ZUW71796712MOpCmU1HZNQWlrqNsaT+x943wcffFBPPfWUtmzZ4pp6ddlll+n0009Xenq6zj33XPn7+7vuc95557lN0erXr59SUlL07bffVtuWMcb1ZQnQXBEmgGamT58+Nc4zPhSHw6GzzjpLOTk5mjJlijp16qSQkBDt3LlTY8eOrXYqUD8/P2+X7JGJEyfqvPPO0wcffKDPPvtMd911l2bOnKmlS5eqV69eHj3myJEj9dxzz7lOKfnWW2+pU6dO6tGjh2tM586dtXnzZn3yySdatGiR3n33XT377LOaNm2aZsyY4dF2D/5QVNXzK6+8UmPGjKnxPt27d5e0/6DgsWPH6sILL9Stt96quLg4+fn5aebMma4AV98O9Zo41PKqD/VVz/PVV1+tMQQeuFfjaLVo0eKwH54P975xOp2yWCxauHBhjc+p6oNlXd9Ldru9xqD/2GOPaezYsfrwww/1+eef66abbtLMmTP13XffuYWP2n5IPdLv4UgO96H9YDk5OSovL6/VY9Z0it4qLVu2lCRlZGRUW5eRkaHo6Oga9zrUdP+DQ21GRob69Onjuv3ss8/qjDPOqHYMx/nnn69Jkybpjz/+UPv27ZWYmCip5mOv4uLianx97du3TzExMYesE2gOCBPAMW79+vX6z3/+o7lz52r06NGu5YsXL/bqdtq1aydJ2rBhQ7VvVKskJydLkjZv3lzt2+rNmze71h/4mLfccotuueUWbdmyRT179tRjjz2m1157TVLtP2xVGThwoFq2bKk333xTAwYM0NKlS10Hbx8oJCREI0aM0IgRI1ReXq6LL75Y999/v6ZOnVptCpcnYmNjFRYWJofD4TojzKG88847Ou644/Tee++5Pd/p06d7tG1ffota9ZqIi4s74vM8Wp06dTrsGc0Op127djLGKCUlRR06dDjkOG++l7p166Zu3brpzjvv1Lfffqv+/ftrzpw5uu+++5ScnCyn06ktW7aoc+fOrvtkZWUpNze32vvEly6++GKtWLHiiOPGjBlz2AtKtmrVSrGxsfrhhx+qravNiQWq1v/www9uwWHXrl2ua0RUycrKqvFsdFV7+aoucle11+XgM8tVPW6nTp2qLd+2bZvblxFAc8QxE8AxrupbywO/pTTGuF2oyRuGDBmisLAwzZw50zVN4cDtSfvPvBIXF6c5c+a4TU9YuHChfvnlFw0bNkySVFxcXO0x2rVrp7CwMLf7hYSEKDc3t9Y1Wq1WXXLJJfr444/16quvqrKy0m2Kk7R/7v2BbDabunTpImOM68NHcXGxfv31V4/nSvv5+Wn48OF69913tWHDhmrrD7wCcE2/v1WrVmnlypUebTskJESS6tQ3T6WlpSk8PFwPPPBAjWcAqsuVjo8kNTVVGzZsOOypPA/l4osvlp+fn2bMmFHt23xjjOs14Y33Un5+frUrNHfr1k1Wq9VV+znnnCNJevLJJ93GPf7445Lkep80BG8dMyHtP1bjk08+cTv97pIlS/Sf//xHl156qWtZRUWFfv31V7e9GF27dlWnTp30/PPPuwWF2bNny2Kx6JJLLnEt69ChgxYvXuz23nY4HHrrrbcUFhbmCr0dO3ZUjx499OGHH7q9tz///HPt2LFDZ511llv9eXl52rp16xHPhgY0deyZAI5xnTp1Urt27TR58mTt3LlT4eHhevfdd712YHOV8PBwPfHEE7r22mt18skn64orrlBUVJR++uknFRcXa+7cuQoICNBDDz2kq6++WoMGDdLll1/uOjVs27ZtXadX/M9//qMzzzxTl112mbp06SJ/f3+9//77ysrKcp3CVdr/TeLs2bN13333qX379oqLizvk/PwqI0aM0KxZszR9+nR169bN7ZtfaX8oSkhIUP/+/RUfH69ffvlF//znPzVs2DCFhYVJ2v/N6emnn67p06fr7rvv9qhfDz74oJYtW6a+ffvquuuuU5cuXZSTk6Mff/xRX3zxhet6Deeee67ee+89XXTRRRo2bJi2bdumOXPmqEuXLq4DRuuiXbt2ioyM1Jw5cxQWFqaQkBD17du3Xo6/CA8P1+zZs3XVVVfpxBNP1MiRIxUbG6vt27drwYIF6t+/v/75z396ZVsXXHCB7r33Xq1YsUJDhgyp033btWun++67T1OnTtUff/yhCy+8UGFhYdq2bZvef/99XX/99Zo8ebJX3ktLly7VhAkTdOmll6pDhw6qrKzUq6++6gqYktSjRw+NGTNGzz//vHJzczVo0CCtXr1ac+fO1YUXXqjTTz+9Ts/Pm7x1zIQk/eMf/9Dbb7+t008/XX//+99VWFioRx55RN26dXO7JszOnTvVuXPnans7HnnkEZ1//vkaMmSIRo4cqQ0bNuif//ynrr32Wrf39e23364rr7xSffv21fXXX6+goCC98cYbWrNmje677z63Y2KeeOIJnXXWWRowYID+7//+T3l5eXr88cfVoUOHagfTf/HFFzLG6IILLvBaT4BGybcnjwJQXw51Jd+D1XRq2E2bNpnBgweb0NBQExMTY6677jrz008/VTtF6JgxY0xISEi1x5w+fbqp7f9OPvroI3PKKaeYoKAgEx4ebvr06WPeeOMNtzFvvvmm6dWrl7Hb7SY6OtqMGjXKdWpbY4zZs2ePSU9PN506dTIhISEmIiLC9O3b17z11ltuj5OZmWmGDRtmwsLCjKRanSbW6XSapKQkI8ncd9991dY/99xzZuDAgaZFixbGbrebdu3amVtvvdXk5eW5xlT1+EinYTVm/+la09PTa1yXlZVl0tPTTVJSkgkICDAJCQnmzDPPNM8//7xbvQ888IBJTk42drvd9OrVy3zyySfVTuNata3a1PThhx+aLl26GH9/f7fXwKFODXvwKXqrnv/Bpzc91Gt02bJlJi0tzURERJjAwEDTrl07M3bsWPPDDz8csda66N69uxk3blytaqrJu+++awYMGGBCQkJMSEiI6dSpk0lPTzebN292jTna99Lvv/9urrnmGtOuXTsTGBhooqOjzemnn17tyt0VFRVmxowZJiUlxQQEBJikpCQzderUaqdLTU5ONsOGDau2nUGDBh3x/XCo368vbdiwwQwZMsQEBwebyMhIM2rUKJOZmek2pqrOmk43+/7775uePXsau91uWrdube68805TXl5ebdyiRYvMoEGDTExMjLHZbKZbt25mzpw5Nda0ePFi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tWvXTqNHj3a9ftLT01VWVqYvv/xS69ev10MPPaTQ0NAaH7tTp0569NFH9be//U3bt2/XX3/9pRtuuEEPPfSQunTpUuN9du7cqYEDB8put2vp0qVas2aNrrnmGlVWVkra//p87LHH9Oijj+rnn39WWlqazj//fNfr5+mnn9ZHH32kt956S5s3b9Zrr72m5ORkSdL3338vSXr55ZeVkZHhuu1LXLQOAAB4zBSXalvbIQ2y7ZQ/PpclJOiI4yIiImSz2RQcHKyEhITDjq2oqNDs2bPVrl07SdIll1yiV199VVlZWQoNDVWXLl10+umna9myZRoxYoS2b9+ul19+Wdu3b1diYqIkafLkyVq0aJFefvllPfDAAzVu58UXX1RJSckh6wgICDjkuszMTNlsNkVGRrotj4+PV2Zm5iHvUzXmUPfJzMxUXFyc23p/f39FR0e7jUlJSXEbU3WfzMxMRUVFVdv2lClTlJiY6AoyVcFn6tSpeu655xQSEqInnnhCf/31lzIyMmqsf8+ePbr33nvdplwdyjnnnKP/+7//kyRNmzZNs2fP1sknn6xLL73UVU9qaqqysrKUkJCg7du3a/jw4erWrZsk6bjjjjvs4//tb3/Tp59+qiuvvFI2m00nn3yybrzxxkOOf+aZZxQREaH58+e7fq8dOnRwrX/00Uc1ZcoUjRw5UpL00EMPadmyZXryySf1zDPPaPv27Tr++OM1YMAAWSwWtWnTRv369ZMkxcbGSpIiIyOP+NquL4QJAACA/woODnYFCWn/h+22bdu6fVMdHx+v7OxsSdL69evlcDjcPhxK+799P9xVwlu1auXlyhunBx98UPPnz9fy5ctdeyICAgL03nvvady4cYqOjpafn58GDx6soUOH1ri3KT8/X8OGDVOXLl109913H3Gb3bt3d/27KjxVBYUDl2VnZyshIUE33XSTxo8fr88//1yDBw/W8OHD3R6jJi+99JI6dOggq9WqjRs3Hva4m3Xr1unUU0+tMSDm5+dr165d6t+/v9vy/v3766effpIkjR07VmeddZY6duyos88+W8OGDdMZZ5xxhC74DmECzVJhWaUy80oUGxqoiOBDf7sDADg6luBApfzxeYNt29sO/sBnsVhqXOZ0OiVJhYWF8vPz05o1a+Tn5+c27lBTZaT905y++uqrQ65PTk7Wxo0ba1yXkJCg8vJy5ebmuu2dqPqm/VD3qRrTsmVLt/v07NnTNaYqJFWprKxUTk6O6/4JCQnVzhpVdZ+Dt/3oo4/qwQcf1BdffFHtw3nv3r21bt065eXlqby8XLGxserbt6/bFCtJKigo0Nlnn62wsDC9//77h91jU+XAMVUf8mtaVvU7vPbaa5WWlqYFCxbo888/18yZM/XYY48ddm/DTz/9pKKiIlmtVmVkZLj19GBBQUfee3Y4J554orZt26aFCxfqiy++0IgRI3TGGWfo3XffParH9RbCBJqd/2QVaNGGTDmcRhaLNKhDrHq1qb7bFQBw9CwWS62mGjU0m80mh8Ph9cft1auXHA6HsrOzdeqpp9b6fkczzal3794KCAjQkiVLNHz4cEnS5s2btX37dqWmptZ4n5SUFCUkJGjJkiWu8JCfn69Vq1Zp/PjxkqTU1FTl5uZqzZo16t27tyRp6dKlcjqd6tu3r2vMHXfcoYqKCleNX3zxhTp27Og2xenhhx/W/fffr88++6xaQDhQ1Wl5t2zZoh9++EH33nuva11+fr7S0tJkt9v10UcfuR1j4W1JSUm64YYbdMMNN2jq1Kl64YUXDhkmcnJyNHbsWN1xxx3KyMjQqFGj9OOPPx4yNHTv3l1z585161mV8PBwJSYm6ptvvtGgQYNcy7/55hv16dPHbdyIESM0YsQIDR8+XEOHDlVOTo5atGihgICAenlt1xZhAs2KMUYrNu+Ww2n+e1v6dutedU2MkM2f8w0AwLGqbdu2WrVqlf744w+Fhoa6DgY+Wh06dNCoUaM0evRoPfbYY+rVq5d2796tJUuWqHv37ho2bFiN9zuaaU4REREaN26cJk2apOjoaIWHh+vGG29Uamqqay69tP/YhJkzZ+qiiy6SxWLRxIkTdd999+n4449XSkqK7rrrLiUmJurCCy+UJHXu3Flnn322rrvuOs2ZM0cVFRWaMGGCRo4c6Toe5IorrtCMGTM0btw4TZkyRevXr9c///lPPf74467tPvTQQ5o2bZpef/11tW3b1nW8RdXB5ZL09ttvKzY2Vm3atNH69ev197//XRdeeKGGDNl//E3VKWiLi4v12muvKT8/X/n5+ZL2Hydw8F6gozFx4kQNHTpUHTp00L59+7Rs2TJ17tz5kONvuOEGJSUl6c4771RZWZl69eqlyZMn65lnnqlx/IQJEzRr1iyNHDlSU6dOVUREhL777jv16dNHHTt21K233qrp06erXbt26tmzp15++WWtW7dO8+bNkyQ9/vjjatmypXr16iWr1aq3335bCQkJrr1Sbdu21ZIlS9S/f3/Z7fYaj1upT4QJNCtOIxWVV7otK690qqTCQZgAgGPY5MmTNWbMGHXp0kUlJSXatm2b1x775Zdf1n333adbbrlFO3fuVExMjPr166dzzz3Xa9s42BNPPCGr1arhw4errKxMaWlpevbZZ93GbN682e0ib7fddpuKiop0/fXXKzc3VwMGDNCiRYvcvvGfN2+eJkyYoDPPPNP1+E8//bRrfUREhD7//HOlp6erd+/eiomJ0R133OF2YPTs2bNVXl6uSy65xK2e6dOnu455yMjI0KRJk1zTrkaPHq277rrLNfbHH390nUGqffv2bo+zbds2tW3b1rPG1cDhcCg9PV1//fWXwsPDdfbZZ+uJJ56ocey///1vffrpp1q7dq38/f3l7++v1157TQMGDNC5556roUOHVrtPixYttHTpUt16660aNGiQ/Pz81LNnT9dxElUX47vllluUnZ2tLl266KOPPtLxxx8vSQoLC9PDDz+sLVu2yM/PTyeffLI+/PBDWa37P9c89thjmjRpkl544QW1atVKf/zxh9d6UxsWU9vzqh3D8vPzFRER4Tolma85nU5lZ2crLi7O9cLBoX24bqd+313kuh0fHqgr+rap9f3pt+/Rc9+i377VnPpdWlqqbdu2KSUlpV6nnBwNY4wqKyvl7+/fJC9G19TQb9/zpOeHeu964zMueybQ7KR1TdDXW/ZoZ26J4sPt6t8+pqFLAgAAaJYIE2h2AgP8NLhL/JEHAgAA4Kg07f2tAAAAABoMYQIAAACARwgTAAAAADxCmAAAAHVSdeVgAE1Dfb5nG/QA7NmzZ2v27Nmu8+F27dpV06ZNc52jt7S0VLfccovmz5/vdg7l+Pj/HVy7fft2jR8/XsuWLVNoaKjGjBmjmTNnyt//f09t+fLlmjRpkjZu3Oi6yMjYsWN9+VQBAGjybDabrFardu3apdjYWNlstkZ3OlBOVepb9Nv36tJzY4zKy8u1e/duWa1W2Ww2r9fToGGidevWevDBB3X88cfLGKO5c+fqggsu0Nq1a9W1a1fdfPPNWrBggd5++21FRERowoQJuvjii/XNN99I2n+RkWHDhikhIUHf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Emp8jM8//1ybNm3SF198ofj4ePXs2VP33nuvpkyZorvvvls2m01z5sxRSkqKHnvsMUlS586d9fXXX+uJJ55QWlpa/T1BAAAAoBlr0DBxsLy8PElSdHS02/J58+bptddeU0JCgs477zzdddddCg4OliStXLlS3bp1U3x8vGt8Wlqaxo8fr40bN6pXr15auXKlBg8e7PaYaWlpmjhxYo11lJWVqayszHU7Pz9fkuR0OuV0Oo/6edaV0+mUMaZBtn0sot++R899i377Fv32LfrtW/Tb97zZc288RqMJE06nUxMnTlT//v11wgknuJZfccUVSk5OVmJion7++WdNmTJFmzdv1nvvvSdJyszMdAsSkly3MzMzDzsmPz9fJSUlCgoKcls3c+ZMzZgxo1qNu3fvVmlp6dE/2TpyOp3Ky8uTMUZWK8fM1zf67Xv03Lfot2/Rb9+i375Fv33Pmz0vKCg46noaTZhIT0/Xhg0b9PXXX7stv/76613/7tatm1q2bKkzzzxTW7duVbt27eqllqlTp2rSpEmu2/n5+UpKSlJsbKzCw8PrZZuH43Q6ZbFYFBsbyxvVB+i379Fz36LfvkW/fYt++xb99j1v9jwwMPCo62kUYWLChAn65JNP9OWXX6p169aHHdu3b19J0m+//aZ27dopISFBq1evdhuTlZUlSa7jLBISElzLDhwTHh5eba+EJNntdtnt9mrLrVZrg71RLBZLg27/WEO/fY+e+xb99i367Vv027fot+95q+fe+J016G/dGKMJEybo/fff19KlS5WSknLE+6xbt06S1LJlS0lSamqq1q9fr+zsbNeYxYsXKzw8XF26dHGNWbJkidvjLF68WKmpqV56JgAAAMCxp0HDRHp6ul577TW9/vrrCgsLU2ZmpjIzM1VSUiJJ2rp1q+69916tWbNGf/zxhz766CONHj1aAwcOVPfu3SVJQ4YMUZcuXXTVVVfpp59+0meffaY777xT6enprr0LN9xwg37//Xfddttt+vXXX/Xss8/qrbfe0s0339xgzx0AAABo6ho0TMyePVt5eXk67bTT1LJlS9fPm2++KUmy2Wz64osvNGTIEHXq1Em33HKLhg8fro8//tj1GH5+fvrkk0/k5+en1NRUXXnllRo9erTuuece15iUlBQtWLBAixcvVo8ePfTYY4/pxRdf5LSwAAAAwFFo0GMm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jz32mF588UWlpaUd3ZMHAAAAjmF1PpvTxIkT1a1bN40bN04Oh0ODBg3St99+q+DgYH3yySc67bTTav1YtbnERWBgoJ555hk988wzhxyTnJxcbRrTwU477TStXbu21rUBAAAAOLw675l455131KNHD0nSxx9/rG3btunXX3/VzTffrDvuuMPrBQIAAABonOocJvbs2eM6S9Knn36qSy+9VB06dNA111yj9evXe71AAAAAAI1TncNEfHy8Nm3aJIfDoUWLFumss86SJBUXF8vPz8/rBQIAAABonOp8zMTVV1+tyy67TC1btpTFYtHgwYMlSatWrVKnTp28XiAAAACAxqnOYeLuu+/WCSecoB07dujSSy91nX7Vz89Pt99+u9cLBAAAANA41TlMSNIll1xSbdmYMWOOuhgAAAAATYdHYeL777/XsmXLlJ2dLafT6bbu8ccf90phAAAAABq3OoeJBx54QHfeeac6duyo+Ph4WSwW17oD/w0AAACgeatzmHjqqaf00ksvaezYsfVQDgAAAICmos6nhrVarerfv3991AIAAACgCalzmLj55pv1zDPP1EctAAAAAJqQOk9zmjx5soYNG6Z27dqpS5cuCggIcFv/3nvvea04AAAAAI1XncPETTfdpGXLlun0009XixYtOOgaAAAAOEbVOUzMnTtX7777roYNG1Yf9QAAAABoIup8zER0dLTatWtXH7UAAAAAaELqHCbuvvtuTZ8+XcXFxfVRDwAAAIAmos7TnJ5++mlt3bpV8fHxatu2bbUDsH/88UevFQcAAACg8apzmLjwwgvroQwAAAAATU2dw8T06dProw4AAAAATUytjpkwxtR3HQAAAACamFqFia5du2r+/PkqLy8/7LgtW7Zo/PjxevDBB71SHAAAAIDGq1bTnGbNmqUpU6bob3/7m8466yyddNJJSkxMVGBgoPbt26dNmzbp66+/1saNGzVhwgSNHz++vusGAAAA0MBqFSbOPPNM/fDDD/r666/15ptvat68efrzzz9VUlKimJgY9erVS6NHj9aoUaMUFRVV3zUDAAAAaATqdAD2gAEDNGDAgPqqBQAAAEATUueL1gEAAACARJgAAAAA4CHCBAAAAACPECYAAAAAeIQwAQAAAMAjHoWJrVu36s4779Tll1+u7OxsSdLChQu1ceNGrxYHAAAAoPGqc5hYsWKFunXrplWrVum9995TYWGhJOmnn37S9OnTvV4gAAAAgMapzmHi9ttv13333afFixfLZrO5lp9xxhn67rvvvFocAAAAgMarzmFi/fr1uuiii6otj4uL0549e7xSFAAAAIDGr85hIjIyUhkZGdWWr127Vq1atfJKUQAAAAAavzqHiZEjR2rKlCnKzMyUxWKR0+nUN998o8mTJ2v06NH1USMAAACARqjOYeKBBx5Qp06dlJSUpMLCQnXp0kUDBw7UKaecojvvvLM+agQAAADQCPnX9Q42m00vvPCC7rrrLm3YsEGFhYXq1auXjj/++PqoDwAAAEAjVecwUaVNmzZq06aNN2sBAAAA0ITUOUwYY/TOO+9o2bJlys7OltPpdFv/3nvvea04AAAAAI1XncPExIkT9dxzz+n0009XfHy8LBZLfdQFeKygtEJrt+equNyhTglhahsT0tAlAQAANEt1DhOvvvqq3nvvPZ1zzjn1UQ9wVMornXrz+x0qKK2UJP2Ska9zu7fU8fFhDVwZAABA81PnszlFRETouOOOq49agKP2+55CV5Co8vNfeQ1UDQAAQPNW5zBx9913a8aMGSopKamPeoCj4m+t/pL292MqHgAAQH2o8zSnyy67TG+88Ybi4uLUtm1bBQQEuK3/8ccfvVYcUFcpMSGKDbNrd0GZJMnPatGJbaIauCoAAIDmqc5hYsyYMVqzZo2uvPJKDsBGo+Nnteiyk5K0ObNAReWV6hAfpugQW0OXBQAA0CzVOUwsWLBAn332mQYMGFAf9QBHzeZvVbfWEQ1dBgAAQLNX5zCRlJSk8PDw+qgF8LodOcXauCtPAX5W9UyKVItQe0OXBAAA0GzU+QDsxx57TLfddpv++OOPeigH8J4dOcV698e/9EtGgX7+K0/zv9+hgtKKhi4LAACg2ajznokrr7xSxcXFateunYKDg6sdgJ2Tk+O14oCjsXFXnoz53+3ySqf+k1Wo3skckA0AAOANdQ4TTz75ZD2UAXhfgF/1HW+2GpYBAADAMx6dzQloCnomRerXzAKVVzolSZHBAeqQENrAVQEAADQftQoT+fn5roOu8/PzDzuWg7PRWLQItWt0arL+k1Uom59VHRJCZff3a+iyAAAAmo1ahYmoqChlZGQoLi5OkZGRNV5bwhgji8Uih8Ph9SIBT4UFBnCMBAAAQD2pVZhYunSpoqOjJUnLli2r14IAAAAANA21ChODBg1y/TslJUVJSUnV9k4YY7Rjxw7vVgcAAACg0arzqW1SUlK0e/fuastzcnKUkpLilaIAAAAANH51DhNVx0YcrLCwUIGBgV4pCgAAAEDjV+tTw06aNEmSZLFYdNdddyk4ONi1zuFwaNWqVerZs6fXCwQAAADQONU6TKxdu1bS/j0T69evl81mc62z2Wzq0aOHJk+e7P0KAQAAADRKtQ4TVWdxuvrqq/XUU09xPQkAAADgGFfnK2C//PLL9VEHAAAAgCamzgdgAwAAAIBEmAAAAADgoQYNE19++aXOO+88JSYmymKx6IMPPnBbP3bsWFksFrefs88+221MTk6ORo0apfDwcEVGRmrcuHEqLCx0G/Pzzz/r1FNPVWBgoJKSkvTwww/X91MDAAAAmr06HzPhTUVFRerRo4euueYaXXzxxTWOOfvss92O07Db7W7rR40apYyMDC1evFgVFRW6+uqrdf311+v111+XJOXn52vIkCEaPHiw5syZo/Xr1+uaa65RZGSkrr/++vp7cmgwmXmlWvprtvYWlqlNi2AN7hyvEHuDvtQBAACaJY8+YW3ZskXLli1Tdna2nE6n27pp06bV+nGGDh2qoUOHHnaM3W5XQkJCjet++eUXLVq0SN9//71OOukkSdKsWbN0zjnn6NFHH1ViYqLmzZun8vJyvfTSS7LZbOratavWrVunxx9/nDDRDDmcRh//tEuFZZWSpN93F+kLZemCnq0auDIAAIDmp85h4oUXXtD48eMVExOjhIQEt6thWyyWOoWJ2li+fLni4uIUFRWlM844Q/fdd59atGghSVq5cqUiIyNdQUKSBg8eLKvVqlWrVumiiy7SypUrNXDgQLfrYqSlpemhhx7Svn37FBUV5dV60bD2Fpa5gkSV7XuLG6gaAACA5q3OYeK+++7T/fffrylTptRHPW7OPvtsXXzxxUpJSdHWrVv1j3/8Q0OHDtXKlSvl5+enzMxMxcXFud3H399f0dHRyszMlCRlZmYqJSXFbUx8fLxrXU1hoqysTGVlZa7b+fn5kiSn01ltT4wvOJ1OGWMaZNtNTajdTwFWqcJhXMtiQu116h399j167lv027fot2/Rb9+i377nzZ574zHqHCb27dunSy+99Kg3XBsjR450/btbt27q3r272rVrp+XLl+vMM8+st+3OnDlTM2bMqLZ89+7dKi0trbftHorT6VReXp6MMbJaOQHXkfRp6af1f+Wr0uFUYICfesYEKTs7u9b3p9++R899i377Fv32LfrtW/Tb97zZ84KCgqOup85h4tJLL9Xnn3+uG2644ag3XlfHHXecYmJi9Ntvv+nMM89UQkJCtQ+JlZWVysnJcR1nkZCQoKysLLcxVbcPdSzG1KlTNWnSJNft/Px8JSUlKTY2tkGu/O10OmWxWBQbG8sbtRbi4qRu7R3KL6lQdIhdflbLke90APrte/Tct+i3b9Fv36LfvkW/fc+bPQ8MDDzqeuocJtq3b6+77rpL3333nbp166aAgAC39TfddNNRF3Uof/31l/bu3auWLVtKklJTU5Wbm6s1a9aod+/ekqSlS5fK6XSqb9++rjF33HGHKioqXLUuXrxYHTt2POTxEna7vdpZoyTJarU22BvFYrE06PabmiCbVUG2gCMPPAT67Xv03Lfot2/Rb9+i375Fv33PWz33xu+szmHi+eefV2hoqFasWKEVK1a4rbNYLHUKE4WFhfrtt99ct7dt26Z169YpOjpa0dHRmjFjhoYPH66EhARt3bpVt912m9q3b6+0tDRJUufOnXX22Wfruuuu05w5c1RRUaEJEyZo5MiRSkxMlCRdccUVmjFjhsaNG6cpU6Zow4YNeuqpp/TEE0/U9akDAAAAOECdw8S2bdu8tvEffvhBp59+uut21dSiMWPGaPbs2fr55581d+5c5ebmKjExUUOGDNG9997rttdg3rx5mjBhgs4880xZrVYNHz5cTz/9tGt9RESEPv/8c6Wnp6t3796KiYnRtGnTOC0sAAAAcJSO6kpexuw/Y86Bp4eti9NOO831GDX57LPPjvgY0dHRrgvUHUr37t311Vdf1bk+AAAAAIfm0USpf//73+rWrZuCgoIUFBSk7t2769VXX/V2bQAAAAAasTrvmXj88cd11113acKECerfv78k6euvv9YNN9ygPXv26Oabb/Z6kQAAAAAanzqHiVmzZmn27NkaPXq0a9n555+vrl276u677yZMAAAAAMeIOk9zysjI0CmnnFJt+SmnnKKMjAyvFAUAAACg8atzmGjfvr3eeuutasvffPNNHX/88V4pCgAAAEDjV+dpTjNmzNCIESP05Zdfuo6Z+Oabb7RkyZIaQwYAAACA5qnOeyaGDx+uVatWKSYmRh988IE++OADxcTEaPXq1brooovqo0YAAAAAjZBH15no3bu3XnvtNW/XAgAAAKAJqVWYyM/PV3h4uOvfh1M1DgAAAEDzVqswERUVpYyMDMXFxSkyMrLGK14bY2SxWORwOLxeJAAAAIDGp1ZhYunSpYqOjpYkLVu2rF4LAgAAANA01CpMDBo0yPXvlJQUJSUlVds7YYzRjh07vFsdAAAAgEarzmdzSklJ0e7du6stz8nJUUpKileKAgAAAND41TlMVB0bcbDCwkIFBgZ6pSgAAAAAjV+tTw07adIkSZLFYtFdd92l4OBg1zqHw6FVq1apZ8+eXi8QAAAAQONU6zCxdu1aSfv3TKxfv142m821zmazqUePHpo8ebL3KwQAAADQKNU6TFSdxenqq6/WU089xfUkAAAAgGNcna+A/fLLL9dHHQAAAACamDqHiTPOOOOw65cuXepxMQAAAACajjqHiR49erjdrqio0Lp167RhwwaNGTPGa4UBAAAAaNzqHCaeeOKJGpfffffdKiwsPOqCAAAAADQNdb7OxKFceeWVeumll7z1cAAAAAAaOa+FiZUrV3LROgAAAOAYUudpThdffLHbbWOMMjIy9MMPP+iuu+7yWmEAAAAAGrc6h4mIiAi321arVR07dtQ999yjIUOGeK0wAAAAAI0b15kAAAAA4JE6HzPx/fffa9WqVdWWr1q1Sj/88INXigIAAADQ+NU5TKSnp2vHjh3Vlu/cuVPp6eleKQoAAABA41fnMLFp0yadeOKJ1Zb36tVLmzZt8kpRAAAAABq/OocJu92urKysasszMjLk71/nQzAAAAAANFF1DhNDhgzR1KlTlZeX51qWm5urf/zjHzrrrLO8WhwAAACAxqvOuxIeffRRDRw4UMnJyerVq5ckad26dYqPj9err77q9QIBAAAANE51DhOtWrXSzz//rHnz5umnn35SUFCQrr76al1++eUKCAiojxoBAAAANEIeHeQQEhKi66+/3tu1AAAAAGhC6nzMhCS9+uqrGjBggBITE/Xnn39Kkp544gl9+OGHXi0OAAAAQONV5zAxe/ZsTZo0SUOHDtW+ffvkcDgkSVFRUXryySe9XR8AAACARqrOYWLWrFl64YUXdMcdd7idCvakk07S+vXrvVocAAAAgMarzmFi27ZtrrM4Hchut6uoqMgrRQEAAABo/OocJlJSUrRu3bpqyxctWqTOnTt7oyYAAAAATUCdz+Y0adIkpaenq7S0VMYYrV69Wm+88YZmzpypF198sT5qBAAAANAI1TlMXHvttQoKCtKdd96p4uJiXXHFFUpMTNRTTz2lkSNH1keNAAAAABohj64zMWrUKI0aNUrFxcUqLCxUXFyct+sCAAAA0MjV+ZiJu+++W06nU5IUHBzsChJ5eXm6/PLLvVsdAAAAgEarzmHiX//6lwYMGKDff//dtWz58uXq1q2btm7d6tXiAAAAADRedQ4TP//8s1q3bq2ePXvqhRde0K233qohQ4boqquu0rffflsfNQIAAABohOp8zERUVJTeeust/eMf/9D//d//yd/fXwsXLtSZZ55ZH/UBAAAAaKTqvGdC2n8V7KeeekqXX365jjvuON1000366aefvF0bAAAAgEaszmHi7LPP1owZMzR37lzNmzdPa9eu1cCBA9WvXz89/PDD9VEjAAAAgEaozmHC4XDo559/1iWXXCJJCgoK0uzZs/XOO+/oiSee8HqBAAAAABqnOh8zsXjx4hqXDxs2TOvXrz/qggAAAAA0DR4dM/HVV1/pyiuvVGpqqnbu3ClJevXVV/Xrr796tTgAAAAAjVedw8S7776rtLQ0BQUFae3atSorK5O0/6J1DzzwgNcLBAAAANA41TlM3HfffZozZ45eeOEFBQQEuJb3799fP/74o1eLAwAAANB41TlMbN68WQMHDqy2PCIiQrm5ud6oCQAAAEATUOcwkZCQoN9++63a8q+//lrHHXecV4oCAAAA0PjVOUxcd911+vvf/65Vq1bJYrFo165dmjdvniZPnqzx48fXR40AAAAAGqE6nxr29ttvl9Pp1Jlnnqni4mINHDhQdrtdkydP1o033lgfNQIAAABohOocJiwWi+644w7deuut+u2331RYWKguXbooNDS0PuoDAAAA0EjVOUxUsdls6tKlizdrAQAAANCEeHTROgAAAAAgTAAAAADwCGECAAAAgEcIEwAAAAA8QpgAAAAA4JEGDRNffvmlzjvvPCUmJspiseiDDz5wW2+M0bRp09SyZUsFBQVp8ODB2rJli9uYnJwcjRo1SuHh4YqMjNS4ceNUWFjoNubnn3/WqaeeqsDAQCUlJenhhx+u76cGAAAANHsNGiaKiorUo0cPPfPMMzWuf/jhh/X0009rzpw5WrVqlUJCQpSWlqbS0lLXmFGjRmnjxo1avHixPvnkE3355Ze6/vrrXevz8/M1ZMgQJScna82aNXrkkUd099136/nnn6/35wcAAAA0Zx5fZ8Ibhg4dqqFDh9a4zhijJ598UnfeeacuuOACSdK///1vxcfH64MPPtDIkSP1yy+/aNGiRfr+++910kknSZJmzZqlc845R48++qgSExM1b948lZeX66WXXpLNZlPXrl21bt06Pf74426hAwAAAEDdNGiYOJxt27YpMzNTgwcPdi2LiIhQ3759tXLlSo0cOVIrV65UZGSkK0hI0uDBg2W1WrVq1SpddNFFWrlypQYOHCibzeYak5aWpoceekj79u1TVFRUtW2XlZWprKzMdTs/P1+S5HQ65XQ66+PpHpbT6ZQxpkG2fSyi375Hz32LfvsW/fYt+u1b9Nv3vNlzbzxGow0TmZmZkqT4+Hi35fHx8a51mZmZiouLc1vv7++v6OhotzEpKSnVHqNqXU1hYubMmZoxY0a15bt373abYuUrTqdTeXl5MsbIauWY+fpGv32PnvsW/fYt+u1b9Nu36LfvebPnBQUFR11Pow0TDWnq1KmaNGmS63Z+fr6SkpIUGxur8PBwn9fjdDplsVgUGxvLG9UH6Lfv0XPfot++Rb99i377Fv32PW/2PDAw8KjrabRhIiEhQZKUlZWlli1bupZnZWWpZ8+erjHZ2dlu96usrFROTo7r/gkJCcrKynIbU3W7aszB7Ha77HZ7teVWq7XB3igWi6VBt3+sod++R899i377Fv32LfrtW/Tb97zVc2/8zhrtbz0lJUUJCQlasmSJa1l+fr5WrVql1NRUSVJqaqpyc3O1Zs0a15ilS5fK6XSqb9++rjFffvmlKioqXGMWL16sjh071jjFCQAAAEDtNGiYKCws1Lp167Ru3TpJ+w+6XrdunbZv3y6LxaKJEyfqvvvu00cffaT169dr9OjRSkxM1IUXXihJ6ty5s84++2xdd911Wr16tb755htNmDBBI0eOVGJioiTpiiuukM1m07hx47Rx40a9+eabeuqpp9ymMQEAAACouwad5vTDDz/o9NNPd92u+oA/ZswYvfLKK7rttttUVFSk66+/Xrm5uRowYIAWLVrkNr9r3rx5mjBhgs4880xZrVYNHz5cTz/9tGt9RESEPv/8c6Wnp6t3796KiYnRtGnT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lzrvvPOUmJgoi8WiDz74wG29MUbTpk1Ty5YtFRQUpMGDB2vLli1uY3JycjRq1CiFh4crMjJS48aNU2FhoduYn3/+WaeeeqoCAwOVlJSkhx9+uFotb7/9tjp16qTAwEB169ZNn376aZ1racxmzpypk08+WWFhYYqLi9OFF16ozZs3u40pLS1Venq6WrRoodDQUA0fPlxZWVluY7Zv365hw4YpODhYcXFxuvXWW1VZWek2Zvny5TrxxBNlt9vVvn17vfLKK9XqOdL7oTa1NHazZ89W9+7dXecQT01N1cKFC13r6Xf9efDBB2WxWDRx4kTXMvrtXXfffbcsFovbT6dOnVzr6bf37dy5U1deeaVatGihoKAgdevWTT/88INrPX8zvadt27bVXt8Wi0Xp6emSmunr26BRmz9/vrHZbOall14yGzduNNddd52JjIw0WVlZDV1ag/r000/NHXfcYd577z0jybz//vtu6x988EETERFhPvjgA/PTTz+Z888/36SkpJiSkhLXmLPPPtv06NHDfPfdd+arr74y7du3N5dffrlrfV5enomPjzejRo0yGzZsMG+88YYJCgoyzz33nGvMN998Y/z8/MzDDz9sNm3aZO68804TEBBg1q9fX6daGrO0tDTz8ssvmw0bNph169aZc845x7Rp08YUFha6xtxwww0mKSnJLFmyxPzwww+mX79+5pRTTnGtr6ysNCeccIIZPHiwWbt2rfn0009NTEyMmTp1qmvM77//boKDg82kSZPMpk2bzKxZs4yfn59ZtGiRa0xt3g9HqqUp+Oijj8yCBQvMf/7zH7N582bzj3/8wwQEBJgNGzYYY+h3fVm9erVp27at6d69u/n73//uWk6/vWv69Omma9euJiMjw/Wze/du13r67V05OTkmOTnZjB071qxatcr8/vvv5rPPPjO//fabawx/M70nOzvb7bW9ePFiI8ksW7bMGNM8X9+EiUauT58+Jj093XXb4XCYxMREM3PmzAasqnE5OEw4nU6TkJBgHnnkEdey3NxcY7fbzRtvvGGMMWbTpk1Gkvn+++9dYxYuXGgsFovZuXOnMcaYZ5991kRFRZmysjLXmClTppiOHTu6bl922WVm2LBhbvX07dvX/N///V+ta2lqsrOzjSSzYsUKY8z+5xMQEGDefvtt15hffvnFSDIrV640xuwPf1ar1WRmZrrGzJ4924SHh7v6e9ttt5muXbu6bWvEiBEmLS3NdftI74fa1NJURUVFmRdffJF+15OCggJz/PHHm8WLF5tBgwa5wgT99r7p06ebHj161LiOfnvflClTzIABAw65nr+Z9evvf/+7adeunXE6nc329c00p0asvLxca9as0eDBg13LrFarBg8erJUrVzZgZY3btm3blJmZ6da3iIgI9e3b19W3lStXKjIyUieddJJrzODBg2W1WrVq1SrXmIEDB8pms7nGpKWlafPmzdq3b59rzIHbqRpTtZ3a1NLU5OXlSZKio6MlSWvWrFFFRYXbc+zUqZPatGnj1u9u3bopPj7eNSYtLU35+fnauHGja8zhelmb90NtamlqHA6H5s+fr6KiIqWmptLvepKenq5hw4ZV6wn9rh9btmxRYmKijjvuOI0aNUrbt2+XRL/rw0cffaSTTjpJl156qeLi4tSrVy+98MILrvX8zaw/5eXleu2113TNNdfIYrE029c3YaIR27NnjxwOh9sLSpLi4+OVmZnZQFU1flW9OVzfMjMzFRcX57be399f0dHRbmNqeowDt3GoMQeuP1ItTYnT6dTEiRPVv39/nXDCCZL2P0ebzabIyEi3sQf3wdNe5ufnq6SkpFbvh9rU0lSsX79eoaGhstvtuuGGG/T++++rS5cu9LsezJ8/Xz/++KNmzpxZbR399r6+ffvqlVde0aJFizR79mxt27ZNp556qgoKCuh3Pfj99981e/ZsHX/88frss880fvx43XTTTZo7d64k/mbWpw8++EC5ubkaO3aspOb7/xP/Oo0GcExLT0/Xhg0b9PXXXzd0Kc1ex44dtW7dOuXl5emdd97RmDFjtGLFioYuq9nZsWOH/v73v2vx4sUKDAxs6HKOCUOHDnX9u3v37urbt6+Sk5P11ltvKSgoqAEra56cTqdOOukkPfDAA5KkXr16acOGDZozZ47GjBnTwNU1b//61780dOhQJSYmNnQp9Yo9E41YTEyM/Pz8qh1Zn5WVpYSEhAaqqvGr6s3h+paQkKDs7Gy39ZWVlcrJyXEbU9NjHLiNQ405cP2RamkqJkyYoE8++UTLli1T69atXcsTEhJUXl6u3Nxct/EH98HTXoaHhysoKKhW74fa1NJU2Gw2tW/fXr1799bMmTPVo0cPPfXUU/Tby9asWaPs7GydeOKJ8vf3l7+/v1asWKGnn35a/v7+io+Pp9/1LDIyUh06dNBvv/3G67setGzZUl26dHFb1rlzZ9fUMv5m1o8///xTX3zxha699lrXsub6+iZMNGI2m029e/fWkiVLXMucTqeWLFmi1NTUBqyscUtJSVFCQoJb3/Lz87Vq1SpX31JTU5Wbm6s1a9a4xixdulROp1N9+/Z1jfnyyy9VUVHhGrN48WJ17NhRUVFRrjEHbqdqTNV2alNLY2eM0YQJE/T+++9r6dKlSklJcVvfu3dvBQQEuD3HzZs3a/v27W79Xr9+vdsfo8WLFys8PNz1R+5IvazN+6E2tTRVTqdTZWVl9NvLzjzzTK1fv17r1q1z/Zx00kkaNWqU69/0u34VFhZq69atatmyJa/vetC/f/9qp/P+z3/+o+TkZEn8zawvL7/8suLi4jRs2DDXsmb7+q7T4drwufnz5xu73W5eeeUVs2nTJnP99debyMhIt6P8j0UFBQVm7dq1Zu3atUaSefzxx83atWvNn3/+aYzZf2q5yMhI8+GHH5qff/7ZXHDBBTWe5q5Xr15m1apV5uuvvzbHH3+822nucnNzTXx8vLnqqqvMhg0bzPz5801wcHC109z5+/ubRx991Pzyyy9m+vTpNZ7m7ki1NGbjx483ERERZvny5W6nuysuLnaNueGGG0ybNm3M0qVLzQ8//GBSU1NNamqqa33Vqe6GDBli1q1bZxYtWmRiY2NrPNXdrbfean755RfzzDPP1HiquyO9H45US1Nw++23mxUrVpht27aZn3/+2dx+++3GYrGYzz//3BhDv+vbgWdzMoZ+e9stt9xili9fbrZt22a++eYbM3jwYBMTE2Oys7ONMfTb21avXm38/f3N/fffb7Zs2WLmzZtngoODzWuvveYaw99M73I4HKZNmzZmypQp1dY1x9c3YaIJmDVrlmnTpo2x2WymT58+5rvvvmvokhrcsmXLjKRqP2PGjDHG7D+93F133WXi4+ON3W43Z555ptm8ebPbY+zdu9dcfvnlJjQ01ISHh5urr77aFBQUuI356aefzIABA4zdbjetWrUyDz74YLVa3nrrLdOhQwdjs9lM165dzYIFC9zW16aWxqymPksyL7/8smtMSUmJ+dvf/maioqJMcHCwueiii0xGRobb4/zxxx9m6NChJigoyMTExJhbbrnFVFRUuI1ZtmyZ6dmzp7HZbOa4445z20aVI70falNLY3fNNdeY5ORkY7PZTGxsrDnzzDNdQcIY+l3fDg4T9Nu7RowYYVq2bGlsNptp1aqVGTFihNs1D+i393388cfmhBNOMHa73XTq1Mk8//zzbuv5m+ldn332mZFUY93N8fVtMcaYuu3LAAAAAACOmQAAAADgIcIEAAAAAI8QJgAAAAB4hDABAAAAwCOECQAAAAAeIUwAAAAA8AhhAgAAAIBHCBMAAAAAPEKYAAAva9u2rZ588smGLsNn/vWvf2nIkCE+2dZpp52miRMnHtVjvPLKK4qMjPRKPQ3BYrHogw8+8Pj+c+bM0Xnnnee9ggAc0wgTAIBqavuBtbS0VHfddZemT5/u1e0vX75cFotFubm5bsvfe+893XvvvUf12CNGjNB//vOfo3qMhpSRkaGhQ4dKkv744w9ZLBatW7eu1ve/5ppr9OOPP+qrr76qpwoBHEsIEwAAj73zzjsKDw9X//79fbK96OhohYWFHdVjBAUFKS4uzksVVVdeXl5vjy1JCQkJstvtHt/fZrPpiiuu0NNPP+3FqgAcqwgTAFAHp512miZMmKAJEyYoIiJCMTExuuuuu2SMOeR9Hn/8cXXr1k0hISFKSkrS3/72NxUWFrrWV027+eyzz9S5c2eFhobq7LPPVkZGxmFr2bhxo84991yFh4crLCxMp556qrZu3SpJcjqduueee9S6dWvZ7Xb17NlTixYtct23vLxcEyZMUMuWLRUYGKjk5GTNnDlT0v5pWpJ00UUXyWKxuG7XZP78+dWmzBxp21Xfps+fP1+nnHKKAgMDdcIJJ2jFihWu9aeffrokKSoqShaLRWPHjnX1/8BpTm3bttV9992n0aNHKzQ0VMnJyfroo4+0e/duXXDBBQoNDVX37t31ww8/VOv3gY9hsViq/VTZsWOHLrvsMkVGRio6OloXXHCB/vjjD9f6sWPH6sILL9T999+vxMREdezYscZeVY070MSJE3Xaaae5bp922mm66aabdNtttyk6OloJCQm6++673e5z4F6jlJQUSVKvXr1ksVhcj7V8+XL16dNHISEhioyMVP/+/fXnn3+6HuO8887TRx99pJKSkhprBYDaIkwAQB3NnTtX/v7+Wr16tZ566ik9/vjjevHFFw853mq16umnn9bGjRs1d+5cLV26VLfddpvbmOLiYj366KN69dVX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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAJOCAYAAAAqFJGJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAApJRJREFUeJzs3Xd4U3X///FnutK9N7MMEWWIgixlKFMBB4qKICAqKrLLVJYi3GwRBRUZMhS9FdxWURk3slEEHKgIymihe8/k/P7gR77WQmlpSxr6elxXLs3JJ+e8T95JyStnmQzDMBARERERESkDJ3sXICIiIiIijk/BQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQuQqtGrVKkwmk+3m4uJC9erVGTRoEKdOnbKN27JlCyaTiS1bttiv2Cvk888/Z9q0afYuo9KYNm0aJpPpkuOKe91q167NwIEDy7ewKyglJYXg4GDWr19vm3b+dTl/c3NzIyoqihEjRpCSkmK/YgWA77//nk6dOuHt7Y2/vz/33nsvf/75Z4mem5eXx5QpU4iKisLNzY1atWoxceJEsrOzLzj+8OHD3H///YSEhGA2m6lduzZPP/10oTG1a9cu9H75583d3d02Ljk5GX9/fz788MPLXncRR+Bi7wJEpOKsXLmSa6+9luzsbLZt28asWbPYunUrhw4dwsvLy97lXVGff/45r776qsJFKRX3um3cuBFfX98rX1Q5mT59OpGRkTzwwANFHouJicHPz4/09HQ+//xzFi1axJ49e9ixY0eJApmUv19//ZUOHTpwww038N5775GTk8OUKVO49dZbOXDgACEhIcU+/6GHHuLzzz9nypQptGjRgp07dzJjxgx++uknPv7440JjN2/ezJ133smtt97Ka6+9RnBwMH///Tc//PBDoXEbN24kNze30LS///6bBx54gHvuucc2LSAggFGjRjF27FjuuOMO3NzcyvhqiFROChYiV7FGjRrRvHlzADp27IjFYuGFF17gww8/5OGHH7ZzdVISWVlZeHp62ruMC2rWrJm9S7hsSUlJvP766yxcuPCCQeGmm24iODgYgM6dO5OYmMiaNWvYsWMHbdu2vSI1Vuben2exWCgoKMBsNlf4sqZM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bl0jLy+v2LHntW/f3gAuefvn++hCvvvuOwMw3nnnnSKPzZw50wCM06dPX/T5H374oQEYa9asKTR9+fLlBmBcc801tmldu3Y1AMPf398YN26c8e233xqvvfaaERQUZNSrV8/IzMy86HIeeOABw9nZ2Th58uQFH9+0aZMBGF988UWx6yviqLQrlMhVrFWrVri6uuLj40OPHj0IDw/niy++KPZX34yMDMaPH0+9evVwcXHBxcUFb29vMjMz+eWXX4qM79WrV6H7539RLG53q99++42jR48yePDgi/7CmJmZye7du7nvvvvw9va2TXd2dqZ///6cPHmSI0eOAHDzzTfzxRdfMGHCBLZs2XLRs7yUxqBBg9ixY4dtGXDuYPgWLVrQqFEjAG644Qbc3Nx44okneOutt8ptd53evXsXuv/pp5/i7+9Pz549KSgosN1uuOEGwsPDC53V688//6Rv376Eh4fj7OyMq6sr7du3B7hg/yrC+d1LzmvYsCEAd955Z5HpSUlJtt2hPv30U0wmE/369Su0nuHh4TRt2rTczl6WkpJCVlYWoaGhFx0THh6Oq6srAQEB9OvXjxtvvJGYmBjc3d0rtB//7n29evUICAhg/PjxvPbaa/z8889FnnN+y8e/z9B1//334+XlxTfffFNo+g033EDNmjVt993d3bnmmmuK/cz+U69evXB1dS3R2Ndff529e/de8lbSkyoUt2tScY91796devXqMX78eDZt2kRKSgoxMTFMmjQJZ2fnQltLrFYrcG63x9mzZ9OxY0eGDBnC8uXL+eOPP3j77bcvuIykpCQ+/PBDunXrRrVq1S445vx77p9n5xO5mmhXKJGr2OrVq2nYsCEuLi6EhYVdchcWgL59+/LNN98wefJkWrRoga+vLyaTiTvuuOOCX9iDgoIK3T+/a0FxX+7P74devXr1i45JTk7GMIwL1nx+V4Tzuzq9/PLLVK9enXfffZfZs2fj7u5O165dmTt3brG7aRTn4YcfJjo6mlWrVjFr1ix+/vln9u7dy5IlS2xj6taty9dff82cOXMYOnQomZmZ1KlTh+HDhzNixIjLWq6np2eRMy2dOXOGlJSUi55JJiEhATgXCm+99Vbc3d2ZMWMG11xzDZ6enpw4cYJ77723XAJXSQQGBha6f77ui03PycnB29ubM2fOYBjGRYNvnTp1yqW+86/D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bEi3bt14/PHHef311wF44okn6NGjR5EvguXF5OlO1PGvynWehmFQYCnAxdml+C9PniVPlSX1711yTCbTBaed3wfParXi7OzM/v37bVtAzvvnF8d/6969O//73/+KrSUjI+OC07Ozs5k0aRIbN27kzjvPbS1q0qQJBw4cYN68eRcNFhEREbi6uhaqs2HDhsTFxZGXl4ebmxt169Zl69atZGZmkpaWRkREBA888ABRUVEXXF/DMCgoKMDFxcX2Rf7AgQO2+Z/f4hUeHl7kOJ+zZ8/i4uJS5Jf/rKws1q9fz/PPP1/s63NeaXvm4+PD999/z5YtW/jqq6+YMmUK06ZNY+/evfj7+19wGVarle+++w5nZ2d+//33Yuvx8Ch+K1pxuyaen75y5UqGDx9OTEwM7777Ls899xybNm2iVatWxc5bRETEkZ1Nz8HZZCLIu+gP3pWNXYPFmTNn6N+/P7Gxsfj5+dGkSRNiYmLo3LkzcG73mezsbJ5++mmSk5Np2bIlX331VaFfXRcuXIiLiwt9+vQhOzub22+/nVWrVhX6orhu3TqGDx9uO3tUr169eOWVVypsvUwmE6YS7I5UGoZh4FRQgJNL8cGiNNzc3Apd76O8NGvWDIvFwtmzZ7n11ltL/LyS7Ap1Mfn5+eTn5xdJ1c7OzsUedNS2bVvefvttrFar7bm//fYbERERuLm5FRrr5eWFl5cXycnJfPnll7atYv9e338Gi/O9+ufWg/Nat27NJ598UmjaV199RfPmzYuEgPfee4/c3Fz69etXwlek9FxcXOjUqROdOnVi6tSp+Pv78+2333LvvfdecPzcuXP55Zdf2Lp1K127dmXlypUMGjTogmPr16+Ph4cH33zzDY899liRx6+77jreeustMjMzbbtCfffddzg5OXHNNdfYxjVr1oxmzZoxceJEWrduzdtvv02rVq0q7L0sIiJiL7kFFj764TSnUs59N6ob6k336y++G39lYNdgsXz58mIfN5lMTJs2jWnTpl10jLu7O4sXL2bx4sUXHRMYGMjatWsvt8yrVu3atdm9ezfHjx/H29ubwMDAcpnvNddcw8MPP8wjjzzC/PnzadasGQkJCXz77bc0btyYO+6444LP++cpXkvL19eX9u3bM3bsWDw8PKhVqxZbt25l9erVLFiwwDbukUceoVq1asyaNQuAp556isWLFzNixAiGDRvG77//zsyZMxk+fLjtOV9++aVtV6c//viDsWPH0qBBA9uX6H+v7w033MCZM2fYunUrTZo0uej6Pvnkk7zyyiuMHj2axx9/nJ07d7J8+XLeeeedImOXL1/O3XfffdFjGMrq008/5c8//6Rdu3YEBATw+eefY7VaL7pV78CBA0yZMoX333+ftm3bsmjRIkaMGEH79u2pU6dOkfHu7u6MHz+ecePG4ebmRtu2bYmPj+enn35i8ODBPPzww0ydOpUBAwYwbdo04uPjGTZsGP379ycsLIxjx47xxhtv0KtXLyIjIzly5Ai//fYbjzzyCHDuvXzs2DEOHDhA9erV8fHxueCujCIiIo7ixxOptlABcPRsBr+HeBJYifdWq3THWMiVEx0dzYABA7juuuvIzs7m2LFj5TbvlStXMmPGDMaMGcOpU6cICgqidevWF/2SXR7Wr1/PxIkTefjhh0lKSqJWrVq8+OKLPPnkk7Yxf//9d6GtGjVq1OCrr75i1KhRNGnShGrVqjFixAjbyQMAUlNTmThxIidPniQwMJDevXvz4osvFtqqcLH1Pb9b1oVERUXx+eefM2rUKF599VUiIyN5+eWX6d27d6Fxv/32G9u3b+err8p397p/8vf3Z8OGDUybNo2cnBzq16/PO++8w/XXX19kbE5ODg8//DADBw6kZ8+eAAwePJjPPvuM/v37s23btiK7wAFMnjwZFxcXpkyZwunTp4mIiLD1xtPTky+//JIRI0bQokULPD096d27ty0Uenp68uuvv/LWW2+RmJhIREQEzzzzDEOGDAHOHZy+YcMGOnbsSEpKCitXrmTgwIEV9GqJiIhUvKTMvAtMyyfQ5wKDKwmTcf7iCFKstLQ0/Pz8SE1NveBZoY4dO0ZUVFSpjpwvjQvtXiOVk3pVOV3sc2q1Wjl79iyhoaE6aLGSU68ch3rlWNSvyunXuDS+OFT4WMz7m1fDJTf9ivaquO/A/6YtFiIiIiIilcy14b6k5xTw44kUnJ1MtKgdSKSfB2fPlvy6EleagoWIiIiISCXUonYgLWr/3zGwpbkKtj1oe5eIiIiIiJSZgoWIiIiIiJSZgoWIiIiIiJSZgkU5quz7vYlUZToBnoiISMXSwdvlwM3NDScnJ06fPk1ISAhubm7lfppRncLUcahXlY9hGMTHx2MymYpc1VxERETKh4JFOXByciIqKorY2FhOnz5dIcswDAOr1YqTk5O+rFZy6lXlZDKZqF69+gUv3iciIiJlp2BRTtzc3KhZsyYFBQVYLJZyn7/VaiUxMZGgoCBdvKaSU68qJ1dXV4UKERGRCqRgUY7O72ZREbtaWK1WXF1dcXd315fVSk69EhERkapI33pERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERCqpgrgEcg78au8ySkTBQkRERESkkjGsVlJXbuREm36ceXQy1sxse5d0SS72LkBERERERP5P7i9/Ej9mLrl7DwPgWq8mlqRUnKuF2rmy4ilYiIiIiIhUAtbsXJIXvEXKK29DgQWTlwdBzz6B76P3YHJ2xmq12rvEYilYiIiIiIjYWda2fSREzyf/2EkAPLvfQsiskbhUC7NzZSWnYCEiIiIiYieWhGQSpr5KxntfAuAcHkzwf0bhfWc7O1dWegoWIiIiIiJXmGEYpL8bQ+LUV7EmpYLJhO+j9xD07BM4+XjZu7zLomAhIiIiInIF5R09QcLYeWT/73sA3K6rQ8j8cbg3v97OlZWNgoWIiIiIyBVg5OWT8so7JC94CyM3D5O7GwFjH8X/qQcwuTr+13LHXwMRERERkUoue/dB4qPnkf/rMQA8OrQgZM4YXKOq2bmy8qNgISIiIiJSQSyp6STNeJ20VR8B4BTsT/ALw/Du3RmTyWTn6sqXgoWIiIiISDkz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FkREREREZDcGCyIiIiIishuDBRERERER2Y3BgoiIiIiI7MZgQUREREREdmOwICIiIiIiuzFYEBERERGR3RgsiIiIiIjIbgwWRERERERkNwYLIiIiIiKyG4MFERERERHZjcGCiIiIiIjspnB0Aa5CCAEAKC4udsj2LRYLSkpKoNFoIJMxDzoz9sq1sF+ug71yHeyVa2G/XIcjelX93bf6u/DNMFjUU0lJCQAgLCzMwZUQERERETWtkpISeHl53XQeSdQnfhAsFguuXLkCDw8PSJLU5NsvLi5GWFgYLl68CE9PzybfPtUfe+Va2C/XwV65DvbKtbBfrsMRvRJCoKSkBCEhIbfcS8I9FvUkk8kQGhrq6DLg6enJQe8i2CvXwn65DvbKdbBXroX9ch1N3atb7amoxgPpiIiIiIjIbgwWRERERERkNwYLF6FWqzF//nyo1WpHl0K3wF65FvbLdbBXroO9ci3sl+tw9l7x5G0iIiIiIrIb91gQEREREZHdGCyIiIiIiMhuDBZERERERGQ3BgsnsmrVKkRGRkKj0aBr167Yt2/fTeffs2cPunbtCo1Gg5YtW+Ljjz9uokqpIb1KSkqCJEm1HqdOnWrCipunvXv34rHHHkNISAgkScKXX355y2U4rhynof3i2HKMuLg4dO/eHR4eHggICMDIkSORmpp6y+U4thyjMf3i2HKMjz76CB07drTeoyI2NhbffffdTZdxtnHFYOEkNm/ejKlTp+KNN95ASkoK+vbti6FDh+LChQs2509PT8cjjzyCvn37IiUlBa+//jpeffVVJCQkNHHlzU9De1UtNTUVmZmZ1kebNm2aqOLmq6ysDJ06dcKHH35Yr/k5rhyrof2qxrHVtPbs2YNXXnkFP//8MxITE2EymTBo0CCUlZXVuQzHluM0pl/VOLaaVmhoKBYtWoTk5GQkJydjwIABGDFiBP744w+b8zvluBLkFHr06CEmTJhQY1q7du3EnDlzbM4/a9Ys0a5duxrT/ud//kf07NnzjtVI1zS0V7t37xYAREFBQRNUR3UBILZv337TeTiunEd9+sWx5Ryys7MFALFnz5465+HYch716RfHlvPw8fERn332mc3XnHFccY+FEzAajThy5AgGDRpUY/qgQYNw4MABm8scPHiw1vyDBw9GcnIyqqqq7litzV1jelUtJiYGwcHBGDhwIHbv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", "text/plain": [ "
" ] @@ -205,7 +229,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "226372f9", "metadata": { "execution": { @@ -218,7 +242,7 @@ "outputs": [ { "data": { - "image/png": "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eimWLFmCl19+GTqdzvfaRx99BKfTiSuvvBJA0+NAt912G+bMmYPbb78dDocDP/74I77//nvf9xCsr776Cu+//z5uueUWZGVlobCwEOXl5TjvvPN8E4/s7GwsXboU119/PRoaGnDHHXcAaJr4/Otf/8JVV12FG264ARaLBa+99hqmTp2KDRs2tHicqT39+/fHY489hoceegg33ngjxo4dCwAYNWpUu/XefvttuFwu3HrrraipqcHf/vY3XH755Zg0aRJWr16N++67D/v27cPzzz+Pu+++229y9Oabb2Lu3LmYOnUq/vrXv8Jut+PFF1/EmDFjsGXLFlkWi5eXl2PUqFGw2+247bbbkJmZiYULF+KSSy7BokWLcOmllwJo+nR+0qRJKC0txe233468vDy88847IU3SmjU2NmLChAnYt28fbrnlFnTv3h0ffPAB5s2bh7q6Otx+++0Amu5UXXzxxdiwYQNuvvlm9OvXDx9//DHmzp0b9vd/um+//RaDBg1q8w7UZZddht69e+PJJ5+EJEltxhFFsdWJYmtSU1PbveO1ZcsWAPDdbW02bNgwqFQqbNmyBddcc80Z25k/fz6sVivUajXGjh2Lv//9734xDQYDRo4ciTfeeAPnn38+xo4di7q6Ojz++ONIT0/HjTfeGND305phw4YBANatW4ehQ4eGHIcobkhE1GH9+9//lgBIK1askCorK6WjR49K7777rpSZmSkZDAbp2LFjkiRJ0qpVqyQA0qpVq3x17XZ7i3hPPfWUJAiCdPjwYd+1uXPnSgCkxx57zK/s0KFDpWHDhrWbX11dnWQ2m6WRI0dKjY2Nfq+JoihJkiS5XC4pJydHGjRokF+Zzz77TAIgPfTQQ5IkSVJtba0EQPr73//ebpsDBw6Uxo8f326ZZl9++aUEQPr000/9rl944YVSjx49fF/PmDFDGjhwYEAxAwFAUqlU0k8//eR3/frrr5c6deokVVVV+V2/8sorpdTUVN/PzOPxSE6n069MbW2tlJubK/3mN79p0dbDDz/cbj4bN26UAEj//ve/W7w2d+5cqaCgwPf1wYMHJQBSdna2VFdX57v+wAMPSACkwYMHS26323f9qquuknQ6neRwOCRJkiSLxSKlpaVJN9xwg187ZWVlUmpqaovrgSooKJDmzp3r+/qOO+6QAEhr1qzxXbNYLFL37t2lwsJC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xBNPICMjw1f2n//8Jx599FG/uyBXXHEFDAYDRo0ahZycHOzcuROvvPIKjEYj/u///s9Xd9iwYZg8eTIWLlyIhoYGTJkyBaWlpXj++edhMBh82zif2lZdXR1OnDgBAPj0009x7NgxAMCtt97qt2nB8uXLkZ+fz61mKXHEZjMqIoqG5u1mN27c2G651rab3blzp1RUVCSZTCYpKytLuuGGG6Rt27a12F5x7ty5UnJycouYzdtUBuKTTz6RRo0aJRkMBiklJUUaMWKE9N///tevzHvvvScNHTpUSkpKkjIyMqRf//rXvu1yJUmSqqqqpOLiYqlfv35ScnKylJqaKo0cOVJ6//33/eKUlZVJ06dPl8xmswQgoK1nRVGUunXrJgGQ/vKXv7R4/eWXX5bGjRsnZWZmSklJSVLPnj2le+65R6qvr/eVae7jM23tKklNW8AWFxe3+lp5eblUXFwsdevWTdJqtVJeXp50wQUXSK+88opfvk8++aRUUFAgJSUlSUOHDpU+++yzFlvDNrcVSE4ff/yxNGDAAEmj0fj9DrS13ezp2/42f/8ffPCB3/W2fkdXrVolTZ06VUpNTZX0er3Us2dPad68edKmTZt8ZbZv3y4BkO6///4z5n/6drOSJEn79++X5syZI6WlpUl6vV4aMWKE9Nlnn7Woe+DAAWn69OmSwWCQsrOzpT/84Q++rWC/++67M7Z9+nazktT0c5w/f76UlZUl6XQ66ayzzmp129LKykrp6quvlsxms5SamirNmzdPWrdunQRAevfdd8/YdjDOPvts6frrr/e71jyOKysrZW0rGK+88orUt29fSafTST179pSeffZZ33bUzZrzPPXvsOeee04aMWKElJGRIWk0GqlTp07SNddcI+3du7dFG3a7XXrsscekAQMGSAaDQUpNTZUuuugiacuWLS3KFhQUtLmF7sGDB33lvF6v1KlTJ+nPf/6zXF1BpHiCJLWzDQQREZFCvfDCC7j33nuxf//+Ng86jJQFCxbgzjvvxLFjx9rdtjkSPvroI1x66aVYu3ZtWDuPne7NN99EcXExjhw54jt0kkL30Ucf4eqrr8b+/fvRqVOnWKdDFBWcWBARUVw69TToSGpsbPRbjO1wODB06FB4vV7s2bMnqm17vV5MmTIFmzZtQllZWUhbrrZFFEWcffbZuOqqq1rdoICC03yK99/+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8+bNw6ZNm/DJJ59g/fr1kCQJF154IdxuNwBg3bp1uOmmm3D77bdj69atmDx5Mp588smg27n33nuxePFiLFy4EJs3b0avXr0wdepU1NTUAAAOHjyIOXPmYObMmdi2bRt+97vf4U9/+lO7MTdu3Ihf/epXuPzyy1FaWornnnuuRZnvv/8eALBixQqUlpZiyZIlAeW7adMm3HbbbXjsscewe/duLFu2DOPGjWuzfHM/LlmyBN9++22LfgQAu92OJ554Av/5z3+wbt061NXV4corr/S9vmbNGlx33XW4/fbbsXPnTrz88st444038MQTT7TZ7ttvvw2TydTunzVr1rRZf/369SgqKvK7NnXqVKxfvz6QbgIAvPbaaygqKkJBQQEAwOPxwOv1tlh0bTAYsHbt2oDjhoKLt4mIiCjuSXYHDhZOiUnb3Q/9D0KyIeh6e/fuxSeffIJ169Zh1KhRAJreqHbr1g0fffQRLrvsMjz//POYNm0a7r77bgBAnz598O233+Kzzz4LuB2bzYYXX3wRb7zxhm/tw6uvvorly5fjtddewz333IOXX34Zffv2xd///ncAQN++fbFjx45231RnZ2cjKSkJBoMBeXl5bZYBgMzMzDbLtObIkSNITk7GRRddBLPZjIKCAgwdOrTVss39uHbtWowYMQIajaZFPwJN2xT/85//xMiRIwEACxcuRP/+/bFhwwaMGDECjz76KO6//37MnTsXQNPdlscffxz33ntvm5OsSy65xBevLV26dGnztbKyshanXefm5qKsrKzdmM1OnDiBpUuX4p133vFdM5vNOP/88/H444+jX79+yMzMxLvvvov169ejV69eAcUNFe9YEBEREcXAzz//DI1G4/fGNDMzE3379sXPP/8MANi9ezdGjBjhV+/cc8/1/f+RI0f8Ph1v7W7G/v374Xa7MXr0aN81rVaLESNG+LVzalwALdqNpsmTJ6OgoAA9evTAtddei7fffht2u73VsoH0I9C0peqp32O/fv2QlpbmK7Nt2zY89thjfv15ww03oLS0tM22zWYzevXq1e6f5pOtI2HhwoVIS0vDzJkz/a6/+eabkCQJXbt2hclkwvPPP4+rrroq4rvn8Y4FERERycrp8eLnUgvsLg/65JqRZYr8Ql7BqEf3Q/+LeDtttR0rnTt39ttxKSMjI2a5yMlsNmPz5s1YvXo1/ve//+Ghhx7CI488go0bNyItLS0ibVqtVjz66KOYNWuW33VJkto8y+Htt9/G7373u3bjLl26FGPHjm31tby8PJSXl/tdKy8vD+jujiRJeP3113HttddCp9P5vdazZ098/fXXsFqtqKmpQbdu3XDllVf61rxECicWREREJBuPV8T7G4+iyuoCAGw6VItLh3ZBtwxjRNsVBCGkx5FiqX///vB4PPj+++99j0JVV1dj9+7dGDBgAICmR5JOX2S9adMm3/9rNJozPt7Ss2dP6HQ6rFu3zvccvtvtxsaNG3HHHXf42jl9m1M5tidtfsPbfPpzMDQaDYqKilBUVISHH34YaWlp+Oqrr1q88T+1H5vvspzej0DT2oNNmzb5yuzevRt1dXXo378/AOCcc87B7t27W/SnJEltLuAO91Go888/HytXrvT9HABg+fLlOP/889uNCQBff/019u3bh+uvv77NMsnJyUhKSkJtbS2+/PJL/O1vfztj3HBwYkFERESyOVhl800qAMArSth8pDbiE4t41Lt3b8yYMQM33HADXn75ZZjNZtx///3o0qULZsyYAQC49dZbMW7cODzzzDO4+OKL8dVXX2Hp0qVBHbCWnJyMm2++Gffccw8yMjKQn5+Pv/3tb7Db7b43pb/73e/wzDPP4L777sP111+PrVu34o033gAQ3qFwOTk5MBgMWLZsGbp27Qq9Xo/U1NQz1vvss89w4MABjBs3Dunp6fjiiy8giiL69u3bomxzP954440oKSlBWloaHnjgAb9+BJoe/7r11lvx//7f/4NGo8Ett9yC8847zzfReOihh3DRRRchPz8fc+bMgUqlwrZt27B9+3Y88sgjreZpNpthNptD6xwAt99+O8aPH4+nn34a06dPx7vvvotNmzbhlVde8ZV54IEHcPz4cSxcuNCv7muvvYaRI0di0KBBLeJ++eWXkCQJffr0we7du/HAAw+gX79+vp2jIoUTiwCIoghRFM9YRpIk2colGqX3Syzyi1SbcsYNJ1aodYOpF6myiSIe+oRjU/44odQ/tY5H9AKn7ZJ0+r+j4Y7N5mvNf+LNqXm//vrruOOOO3DRRRfB5XJh3Lhx+Pzzz6HRaCBJEkaNGoUXX3wRjz32GP785z9j6tSpuOOOO1BSUuKLdaa2AOCpp56C1+vFtddeC4vFguHDh2PZsmVIS0uDJEko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8rd/+7d873vf4//8n/8z7P6qqvJ3f/d3nDhxgh/96Ee89dZb/OEf/uGAfSKRCH/913/NT37yE/bs2cOVK1f4/d///WHLbG5u5p577sFisfDWW29x6NAhvvSlL5FKpQD427/9W7773e/y13/91xw7dowHH3yQxx57jHPnzgHwd3/3d7z88sv8x3/8B2fOnOFf/uVfsgHERx99BMA///M/09ramn09lH379rF27doB22507j5/8Ad/wO/93u9x+PBhNmzYwKOPPkpXVxe1tbXs2LEDgDNnztDa2srf/u3fDluHv/mbv+HOO+/k8OHDPPLII3zuc5/j85//PL/5m7/Jxx9/zJw5c/j85z8/bPD30Ucf0draSmtrK1evXuX222/n7rvvBiCZTPLggw/icrnYu3cv7733Xjbwu/bJxO7duzlz5gw7d+7klVdeGbauo/GjH/0Ih8PBBx98wF/+5V/yp3/6p+zcuXPIfT/88EMAdu3aRWtrKy+88AKpVIonnniCe++9l2PHjrF//36+8pWvDAiW1q5dSyqV4oMPPphQXYUQAl0IIcS43HvvvfqiRYt0TdOy2/7oj/5IX7RoUfZ1fX29/jd/8zfDlvGzn/1MLy4uzr7+53/+Zx3Qz58/n922fft2vby8fNgynn/+eX3WrFl6IpEY8v2qqir929/+9oBt69at03/nd35H13Vd/+pXv6rfd999Az7HtQD9xRdfHPb8uq7rPT09OqDv2bNnTOe+dOmSDuh//ud/nn0/mUzqNTU1+l/8xV/ouq7rb7/9tg7oPT09A8q599579a9//evZ1/X19fpv/uZvZl+3trbqgP7Nb34zu23//v06oLe2tuq6nmlvt9s95Gf62te+ptfX1+sdHR26ruv6T37yE33BggUD2ikej+s2m01/4403dF3X9aefflovLy/X4/H4sG3Vt9/jjz8+YNvXv/51/d577x3w+e66664B+6xbt07/oz/6o+zra382fW15+PDh7PtdXV06oL/zzjsj1sfj8eg//OEPR9xHCCFuRJ5YCCHEBNx+++0D7v5u2LCBc+fOkU6nh9x/165d3H///VRXV+Nyufjc5z5HV1cXkUgku4/dbmfOnDnZ15WVlXR0dAxbhyNHjnD33XdjMpkGvRcIBGhpaRk07+HOO+/k1KlTQGZYzpEjR1iwYAFf+9rXePPNN0f34a/RN4zGarWO6dx9NmzYkP1/o9HI2rVrB+0zGsuXL8/+f3l5OQDLli0btG2k9gT43//7f/OP//iPvPzyy5SWlgJw9OhRzp8/j8vlwul04nQ6KSoqIhaLZYed9Z3PbDaPue43+jxw4+/C9YqKivjCF77Agw8+yKOPPsrf/u3fDjmszmazDfgOCiHEeEhgIYQQU6SxsZFPf/rTLF++nB07dnDo0CG2b98ODJzke32AoCjKiPM2bDbbhOq1evVqLl26xJ/92Z8RjUb5zGc+w1NPPTWmMoqLi1EUhZ6engnVZaKubbu+gG+obZqmDVvG22+/zVe/+lV+/OMfD7iwD4VCrFmzhiNHjgz4d/bsWX791389u5/D4bhhPVVVHfQzTSaTI36evvqPVPeh/PM//zP79+/njjvu4Kc//Snz58/nwIEDA/bp7u7OBlBCCDFeElgIIcQEXD8u/cCBA8ybNw+DwTBo30OHDqFpGt/97ne5/fbbmT9/Pi0tLROuw/Lly9m7d++QF6YFBQVUVVXx3nvvDdj+3nvvsXjx4gH7ffazn+Uf/uEf+OlPf8qOHTvo7u4GMhe3wz2B6WM2m1m8eDEnT54c87mBARe6qVSKQ4cOsWjRomzZwA3rkAvnz5/nqaee4r/+1//K1q1bB7y3evVqzp07R1lZGXPnzh3wz+12j+k8paWlg54cjCVN7FBGaqdVq1bx/PPP8/7777N06VL+9V//NfvehQsXiMVirFq1akLnF0IICSyEEGICrly5wnPPPceZM2f4t3/7N/7+7/+er3/960PuO3fuXJLJJH//93/PxYsX+clPfsIPfvCDCdfh2WefJRAI8Ku/+qscPHiQc+fO8ZOf/IQzZ84AmYnRf/EXf8FPf/pTzpw5wze+8Q2OHDmSref3vvc9/u3f/o3Tp09z9uxZfvazn1FRUZHNltTQ0MDu3btpa2sb8YnEgw8+yL59+wZsu9G5+2zfvp0XX3yR06dP88wzz9DT08OXvvQlAOrr61EUhVdeeQWv1zsgi1YuRaNRHn30UVatWsVXvvIV2trasv8AfuM3foOSkhIef/xx9u7dy6VLl3jnnXf42te+xtWrV8d0rvvuu4+DBw/y4x//mHPnzvGtb32LTz75ZEL1Lysrw2az8frrr9Pe3o7f7+fSpUs8//zz7N+/n8uXL/Pmm29y7ty5bNAGsHfvXmbPnj1g+J0QQoyHBBZCCDEBn//854lGo6xfv55nnnmGr3/963zlK18Zct8VK1bwve99j7/4i79g6dKl/Mu//Es2retEFBcX89ZbbxEKhbj33ntZs2YN//AP/5AdRvO1r32N5557jt/7vd9j2bJlvP7667z88svMmzcPAJfLxV/+5V+ydu1a1q1bR2NjI6+99hqqmvkT8d3vfpedO3dSW1s74l3t3/qt3+K1117D7/dnt93o3H3+/M//nD//8z9nxYoV7Nu3j5dffpmSkhIAqqur+ZM/+RO+8Y1vUF5ezrPPPjvhNhtKe3s7p0+fZvfu3VRVVVFZWZn9B5m5L3v27KGuro6tW7eyaNEifuu3fotYLEZBQcGYzvXggw/yzW9+kz/8wz9k3bp1BINBPv/5z0+o/kajkb/7u7/jf/2v/0VVVRWPP/44drud06dPs23bNubPn89XvvIVnnnmGf7Lf/kv2eP+7d/+jS9/+csTOrcQQgAo+kgDd4UQQgxr48aNrFy5ku9///vTXZW88Su/8iusXr2a559/flT7NzY2MmvWLA4fPszKlSsnt3JikBMnTnDfffdx9uzZMQ/nEkKI68kTCyGEEDnzV3/1Vzidzumuhhil1tZWfvzjH0tQIYTICeN0V0AIIcTNo6Ghga9+9avTXQ0xSps3b57uKgghbiIyFEoIIYQQQggxYTIUSgghhBBCCDFhElgIIYQQQgghJkwCCyGEEEIIIcSESWAhhBBCCCGEmDAJLIQQQgghhBATJoGFEEIIIYQQYsIksBBCCCGEEEJMmAQWQgghhBBCiAmTwEIIIYQQQggxYf9/BBk8Gkpi0DQAAAAASUVORK5CYII=", + "image/png": "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PBERESHGjh1bpa8yo8GDBwfdt1azZ88WAHx/Fyrt379fABDt27cX5eXlmrY1ePBgASDo/04+bvxZs2aNACCWLVtWbdmTTz4pAIhjx47VuA1VVcXDDz8sDAaDb7+tWrUSmzdvrtI3evRoER8fX+XvjBBCDBo0SAAQTz75pBBCiNzcXGEwGMTkyZOr9P3555++7Z86ppUrVwoA4quvvqpxrERNAU+FImrizjnnHJjNZsTExODyyy9HWloavvrqqxo/9S0uLsb999+PDh06wGQywWQyITo6GiUlJfjjjz+q9f/jH/+o8nPlJ4w1nW61e/du7N27F5MnTw74iWNJSQnWrVuHq666CtHR0b660WjEuHHjcOTIEezatQsA0K9fP3z11VeYMWMGVq1ahbKyssChaDRp0iSsXbvWtw+g4mL4vn37olu3bgCAnj17wmKx4NZbb8Vbb72l2+k6V155ZZWfV6xYgfj4eIwcORIej8f3v549eyItLa3KKTn79u3D9ddfj7S0NBiNRpjNZgwePBgA/P7+asPll19e5ecuXboAAC677LJq9by8PN/pUCtWrICiKLjxxhurvM60tDT06NFDt7uXfffdd7jwwguRnp5epT5x4kSUlpb6vp1ZvXo1unXrhq5du1bpu+6666r8LISoMl6PxxNw35WnEZ16N61+/fqhS5cu+PbbbwEAv/zyC1wuF6655poqfeeccw7atGmj+bVqcezYMSiKUu3byEr/+Mc/YDabNW3r1Vdfxfr164P+T+tdumq6o1awu2098cQTePrpp/Hoo4/i+++/x6effopOnTrh4osvxubNm319d955JxwOB8aPH499+/bhxIkTmDlzpu/uUZXfrCQkJOCGG27A4sWL8eqrryIvLw+//fYbbrjhBhiNxiq9lVJSUgCgyt34iJoqngpF1MQtXrwYXbp0gclkQmpqatBTWADg+uuvx7fffouZM2eib9++iI2NhaIoGDFihN837ImJiVV+rjxNoKY395XXBbRs2TJgT35+PoQQfsfcvHlzAPCd6vTCCy+gZcuWeO+99zB79mxYrVZccsklmDt3bo2nbdTkhhtuwLRp07Bo0SI89dRT2LFjB9avX48FCxb4etq3b4///e9/mDNnDjIyMlBSUoJ27drhrrvuwr/+9a+Q9muz2aqcUw4AJ06cQEFBASwWi991cnJyAFRM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MjJSnHPOOeLzzz+v0jNjxgzRp08fYbfbRUREhGjXrp245557RE5Ojq/H5XKJm2++WSQnJwtFUQQAsX///qBjfPDBBwWAKg/KOnn8Y8aMEa1btxYREREiMTFRDB48WHz22WdV+lq3bi1at24ddF8TJkwQUVFRfpe53W7x9NNPix49egir1Sqio6NF586dxW233Sb27Nnj61u7dq0YMGCAsNlsIjk5Wdx8881i06ZNAoB48803fX1a7wpVU26B7gr1wQcfVNlGoGOlcgzZ2dlV6gsXLhT9+/f3/c7bt28vxo8fLzZs2ODr+fzzzwUA8corrwR9DfDzgLxt27aJkSNHiri4OGGxWESPHj2q5FNp+/bt4qKLLhJWq1UkJCSIyZMni7feeqvaXbYC8Zez1+sVs2fPFh07dhRms1kkJSWJG2+8URw+fLhKn6qq4vHHHxctW7YUFotFdO/eXaxYsUL06NFDjBkzJui+ZQwaNEiMGDGiSq3yrlBz587VdV8yNmzYIC688EJhs9lEbGysGD16tPjzzz+r9cHPnbIKCgrEQw89JLp06SJsNptISUkRQ4YMEV9++WWVvtzcXDFs2DCRnJwszGazaNWqlfjnP/9Z7bgUQoiPP/5Y9OzZ03ds9unTR7zxxhu+O9SdTFVV0bp1a/HPf/4zvBCIGglFCA1XWBERETUw06dPx7Jly7Bnz54az7WvDbfeeiuWLVuG3NzcWvnmpib79+9H586d8cgjj+DBBx/UbbvLly/H2LFjcfDgwSoXK1Povv32WwwbNgy///6773QzoqaMEwsiImqU+vbti1tuuQW33nprre7nscceQ/PmzdGuXTsUFxdjxYoV+M9//oP/+7//w2OPPVar+966dSuWLVuGgQMHIjY2Frt27cKcOXNQWFiI7du363p3KCEEBg4ciN69e+Oll17Sbbuns6FDh6JDhw54/fXX63soRHWC11gQEVGjpPUuTOEym82YO3cujhw5Ao/HgzPOOAPPPvtsyLcTlhEVFYUNGzbgjTfeQEFBAeLi4jBkyBA88cQTut9yVlEUvP766/jss8+gqqqu13CcjvLz8zF48GBMmTKlvodCVGf4jQUREREREYWNH0cQEREREVHYOLEgIiIiIqKwcWJBRERERERh48XbNVBVFceOHUNMTIzvIVxERERERKcLIQSKiorQvHnzoDd14MSi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f32uh3TGkE6n6erq4hOf+MRcD+WMwGq1smHDBjZs2MCHPvShuR7OGcH+/fu54oorWL16NevWrSOVSs31kE5rdu7cOTHHN2zYgMvl4v7775/rYZ32/NM//RNr1qxh9erV/Nmf/Rmy386p5wtf+AJr1qxh7dq1fP/735/r4Sw4ZFco4ZShaRq5XA632006nWbt2rU8//zz1NfXz/XQTns+85nPsHv3bjo7O/nCF74w18M57WloaGB4eHiuh3FGcdlll/F3f/d3XHLJJYyOjuL3+7FarXM9rDOCZDJJd3c3Bw8exOPxzPVwTluGhoa44IIL2LZtGzabjUsvvZQvfOELbN68ea6Hdtry2muvceutt/L0008DcOWVV/LLX/6SYDA4twNbQMgbC+GUYbFYcLvdAGSzWTRNk19bZoHdu3ezY8cOrrvuurkeiiCcEo48aF1yySUA1NXVSVAxi/z85z/nyiuvlKBiFigWi2SzWQqFAoVCgXA4PNdDOq154403uPDCC3E6nTidTjZs2MCvfvWruR7WgkICC2FannjiCd72trfR2tqKoihlX3t/5StfYdGiRTidTjZt2sSTTz456fjY2Bjr16+nvb2dT33qUzQ0NMzS6BcmtdD8E5/4BHffffcsjXjhUwvN4/E4mzZt4uKLL+Z3v/vdLI184VKt5rt378br9XL99dezceNG/uEf/mEWR78wqcU8P8KPfvQjbr755lM84oVPtZo3NjbyiU98gs7OTlpbW7nqqqtYsmTJLF7BwqNazdeuXctjjz3G2NgYY2NjPProo/T29s7iFSx8JLAQpiWVSrF+/Xq+/OUvlz3+wx/+kI9//ON85jOf4eWXX+aSSy5hy5YtHDp0aMInGAzyyiuvsH//fv7zP/+TwcHB2Rr+gqRazR944AGWL1/O8uXLZ3PYC5pazPMDBw7w4osv8m//9m984AMfIB6Pz9bwFyTVal4oFHjyySe55557eOaZZ3jkkUd45JFHZvMSFhy1mOdQCqJ///vfyxvRCqhW82g0yoMPPsiBAwfo7e3l6aef5oknnpjNS1hwVKv5kVyWN73pTdx4442ce+658jbULIYgVABg/OxnP5tkO++884yPfOQjk2wrV640Pv3pT5dt4yMf+Yjxox/96FQN8bTjZDT/9Kc/bbS3txtdXV1GfX294ff7jb/5m7+ZrSEveGoxz9/8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", "text/plain": [ "
" ] @@ -269,11 +293,11 @@ "output_type": "stream", "text": [ "samples : 400\n", - "cost range : 1122 .. 687256\n", - "time range (ms) : 0.117 .. 3085.6\n", - "Pearson r (linear) : 0.086\n", - "log-log slope : 0.794 (1.0 == perfectly proportional)\n", - "log-log correlation : 0.581\n" + "cost range : 366 .. 2984422200\n", + "time range (ms) : 0.122 .. 2956.6\n", + "Pearson r (linear) : 0.967\n", + "log-log slope : 0.487 (1.0 == perfectly proportional)\n", + "log-log correlation : 0.899\n" ] } ], diff --git a/research/cost-on-random.pdf b/research/cost-on-random.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ef134a0e9f5d5ad0ae17441f0bbe2dd9515f7cb4 GIT binary patch literal 126649 zcmd41WmH|=vMmZxT*86`cMlKU|!QI^*LI@Dt-QC@S-$B0p?X&N_ z`4eQJ z?Tu{dge~>#jRcJhYz&R)B#o?1>`e(6n3>;mbHmx$+ZyRv!8y;&Yf6Nz3L~`~mJZ>U z$sfK%c@_-S_;hVzy5%`r-Ryj2K#H!(MVXhE8uElhBu$K=!K<@6t8yWXU1|(9qHW9; zBzuA*ftUSD_?X(Q-^a4YZz51G z_`hWNQoNv(_(HI(uKB~{Io&l@$+X+;Y_Ci!&jZ8ls!KA4dzyWfJVWktV*9bLNaW&E zrukpYVUPs0e!NS%vtN;fR`Ryplh-!GUWgGyXHYd{rAHA*xBKLQ+k~MV;{A0Fi|y9t zgW+Y|uq>Qv)#2jO0{;E!)!kvK3Hy^xulZsEx2jk%Hh0*#gdh7qXO@Yz8{=h{J5+_w z(ymNlUQR{OqiP56Q82yg@#`N$78xhbp2O(lj~}M_^y?{vWUNg>kSg?2?v-32r>_Eg z;c^Kt+)0B3Px<$C+IDK4)#C5xhkDNV{<&WYl!TAFZ{8M6P#K#WKFt?q8JYTpZiH~~ z+UKK_)fZ#-r(b=sbhA946)0*3OFDc)(bt=gy7f_n{yGM?BzY#jjw-wVYLz$t15#EP z^m78z&k7N*Wo^RGUwFc~5w%>+A4M~-kA&9u2>R>zFM0;l!XJ6~Om1SjxZ5`(>`4za z6h&aMux&U6>FfVKA4NFUu*bGdduOMgZ--58EMmY)LC&ZeBY0@^o!EO*e+gr1_a}7- zQS+_rm8~PnNYJM3&eks&iOr6Vu*!_JErg=+iTcXR{MdxotxXx|>l&*vh2C%M@Mj|^ zoXxX;d^yl6+tOalPzkVr^+F@lG=QKSX!+jEFS5d;^5$oqzp$!Zk@1U9?(1j{^$Tf8 zHZ$XhPHa>rd}aI9F)pQkum~cjyIX`i(x&rlEV=W0TUekYOs$V6shYFXv1W(TWu-lJ z@n=6%H0{ud6vQ!&`#mF8tX(-S)~`A|9mtC~9e2(_H}To-xIazVmQlLuD>9FAh_>@s zKSM=|&3!6`YQ3gA(ovx7J^Hx$-7m>f!&@Oqp(6R$B=jJb8V*I)R|V7+gi%g8pCG1y z3!HbJibLN%Bj`WiBhISUnpRK?$p)Fe!g$8YzTTGCBX;7<( zv%VWCH*54X6HqEbdQbDCk%wQ~C*}SfZ^PwF!eK7UiTA0=B}F!@X^aydb0y4Wh?G2@ zDvRN6Mk*>v+hrJ)6n7UTk_hlI?$!bqLbJ{9WsdiC1&dSKjSw@UkA5@Cmh1nD$$+Wv zkFRwqoR~_WfiBX%nD-CC{FI4!6FXtKd?T8LLabtAZ+97BoeR} zse*%q?U)%f=ZuQ2R8(J+Pf_bb(ZCBqem1;LVDMosZzK8?y5J&y{jXn}(Wj_+LDq^+ zQw4h;#5{7?*PGtwwG2(}^WmEp=#^c=nV8kTLmguEBGNmi0eo^;X$9txMk^(I)2_MD}Y zy)NH*8MH&s_rsvNY-0eIIGVv3r4qs+oOemDyb+5UM+teAlKaXcN0AFLUeh7O&~_Lx zQkc?AE~-^?Q8a{pq;7Y3>4_U94s^4ujppEp!F?uJO_+Lp&J_`wGuwL>~CRlT*Cf8Bkz)1{?oPI8LGu zrd8LjU7AaoFGEO_W4ysPXubL4_q`LyOUjG4PRQ;;(ZBrqf+u`U-XFNgzh% z9(YxK^wT^Y`Z?|9?F<^s=G`q}MkNj|-6q(J8Ach>7;bMgvptM=cGHVG6E{9g{t_2E z6IR_TEI{}24Uuolj8KN->J(MzHxBX_&+{?S zlHw@UJl2?E>u7H1Y64j>^(8J zpBf(qgOQ9@zm=eGTx-S#Uy$POmayp?mKxJc)Rriz<5c&k8a8(^imOAQH=$gMPZ>kG0x~Rl-rFMzqx`lo8VHMZKk_pF0%a5pE~bon~x5( zwH{s`Q_gfYjkJ~Huy~N-qV*H9dGv{P|F-Efs4uSBFpTr4%PF>htw}#WDjHT3QV+`+ zF=#KiU+I+N`bpYKsf#GtX;CX}fTQY_*JV^txz-zvkH}vYSdNnCd~X^~AO`5In8nCv z;|S6Sgge%qv27o9JG*{sI$nx}cT*Nnr~JZnF0Oa*9L(mliFr1vSYE2EOxRR9SW3Z% zGrUP&ja5B1nzNZvqk+U5G3|^MDFI@CRI5SvZ9jWvKjTKf$^h&9;KJ zk0NRrFJbACK2-^X$#c_pz}S=!syEQqMEzT7mmDL=&z_~YFV2&XV_h%or%gZtBs+J5YWQNY7}E5!=A zp}p7C8v4D05C4u=^(eH2ly>4dn`Jwi>K%p3#Phg8p6cigO&9$hmeNvA3_m;Hc3mak zux+sloI>fO9>0ay6>4H~agux-onLh39G3;wIxRG=Zov;8A}rXv6e^S~v-qo;%sF3{ zuTBNCW9f;PTVFq5w8C1INRK;Ubej@{b~s@r2gkO{o6zf>8pdNs%PUy5b?Py`*nKr! zhe+48A>wHKy}Z@zW5YM9i<;M2^=)NLfZQF=Y=p9PR}9b{*VxsKOHJ-}wL4_LPc6&N z7s9ywaVDex-VFC>V$A5*d;OFU;-US}B!A~KG6`+7<*Xrg!q#ys58ce=D@ijhtSBV0 zw_ZY=U!1RJAE3X7BFn-VSsVU?ae{Y`9F>9L|A?$IF|qzDS#8Gd4&7ruNGUx+j?VOe z_UY99v<6-8aAeJgG_R#)gOtn{+kSih>leKuCiQ7pE6A;m225X{i)VWzOygEj+pxF zX_{l~h_gz1PhC8HyJGqxFT=|SUH^@3ZgpMbf&r+vDzr$Ck4DH zdXOA7N=T7&YsuwW$5m1M3=7H9SN@QiL;a3e(2y8mv%SF3pJTRQWFSFJXS+81XUD9f zw_pTJFOJel{I+r&EdN79U)(jVKVkVeb#{8T zYqRXA?V?OdZt{F4xfdV`k-LpFx*A+gzjjOZsS0=}mmCMVwyU1VjCqD#!NKW;< zxjxOhDvCkM9I2gnpQF`KTAGVylHjMeL5ldEU8^^pK{D;Q(uKxUonXeIfqCc?PkP_m zqPaF*9M4w^1EGxsRR}&VKYh9lzmHsOlYAXY3%Ilw@>IOOPN*t1dxH?ifH(+Iv1~2M zRzfdM&L*d^9mHxmjANF0mA(GYSpQy)rl9unPGrGs#=a`WMb|AEA|qc|zHhJ*7V#+Q#_hiJ zyj{WJCw>v(;YGB0=ssfKK4Q+L`_S9i(s~5z1V^$SI9u4K&4aGp%8ILt+tW@&Lz+=yre9kgUZ6ww_k+9>PiEIfi^sJ9_3~^qm zai|xO!n2WeiCNV+n!MdhQXPY_{sdc5+MevMxdVKehbm0BLw!kws;D+_6MX1JxoGrF z7n(&F+KssGqTCvKae1AYH4Ac|Hx&gw85hGkB^N#I>@cAy_*ph@ibijdcro1J^lLJw3=cj8R`%P;{p}bKk1KlljA$ zjw_fAxe{D+^6c}-Yq^qrg15mjV^83w?O)a&m|oJ?(zetSjxo_?CEz)2uOvo?X<1vj z?ViXqI$Zof%$(n!;2#*tLvKT^ouIDdj|=q)qKK97$|!mkS-poqSyY`aQE|b-VqiOD@$0O z2J&N9Bu}0Sa>8#ev)p(dK~nM!97Xkej4;Nb5&X&r8SAc9Vp2@lyRWB`>qN|7TVLhr z*H^zG&wFw9j!ya_R=fwdiM3VG?YoKYWwW+=rqgeP_s!K-r=qwcN%5Q;IBYR68^*Z@ z^c^VHM0AkRC1Vy+grd{u2hU1gC^e%hCd#dDz-?o#5F6D+F&&a7!MFG!txiwlab;l3 z*<;;hh!j>Ct=J%&#APbU+9H!C4MJr%5*ukM2v}xne!!I~+aO>D@Gjo_Bb zzsI;Z_Jp{k^5X;UNHbT``TSYVDROKRn&-;#2!36nc-w_7(0n zCBCd|Ul-MsyFH)T0c=&hXZkn#@A~Ih3cLrwh?6POt8fu6J8bu%vKVihi4AFzkY|!M zOP22%*2FKqX0$kkN52XFouf))`jZp6r-@-pD}+Sbr;g%=H)xI9aFriRMTY#oUEsN{ z+CglT7FVP@kk{vC%Bp9=BT5xfZwi8x%$xqG+xEf=ozkL2$vA0U;!r9WnYOM62xJ`gjHRTwD zm#~kiV@9}E%99yMpN^Elnu!4tnc}>UeNWmDZW8W~O^9KF%bC!^yxP`b{@^ zMuV$6cDea3t+HVKds}G@2x&rRD%&rN)9Jq00_$vxAlK85=+Aq@32Gc1`eD!PjKVge z_9IR_s<>Y56vinI^p4)o<{loKZl0@JtZM7Q%*y^Ou9K3Jc*<035@wU;iema}3T9(u zs$ympH~C&pfO?%M{;JF;^n8td?klB3Jx`Ik|AxA@uD2CrE2d?lg3-CeDzK-5=#B7& zw%^*YlF|MtYWJmLOk^oWkVR~VYwnuPcfW&G!<<>}jQ8dhqqlq4w+Vf$RW5O`sJA%a zsXi(a|lC5z?Xa7d>A;E;+gAB^Z!W%SLB4D9I?9Q5rU{}!{-Gclr5F*5|Z zCkxv7#lot7mIv2Xxi{^#TIczgDs%pnrVhU}bIh=T5S=Muuhv_BOTz4BXuRxf%;c zPtVBmuLO60lpYZZ3ZcF1n0$WTXsF#Eg_12z=*frYbx$;*OQ2LfQGZ8Yg8N_o{5Svl zmn;60Fa3SRf4=PF6@Op#|M`tI38DY1NB;2qe>;W$X{-PCoc?(Q)PHu8e_iqa+l@=Y zq5dy5$3Ktm-yZCL%K=qH|8F(N|9gJ$iJIj9mazPUihMjQG5l}P^HigL_vT+}qB%Xh zJVJnRBSGPXpqnI{jeCIj}{BkO0|qsbgj zB`AfbH;1h{^|l>@gQc%5vDD$cydIqHczq_AinSV;T7oX?>`oI58ItAb#rsmX>nH*5y`cfENN?NbJ!Vknf&SE;&OI9 z-{Nsos8U*>RLE>Tmgfim8tcs)Q)#=K3o9y)=7#qS45kU(9@jX-QEK1`_@SH7(b3PxRdl)yE9^E0oczF)zbF)WhJs7|MK2+ zWph&#g#+xfCziOtTuY2rGgS_|6JuK=*}?Mpx7)d?NI0zTT+d7uH=@?p*4|)Yc`lP% zO;;FQ<@1`G?=(2<{`m0&t|L>qSY2*VDg=+qH7hI2a@i(;&K*l$2r&lWVyt@Xb=#8VJV?SQ+jWf{K=jZ32o1fp-yF8e8u(#jnPjp)O z30uIdf$6H{v_ErRyXdK46IX7~)nf6Q-Er^D-9tMvPhNmzB6EoTbZP57yZIPJQy(-c z+>%$7#boF`ohw7??fIn6*@BeKsLeuCc}snsdleL;%&+qSU0s;amGY3+6T1|&Ds8vd2Qw0N- zPB#a01xy@Xirw`9CwlejRbFn9LT+e4z)M_r4h{~R`Gy!W*-J#3RBqs~H5>06>g%nh z%DnGoPc0E~O;XwHHo#*yG&EG*2EV2Y4GzvUNq_3W9-YhG!g@!~#c@t;KPLk(@Ss4I z{cw76^5p5$%*;$Pu`SG-^IZ|-@lE6lU^}x>GS`x-Dn|7I@24-XudgvS*A^Qm6i@l_ z+)y3C`FlOwUDjC50>9c`?hL^;(=vt4&&)Qgo)G1h)u?aX&lQGYWNdUJU=iIq;PS;zZuxjibv z<=Z1_!AFO|%s&ht<>*OASGtmPk$Fc*MHS=-6{NZ2efA?)4V*OwDjZ5W6x_{bs@IlR zaU5)3t?5+R^5voz-K)T@kZ%nd;%}S|7mQ@6%CKGt8wc7TWDGSV)mX; zGLcc~Y^_ahR@Tsm9lCA8*_evcd=M1r-HsfZq2R*qwT+Ee@xV~|Ukx=+J5iK-NeqI-CY&y=##YJhlv$e&_$|_4w zsW+sGh8BfRtz3pS8aWzWQc_YylAoUsAvG(f^p-2Vg5?;AAQmxw+Wf#xem|FJm8mwo zD1VT|XeJLrrsd|K(Ww|_yo~Sj3;R!eYPlfV)d!`UcWan`P|Mo?UhN7qV!&)hVSG8# zjz%sm3zzjx!yb7JGS`rW_oK!PcRFBmAlcw`jzX@qA}i#@EaEiLN%{r`<6Pd?osK&VzWmGa?@gxANX`Ul)T`2-z0>~*Rx67Z*3b zmU_$xLn(<#sg$nx?QG5(DjuFRcCd1|!UxJkXK*C16PL=V(j%`&^37&<1btr^brn?7VQlalvnRHe3(^AB@No@PPrOJD)O3)7W2 zh2ZjdHccQymvz0c|CzxSjwg?rC2ux7H&^%3;6f8(Byv8jdF~E_i$3%q5P+1-VALbS zb9Z*M+jSIhNIp-sz`Kf7m;+8NRUKtKLe=4*l-Ba?w7u}br)GQ!*?W!Ig8 zL}n{-D>(Bf-k)6KwnuXnTJK>e%ku2xYmxD}B?GoW+Rgp>9Vz`vfsz8NqI{`4iaZ)Y zI+;BtIy#G6i0}MX*O!W0Javb;1F8RKHxk>2B`7OpDkd75j!^(4d2z8AF}4Ua`{bN9 z>gwv!(xEXiO2cvq98dky&vz$BxsTM$v(;{0&v)eDay`fh3B5Cr6KPcU>Z$t;-?{%j z3PdB9mzEcyaCKznDL?*_ku@PPo6vaYc7mo>YmMuMBuU+WS|?=Iyp`ji3t-o*!>oAw zT*8ehJIUpAW4KquBPcinId`dt2|Kvaew$wi53rQyg8kSjQ>*whEL)_Vo~$ZpjcU`3 zFFwIMSHi{hQm`q=%oI3mI&2{MnG%_9-8nfKw~#C)CABTp1Tq*yyrdl#KzxV9<}b3Q zPhtg$(jTU=72wj_Ep~|EX~iWK zDL9NwOG-{&=@KoEMe`6zDv=kE(;5;MhRB){k5h9AG)j6}Px|do zPohJvkObRr>$=cy7_w9`UU%mzhK5;*iP+h2 z7ZxGhc|(EF>gqe?p?F;CrVMCkXcw9=#bW^MaBy+QO{{x9;HPD0uRoj)^1yo}?2U43 zb~=u$J0ZV(8IVD)C9YkVVPcfPWKrXGX$?nPYdxRwv&s2b9~f;$V=E8>_uS9fAt=M_ z6&l+1_ob-9%eKZ!o_&5iBUkl}x;oZ=@3ZhH@e|HH#?=yWv>+`61<80x(`m53kk#=4 z$&YP3ixty)G)Jmx(;}r~tnULpr`@AN9`PhUJ7-M5-2s$kJnocR84!xCJCDw zvc37nOYra9X(T+(x-Dp~)WKY%-#dk+j(bylFSk0r%KFJ(3e2O&d@(*Rkyf#rpDfl; zxs88qC&goK=5>E%vg0~_i4fzT9Q@LUj70WZ(g)1DiTt^t}S4alJOiBrDzCxs8ln9XTqQVBnia+^Kw zZ?Ei^((en%%|~||hNK+qZ+YuSXJ->J(zg0iIbD8S9eSuh0j$I~Ha8dVssMp?<_L0* z6?<0B>R6;ZiOG0@(iqo}8_W4i0Hawg%TwhB5H(XpUS3{6E*k8&SGKpsl8-^H1oqc# zF-coPovj_~s>z;$0p|xWcDBXC?dD>CI#Dl?$wK&nPN$^_P$bA_Q>Vy?IgmLQqbPam6VWBLQG;>`&wS4A4R_4H6j}+v!=BdVe@wnHv@+BP{%) znCT|4DV9dV+>>j>q-(+X6884)Znnxyfa4Yrs;Sb6tk-G4FO2(a?d@*?jhPC7)L2?t zn!fZr-9W@8$6@{ONt<8?-o;*VX=Q~!CY@KnbKgm;dM{{*+|aAcw1pOC|NXA zRmL720E}+Azuwg!X!>SxU2Y;yF+B3X zs6o|OTuftS1jm@lTnp+^g%==V%|FtHdt9iGm+GXRaIFVUmg*?fWj(6|djUJB+{~s> z{e5*MBqT(m)e!v(){lG!lY8}2&r=xUI*`OB;B7NirniIdJlqr^p~ia`t}R|AAq&Oy z?p<23m=~yH7tIIWadIY^H-abs^-EOU39hv2AmK`bENXZeu49Xz+(WIZayT|)9$AM1 z8ULrpAmS$|s3W}oM3!8X8smPf=!}uyz>ZsKD}cmD@5>@O^WcetE6hN(RBJh%aW3#w zmXAiQ!Vpv)zhq=_ZVQgwvZ0`|)3uvjH#RmvQM#i8?E@!86+=cwHW2?lm+1Zlo4ZTh zYdEN-(f)7rPlfUrefbHcsd3^A$^VTAAtT+gRMeN4&@M z2vPCzW)>DVCHO8yYp6jdQOU`;7f-=wzn>i+AFF%4YdI02xDbgmy<_rPzI_iC*t2nI zq0V>$_XR8C69qwydcz|W=|9Kv}k4xYirtmoExrxTvp(XrQGtQ zWmA~Ik_IgPDa;?{`Qz_Dud>$#XUI(yF+I1pw~>8(+493UK(zP>js5(V;n@>t^XK3? zCF3{#Vv>@Q5)#x`?i9}qjg42_a%I2MeLjh5ZsvMU84VO1)B=REtL~njo}r;Kl4KTA zC_n!6%*@ZvK0Wb--c#uyBOw_pQbR+33Y4Dfk!W$!#8lwR;ZP{)R2b!|l9WL~IfaG6 z=1@@4=>^UT&)puP($fiXk9-xk-q@*-D?nibT&Nnz{G`m(`*P5B? ztEfx@0xIYB{S!2(ae>`a!XUMFBePg#HhQr?+vs#CotcrDxxcq3ox%x9jzK__9q%G+yQq7l8{e98~5H&x&S}FPkg+Ziz;(Zsoh2&prX9u;^IL00a}>X?XgI) zg8W8iF(w)s@gL0!Tn?~Ypq&!q=K5NmKw4bf9LPC>f`Wh%b34)lhO~QdAl*GXF);z^ zb%517Bf}K^l-puqK&fKWj`j5PRCHmN{>}k`;zbXUH5bo5iPQ1y9vH}(I|bt1&!2*T z8aYM->ttrGb_Bns^A)q>7`ExrcP>x++Kz-^#OJ7-8pwW?ENWUG0ix&f|5Tq;TXQ z1tIq3Pv4-x`W2etsctuL7LKd*r3q>lXnac$_e3N)8D6W6R`C{}JxOjoWi&ELRt*AB z`r~oCoU8$pf@1)Lnu&#FvBC)6?@bRrIHG6?3b7%SAWCqk+uPfjB4J3#$eX8EmS5D$ zblZTHM@L2|KHlG+4gyV-_R3Yx7?;HwCtJf@;R`4P<^hv_iSS0&v_dM8dH9J!iyn`G zPNlI_4HiQ@kl;LCBH{eLn6)wcl_3!bE&s(XiqJ^<_%s^vfK73~$aO7PEMqj^ty&tI9q`jJTJ_E7}e z%1x7TW1@Lw)W{z-ynqgYRDE0(PC(ypR>+Zz=kemc;s0P~msv29F+%0*?>|EAqwwK; zqN@wIJ_ji3J3viKQ4eGzyL-3I-$3mH^&HbB%f*f8cq3yYkHx|Ak(?|q1cgZudXZ_C zAygKWzD+KtWarUi>7n>M+8)P3r=NwYHV&_oA~y2)N1Jv_pFDXog(oUS6d~)cz>{?! zwv$0|RKpRu9!tVQ86%FKTIwKH_u~5S>K2mi{Sp~Zwp8rcN8!kWCk&q_=S8D#l`k6` z8?|y#+5rzWwZ+dbsAGrnhn`1EZGg=Hl{T{B1D5Eh!h<+;^!17Pc){@0LbIDrt7kLN zHvCdbydLfWQcO0G$mdsWeMiD&2O0j0eDq^Vtp=K>zpw9*4|>Aa9Drf_z^6g_W08>P z1+w)*Z*MR^EP4`^KsoOnIS}!xp!NjL8D^)ZWUE{!85EYb7MdGfk;Za3`Id`@REXrh zX3EP}P&PPsyd^fu1T+hz-(dk}RE%VFzZ9U!D9oiJisVzUvBg)|40k_DHSl7T1wd$k z9GjtyGFBl}g)X|EBI5E4EwEb6Fus2MTHO+h$@yprVD2NY)+aR*q?!S+LTQ7`;kdUo zoXIGluHJ8=cNr2L4RJu-BJALsK|gM%OTDEHe3J1gj}T5Z`kHp1Az1c_cN&1vv9yB# zSC}1#JT(15D!I5p>8R-FpDEE9NHOfMc813{-lKYFgftm5wNls=;5s1 zs#Cg}2W9PCB8l%*MXmNz_1GKI%R%UITj+9?%s z&Onc9?K091@q9lOmrjgAkpi9FeZN(P|2Uq%NywX<0IHMD43*}ZP!G_2mNBz?w-p_B7?f@V(3J?_yS};ty^-pz+R)*jkHt!d=h;@o#3sYLcg~ZZ^7hDj z0fIt8^$iUpyZVDET<{og(^dl<_h**pQJ|JSM>5!5X_okvYpc=lZVNvm!B00tbZ6cVTsE(96F`%!NxP@E4Ip|T zP;NQNgBCoBi&;^Fa%GRW&&d}kOrnqC*wt$+#q827+ZL+t@DA(4RTMp;`=O*Y_;y1a zzzP5$$V2qWJ%1k&W|Llsh^h)dHx&R<;#aQpy!t*rPhuI5hA-owyR+zdBXt*k5e4AY z!Z@wj?XqY61ju~u{whA9(w9#jtJx#_oiWOb76&O%oIiFuG^Z*}WP-Q>3!q?x#(gCl z^eCJIrt-3X8HB__g9CN8*abh{`a3EWAa9IeNAx9g#7)EniJ=y(alC-yB_&g#KwfaZ zquRI1Ri5mrb3)q{f0GVC=d5IDMI~*E!o%b4*ApR;K*5X*{7(f#=94A3*w{BfH#IOY zP;Zp^_SB&r@CiH?YfVv67>D-m?(VTm7K@3mcgAE=_~%wn0MLephH7hTLtsEQ6H3sb2T#YI2|ZaT0px zGKAoJrWw7&r-b5M0AGYe&(F^Tsoov5BxjO=(UnXe+oZDHUbNSMaLJ@_UL7s@A?F>+{K>%rOp77C0qgIqcAK|E%&*Tr@(j~3VMm7m2vJy z{r&x*5lXSRwy`k*N^YNo>(>FQj7j3ldwYGJ8gH{Rh($tW5!js$k~T;cS9W&`fxe`- z3lwFb{}==V{1x?%3<820w)v=fnM?Ex0K3Ho2Mcj=I4Mqp&ae3jxwdfDZn^8*BiRz_ z>R99ArxIW|i-3va&sN&L@89qA!g~;foxnK^;x|p-e}>Zv zcmgS_LZ5e2qEeEVkBo^yw-&r(`~!>1te0r-?{P05oO+OKw6sK0uBPGhnD|Y9s6EaJ zFTlg531>Q-FGzND&hS<{8k;6e%F2x1H`L9L)TTA@6zWguuPm@<5A=_MN((#8+`)u|2#ON@Y@yg5Q|bff zQ)gLUxB>wa{2UUuUJ9GioPWh85dLhnhuB|_;Sxtmtx7y5VPM%-iX5rt8;_rfzM?b+@?TdZH+3C% zYqwSKlqzTp)rGSD)M#~xvaR<0Yx&T3E>~c0Vgj`cC!8fMyjx7ew_OpM^R{uSfA*i& z6yC8A>HK1I(M#Ow^MKV)Z@h+!@!ri0B7SHf4NWWLnB>r^#g(rURJ+7(#Pakr;>~>S zU5}l8F8nwy^Qq$JJIRam_uZ#IV#M;#h71*Tf`xcagpAkS%OzO&!AQx^pFihXy%xWJ zPXihU&>?}mM##}KJ?*kPQM^M5@Z0U`#HfZQu9u683ye&VMsESvERk%gaHL2y_d}D=HXRSe)$bH5=?HtIY_Eif(V+AGHlEFeL)+3ubi6 zL1h873@~3|0dyLU0`SCV;llZJNcSd%5Zzgz;+?e?@R}7t`eXIJRa`ryh(kRWM117q z1?q@O(`+N_iSL>BGMP5xG2uOOpyGXymBG5jLxEcI%0Nc!W{{RjBX_!Y|cy@LM$Y)t57$w*yN?>U8TC>9o^O88{0_?KNw+5+1H$Ci1K363BS!}%&*{}I2pdrQXJ=>21?`Mv z_ksoig>m_)ub{`%Ck=WEdz z=`KSJ&e}VK!5@7mx$&LtNmT1rtA7&15#~FDsJq$tH5b$#7Rs}sH64$)w>hUm#-L~Q zSLV>XqFW@n@!h~_6}6gYXZlH~{UW)gBq94R_JeE?-E)R`Bmb0{fsG-wBy`B3s(w}# zpkNFQ%wPNebUPss=#~b6Yi!~nC!TdoVrZx(X!6;ghhGqjp^-qGOKNeX6UknQ$I^Iv zJ!~k+LmL**1LhJzUU8fzrzO4drCLGDw_+?ST#t-rXO5+S|Fg7du5(l*rwcr@X^H`R)n^iZA{gNL8=bwfG7y5rhqsRp6Oo26XWz* zV>yu1Xq8g+sV9< zN>1aKWDLD-U{&~=Dza>}jqOskAXM8pgi};(*aj^bA=wvFD6bw|FkS`nmaDb>j z&o@2ee6^u}p6HOE@q@sl1F)vd_;bx@00*e9pr*zAJI?_iL53;J+iKe)2$+)92)XGpEKgx3r@z z#izmXpT_U$lUA$XCN}2@&~qkw5AXFlDx&$rEbE^*YEqbpu;Im!U2owX`ujx(IBmVuQ^x{UsW8Tr(yYWRhp-78!>pJ|%CjT1t zhquJXFp)Zq5?0Lg(UOhYMuvU}3OWgf&04D*oAPf_=W@`}b#$mcQldu!*6fiE3X@ zkisKNxOqA_g%Sh(2le+)?p+9vVS1XKqh@?^&O6ezuW7K;-~Pe%G+g4rDB*)}f2+;4 zbs%U8Eui)1AZ_lXjXrz)?kA^kt!s_PsQ+X4>PiIr$znA`BX2sabkM!g*VjK-Y_-wV z1)@m+n1*7poI2uxPSpcr9Dv=>#fXCvrxA!%fE1NwuG!Y-=57N0-H_q27p7dQt(7T^ z=m?PlLl>@FLxkqYZ{86wFpSL2;b@>jL2<(ysT&79?DTE5k8K3|#Y&i9BJKpGHasmB zzbt(F*!5glu>}*BU>ubK0teLwcEDIT zs5%};cZ!ONK(zx}Opai3<6rv2!BRlVAicc!AAG%aTvyw-1^NX=ln`k_!h_NvN+=D| z&6jRaB&4LIQ2BzPn^kJt`e*S9Gy2MPG|bfD193>}r*_e@~bXuJdN<=u`W8~1c zYo2Njgl@5K5pn~sPLG^E?HbCe9mPhek6);?CMbG`vpt8bnKc@t6+@(+kCct!QmZ>|?#!50Tvl#+!0@HugOd#CEOME3z6Z?%wCH)TEe#*!@c0aEn{}!9 z=X^iV0`gJz`&Q(+mY0`58<*whTQJ+))kP(W?0EcLTYL<8H>|_g>l;4uX15P#ty59L zyDz+P)j+da=piFpDpvo{5Xa#~9_Y*?%vb>zrQ;_4YuBzRHR)tq4xDV>`3_L~P8Lac zdq+pKT=pWd3in(1#k2m{<8B?gSC3QLjTcD2Q2}vU&Pw`Ck@~#RLi*ni=lyU*x<}sg zQ%p&8o{eB(V9T!re&fF^gOW>M5_A_mttM-}4bK)79L(pm7*k(g@6KDvOpwfL@8>0x zumFs9Yb97ru|NlR|F^19fzk%JnvD*#I07tp@4luf&xFiISmxDr*{6mtd7W>~GA8Q| zy#0e;W>`_$xk;>!&h{W{Z)q`wt}e7xx$oS0XsZk5Fc)xq-u<4N1G!K60ao6_$B%hI zp5g2VJw`WIS8Z)=C`px-djMO8iJL6N1Dq$V5<{rm4T0Y(l*DN&*XVtWGcFG(UfS$S z!~D)+hufxY{0yvt>=RPYr)BbaM4eo2Dg6 z!?so7*RJQ=PCtm-)N6(#+pXeaIvcteDP&eDTV@@OaY(5DvyADwfI_vTN3~@)saO=a zI0AN6mVSm^U9dm((7ufJz5%o$QJpqEM~z>kg|0h^qf%at6?k@i`3zDzXW*cyfN43m z+f;j@QH0tXBSkht;jz5kY9>TjghD;u-N{{XK2G^ntxMna)2_x$1dp`qO()k~3Ddtn zTwC{r<0eg04fzwa-nXn2C=X7TTL1m0#onhbg__|$47gALt47o&fRV`~gpIw(`ggx3iNeWOr7=XH_e zvcG;$NwA`+DdL13g!YGu&>G?vuq5Z9QKZfio1Q)eQ2w8p8E#N|>FIq2jEU(SY$~+8 zv4TGSs!_0Qw{BHv@7*wZ9MUdY6NCn$!rJ;efaa@xxsh>kS|G2$$HP-qQvh5?o3rEPcaNR4@<{mdur(HQU{0oCAlCZt23(?ykZH%Lt-@hTe zN{Wj&1IG}ATNI?{QNF6NUdv+T%6Y#uh$_PacS^Md#lOhCC>Kp&)qHUZtQTr3s=Rdo z+Jw9gwqOGyc{|sW8o7ai5?xTa$-tR@f`+nvF$5481orD0i6XD>4~+E>9)5TQfN6<^Pz)A}$&19> z4?hJF-e3~5ulWJk&9|4p?g5$!&g?mqZ;uRpw7htAPSKAx6{Z@g3uK$Q@k&&kErbH< zKQ6*vGX!|!-rgQ;Vih85uvF(e6Q09Eew>eTTq!Z>d3lt}k#EyKuh)UPN391X6pQl< zy5<1> z-R9;dLEgJ^>urU(luYJO&3x59C@B{{H^EJFt;jA*1$d}&bxqt30M8?MN&e-GPg}Lb93{4Tog(!qOC(Y^anHk zSnJo#_ZQs7N-oXyNdey-E^bX2@@3j-d6=*T6XhEfjo`=UXGL74&hX>=DIY3rRLJs@ z2rWVF1zH>&0s`rJm}b$;eOzijx^ZROKgXUs$~$(Xno$z`c{V1N#wpDNaTTB`fb0+{ z74UBtr$8o}cO8ZDywZGoB(VEt53UwNcCUD}iWfV;6#hARcyTq}=Y^Mx z4uqhA0R?T;kdP2gZf=P-c*bLO9X?p1*(Im3nX2oZVeDjz_bA5Wko*=sOV=Ml%1R^R zZEa%%n5#|KSR1e~BXHmy<}6Q>!%dTNOrpnJ?e2x9nk{PUrLmzUZ}bCo7|o3Ge{&#R5O?+lqCod0o`OglYz=-f*bKi84Y@!XhxzO^ zL7K4p785u3JJ6Cr3UQwr110yoET!9n=CzkAKr8{)vHz~33^%n-2K>2={b4)wz>R)r zF?xD>>g($#B_-)rKe4g0Dkv#|92yq0$H|e~flq4~1q`?}AzV?mZ_&(!m{YZUBafYv zh`Zp4ruS?1`5vn_nx=haBh|4|bLsVs5&nUqvNjaqVi6?W06uR2Y6%722xO-7&?PY8 zOvuiL=*#{E+S_KGSE0F}eg&1b^?PYUy1HnajsDGOC41OjorC@K3r>1=)9-IPg{1Sl zs>}M{_64|Qu4vuK5Gi;4143-`O_k4&&;2zu;Da4(* zK0O1H1ej-N!Rkv7`de)`m`+dBEU!I%a^v#Wx5|=;aul-f`Z~97b)La~G{61_>}NMd zd`1I)429^9t$EbEB-3QpH}Pnn?XtBu-Q)@BoG4oAbeNk|q@imR!a`na zc0-|J@iNtOipH-^+AohCWfk1mx@t7NOg6*ls~m}jsR19Fs{ z1{@7GYYFA%>`4K(cwE)>N6D6~YyVkpNnktbu|^@To4vg~P>=el=*U8$^@$cn`O1mL z#zs@V=kprppo$GKx3r$x&20PatxrP`i@{{^0(v6KGBTyr)mj8KK=|8U+(WaXME&Eu zeyPI7MJN1fwDtK1T{ioHvMNy>l(6y(XgmEi3wsisS9~{AI&4s5cVLu(}n^DW}`Zb2Fyz!*+h=Q7fQGhq{#hv z?ojesMXx74owr}F#O)lse04gKf+rX;c&Ic#)!FvGPgRgL*=>;Oi=X>m*9Ixq)W&`u zo~VT+Q@}&-I*j!6^~WkJry;??_pvZgEayk|mxvHg8m`EM_M?-Pb|xDt z`&v3Ax|L8P-ZJ>0t*19V^a_PyAv3jfZ_m(3s6AD*X{hu!^?jovB3+ko&NKKTDb#hu z#PAKYuzjRqKD^4X6!)kNSL;9F>D*cG68cp1_{j(O|qQ6(~8%^v=%C#s2)~#_*ii zVdcu!`I(xZW>lrAP$Rq3o1E3t=p@0GiGuasBu`5%u0Gn)w*j|kjY==28I&1bgBW~r za>AK_w~dKnI*s@A=l1kCa+!wC*fv(izM5sykG-ZNi6;#*k2Z;AWqRsUUj`dv*2$N3 zi{aA>dqNJVsi|3MH8eOdpg{onJ3q@s6uNlk#7X)WVZ6)krAqt;EBebD{Y7e-@jh>u zwT@PsJ^P8%BnY8}xeuxmU??>GnL(juUvu7Ib!s~ZW5?#jYp%Fmp)c6%>e>_O-dAjE z>bdK5VQkL6X1g#y!w@)@l zE0D@>Je{Iw{iI%Ddh>me<)tEpEfqbu075%dQ&S^>H%+Bl=YAuBIK^>Gu+nL%zZ7qW z`>1Mwv8Sl4i1}Dt0|O>A&ZSH1J3EH3=Ro1B!in;A@Ka&wyVsg^!TLeDDU|{BROk1( ziZ2^m+h_{k4We`iveD7eYSm8+#Kpy7n}Tmrxet5LUya*nqzUepI(jh4O&sWYsi9n2 z2i30i0@>qX!)d>yQN_md*zsW0h*yrjr(gS>UE;#&Kv(Ynq|9bnJ4&BTAC>x9sly> z15;DeCr=E2i@tbxl`=z}1$mg>);#qDfy=qD7PHNfwV2-wxQ|yq&p;RpL9#zDj>8C2<(N?* zP*Vsvvnd7xfD{|G{0To;8htWdja?9+M9t=tQe`^-w#?#w_hn(S|TJ zaI6hO?n?TwKq_~jiK*$rlF#0v>nf(MH1vo^hDp2yWd1{LKmdLM|0y?c{ouLp0GXXd zKeWt8t8GuA0||dJX2ldW%}`KOUe`;mS#q)5ERuMQ@kHuaz^6>P^*eE8A#;|`@D&t& z2pZ&h%dG7~Lqp%zL~P%vJ>w z%I&gQ=)-9e!)UK3iTK-^eIgOXC?oz9$MzH3eDB#sCvYs-(EyYzx8a8rJ~lQsWXH;e zg^&XwB1}lCK;4>cH&|(Mi>ukA=3(z7YPL*lv%NaeCd=viq*<9o?4boBnsN6ck+B>wOh#O(-u=(B{b8}?6 zQ@;V}Xo)VrKnGwQ{lu4V`9Ln`HR)oJr&&ZPnFp*um9f@V1`ZBome{w-642&Ggn884 zb6wZEL?B%U>4&6wo|dTN#S&3wb`hH@)nuRSKmhVI>U{r4hoq_6NbiCh&f;jg@9?Gc zPTakwn%Lt(Iayg)ow?T~|G?W_SX@j2yooyYT=%jur@$= zn5ev$f!zrsM5(1(^*&igpNSK6ijs_Mj9mRYlu;U*3*L<~nwo-e%Rq*doG06XcdlRo5zvRkGDF$z5@Ox6WfRi;1yO# z1W~XA=!l2SQ0V*6C^*PD&hHrH8sUUSfoCgI`k^b*C^&~sxX}*?LQfJO@a(hpc`ku) zN&?c65OMEATBK>*DrC7-X~6<5aVvFfQ;fVBLQ5!?!G$0b`u*YI;d5GeNV@C!k_Gw+ z@Az!G3?o#}`Uy#9{7+Eisr8t7ID`l(5?1H-`ucq+K!xSH^RGbp-w!VP@Y&8CGOb7m?t+lmhm9P8txDH8Z)1V*yM?-2(f%A=ESV89Vc9i<~ z#qF&HHFZ$^37L>Tkr8~pdFpoGrg`NLTU_nZU|~QxN`3p{_URXGtjXy76GIU5q2;(# zkF?BJc*SfQv`uQPUw{92%Qf{p$lxMj+rh%Z0-;jSC_W|k+QtSYgz|Q5lm-R0hFMFJ z!g{#6T-Me%kodk@Rc}bR#B$E};x;WXZyOpK0ImH!Ty~@0RR6u*L!iDJ+aM z%XXg~U8JY&Dn}Bn&W3rAGv~|Y8_3MuAbx?;r}wZ0;Pq1wN8o4x=A=$I(wG|Ec}a^w27v2~-0Vi&N!1`^ zA$Wa+dxF{r7BCnOeY~wO-5Oq^U(;J|Di44Yi%`o_)=bURNaN}L4t0gIlYMD!`XeZv zP$7re7XYFPiHMM@N2M)3h-nYYJI5?P#HGVWMcq)-(fERer zyOOOMjDsmkpV{6Pd%;##ul^0vbPtoj%}L}ZnAvd6!$XnW6HDfIlDkQyG7UT z7GG|OOr0NT&!o3SD5UuaaCJ={Zd>@47#}}>IX=ivAiQ@GtKc<%{_+KRw-!t{dy(#} z7vn?&mu7Xj{>qd7iW_iOtEz=+eI)5OiGt_OGLE1P3{iT~FE0`VB0sxaJ-#cl?rNqM zFqS+SadaNFs#T~wQ|2OUaT!#cy+cFN`>3>xj>CD$l|tX7#)*l$w;t;nQOy-i{$ho@ zfdT??VDf2KhPfCJ5U?zotqKz3F(7y&FaMTQ3Zp@pIAud}bX*V5H}b9ole?x@wWP6Q zF?@Tjq(AxbzKNL^mz12G@yf;FXZ?0|c57Q(0E?#iMg4czZ$DXA6L<4_fdRECe2Of6 zxaXH*{O!N!=rAWSu~4zToa|gJK2By^Q`J+lY((q{3F8gH#g#lP=TNC!Vr9TL1PCYZ zH&6ih*QDEzWU_C@!ruSKwrowhIA29cl_=yKDw`-BB%W`b_JHqO+BL9U zsYO+<`aZjTY21AeY|8?577}cf9IF_pv5!v2(B3B?=>Wi42rxu=+IA7CbQ!%`Ez0)^ zuiE%94bl&Jr@~b9g)rbwvT4#m_>Y6XzPSmuD`N13Ngeg}%D{whIV7yy7N{b@_P|*j zfVGo0BfPGa3PnH#z=6nB*)=qkHtK@3>T^`Qe_c{+A#}9fmA)>5@o|15c+%GaDD$3` z45%2re;YfK6O2#(tFr^6Z^SQ#Pr)fMZgv%1L#AMZ+SuNfgd3<+LE6kxCbWEqJNU&_ zMZ918N*%Akn6@*BLEe!+CP-8AusHw#dS?d*;KAIfr|fkV1DAP!)~zNa^A ztq_!%^jH$~DXC(s-0w-J&rn`FG4j~O82o&EiXrGxih1)PE9OeLht*P5mF^fcpPcj< zO=}i&F2774EOOE+($Et~vKipFOx9SM2nstdrae+~id`(yPWwE=52wM1fS_j=v`ak( zw^nQQS7waDo*ulzj_Z*&MWv~eE|I%I0ST!G$1o!ps<=Z)TeF;{5~iLsdvNfJJtlQ| z(n4?jv)RZu!>`JyH6oHFrhaJpP=Yd{R2f`xwqd6J)F{j2SzItO{lhD2(~zrL^V9LL zxJZQzdx+N&uVmhJkynn07JO$!$kaXAivmYs;PJ(up<`#@S{_^UCMK6 zm?b3!FBZYqV5TkF2V@^Rxo(h$LuQ|z0s*kjq;-ry{V&|@FFk5{>ILPT3<|wz3^2YW z7B3)%fhk5fFg)R|oDARFHI0vZ0jVGP7DGx%1t-7r)2CemErK6n_cw=6Nkh;sEp1`3i7 zXz-82W(eCzg%?yyB$SjP5cz^1b(;NoyV^@uXzH*<_39h_W8aRw6aBJ_$o-P1uT0c; zoRD#(YO?{5Bn8vnWPw9p4NIDmV?3)WOVVrh6IzAT2w5hUFE%zeYwf1|N>+WYm4n1* zurS!F3?&*|W;UDErI%??5&fugBZ+#J>kIGBQb1oTMw+#BUTJA5=zxB2y9Yc3LxmE^ z;t?@RS0WGcOhL=XUj~RDbzWlbciv0O^z7z+){6yEkCQeXq-oZ7-$0(~=->dG>HMER z^dmLLnU^Eek8VCeH_v~g+~4YXnTkroV;)q=1I&y@(A5q=GYkxjem7tpgWZg~ zhX?FSYlVgU&l%jk4tk5ID*UZDVtwxPTG%PyN{ws>@FfgQ&S6N!=U@VkasXe#j!*`V z1+XV#rT|Z79_6?d#$uAbZ-`m>r?yhF6PL(!>NB(l8wuqYq9Jp#0d#;Q>pW%?WEAJkEoT-M7woTjRjti+7@{xB+_5)Dy6jV@-y8kSf_TpW32w(0`N7(ux& zY(0D%*ey&rkGQir_N9nxU){M{qgp0E{9s%ADVW7wi!z+!xmF1%W|*$wb4#Ew!~ zm&FX0o9$1J4OhIiYFpd$&=2W3U@A_$zbFYZ(nttS6EI%2s|}kwI}`6LqEl0ipa%py z8q?Q|E`>K0oR69b`sbLFNC~H@-JL!btw2;~9$c7#)d{vF73wUAV`bBWG-22PfX4va z#C2Lg)F)5LCVvs%72(_Q$^8|~9zpw5!W+}qAzxcM9lR$s3$^cnIRcDDnV0Un$9DjZ zhTx%{vv+g*b9~Zs#(efdeU+Nq>Z6=jU@G4e5;Fh^wBno7U0f3&&44i={Pxufo!W!i zcl%ZeR6^1>pC+tbI<{}2gWT&%Ixn#IfvxjaJzv#36-3GVhlen$Y*y|`rLbIcRh;kEVqI|yU}OG8B28yIzEg*to|xPz8j zUSG;|-8ixLJMTmsf3SBGJo~m2Vj7y_0n17ECH8v5Nzg@sD+QtD@^Bdw?Z-FFhac^? zKWlF`n^+2LEnZLMQu;X;QVyD+7~**UYiVqrR9(h?c~`)*-ZYjQ)Kt_94wUU zVzD96=8=++K&%;0ZGtEmZryqUtFylm6n)q3T7PY8+n;-5`}n110n&kc`t&IXdck)E z#GD}f%LWR|_cSOQR2_7|kzi90{&)grqF{~{A$f6)=xWKhSHD*nKig>HEBecYQ;v3( zo~@5l>PcdeF^`)EjR|yUA&WK^Xfd{j=TJ`Kz5fTof1*Op(R~mt#*_`;2aRD&n~CC^ zliH54LLII}6Ko98g|bDwd`GP>jY1MW2b@EOET;~ByA!j&_%+ZJDA(qCKRs_%?~GGG zs`kC|yiQNNoL|b^bg;K)<_)4wJ*lm!Ax*mMRQ??2&dftZzEP8k;U+iR*J5dUH7ADQ zM9Nbz)3?M0-^nLQEs&jiQZcQ{AWn0mhWPx%6NQO5cW`g<&3m|i>!%vyUi(U-;aUp8 zR(t3NEQzN3{;kZ5DqvxSM42XG=slMV#q}EZSypm03Ld?_hQ(&YW5P|*>VK`vBVwju z`-i@ST7bjYJ;lt37!r~zXwm*PMWzQQI-?~jFE-ZJe$G&9Y;0|r9D>_wDR%bbm){@v zKjz-Y&UlP8EQjwy;pp$D(j>044+a>Zp6NswOf2eoY3eM=Nl9`RW#A&P@TguIqeBtj z(blQ@kt@Q{X6d)RiCFd$7XDHn@Af@Y8 zD<$AiX0E5wwa(^0b|Ap=EV6uzMBB(gY9VrF|c-uw9Aaq=x?ClEtp9U0Ham_bRJVBDBK0z2$)6I=qo*f0%i~@0GNr~ zc>n+ze0WL$a%w8d!O zb`+}4@1oOOXF~Oad#Fu?Q85(sk6~+@nwsKIegdIrIh%)oiudR5-(Mrhu3clja?yQv zrOQw^T54`{e>n}5%3-u3DaZ8_u+(?=W^+(K_kW*)Q4*2q2j{raUgz-GSAU6#*h0+z z87r9w>*@~PrmN4bI03Gn>E}0z+M)y_34kU5wxe9HDMT-oKj!MA(=@XlMyl;kI(N*I znz5-v58SZfKC^&UTf#nC-*&QI>fTN#@4({3zvCe-Jk8ZmfCq~T>4uIe5JW>h;&6G! zFiG<&`aT6UgAD~#-LTj(d~L#7G7RduY$hlfq`wg2=(p~=T&DaO9i&2W=Jj0KwYKY| zAwzPUTa{&DVEQyKFOe2DVWbUPrBmV1OV>D9{G;jb5FFM+b?7qxi;f$SV4~15%jX#T zAq^sMELmOswrS(`+4Wg16$JOQd+Kba!K3yWJY}qbg&20YcQ~&@I^0g1%XxPd` zjzhNW|A^D^Pgb#7Ku5s#uanhVvWTP;3+2BMk*ww~k+33|g)HLs{ri}{X3_Qhc2T(HC_I`^0nsMIkb_2VG|~b0}k)?A@F|izT>w#gG`vS zSD90Li8)=RHPbww{q0mq*yU*MVnF$jf2)h=Ee|K);ggdt%UzB&xZ!&zp)c;qfJBM; zmQ;lHZ=#L-j$v>8zb3w)eN#y`Yb57oeOcr9AI{Tq#YJzK3{M1qD;sJ0OHhi)H*55 zhYFs{Wq)!w8vxg$g|OF0Rk088%sM)P(ZJF=eJUZu*BzB4mmERs65B)76(^uqq{#*h zHVG!*ApT4SRezYHdB=hcKSd`JM`;j0a@?WKt@<`8U3R;_*h!oX*dy@EoYO^? za@b|pg;$?$q80d{zLqKHjyey2ZX>^{1VhD%5{|<|n^bOrNjI`Wu0> zxyq!vlP)qa^?h#drsdeKs~+JUrJw20i~jqgjt-WKq3*Ydr`a5hy*?zj!PWNV-X#*8JvI5w{u9+MvYcJZGWqjtCZU$WYBoE&BZ~~ z^q(i{8$Yk%`fg>-!Vl4Acp zPhaZ3G%1lqokQSg?;t*jN_vJb4ik*t+2ZQzR0`LQEqihg^bW>jkFY+5hv7 z2YaLkqK(;QEiDCh7U)uW0ytcN%=phc7Av=O(C?mj)K7M>&qNk5Txs#*-}i*ffm#8Z z6&41)FNAB!U$$NLJ+CXXNd5aX&9i!Mf66rP7xcg8E-nhYM6R(5h{M0bu2f-XaIj&^ zM~2(e*5ouQllyG-?_}?6cslmCV^{=7kFLKO-C3>A-gBt?DE{o|cBA+8QaBF)X>=z#VBpRc4py?|H-fkyHhwMYq$!Q&6x zzN606Z&+dISzXiqjZ%`)ulOBx=I)88y;+@myXWBN6x_c(6M@hDy%;s6DCef=%+5}D{lUB5@k>2|ETg|*8_nUicB7RM#)|#P^C+nZZ_! z_Q|~JcYlc&qY8x1#sJp*hOLH7%)*?P)cF++XyjHoiR&?A_~O zx0Khtz>+C0i9uSHh5?KTsXTDN>rUihZR{H#7h+~+UL{UWKY=o}_c1rLbs_1pfZAx- z9`AxU2q_?kbK*Au=3pGV-rV%`^VwahFter8rFYsLD^_Pfi$M_pEt=FRq0ydmkH0jG z+l}%9Lv`$;B-1r&Fx0Zy-1n>^gv6YfxB~bzz;S~L1&W?^08t_$YUVMqv9OMzc7}=} zx?}dQzy5+WPXtQXlXK~NF%ic1813Z(rY5nb=vgy4ZhEZJzLm9qEsel4dC|r@+6|wu zI>=Ed!w4;BEB9xjKi5Toaun@yk>&5w2O9aH@ZN!zxPya3!~Wbg%B%sfT`{;uO+60X zNU#zF1lb70;v&zQxTYLx>M^}2H5}HpMjH*rizI#PI_u9nX0R;u<;$MSMSByeZ*2S^ zoNlnD+#n_~%Fx_Btc-!(Tjv7TTMSfBf{Eb(@noG_Uq^>L8yT2qPhQIwN| zI*eEV6CY@pe}M8O1#Om{Wu54@7?B_v8H&&gPQWG(UE`CHJQ~!9F}3fe2&I2?Ops5= zil~fyR|O9q#l2K^b0%U_V`|uYmt-(cREQ`32Xc*rdquv9DA9yqG|8L0Pkv~F*c`~d zK|w)e?7Cn=C$hYN^!WEPRSr*%f5^-CU4JDr^Xr$Y-4%h8X*{=K@Dy5c>l+lzUKe{@ zj@KO1`+4$wkGd!XnSpd%{Q2S;hUEYrQe1IKo^!*&X#v`oLRXK@DSFp%I_2mwC*TO< z1o0q#Z#D`$PGM-MDowA!Q5_cGwXn#jP|_ggq$f8*tl3MgFj`4!Jj<&n>nCvuv3dBIbdksgcZv)o?c zd-tMb$+*esfXN@Jd}zj&zLCtp*8Y`7_d+WJGteeIcAnrm;{XO} zU6(>ONtT;C)O0=G=|9O=YCNJPV*21qRw*TPTu?}jo!7PNpmuBTM}s`8Iv(p3?uLEY z>RA7-yK0Wa*MeDkV%+x>OxFiR`>$YmcBSkkG(@&zbLugth5CME`^L|9lDxch%! zBEZ2(6mWSGE7)IJQ2``7qm`75|1QH;zyX(_1jt!{4wUxBXd%(|nBHlQvw-3G1V#Bn z+V@Hn-HxT=rfCvP)GhnfcRyWX0({a?@rC=|+C!lK4_H>J=0h8Q1RRGJmX_p?0W@{u z9|tpu5qT>bu| zWV}dRwucVBS%pYkM{>ga`hB8c6ImLz3Wu;eS9#>C9vk1Y4`V1!{>q`a(>1PgmWde}VU>!Q5sORW=uZEN2_FnfuE;oXERJ?jfU}SQ?x+g->;u zlxuUQ42QV4oR~AKA;m z+Z=p6v^=9-Bxo)T2-*&uWcNO{lrZ=}dChu%#X*-Io zgg>JeUS>)KZ~v#vt`C1Rco(}@%(|<-ejYzrUj9jiP6Emp*y|?r5pc^ve@9u`L5tT& z+0-Oxd`!`%Fw}EmY+!tW0Q_U&eqA&F7nV(1`@*}uqM1VJ>_wu_HxCHBeaY0k&;j{D zUV7MNkjsVryNzom-zTmY_FB-482RK>8m&w{#r>XP)Kf4 z{XxoNWTWnKJ$%N(t?RRlAjK@Kk3QYRw?rz?v(Ns21@H)wsQW}ZNx6K4Xx6K?F0BFrEHh1$X3mYjkI5rqPs#J(bxk2{}~d5*k<=y`ix*DqAkcP%kzHcM!DmVr40q;G-*3F=Hg z?YqbV{=|&MHH&i&7A65a{I0;op-?lWA`|ZZi}yHWbFYPw-|u&f3fZ%H%Mxj*Jf+RM zW9(gPIs50X-3WF>0b^?-ErZ%vx)%0+l0D`>*3GC z^`?1VAaZ4zh(F$(vB?jn4h-=a^h)x?Gq!R$)byyd#Q`)aR)a3i-~Wa*L(Ievv?lF3 z$%^aMg`HmXz1*$w6h;ODra;v!l~Cs8@Vnz)GB&lvMKO?-POKnN2;RxCnXICgvJp%> zVVHI#A^WKUb$u89y)e>OY~XNeRkccd-8{>W?`9T&>PeEvl;4R2410Q22rFoIr{_knG z3)9ZrQ;Xv7r`=|;aLTz^)ct+Lm}9E`$)=fmd|}GfXvd%DEB!G@p^4J_`dN#Qt8SGF z%Z$9_`;SliRWwg{T>}(s$j~%BXxope^Wi8AjqL+`}#TO}fn+J3s zwVSsk#zvFvS31vLju>c<=KE^yIXB!W5VzYodHZbz9+m*J(wSBsuyQWo8u?T`{8Vpqr(rb`o)oI;Ca*+X;Go2%~j6p*!SuxshpI^_md5k6hqZLl<$YcB6v0oyk@8eTKJ^M zvD@T5R0}3v($vaUnBaafnH!ZiU?hmcUuv11#)KdZS2Dd{)l|1>?dk0P_T+VOPIaN0 z;%=PX5XpF%BNFS91N*C%dgb^;WPbjMK;}B)L%z&Q?DN|)>dnVAayvG>+{D^P^peac zw|Wp%q>S5f%{lGhaW~`TZsVzRQH!& zibzVY$_s$Cq|p2R?joq$;NBQ&1Y`wGh@x9qZpUZQK^%Ir5!LYG-XqRjj`6p_hCRQ- z^@G3CKP}z-9a$sB2GtqNAx`-PrY9PbZi`jAkKf(ZWU3w7yfw10^xv@EJDVG(>W?D= z$5!NJ33&MLN!vq==02y5^Yo5C&KSp#1Se#>SO{`=NTTP9 z<)=P$js{rIC3bd>g|&H(QPVv_wt$OoEEqx8katV^ysdoKq4&7o`jzkG`zZNLxngCS z$)uNsiC5oLobp!sp9mvZL&1f8@qNMKf_f(Q!^w&vda;J*S354B-GFCJY*fwE=i_T_ z31Y$}A+^o4_Xbv!qHrXSOd`v)A?)XL={3*%<`sJe&HC>9=Uk&cgSOzmv8e5T5j zgvpsV#qe_zZ4OtH$lGYPE~BZ7ib^z1t7_%^d~uOB^q9l|7;-VGOlDK7WAsqmi8a*JPo-Rk&LlFX~EUHNM& z^#6$@UQb<5m}VTWQ5Ix3_&8s~Cx?D`b_)(N45YoZEjbGHveAz+oF7Pm0-vi()7>s55dNdPzX!bH0+R$rr@5TL0+0!Zw6!IU5Ohsy#2YnL0vrRQe)`#H$W zy-xL>Y_qxo4mjpw9g*?RXP!!RtZZItqj0y>+O<1+Z}0CH$Mpap$u58-4gV98>@|1C zaeCckZ2BX4%?UZ1fKJ`bey1UzOL<0D)l7rn3u?CU-nqN~3$Hv?AkLlH>T8j9Q6K5w zc_}+Vu=QGSJqmIXWWL|cI$kYqK6N&`b}ohrS?SfX6|QG1T^3e)G^}(|LC0C!9Fy|> z;F}iPGq%p%U#y1P;`bmu z(j#4(qDvDavSV6k7H4jMXu!nc#D@_+4}nI*sm^pLigVXUiBm6u%;BMwoypuTcD~4@ zL2G^`Ty)R6h*jrEYgfDR`yX%q=#D8;Y38Sgi~-TR}tqQV+6 zVX}X$8xk3+K6U-pVvV3_Z+E4j(xiN*r{<8f=6Lg^ZD_WLzF_fq$CslcVkoB|*O1cf z6cwU8E?baQ>SH&h8A z7e4qAD<}+!{3Z4((NJkCupJVH>taI4$r|A24VG?$V8wjvRx$VzlvpZx*Bt$hYa~8r zGWeAGo}#&|Oc#~&(osBdprl!a?Df3{ov}&1ch1i3_4yq|Go3{~LRWAdd_-ON?jOo> z8SPwVU*VJ$dqy(5amfxm2IqmlAT~u)C*Rih6Pc0}B zy!S{Y!%{JONVfk*=ygq~2+bNDD7F`Ry4KnFM7 z-uX1-h5LjG3k$i6N=rT@i}gZC<F4UQfN=dH%75y6%;c05v$rTQfEPqN=Jv92Nz0L`a zhWfL!vMwHctut7r$zBpnx(U-Gm4iVy;fJ^;XZ|;%DYPBkey$YUJS?X+wSob%(3bJz z#w8XN0cPg>Z;t~6tp#q}cz&X{8MEBE#;XwcCXSKjIAQdXQnx*Ot^V3ZtU%D*R^Ff7 z(rWT~vMO16^2=ZRsT*CyAq~+{{j2eHT&C|A=JkE%%)HBZ&1sZp78Mx*c~eW8A9IyT zm#I(pd|Z+r#fxd_(*3`B#mm8Ff^q*KLq|&j>a=C*w4P&7>6M|M{`1(@5euK%0C%zx-C!um9X7ggp z^g4)sea#@?n*aP?)d>iryT=l*@3hR(F(zt3X-8@Ai+ljESjHs^ZwHOl)={H z2&Oldee+*|Weq3699RyCO5_=jz*$yk^c8;si~>q z6A;KW_J7*7Ib&aXp}`fujEKw>P_g|#ura6vgKZHwkzOl&L2oEt_(IZccid%j49H9L zUO|XCygyyPyx}>*^px($+`S>f7QIXkdEEeJusg>Va&N+@6VU(d(1i4s`)7w zBpA!!t`tcv5D;4$V;K~?*0%Z$UUOD%?kZ47zNOtqqzZzP^_@Id$a!4(|A~$~z(Hb; zchmtlaQ{}qi{~9`sIb_~FmNpZjs&P*rT$klrS`8xs>Q|nf}A4BZkB|B zKEfn(0F6G?kq?9RIe9A0PktVo@UF*Uj|P+7x%v6P*wQU{jMBYrc#|d0_@8Y8LR;F} zEI>0dF);y{CUgtlohy4X&JQPU0$~o}Iv(#%=Grq+s@+mjR0R6WFJPPUf-WyUKK@JO zoeW<|(%ZLgMeNWFPivHwmBHXHoc_*VnfY42e1TJ_UExK*u}r`!EwRJ@ zT!U`u1&y=rO+eX|6ch@fw*n$@ur-%I&fkO+s+W1+Y27~t;nyZGCVK^5klprfKUBcV z>ZyPuo50iiz#5!a2H`;GA4PiiVj>Wt&XLjVd2H;yQ$VJRj2daI9<&W!VST9bn!`xx zbga@UZZdGkPxyFC&H94;*@})zN`egr^_KL{et(gk3#=?~vq7d;oY2TwtP3HS2W=FR zoBdxu0UJRA>x*$t&e9K78_R-r_8+)zr(+gEcy)(BMX`IHk_Ukl7&=e2nV$NE^o zscb#mui!{?lwun~b4t@yV z2~cvGMPMgh1lB9i8AF4EndctaM+%~t3LuIAMe-ZCO%o--kzY#{!V-z|EvciAxkDr} z$W!4^>@Qs59Au$zc6BwJ_YTYZVYZ(`nib6(+cJ)ZJ!81syCHRm;lL;>t!Df2&O!}* zaGAwa#wI6yAY5@j25a7T*ocYaX}aPC8-YB;UPUAds(DKt)Hw zJmIxF4))eKtVwkoMSgyMKo3?rg=3}{#N(tu6XSXiKR>4Ai=R3c)Q(oZ?g2>Q4Xi`V!v!|U#tw- zc~>EP8o~Gp<9FjAWy{#TXhRDo2I|>zq|cikn44?a<^F~lwk2gYnFY=AwN!}hu*Yoy zc@{zo#U11GUO^xStoz2hC953#tm-=SFA*B8*UBv*$5F>bM^_*R>ey!53-8ZFfBS|W zEnwZUlf#3#n;y9jlO3$@7WUSs%_xc@;Gd^j^hq%IVNnnRC!6(}xd(-ZgOS(@Q0DXQK-vij#AOOjI1wUbM-42hWcoN_ge_9o$#8jo zp9a!;%gFi{T{W$Qo;IzJyZZGj=AnNeU3f`x(t=NwEpyftJo<3- zxNVoimp0+vjXY+t<47X;-4rOYX>AODz$U!YO!PEM;`jLv$P?>%*1Fd{=Nxm)F~D(gnk@0wTaCibgPe7VxdkvQ$vyzB4bSsar*WPB zc1XO_3I?GjO<+8zL{nji-kX6j_hnwSHJ8!Cxk%d2SF^OU%I}4MYU5z`Q`qC8Fvp6& z)8+P;jTYPo!Z-A&WkTT63|=JRwLa;WB3GdmM$lnF909Y3M6lNwDBk7h+4ow=m@_M@ zz}u0hv`-^3WdpV&U;$?+!hqa?^gtO)8|*Qk1nm#m~r!a)}l=ip9`(pK#fnNlK=%Olk1bd){uk8 zt385Gm*o>{tY87#RD)8-61ivE&1%`(E+uY1*qwd$ zi-T1@P*j+iX>^9Bt~733W|gqKn~WSSYNMoe4OK<&jlkel-soyzyFwq7@Is@E0 zjWriL8S}r$KHzud#Gf24S)uJa2y?793yO`3y0@u4P6B%pK_}wQwFKqO8TbZ}t-y}z zFX9Br5|C+?$3>0&@v$V!*Gi7|2XPeh=ns1cgk!#2_N6sKE(W`a8)$7Fo8@31Zi4H3 z2d7L;=$=-Hd{BxA$ZvnPml0)L=fe{PZ#cihQs+FM6#scOv%j5>=lF5nFCF8eWgzX}RNn2bcuMZ6puP9ElKIr4SogCVYR|vcHv(R&u0i+)wzY6)0uT|v#PO0x(mNy7>3x{mJNLv- zlg~`PbI|tw<@;wz=cm&#JeZJW0Z9lQ9o@bvXbF2nz@HIZ;m) zABd^EW_@?^zm!Tj1Sar30hQT3Tm(*+wgn?gFwONb|J+iz7j|&Vg6_D4M-xwN_YK=LQkcb$iploq+2|qww%ciVy>#& zD^e8KnDlDn>?fd>hKp0@@zXJZ_c&KtK_Tm-EPJf5S_)(=EeoRbNOYO7-X8CwTufKy zV^m5%E9d3|@aU<~^&i?^l9)&)9t#m(Q)szVR>sWAoX=K3%2vUa1Q}A4AA6d)ch8RH)&-={ zW&#&PlHH4?zxbbW@jo*4-!t+*e!oMs@8uXL%8X%RZT!^1-o(%f@te&f3k(ik3N{MF zFG51BlIE5UCibk7mWB={_e_jzj7?bOO{^a~m{D-B^YDm>VEpZ+&f|3?U9Ts2wx)~w zu(jrXUO*93DZi5NAg~UV-+08%b=0b6Exlo8PVHvGd*eXs8xl9Nh(2SjD7d&Luil$w zP3H3PGIn)+QS-yr{ef_UVwtaKD^+`}fBd!k881f4DI$DFnz9lCvIiUcwAsfJcArIb zcKa!J3MUyLZ@jvWv%u*ea5X7V+v4)i8g0~ z#v6&OXRny3#zP6aqC4JowGVQkqeg(6*`vd;E8mEyP2`*}?D#}eWW;6NlzZb`V9uv- ztb3JaJVyKGcTDyt}8i z9|L`k7(1p+)ypbhgGp?{e2H5te98g*uSNV-@+$GWa&gdaX?%O+ZI6Y{e}y(7WjpO! z;MSuEX7ShEC`U8_DEBH}GH7e=?0xk>!@sUHjX(T-iQ!tjh@ z<9?+K4P#zoRHke6_O$(gtlwPmXv#qV+g5SqEbIBZFY}MObd;MPZ&?xGFNBe+UF94# z=4hpV{DF{SkMI(wHyK-|4O_IOF`DYl7kd423Ou4O)e^4wVa~-Ta9YT->1+hYR!Nu< zJ>7aRx{pF0L!J6A6}^52hq@6H`4;w~bImOKB4MLZ(g(EqjAidx)`{%{34?3nRtJn* z9D?5z_B={ot1TbZat*4VjeDcr69gYX8eZdi|QEnp9;@ah!v199evQ*USWrD)1Ml8qVj(-9zQ8@2v%%% z@N$qQE*N9FWoG5{dW`gz^vdf4iC#-|!p%z|+|;cPQPyx?WMWcaKGXBDa$e?oA5{>l z#8On{og;erOS$Gd{;mRQiW+m74igE?nTYq}#FqX&##Em$sXvSsTND=V(vF!9Fw#X% zJSH_*d|`00lD|%j;OW&@6do*5I}{{WQyIf2B1T${-Aap)s~!dPHua~OrR@6Rx%6Qln(t0jr%{3s2eU*Zbvw&P*DxH_xBK3K{?XqPz zSDHJ!ht^yM>RTO)Sh>7C!YVOlM{e~9&N4@h?3@(l3zwtIZg(cW9lOz2(;C-#tel=f z#q%K9&g)7GiTD(*j{Uyxn`6R@jW7+W_C3qBo{?2P*DUhGP80Q$t?S;7jZ*Q%a(?;E z?AP^>Wm^T2g)SBB$hF;Js}pvKQ;BFDg+Xk+wPZQzVVnt$omYEUA`q>7%gi+XwDHmfljnIhb zcMqPuQM%sR-C2p&XyKc~c*L5`dl`9#X1(_q?{e~W5{+$*+V@KeV+SvJSGu`pZkajf z--hGh4q2|C*$0*+0J-(7t@f%j154x|?*hh^-%)o1N0AuiPe@Z04>Sb!y14aDq2Q zFPFrWwi?@1CO4{KLuz&bo1KCh+v<5bJ%*}lwksE^*n9U*mr^d}Kb~U5>U^Exn96+U z2l=D7Dm>${-*4&P$XZ+^tY)RR+Lm}hj5}km(?I!_u_qpbtEF=9kn9)@)3Rc{UkYVx zN7w0#l>84fk9(t}-*uQ2oO2{(MjpwGO@5_+#ub}p;m}`0`HIoa9nWm~O;G4&U*p9L zF>2vXKZ++Na*uwjh~45C2{KzY#3MD|=GF~icdVZ(w7Bu*i}4p4v7%d7s>(kE)DXsg zm11~S8q~rY%7D!;{Gft4>y|S46^#7xXzax5TpXU5z_=!{EXr688j0w<3k3SD(Sa`h z#q;9WlXLlegp0gYbA=|;^So6hC1t}I>tWFMJ9E%{yk3Sj;Ns<#$0i zW%?c;Y`AcrHUxhiYibOuUHyJ(hd`d70b{5zSu$8N-fXMKYO$+Egs^M=A~z;E+p9Rf zEwyu&0Q2iY1^lV+Ro~(fe@VYQ^L0w%HeJ1CGhW6R@BQ(zhYO3H+26C4ZvJ=}ID@6F z-}%{wm3@9sA@H~~OH}p&rB=O5aA>&A=((`r`<=s|`6N6!+HVNNvI{=dR1HSZX0Nw- ziQkF6S8wapV!0w(CNFwWy_Z=Mx@~jv<8f`S7uE9EJ7>-S$&3B2JT$ylcO!1&l6xIu zUtV%|{I9tSC)+=A7j+j~6ILyyM;0bV4y|DIRCsyAF z*U$fsedj2#CWLwlqWZerzNSeK?ay!U zm*4OIpX)$V`v26+@&DX9c+N=uf68t7{5tk_zg+)c?5^zp*j@k2ZmB9I&Z?$h`1A?I zuT5B$^?$MdVj%Y4zt~9sr#mg@U+=US?A-rptA$;khm-5~y>>nMva{Nk^H!S(8ihd~ z^J;VR^z}NFsM~VN;8AH?Vn;zy>K};Vb%%&D4LQT|x^fH#T^iGc@VcCJaXHO|Hwuxa zrwtwZ1V#hh*<9u`z0GPHL_d~Oexxkc{+N8)J4YBIi6Ar}Avq%x-1zm&$6tLkr2q5- zN$VH!;-7y!|45B?<2gq!;5z_#bX)H_*MdU;SYv{+3>7joy%q+FDd18po>|p>YyOE^pgMPXTb5b#ODPy7p}7bum;@= zP~Lmd<$>!o0?qvdKD&7!DEN4L3plK@0m#E}|1DovA4U<@oO zXn~d+R|1?DMXz?SF(t=b!j+_609u+jVfKU{m5Yb@_BXjC` zu6wI5$mM56R(+9|d;x1l^rrwSa)DL>;8-ABk_d`^cbL$KFfGiwnr}0fzJWt$y~o)f zTM+_T8R+UQW{`z=RfBDd_FPj_6ZkxMg1dw9^HoN`e%9zjJ*=Q{C6B+d0-TJUE>`-- z(6s6>EXxCY)w(~U1%M~$M;-&T1RMqB&(Pa`;0SHkUg*~$yco#6PQtr!ruh2X!k<1; z19DItyAf!Z-dXWUKr%>2dY1)i@Jd44_h7J3^knO9^^YvKF@V6tV&>CS^T#o{+#u}_V)3Ck1`E1tjB%Ofem9!;I+{Uk6+7d z__5^6x5Se>fjC8AGOgoc6uPcv<*yLg2i^e+)DMEFxXEx_eLy5Wrm22QjS zQ-FhmKH4$#$jAg7=&JIev!mrT2~D?le`qhEb6=>$CR=>5gXThiEZ2~JAOp;?H1c79 zp@5}=XoXu_t&LOxz-h_wQ{EO-^Bum)^VUdahFkk0@M!2iOQk|5$E$zy3`Vg)JPJrh zYfkQs-l&!XKzM8K?N8>aP=ZFHD|81}M`q>~b3@X}kIT!s!lj{q77c>tbtgMrVE(RC z=gMv5nel0vnpF!H=QpLB&>`c-E6>zodVf!KP~2%cFE7tsBo*8>_tp>~pi=rzFepkW zd{`4B(voGpw>H#@K)W3{_F{GEPqRpVfML7)&+i``X!ZhnMSe1&uDx4lfxe4wy*s~$ zhP5?I@(K*|DTQd8ndJ(m-Zz#hBwsASHq0Xh4#PT3*+t3TMs0xkMh48}IcS2>VWT4! zq`$9k$>nsp_t3xvmg2)Y*ZXw106B+$9`4wsT0z`5MdQ%5$Hc%G<#C(+_#$Qq)aF#N z9-1&9Y+O1R!}vBtIkJ~i-_8TyC3hAa-Qypp#Dg3PtW;*yBbeH3IR47`HrL^nnH#k7 z3uyFkU$Rg>%mzhVt?IOPC6GGl26I#eF#9DNBNe!u>VBc)w67oZRSoho_V6;Fd;r!7@c@oa|TAVkt0g?l9C@IYR{85&`0BSQTA@mK4?8JTD88aXfdxp3@soBpZtKaoT7rrT&|Je+I`i=^2sI2<14dpV zc9x$l^mUDQR)xk0OIaQCMZnBxN6F!;!w#ZZ`ktSXavoa6u;3ZFBR90@-WPgoRINSUVZ?`T`3Bji=gq>b6@+VBj{xReD4x|I2W$N^^}33X#WK1L{l#A-s^+ zGK#O6(O#d9}Xhcw3i!N)!FH*tIU$g)_-cjF*rB~T!ZhS zl108rI2B4UspefD9ZM;o-9aqz-shzVoGi&jq~n9{U30dpMb(Hf)f#Nb`M@;?(S7AP zu$0mXS5`x4JwYJQVZyDL0q()+DtKc>puv-GM>b}=I!q{h-vip30euUMf40BqpQ>HD zaE&xZo^}k^9tqd|{PYKN9Ssa#Q}W8RdK2>`E)SA9$y(5};>AqS#J)FZM6T9Szk?AW zbNe#1;{*;|p(nqGkUQQRRO(1CJ?fB+kf88+V7%i0ROEP-$|4aAmD*m*(&R`NZbCe0 z&rh<4`+#2J2)yQas`SjuUJ_@o9MX8y>D zv#v|32PeA=?&5mf_yAQr;We&Ws#kcQ>IjG%Jd|eNOJ2|q~ zLM%pP($+_O3?igS3<1Rg6G)(8VuJE5rV<9nwG~)l=xJ&H-WqBtVlpqG}Rq19;=I0B(&|@Ov5=`AaFy{fp#K7 z>Znz4z169;eBqxrR3Fyl}-LrQ?qCHdasq zd)EQ9{MKS1Ol=q|jS&in$cTL>dXjEET`R*9s8a)K{c=vIYik4IRoGQZT|C-cPue%RL`Mq=J&X8}v_ zUmC$j>`^h}Cdap~mY&knJZ>fHyK(ovcjpeMAeG?@Im2u|t`W``K6Z;|jc>mOUTH3`V@Yk-rH6*)+!LVC}iW zCH#YZ%C1?wC#%!3#43q{2A9=Ke)IsBE`t>I0X~@dw>MA{J>3I(Uyyr*D)o>7Xfb(0 zf&j_PHt@-ysSZMZkK{H#Bif2UR=G|k85T)}3DkjHr)ihA9;%>wl;3V?fJ}UMPtR>7 z(@3C>2kmDL&GsMl#<6DtC%JqRt{tr9`)_phjHconQvy7KbqZ-PB_7L_PCR(L*(%;2 zZEugdW+N*b`0VZe3M`lL0jef}x0FB4*F$@+&Kjv%Va&IbNn<)lv@?X~zYB2MQ80w= zYr^hj7m3!g8H)F~_^_?6e$!aI%e6B}?!I;5zRue(mhzCSwWk0lEM`Ap(PT};5ZGMn z`In;Z@rpwezR1J@cZ#FmWx%Q#lAYCpRY%`NN~tHO4^3^Jxj*2)fVd4V>?nac!?P4A zmRJbRr;zx;3_AzO-5iku|W%_mi%%n)ajpf}+#FV7GGqIk2kx zjvO|p5hCu^o?N8okQ>mBNKgAF;9HRBc^;X_S&(o#V0uEN0h)?C$Yc#A)$R?*ZQLBo zj(q+(hBzIx{JzjU0IkIdrMtf44PIW5jgC3*Jjl|zylT02f{=;+X~?d3GX!H}5kr;X zq2RY65Eks>d8n{c@frJb++}s`2etzBOS1)D75w!hq$&=hO-1sDf{jJGX7xPle z^3;o9p$#OX$2;3+s856Oe1+xMK=pa(X|~`d|3xHx3?%=v=bm|mBttg!N3F*%f~3Im z(&{eogJr{9tUGkn}pqSpp)|K zs$P#N5!{$Hl@S)0Py*f*g#BS~toEC11};*^u-0@Nb+0VJD-UD&qHvZCSnEu^JJNJd z{Ees14V7RHf0gy2V2}+(*E6s?{W0wp`d-HB#$#x;#@sRkA=f(C`bO{r-(D~xyS2D> zQDc*AG2HGJj?BInY~uwJkjHF5oyFvHZfSs*&7o7vH#MQ0Rk1do)m*A%zousfjBp16 zLzmcL`zK<3t#AuEz#Wo!!4~Kc#%}MnIw@E0C2v+u! zfB+hifMKDQXC5pdu(;NB7A6C%}ui5 zaL9JxiUUIZE_V6rNU@UF+DHRLC1W4D(9@?}84x;$K4OuJfc4PSaeO~`B*Dft0mM-O z@(LY=tD%&su3zbSqDfP`>PuFy8rSCXfdGZaO0pAFBA-`w!M7!k`OR>UJIU12;1MSv)F8uiNwCv3WP^0pBr=5LnM~y*1L(i?wJk5e0GQ2ew_r}k~Sj|M{~G9J5q5Ua`c=NhieBR zwO|oCY~0rt&YHt;ZztmOnew=O zj|V`<_47D(xZyESf6Z%vF&-7qf-xo0=S$^(uXD2cSx`NJgTbUmN$*X!uP;`xCDMpsugc^EIee@-FGT13xC}Pq3PMLCqI4)zExY_Wgz-l9{Kq%1lEq`}9EcKg00@l=3l$u;+fCu1ge& zEw~RBqL3Y~`n21WkceAI8@3bUPf8`rV1KXT)?tU-s(Cip9hf9E8V&j^AUuwDIHO7t z-Ml^4Ht~rMy;_Kzb!$E@tYz@wp*!Ts&8#pF{81d0di^FgKR^FQFM&jja*ebb|9Fec zB`KMMZ60<-ZlZiBNxy}ILGyNi)RhEwWXj@gp0{uc7)@vZNDa_|=Kl(_agYGYa+=^Qkwo`jFxK2LWy9C7ad<)nRplNMRZUqMrKd;D{EHw@nmTamP2 zq9BiNPKeyV|ECkRS^eOTFHP{)tswOAOkBk|N7s`5PiuxhE;izzHc2^c4pl*s zSYa(Hew1oKR6$NzTU8tzi$BVnDx+FluDoDc(!kGB)vjlX+8;`QuQ;ssBqEuT-&rVy zzypuP$u6Q%CBmatAviLvx8^~uAe`iKGxbw|2tl(y=!7G(g2Dc(OyZy4^0xza3?&@= znrO!X`yznvM$ttT))MiOA9}+`+H4i3+l*MtVK15D zbjsGZpcW4y6CT%;A_4LJP%>fnXXSf)d$8^K`uTyL*SlzQNC-vv?O`CmT?-*ml7@@! zjq=eCfn_l>e+M!raQ(c?nWJUR7a%DB2o)d+YX~_+j60xI-ujx<4WJd+tw0>>DhW@w z%rZ0rxTh9n4^XeS`^@P7Ju9f*=77&v?R>06Ii0I_0^LWm*mZkcjZ~1=D$p#8mg4 zj`N=l=b7D~LnSW*rql$V9T!6aW^Y7+#SO?`i41IhgFvPQkK|P6`2aD~f}bi{44Osm zE1yZnwcsfLG{JyK%bYFL_v3(R!oCs+LqP1OS-X>9TNF8n@J0k4DG2J)hD!s7vCMps z=BFxLjPd%Ry#RnD(i>p+tp(Hyly@}?w8E2;x;H8SUMJ!-eK#d>@e)=Xm$|C4vfZ~W z$fec}9p0Bi!t@X zMQ+A{ei9OXr#@RkwxD`VWKY@%k@M%}u=3uI*U_hJL^?WwnePGQQc%=_qz2yqcF>&~ zuo{fhF|i1SX+A_U8Y*(!o(zg)bwCLP99#3Px;Z4Oh|&+zYEmL17eJ+9`;OFf`(81k zm?{GP9*2}pVCTfAjZ>mk3!oZcVBg+Af&nw8CvbuDAABg<{V~+;+jqGT<_EiRw6h?k zZx-nV?XA3_#jmSn?daOF3Q!zbKs-`MIgWzm&;U>_HEPS|ctuco1`ZXk3*^&~4>lXH z$tUvkEVsi+bldIW4H7B=+WOZon)($12thRnzLw|_j{tZWv8Xs$UWZe;Xm$=x0x+OB zKB@sl0(yk?qFP5l1bK@R3_O1nkLJhBQk{7_S@rU2ioF{zE!U^yq=FDW7$&H~u_((s zQj(P&e{b~wPB8+dhFOiUkz27EFt1@z1ql1bi5d8=0s5g`VS)F(Jx;I$47Be0836kp za%J$QUWR&^K81%xxAG28%NZK%C?Jk+jJ%#YqjKXkBrq_8+L72=D#s3zXNb=*UlLAF zP15M7I~JP|tO8d`d(eoU+bE?ms1qS!KbX_k0X){{&ukD`oHy1@zOW>Gba89H+Soc@ zSHLIDW+;`ISXe%ba6novkn%pyOj}!<2O~_0l2ZzqhL(0hi_ZQbEXG@IPzcn(O&H!` z)NRxbCB(0r6&D=yXjVRrqYkHqHKa>(;6P)+gc(&1j;4hvaVZP5sVx_4OqpEZrWQNP zyq~XO8P>ZJxto^R&qLa?b1yXQFoIDXIz5oq+(UI~#fomKj`TyIpbso~%pO{(Wnp1h zjF;0VssqgP>J^%7295}jU4hgqdbEhcBU3z*|HUF&R>HC8cy`WINWkzL%iRO0+oq5jXa|~>^!?eqHaRMIDC`ImZ zZ@A61FFI0n!i`w2&w#D3A4I6F>LgQ6haRVhv9zWKvaV&)IZh5&I%*>ehJEBgW z_IP_keWbD2rc!%{0@i9DV{vU$T58J9V&IQG^|kiks?D~-Ks?+b zcy&&yXTk|iJnarSB>SarR4 zvApI}i_j~C`zvM^_BY7BJ6CqC+@~SoMKmX@>|fsX!#aYb6q0v~j*ko5H=uJ9#bY^o zr!6=nq{Rj_B%)A=WcRUYRWU1E!$mf$y(d0sbA&#?DBg_9H1Qj=djD`Q7rS+dMUjJV zCU(B#nh-S0Y-+b#0TH_uEt?}BFW$q}qC5Z)Hw3bu(1C)n6c5BLd9oAKBEa{x{d&MX zn0`oPGejn3;O9q}WHCes61&M}gvN<_ok3XzwWBNSE^yMuQq%X@t=)rdY|nfa6xV zAMF6F^tuP)70ACnM8&9?0b#Hma5Sc1Oi!yO` z>)mp^cTj551wniQMqVIOfj2*ay~Ogd63h$bF@Z-~n#M_9P71;i0V=T3mI$lY9Wg<| z#7j9?5SEk~qC)jmV`un@@6weQ+%I&?!;QmR?T*M$|yfr#8N z(FR5-Nnv4kOsF~AQVQj1YCv1`^rOo`nS<$Q2(0VKr&$llyiV+PYG5FvWG3j5v{p3> z=$>jRjr3rJp>|;rG&C6qPnFWjrK{2msQt9Y;(1GSk*e!+rvZjLOHh}IAOCFun(T6e zSfcEMUeowFSS%35`v*%}hol9){Ad22e;+hL^iq53xiu>myRvX~@n!p`$vU@@9u9o% zmr!KFu-rHB`L>SfC)Hk!gPpiU-fKw}U#^d~)Y)}Sc-+@w7KVo4Dz)e09huM!>My!h z^ZZKdU%%Gwp5appU9*SWkRmA3#P9oGCa|7#UHe!|pP#M;_tOom5WS4Jz|826<}4EH zTl-R-;kJ~?_uHLaKD8XMN?@QGsw&!2>`>8 z()J~{saO+;8360EtBOSV+8I4Gywrtd6mQ7H8EoQLl49)=on>14vTIJym15;dNY9h| zSa>^f;`p&SFJ!KqB)|b+3`#0bJ^RfYXj*SojOZ~c7SBOH{Bd_&I83d<;4lOgXcOV? z?t#}}D0(HNctWmk+k7=c(0kh3UtwXg6h3|KyYr;}{LF3Ht2hPE>vm*s_n}MpWv~%| zzKO0Y1ToL6|4NKFO5ixUM2UtrN-xRg3L(Gq(vlfd)E$ah`zkPyTFfw;=!xm(xY{v> z%zE|rB4&C_Rw)!+TWH*O9upIjlan*=(xdNC20!=3V9VWqt6Q~$7?7Q5*i^|hVt$tSnHd>L z@?I-+e^#cjbWrtfLJd}p8QKP$Y|~TYUq@C4XR6fRAGs=TPQ=su0yJ%-{;Ws3cDFw> zI=jlZ&rh*Hiw#NH^drfy0S_qK;KU%Rx8Hx5yeJh)nlxyo@$>jTnd!qf^IHX}hns$A z@{$Sa?ZarM*Q!t^rP3`ZdMYsn%V{T#Tx(agHnDS|G3gQaFqbSI8FU0G4xPgH;b0{e zDL__dwDf!R;;Qm;KK42k?(OrMrF^o?ubHN!n^rn2BWDIN7F6+9xKT=@9%x6&njDoX zQ+2~6PQX0~A5{23R(tcde7Kway-B+dlZ^i?PbIDg>Pte!P7$QvF;7>)SL&>Zk;?cl zpYA$_?^2hzb~CpTj?4fq(I(1&118{@Om=LV``Xb5?Ghtv%ZlUQPiLWRVB^uHLz_R& zVPa9roKz?Tr62HSUedMLILnWB^25;GdvuaTSC{_A)Q*ZjBeP<42;=w%(gr>ox2 zExti&5W4#-BSYF+oweuh<&_=v;^q`oQd1$0NY<=e&?RmmU$zs_xcb`H_ZJ*P7qR+o zb~^O_n~(<19Zx>HO)+b+^yzCvoee4Jg(^gVvctcR^ez_Pv$#ONiwnC__r4ZCHQ#eZ zvgQs1BBLyT=3RNIx#4ctm0))GE11>6KRVJ+w@#|j=P%n=DB8TbO7O||vTE;D1ki+p zBuvTf|vde>*<6E=!J% zC83etJnvm1<;Smse&HcVzg~p&AAkIDG7!`l#J>~o=kYpfdFqaNX_VQmZB5H$UC3WvY#OJ-gt z_$9@XC6Tu;P6{qvkUJo_J#umr)z6+l{l+8%w2N%&z+$-Dp}>REuDNw(c^QKD0Zj8n z5tEXJ{Q4%(2Qr3S(}A}FWhDqHHp=WCYOOQWVs=`=2NG#ca zw#$^$jIjIRwckF%Gj=0#NLfw*@T)%(dLQ!e*+Z$3t06F;X5x?276&4 zve562k2>1h-)%(g4D~)@ic;!C)26^Q-e%M$4EAkGBX9REQRYEI@opn?vxFoTnpDO{ zW`3Tpj%wv~qx6%{ z;!8_Qr_hX8KY&;SRXPq4Q9J}vU=cwNix+q-Kq-MDvIfd}XkAW7eI(|o0*g;Q~wuW&tnTsUj#$U z(eVIU(1Qa5fKh*dc93i|gUgTWgqTase`2bajMCXwb3PeYMXG%~5u}TM%BzV37Flfg zonA}`d5W9N100iBAk~KSTuKr8FMjvgIHIr>PP)W}k=c?aHUA7kSbmX4lMXVS1AH>} zyn><+i%f%C@0m;AHbJ^g)?WapPg3FCu24gfStW&gX*OHBhhmuJ$?TMimN# z602d+vJ&89GH?&y-Eu;PgQ4Y$5zvpDyKvmO5Ies#Ki zw`lkmpp7hz|37#@7PmHh<+saavlyMI**i*hy?tl(Nl@1yUDvO@8%>u>;B+&Vvq-cX z6VH~U&ECl9RzT|h&>ckd`H0PLPxaHHdcc5-;Y)So2NT%}{DeRFs2@@DN|C$X_nXN_ z=3gwQh?ni@5aj<*x|4@%vW7e-hEQ3Y4gK^I^)Ws7aN`}OmaNNxQ?Ucuo9et`lU3G2 zOzKF_UDDm}|2^C{8R+HiuwPIOVi;H#dgdpN^U2Uc6D{^7%F&kFUc2$pH`ADYgOk+c z2;O|A=$Bg;Gu|8M(RE`k`TS!&?uthzqK64+;4hmyyR%3|=XAHXqe*KI*@vI$vx;Z+ z@x51$BY4ZzSgSnk5&!26=#t(!h$3CGd=ejDixiz@!SQ3!il~N^7GI+{ijb}XbywU_ zk8URF?^zC8903Ln1?nrN!u*z(m`6@e)x*=hv!f~NSei0p;mL@In}%D%$rlotwO723 zcjebfrt2caYJGwoeR;#;O?qRfW`I3c0*UkbRT$NU0PV-`PW5x=VvCRNe#_-R<{Z^4 zm#Da2{0jfiF^jU!f0}9+$tD&l-^KYO;i$ZW+x=5X`J)ew$OW}0)gox7sDDrBu(F4l z$km=4%f`^YmHv^^Y1)nRa-^8Zrmwl14LQ~k|k|fIehuTfIMyw zwSQbc3k7+^BW@N7ShT;Q|5k0zrGH0czEdS`!-oGAs}GzYtJH==7heDGT$jXi%e}HJNdMY5oK;#;0=BlJ+SQ!w9WEKk%4;o92khQ{ zC_HfGSE1AHZQ|#F6+?9Jw_8kBJchwgUbT=dGyFP=-P5O~?zb_0pcLw6Gj8N)7J>J6 z)BMLKj;N7X5D(nOfVVLGduaUiia#EJ%Z!BdVnppCBGE(?3jghoKfVnD3IFxf-+xHq ze#LSs-Cbf}euLCC6X~z82QAxzBM5#jb6<8$=lw)#dw6s1WOK_?Uxtuc(I9Hl+I1< zlQ&KOC<;Cm8_UEJXffOfr(w+{BDkb2oBJNo4l+%z=gJ&O+&JLiz)VcfLGA-JFIfTEC zosvcAo+K_I}t*3n=6NE3np1F~IgY{Vgt zH{Ns4=j^;Ey$Tk%1Lq@2yA`cWo&0j9%nkLp*w zWmhr0+2Zh?51`E4fqOZ&%N%1^^t!J=v&*ikNoa6e{=FTSbEa1s+&oMiT!fk^&s9+n z^~)@aujBa=6g{2Kz+x5Z z!HfQ!kB6wNXIbXN&lr0mduL+5Vfj^~N5t6*$zGi8Pso{h-D%1?l2j)vrWi+;DBNdMl>d(-XFc$%r4&#)2w<1RLuVH^nEF84GD`(}1{l}hu zSmGk!AbZeZzhAOTvx|F!iD;bh(WkCjv%EDsu!^BiA^EifD3=mqK`DNbR48kxjG%zplym1s-%li;cM{OLC$fuh^6K9nh8YnkZH>enByPtF>5;$9fLgdW!73m=`{ zX`|EIqfP#TXISM-nJR};fSsrF+dmE!5SFeE^vT=zHINjN()iu(3mciAHL97qHDP*H z}XIQB(dfyuDdZq|40DmL!vwtJ@gd z(bCo`DJi+UxcDoiY(4!-BmK6`FCXJs#5ECrpV*zVtgUgYvB_u`(G8TGA^Y^$dntc`gKff-a)f0xhz9XkCHsBR&67sz@EQZ-F8NTz1}EZ#c7- zVfh%vqUxq*K2Pq4h1tEJIP*Ig_87~_j}l!s?G6(1b97S`FtoLuvbdm=q*|u@uzR$v zH&xVYwJ*K6?ts{eRqLGrV1v*GLrfje=k}Yq9<1}5bVdPhZ+tVCz1f-(7o)WnE2l>` z373mFgp9fO7mE3Jn!|s^h&(f(QY2l17+@(9&d|qjf9<#|Z-*dJ18d%HDjXX1=nmSo zMa=cl5^lWAKgudxNW4t;vhP<*BtMW0bFonNDbeAam@x*F>Wmxz?SCz7gIxlDfTkfZ z*waA^NMb{d=Lr<{!|X8K0~`!VVi;xcpZ^bGq$tMsrQE zf*E+vPp%j}y7x*D!BBZY7o=nnRBX)t#>Apw`t3w@Y=3+=PVqCNvn`RN<1b6Nhnq%% zUXlM?5}$uglbAr%#CCwi!WD&b*Z^7}xVm5w49&2@AITghouE9%T&E0jKhRx#R5JR% zER8=b^4oK+tUvT^Y#%DPHeI4oa7!U4qb@i&kfha?uW{~rNy!Z-V<^~>74dn&nf?y` zLmktNjAutP){ikNaB<&TF(k8TjTY#owNv6^TL!NlrmapU? z3F4717GL=62l~SBuUwP^*m+JLp8*7_+7?Qt6qx|&A5K z;E@`1n_2Tqnzegq>o$SSn?UM_RvFa`p$n^lMoj7*9T~k*OP*DFRThaQAGrkh54Vp8 z0`7|I@ET4M>bxvbZV{)rCIlz~3`wkkg*D0D3E=70{**c#2%Z+wxnlHBB@9!PE?Fx& z{@N~6_zgd)50j0T?%qe&q+~bSF(z`^=xl=0oYk1U6L@tAAu+Afh3NZC4;t)##{A{n$VA0bmTFA)<;X8Ot>ayYE;VsZ&f6zjD%5#sL1vf{7Z#8;ewcW zZj2;$h!RB|(d?=>xGpZHXDBk)rTCK?rB8y>rK4ni+vqSBZ!_#$NQ#CzoJgT$JMzBz zR*Da6rYLxY+3|)7iTUkb<;o@6SG-bC)~^2u&_L!tO2FohQ|GH49IQdN^s}_;@7Fu~ zh?yp|B&=CnLf2kI;bk`+{xlNHXyoU#$_qUoH4r+w>yqIdaJrAmwo#s9q`;XBKhT*c3 ziqb*MlVs6M4p(_^g8nX#8{!4hEH)u#Mc}guOp%9$9Er4gEqv2`Waz~|mQXR}^F&B* z;-~$sIPVlPf7W@Wp?$e{I7@^pJ_mz+fc>;t?`s5o@6whbNvFSW6NyVb0~J7cVJ*eR zhLAH(w=)uHW9cM6I#oP6;jXSRhctwsg>=W=msf8w;N_Aser>ov01?W6mV5wU0L1V_ zJJ_|(u`Ru+Wrkpqm$mf<{q@@6$e-d;zS$IN;axq9p$Mb{p7>j-4zNau&`d{@VcZG% zk0sA)S+`RbtEW`AuiG@-5ZQ9EHbYyQGc}EwAi(oDmrRk&M8A6VDw?1#99`?5kFI&L z8Q!n;ZXwNbn&Er&gKSAPhUF{HJafrsVsnN|+W6!R;U9nr0j;QWn680#{%s$c8v$Um zJpf8?5VV2Q$_D54xl%t#F#nNn#I^eUW2cXrgdwdb$zHjlXFAWmzwQu{X`-BVr9Y|A z(?&g-RKC7vheLo5eu7qzdqi|C!MaU`SvHV|m6iq~_GjQSdBQ*;f|UfEt!t;;Jv9jI z{LtIMrSbJH_AZyejuPpUw&6g6yExrcj+tp1`ySzIXS5sqp^cv5c7v;by>Q0@j+*3En>;VcGHx;UguAlhgU}PGy*n zntTL@0+G0yKCLp6UxQGF%TA3Wm{uAF>Mr&7{D;Lfp9Smx)4BLKtI0 zN{tz~XHqLQb2&ra@_T3=>@0LNI==2($qm(Sk1xwGIJZ-KPL4a>P_q%8llgVzpm6HK zhE8rlLBZjn^Z01h)5nl8!_*Bs@InCp6%&K^{&?LuQS1C(yZZPy?A@=oWo0)OxN=xm zK0nMlKFzK2T?x?l;CbZWr6(@mdVWdhh3Y$Hfa75*=B;vi6JodzveZDZuoEJ~#z0_x zultCChs6q~mBq>5@OvpBQu(vUY@|?vvjNTl_KSzn@=tk>59;`5OMHo;r7{EKs^WHh zNx(={=>|psurQeE5au|18J-!7<9DxER>&Lrjpd37xpbo)oI*1PMu**i+Gj}MJh$x(-HL;iQh?v|qyG#qCLVgZ5s7PU$%HeV z5rntazwph?Uo^43_CZBL1}*i$B9{DghpO|E#zs#5j@P&ihAm$$OW}NWEtzg+sX{MK zb{9jkOM1cDRLzHHwh-7n%@WyIqkdn8f4+Ze7o|a5Yj%r!i0@Gq(NTSPi|wxG+yMDr z1DRnrscvn~1C+Y42SlVSIG9zA%_(dTHP(7D5u>S4;DC&w*3Z(T-IbrwzDJ!P`aCV>`}PQIq}|gHN=v{n0{01t?AcL)lLt91xIT;6=|gtA8=h4kp<%V_C>-7HjhFK(k3~iCFQX zq`r=!HDXzTLj*Lz!ck4+{p`;6f1>sYc;!Bk*slsxE@6cL%{G{2#b6elA` zG(f_{#RbH_>2I|7W>god|5aDc^*=Lrb4n5$+oHwP_hrzcMzk8l{GAPzZ&v}1so#G z?-9P@sqpCqC&34~EE?9j$pl(ac|5$OJ(`y>FC3r7e_4C;-Ga?1_3^|7Lgte~5TmG* zsjyC@FJz#!WlFgfs3g!+zC#!0BKB~0!L7GCrK5e!bu9_#q(5G&)LG&rDtug@d`qyR zk5vNLL||df0eElU5m(B$0a@zp)hV5737hAM$$J2*eoHFPf7f!ZQX-R|pLQlL`TD>r zalRXpG>Kte0~HSzfh#dz@Ae2A(?u$xQTe(+qFt$$WrjyY6c0)*UZ&d~^GH6sC!3zM zr&zl{vzHDEgwWSyz@Qb_t4{*^f@}rqxPH)OgRo0-&Fcj114JMZ3GlVrH@1guPUI=c zj7;Q~hs!V--IiM}XZm%$i`bmHa9-xl>^?MR&J|ihtWQ;nRP8RsIQ;7l+xuyc(Twtq zUxex(4!lloo{SX8K!Uj}4%!{d?gE6#7{JN_mIr`Hb_giju&}UT^avV6A|``(AkC1H zk`j}GkIssV)3-pU$3)6kvBq8ZCrCg#&6}p_ST<#mcb}Bmq!G~KY3=}6O}fF8a!bI# zpl299u}?;&d`o$fjiB;KHr;NULh| z!iDS>0XpunoZ#_?twxg0#?+13zcY@Q58bf0z{0^7Zdtg*NEOAZ_LGz3`R z-;8A}S6CZ*SR~TMWc%NfNHbd_ePTcHsT0@x@`3%o4HWS_-8^&N;2mxj4G}8J_~_^u z1$kVU8vfElj@Ft9Sbl&E>neI|(o#4Ii;&x&y?(Vf7y*AFuNkhajq^2jtCamD6zI3U z0y_3Rpe8eMaQp#;d9Vn(1aP&N=V`#7{96ZN4ZY)(ZwN;4U+R-f!WKPER&!nV1y7$X z;6Q5r$7#4UhBF7a%m~7k=bN z0>BS0YCGx!1y>A##@aq zMYQOi)l6os%->A9)cL>&D=`8c(kmALx~tb*BsX@-Q>M236C$4@PYFR2G#8N!q6_ClIgAiQ6u7%~Onf zDRteBw~8pcmu_RPs3ov=6V&xmKx}y>c>8VD0j#SAVWb!6G{IVp$FKB6O0FyTI z9oGQav`tUGU>8&iAprYBZDf-UlbJy@y_$zoE7m2CeLF{-;#eFS7#*1mjSAAE|DDt1 zpv%8rdh6RO3qaPQo4CKgXg=xskK1sdHGuUI@CWANU{#bLpjA&70uCo2jT4?cfq7@p z@I=RMJr90RM)0HdXI<pY$k1rysir!sN= z=Fr8FmvnJ)SfAfvl7DBr5{$^1k#^xSZu~c(wVbZj8h%9 zE4}NUp13)SJP9FD5&)zta4;i#-B!jmihz>D0-&mo3lb0zJ_6m5LQddsPuNud0t-?> zVhoR_ZSA(_RiqL=tc=vjqu#Aj@uK8?eW$rbR_DRXjOIGtMHnYd45i|{o-kX4&9yRf z0rr^7_d^(|UhBg198u|9qCZ;&h!#FdSY-pTZw<)zKY#uNRn+N~kMu3jH{aIVz_D^L zyR@v2N3{Gm?bd&hlVUUyu~hRq(xo|3+&J*|sHDC>=X3WP-Y28cVBq*Fwum!W3u{+$ zW)aWrMhE8a+_um?lnz~~3gVZEfzO-xUbxdnz9rLc-{##&&5FcRuE1~5TugRfMy<0k zvBXQC%2G<|X}Qhxi_!55BaRqkb(|FjWYujDu>g8|db$b)e4n&8uIB&7rCPt|yZc`s z7K^#drIg4?Py|$-1n46_M?Ey5hktd87&Xb3mMNrn9j~w|mYcE&aMw-Qf_DIHSOHS;aFUDH15pk-z!*uqa~+ z&_cW4&_0sI?ueRh(S)$F6}Iso$zLYM61Q*4ans&I3i>>#{=Yo8c(Gj8dzZKDf4M@b zuY(JXjTaSnUQJu3TL}TxiS~Rvom)hU1h<%<+P$0CxspQ}X#rs%2WLJ_vzOeB>RgT=1zAu$!P7s(2xs@0jI3q@4+Cp z+)nC=y+6AB@aQL{J;B+*A0TxKU=iF04Uh{$$t8l8hLrBmSD5-^Kk{=%k?5;l4$pX7 z*W;TMxE^1!(}9T-+I$;BFP~oTRXZo^>9BS4ZCBI~p9ZzU8kQAkmQg_?_%s$SY|SU? z{`)gerWj>TB|P-QoAcoQ2!iI!gu?OZNF;l0*5J|gL{TAR+B%~RwYjZ5XqFdljW^QE-=roew6x+owh zz+FhVHE{-~d@*u$<3y4rk+orbs`5qg>pipkIFE0EYu)HF}0pT)-qL8S75$pBc&0Jzy4@=0?vS97?@pcanTRx+iX5v=;v z-)}#BIV6nB9u!_DIEeLiT5yPiU8^4xBrb(ITY^l`iCnc92=Uov6-d4^x#FJFtW%~v z@!-=DP*B3M0N^b1qz=PCY;DErHvg#*H-d8yP)5Y%g~~Sa$SOr-2BL> zAgvyEUX!e{X+fs*bXe8MxM)JudnI+U7;S~tb~Z>rDZ-yE%N!xiN(CU(Hsu7e3RIm(A4K!lBF8y)UFL0Xl(f%B33x+p(HS{dyk>a& zduOEKE==ywVeUV*JUjjwD?h{R>FN1)O8}%$g>VNMOyy+oDoE^Z`x>X%F|5GXCiZ=|IG_RpNogsd13y-6 zw-;2Iy=7?VZXBmsRZA!k(o4P$Z$vXToD;uabZIRBPL8G_c>R{}+^YMt-mfuK9U;`8 zSi6AH7}WSSY&?@lB}(gDxF9!&1JWLR!{LOHLQvPmeI zoiSnZjk7h>%5@MPZ_x*?#}-H`_5_*A@eOoCdMe| zUt-dSi5~_`1p@#(47piuIP#Fw|1r6PBA70ty0KZ}(cEFTapp%)qj!?!UOqkl@Kr3E z_RPQ%QF(OoBRb`&%Wc3M9|DDlw^*b{3U<)B>OWj3!FRdS6*qf!(F0Su-5bfRNcj3R zQW$htJf1RctaO6X#fJLLGrLh#M}5ugMFtt!WQyxR%Gw24pib=A=U5cgCq>buer>B@^LZ98YPr zovtdtN{nv!oJ3t$?$p`IRleg}X$n=Wfa{US_4?pso(3PA(5$0yR{S6^Iz7KvQ@(qiruHA<^60t6e}-i1NrpsoYXZ{a&3Br=MJ|KqcCk zObww=%BS0QQ@dZHOR+MQQ_)jEKlOQT=Vuo{4oz+S?JqbkGmR5l^=@?}`s}rD8YN*z z&LqP3J@WT`wA_v%&@2lPd!`Au>EtnuXCqAW8h5@C-0Spzndsf&ynP_ysNXE$0KjrjS}D zrDoBccC4>_fmfAgby}7-32C0OMR(IpIPu#;%Zd6{P9+4>thD>j<&n{;?DpZu3rZR!-688GUc;GYE%2L+eK z1c(h9ZD3#o3&p034$LQ!H^*mP(YhxTW~HHEkR#Zq`fwVTrmsOFkZvfG`<(`|ui}#2 zbp`Kqf^<6790*TxQ&g#!lP3g;m!%D}Or(_(OFV@-P~+q@T{hSp4%`yHkX6*N(>NN5 zU57g{+Nl~U{nnPA=) zHkt4hCoc6jv?8#r#BU`EIhh{PI6oXUYHwc*z8cLRz&)ky;Kx_>crIq0iB_z#SI(~z z{M)lE#pis1wc3Ba_qw=JPhJwB&nnX5us}@opai;lP-PSGd)0!{+vmQcA~6z=eW2x) z0BH4r>{&jOFC{Ut9?UwxpJ+g^81-Z%G4uhb3wSvIF@u{$fI)Rg&Ws4-OS>rY6GOPm zjY7KE@P1oR6I-{|bwJf@(yveiLJic?#eZqQ604VP$LZMfm-%i_!>bwS2q40oU-&r7 zYj2+tl2Rd~P04h+zNl2Fr`N8hr>EclfGbTN(sev9ys@?QAn3jIgh;~m@Q#MJrj7Ib zkn$qHk0ZL;9GLwuXlE#&tCrG>&Nzhq&XlkAUG1&8W6L+fHyFDPhH=Ma}jRa z51GzCaCI{;^fh<0)l}0gQ=`*PTz=yIIp=vzO5Q z%Peq=?FQP+$Eni7@_qgCvuercWeH)Y%e>^gJq`;+NZu3vv?KQKRye*#H!} zzqF`hddc7eCU^Gfg(?;nVqQGg0e=a=t4Q%&uu>kl-2L&~%9wRsenI4603;C^Z3;a- zJ#HeQ7U#a&L;BSuhPF=!**Zx zy#Vi9Ebk341@im-=?!u3XMmuTLdA zq*GC@wWe!YwIx$~=u4O`c>?H(k@{G^n(SCJ&_+@Q^2lq5#j3s}ltfJ#oUo0xzaT!v z@Y%`I5RPtC8qG4(Yg6L4o=~9se;)5_aN@|)#47v#vRAMiI3Ofy+etD!;^McL#~s(x z6;9UKHXQhpkc>sSej+3FS-Ikm*P5Y01CoS7Sf61{xQDAnHSPspER3Tl*cxEPIAf%; zrR+yz-66Lez7rAtO!k%lZlg{asX87MwsQtL1P2YK#y%_BbZ?0}A=C=wO3GOa@ zl|oYqS>My@5A=naiBTbo?1!H}t~^(~z8G1dn3k&+gjEWvlO+s)p8X9vauX_8{ZRC! z2mM)Skd=iTUwxv#?XyHS`EKa=*&-+EmOT8r2UjWiI_lZ8>h!j1C_Pq5Ny#p7vAE27 zxXKy<6irn0wWMTL{t}a1yuy#=e#|HUtU+ zqb-m?VUpbOe}7Qr#6Jf6ZK=ksA2#SHI{IQ5$JVWKyNV9o-J90imU{bM?t0ul%V$la z=0MkcuFv#)Yj)dw_L$kzqQ+^LYjV_1osq}>^QVyiI*Z8PypnU{&P{%wURViatDxQPfK_&w=gtS=zRIIMd1G2gzIpLG9uu54Uo0J(00jeNKr3kQ$95U=<8Dke5Ar z1Oix&Oj60!_0dC`-*tEDtEpD4g(9t>u)JULbAUAC5cz2C&AAORNeWnx{_9TtCgN-LNsm#+APV<G!0I3L{AeAUycYdNNH8H*k_r42g}Cg$47^geJzH+ zSJ!tOE7USDPM7<&|E~?w5EU#bjKcX)1p-#IZfZ<1$JK%vw=yO0iMag}hf;hGFCW&t zH758ZDLl_~XO)wN!_Y*3u77N_gr|C;>4YU`$C0)$KTq&7q~B!sj}Bi#6^*G{@GDfg zOx;r0$IOw>ct*JzffbD&{emcRn3I>FK07hL=$*xhxT9b!#JW+~N(w3$wLs z?B%e#W7Q=pDok}13|#fa??V~TK4;-yY=Lo~==qUe;LF|jQ)Ow;W1X!{$_w_4a1f{S zg*;}cL}xXuvhYSLsnr5Jd9INdr|nIZIXIWhxqhd)?pyixo!_2DFC*NJHMTyG8d@)o zcM-m3C`;C};wZs9saSrF?RE9(Tbwm)l6?D75?1n2o9x3u#Q3X&#z9!e$-8>g&#>S7 zYpNb6-!g5~jEszL-ySA%wiXv7JYJlgc&)naBbWAEx#C7ArS?HF9)jp6zGCdx$&9I= zieGz5EXHn3o;1#Kun9htk8LI%UG{i(6RKl>ZH-nLczvuS_e>LJMTcxsp0ZlOuA#*` zY;;Q`=nF9zNdC_5?g&bX;jjW8ZhgAdJ#8kus|Plej@X3^?acelN7r$A@WqZ*|6dWW7i79sg z*N&(@ky7eX5dSgToOm!ab%i3~0`02sF>T-tAA6=g7kYGQ02cefX|@5cJ?HAQKnMnJ zEUD(T79Dxx1Y`SG568A26lqi=CJO#Xc$<(@qnEt+$jI;WS@V&R`JZWuPd#S@Qa-73 zVNia?6vR-)i!f5kXZiry>q|}~ShAC9>pGBEo>u2&k7F-tZ5g9||LM~;#Ns?!y9k18 zrZt67X!~i{!+6I|%m7JA&Kz}FYyE9UyNFf%cCQI#wE@!^vN-f3J$Kd$1v{2KFgJhn z=yVu-nm~jTo7DA~wFbHAq^U>loaI}H2P9G2OHOGvzAkUFzLnn6f^OzK+zwszo&Ji2 zYnm!zeb{a(NEn3AC^)?#7SUwF@q!~ed6$@-ys{C5t@jO}JtO>hd@=)q`CPluLt&PwU6G}-~Dn=&|Y5)FPEr|3ba9gnRuH05;clPD|5H&*T}AOzFv6<8+nxb$?}5}M;H zR)xwYZQMaQ2J8;m$4;&9mGdfH_1B7LdvrrKFlkepSCvi@ zON9}K=qg2%sN9Qp4#6{-wfb98;Hp(O3Ln3^s6|v%>#*GN+!G|PKZx_rjIX_)$^Y?Y zvB*JV{7^K>1~#MD=G70u3Ug)xOexpbe+qy(VxJP45`h&Gg?DzPBxa9X;kgXWv)l`z z#McQ^#67@Pg-4&veP(8+9&k+_->IKWaNtlY9}o3ubvlP;4*kRIa4&}U%eV8DOUJUZ z)h{Ah=sN~{MxDem8SV~yeUO8di@8s}e;r#fAHwZ(+PQ3HNyED0AS*~$F$@~N`8)+< z(r>EtEO-3pbSh|mH?u>CnnCgWNJu1hcL->_PZ%}hySW%=ml(@=2a%1~l=t|3^M|=7 zWnV7y8b(fNMFZ~HKK#=+N%lDFQ%yQd$4oFLh|ou<2j^|2_e)Oxv$NW$1(Q=z)DSb7 zMVDj9_@p=ko@)H+Yuf#0xL{03eSd*^qNb~!JaQoH2Ug2$pnInbUjt(0WzA}^9{@rQ zMz2r6y@x@b;X5cj=0D*(T{R=zT98M>SoE}B&rq@3ao=e{G8IijndayRd)X4 z$4Z`B0lEm__qM0S0>DBQu3t9jz1^IH~;V++1MpkyDdbRwkRRV9DmP8WQc99aJJo=eLpEqBrE0Hoj)e7O=7t z%9MVYf!l-IZd_5_n1k@uIgcp1r7KKEMVRf{NF#~FFX~>SSeA1N1y20v6FnJ2ac6Ff zKr?VJn3$LVFhNcaSZ~dnF#`Ocjlku7N69ZAWqaSNkN9vWLXT_trQM^x)~VR}ct5jY zhl{HAQeL2ycMQ!(Hl7-itYcH+v|a77_w*AUF3FCl+oz{-JY9rkJf^c^5sATj@G#Hn z6~N*cpmO)!NKgk3Y`JQsz?{c%J&IEa1NM=zm=|Kd^INcr<80ssPVeC6PQWRHU`s|O z%gnT?U1B+LLta5Y4xK%L=@pOr)RzKy0{auzUEbF20i7{K&+nDA zL$#+CS6B75+w@SF#(bv$`A0?q+lR|{yp#s_8adr1BoO&Ya>R`q@{HYR5!rm0xX`# z5Czcxwp}Jq>qo&>wCjZyw6u2-CEUvNpm@$?rRZAh-M|l*DQPa4vC?U|OYW%A5iu7G zebMVErskQmazzM(JRtn&T9?#uy8#yMobKsA@FcK&v*8dt?neKsNR?xjxAR|-uL#!j z&p2PMmHwQux>X~gf_pQ}i?sR`t7Va-*pJSvY&wh>@<7s>U`oeE zJs2h^)^3dd?YjQM^(?Tmzjp7q(Je6n>u7*;Hsd3~;j{2>xLfNbc!35vBWR?{z|M5y z&5;6Q`p5NWZnQ0FPqPSj6;5LrwHsk`3B^$;B$a@v7miEwaYodA*GJ;ub*XR-j(iw^ zlpr?+l~h#7NA>K97ORNoj<4!)_Q_?I{?q0{h(_=Y9)4dGs0+sDoV@4p8o)W-U6{sB zj~R-KH+fgL341)K)j%$l+!}PInz7}5N~h%9diFJz@%u@R$t>Nt_c>hzT_2lg4i3$$ zJ!ACm>Jn{R*wn-*oN#mfLWu$;>G(*hdU}t3is1T>KmeJevbou-agGu^!oS{s3f?@2 zcyCYsiwSQHQ4aa;pDerOd;LL^WL!j!E#8Y11EewJJMkv^g|RDQEJPCq5T$VAZ6c!H zg?U~JF?ZOfAHU6>xBvO#lf-JdJ(r+XE9s@F^=#NBrj_t`?C;8V&Eg?E5X83@jj&Bs` zMN$ou)9jjyfnE!A0j;aS_?3pp;K>aCK?ZiLG6P0C2rnl~a|8piikVF}z3n502nq)W zrTvHS)GyylkelkKK65ODP}6STvAxYw`E6R(d$1UpI=^|b6Matwzw zV??;xP>i$cbWJc(R=hK6U|Iy{IW3 z+db~L{yt)7&rMEMG;ILbV7Ft0(3|TE?cWdQ{O+cU+}qS%uc8ReVRlQ>bmF?c4LV>e za&Z63I#e>0sMt;&m)c%3H9i*$Gm8OJeN^1<(DGO`6vL3E4JV$+cN+Zufp7mDNMgCD zhLj^wZa1QS;LdtKEGzd3(hMLH%HOqmoJwDtVy~JMq|i!#Eo>xc(PK|mX0hCkD9ylP zC{w4|RM7&#W0mE}w;l3Hy`m%lZUNUAKM)mZ>FCDS%(Hym1{oSKu&@FGU|=H2(OPj# zJ>!CRheV01!p7z=ZsosX^0c1F){rj)x0mzfCJc3Cu0hjSP3KOH-g;vJp?DCT!s~8{ zN8NPV4Sli^9$zzSq&fgwfcD#YAfD#YDh}ATWCF`o0Q5aP+;u#>00EfE=;t!p?QJN2 z6LmylyOq<&leY z1ng#AK@I-coRK}VC;xbh{uW+L--rGB&5@<99Z?EZNDrvphGo?W5GY9*R%t^gsyG(1H$&ZKAmG0D>oWAA z1G};7+#;4~CrYqY$p41j_)KeGbUx1^eQ{yiSwchab0nUW>}!3T1o1kfT9IY$9s4cj z*x~EmXi7>F_?+6@rPDvW9B*j2MK(zY z`R(J|7Ft@!5a_X{3^b&PvCfz+rf0_uthI04%`ngl-6TvI1~KsU@>Ik$Ita%9}Z><<4@t?G)0MS_fAU6rn6g8ScS@Z5q=aeU1n;YF#Ox` zwLWHI|EocLyQYoASv_wCRTf}}6hh=>!6n!Sp5IAB0zd+|PpXO6vg}Up59hiMMV!LK zZEx=zWCdG4vf)ppw+7~>A%yLtdojR6_#%FXeND@0bs1Q|WpiQr;U4%Chss=nX{9l6 zwa*)YG_&V``VMYx*o)&!59@@10Snh>)4btWcc5VxO_vzRal46D%R7U+}Jk4WyhxLxu#6*Uk zutM9aDqJJI+;biYTI`r^3_7qdIEDa|2KHRm*4Bdq13c1TC4-Kl;*-bVG!*7rHF)vc z`Ix~Qx|~F-<-ag}dycJLB4K_h-7r+3?K_vO-oPP-e*4vFZv*`l-#1dIELqEj(krsw zn41J=-2zt8KS_k`_k3=n}hSENJOW(*CyEzWxv8jVrXYx1SEX#1wKg-bEm^i+|jv7Q4Mero6)zBT= z`Xq=_M$J~N{gl}x6HzvG4s+(s+wuUUCoo&JL0WBIu1q*OtsahiMEaEmAC-zlv39|> zF}TNMQbTOsg+MBsIYEN4>_>c`R+y`QD49ZaH>`fbscV+O_7)Q}t*3=pI$kokkhI22 zDRw+ty}GqXnZ`_AbJAx2Wz7Qb{J3FZV)AJuZDTwP6AJ^z8fVAVFo1+lKfQRBgRkJ~ zS|?Zd>~s_iC267J6&4i;WPh5Is(Yog8MF60^U`LtMGfBvztQVYFc@HKEn3 z;o{m(cGwTEt+T;ZWM)FRKkYg+^B*!)cuQc*X*u!^`@J;rCSniLq(Il&^W%5cOeF7B zU$!aAy6R2??y5{^dzI%U4$m^(Vp@n zhHGKu0m$Z43WW#H*U~F%#+REsiul=Tnv;fi`NmPZ4D!l;@u|64+-i8U1J>v zbz&GfHv5r-&8miTGtzQt;b4Aqr5iygP&!u~oeq2KPO?}hsH+~Po zHjBMZZVt$kI#us3;RS==QPAWNpM?q3pbFvEJ9EkI$vK7 z(tp5COqbGe-q9J{T}X%%H}-uI=^kujjxsN}Tx5mxBUacdoUOBw`|k&QYm#Y_ZE@0T zqU+XjtyS|JDEl%u>OqQNVr|2-F_!U7H4dqs@H878yv*U#Z7*<&sh#erwMF8s_{J2j z{@hGZrG1w?&1<(v1P$?N0Jmi!c7lN5n!p&I@aBH2l5-W$;OP)+(SXf7Uv4-yIf|^> zPlFPye|<6v3pItBY=f`~uNz07q7+xOuFe60z5zkAyFAK0wixp;aGer_UJmk79QnwQ z56AfrbnhgEb{I*C{3H3BlZEV6{ zhFEcO&pjj|yac0KiMu{`IEB&Zq9!+$OGJ2?n==!$^PRPch9}$uCO04bqOTJu?p}a_ zpSkJIg^YM=kQZ&(=i9nnx0dx|4^GQ~PGTjh)5~E$cgY$d{Zg+)cRIFsuDF_vph5^Iu*vF8a@?JkCZv6 zE@l3VSY#FRJ~C~R7Bhp#f=P{R`H3=#8bm2iK^JaLOSmhy?ySy@sf?mU3wrAu4`$DI z1m|?p*RNjoIgJc}!Sg5slB+sIf!c%(@4&64(_p&*J9@py=Uqe7SxesBmkL$>!Ip$P z&7mB`PZeZ+PKSMK-zpCXjkJGX+Q&%ti1!xDcLZx;b>hR{U)7B{+eFX)e^JsPKZKQMI zXCgssK0&(1EE$Vs`4x4aEE(peNw@w^^aUmE1|avJzy!0Vx=5wOc~ICj=>0?)s^p}# zC*JiU#W0+2*{jM7zM|Y2chugqc@y)7HBt5{MXL;GMrG z*(IRFkX_Ky6h_tD+T=T}A~!7PZZItwjm>!HnxW{LO@E2vjj``&f>Jg3SHHjP- ziLx*myEon&Q^8hgzK*x%qGHH-N z1e-|o5yl3NE2GzHnWuK~%IY?X_*3Ct^5g>pnu;JWBeopwtEQoM&%Bd)@fP);9EsJ5 zv<6P8j4nW?KV2#!K=yf-F1F8!Y3D}V5pVw0X4X|Xaz<70v8nrB4JKWyvrNn#Ej<8lVtNP!W zawY5xzqqPAxCxNGPo^7E+roc~dz7wc)xQ@1gX^3JUH8cFjJAjRQ?LxB^_TZK+Un?K z#Nxc?=56h|J&T8ZnQ8(F2gY^#z< zJ{Uyunlg_(8VElATFCC?nT!jKp1aa}wRYU5?|zx&b-2sU#k5P8ys%L=LJ&gDM|J*% zTABW8W!(C$uF1?^LLS}16L+rY zEPcCaysE&JRoJTT9Ndkms6oyzoH8A`#8L|}S8gqBH(DZUgu14aIp4_+R?D$UZYIld z)cKU&zK~owm6#jXpDj%M=Rz28rBErJwcR1G$X|}1w)R@KHkQ#mkk-Z~mZ9l#8xjGVQ2@z75%CGmdgFM+ zw>b$PyJ%;rmT&8pU$?~}X6Aapd?nT-Yd%S19-rEq+Rd^+bA{wUkfmxU<`1Tve_i3e zeF=5`UaF0+EF`Qy?P;H^IboZrYm#{>+oF}Fne@|F!;M7CbowHgKtT2GK9_^&RDL8&% zpTadEG!1H#?exsG$=Ia%Gsm&qHCn~{a$r+3mu1PZY$t@1tr7hfg1oVc@(9WMN|#2m z+Kr;Djh@}7U6E)t)RMaV%UOb@SItX>YN)f3llt=%C>M=BT>+AR6w;}F3(2;H$gKW> z>kv$(uCpq@NE=y--}qO2z<91GO8IG{iZ(<}1ZCiDW$V};X^mybgZpSt#}XA|k;VGK zAh;rVm1*M>K5_43yP55$a`LxSv=B&pUy@<0b4kNNNbyT_H@AB={7=Zw4o3adDFu96qz^r>I&+?`Lq|z2#oX(|J*H~ z9y7XSqv=TQ+3OB0dQ|0mAv=;v<_C~(Mpe7IsR8X}U;;Vv-R$dV_ve~#;xzpH`s=+a z`noMLcHc|jc+$(g+Y_@Fy7ROIR^+ma=yy2ucN^%7^c5vO5Ze3Lj}~h2f}7-H!j! zQ}&?4EDS9s(4hj5<71D4^OpF{n6aaR{;8+ zC_Mejc;KtKv0ZM^8vNV}S$x@6-ABKL*nl5zd|LcK;6(Bu8W)&K8sicuDWjB}pG)$Q z*a4dLIf9hwECf51-QpmR6g}E)s`Mo+T1IcfUi{+HafH?@CmRix-Mz&{2D+_;i=j2! ziLvz)l;zqWCeP<@;JPkA2X#X~^$5OBX5C{fw)_97$y#*mC3M(;AqMYdi>#0fV*e9}nyKvTE~jmW3RFj}>^>GG z{_}Yjs;DW;np8Y_FeXn|16odF2SuZy{|y*LM3fSWnbq}#*nT~yhQEba6?TpJrW<5X zc~!5a|HKNtNYy=^I3B6;^m-FVU1#x?-v_u$7-R>t1LR+;ZWqvffaDj9XtnEYQhJO& z0#9{#l(J-XQ{Ep6j(T55I8}bKy;bMH3SZRU^M_t-U(236722+7>Asy@C_4E*srEWe z&NGi}qRC=5OD3;4r!UBO-`>tXv3Kn?mn>TUmL;0d%5AacK${{KE06l(nkhhYzu2^ zZ{RHSxD{(e6#z6@vCAk3rX_-5!>|nf{cF?FvVqP0?sPx$cZuK3ENPumBSlH=6u7)42@wdAma-8N1}~ zh60S%GgDvs?JS#mKh>?pC7k_VGLoxa38bcU)3x71#CpPhQ`*KD&z}!0Y$Y^=to0@C zsDfpcFkJZbDr|Tee4Zy@HAZ>cpZW5Q$8~UEq6SY;9kL1p+&gKWM+Ra zXJ9*L(L|A4X?xlIh(Q)$SxG`NHy)=NKv=3gzV?5StSc)kYqpA;ny$cdq@yOrH1cyE z3`odmsARLm-_VEuCVwc-te+2^MSi`sa){`u8xbqU z)*lX7CByw93+b}LfpUJ^>Mz3K-HM(8TkLF-air0bR){U0a&tY?p7Oq03;Pk9bYh<% zC*tc7;_5Q=Y>kVDuP3#xwRn?fSY+b+L4VAV{2x7$Cg_Rc3^9-r-jf5lyd&5*>Yk|M z)K8)BM-zh#maT3A)=_K(3l1{a1^lqV=s)M|4y`2ud$GzXwxe-ldRrvXk>O%_GBlsC zHVN}P>b zMH;sBGkTG$T2lpa?-+i-CrSHWn^r0Bi_#HE_W{#w6pt#})$_(r0`l!FhWVG!dJk`j zkht)eynnU-`&O~erjJb@N`b!S_0`G;`mGZBRfo&3RSHBg5~$A$C+9Q+^cor(2F;5V z_^!8e!6pZBSM4^hy6JgotHl3{xJ{^8Zs)bi6+Q66B~AK&Vn>^|&>N*u{f5qOm+mpk zxnb@inWY}J=yKcYR8U=wlqUwGhSi@0S2@u6PhP>cWyYZQHq=FAq_p&6q!GSc*hvyo zx{eNBUu}GE01?V%(ky#fBWL>i4dUgPnJs

Sgi?X^192L`z!V`o*MHb*b1$!himF z{(_*P)znm>oz^tYR&x12Y`s-fU0t)T8v%j`cY?bUTtaXr?(WXSA!s1DySux)yUWB~ z0|a*`ID35G|F5;rIqh80+Pq=((fg=g_105W5spF})sB~1pqZ0m>6r$9iJ9yBj>IB? zg8yIfAaRtm<>i&?^^5z1Cp}5jZ#AZL0}anM@LqqXY!r4sj2Iw$|mA41!`oXv!D%;mRBDJpBF9%rkN$R_SuJQ(LlEt z8wv*KWVJFx{?FDJEvUVy zLqSN019I|adGzfN{QJJLnywCfDWK(9I!)nxQ<<6E;LNwpAr?>-d7u63JrjDUJf(1? zyQd4gC_TaY^0hyF!7P)MzswYQzgV_4`chE2L6ACPJ?rbt!v;Oocq@b$BsF z%N}AZc;8>&v4R7R;ALikh6TV}^r)(qy;Nm5_l_TjGw%s^O2~bQi|7K?i?!!bjkzJl z768`Wn&{>E5$Gq$Nm3Y|bKaSm%uN!$y@goVly*k!%q9jcD67pqVsP`5zfU6(z5<06 zM01@~l?Z?6zj`VpKspT*j}sN}Y-J49h=pjF^Dks=W|RYPoYvOXM^2ueFTg|)1}vag z#0ZcYOk~pg2J}e+hJy$I5?@3_gus2zXP6&5|8MHsp>de>-q)u{H!n+TXlMt8!hMD7 z`3aJ~(Hc!YGDdf1r*AYGroGjyQg)IeWzjssYQoksq_lw-tU!L2Uvphbmo5tlwq?NS z7ZUu3q@EZQ`oB;&&i_E&?LhrXhwi!XXa2c`1rCE=f1n0ADKXLXg%Q}Wf54$WZ7doL zB)%8Z%|p)oV!k#6ev@#MTgiFouj@8|_V+PCG>?2VUK!csQVd#?oW-82rVh@O(Hcb>}=X_Zr zsdF${+ItK0FsWQb1a3LLT*AkC$fNcFsUH9Vg#Az?L5i-CPC3rtILa+3vYLmV1(b2R zXd=LD?VxZX)qV%dyn8o8M$tTVZ422e(UG0br=B3|bdl*f-JnchOB^##>H7=5VI?9w zkm&erm#tH!xI=!EMjlKX)Vco>j9p;vd#-JD$Kv(yOwFpSg1kO3FIzyGr;Vud@{eS0 z@lTo@(f0c0=u^!`*YFS5-6+ePzV;*4Qx`_3PtRQJ^xw7eu0uff_*_Eop77x~)((mR`9QcI;SX0u|cCaKh>leJQHz|SWqaR3w&Q0gy0JBettFoP_* z=5&C~YQH_Rva?%L4G}Gp2-ZE0wPks@T0wBCHuGT2mPIyFv^6cWMLJ9av1Gk(^|8v~-|^Ol=Dtf{ zyQOpJnhxFF`|Eav{r~p~_}+0P3GUH6_K0n~@lO(#CXL5|Y+H}Twh0%}THi~h-mzGy$U8zHcLU$^xiRn?&s5aQ_Xm@sjV{zmxZ!0H1?;rYoG?)2sf9zb*!JoB=8n7DM*HZ%OF=wS+deh;- z^|gd}quK3r53(`q&UMcv9p$bH_l*UI&4s8D+?NLiO+g?C>7WXw$DrjbruGY!tlLh^ z`#skNg=6#5d8cKTl)X4?x6W3VPk|!k>{sHrBrumyb=01*b@fTpZ(mJ)CX4nzG8K*( z@S3KRI)k#LPWXMX>@x;`>^nW4>+Q?*N5>qsc#2bZLe_JXXaKq7ro(e1Ecd4BtUFeJEK^*$r6p%Q{NMT=|hP=f!R82*> zmO$MP#%$uLAdTxm8xkaR|`kWz21GEW;wR%MOD1yHI4s;!k4tmnk#nN)x! zg9l{gEK#AS(IfZiL@9e3pm7;wcJi0MEBa~wOOazqfb9mo^I`s}x-cm=i4lm?0-6@M z%d9c{UXX|p~eNS zY7V1G@73O0kHGZ(f^lQHnMR%0ZVHE4KN=SQxIMmP{&7GmR#UKF_!lI(j%Btypoqd!2&Jty88E*DlpYbG7lKy--PUCH)!u zulB`RYC75rQFZnT`PrRAD~3mBg%NSK52DenP(Dc*J9(*@PDG@Lv3T7Fp3%^;c!)I7 zbHx7?3)QYtG@49q=~YgjfAh8qES8_*)D>KJZn5rN8Z$}JHC^7k9DaoxB7`vkqCf*h zIYP;b$JKpYQhJv;!U{{<{rIg*Xv+GY?`7XauHVszkB|7ttm)M@W_5Jr z;_|!rDu4@5BfHJkqndHm$Zf)o!~g`q?(9fNnD4yH-y=9xMsE&8h_Bsd7Apvk6PZ9b zO9kUdeAhjxFNP7uy1HW9v@neOeBIckn4*@guS)&B4R*eNHkVgYL6++33d*I|+va)Q z$wcqxY-B&<*>jw_bc?U-FNIumn5teGr<=zH=yWS1@{!1$djkS_P4zd4;R%#ed9x?B*`{YTcvDA>j0gP zG|aV2@Ba7b?f^9Y6gCzqB`npWfL(YLjJ5}qF|IUWl&y0;P0gN+L0_V>c(mP?TWXta zG;P?6`K5@McZu^4sGA|6EP*7!#8;zsGk!5j0UnboI2lJl(q6GQKw@ej@TtO~P5|rf z=T*W`#a+(h-k_nTXiUosN(r--P0XKSUP*n|0^u_KK9CAA^k6p!V2haDiHv>nVYq=h zmYV_XgspY{3I)|}`;%vQOSc+;12ZN>Z;0>_f5ZCuBv5k3f7*nFtGbR>e=t!_j~sO1 zY*|=}bbfve%L)fAI9AR`$H?ZyZ%R)>?%K0Nrp#9v%rUeYfWCEP8oPkUu%I+lzMJ2` zMX(fJv#)A7avB5+6!84_0fgbn*$+Zz^IJT1MSoJ;$p2;a!X;_yv0|Jow1ptr?SHca=a~-z9X{V%5iQ%3ua+ZFa zJcAbMd=o6gn$5kJQOG}+O7yz}NpDd3>T)a|IeW{JYmYjW zxx*SCy9?A8FB-s&#mQom!=7M$J8_<$vp;aEpi?{#DdaFx{{>OV5|n|)sqC#JOxo~l z?j#54Ej}T;h|IBZxAm?Zm$$YPceb?!fFief*S;hg3MmNc%7V9$>nyNP*+g|Y^SIP< zJ)5i6v1PKc1p`;@vOOQt9n2;E&2@-T0@SE8GV8`H1|Zb#;i{NTKMZmAU>a7mYMZ`n zY3aOD=^}SLe;K?qSLit4gG{QHnuedR5o4V5(Ca-;=0pm`S%pXb@K1pf=(vfO&F7K3 zIpz?Y_>MC0dwJerb&b_CYQMCS8InHi=Y0TsoAL?JknGg*^kQIT(3H33kX(-vNbB&1 zc!Nw0JMfydeU37Lqyk?IR4dQA?<|mU0+I`4{_h+mV>7?gPtOX0Vll$)J$Hw{`4L=; z39M}Ze0^*;c9gv|J)V`R#PsRkZx5QTr$5o?wBFx7TkOr#&DT*nt(Nx|u4``tv>}~09Nj*q zA`qf57a#s&h*2qOZ(eyYslaXlELk9K!5+P_#SKdqfu#_moo0!Jm2Q>>%RGjKyb_H# zqa+$t@R?ovaCuJ~Wi^nc0}@-|h@;jkkyDq_DDWSc&QN*hzl3{LS26UHk3rQ%&m^qg z_U-Qo@a~Ac!bt@>T9?~Ljm*w2%M$jsdAtgAqW#=D#i8SUH(x%I_@q|4FMH}_6c?z= zQ?PmLP6UB-4imh}sE6gRQv%1s(>puVn3;FA12R14Xkx7i;JwOEts9A|+l&|PX}Vx= z=ZNXmCz6IC+yWJ_((Va^*f`TfS3S!bDU?KYWj&M8SM@_gXO@dJn4Zu}Ioo=Qr_YP8 z&bH)daQ~!;DhL@wO>b*0M2Crc&5-`_)w+WXOQsD zqb|%!ju~Cwybr9ipvhXCwYJtGJ`1D7po;%I_~4AQ3iMKYZp7{?#e za3-;69od>^F-T1;)#RZ2@YqrDWY~je8&7Qbo|2_x*q;_Ti~XNdh@?l%>xShdvQc(j zT7E4nEw_3aG38Q9h3QQXI$*-v7nbfV&I$CRM@=+R@8rj5I#%H+=q=5=m7GBj?da^_ zo@Z|;>v7p0i)CY!ya)mcG(PjU$%c-ui`>N500rsXRh_})AR17hBtROJU$YLs#ILd) z7`M(#2**Lp66yo~fI~$rd85|q9%-Rt%;cTv#H-R?6a+CqLNhcYfM=VS1e`HHuy*FR z`8~%OO<%+&8#6~P#vm^hZl@%{rMSCovvp9nw=3{c-O{9$>-5&7T364PH}LMpvXL$FekG?kPi>cc}~7eIL~`Ght9 zoN@mlRFBw)m{G&oF(D-IyPs(v;W<*lyFwVNI%FyXExuAR|qhJ_GIYf6U(XxGSB;TOXS{i&(6{2Bw@Qs8xJ=@MXsm0C52I=q2F zYmcTj#x$R)R)~1dcQA9|`~9k>rzue<;upzi{$rA+7TKq{bh2ga-F(-t<3`$057u>w zjdXu1(Lqa3q^OscH6lKt(L0gcjCdEV+A}TBBzVsq(0(U7(Si8JJ|{cepKAZnWWEaQ z1!&F&ek3I9N!Be;=W1b{%#Wz{kn*lEH*eETXrbrHqd?iW;wexRbY2yWXIArPFQ!Hk zHKvyG%t(rfhlA!R?V+aX;!wqaa7U0w^+!_?eyRA%OHc$QAGT$FQDqyj&`uJ#v#<2S zso<~^GnL|cDrWj}I%d+<5>DjL&s5)#W-boBC((|-9jOxWyQB4dIUG9d4boM)Lp*Fa z_%-U*L?@QE7lX_ohnWyM2t5xbfARvF^h3r(Kvy|+wUKl4C;NG4Gn*#$gBcA)?-~= zY_;MsqkpFASkNe#ks}mD6QL2lNl~K8Sbr^90rGB*$% z!MS8s0Lg4nW9*-$JUYGgQS)O0FHDJ=vahfd8Svd@&VHx|s_` zTrryia>y+|3CK&al2Qierm9La@^sQ}6zg(STnKD5PfatHI2TUHgb(^Mwf|c?#Yw$bP}&bP z6gtxivv=sG2|HSgk^Q8hqu=a0b=cl!KZb9D<|{TqiFpW1!ozu9d>QCgcE%F1X!=s}k z2O-*lcw$hdgm1TfT&khE4`#n{q?{XG+XMr|I<@M^GjsToJe?9L0;=3zl(w#c?!aZq z%_K3C48E?rI0vxvh+AOH0_vti;yl1P(a-UY>3dDorxweplF^L^NZ(3_gU8Xch?8MJ zej$#dR<7Yl^Q>2DYT{1TG+B_3M3<%Rz0zrwFb)e`8|&Q5rt7E0gmQpU5c|#%3<{ox z>T-tEkk;*ug02WC3sg^g8mq}c03LwXfl8IYHOP$Y2Ug5E96yy2qn9<0FClRN&ZEj> z+{ZS&cEl??Xi9eXRk_b?p$vFoiQkSQ3um-Z;VSj}#5OXHF+082&ZMr#1v(h)ww}9) z4kS*_zfVF+=Onq&D_jI5n4DA)`5oqOR`@$UCJC<=czUY`8g*)H1WHQK}N!4R`fm za!G!hEowOJ;S&9Wg`}geN@RovIK0XJ-qMqm0JK+Ar=U_WgcaUMLe*5)GkHZ?K^#{X zBk^kf2a=~-rWzwo)&6U&T!oY>M=h2D@9aYw|7|_b^863JW6mqZ173WMVlFBa0=28< zJ%#gM*>@xSa-pO}Zu1q7_=%hGe;Oj3K56>G3DzIQ1JFJd7Vf9VX0UeW`}y2i!M#J3 zFC6K8$3iIgfcNtgEK;EBAi5+UzBmKlkl1)c9;47Q4+V+Y zfz-j>D)ZaU-^|Mem2LQQ8^rutdw`j28eEniQV(TV z>&4R(6M3sjX!gM9w}9d#{7kdQOYd}Kk3hYUI5lfo zQH1^6&lEAa`W|ddC}T!+|KKF``Sr+3C0d(ImDV?E8)hxK6Zf0F9D}LW$RFurgCUjM z3NHDp`JDfT|K4>8fJ&#pKzPke$pkTtqkT$q^11MBN*=c05KJh1OSOsBn9 zLWDsagkIbBwUmBkv?riyjAN3u|D%iE)ZEWt&%|O+fE~`#_&$wN`V-u3qo&2rw8xBP zpIc2KOam#qUl#`{!0evAiMF~_HJ1r~Y(9BWso`=}4fW7`>L!gelbIvv-IoslBc~1T^TgPl zB)Z%JauM^==R(N^me-9j$Ye91+bP+y*Np@09$Gj$ASQ}1B%l4;AlYXF)_%mWzF6?M z(&ox@heq1#$eTa#*!#Z9Jf-bcA_W!}VlTT1?ueEg3wkidiPgxDn4E^+^s99!Z#57fwF&*tT8;a;1?NNT;Rjo+=R4OU1Qp`p(*tu6w+l-f z7nl(`%{+Wef`88u7^_*^{(-U&p0(4oP;J|hqcQzF=`HN$3unh&7xpzA&(yHf+R?FW zJ^OOVRg(M^1{1@k>N7p=t4?;!c((30n#H&x=N4mIs!1EI?J(%&trW0cyqa%+k7C3) zHyd;nIqa5;D(A)%p9;{XXBzDM`fLcngi!bWrOc7K2|8Uv% zZRsgYDQsxx&Ru!^x7e~$;2&*EE-6}A_LvFGNU0IZ2TtS3^tmb+V!m z+axjL6dV5WhlgKPN8VH@yHFtb0j^>g0p2)@p;D)`ug7@#g|7X%O8YDIvD7W>^rC1V zCWGGUIGoQNr$c${{K}{0e?8`o23!YX@ofKWr%g>)Hivw(;<~cp@k<4VRsY2Ev)=L- z=0@r`Ub*J2R&xm> z4rcI49>{*Lrg;Wuv%E_18~;m+b;`H7%&`vkO-jE!kVA0aJJtK(I;1}YZl1;7jyqe% zcGL(HF^iL%1aAEMb)K2#@v{)6WYFs8(f2DqR{XzUGHeAFnlfY!Pmg|X57uKwAxFi& z!Ba`z{rqUyu6Gp(8>Fx;9hvo)t?oB$ zoK|AG5ZFao<UgMtHp zRTf&}G`|02bP7>f(ZaN|+Bao04G$8IaGX-Tc_V(>sb!?NY->}dZ+Z-JAV=oq^2 zY0gkOzj+<=J?k0K5t|2R(HACy^1mm=2;Ns`zm6JunWn!-2Xu2^*|BoPL+=kCyVymx zf9bt4R3iO8H3Cb*%p;_3TcdH4svJ=9_%au{{X=dc zWG~4WE_M#jlv`o6 z@raG~+hk73^?-qs|El>+sqUIOk||>Q#F*g_O`nb=uT~#H4A#>OmccAlY#2F|pQ>oh z2T?RQ-N%i}!bb+{yxIzZl*FnZcm-gal1r~ul55X|&uh7@O z@i`g99JYulE)1D_0M}&%^bMpM+cysDotG~LK2n#9!E z57IYH4kbb{DPm&3CeLD+aF!}v!5FTI|4g;cM=>~LPILWf`Eo;Q*5y%mA;pGbOac^; zrz0Yp^l)EA6NLrj)x9?5)y&|7E}kz4*r`GhFLn4_g)qWc5oLP(MNw1`8|;)91^~ro z{(kaq5MHjhkX>@XEr{Ppr0^l!{;X&TXC^}7kb90{a89JYEv$c=|-nlo2Ks+274(kjjl*^U2}8-I#fHG*beNE64RPx8Dq zssf4}-3&vPMNs3f>benpNvn!WjS%&)?in_UE*y&dt5!Qt-*FclwK3}ZGh$T6LHNc# z!Z3y$sNdJHzQixEn#Jg-c0yW~&wx#XVp1eOWCb64#CX|SHrs)Jf$QT%%UFwX6Qe?6 zl~0(%LC79uHW9tL0kV1N9O<8h*Bz;LJ31O{gaev-(E~qmsAJ_NqKX=7RoJG-*_oO6 z1f+f?HF8wJXOc8>EYGVOFEKa7ltCJ2?$!8U&q%PJ=2tV9Z@Y=M($La;wV5!7{~CI7`^r_1@jRQnCR{b& z%`Ny9ATMP!2Xoa1(D>Mr3#l)3fvj0(>7+*3=CBgH^_S0!W^esrq-^2XaJF2iyZ(L* z2Hf$8#cN`CPYFp$L4gvS5+d<5P)ay2b6}$P(AwXJw(ywIWrO|`;p5tS2h3I8})Z|32#?Y!YRdEB{@_^HD1pkcev zgJmCM2&IWZECS?g!N539TYbE6ZXDo_{Hz2@v^aysuHVlsfle!3A*C1Kn`Ps9iVpY? z)$E}-AKQ-j3alVEg0`Vqjt9Kv3@$X?g)o zjt^z;NcW9*at_Yql}BM{xn-CL7pn9TXF>(LHA{pBBKn%VAKbSXL_aYZCCUcA0Rtmq zF_a*BjQf0qqMfP@r|77%Qq4S;#3lJ@P1WtcqAid@>_1KK1W}+EFlH?8I6OH|KhXvE zKoxNX-FWb)m3e3ehEtL!tg(}KwAZ)~GMoAIeUH(-tp4PyB8aiI{2AihffpVx0Q4KG zXZ@&|llQc2e0}m*Cimq7$0uhukMY+>F}FcIuHM=ZZlErv{_EX-5h=dQu*y8`Ep(Vb z8duKXCSHkQHz2UVN7@hfL3hs{ux~CG+jB4Y6Ys94j25s%R}Y<8Zs17Gb)r#%U+Gu!u(A%TeR(#=rB5ODwtY z@17o1|Mq?&I>ym+Q{RE|UnfqYYMSuZ>`tROohE6ialdw>O4{o?4ht1jRq5O2 ze(oN8S-@sc7}auov5KhcWv;W(t_&bAL2I%w^Nh~!{)#Komaj6)2AUwuRQPi??LlJ) zuXfc=w~ysnmj;jWI749RY%S9V{daJ|qhgL(uYJyawg9e3M!RhmWPwptB$dWtY$TdS z4zi;TB>Br8Bpb?g5?DE-nc6_>sLIMSn%(IvtAGv6wPg8b4U!Jge4o z4VE@t&+u>Y28?}oFSR;gI10mZ`OT>&QFZ1#Ayz>v@(E6;KeT}#{AfczBVoD`u#3cjcC>RvJ04FwU&&(#$bTv#-3bSa$q!Mnh3e zj{1w4n;4&vxP+ma+w-KH=z>+O8ujRp-$Ib_q=y^Y1V}>ZSK3u=*8VlT-772ixWqeG zWQ}69CO5N|w`d4U@oL8;4_-PYH{rqF5eF#t=a1OV(`5aH(N9(3%-RkUf@!*h!L?7R z!v5rNXzv4ZsWp(mae)!!BKO5Ncqr4-yS%34`5wP6FjAhGoEImzx%!@wMem$=F6}#TPd-Y^qvY;j;EI&OC)x|+)r^mf6+Jpe}mgY=-bz&{U=Qi1?S*dX50MZA@@iaL+wZK z$##H-HVa)O7Q_PHU3nmMU zS;=Kkxh1WTicMy)w5C|Fhl?}@)_+X35|^O1%0jlk+PNjX0=b)}#X{6ftWc0op@d-k zO=hCPdHb<$7k9ceVWpl&?TeZkco4(yYw#RL`SLN`-~$kBFKI*IUYC8E2r{f2k8tvE zYRbX`I&Qva-{BgqA3KXcXO6lIpW${P|L4tS&JctbeU<~<4}v^&=-jpUauQ{^L1w8d z09Kc){2T2~bSVz$!_!h1L0MNeR14@4diJzQw*Z$@s08K=>?vB7w1`Hov5sc~ZLipQ zEAo0m@2+BBs302SE*LuV2=~zV`wK~5d4@{*7LVyUC+fc!`w)X_M=I%vGV9oc*gPSH zjL*H67P!T@H^;i+HLP%_KwPJ*E3f94-1vpp8>iPP$+gHN!T#gvs5*!RB3}Z-es44l zm6cj(>mqys)g<3NQ?qQs{w+$Jde|vqqVdm5_&@t~6!cwsrcxv}e?pAe$vL{xyFwi;g|_6BAflOcz+NU&r|aXP#0JmtZ1VVdtV@8eL! zm&+o{j+ROlB<<}-+E{Yn11t(3_9kSn=d+69I=QPyglj|aZ7%CMkAe@7%~&lzl`i<^ zQ7is7{r1iUK?V)|ik?A}gRGC7;_%Lf8`b!*FX@0QuAr_$oDA|#p^)nK=g+<$bW)2h zu%iyWqchf0k(>y(u4p97^V2gkXi-C}Aaq!$?-`k0iwDk0%Fu$b=wfMX(%`k9W>3!a zwrVpr4ZY~4ws)-Ys`?{HyqELKnD!7N;jo*brv)X$hg=Aa!w8s^+fwV^lI9KlYF(-OY`AV`{oju}@+c zD(Q8}gq$-v$u(8ABq-!JR~W4#qE1T#{W_)$1hdvC_<07t(O;bt)!Dy9nO(oO7IM{x zuIUJdLmJd^&Vp%gx8nF8qh8I=5+gAmk8K1sWT7;8R^8cZZ%%0+by70t&QFnME9iAL zNT?xjK(}KIo*Mc&Cy;MX_JHBY@Gx`Q_~{KP2yOJ|t!3r0PCWd3p{GM#CP)|zlINp( z(`xRq;YQ@{spLwwk#rW*_1FZY-rbXydEi%;(cL$&GY=cLS#YRgx z8LfOi9CC9qdU5Dn(ti43N2j%dka>|3V+W~>RuUZexcUhzPGH9YIRCPCw zSpAWU49LVqBp%#p7I*)lgNEU!)m)6Y)VL^>vw4?iU_$PM51^_MlMYRH9}tN4C|u~H(lHEi9|Yy6OCUY=snv) zf2sX{4@K@gSdJbc0XZRG$G|}rtyGQ3t*H$*w%#-=33F#m3{_RTu4#AXFhJ*gwWeJM z^jIob28O2q8|8wECTh$X+#6~wJX`)Ak8-p)Tb55?x8=9B7_E|)GmY-4I~}?q3E5ZD zpcuKbIJNTV-MrYQIdj73m{xqn<;9eQ6>s-Pyv{j1I)NF#pr6S%8BC?VY-zgs_N<&B z@!d^WP;fo~@(?#@mfXPM`_71sXY~VT@oafT@Wsf3*bXQhfgn(2H4X1&+Lc)uHzZ+C zGwiF3Q>Uv&1ry4?g&$vrl;VD+vZNkze{+;G`}~t3a-RDykg2STg}~GE^k0J{M%o+5 z`b+@*3-l-}it(Y<@$@k3_xMB5%kSUJ>!UNbgub=u$+bUL5fQ1*KN*%sZ}#I*iD~>U zHqj(2CkMT7A>pd~Krz+(i`x2+b69E@3ZpKy;dTC`*hi`x?-2o7c|e|b-=7!KF58yi z9*x;ABfT!Ym*YY);@4Lsr_mapC_v0}EboMUI$L;zg#@7sO`#Xk%oM79cEnBa>*qEw z^CXVn4AX&WcB*A)4S{Y1;`QX5X)*Ve)=9KC*C0?QpY;S})p@0z=}Jm$e9B&qX*UyP2muiih~8f~+DJ`zpo~E>VmgeCgl#t35wd+% z4%KrjQX}Wgxk$Ak)EKz@_G{H{eni*;-Yh^E@C_c(>*Zg(1;+sad_(zxOK^^L?hngZ z-ld#ACEycfpfqx)i`M%_&k*?XS__eL;n;DA5*T2{|=6;xDs!% z^HoFh@RM3qAhJt~NHJY+#M2X%>bIU=cre`J;w4Rihd-HE0B5adHy)*YDC0oQsT)fL z1>70n27Zy%DZi%*kPz~wbNZ5&6AavZu$t8Q=id9p)?x6z!w96G7>g*@_JyrW!B1D- zNzvpTD0g-d5X!wnWi}jNbLwe={2ROkT~T(ZKN=$^$y7*A9@Tjukh=UIj#b1XvM=c2 z>w|v3{TNWobWLU2uNA%#t5IA9n+oux;Y_|^rlNnMQ?b0P+lKUvsD6Z9@jmonP_}dF-@G;>? z`?3?s551|B&!gI;S5Q+1Cyd9KEmHl0#L&!@<3)>l+b{snLlA*|^Fn-CUmH0f7xcic zA;nA*YPg~MIcff038M1bT+6@VP=(zZm3G2S7z%f53{QP00e&E*P$~k?4&RjFqp8vQ zYobsP$xxx?-bxBtUx>kGr^)fA%Ncy?t~7;T2u z=BTR=3bmoFQE^CxfTPC*k?LtFIKsgfC-hn=Xz9qKhKq^=#!v(6^v#(=hUn=2yeT4w zOYID<=|Gvn<~o@Et1v3jiTPEaMk02PkB|7QQoO7vHW#8<;g`6m(vK_B`1W^O zTpKvSW|oHoCVFxn7Zldtk&QlcpIYuQz>Z~^uph>DDA^+k``r4xfr^GP4?yPZCkW!z zM=JW^@#@ssKvZFpuM|CO{8y2n9cW(MmD7uG2eDv=C*>NrxaTWlhhW^)6!ukZ)mE&i z+REw0_8ykIv;WTe*XR_#myBRi+z)dY!6;N@WrX*THY2<0-t}GwRh(JFH`d9=!CN`| zwT|L1T#oglI`q#nC!z8|F?j>sj%;TwV_#S1#rWTfIk?FT|Z{ap&RQZ{8^Q>2ANkN&a; z_`-dW<>VNOHCt?=)H0bb>t^=s?4anG22#L%#Xd@tOe6GmIIZ&RefdaF$P8LPjwp=Q zI66kRLE%im;3N$?1q`XRJ%Xmn-&w=V7GkD&9lx>K@qyR~NF@4wwB@>dy@Sz>~4RB5@N`!{xiI=5PZ@n^^#>1ydV zbPfy3WXFIc`5t2!K>^v#^{k`^y6LEnmB91~Lx4d%X4*SR{vlfW>J*A;e- zt~FO4h{e-@$zGV;M(e84g%}bHh)Lop?GKCKoSzSANZ|M9UW*5J%#VBJQwH+CEzm|l zeonM_uVIRuy|P5$zfFxI+xqY$ae+MDt~A%^3K%6aVGQ_ttVolwaYQ%gYtsKUyi2vF zRiB>G>B+e+XZbS+3UEgz$hYK&(5`j*qk1#zp^_PL`T?uWvbeyHq6)7lda$P@ebCHN5eVN$>2b|RD%Oeb-%zAem-HN+C%p6z?@6jf84bxAwo58 zB+^(NdfLw3V?-`Ond0R+_vSlnN71sl~ z<&vZlw#hH8rB0@2Ig!+qMr~af zf1>z@0uC8t`+iUVd4a`-da~iLv(!9b;bf7yHy5(es0817RUnSDo7ws6;aXSx0X&gE<{pt9m5ZuD^f~v8m zV-rx> z$lsxc)8fwuo5SR;G(LsYm?T|L^gj-^Fs5RiH4~c0fzW^-<8HO}yGDdwiZV|7oJD~K z(ra>H7{t!xE`bJw&WwWvEnv zBZf;@6Tn!6A5BAZJMrhcI@j8&xY^kH-bE1Xv92J2@4bd_^C0{V?tUwrs%@EG>(k_a z`9z&s{fd}Mbv;V6XAgJy_O_gjU{dlKt^+lsuIAGq`2pxrkUB=fv~_^9Y&x-iK8r9* z;Jg}Z^+Wd4Wb#i_ACIkBcHJfc7H6IV!`Z_nFlvoO0Rmx@{FoCgUv%pVP@uok)p4^m`>Ta8A@I$7jn`}JIQ{K~@A?`=(25L+%>opg1fuBTX5Il?(QBS zNN@@6?(R;|;O_1ag1_SHzJ0sz?f?D##$b$d#wlvouC>-)R=egL1m3c&2|T})_26RH zZJXWWxy4c#+fdBe(AG?^U<>lY-DagcVvUWb60v@}Axsm)9xvtsaJa*QE&vbm9$GRz z$SRTD*nz59t;6zlSQbO>Xl^`rx-v^PlEck?(AY}lXMlzdT{Um2G#gHMO)zO!ka2wK z&xED#o|ZYGoY4hb`?EmpXi4{!RU@PpMrT47GteKj z@4InJ7Bnll4)R83MLrBoLk+Z{bKgY=a56~dt?oOtNQ9e!Ei{{a^{SVHi-St2^rj;jbSRZsUJmWbqKtqrU6xPeoo~PQ?BDm;Fn_5yejf2?C#LR^>KK*JH!22{ zyP@KVD4V+ogL$BstXimZY#^0!C#T=Zleb)!^b`0Yq2*4NQ-#?l}w z4zsRj@|&~uVBXa1LB~1A6Bn#$`E)Nkr{dakMR<$r`e|E45h;ji+tzK@!(XxiW5Rb< z`AxiYvezjL?w7cfk!z41(_06^TwZc~!;z5H0syU_5OHO3cjQ@qD;) zrQu+zHj4Q zXcW%EM{o|G;!lLuWnUG^Gd*2vSne<{B!WptX7I--n?`o7@J$oB|DHwNrqpks@$!js z_vN<~A5N`w`;NB}JUwb}bW9F(E>c$&t0s+2)W1G|ARkNBllZBKc5M@-Ll2h#{cgg* zQ)_stjaxRKB;jy)A(kML7Y>>L*o3~vMO(SEbhRFU2Q-Nz*V)9J55iY#|9cAaxf{5G+w7fkab<=Q~|;THd+Ayx{Ao>b~-_U-vgL<-!UNXNBdmS z52jq$i7XCLQZpyv*QAchRmxD#Z8BIG+$+D{yLeb-qmH?`?0<&Gwwm}q#)mwT)mb;` zV1J(g zG&RPaQZh0!yo7cXa>OVgE}mH+B`dnE#Zya#@7>f^jXkTh+}JM67jy8qjQf}@9;v&! zn-L|Em+I}S+lNYm)7smu4~m$HrkA5LOY?bg1$OGw7o)fNzIJvgwx&mqNI;)gLsK|s zO0Zs0uSy*yczk?Z1(ueBjm@QFAy+J_(RK|tLe$a831E0#qxxK!Z`bkid&REvVPAzo zMNdypTs(Bi+O`NwDqeBDOy5cOVn!@vg53pZdOP;3Y6~O0-WBwh5lyv>R`)T6eVy zv*hIKpD*{&MAa^b$p~sHCiT$Bm}$p~Cw1zIbo;G_Ao(QMGM{FML`YMd_FCu0J985p;{PEESFuvwuQY#VsHu8-OMmZ1H0tXT;vdhqGLCS*dxhteXHHD%3N?i^)+4}# zGywoPWw0@`Oc%AcEK|j>gebkP`x=g3hE9qB(;HDa?9{83>|-;zc&o;G1AoQi zQMPYuVd0m((eDy|twRYgf%tT+l6?S{*0+}-uT?9e_(%_2?QtD9Uw0GVDN95zUTos8 z@7EfAzsjIo9xa71=fnQbbOo+GbW=^(d%YT?0eFUX`yNQF`o_lBBLzQ8Yin9Mx)*>f z1P<=;Bi`=c`~5i1Tf45}Xpc|nJ!Tt8Buw$dzjh>+Z9A0RMpgdM_8=MgGrkW`DYKx> zl!3ofsFdWJxHp7Mk zb=Evh-X|BESk_>bbu_Tnxe23hgvl1y^oT(d%AAwyI&%wA>{+1;$9>y{2|MZM>>KvOWRqiyFMavv~8+lbm zKp|%Yh85Ce%xD*|#r~Qut{GEyx;qpjgep%ToVS&%CZ_+CaygP?X=2D;cfC4XuY}r0 zw}1EHzXTb$wTsOWUHiOPi!k+m9w?za{on_HWc23k3}f&lVU8%?xNXm|ulC`CR3X?P zECR}4vjt#)J@$_87xT5&gmQMhHvZ`kM}f5yF*Wvf#rLR?)1pd0>A>adQ}FOCM%sr$ z@Yjjw`4GTF6_YBPjQ*y)7c#(T-u_6!vR^L0c_VkxvNjG!9(>XAbI`m^j3~^ouGPQb z{hKHlf%|(3y5-vaELpvpp8bpeK1*=}p{$;#?=eb74vQ`hoBQzvVdozLzbym=zIvi-;);x=JmdizcBM}aI3=+5w*9}S7epw9{;7=rhVK%r zsY;q%fxYgoHHuc9j^cJXcqr)cJ?0KyL2DJ~u_(l&KN#qqR+{BP$MY#*=G~cLY5986 zn=+&Dg^RwIeD8S$tXWnrQI%cWJ(uecs0NuF)XC@#-9naxwk##m-{XHjep^0Njf?j3 z>$O{>b+&aD0{0_DRGn{)@Lu(YjSG+7t3^&(0ze=!A+!+WY~9mOl0*1zg zS&NeL3q;}~k5<4{89XBo@qKNeECtU@=4Dnm{1h(-;;u zPzJ~Eh^+-a{&wY_h0j4B{+bKWrTQ!NeBUwhw;wR!{+ckbrRuNQ4oARzp}2S@PSL>m z$1Imdm=HNe1D8gg2*%~to7yn{IwC|0AMhU>iKR-(YzH15{_oM=yF(B{Q2Gjp(*A$V zWkx$@63Zi=v}e+Qaj{YdeL#^if6meiqiX7oURUMN`t#7WE17Qj@2w9pueg6nA4lWPuj|DODrwLrp$!Y0 znwc%k&!@?f$CIwuq%oV00vto0F7>wm{aF3T8bg*zL!`OYH3%{G!(V!VN~X=UIjf@u zm-xp6+cRlE>LHT91p@rQBmm~GSOs`7B^6uSb5xFL*0q(%wtr41^w=nlBnE&JfEcOs zK6gq}9GHK^NDKAA+8?x|j%F_kVV193$bOvD+5-|-#T;v`p{ zCi$8+eA~qH0FMRe9C(UXSK*UjDoFK@0Iv)C?%3g%#4^yCL6mAkp}+!O*|-%I^y+pWC@ksG%a9meAT-ekUpf1x}T3wZ$y&a6kLxcjithL+dgr{#NZg@T}tIG2Ey+jFrdD(~D=Oz)K z|5<_WZd!uqj1z4z0`@u0=k?)0D0;=V?JQn~98y+`mfA3%dEdX5|qtpsi}o>*Y5xbuWtb17_ZfQIlyY}JBi6DiNj{u4ux7FL* z3s4pPAQzO888eRMYXk_LzDu)t{kCRY1yBVgGy!DIt5KRN>!n)Aq=U)qF6SfVKdMgN z`plifJcRxNX*~ix!n}l75TIzP`JDEf-2i`AGOcEyGO=zRFA{LDcFlGOLGVnY!4iWP zy~d0la`NW#DM@DAu|*NZU^0sj;Dnzd#}V*-4kPk)U)5)RO~Vc^*KRt0eY${V*jQZr z0}%fd-eY~rW=J#T?*Z;dNL#!_F^3iLysL4R$?~!?p8HiNznk=pAGAk2omYc+$-1sMz7gn} z%*@Q2ZZf{U{2FK9Y1A<>Fmh-WH2^-!A%Ry^Lh!aH@59@w!K7R=378d&S%?;QTF)4}IEPnyey_|OI?EqJ>Tq^UP=;7#qUU9(iHYvf_ zJCS`^W$Q68M5rm_>p#^cMbsu=zQhplV0KO(WV#WK)&h3}5N4eLRL2NmeV6{M=|A08 z9iT_S%9fUvMzg$Q z^bng{T`j*Q>sGi__$2;SP}2akbEcu8;WBv}9GTbtC))yk@@ollZ8y9S?bQUBBlmN86v#&>Ctk7)s?#KvF(*R zuc+hYKF5YPc;i#EI=EL36rx@gR%c~uYHG;`4O>e~<*blPj)277$CD}|9#`7YKsOn) z+S8>v=vUc%%1F`?plVQgkij)I#NMxLJ5S^DV)u^NjH?EgMWUD{5(L;Kr#FCDd?k|@ zzn7mNuT^U@5)6yB>BZ{z`ph!Pi)N~n1eCJYT^n|c*jawB9^P?b2%Ix@vE3J*rY>#jZv#tKLQ}bRJcY@4D2Bkj$+=yd+snowaLlMiBWB@pG%s$CK}s>nwHANF z*o`}o;Tj52z9^ya==K#Ob|~Ss2n29@K(+Xu;{2cm_Tc?4o;wDL+X7_tz&(Iy>K})I z|G4f80!}B{vTts0*U_vjFQ=uUsarXFcz6KBbW@P5$L(>wdo)`l@NzrL#>PgYUMc$S ziQi-QyF(5O>zADe{{~RuW;u>h9g)$fl>>Z+Sm7qZbx-GQRW&s=_4T&^%OO9##7ypg z&4?2Izfy%Al&}9kar(cq3ZRMfms9>nn(>bx%ya%qx!$*(!!Uo7P@bjfa>)G&&8_8L1qW{Fu;>u?f3Q?@JY+qcxQVc$}p$2 z6s{7GUir!6f{xQqAjEb)U(2*_yl>$SB&L9{>w0ONHqT(QQWGGYwQWk5Ez~>9ojuZ_ zUzpBLGhOm+2?it|Ek1kmsQ5r3@Gt^!EONBxq2xC)0@+mt=XfShQ++);=Ig_x-wf+Z zUG~c%d^!iO6DHNyT63P21E8q6pUW#M_#So> za?)1L&fRl$+gx8B7rI`zqZmk~a0PsMPc>9jNF%qi-<}WN3&Dbd0w9!Sd7X2e)z6~e z+u!`;2qL?F@ZJP@N4H+F>*}bkMq#JZZbb0KL`PRqRc+uI07xy9UZG0sg8E`aLJ>Uf z=F|ZuzAoFfR*bYO0Gc)kNwIQV*sg9Vyzldr2p2#kl>>{|{CHe;f3fif+z2N=(xMMQ zoU3?!RFvHdy44HRr5Q7#N27tdrDbKacqQXIdiwgvSbwgDh(4o3=JEjm$fI+*z7KoV zJM|W`-93PPyDk)4%iZ<$XpWAK&R6P|dB*^2XU?(#Sa7tb&5nDc0?%8>(rkZN-y0AB zRV*GZY#AE4tbexC{|vl_HU@r$$D;o_U}OM&#q-`VMuFgB zW&j+ts=Dso-GV;gaUXz1LB%Wjj=SsXvMGfO6m2&^js14-_Xa(=26U^0m(ZidiQG2> zlJ$LYj^Dwln^qmix?b<9T-$<-QvmP5yT4GbY0RG9^>|E^b&!K!-WP<-{|B&4f~=Fb zKSKhWBZ#p#+uKH*3jn0`~*GvGKs+ItZ&Ks+xEVCiRQotOM`7=A+1uL-u;4k!aQc0=0v*kp>*fAuE9|26r1IUmtL={pk|#2_ zZh#oy{`UH0*Ks#LM&E`IvoYZ#oDM1E5BbOAyyYP9vl2RZ6+4hX0G&A|1aN-j%0s{o zAWy)xd%pE72|Vng4OrhDJ3(keW$%O{;&odKtzgn>eAC+kx(un@F2~1nWj%B~Et{V} z^dYm^nx!twtJ&tuD==RpyA!cjkU`>opdAy%)}OvrJp zK`6X@6bT(q=ePh&1;Qy|8Des|D9aO$uoaC${vF)62h@4>1u%^!4O)O)6;}n1-}?`S zx(;YjkmIGE0Y82FrLYDNc)dQq@BuDt(?y>D!Q|5E@+LQmKCt)eSA;(n4O(@zwTXMq z&r-E@b)U&H33Ncy;A~5PbpWvU1~&p=?oI|{r>;EKV0lnQ{=G3+fM<^fj2?5@b%?+% zSU3mhXl1yqd)SNF=kj^|X64{$DnmXSmv#hQ0%kkShp?E#jFD`kprOose%DO zoCJ`d9+33zJ<5(CKC{!s8i2<5BFDyHU+^G?D3~OzZ_EF8_jjnE9zkLtz|7?4l9&$y z5cA#Dh07q^Zl?!8rRfD&SHvfp0syXMN&`|=0~F9CyATZne%#ILTJJUIEixyGIc zuZ&gp%dUw!(r8E*@DpBrh#c*JC)yc|{w)1tIbSMax#L{+u8eB%He3tg)^`eGhgewRJaTMyjce=b8qL;0P*0bKT2XM_)5>bQ7#cziCOAMZ|Nq@|U$8Jaf( z&9Xe8vd)2s!OlC4k^CbVfLW?gi^XNLygy&#<8psg?JKYW1iL#NH!2ivva0N7p{=Lq zJHd7EywB04+3D?3ih{5m01gcVmul9SKkL;5n-;iuc%RGG3MmdLm4?dF84Y{Snl_NO z6O)oUuSaR54aLO7cnQ_PCV>J7sF#Q1N-8Qk9`@7k&sOe%W*$?IGKrea|HnHwq zYQW-L1}cPirw{ZWznGd*jZnkG!@s8%g@uK#9dd9{m~_(jvcU4&0+zEM&_LfpU(j_U zz&`^V6lpy8i)6ev0Q9e|rPaH2sRV}?H2}oBuU9)mZ?{DPHrxn_`hZ;Ji*Cy6Ccv~c zH8mdqm5KBL*|$@;f^uJPDgzWZB)_bw+UQ1gcDO`3#tS!K3M; z(@i+QA0cNLtu)#gpaT@Fe3z_>FkvqMJ1dOuNhD3Bzm+$jj2LkZdup$QeCQUL`22;F zg$ixAlZqyK{Z3wVxE?8>nzLh1Z{s6&?|+X3??GwjiqoCnd$w4PW1r1fX@> zx)Z|#R6mgWAC`XuIRj8bwyxP$w*cirg)-W>^N><1OdwEyuf)~E1S06o+z=8#XZXE7 zjHZ{+A5(hdbo2Iv>>y6XW%9TM7OZsn`6;Z^k-)?wbqZIWkh~uA~n!22k zVaV|l{>JamaE$_iQ;v>~{vHL2`=+P5ZdgAJ!$Q8F^WNMzV*5ja415BAe{bjfuQc(W zv%v_@=q#SuCVXpW(^Dt$nKR~q86 zQ`5mWpq#LqlJQSTU6CGMzBNcCmU6VPh6T{czKRpLLweUf*!502d8x!L#v|}KrA8R1IJ5IeI+O(BNAS{X#KCZA zrZz9#Es$+@plC{0AGOM7p4*d4s@>W6!7>Tgx_PRVov+xTlIkzn33hyN;I#ahfA=ri zOjuU0mkzX~&Y_gwves#$6Eh#lIp&TAs^AY<(ap6&tn_H?-Lm!|DWe;#m-&!L+nz3| zaLZj%ewB|_ptMzR${;13l)CMW3?RWt5b1}mePFXvFw}kYC@)mi1s+q$ZT8Yt_f7Yh7r# zmC$eX+sb{C80h!2z18xneWX?rGQA1(id`MP0MH&Te`F3QBpwd6Yew=T`!ABYb~g&I zFEsk-6`v0{pj=P_V+&9AkSwR=W|8_b_QeYgk3N)6!#3U!mafS|$4WyP^f~!Q6c-hQ z@|@>bpbJy3P|-mT8RM&Wb;11}+dy21m6BAhpA8BMUBayD2>9isdbPYFqB+`;nbr_7ryEvh|U5FF*Otg+x)lhIN=Aqog7t)dc70fi2@QE!=P=9qyK@v-6kg;5?!UN*ttD+`4j{%M)0DL*Rp22wj|MG9)Pv z#<$=`-m*a4QpM%y>y*mKi3>eSTyVkF9IuiBy)~I~*9*O4r;Bs4`8^-4ej_XqJvZ^R zlf<*d*>5&3v51$^o~e)XImr<{QE=4n*quqgiR$FhZ+p_n0#@b6%2X98S%0=6LaB$H-TW zrjG|~O7n)yV{bj&gEfm*9+pi-oZD9)LSo{U;taN4Yar^f;#A5=CRRw{D~|M-XP}pc zo4=;BMm@<}o2U-vX@U`#>917OP)AC8vPSA<;F{FkaXXf7=cvXXsMLM<@+3{jb-FFB zmelmaRLZZT*e*euu*6OiyjGvg>Z5k}bXk1E z+i~}V!EoQuW@fF6Qi=i_;we2*bL@XM@|dxd(T5ZtQ~#+p`lfvEk8D|j<&9FdwiWca zipL-B5)2*;ud`>x-%)k>QG#lspJQc_#8(drS5)=X%OC2lkjH$AY6F4Q9KAy@@4Vt? z8eK&OBd+?r6h_jw%CGr1kKc-X&r}z_glJ&=JVf+iyFPKlFYw|XTfuPGSQKaa||ZK z;P6IsCgs-;jS*#ox{~aDUi1|iz&+mTyax+O61D3u|0bSy7?Ps67;V98m0Dn9g^Oq3 z^e295+D=)n6T)Fjy=2)PqrdyR)=L0KeVRBi>@Y!`fc<9W*HzeO!H>?5qVxg?@WZ&g z)JOSi-1EY<)ZmvlR)^-(`WpR&WjDVr_P-;n*}fHB9^9;og5QbNo&d{dnTBx?b2d~ zzHr@wbix@{5SRmIwy(dz%FLFsFDC~0D@4nj;meHmo+SBjoCcBZV3fX@zPfx}M(gPB zu@6W(!3<(eQ-`wPs-hL7vzyQqH7ycSZqa6LKp^ErnMlw~K+5Pv)c~ z5x468i|0=1^9{0V zTh!yf5i`qwk`pjicl@N)*vN}ZO)CJC}WCDh2YaKa#7W;H=y zMl}e^#jZbPla@S>GWDty-<8tyXlV-~@=gb)$zAG~Jg!HrFNP&)3sQ^R6e1|9Rv)QX zIEbQj1n$#q%v|$hBW5(MZumLeIJll9=`XL?q^Z;Q=7}VCLpA@6fLZ?&0ki%OJ5E%x z+7?6)*|?$EuaTi5PaT(qC()=Vmsz8?3h{{^F$ZUZHTJ&Ts7k$<34=oK93SU9Sl#_n ztHH2f!%{qwJ*BEGP%JV#-;>=YQ{2A%WIRi*S$SND8@%o3Lj7b?yO{WLalJdYyU^9N zur~R$@UzgWjn?PSNo?{YGwR}u3~8o?-k%zDnLAQB z0Ph*%4Avo>!6$@C;uVlZrt}fc5eYI%_$rW4Rd#S0PFN^m_}f}O%2MVxlcAy>8G5!O zQF+&(I(!!q3P&A0Z|>NDFHa!sT&}`$q{~sAFRXq`17L7nyBWJFd70lmsM;cy^tGsySZj2nL8Ay5Iv*VM0>|uw_p}(yk_puaeO;B&-GHXaJx#+Xc%i8V7r;!?W zrH|Z^p5kQ9aQ;+fGBCmW0Tb&+k~V&OqxFFJZ00&!oMFqBJ&Z^GkUWZ)==#SLrF0I= z=*Qg$=wd-VgI%ww2}+HIFuflL(jQN8cBjgwCqm#TyN{59b$LZYk>(X$!f!~3gm;m? z{}fAUP~~J0&YXU1@N#lEL8Mb}c7Cn8dak@%g}L!c!DLuFBz<`i3c^jIy?F*xyDvoe zHyUC8Pc*{J&ipSL`Svd!GS)Rj2*#NzKyal(4*tJ9JD(T7RSY90CmO4iwMa=^WsQys_xr*JuXQ=*^~2e(bcM1;3vJHF zVX%TM*C)YrLHz(`0k_mmU;Fv?jGTmdSA~mgw{E&I$WB@{jFN%L7N{;_T zlq{_O8q?!9-i>?k!Y5J(2VoamWp?7g?AEx{bS#TJ zwp3&>a(ms&Uew-5aVK{|gGfrT&!ze0%p09TMJCS{B2`>(SgOOrl$P$`I~VDSANPSI zkK1+;lT35=;58`PFRuX!@w{n^O#OwaT{-X&v4dWR{n1k!}Z^a`Rrok>|t-pAR;9yZfEPP z0(@r_`M>oGSegGNIr#n^UiPy(_RvK^K~o-qaR&go+Myoyxv2h!wYbqLxkwPN3T2cy z0lKFJ&6M`CQAs>=x$>cn1(hsegUA%vHK7A|9!X$s9Cl_5nf7X*jjip3daXz0I^EJ) z(oZ_=FRqS`gzswJxPOaxG6~ z0zaangZ>QN7Zwog>ITzz=A5virp}gCjpI(3H_;@IidB#;yu}Pst6)MM+uliLK#ZY@ zU}HAwsQnSnj2BfOtXxDgKNgOF6DO6*RhFb7dKB)hoJUJfS}ZIqWJ^B!HNQu)7*Qp4 zy;(z?l2z-IVIhJT1P9)*k+KD;s%Wab7%oggDCzv32~BuI;)H0v6})6-9O?EpOs`~o z@Sw>I#mHVEbHi8W;=PcJSS7vZwge?YUaTfpkwOxBJ~l2g79O!L)EuZGi2;gny2m)Lo^s!))=EwD zso_%6#>YuQWMS+2rR{VMNdnP#Yt!P*|8`gO9F7-jN#m)Nu1z$hvc~#jp85tQUN-g# z*KEvQYb%_1KJ<__f6r0@McxM%M+|Khk)asY*zB``7&rN5FWp}IeX(?+di~TZna9GO zj53SaTh;ow2na(ZTZy&x4y3TT7_#qQQg8At%8I&4@aOysSkONAnT=tbX>f^I6(ec0 z#2|UKoj_HV^K^LX^%}9qXWr;O`=CsNe|vG~oHe*v0)r0izULQ&lnx6F@HVC#!8U{Z z7VUK$yEFa?;;tsQNmwSXWY9<3VLsCR^kG(N1~O`UY3bC7W3Qd|!j4cXzWUHK$u`R-9;4L@q7%#QhqbReiq* zL7q2L2v*e?#xi-K%;;r?ekZ9E`Q$8!i(O!ayyd5pFF1v^A+PspQ25b>W^nm+DrHtNSmVTQK_TGz)C|jTkMKd{0QGk7iz}Hy9UJj7%7Pj zHglvczLmpYMwPP2had(%&WtTtGPl@*^f{=T+$=PuO~rCgqcIDtswv>zVD;%3uU1+^ zob%^Qt&IsX@IIef;t2+J=#x(UdmtG|eu zTqfb-Ehd847h)yQfkss_ew4RDQ=7@VqQ(o3EKE$gnGQ&b@IpSu!fdIwEE-axu*p9` z+Vqe8f$AIPl)bi9T-Q!oaDqP>ybtrd0Pc=rfSWmU}I&tpv2hytT<%ig!&XQhX zj2f=fZo~jqSFM4$qzvL&y_8bt&n?CsYg!`*?qfcAvmj^@o6L)_;}s}riUPMm1;4LO zU=EPoV8ng2Equ0D;N!8cFcS{-X0%JgS}(2zl|Rn#5D>sfx<3$u3$bAe*_4xS?P+b< zLcCncH0mqL*Lf3X91HLSg+RZB!H84)26*k~BnK+^7Me80YR*Cwhhk=f!0*sdUVX0D zK!>@B(#n)C8ai^ETR>!w9Pst~oLRQMN+vQ8Hn3DDMM^TeVOiyiUdxqPnQU~uAID9yj{R~PB(al_XQN~$1gh7PQ z?At@Reb_=fI#5w8>DsQ9ddU@;W6w1m0_*p?9@!ie9$C8|1??G$VMug}6!zc{P6L|{ zRR&LoIW)izaScNm(MBi(z`*2S7$sB4P`^M&X{GLF(Ed4MzPkO2a)QQWLJkt_W%+~1 z3v|r1?xhNaG93*BX+#flhFH*_kr7eUKXnuIPY?{5$)tdm#cpk?i+E^*_G#NTYfa6S zR;7LNoY6!>U-RN($PKs;l}Mxsd!OfX~hTg zaZ<0z(q}sKY^C_+`<&{N>ba-e%hM+gMyU}oV@>$=eG&fl7S47j2z3N1de|HLl$n!C zud3Y9v&!6cN-ZmnVnipNOX=k>9w{-qDCh@Y`D~P;@ErJq@Y()w{oHDZu*{(!sq;H9 z1sa5rSghU)zj9vJXeMfZO*x{H9GpoA!z$eJ_21Y^1^NSpE;Gf z_O*#f^=-}ky3)$D)>30w?SJg-#_m$0b)Qka81*~tL)hK@`B(jZp+p1Xwv%Iq&)1Uu zJG0N~yenuiJ&Y4LYC2eHg*UsHG{@zIH8J=S1iwG4aJ0=?DM>KNMA94{OXNgCZ-1RZ zNot>|W=O!)9w}E&lxvH@`^egIXO6TjJg{NS85NVRLH&VYbOFd>=KAOH4gH1mwJ z&ZXVwauGRiDX*CA`IJ(RuhmSYrdUO?k0CcyiZP(6$?@DK+zqd>Hz!QbxT3e;z zz3WM^6B#Mf)qW^TY6n4n~+%E=3&l0?udRlqof|~T9 zon0ZYF)33?1k_xQPy(slAHCf#`hPO9#<3JG zQXF177JRCAbQ9BBBD8quR8jeXd6#oG#Ne|wPp!(^bHmg=^`;myvY4K$l1MH_Kgt*P%4Rup|Z$`x=+o9qTA}fTOG%JR(OS@O|7(<=j z0v?>>>N_P>C0Fxv?w+`&wMoDG2wz`&?bgjCO(Kq6?S)8<+bZwF{V; z{<$`_G5`U?goFacBqr+xd^ub`DC)l%_@7F(|5snm#>Dt96+_2yP( zYyFlS4fjoNI9{hW&uD@*O-=X6j9VF8W)p6m7hW3|e6Y}Ujf0%{F)xpZc=<{*O&R-M zGJ(dQz)X@R8pc`oRhN+%L5wMpJ~bNY?J&<)xVYliuf|w4*7-JKq-IO|EnMjhFvhs% z?mdR_p)bmry``sF+_x6&aI~eSL}Lv0Sl2`>(k!x`QXn`qXE-pZIU**We|LwF&PC6G zyAzh6C~8ud&YP>9+C&L)&q7$jy7sAdHL`TTBA8rPWT0}{ZlqhqP=`?@^d@8X-rnZ#6bzD zsj^rs!w!k4!C5?6#6Lx}re{Y^kEQFzG>WQjsu@`1NnvS3*N&;^ULVq7Nmq{ww@F6u+LwLnb4>Qr{o()4uk!F^*%d;eEPG% z;TNs9!IIz_RX)qA(s0=3@!JK9yA%>T&(SjKAcn zbSrf-myoHP7BdntlK)(%B898;ZP(ocS9QUZS8v%JmRrtd2o}#l_0yX8$45M7X@b)O z@DCHaS#+o$hzzmP(~gmME9Ag6C&|BQ2L`gBiM4%Z;K-(>5pW2lp8pl9N^K28Q_f$_ zSfOS6$$)puE&pTB52=yi@hLD1ldt4TiD{J#3c1wri7q+0<|X8MLR4tEMsvb)-v<@d zR5Vl&w3gElzUR)w*YCnnm-J%03I19&DqdH>DbqT!3I;2F4IVoUHZ*am<(GgqnX}?H zrv5lD(9qtT+pMM`*mMqVJ|nHCmvEk-mXmdk0H4=4lj}_A!31KM?D5!-uSKIwUV^4# zii4pA=g2R(2;FXCqa3Q7A|^oqWj|BYo{^#xOKFHpFux?_cC76rFk%5#I7PhE0N}$r z5$cjKtNl_@vZn6ABOhjQ@MZ5KVM&(qMu|Jt_9?y*{tk!=PAGQ-DA0 zvQU!A_b*tWw|BE_?K9)I#~N|WAN4ZzzNKXg^;ErS^vTfCMpR+pl$Bah2GkuLA)rBz zYFH&|i(kY1^x_7e=%X`isHfTu2(y^&EfJW%`V^^*406cieKD{q%7T@JOq^YbSCd7+ zpB4rMH}PZ)m3FVZ0)9a|?}p&D?Sy7Fg|H{0Lk{COoJ7ejl8~17D=;5nPF{UF{`*3w zz!KPlqKaF%e4em#Lj+=OXzTHO56-RaZY`>ucJQfh3M>J!%Vx5rw4jLBA?O*GJw^RN zul85AC4wb%`ZzIBh=u`Yd~0hv=;Dn>2A?F4B(A#VOT$kVaJ;)+3aB{r7T;YkF;1={ zg?d9X({^doe_6W}DyJx7=&xO!aG67jOKz2tB_UPAa<`_hd*P{e}@(v?y^>*dy zYO>t9%gL_PZTam`6eXc>CiBuV@2|4EbCw@9NsOXSV57(4~_{!`u;;9$oUV zyf6AJtCM=+9$&#)<2d-9bWggIe-3#vz+BL_gbaRab6eNl_gTG&!WPtVi_pFgh`Rg< z9koczx!U!_VjmhNb%FS5>woCHVqbnCyD`FGtGih9y;L+z(hZr&OwgUj>o!#mi^0$D zt=E%58l*|D%_+LCp9RT89p!}o7DWLeS45cm$Pw-}CfRL97d_2v4MUs){FWyRe{lWe zi!L0|_V=|@KG2u&64hD{?{xSoM)2LG4oC|NuewHmqr}8m@=GIUIp>hWzUTNp4;4`7 zy`u^A3;`N%HQTih+6>p zoTECbI>wfxXMlV{mu1|v1`D)fWa#20&|2iVp~egJHdO0%@%a%IBv-35P0jfiI(kx) zf6RVXT2wC2&?;|o)$*ShXWbDGDpd^)Woz_CY6J(^IE#P@{i@LUsn;#OVS;sxFGhN% zy3ToaKVrx70d6yMebDU9%;k7R;(@)?mQhl;lBtXKdQxr)Duh|96;N8yMJSz5L~Cq1 zJdHJoC~a)Lki!+3qRjZCn^nA^%KCwoSQGkz7y6OyyHlP@roY+y8unA7H23AOBBZcC z_sf#qmo0M?Sx+LaLBeR4%c3c_$*}r;AB*RkGgPIH+%%v{t6!8flq`_VMu0gZU0AzK zL*Lq_(6eXGcsAL@6Ksxbn=5K$3);^2e{2#hySgRiX2_Ht{y~#KW#lO>ZEDL$M>||b zO9{#K0FBX+`xKOoq|`5*+*m*V2UAgfT~RToE`ol!iVj2dg2Ap}N~@o&MYI?%nMVbC~PHfkc1UfEN=nPfbfE z!3|+pZPr>B3zBGR%^V}IrCbMW58~gk$+>dU>aZ9MBTzn_^7^ow1kJGkLJMUHh8BtQ zorlAv>1W{$@y4-5kcU2q=c~p~7nN%SrOKd(cSM$=xo;Zq^u0869>ekl&s&zy)6qdi zlWNi&VEG96BWqvAiXZy&G&b3)tLsuWFpL7`U3j^IL)4NXT^FvdD-F#xK^%7Cz!7|Q zzmUt0Bh53ikM%gan+0!A-6k7!i-4Q=Iyo)=9x>EV3`R?v_?6%X-E>8}n$$zU@566D zv}+-|b@&05(-Yh_0PSP;0vi;=E@x8A8mCs^{?%pzYLk1+T-v%>#EO0?Z;Y`;+Y9^a z9wH|p-6kYWwpqhjcxpM9EQwWAB%+}GiaB4#b;g+HE8)#eqFF?^cZrW#JvEZu@WQTr zBXUgBvwW8LEi=Yx-S(jY2+M;w?l%0VdvZwWo&X37xfDuXW+pXx)TR~3#Ck1s{_QdD zM-e#0%b*=`a91~zr&AWn=1_%Oq`Qp6C4HO=SVa>3JKj=`H`c>01e`iY&ZTf;zXY4$ zmY~Yz`vY9|Oa1t0^B2FF=)H~t@aput7##LhEtgF9-rznO(s4nZ8{YoRy|3iN&*#GC zF8i`BlT2!<1(hi*>WP@;Ed5H5At7ROy-*EI;)P#h5vnu?lzUXzIZn4+tGAtI-0GTc zYU$qEuh#B56=Lft6QKkbogt1@%YySPcLH(PwR$a4b$`bo$FbGAW(1w0UhVLjLss}c z!*YY%8_hTbMU|a|rXzQDIqp3c5qWWIDkq|*{P5qKkag``FxTQ_nrjZQ{iWBamXU|tZl=E}51G*e(wRXsd-W~DFTj-l}zYjc_ATyed!N-KHOF}l0 zn$(oX3#|nA#k9{<4=mC3&o(Ca+kRDiuwhJhu)0fY?$+dG^^nJo?4J4;fp7lvy%NwL zAwxF6MKm3RzE_jZVxxup{!tN;WY)Q?UR2_W#k%l6>Iv8T;q7};# z4#C#pC?U!OXY@9h*~X9^G8453j_x=51d=fN2d;qNU$^5BhMsY?H5liHXu`-46X5ob zAmfDoEKr=f)-6vzm9KvUw+ODoovzgA){dACe9TVhfM!^SP`vwAE>)~H+Ca@7S$q^b z*IxcBL$*TEbm|v7`a&WG$l^HMQQ%B_uhCYjSyvoK;N#14AiurK+3V)7lJi$Q5JV=j z{4VLVjB-n^<F{9D8oR;97~#o1qa-izGYE!jZraFl^7^ASHPNYLUGI*AOYf4{Ph-J_ z{DKU*|48~fFa$eDU#r>(lorQ&bxbpIi^oBHfq}ZzViUOXp?Ct|o&uT2Z-H5jlK40{ z$BheRm+2^r=9XzgQDUb&)Q>bq;uGr+a0Z^d2-ku+3lt&9{M~%Ah;j#+F*MUE_u(df zfkL`+-TkNpHcxJ(aw8SrA-bdE1!pB!njy5~D76}ea3m=iO(;GuYZw?TBO#e^=b~>Z z{NWnT?(CE+3Kyz|D}02|A7?v#)G+F;Vrk9>V>3lM(2#dqA?Vm|5%zd;2i0o4JDt>= z29Z-YB#!?LHvu9aagKkJGIQ5+ylLZ3O8k=*3RrpT8eFKOHk|K6{Nrhw@2 zIiF_aIz3G`neH0@q{_99tb=YBfo6_sfQOY%gon;`=u^fZ@pBGDNS_IpXN1*0?J1SQ zu7sH0ElAV!^Q)cT_0n!1QA+{}YRpMz!k))dDqExTcTDQt+tsy3NRsIlyqSPf=VaYLQBBirtU*-U+Veuk~~N=yP%& z<>JjHFin_Mv82cWpOWYNqRauxLdp$*W&e}~wtFAeq2BJg?A#{w;D~kTa3?{mb$7VQ z0_EkJhU)GnqZ>_~I?p9uz31{~JehU7{8J)X!c7zLSeOMV*;Vl8MzbYx`d@iW?%!ap zY(*F4M`o-g`d4r7+qhoU&d`Ry+b!wTkv;OB9uTb`wQ^Wzw{4a$#>&dp^4w$|5f|sD zgmb50^`LaU5{m5KMkS{1#Adep93nmZvk4RC!XM^HaYO@7$niXS#yf`=`(}y z)|6LNyIM*4rY43OvXkR!pI7xYK^fsusydCOz_oRM1ao?Om)q(aj#|80Yhy*=EW`QB z8=ps?9wk&Ca>$(EZ?E71Yl$WS~Zru`oE5q6Q9XVA8? z!OJT1fH-^4;}E%}z+z{4;A-$B)jdSK4H6@T9e?I*x+?JajyDo;(BTdk&HJ8;sr zqHKe?0D!gwCeQ#zI$OmY7s^_(I+7}Jbe~2ZNac>6OPuTRI3p+?%9<5i#5oUC)+MQB zbryySGj1uODbAu-cR_Czk&?f4AXG~f$%+!#*bfT3+)l1H^4V8YE-Kl-&FtBXtg$_$ zY9-2n7Q}R)l#*iwYb9UcPN)voXTyIZk?+lauQB0IkQk{ngF?H!@OMK|VrDGdg|Zxp zDMagtU$Bi3WYUxI9gTUzlOPj)^z(v!x;u|;f3w*O*4Blcg%)5E6pUTxlq+(VnuWRl zb&7O;G(_*(a1dVf=*DbJv;QdB_+z|3R{;!m9Y;a`F_RF2Cwt0?-5pYu_-L1oESR)X zdy1i>WC7c*;V_OdK_4F+|uaX{|b$u$UD-oVxp^WxTu(5q+4D(mz!}+^IsQ~#=CjWD^KTNtsgU%)2jI(Ab5)rnEt&u*FUJN z|Lu~Jjg9qRmXsEn$UrqM!fr^H;^fCZ>QyYkX9s&sOYdqqMn1jDklhB2TMZ)^tUEHQ zM0hGBIapDLFX$>F7#flNb{8CMdW`Mv)41#Uy4t|(;XD(@g<~tKcm(0{!^6EG56)Z79a_a zruW$N{s)9YwBT?6rk8Su4$BHHJ=X*-U&^|<0VWASn@zFMmJN_mgT_YE{BRujPM~Oy zP}V$}toEogtjuZ>&tE7ka=F)wfz*K}CO8)A zbaZKBsogXb{pOkx7pUV=I7%b1t&8q zur)2?zcXrsBx3dC>nyY}nu(EzDC%%m;h0D^qU}dKOc7TDm@wu0)iVj@2iUrJA6lvV zs08ALw9%fl$?!IxbuTr}ALBf$Jd2dWlv`%hOd{$OehGJ?d>A&$x_K+%=nH=|+NL0* zwY>@9Q_ioo8-mqFwB32Bsl6e_C5$e;qe9}D_#2eA?Ci_0s#+%@^rU5{Micj{v4WQI zD0aGvf+ZX#LC(S+f%@Bg2vOYgS6b0NC3#arN?7&;8QONA6uHR8<0~zi1+2xQi+y)V z?E!_chr|QI9V8uZ44chAthgshC=V|Yzo+y{CMlN>9ugPB^=eRn0yNm7`oJj5?G!Q^VbuXn_%r;nGur^-_BRh#W*^07}BkN}4E0Q=M8jg|f7 zkQZD1y6`|`I}>y`Z3(0gCzG>&x~A|EzO z@0v*jQwTz%%owecr7psBH^7a=iN!)PAh~v44ecy^Mt8g-xOt*tl%d$M)pgx0(EKzOrO>af;WN-27&T-YTA9>xkZfd6wFXN{ zVZX{Gy@f1WL&0-C%=L>j8m1~;%pyw$J?HHg5|N1h?8ZzEz6iT&Mz&unY`0Ccet=P$ zZs{upAVEQHB4_vvyjEqD7##q|<~7a_l?7B@M}oWW=zjt>#+Dh0&k6R`no%h#UEF zwJ7sNukiE8%<8tPin;w%_7U{B&rkXxU9i>ZZnoPCxy_R6i-)8SrHSY)n-M+6UBJLm z02SG=JG()9FFOJc(txh>9o+X?l1m4d;uW8#Xv;X$>nDmK4uF!2h-hDnukkRv}H zJeyPve)DT$%ld6)I+|3eR@1sD`a^O%`cssaiWJ+O#0vLb=;DJ;ZrP|2SE8f#YTMy_ zE@nt~P!kPPW%ZC$q0_3}n18vbUagj_Yi&UbqMp#C)qhK~@hWXzbAI3OAFXy1cER?y z8&V%;_&)H_;7R7=SwCh9Bhi^RU7IZ5hBk*s-)3$rv+qiKuI5}%>#ZaN{nyh`n$Esi zY{pcABz3T}c}+rG!Ep&IlSgycI|zajzadQUtr4tggIU?C3yaJKAyGUKU{RP@0Vonb zQiMeuPyZYuQuUs@$S&5b{xz|Bl5F>Q-!G4jICjGwQ&uC(8QetEhW;2ZJ7>jblj;P- zxF)-x5Q=neN)%M6-~G4{__2~K(cv1RImMt4V|ZZ=Ch|Mgzb0~4baZ^LLkS3P}VVfK0ssZ-UvMbn(Rm?bNEI+ zl%%TBVg=ht-Z&#nQ@wePhTI!!HM=zZK)~ehFOkHfo_PXT-!)66X|HSXIfI86U^R5D zvFtgLO(>9yT{Rci`B)&XW}Q@GaHQPdTr+bCOD(wvw}7L#FDN;T1bG5bG@tgOJ(b4B z@RPE}ylM-6a0f$1DUV`Fvg>?|u`BxtCxfd{kP`N1++XZ!oz&VlQO8&vJxKML+N^BT z$E?jht%{TKq|wKR5BzkMHP5X587K?A*x%rO zvs+xT6s2eUTz)2c$TOPYTW$*BH2cX=j~UUQ!1OoL(;vlt{{j8{LvHgwK&yX|)%=%` z2jf`X7?`;~SGS9R4S{P8UG^VJ|ASWk-vTQhZk~UFISVxd1!4`H?uD(jB7i9@t0kUg zZPVAdYf@vBB^bz#G$eJC9IM&gX8y}B?2}dZYI0Sn$+jQwNk^N}v@~QHHV{W+VQYalL825m zyD~E3&RUT=2PmgSjXFYrkIJBMg7@wf_293TTK>_`*TP>F^XPUQFUbudqPS&H1Nzw) zv}M0TJk#Ji-b?>P4*UTPEJV75dJctiLVlBNqkHO!TsOPJ>}DL6*HtC5y@L;B&U3L* zkR8S*v_pc+A!S_AT-}R=FP4V&R>w^SFbwUA3SZt17CAP$v$#!-&0M z5i>Z##T~}gQ7-rW14x#sa8lQVu_{1fxl>6?5H*OtMOwrX5O8W0h8n0Z`8!gp7^-@o z-iv;}6Hu_ywJ{aROg zcuXhTycYn0@iB1kksFmG|G3I_Lsob2XCvTtQi9)8!R<&sV-|KMd}5T&d&*3~*V1yV zqffwWStkOS$ei{MH?s~`PrZ)X4(}-Ta~2dfn`L^Jd7L-;5yy2~z9p5Hgyl7ZZtLMz zKn|GbfLy7r4Uc;^8e{=Y5M!7l^|1?A)9ZWee00S!qq6#eU4L&F(HXLFzTD9hcw^x3 z=TDPkpi?b(;JcOCMp5(L{_Xv-{_WfO#3{^k`OBl8eEvMh$4cP7-!^nRDY&G_oUz`T zll@E z(|R}Ju-y(G&}*5>UaB@~p0&LC?1JyPNMBQ)G}f0w%P^l}AoHv})BgS|Z&-BFpyRHR zs6$Lxcj?m>iPgE0}~q*$mxPw<9IINenNrmPSIT#ELJ-p&;Rg{{~_b}@Bawae|fQg^&!ykaB#42aL^El z0sl!H!u5}#?tl9|uyOPL%dqFJg{+RPMVOCoDG}Ewvfuz(=PxdsuR(7_zo-b9wD0h{SzFwcMjTs63S&9~lBkRnTrWl#i z<`D-Jyi$M162L~x{lp~l6+|Xr{s}8oARc4XbChM1-E!M^x1C8gf{tEZoeFPaiG}Km z-qSps>9I657AC!?{rypA+$N!<_4NEK7L~EPA$1>>Pfg58>sc~a$=_SQXZk3q zN?1g>EFjm@%W|br@QKiyQqErgXBWs*{+RGYzTq z2-_USj<-5g(=TP#>#VizzDanO=Z>e#lrtp>80eG9zmbOg%)3sOL0&+{a1aOwj#8Mj z-a*}A)kEooR!J^X>Lp!`Dw%WFkbUrHvZdi>UB9hm!ls@K2(`eW-MsE=ocGGJ>$65BlqQtAbT zJ*|KFG5D3G3a->ru|68OL{Nrt-Es^D*pInO&;-6*2ow0 zG09?I;cTx9H#5p|PdCd>e@kJao+C~>xH%7n8Q@dRc-Q)r6^yv9Jn0N85W4fAHA9ys=BtNI9!|(q5xEy`d|FOzvOznXjS=h)d;1f;XDo-Z*0ebJRU$Vy*mNj)o>nfRfjMHDv6C)zv z#Keu6eU(;Aud#!@0t3?y@p)6j|h z#1BuPAMxIPwLuSDtZAc}33M1c`brhTbn*%)p#Q<^*O+DAi)VWDkqyvBipZWMgnoq|Q92`Cq!H=9M!T{(>vw*0EnI*|M&*?RzzkvydE5{@Tc%EWe^;@Y5b^Xn>4FQGm77-I_5KzLEOgI?FNZM0$MNh(lbpRO#aV zz)hD<)tYT)o7V+ZyE@}F%f}o=hg=!WgN*yzNQVV_Q3G+O^`^fPiM+W+rVbP*dO}aP z^6e{5cQOh^MI7vEr8K47qFEj~IDg7Eb@dTOhmPqTh}O?l8`e;Po9G_zk& zf_A-GK)#e7tagLDcwWbw=XJQ$XQQAt`2+t@n|OG&mEWxd%4V{4yz(A4FKYpZ^;CUSbzxQd!P~rZK-*zHeIH)D%`q?#NoX7GTav*mAKEz$bjod@sap@^!ugc3 zvW{f{dC}Zr%L+HC`^(t7uxFlh7pH6XqH$Hdts5v#(Hoy6od8R@ z*T}qc6W3yi*$=wxKthciH0H>gij{8~+uZ z@2#S4>r2rBFS-rssgB2*>cZyXUzi;cb<%YywGM1&=AKBTK?hs;7en1&Y>W0(82 zv7lA?eT0A5hOTCHE$51QO3vy#{LsFY{|f55&_(-PAo=gsKqt2_D^IPX($ae{71 zx)i=@28x^BWAPWWs<}mcDUm1;7;X{ji=9WtZw+%2;#^YrOgR1lZxL& zyvYBse}b$!4$!+8T+QUy<#-JMi;*v5?PhDTt~4I5>N&w9kq(hL6CpXI5H0pI6Rj{o z-2b?r4cYD&LN6sb^eN{+$xzy}&kpNx38@<}>#tR1u~(Q%mZ3IQ&$nE_JX4hgr!!5h zbZfHaIp*-6LggvVyas&TV&K%VX^nN|*qkfmeU5?o(vD7p>I>f;zpVW#X$B+V&=;Oa z!M#CZdX?L8OEEnhxnq!bR|`LdJlIG_Fx{5vGHoCnYJ|+P8oLM756od zBl}@VRexD?dydd0VY8B;RS=~m;w6^w3r0ZNZ1y?SSlrrUmzTJ|<0yQmzqlLa+@`WE zpG;_24oep?yJ}5EyOGPYJUpLI{a-mq`doNXJe@xR>T7PYDmti{ z*tIGuMJw)rzsbdl-Qe;Xr?$lm!xT?j7QmU!^%#RHzOI9*>l{<(6ynYrsH2v6U%}7p zo}V|y(F);}NZLmUkYf?wpPpERW?88|Rc|7w(@b5firL<_myteWUS`(|@NZYUoKeAn zi{OYYSBhNB&^mU}!&>=fS5Ekx38yLA=AFH7ZZC~3P2m{TrPw|-`gVFaZLi=yU_W{k z8#>l-q$hp#K6>35)QUe+Ktb{P9S@C_!!~7t93!`B{WI5fk+HLJ{!gY(PG0VRPVqxp_G%ka81LIg&ZJjoJnhdJN)hzC zz+4d-01lQkX_!CHIsO=B49>g%vs*n?sH6&^D*N&FlSjdpufwwfPJa}eM5c&3B?Eye zit}WmNQgK(A~hzv3|2V4G?J!>x(dE*35>J?c`3aqp>>D}?fk5T3^F)M6s|j!5*llf zETl~&mrM+>8Y0CALs>zMg%6+uOknQmlNVuP76L;uEpcSalvE&s=!RkFB@jnlW(Ocz zCDeNz0N((1aJIVGFd_)yaWJe5tWYwsp}vLbvQ9BUENC1|tdWVp!SYZ2As%1I2CIrOb#I$4>p3xMrc$=_f?jCj%$ zXetZ5T!QLRro2NE4Z0(cImf(W z*GbSWDEAqBttu>F7dCmf67rY24uK>}-Wa0T%#1{)U1V%6JHpbxSmqor(6-%ypGLi6 zFlw_?3tOGaUDxo*QM^J*g7SCr=xM|lYJ1ICqw+i(EO1C3aN;C)xmp?a7|(CXo4?w4 zWN)dg-dJO=Zus^n=K~AXqQvKgH>3HkohS@>7#ioNKd`$xy>G?RmBS+?Z`{DvsNPbr zMyK4ct>R|MGPmRWj_VJLtYcaG8b8&rQ9kA4+2DBV;^FTa+5JHG4N8rv`{6afGnYoZ z71*`sIA}H6f1~9m^xOqbDOL0+Q>r?g7R`+eM;0a~pPF-{{1 z;)*d5#%H>RzflXf-TX6ct@>Gh4OF7V{b97T;F?|W(G$Q(q4`}mj#T3Yd$3X2*~(a4 zMAQLGd@0GOR~67soKI@_=Hup#{qvp^v~b)b>I_3QyU zOS^)nU7NIYX8RdunV7Qw){UN?J`vvKOn{uRM5y}65tES!+$5UZ+Sr3NmnGJ3Ez?iy zVQg&jtLw<-QzS&rxQTfW!pDq-Tqw9%51r@{XuN%^%vk%w)e{9utcKAHuMo`Gfg@J3 z-8GC46Qzfyhz8(`&PSDXjQN>hqM?17^9!ds?K0Bty(5>KPxFskAr0mh;x7e#VQ-S2 zktH5PMpia68rSEskB3>?cXOAR5y_-?y1xCen(-mXzx-s~yH~G_%fvngl zW%|uE(;9yOKVeND@eu@w#b7c(K$dEo3S2Tn3ARK{#?VNHu_U4jR$-LoNrbT_Lp;Qq zob*Tr%7V$N73P!yrPKkODpb~3lJ#g3Yc(D0%Bz(5QP%=5UN7$lbE0YMhJZYo_aOQ^ z;k3^Sx*o08Y~gLs;Nbd!y|RmhFZ|VWwl@-XHxhqCe{-Iu6)+PrDLUAX{CG${cULat zB9K^*{)>qgdj9?@rwRh<5tF-AP;3!jeT+LQjC*{BMY+1+RrEFTjMy!V&kkVChKqU$?2Us9F11ka4rKXz8(%v6HbG z{145Kjs0KDubi{|O8qJrLwl|wu#l2KiCfsaySX1QrkmlZ4!vQ6xWKGdh`8{~U)-xe zomQAC1v-5Qp!T}XZeGfdm%E8PbG9}JK*30mz_Nv5&8TD>nWu#;$*7<=-9-JD$~ze@ z1anBv(XsI73W2l{iSw-;`UVN|P03U~%btscOnpj2y(gj0raVtAp}2`Kg>j3lWa~C6 zb~b6DbbIk0kkHiR$yWl&)&(}06P*j KwWP8X(*FVczSHdh literal 0 HcmV?d00001 diff --git a/research/cost-stats.csv b/research/cost-stats.csv index 0680edf..0496566 100644 --- a/research/cost-stats.csv +++ b/research/cost-stats.csv @@ -1,1304 +1,1304 @@ seed,plan_cost,exec_us,rows,query -0,9220,262,3,"SELECT t1.price AS c2289 +0,3466,255,3,"SELECT t1.price AS c2289 FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id;" -1,1122,249,55,"SELECT t0.region_id AS c3748 +1,56100,240,55,"SELECT t0.region_id AS c3748 FROM customers AS t0 WHERE t0.region_id = 7;" -2,1660,248,500,"SELECT t0.region_id, t0.id +2,110500,250,500,"SELECT t0.region_id, t0.id FROM customers AS t0 ORDER BY t0.id DESC, t0.region_id DESC;" -3,1220,129,5,"SELECT t0.id +3,610,122,5,"SELECT t0.id FROM departments AS t0;" -4,4325,164,0,"SELECT t0.id, SUM(t0.id) +4,943,172,0,"SELECT t0.id, SUM(t0.id) FROM markets AS t0 WHERE t0.id IS NULL GROUP BY t0.id ORDER BY t0.id DESC;" -5,649400,20979,3,"SELECT markets.region, markets.id AS c7685 +5,49760800,22867,3,"SELECT markets.region, markets.id AS c7685 FROM markets CROSS JOIN orders CROSS JOIN departments GROUP BY markets.region, markets.id;" -6,17610,722,4,"SELECT t1.id, t0.id AS c6716, t0.region_id +6,230694,628,4,"SELECT t1.id, t0.id AS c6716, t0.region_id FROM customers AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN departments AS t2 ON t0.id = t2.id WHERE t1.department_id <= 11;" -7,3343,282,1,"SELECT departments.id +7,2593,293,1,"SELECT departments.id FROM departments RIGHT JOIN employees ON departments.id = employees.id WHERE (employees.id != 33 AND employees.department_id IN (34, 74)) GROUP BY departments.id ORDER BY departments.id DESC;" -8,1133,1113,1,"SELECT orders.customer_id, orders.id +8,552500,1154,1,"SELECT orders.customer_id, orders.id FROM orders WHERE (orders.id = 117 AND orders.id > 60) ORDER BY orders.customer_id DESC, orders.id DESC;" -9,15694,7696,2,"SELECT t0.customer_id AS c3674 +9,3939128,8455,2,"SELECT t0.customer_id AS c3674 FROM orders AS t0 CROSS JOIN departments AS t1 WHERE (t1.id >= 4 AND (t0.id IN (130) OR t1.id IS NULL));" -10,12035,296,3,"SELECT regions.id +10,5532,325,3,"SELECT regions.id FROM books RIGHT JOIN employees ON books.id = employees.id JOIN regions ON books.id = regions.id WHERE books.price >= 6;" -11,9660,335,22,"SELECT employees.department_id +11,16616,301,22,"SELECT employees.department_id FROM users FULL JOIN employees ON users.id = employees.id ORDER BY employees.department_id DESC;" -12,5070,1115,3,"SELECT orders.id AS c2380, markets.region, markets.note +12,676416,975,3,"SELECT orders.id AS c2380, markets.region, markets.note FROM markets JOIN orders ON markets.id = orders.id;" -13,14600,2984,15000,"SELECT markets.region, orders.customer_id AS c8705, markets.note +13,2390300,2814,15000,"SELECT markets.region, orders.customer_id AS c8705, markets.note FROM markets CROSS JOIN orders;" -14,1854,132,10,"SELECT t0.department_id, t0.id AS c1827 +14,2076,143,10,"SELECT t0.department_id, t0.id AS c1827 FROM employees AS t0 WHERE (t0.department_id BETWEEN 5 AND 34 OR t0.id NOT IN (2, 68, 69));" -15,1488,140,0,"SELECT books.price +15,422,142,0,"SELECT books.price FROM books WHERE (books.id < 2 AND (books.price NOT BETWEEN 41 AND 55 OR books.price IN (57, 63, 77, 77)));" -16,9220,308,22,"SELECT t0.age AS c4948 +16,16132,334,22,"SELECT t0.age AS c4948 FROM users AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id;" -17,52970,336,4,"SELECT users.age, COUNT(departments.id), COUNT(*) +17,29255,307,4,"SELECT users.age, COUNT(departments.id), COUNT(*) FROM regions JOIN users ON regions.id = users.id CROSS JOIN departments WHERE (users.age >= 52 OR regions.id IN (4, 9)) GROUP BY users.age;" -18,1775,283,436,"SELECT customers.region_id +18,102500,273,436,"SELECT customers.region_id FROM customers WHERE customers.region_id != 8 ORDER BY customers.region_id ASC;" -19,8275,321,3,"SELECT t0.id +19,3393,359,2,"SELECT t0.id FROM books AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id JOIN markets AS t2 ON t1.id = t2.id WHERE t1.id < 3 ORDER BY t0.id ASC;" -20,129600,28568,85,"SELECT orders.id AS c5497, orders.customer_id, departments.id AS c8484 +20,49896040,29612,85,"SELECT orders.id AS c5497, orders.customer_id, departments.id AS c8484 FROM departments CROSS JOIN users CROSS JOIN orders WHERE orders.id = 82;" -21,1220,126,10,"SELECT regions.id +21,1220,146,10,"SELECT regions.id FROM regions;" -22,6760,146,11,"SELECT t0.department_id +22,7436,167,11,"SELECT t0.department_id FROM employees AS t0 GROUP BY t0.department_id ORDER BY t0.department_id ASC;" -23,14760,484,10,"SELECT customers.region_id +23,156962,489,10,"SELECT customers.region_id FROM customers LEFT JOIN books ON customers.id = books.id GROUP BY customers.region_id ORDER BY customers.region_id ASC;" -24,88720,418,4,"SELECT t2.id, COUNT(t0.id) AS c2763, COUNT(t2.id) +24,57976,440,4,"SELECT t2.id, COUNT(t0.id) AS c2763, COUNT(t2.id) FROM regions AS t0 CROSS JOIN users AS t1 LEFT JOIN markets AS t2 ON t0.id = t2.id GROUP BY t2.id;" -25,5410,250,3,"SELECT customers.id +25,68652,240,3,"SELECT customers.id FROM books JOIN customers ON books.id = customers.id ORDER BY customers.id DESC;" -26,17660,144888,5489,"SELECT customers.region_id, employees.department_id +26,4786826,149982,5489,"SELECT customers.region_id, employees.department_id FROM employees FULL JOIN orders ON employees.id = orders.id FULL JOIN customers ON employees.id = customers.id ORDER BY customers.region_id ASC;" -27,33040,11022,2,"SELECT orders.customer_id, users.id +27,6471784,12004,2,"SELECT orders.customer_id, users.id FROM users RIGHT JOIN orders ON users.id = orders.id CROSS JOIN departments WHERE orders.customer_id IN (34, 321) GROUP BY orders.customer_id, users.id;" -28,6760,158,5,"SELECT departments.id AS c2364, SUM(departments.id) +28,3325,150,5,"SELECT departments.id AS c2364, SUM(departments.id) FROM departments GROUP BY departments.id ORDER BY departments.id ASC;" -29,11870,375,5,"SELECT customers.id, markets.id +29,70066,376,5,"SELECT customers.id, markets.id FROM customers FULL JOIN departments ON customers.id = departments.id JOIN markets ON customers.id = markets.id;" -30,178400,391,51,"SELECT markets.id AS c2619 +30,32788,427,51,"SELECT markets.id AS c2619 FROM markets CROSS JOIN users CROSS JOIN books WHERE markets.region != 'AMERICA';" -31,2896,155,8,"SELECT t0.id, SUM(t0.id) +31,4860,223,8,"SELECT t0.id, SUM(t0.id) FROM users AS t0 WHERE ((t0.id NOT IN (5) AND t0.age != 12) AND t0.age NOT BETWEEN 33 AND 64) GROUP BY t0.id;" -32,6760,163,11,"SELECT t0.id AS c8338, COUNT(t0.department_id) +32,7436,190,11,"SELECT t0.id AS c8338, COUNT(t0.department_id) FROM employees AS t0 GROUP BY t0.id ORDER BY t0.id DESC;" -33,24825,209075,1000,"SELECT orders.customer_id, customers.region_id +33,2705500,201810,1000,"SELECT orders.customer_id, customers.region_id FROM departments RIGHT JOIN orders ON departments.id = orders.id CROSS JOIN customers WHERE departments.id BETWEEN 4 AND 96 ORDER BY customers.region_id DESC;" -34,687256,33154,3,"SELECT markets.note AS c1833, markets.region, SUM(books.id) AS c1917, COUNT(*) +34,34691744,33226,3,"SELECT markets.note AS c1833, markets.region, SUM(books.id) AS c1917, COUNT(*) FROM orders CROSS JOIN markets CROSS JOIN books WHERE ((orders.id != 89 OR markets.note IS NOT NULL) OR (markets.id IN (22) AND books.id NOT BETWEEN 1 AND 3)) GROUP BY markets.note, markets.region ORDER BY markets.region DESC;" -35,20060,18309,50000,"SELECT regions.id, orders.id +35,7686500,17925,50000,"SELECT regions.id, orders.id FROM orders CROSS JOIN regions JOIN customers ON regions.id = customers.id ORDER BY orders.id DESC, regions.id DESC;" -36,14600,405,51,"SELECT books.price AS c7084 +36,8426,254,51,"SELECT books.price AS c7084 FROM books CROSS JOIN users;" -37,84010,424140,1591,"SELECT orders.customer_id +37,525797800,426043,1591,"SELECT orders.customer_id FROM customers CROSS JOIN markets FULL JOIN orders ON markets.id = orders.id WHERE orders.id < 95;" -38,18962,5240,2,"SELECT t1.department_id, COUNT(*) +38,4011762,5469,2,"SELECT t1.department_id, COUNT(*) FROM regions AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id WHERE ((t1.id = 3 OR t2.id = 185) OR (t1.id < 3 AND t2.id IS NULL)) GROUP BY t1.department_id ORDER BY t1.department_id DESC;" -39,1775,139,0,"SELECT t0.id, t0.note, t0.region +39,433,153,0,"SELECT t0.id, t0.note, t0.region FROM markets AS t0 WHERE t0.note IS NULL ORDER BY t0.note DESC, t0.id DESC;" -40,65600,615,500,"SELECT t1.id, t1.region_id AS c2127 +40,1004300,621,500,"SELECT t1.id, t1.region_id AS c2127 FROM books AS t0 CROSS JOIN customers AS t1 GROUP BY t1.id, t1.region_id;" -41,61064,491931,50000,"SELECT customers.region_id, orders.id AS c1616 +41,1485049368,499192,50000,"SELECT customers.region_id, orders.id AS c1616 FROM orders CROSS JOIN customers WHERE ((orders.id >= 3 OR customers.region_id != 41) OR orders.id IN (73)) GROUP BY customers.region_id, orders.id;" -42,7635,1383,3,"SELECT t1.price, t0.region_id, t2.customer_id AS c2615 +42,745022,1089,3,"SELECT t1.price, t0.region_id, t2.customer_id AS c2615 FROM customers AS t0 JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t0.id = t2.id WHERE t2.id IS NOT NULL;" -43,1122,162,0,"SELECT markets.region, markets.id AS c9574 +43,422,148,0,"SELECT markets.region, markets.id AS c9574 FROM markets WHERE ((markets.note IS NOT NULL OR markets.region != 'AMERICA') AND (markets.region IN ('EUROPE', 'EUROPE') AND markets.note IN ('North, South', 'North, South')));" -44,4325,271,6,"SELECT t1.id AS c8372, t1.age AS c1550 +44,72448,263,6,"SELECT t1.id AS c8372, t1.age AS c1550 FROM customers AS t0 JOIN users AS t1 ON t0.id = t1.id WHERE t1.id > 11 ORDER BY t1.id ASC, t1.age DESC;" -45,6160,184,0,"SELECT t1.department_id AS c7018, t0.id AS c6686 +45,6295,178,0,"SELECT t1.department_id AS c7018, t0.id AS c6686 FROM regions AS t0 JOIN employees AS t1 ON t0.id = t1.id WHERE t0.id >= 10 GROUP BY t1.department_id, t0.id;" -46,1122,130,1,"SELECT t0.id +46,1122,156,1,"SELECT t0.id FROM regions AS t0 WHERE ((t0.id IS NOT NULL AND t0.id != 5) AND (t0.id > 8 AND t0.id > 9));" -47,9133,1124,1,"SELECT employees.id +47,436233,1138,1,"SELECT employees.id FROM customers FULL JOIN employees ON customers.id = employees.id WHERE employees.department_id = 32 ORDER BY employees.id ASC;" -48,22320,125403,11,"SELECT customers.region_id AS c1201, SUM(customers.region_id) +48,1706896,142344,11,"SELECT customers.region_id AS c1201, SUM(customers.region_id) FROM orders FULL JOIN customers ON orders.id = customers.id FULL JOIN markets ON orders.id = markets.id GROUP BY customers.region_id;" -49,1133,1222,0,"SELECT orders.customer_id, orders.id +49,560554,1150,0,"SELECT orders.customer_id, orders.id FROM orders WHERE ((orders.id = 130 OR orders.id <= 96) AND orders.id = 97) ORDER BY orders.customer_id DESC, orders.id DESC;" -50,9610,263,3,"SELECT markets.id +50,1972,259,3,"SELECT markets.id FROM markets RIGHT JOIN departments ON markets.id = departments.id WHERE markets.id < 45;" -51,1220,127,5,"SELECT t0.id +51,610,133,5,"SELECT t0.id FROM departments AS t0;" -52,50320,5259,5000,"SELECT orders.id, COUNT(*) +52,7748300,4738,5000,"SELECT orders.id, COUNT(*) FROM books CROSS JOIN orders WHERE books.price NOT IN (45, 55, 55, 66) GROUP BY orders.id;" -53,26360,331,3,"SELECT users.id, COUNT(employees.id) AS c5902 +53,31865,316,3,"SELECT users.id, COUNT(employees.id) AS c5902 FROM employees CROSS JOIN users JOIN markets ON users.id = markets.id GROUP BY users.id ORDER BY users.id ASC;" -54,4990,179,15,"SELECT users.age, users.id AS c207, SUM(users.id) +54,8460,165,15,"SELECT users.age, users.id AS c207, SUM(users.id) FROM users WHERE (users.age > 27 OR (users.age <= 123 AND users.age > 1)) GROUP BY users.age, users.id ORDER BY users.id ASC;" -55,1220,121,11,"SELECT t0.department_id AS c7732 +55,1342,142,11,"SELECT t0.department_id AS c7732 FROM employees AS t0;" -56,433400,17179,3,"SELECT books.id, SUM(orders.customer_id) AS c2549, COUNT(*) AS c1539 +56,69804832,17366,3,"SELECT books.id, SUM(orders.customer_id) AS c2549, COUNT(*) AS c1539 FROM books CROSS JOIN employees CROSS JOIN orders WHERE employees.id < 68 GROUP BY books.id;" -57,1732,1401,3001,"SELECT orders.id AS c9114 +57,881250,1435,3001,"SELECT orders.id AS c9114 FROM orders WHERE (orders.customer_id > 214 OR orders.customer_id BETWEEN 75 AND 84);" -58,86560,1627742,110,"SELECT employees.department_id, customers.region_id, COUNT(*), SUM(orders.customer_id) +58,1927703100,1595702,110,"SELECT employees.department_id, customers.region_id, COUNT(*), SUM(orders.customer_id) FROM employees CROSS JOIN customers FULL JOIN orders ON customers.id = orders.id WHERE customers.id <= 149 GROUP BY employees.department_id, customers.region_id;" -59,6320,383,500,"SELECT customers.id, customers.region_id, COUNT(customers.region_id) +59,316000,390,500,"SELECT customers.id, customers.region_id, COUNT(customers.region_id) FROM customers GROUP BY customers.id, customers.region_id;" -60,9660,265,17,"SELECT t0.id +60,5702,286,17,"SELECT t0.id FROM markets AS t0 FULL JOIN users AS t1 ON t0.id = t1.id ORDER BY t0.id ASC;" -61,13485,287,5,"SELECT t1.region, t1.id, t1.note +61,2493,292,5,"SELECT t1.region, t1.id, t1.note FROM departments AS t0 CROSS JOIN markets AS t1 WHERE ((t0.id < 43 OR t0.id >= 2) AND t1.note = 'Old World') ORDER BY t1.note DESC, t1.id ASC, t1.region ASC;" -62,11870,487,3,"SELECT departments.id AS c7718 +62,70066,363,3,"SELECT departments.id AS c7718 FROM departments LEFT JOIN books ON departments.id = books.id JOIN customers ON departments.id = customers.id;" -63,14760,300,11,"SELECT users.age AS c5029, COUNT(*) AS c2096, SUM(users.age) +63,10975,294,11,"SELECT users.age AS c5029, COUNT(*) AS c2096, SUM(users.age) FROM users FULL JOIN departments ON users.id = departments.id GROUP BY users.age ORDER BY users.age ASC;" -64,9660,116327,500,"SELECT customers.region_id AS c6827, orders.id, customers.id +64,175610500,116231,500,"SELECT customers.region_id AS c6827, orders.id, customers.id FROM customers LEFT JOIN orders ON customers.id = orders.id ORDER BY customers.region_id ASC, customers.id ASC, orders.id DESC;" -65,9632,280,0,"SELECT markets.id AS c8656, markets.region +65,2482,255,0,"SELECT markets.id AS c8656, markets.region FROM markets FULL JOIN departments ON markets.id = departments.id WHERE departments.id = 60 GROUP BY markets.id, markets.region;" -66,1632,162,1,"SELECT markets.note AS c5953, SUM(markets.id), SUM(markets.id) +66,932,166,1,"SELECT markets.note AS c5953, SUM(markets.id), SUM(markets.id) FROM markets WHERE markets.region = 'EUROPE' GROUP BY markets.note;" -67,1220,236,500,"SELECT customers.region_id, customers.id AS c651 +67,61000,234,500,"SELECT customers.region_id, customers.id AS c651 FROM customers;" -68,17660,9937,5001,"SELECT users.id, regions.id AS c5610, orders.id AS c9918 +68,4015260,20935,5001,"SELECT users.id, regions.id AS c5610, orders.id AS c9918 FROM users FULL JOIN orders ON users.id = orders.id FULL JOIN regions ON orders.id = regions.id ORDER BY users.id DESC;" -69,32064,2232,2380,"SELECT t0.id AS c499 +69,380850,2234,2380,"SELECT t0.id AS c499 FROM books AS t0 FULL JOIN users AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 WHERE ((t0.price > 66 OR t0.price NOT IN (55, 77, 93)) OR t2.id < 93) ORDER BY t0.id ASC;" -70,2308,161,1,"SELECT markets.region, markets.note +70,943,192,1,"SELECT markets.region, markets.note FROM markets WHERE markets.id IN (2, 31) GROUP BY markets.region, markets.note ORDER BY markets.note ASC, markets.region ASC;" -71,65600,379,5,"SELECT departments.id AS c3175, SUM(departments.id), COUNT(books.price) +71,10340,246,5,"SELECT departments.id AS c3175, SUM(departments.id), COUNT(books.price) FROM books CROSS JOIN departments GROUP BY departments.id;" -72,1775,166,4,"SELECT t0.id +72,788,169,4,"SELECT t0.id FROM departments AS t0 WHERE t0.id >= 2 ORDER BY t0.id ASC;" -73,2462,320,0,"SELECT customers.id, customers.region_id +73,67647,262,0,"SELECT customers.id, customers.region_id FROM customers JOIN markets ON customers.id = markets.id WHERE ((markets.id = 3 AND markets.region != 'AMERICA') AND (customers.id < 17 AND customers.region_id IS NULL));" -74,10610,621,3,"SELECT books.id AS c9785 +74,86272,601,3,"SELECT books.id AS c9785 FROM customers RIGHT JOIN departments ON customers.id = departments.id RIGHT JOIN books ON departments.id = books.id WHERE books.price >= 55;" -75,14600,296,110,"SELECT t1.department_id AS c5193, t1.id +75,15960,274,110,"SELECT t1.department_id AS c5193, t1.id FROM regions AS t0 CROSS JOIN employees AS t1;" -76,10098,282,17,"SELECT t0.id AS c3431 +76,16988,294,17,"SELECT t0.id AS c3431 FROM users AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id WHERE ((t1.id != 67 AND t0.id IS NOT NULL) OR (t0.age NOT BETWEEN 33 AND 123 OR t0.age >= 22));" -77,15560,209476,0,"SELECT t1.region_id AS c1177, t0.id AS c3278, COUNT(*), COUNT(t0.id) AS c3474 +77,339550000,200988,0,"SELECT t1.region_id AS c1177, t0.id AS c3278, COUNT(*), COUNT(t0.id) AS c3474 FROM orders AS t0 CROSS JOIN customers AS t1 WHERE (t0.id = 64 AND t0.customer_id > 397) GROUP BY t1.region_id, t0.id;" -78,1220,243,500,"SELECT t0.id, t0.region_id +78,61000,244,500,"SELECT t0.id, t0.region_id FROM customers AS t0;" -79,1366,146,2,"SELECT t0.id AS c7963, t0.age AS c5437 +79,2310,135,2,"SELECT t0.id AS c7963, t0.age AS c5437 FROM users AS t0 WHERE t0.age IN (5, 11, 63);" -80,18500,267,30,"SELECT regions.id AS c2137 +80,6250,265,30,"SELECT regions.id AS c2137 FROM regions CROSS JOIN markets WHERE markets.note != 'AMERICA';" -81,14110,329,5,"SELECT markets.region AS c3832, users.age, departments.id +81,7242,334,5,"SELECT markets.region AS c3832, users.age, departments.id FROM users LEFT JOIN departments ON users.id = departments.id RIGHT JOIN markets ON users.id = markets.id WHERE departments.id <= 5;" -82,1133,138,0,"SELECT users.age AS c4898, users.id AS c4014 +82,1833,174,0,"SELECT users.age AS c4898, users.id AS c4014 FROM users WHERE ((users.id = 4 OR users.id BETWEEN 11 AND 16) AND (users.age = 22 AND users.id <= 57)) ORDER BY users.age DESC;" -83,6110,265,6,"SELECT t0.age AS c499, t1.price AS c7644, t0.id +83,4502,282,6,"SELECT t0.age AS c499, t1.price AS c7644, t0.id FROM users AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id WHERE t0.id < 7;" -84,18098,330,3,"SELECT books.price, regions.id, markets.id AS c8988 +84,4574,324,3,"SELECT books.price, regions.id, markets.id AS c8988 FROM markets LEFT JOIN regions ON markets.id = regions.id LEFT JOIN books ON regions.id = books.id WHERE ((books.price BETWEEN 6 AND 77 OR markets.id NOT IN (1, 2, 2, 3)) OR books.price NOT IN (55));" -85,6320,334,500,"SELECT t0.id, t0.region_id +85,316000,330,500,"SELECT t0.id, t0.region_id FROM customers AS t0 GROUP BY t0.id, t0.region_id;" -86,1220,1184,5000,"SELECT orders.customer_id, orders.id +86,610000,1168,5000,"SELECT orders.customer_id, orders.id FROM orders;" -87,6320,141,11,"SELECT employees.department_id, employees.id AS c6314 +87,6952,133,11,"SELECT employees.department_id, employees.id AS c6314 FROM employees GROUP BY employees.department_id, employees.id;" -88,14760,297,5,"SELECT departments.id AS c2839, COUNT(*) +88,8275,273,5,"SELECT departments.id AS c2839, COUNT(*) FROM employees RIGHT JOIN departments ON employees.id = departments.id GROUP BY departments.id ORDER BY departments.id DESC;" -89,6320,148,3,"SELECT t0.region AS c5477, t0.id AS c2794, COUNT(*) AS c9570 +89,1896,151,3,"SELECT t0.region AS c5477, t0.id AS c2794, COUNT(*) AS c9570 FROM markets AS t0 GROUP BY t0.region, t0.id;" -90,4160,436,500,"SELECT customers.region_id, customers.id AS c6247, COUNT(*) AS c8943 +90,208000,409,500,"SELECT customers.region_id, customers.id AS c6247, COUNT(*) AS c8943 FROM customers WHERE customers.region_id <= 40 GROUP BY customers.region_id, customers.id;" -91,1220,142,5,"SELECT departments.id +91,610,132,5,"SELECT departments.id FROM departments;" -92,73300,291,3,"SELECT markets.region, markets.id +92,22030,249,3,"SELECT markets.region, markets.id FROM markets CROSS JOIN regions GROUP BY markets.region, markets.id ORDER BY markets.region ASC;" -93,4970,933,3,"SELECT t0.id, t1.id AS c1156, t0.customer_id +93,676086,907,3,"SELECT t0.id, t1.id AS c1156, t0.customer_id FROM orders AS t0 JOIN books AS t1 ON t0.id = t1.id;" -94,27722,329,0,"SELECT t1.price +94,8782,324,0,"SELECT t1.price FROM departments AS t0 CROSS JOIN books AS t1 RIGHT JOIN users AS t2 ON t1.id = t2.id WHERE (t2.id BETWEEN 45 AND 86 AND t1.id IN (2));" -95,20644,350,0,"SELECT t2.id +95,7432,344,0,"SELECT t2.id FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 WHERE ((t1.department_id IN (1, 5, 12, 34) AND t1.id IN (69)) AND t1.department_id <= 1);" -96,10070,948,16,"SELECT t1.id AS c5555, t0.id +96,689824,912,16,"SELECT t1.id AS c5555, t0.id FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id GROUP BY t1.id, t0.id;" -97,1643,163,0,"SELECT regions.id, SUM(regions.id), COUNT(regions.id) AS c9550 +97,1643,148,0,"SELECT regions.id, SUM(regions.id), COUNT(regions.id) AS c9550 FROM regions WHERE ((regions.id < 2 AND regions.id = 32) AND (regions.id <= 2 AND regions.id != 3)) GROUP BY regions.id ORDER BY regions.id ASC;" -98,12888,254,0,"SELECT books.id +98,2482,253,0,"SELECT books.id FROM books CROSS JOIN departments WHERE ((books.price IS NULL AND departments.id = 1) AND (books.price IS NULL OR books.price NOT IN (55, 77)));" -99,3212,258,0,"SELECT customers.id, SUM(customers.id), COUNT(customers.id) AS c8662 +99,59312,262,0,"SELECT customers.id, SUM(customers.id), COUNT(customers.id) AS c8662 FROM regions JOIN customers ON regions.id = customers.id WHERE customers.region_id = 63 GROUP BY customers.id;" -100,1660,132,17,"SELECT users.age, users.id AS c7470 +100,3009,165,17,"SELECT users.age, users.id AS c7470 FROM users ORDER BY users.id ASC;" -101,26500,369,50,"SELECT markets.id, departments.id AS c1258, markets.region +101,6624,358,50,"SELECT markets.id, departments.id AS c1258, markets.region FROM employees LEFT JOIN markets ON employees.id = markets.id CROSS JOIN departments WHERE ((markets.id IN (3) AND markets.region = 'EUROPE') OR employees.id < 69);" -102,1220,1173,5000,"SELECT t0.customer_id, t0.id AS c8685 +102,610000,1114,5000,"SELECT t0.customer_id, t0.id AS c8685 FROM orders AS t0;" -103,17410,1080,11,"SELECT users.age AS c405 +103,696660,1089,11,"SELECT users.age AS c405 FROM users JOIN orders ON users.id = orders.id RIGHT JOIN regions ON orders.id = regions.id GROUP BY users.age ORDER BY users.age DESC;" -104,1122,135,0,"SELECT employees.id +104,1222,134,0,"SELECT employees.id FROM employees WHERE employees.id = 14;" -105,22320,2174,3,"SELECT markets.id, orders.customer_id, COUNT(*) +105,1552826,2164,3,"SELECT markets.id, orders.customer_id, COUNT(*) FROM orders RIGHT JOIN markets ON orders.id = markets.id LEFT JOIN books ON markets.id = books.id GROUP BY markets.id, orders.customer_id;" -106,21032,333,25,"SELECT books.price AS c2329, markets.note +106,10632,340,25,"SELECT books.price AS c2329, markets.note FROM users CROSS JOIN books JOIN markets ON books.id = markets.id WHERE (markets.region = 'EUROPE' OR (users.age NOT IN (5, 22, 64, 123) AND users.age < 22)) ORDER BY markets.note ASC;" -107,1643,160,1,"SELECT regions.id +107,1643,176,1,"SELECT regions.id FROM regions WHERE regions.id IN (5) GROUP BY regions.id ORDER BY regions.id ASC;" -108,1775,242,51,"SELECT customers.id AS c9166, customers.region_id +108,102500,228,51,"SELECT customers.id AS c9166, customers.region_id FROM customers WHERE customers.id < 52 ORDER BY customers.region_id ASC, customers.id DESC;" -109,9220,297,22,"SELECT employees.id, users.age, employees.department_id +109,16132,273,22,"SELECT employees.id, users.age, employees.department_id FROM employees FULL JOIN users ON employees.id = users.id;" -110,9632,285,0,"SELECT employees.department_id, employees.id, COUNT(users.id) AS c6401, COUNT(*) +110,16522,270,0,"SELECT employees.department_id, employees.id, COUNT(users.id) AS c6401, COUNT(*) FROM employees FULL JOIN users ON employees.id = users.id WHERE ((employees.department_id = 31 AND employees.department_id NOT IN (6, 59, 72)) AND (employees.department_id NOT IN (1, 5, 6, 32) AND users.id = 5)) GROUP BY employees.department_id, employees.id;" -111,1122,2084,28,"SELECT orders.customer_id, orders.id +111,541846,1998,28,"SELECT orders.customer_id, orders.id FROM orders WHERE ((orders.id IN (97, 99, 184, 198) OR orders.id BETWEEN 31 AND 58) AND (orders.customer_id IS NOT NULL AND orders.id BETWEEN 3 AND 65));" -112,11660,2819,2,"SELECT markets.id, markets.note, COUNT(orders.id), SUM(orders.customer_id) +112,1550943,2924,2,"SELECT markets.id, markets.note, COUNT(orders.id), SUM(orders.customer_id) FROM markets RIGHT JOIN orders ON markets.id = orders.id WHERE ((orders.id < 188 AND orders.customer_id >= 193) OR (orders.customer_id BETWEEN 239 AND 436 OR markets.id = 1)) GROUP BY markets.id, markets.note ORDER BY markets.id DESC, markets.note DESC;" -113,1610,157,1,"SELECT t0.region, t0.note AS c6295 +113,422,154,1,"SELECT t0.region, t0.note AS c6295 FROM markets AS t0 WHERE t0.id < 2;" -114,1220,218,500,"SELECT t0.id +114,61000,219,500,"SELECT t0.id FROM customers AS t0;" -115,9220,276,10,"SELECT t1.id AS c2831, t0.id, t0.department_id +115,10020,278,10,"SELECT t1.id AS c2831, t0.id, t0.department_id FROM employees AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id;" -116,8825,1378,3,"SELECT t2.customer_id +116,677083,1090,1,"SELECT t2.customer_id FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t1.id = t2.id WHERE t2.customer_id > 244 ORDER BY t2.customer_id DESC;" -117,1610,156,1,"SELECT t0.id AS c6139 +117,744,141,1,"SELECT t0.id AS c6139 FROM departments AS t0 WHERE t0.id >= 5;" -118,12132,344,0,"SELECT books.id AS c118 +118,7052,335,0,"SELECT books.id AS c118 FROM departments RIGHT JOIN users ON departments.id = users.id FULL JOIN books ON departments.id = books.id WHERE ((users.id > 3 AND books.price = 77) AND users.age > 443) GROUP BY books.id;" -119,6160,979,5,"SELECT orders.id, COUNT(departments.id) +119,677024,1010,5,"SELECT orders.id, COUNT(departments.id) FROM departments JOIN orders ON departments.id = orders.id WHERE departments.id < 36 GROUP BY orders.id;" -120,12970,4674,11,"SELECT orders.customer_id, employees.department_id +120,1113982,1453,500,"SELECT orders.customer_id, employees.department_id FROM employees JOIN customers ON employees.id = customers.id LEFT JOIN orders ON employees.id = orders.id;" -121,1122,136,0,"SELECT employees.id +121,1222,133,0,"SELECT employees.id FROM employees WHERE ((employees.id > 68 OR employees.department_id = 5) AND (employees.id BETWEEN 2 AND 4 AND employees.department_id IN (3, 5, 5)));" -122,4402,297,0,"SELECT markets.note, employees.id +122,2847,295,0,"SELECT markets.note, employees.id FROM employees LEFT JOIN markets ON employees.id = markets.id JOIN departments ON employees.id = departments.id WHERE ((departments.id != 36 OR markets.region IS NULL) AND departments.id = 4);" -123,1854,157,1,"SELECT t0.id, t0.note, t0.region +123,544,147,1,"SELECT t0.id, t0.note, t0.region FROM markets AS t0 WHERE t0.id NOT BETWEEN 2 AND 21;" -124,2833,342,1,"SELECT books.price AS c5178 +124,65833,353,1,"SELECT books.price AS c5178 FROM books RIGHT JOIN customers ON books.id = customers.id WHERE customers.id = 158 ORDER BY books.price DESC;" -125,1122,153,0,"SELECT employees.id AS c9929, employees.department_id +125,1222,145,0,"SELECT employees.id AS c9929, employees.department_id FROM employees WHERE (employees.department_id = 35 AND employees.department_id < 32);" -126,17632,351,0,"SELECT books.price, books.id +126,4962,342,0,"SELECT books.price, books.id FROM books FULL JOIN markets ON books.id = markets.id FULL JOIN regions ON books.id = regions.id WHERE (markets.region != 'EUROPE' AND (regions.id IS NULL AND books.price > 66)) GROUP BY books.price, books.id;" -127,1432,254,3,"SELECT t0.region_id +127,81500,262,3,"SELECT t0.region_id FROM customers AS t0 WHERE t0.id IN (16, 32, 137) ORDER BY t0.region_id DESC;" -128,1288,144,2,"SELECT regions.id +128,1288,159,2,"SELECT regions.id FROM regions WHERE regions.id BETWEEN 9 AND 10 ORDER BY regions.id DESC;" -129,22760,3072,3,"SELECT orders.customer_id, COUNT(orders.id) AS c1702 +129,1552892,3046,3,"SELECT orders.customer_id, COUNT(orders.id) AS c1702 FROM markets LEFT JOIN books ON markets.id = books.id LEFT JOIN orders ON markets.id = orders.id GROUP BY orders.customer_id ORDER BY orders.customer_id DESC;" -130,11770,2770,5,"SELECT regions.id, orders.id AS c452, orders.customer_id +130,680760,1036,5,"SELECT regions.id, orders.id AS c452, orders.customer_id FROM regions JOIN departments ON regions.id = departments.id LEFT JOIN orders ON departments.id = orders.id;" -131,14320,7939,11,"SELECT regions.id AS c9060, COUNT(orders.customer_id), COUNT(orders.id) +131,4006320,8008,11,"SELECT regions.id AS c9060, COUNT(orders.customer_id), COUNT(orders.id) FROM orders FULL JOIN regions ON orders.id = regions.id GROUP BY regions.id;" -132,3666,248,0,"SELECT t0.id AS c4692, t1.department_id AS c2149, t1.id +132,2522,247,0,"SELECT t0.id AS c4692, t1.department_id AS c2149, t1.id FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id WHERE (t1.id IN (32, 66, 68, 80) AND (t1.id <= 26 OR t1.department_id <= 5));" -133,4970,923,11,"SELECT t1.id AS c8251, t0.customer_id, t0.id AS c2451 +133,678982,931,11,"SELECT t1.id AS c8251, t0.customer_id, t0.id AS c2451 FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id;" -134,22300,15759,55000,"SELECT orders.customer_id AS c6356 +134,17111100,16205,55000,"SELECT orders.customer_id AS c6356 FROM employees CROSS JOIN orders ORDER BY orders.customer_id ASC;" -135,17660,12773,11,"SELECT users.id, regions.id AS c3154 +135,4015260,8754,5001,"SELECT users.id, regions.id AS c3154 FROM orders FULL JOIN users ON orders.id = users.id RIGHT JOIN regions ON orders.id = regions.id ORDER BY users.id DESC, regions.id DESC;" -136,89160,385,4,"SELECT books.price +136,12682,387,4,"SELECT books.price FROM regions CROSS JOIN markets LEFT JOIN books ON regions.id = books.id GROUP BY books.price ORDER BY books.price DESC;" -137,6320,148,5,"SELECT departments.id, SUM(departments.id), COUNT(*) AS c6998 +137,3160,137,5,"SELECT departments.id, SUM(departments.id), COUNT(*) AS c6998 FROM departments GROUP BY departments.id;" -138,6320,136,10,"SELECT regions.id AS c7258 +138,6320,137,10,"SELECT regions.id AS c7258 FROM regions GROUP BY regions.id;" -139,4160,154,2,"SELECT markets.id +139,932,178,2,"SELECT markets.id FROM markets WHERE ((markets.note = 'Old World' OR markets.id >= 2) OR (markets.region = 'AMERICA' AND markets.region = 'EUROPE')) GROUP BY markets.id;" -140,1610,151,3,"SELECT t0.price, t0.id AS c3105 +140,422,152,3,"SELECT t0.price, t0.id AS c3105 FROM books AS t0 WHERE t0.id IS NOT NULL;" -141,20160,323,0,"SELECT t1.id AS c8895, t1.note AS c8854, SUM(t1.id) +141,5272,358,0,"SELECT t1.id AS c8895, t1.note AS c8854, SUM(t1.id) FROM books AS t0 RIGHT JOIN markets AS t1 ON t0.id = t1.id RIGHT JOIN employees AS t2 ON t0.id = t2.id WHERE t1.id > 24 GROUP BY t1.id, t1.note;" -142,12970,374,17,"SELECT t1.region_id AS c1630 +142,87712,367,17,"SELECT t1.region_id AS c1630 FROM users AS t0 JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN employees AS t2 ON t0.id = t2.id;" -143,1610,159,1,"SELECT t0.id, t0.price +143,422,158,1,"SELECT t0.id, t0.price FROM books AS t0 WHERE t0.price <= 55;" -144,44000,291,10,"SELECT t1.department_id AS c3966, SUM(t1.id) AS c1392, COUNT(*) AS c3892 +144,14944,273,10,"SELECT t1.department_id AS c3966, SUM(t1.id) AS c1392, COUNT(*) AS c3892 FROM books AS t0 CROSS JOIN employees AS t1 WHERE t1.department_id != 12 GROUP BY t1.department_id;" -145,6122,270,2,"SELECT t1.department_id AS c6376, t1.id AS c3596 +145,3072,283,2,"SELECT t1.department_id AS c6376, t1.id AS c3596 FROM books AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id WHERE ((t0.id < 1 OR t1.id IS NOT NULL) AND (t0.id != 3 AND t1.department_id <= 35));" -146,6760,157,5,"SELECT departments.id +146,3325,163,5,"SELECT departments.id FROM departments GROUP BY departments.id ORDER BY departments.id DESC;" -147,22600,351,110,"SELECT regions.id +147,12750,343,110,"SELECT regions.id FROM departments FULL JOIN employees ON departments.id = employees.id CROSS JOIN regions;" -148,18500,255,20,"SELECT books.id, books.price AS c5525, regions.id +148,6250,268,20,"SELECT books.id, books.price AS c5525, regions.id FROM books CROSS JOIN regions WHERE books.price < 69;" -149,1775,283,422,"SELECT t0.region_id AS c6318 +149,102500,278,422,"SELECT t0.region_id AS c6318 FROM customers AS t0 WHERE t0.id > 78 ORDER BY t0.region_id DESC;" -150,31360,1154,1040,"SELECT t0.id, t1.id AS c921 +150,1519000,1214,1040,"SELECT t0.id, t1.id AS c921 FROM regions AS t0 CROSS JOIN customers AS t1 WHERE t1.region_id IN (5, 9, 51) GROUP BY t0.id, t1.id;" -151,11688,6072,0,"SELECT regions.id, users.age, orders.id +151,4014888,11011,0,"SELECT regions.id, users.age, orders.id FROM regions RIGHT JOIN users ON regions.id = users.id FULL JOIN orders ON users.id = orders.id WHERE ((orders.customer_id BETWEEN 283 AND 359 AND users.id IN (10, 17, 17, 39)) OR (users.id IN (14, 16, 64, 75) AND users.id >= 81)) ORDER BY orders.id ASC, regions.id DESC, users.age ASC;" -152,22300,262,55,"SELECT departments.id, employees.department_id, employees.id +152,12160,277,55,"SELECT departments.id, employees.department_id, employees.id FROM departments CROSS JOIN employees ORDER BY employees.id ASC;" -153,14600,1238,1500,"SELECT t1.id, t0.region_id, t0.id +153,239300,1323,1500,"SELECT t1.id, t0.region_id, t0.id FROM customers AS t0 CROSS JOIN books AS t1;" -154,5655,182,10,"SELECT regions.id, SUM(regions.id) AS c8443 +154,5655,174,10,"SELECT regions.id, SUM(regions.id) AS c8443 FROM regions WHERE (regions.id >= 1 OR (regions.id >= 8 OR regions.id = 5)) GROUP BY regions.id ORDER BY regions.id ASC;" -155,18170,1267,2,"SELECT markets.region +155,681356,1097,2,"SELECT markets.region FROM markets LEFT JOIN orders ON markets.id = orders.id JOIN employees ON markets.id = employees.id GROUP BY markets.region;" -156,9220,3877,10,"SELECT t1.customer_id, t1.id AS c2544, t0.id AS c7170 +156,4001220,3942,10,"SELECT t1.customer_id, t1.id AS c2544, t0.id AS c7170 FROM regions AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id;" -157,26500,1949,4840,"SELECT t1.region_id, t2.id +157,675750,1912,4840,"SELECT t1.region_id, t2.id FROM users AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id CROSS JOIN regions AS t2 WHERE t0.id IS NULL;" -158,12260,290,0,"SELECT t1.id, t0.id AS c3888, t2.id AS c5161 +158,5727,298,7,"SELECT t1.id, t0.id AS c3888, t2.id AS c5161 FROM employees AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id JOIN books AS t2 ON t0.id = t2.id WHERE t0.id IS NULL;" -159,14056,2677,3,"SELECT orders.customer_id AS c3770, departments.id AS c4567, COUNT(*) AS c2771 +159,2253028,2641,3,"SELECT orders.customer_id AS c3770, departments.id AS c4567, COUNT(*) AS c2771 FROM departments LEFT JOIN orders ON departments.id = orders.id WHERE ((orders.customer_id NOT BETWEEN 115 AND 380 OR departments.id IS NULL) OR orders.id = 174) GROUP BY orders.customer_id, departments.id;" -160,1220,1139,5000,"SELECT t0.id, t0.customer_id AS c1926 +160,610000,1128,5000,"SELECT t0.id, t0.customer_id AS c1926 FROM orders AS t0;" -161,19820,395,33,"SELECT t1.region AS c961, t2.id +161,91868,354,33,"SELECT t1.region AS c961, t2.id FROM employees AS t0 CROSS JOIN markets AS t1 JOIN customers AS t2 ON t1.id = t2.id;" -162,1366,155,3,"SELECT employees.id, employees.department_id +162,1466,157,3,"SELECT employees.id, employees.department_id FROM employees WHERE ((employees.id NOT IN (5, 67, 68) AND employees.department_id = 28) OR (employees.id > 4 AND employees.department_id > 32));" -163,56060,1836,2,"SELECT markets.region, COUNT(*), COUNT(*) +163,948104,1813,2,"SELECT markets.region, COUNT(*), COUNT(*) FROM users CROSS JOIN markets LEFT JOIN customers ON markets.id = customers.id WHERE users.age >= 1 GROUP BY markets.region;" -164,1775,171,3,"SELECT markets.id, markets.note AS c529, markets.region +164,433,184,3,"SELECT markets.id, markets.note AS c529, markets.region FROM markets WHERE (markets.region = 'EUROPE' OR markets.id <= 91) ORDER BY markets.region ASC, markets.id ASC, markets.note ASC;" -165,6320,155,3,"SELECT books.id, COUNT(books.price), SUM(books.id) +165,1896,151,3,"SELECT books.id, COUNT(books.price), SUM(books.id) FROM books GROUP BY books.id;" -166,2328,151,9,"SELECT regions.id +166,2328,149,9,"SELECT regions.id FROM regions WHERE regions.id NOT IN (2, 95) ORDER BY regions.id ASC;" -167,1122,265,0,"SELECT t0.id +167,52196,252,0,"SELECT t0.id FROM customers AS t0 WHERE ((t0.region_id > 32 AND t0.id = 78) AND (t0.id >= 20 OR t0.id IS NULL));" -168,31392,1276,1,"SELECT t1.region AS c6909, t1.note, SUM(t2.id) +168,158668,1265,1,"SELECT t1.region AS c6909, t1.note, SUM(t2.id) FROM customers AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN departments AS t2 WHERE ((t0.id = 89 OR t1.id BETWEEN 49 AND 71) AND t0.id IS NOT NULL) GROUP BY t1.region, t1.note ORDER BY t1.region ASC;" -169,12160,272,2,"SELECT departments.id +169,2482,273,2,"SELECT departments.id FROM departments RIGHT JOIN markets ON departments.id = markets.id WHERE departments.id != 1 GROUP BY departments.id;" -170,14760,2948,505,"SELECT t1.id AS c5737, t0.customer_id +170,2253325,2928,505,"SELECT t1.id AS c5737, t0.customer_id FROM orders AS t0 LEFT JOIN departments AS t1 ON t0.id = t1.id GROUP BY t1.id, t0.customer_id ORDER BY t0.customer_id DESC, t1.id ASC;" -171,83620,525,110,"SELECT employees.id AS c3715 +171,37006,538,110,"SELECT employees.id AS c3715 FROM regions CROSS JOIN employees FULL JOIN books ON regions.id = books.id;" -172,9775,683,0,"SELECT t0.id, t0.department_id AS c3676, t1.region_id +172,436875,673,0,"SELECT t0.id, t0.department_id AS c3676, t1.region_id FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id WHERE t0.department_id >= 57 ORDER BY t0.id DESC, t1.region_id ASC;" -173,22300,20218,85000,"SELECT orders.customer_id +173,27106700,19617,85000,"SELECT orders.customer_id FROM users CROSS JOIN orders ORDER BY orders.customer_id DESC;" -174,1432,152,3,"SELECT users.id, users.age +174,2475,163,3,"SELECT users.id, users.age FROM users WHERE users.id IN (3, 11, 12) ORDER BY users.age DESC, users.id DESC;" -175,2822,250,1,"SELECT books.id, employees.id, employees.department_id +175,2292,433,1,"SELECT books.id, employees.id, employees.department_id FROM employees RIGHT JOIN books ON employees.id = books.id WHERE books.price = 77;" -176,4160,169,2,"SELECT books.price, SUM(books.price) AS c5357 +176,932,152,2,"SELECT books.price, SUM(books.price) AS c5357 FROM books WHERE books.price >= 66 GROUP BY books.price;" -177,2085,150,14,"SELECT users.id, users.age AS c4847 +177,3692,162,14,"SELECT users.id, users.age AS c4847 FROM users WHERE (users.age < 16 OR users.age < 71) ORDER BY users.id ASC, users.age DESC;" -178,1660,133,17,"SELECT users.age AS c7380, users.id +178,3009,140,17,"SELECT users.age AS c7380, users.id FROM users ORDER BY users.id DESC;" -179,6688,415,500,"SELECT customers.id, customers.region_id +179,358416,524,500,"SELECT customers.id, customers.region_id FROM customers WHERE ((customers.id != 141 OR customers.region_id != 10) OR (customers.id NOT IN (197) OR customers.region_id IN (8))) GROUP BY customers.id, customers.region_id;" -180,6760,402,500,"SELECT customers.id AS c95, customers.region_id +180,365500,614,500,"SELECT customers.id AS c95, customers.region_id FROM customers GROUP BY customers.id, customers.region_id ORDER BY customers.region_id DESC;" -181,649400,2991,500,"SELECT customers.region_id AS c397, customers.id AS c5003, SUM(books.id) +181,4976800,3138,500,"SELECT customers.region_id AS c397, customers.id AS c5003, SUM(books.id) FROM customers CROSS JOIN books CROSS JOIN departments GROUP BY customers.region_id, customers.id;" -182,10070,1156,500,"SELECT t1.id AS c6022, t0.id +182,1111000,1136,500,"SELECT t1.id AS c6022, t0.id FROM orders AS t0 JOIN customers AS t1 ON t0.id = t1.id GROUP BY t1.id, t0.id;" -183,1632,229,1,"SELECT customers.id, COUNT(customers.id), COUNT(customers.id) +183,81600,287,1,"SELECT customers.id, COUNT(customers.id), COUNT(customers.id) FROM customers WHERE customers.id = 24 GROUP BY customers.id;" -184,18500,494,500,"SELECT books.price AS c5308, customers.region_id AS c1694 +184,297800,441,500,"SELECT books.price AS c5308, customers.region_id AS c1694 FROM books CROSS JOIN customers WHERE books.price <= 55;" -185,1220,134,5,"SELECT t0.id AS c9527 +185,610,134,5,"SELECT t0.id AS c9527 FROM departments AS t0;" -186,9220,284,18,"SELECT users.id +186,14820,282,18,"SELECT users.id FROM regions FULL JOIN users ON regions.id = users.id;" -187,9930,306,8,"SELECT users.id, regions.id, users.age AS c4755 +187,15530,290,8,"SELECT users.id, regions.id, users.age AS c4755 FROM users LEFT JOIN regions ON users.id = regions.id WHERE ((regions.id != 31 AND users.age <= 64) OR users.id >= 66) ORDER BY users.age DESC;" -188,27984,334,0,"SELECT t2.price AS c5573, COUNT(*) +188,7942,327,0,"SELECT t2.price AS c5573, COUNT(*) FROM employees AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 WHERE (t2.price > 55 AND t0.id BETWEEN 66 AND 69) GROUP BY t2.price;" -189,2292,319,0,"SELECT markets.id AS c7660 +189,57522,266,0,"SELECT markets.id AS c7660 FROM markets JOIN customers ON markets.id = customers.id WHERE (markets.note IS NULL AND (customers.id = 198 AND markets.region IN ('AMERICA', 'EUROPE')));" -190,6760,164,5,"SELECT departments.id +190,3325,146,5,"SELECT departments.id FROM departments GROUP BY departments.id ORDER BY departments.id DESC;" -191,49850,319,55,"SELECT departments.id, employees.id +191,27819,351,55,"SELECT departments.id, employees.id FROM departments JOIN regions ON departments.id = regions.id CROSS JOIN employees WHERE employees.id IS NOT NULL GROUP BY departments.id, employees.id ORDER BY departments.id DESC, employees.id ASC;" -192,13620,267,3,"SELECT books.id, markets.region +192,1658,507,3,"SELECT books.id, markets.region FROM markets CROSS JOIN books WHERE markets.region = 'EUROPE';" -193,11870,661,10,"SELECT customers.region_id, regions.id +193,83620,1178,11,"SELECT customers.region_id, regions.id FROM users JOIN regions ON users.id = regions.id LEFT JOIN customers ON regions.id = customers.id;" -194,225614,8292,25000,"SELECT t2.id +194,5620982,10404,25000,"SELECT t2.id FROM customers AS t0 CROSS JOIN markets AS t1 CROSS JOIN users AS t2 WHERE ((t1.id IN (3) OR t2.age != 1) OR (t1.id != 2 OR t2.id > 61));" -195,17220,7112,10,"SELECT t0.id +195,1553466,8004,10,"SELECT t0.id FROM regions AS t0 FULL JOIN books AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t1.id = t2.id;" -196,68250,595,30,"SELECT customers.region_id, books.id, SUM(regions.id), SUM(customers.region_id) +196,1006340,585,30,"SELECT customers.region_id, books.id, SUM(regions.id), SUM(customers.region_id) FROM books JOIN regions ON books.id = regions.id CROSS JOIN customers GROUP BY customers.region_id, books.id;" -197,7720,252,3,"SELECT t0.price AS c8028, t2.id +197,70841,337,3,"SELECT t0.price AS c8028, t2.id FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id JOIN regions AS t2 ON t1.id = t2.id;" -198,1220,134,17,"SELECT t0.age AS c2991 +198,2074,129,17,"SELECT t0.age AS c2991 FROM users AS t0;" -199,18134,295,30,"SELECT t1.id, t0.id +199,30140,292,30,"SELECT t1.id, t0.id FROM regions AS t0 CROSS JOIN users AS t1 WHERE (t1.age BETWEEN 33 AND 33 OR t1.id IN (12, 49, 95));" -200,2085,145,6,"SELECT employees.department_id +200,2428,163,6,"SELECT employees.department_id FROM employees WHERE ((employees.id > 66 OR employees.id IN (33)) OR employees.department_id IN (6, 12, 12, 50)) ORDER BY employees.department_id DESC;" -201,1220,1137,5000,"SELECT orders.customer_id, orders.id +201,610000,1297,5000,"SELECT orders.customer_id, orders.id FROM orders;" -202,4666,206,6,"SELECT employees.id AS c3304, users.id AS c2088 +202,6401,205,6,"SELECT employees.id AS c3304, users.id AS c2088 FROM users JOIN employees ON users.id = employees.id WHERE ((users.age IN (42, 64) OR users.id < 16) AND users.id != 99) GROUP BY employees.id, users.id;" -203,6320,150,3,"SELECT books.id, books.price +203,1896,159,3,"SELECT books.id, books.price FROM books GROUP BY books.id, books.price;" -204,10170,272,3,"SELECT t0.id AS c8592, t1.region +204,70446,345,3,"SELECT t0.id AS c8592, t1.region FROM customers AS t0 JOIN markets AS t1 ON t0.id = t1.id GROUP BY t0.id, t1.region;" -205,13664,12314,1,"SELECT t1.id AS c8725, SUM(t1.id), COUNT(*) +205,10416100,12344,1,"SELECT t1.id AS c8725, SUM(t1.id), COUNT(*) FROM users AS t0 CROSS JOIN orders AS t1 WHERE (t0.age IN (33, 64) AND t1.id = 156) GROUP BY t1.id;" -206,1220,250,500,"SELECT t0.id AS c4257 +206,61000,229,500,"SELECT t0.id AS c4257 FROM customers AS t0;" -207,20110,4160,0,"SELECT t1.customer_id, t0.department_id +207,8356600,3939,0,"SELECT t1.customer_id, t0.department_id FROM employees AS t0 CROSS JOIN orders AS t1 JOIN customers AS t2 ON t1.id = t2.id WHERE t0.department_id IS NULL;" -208,9220,264,3,"SELECT books.price AS c3720, employees.department_id, books.id +208,3776,263,3,"SELECT books.price AS c3720, employees.department_id, books.id FROM employees RIGHT JOIN books ON employees.id = books.id;" -209,11210,449,2,"SELECT t2.region, t1.id, COUNT(t2.id) +209,69182,369,2,"SELECT t2.region, t1.id, COUNT(t2.id) FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id FULL JOIN markets AS t2 ON t0.id = t2.id WHERE t0.id < 1 GROUP BY t2.region, t1.id;" -210,14600,3063,15000,"SELECT orders.id, books.id AS c7933, orders.customer_id +210,2390300,2862,15000,"SELECT orders.id, books.id AS c7933, orders.customer_id FROM books CROSS JOIN orders;" -211,84010,3085577,0,"SELECT t2.region_id, t2.id, t0.customer_id +211,2984422200,2956573,0,"SELECT t2.region_id, t2.id, t0.customer_id FROM orders AS t0 CROSS JOIN users AS t1 LEFT JOIN customers AS t2 ON t1.id = t2.id WHERE t2.region_id >= 23;" -212,14320,2182,3,"SELECT orders.id +212,1551896,2851,3,"SELECT orders.id FROM books LEFT JOIN orders ON books.id = orders.id GROUP BY orders.id;" -213,1620,141,2,"SELECT t0.id +213,1620,151,2,"SELECT t0.id FROM regions AS t0 WHERE t0.id IN (4, 4, 9, 88) ORDER BY t0.id ASC;" -214,178400,91814,247665,"SELECT orders.id, orders.customer_id, employees.id +214,51596600,97240,247665,"SELECT orders.id, orders.customer_id, employees.id FROM orders CROSS JOIN employees CROSS JOIN departments WHERE orders.customer_id >= 52;" -215,1610,966,29,"SELECT t0.customer_id +215,805000,985,29,"SELECT t0.customer_id FROM orders AS t0 WHERE t0.id < 30;" -216,1488,142,3,"SELECT departments.id +216,744,129,3,"SELECT departments.id FROM departments WHERE departments.id IN (1, 3, 4, 60);" -217,12160,683,3,"SELECT t0.id, t1.region_id +217,439260,709,3,"SELECT t0.id, t1.region_id FROM employees AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id WHERE t1.region_id >= 8 GROUP BY t0.id, t1.region_id;" -218,9220,241,5,"SELECT books.price AS c5412, books.id, departments.id AS c9618 +218,1916,288,5,"SELECT books.price AS c5412, books.id, departments.id AS c9618 FROM departments LEFT JOIN books ON departments.id = books.id;" -219,178400,23808,45000,"SELECT t1.note, t0.customer_id AS c4395 +219,9485600,25795,45000,"SELECT t1.note, t0.customer_id AS c4395 FROM orders AS t0 CROSS JOIN markets AS t1 CROSS JOIN books AS t2 WHERE t1.region IS NOT NULL;" -220,83832,1508595,45001,"SELECT customers.region_id, orders.id, employees.id +220,1931305120,1531952,45001,"SELECT customers.region_id, orders.id, employees.id FROM employees CROSS JOIN orders RIGHT JOIN customers ON employees.id = customers.id WHERE (customers.id IN (181) OR employees.id BETWEEN 3 AND 92) ORDER BY customers.region_id ASC;" -221,1133,144,0,"SELECT t0.id AS c9777 +221,1133,157,0,"SELECT t0.id AS c9777 FROM regions AS t0 WHERE ((t0.id <= 5 OR t0.id IN (4, 12)) AND (t0.id = 9 AND t0.id NOT IN (2, 4, 5, 89))) ORDER BY t0.id ASC;" -222,6056,174,11,"SELECT t0.id, t0.department_id AS c2878, COUNT(t0.id), COUNT(*) AS c2633 +222,6788,169,11,"SELECT t0.id, t0.department_id AS c2878, COUNT(t0.id), COUNT(*) AS c2633 FROM employees AS t0 WHERE ((t0.department_id IS NOT NULL OR t0.department_id IS NOT NULL) OR (t0.id > 26 OR t0.id = 52)) GROUP BY t0.id, t0.department_id;" -223,14600,13517,55000,"SELECT t0.id +223,7431100,14977,55000,"SELECT t0.id FROM orders AS t0 CROSS JOIN employees AS t1;" -224,1220,136,11,"SELECT employees.department_id +224,1342,148,11,"SELECT employees.department_id FROM employees;" -225,12970,4690,11,"SELECT orders.customer_id, customers.id AS c4775, employees.department_id AS c6986 +225,1113982,1738,500,"SELECT orders.customer_id, customers.id AS c4775, employees.department_id AS c6986 FROM employees LEFT JOIN customers ON employees.id = customers.id JOIN orders ON employees.id = orders.id;" -226,9854,279,3,"SELECT books.id, regions.id, books.price AS c1520 +226,3644,270,3,"SELECT books.id, regions.id, books.price AS c1520 FROM books LEFT JOIN regions ON books.id = regions.id WHERE ((regions.id < 10 OR books.price = 77) OR books.price > 60);" -227,9122,5911,9,"SELECT orders.id, books.price, orders.customer_id AS c7568 +227,1550422,6413,9,"SELECT orders.id, books.price, orders.customer_id AS c7568 FROM orders FULL JOIN books ON orders.id = books.id WHERE orders.customer_id = 63;" -228,25402,1409,1000,"SELECT t1.id AS c1443, t2.region_id AS c2237 +228,285106,1546,1000,"SELECT t1.id AS c1443, t2.region_id AS c2237 FROM employees AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 WHERE ((t1.id < 3 OR t1.region = 'AMERICA') AND (t2.region_id IS NULL OR t1.note != 'North, South'));" -229,26940,545,0,"SELECT departments.id +229,228379,592,0,"SELECT departments.id FROM departments LEFT JOIN customers ON departments.id = customers.id CROSS JOIN markets WHERE markets.region IS NULL ORDER BY departments.id ASC;" -230,11870,10874,5000,"SELECT departments.id, users.age AS c5139, orders.id +230,685010,1055,17,"SELECT departments.id, users.age AS c5139, orders.id FROM departments JOIN users ON departments.id = users.id FULL JOIN orders ON users.id = orders.id;" -231,1220,123,5,"SELECT departments.id +231,610,158,5,"SELECT departments.id FROM departments;" -232,14760,765,16,"SELECT customers.id, COUNT(*) AS c3789 +232,656679,819,16,"SELECT customers.id, COUNT(*) AS c3789 FROM customers RIGHT JOIN users ON customers.id = users.id GROUP BY customers.id ORDER BY customers.id DESC;" -233,22470,746,1353,"SELECT departments.id +233,317325,812,1353,"SELECT departments.id FROM departments JOIN markets ON departments.id = markets.id CROSS JOIN customers WHERE (customers.region_id NOT IN (10, 10) AND (customers.id <= 80 OR departments.id >= 1));" -234,9220,256,10,"SELECT t0.note +234,3466,261,10,"SELECT t0.note FROM markets AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id;" -235,5604,255,1,"SELECT t1.region_id AS c5511 +235,68764,248,1,"SELECT t1.region_id AS c5511 FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id WHERE (t0.price NOT BETWEEN 66 AND 94 OR (t0.id > 3 AND t1.region_id = 10));" -236,17660,4310,17,"SELECT t1.department_id AS c2338, t0.customer_id +236,4366616,4378,17,"SELECT t1.department_id AS c2338, t0.customer_id FROM orders AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN users AS t2 ON t1.id = t2.id ORDER BY t1.department_id ASC;" -237,22600,2092,5010,"SELECT regions.id +237,669120,2379,5010,"SELECT regions.id FROM users FULL JOIN customers ON users.id = customers.id CROSS JOIN regions;" -238,6122,652,0,"SELECT customers.region_id +238,268722,690,0,"SELECT customers.region_id FROM customers LEFT JOIN employees ON customers.id = employees.id WHERE (employees.id IN (38) AND customers.region_id != 5);" -239,4325,176,6,"SELECT employees.id +239,4425,166,6,"SELECT employees.id FROM employees WHERE employees.id > 5 GROUP BY employees.id ORDER BY employees.id DESC;" -240,649400,379,3,"SELECT t0.price AS c6143, SUM(t2.id) +240,169984,385,3,"SELECT t0.price AS c6143, SUM(t2.id) FROM books AS t0 CROSS JOIN users AS t1 CROSS JOIN departments AS t2 GROUP BY t0.price;" -241,22600,3857,25000,"SELECT customers.id, customers.region_id, departments.id +241,3875500,5272,25000,"SELECT customers.id, customers.region_id, departments.id FROM customers RIGHT JOIN departments ON customers.id = departments.id CROSS JOIN orders;" -242,13864,236,0,"SELECT books.id +242,5320,321,0,"SELECT books.id FROM books CROSS JOIN employees WHERE (employees.id != 33 AND (employees.id < 1 AND employees.department_id < 12));" -243,7730,1760,5,"SELECT employees.department_id, books.price AS c4475, books.id AS c4655 +243,680223,1097,5,"SELECT employees.department_id, books.price AS c4475, books.id AS c4655 FROM orders JOIN employees ON orders.id = employees.id RIGHT JOIN books ON employees.id = books.id WHERE ((orders.id >= 13 AND orders.customer_id != 233) OR (orders.id > 39 AND orders.customer_id <= 359)) ORDER BY books.id DESC;" -244,10922,333,0,"SELECT regions.id +244,5632,333,0,"SELECT regions.id FROM regions RIGHT JOIN employees ON regions.id = employees.id LEFT JOIN markets ON employees.id = markets.id WHERE (regions.id NOT BETWEEN 2 AND 8 AND markets.note = 'Fast lane');" -245,1775,142,1,"SELECT markets.note, markets.region, markets.id +245,433,172,1,"SELECT markets.note, markets.region, markets.id FROM markets WHERE ((markets.region != 'AMERICA' AND markets.region = 'AMERICA') OR markets.id < 2) ORDER BY markets.note DESC, markets.id ASC, markets.region DESC;" -246,1244,154,9,"SELECT regions.id AS c713 +246,1244,145,9,"SELECT regions.id AS c713 FROM regions WHERE regions.id BETWEEN 2 AND 45;" -247,14408,2095,3,"SELECT t0.id AS c7208 +247,1551608,2262,3,"SELECT t0.id AS c7208 FROM orders AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id WHERE t0.customer_id NOT IN (244, 365) GROUP BY t0.id ORDER BY t0.id ASC;" -248,13424,7694,5000,"SELECT t1.id, COUNT(*), SUM(t0.id) AS c7387 +248,6459284,8849,5000,"SELECT t1.id, COUNT(*), SUM(t0.id) AS c7387 FROM users AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id WHERE ((t1.customer_id = 494 AND t1.customer_id != 145) OR (t0.age > 53 OR t1.customer_id IS NOT NULL)) GROUP BY t1.id;" -249,9610,256,3,"SELECT markets.region, users.age +249,5692,274,3,"SELECT markets.region, users.age FROM markets LEFT JOIN users ON markets.id = users.id WHERE users.id < 17;" -250,9220,591,10,"SELECT customers.id, customers.region_id +250,401220,748,10,"SELECT customers.id, customers.region_id FROM regions LEFT JOIN customers ON regions.id = customers.id;" -251,9775,4003,42,"SELECT orders.customer_id, regions.id, orders.id AS c3346 +251,4001775,4600,42,"SELECT orders.customer_id, regions.id, orders.id AS c3346 FROM regions FULL JOIN orders ON regions.id = orders.id WHERE orders.id <= 42 ORDER BY regions.id ASC;" -252,83533,19602,39,"SELECT orders.id AS c8852, orders.customer_id, books.price AS c8813 +252,7310933,21711,39,"SELECT orders.id AS c8852, orders.customer_id, books.price AS c8813 FROM books CROSS JOIN orders FULL JOIN departments ON orders.id = departments.id WHERE ((orders.customer_id = 163 OR orders.id IN (69, 96, 152)) AND (orders.id IS NOT NULL AND books.id IS NOT NULL)) ORDER BY orders.id DESC;" -253,18894,439,40,"SELECT customers.id +253,121234,453,40,"SELECT customers.id FROM regions CROSS JOIN employees JOIN customers ON employees.id = customers.id WHERE (employees.id IS NOT NULL AND customers.id >= 65);" -254,9220,246,11,"SELECT markets.id AS c3977, employees.department_id +254,3776,262,11,"SELECT markets.id AS c3977, employees.department_id FROM markets FULL JOIN employees ON markets.id = employees.id;" -255,6320,2350,5000,"SELECT orders.id, orders.customer_id AS c7286 +255,3160000,2415,5000,"SELECT orders.id, orders.customer_id AS c7286 FROM orders GROUP BY orders.id, orders.customer_id;" -256,31360,277,9,"SELECT t0.id, t1.id AS c9218 +256,10520,274,9,"SELECT t0.id, t1.id AS c9218 FROM markets AS t0 CROSS JOIN employees AS t1 WHERE t1.department_id IN (5, 12, 33) GROUP BY t0.id, t1.id;" -257,8970,178,3,"SELECT t1.price, t0.id AS c7828 +257,3936,183,3,"SELECT t1.price, t0.id AS c7828 FROM regions AS t0 JOIN books AS t1 ON t0.id = t1.id GROUP BY t1.price, t0.id;" -258,18510,378,3,"SELECT customers.region_id +258,75782,410,3,"SELECT customers.region_id FROM customers JOIN users ON customers.id = users.id RIGHT JOIN markets ON customers.id = markets.id GROUP BY customers.region_id ORDER BY customers.region_id DESC;" -259,1660,255,500,"SELECT customers.id +259,110500,255,500,"SELECT customers.id FROM customers ORDER BY customers.id ASC;" -260,1366,237,118,"SELECT customers.region_id, customers.id +260,72814,282,118,"SELECT customers.region_id, customers.id FROM customers WHERE ((customers.region_id IS NULL OR customers.id >= 198) AND customers.region_id <= 4);" -261,14760,449,3,"SELECT customers.region_id AS c4278, books.id +261,156962,566,3,"SELECT customers.region_id AS c4278, books.id FROM books LEFT JOIN customers ON books.id = customers.id GROUP BY customers.region_id, books.id ORDER BY books.id ASC;" -262,14600,277,110,"SELECT t1.department_id AS c5186, t0.id, t1.id +262,15960,322,110,"SELECT t1.department_id AS c5186, t0.id, t1.id FROM regions AS t0 CROSS JOIN employees AS t1;" -263,8650,330,5,"SELECT markets.id, departments.id, regions.id +263,2973,330,5,"SELECT markets.id, departments.id, regions.id FROM regions LEFT JOIN departments ON regions.id = departments.id JOIN markets ON regions.id = markets.id WHERE markets.note != 'Old World' ORDER BY markets.id ASC, regions.id DESC;" -264,17220,885,500,"SELECT users.id AS c6920, markets.region AS c5238, users.age AS c1104 +264,160636,939,500,"SELECT users.id AS c6920, markets.region AS c5238, users.age AS c1104 FROM markets RIGHT JOIN users ON markets.id = users.id RIGHT JOIN customers ON markets.id = customers.id;" -265,9220,277,17,"SELECT t1.id, t0.id AS c2693 +265,14820,312,17,"SELECT t1.id, t0.id AS c2693 FROM users AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id;" -266,1133,239,1,"SELECT customers.id AS c604, customers.region_id +266,59400,248,1,"SELECT customers.id AS c604, customers.region_id FROM customers WHERE customers.id = 135 ORDER BY customers.id DESC, customers.region_id DESC;" -267,1610,140,0,"SELECT books.id +267,422,139,0,"SELECT books.id FROM books WHERE books.price IS NULL;" -268,649400,33743,11,"SELECT employees.department_id, SUM(orders.customer_id) +268,107001400,33265,11,"SELECT employees.department_id, SUM(orders.customer_id) FROM orders CROSS JOIN books CROSS JOIN employees GROUP BY employees.department_id;" -269,1220,121,3,"SELECT books.price AS c8205 +269,366,135,3,"SELECT books.price AS c8205 FROM books;" -270,1220,1113,5000,"SELECT orders.id AS c7922 +270,610000,1139,5000,"SELECT orders.id AS c7922 FROM orders;" -271,2972,1247,0,"SELECT orders.id AS c8902, departments.id AS c4368, orders.customer_id +271,534702,1221,0,"SELECT orders.id AS c8902, departments.id AS c4368, orders.customer_id FROM orders JOIN departments ON orders.id = departments.id WHERE ((orders.customer_id = 483 AND departments.id > 4) AND orders.id != 24);" -272,8660,1918,2,"SELECT orders.customer_id, orders.id, COUNT(*), COUNT(*) +272,850932,2012,2,"SELECT orders.customer_id, orders.id, COUNT(*), COUNT(*) FROM orders RIGHT JOIN books ON orders.id = books.id WHERE books.id != 1 GROUP BY orders.customer_id, orders.id;" -273,6320,156,11,"SELECT t0.id, SUM(t0.department_id), COUNT(t0.department_id) +273,6952,177,11,"SELECT t0.id, SUM(t0.department_id), COUNT(t0.department_id) FROM employees AS t0 GROUP BY t0.id;" -274,1244,152,2,"SELECT t0.id AS c7269, t0.age +274,2066,148,2,"SELECT t0.id AS c7269, t0.age FROM users AS t0 WHERE t0.age IN (33, 33);" -275,1122,1452,0,"SELECT orders.id AS c6877 +275,545750,1512,0,"SELECT orders.id AS c6877 FROM orders WHERE ((orders.customer_id <= 56 OR orders.customer_id != 343) AND (orders.customer_id IN (52, 86) AND orders.customer_id >= 224));" -276,73300,1476,11,"SELECT users.age AS c7960, SUM(users.id) +276,6766700,1560,11,"SELECT users.age AS c7960, SUM(users.id) FROM customers CROSS JOIN users GROUP BY users.age ORDER BY users.age ASC;" -277,1643,169,1,"SELECT t0.id +277,1143,182,1,"SELECT t0.id FROM departments AS t0 WHERE ((t0.id IN (2, 10, 59) OR t0.id IS NULL) AND (t0.id != 5 AND t0.id IS NOT NULL)) GROUP BY t0.id ORDER BY t0.id DESC;" -278,9976,278,5,"SELECT t1.id AS c8751 +278,8638,307,5,"SELECT t1.id AS c8751 FROM users AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id WHERE (t0.age IS NULL OR (t1.id != 5 OR t1.id < 14));" -279,3432,1033,0,"SELECT regions.id, orders.id, COUNT(*), SUM(orders.customer_id) +279,851732,1199,0,"SELECT regions.id, orders.id, COUNT(*), SUM(orders.customer_id) FROM orders RIGHT JOIN regions ON orders.id = regions.id WHERE ((regions.id IN (8, 9, 22) AND regions.id <= 6) AND orders.id IN (39, 49, 104, 106)) GROUP BY regions.id, orders.id;" -280,9122,6240,0,"SELECT orders.customer_id +280,6451822,7192,0,"SELECT orders.customer_id FROM users FULL JOIN orders ON users.id = orders.id WHERE ((users.age > 33 AND orders.customer_id < 84) AND (users.id = 15 OR orders.id IN (68, 128, 128, 198)));" -281,1133,155,0,"SELECT t0.id, t0.note, t0.region +281,433,170,0,"SELECT t0.id, t0.note, t0.region FROM markets AS t0 WHERE ((t0.note = 'unknown' AND t0.id != 1) AND t0.id > 67) ORDER BY t0.id ASC, t0.note DESC;" -282,84010,11429,9,"SELECT employees.id, orders.customer_id AS c5471, books.price +282,13612010,12919,9,"SELECT employees.id, orders.customer_id AS c5471, books.price FROM books CROSS JOIN orders LEFT JOIN employees ON orders.id = employees.id WHERE employees.id > 66;" -283,83533,2140,0,"SELECT books.id, markets.id, books.price AS c2723 +283,521733,2237,0,"SELECT books.id, markets.id, books.price AS c2723 FROM books CROSS JOIN customers FULL JOIN markets ON customers.id = markets.id WHERE ((markets.id > 55 AND customers.region_id NOT IN (8, 9, 10)) AND markets.region IN ('AMERICA', 'EUROPE')) ORDER BY books.id DESC, markets.id ASC;" -284,6760,178,2,"SELECT t0.region AS c1153, SUM(t0.id) AS c3569 +284,1962,176,2,"SELECT t0.region AS c1153, SUM(t0.id) AS c3569 FROM markets AS t0 GROUP BY t0.region ORDER BY t0.region ASC;" -285,20522,379,0,"SELECT employees.id AS c5654, users.id +285,10836,413,0,"SELECT employees.id AS c5654, users.id FROM markets FULL JOIN employees ON markets.id = employees.id CROSS JOIN users WHERE ((markets.note = 'Fast lane' AND employees.department_id NOT BETWEEN 11 AND 37) AND (users.id != 4 AND users.age <= 443));" -286,10308,882,3,"SELECT customers.id, COUNT(customers.id) AS c434, COUNT(*) +286,226143,997,3,"SELECT customers.id, COUNT(customers.id) AS c434, COUNT(*) FROM customers FULL JOIN departments ON customers.id = departments.id WHERE departments.id BETWEEN 2 AND 4 GROUP BY customers.id ORDER BY customers.id DESC;" -287,8435,270,0,"SELECT t2.id, t1.id, t0.id +287,2962,263,5,"SELECT t2.id, t1.id, t0.id FROM books AS t0 JOIN departments AS t1 ON t0.id = t1.id RIGHT JOIN regions AS t2 ON t1.id = t2.id WHERE t0.id IS NULL;" -288,4122,173,1,"SELECT regions.id AS c1673 +288,5327,193,1,"SELECT regions.id AS c1673 FROM users JOIN regions ON users.id = regions.id WHERE (users.age IN (33, 47, 98) OR users.id > 54);" -289,14060,267,3,"SELECT departments.id, books.price AS c551 +289,2493,286,3,"SELECT departments.id, books.price AS c551 FROM departments CROSS JOIN books WHERE departments.id = 5 ORDER BY departments.id DESC;" -290,8660,1278,6,"SELECT t2.region, t1.department_id, t0.customer_id AS c8493 +290,680542,1100,6,"SELECT t2.region, t1.department_id, t0.customer_id AS c8493 FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id WHERE t0.customer_id < 239;" -291,23720,4263,10,"SELECT orders.id, COUNT(orders.id), SUM(regions.id) +291,12324520,4720,10,"SELECT orders.id, COUNT(orders.id), SUM(regions.id) FROM users CROSS JOIN orders JOIN regions ON orders.id = regions.id GROUP BY orders.id;" -292,6760,174,3,"SELECT t0.region, t0.id, SUM(t0.id), COUNT(*) +292,1962,172,3,"SELECT t0.region, t0.id, SUM(t0.id), COUNT(*) FROM markets AS t0 GROUP BY t0.region, t0.id ORDER BY t0.region ASC, t0.id DESC;" -293,9122,273,0,"SELECT t0.age, t1.id +293,5692,311,0,"SELECT t0.age, t1.id FROM users AS t0 FULL JOIN books AS t1 ON t0.id = t1.id WHERE (t0.age = 18 AND (t0.age != 123 AND t1.id <= 89));" -294,6688,160,3,"SELECT books.price AS c6589, books.id, COUNT(*) +294,1564,165,3,"SELECT books.price AS c6589, books.id, COUNT(*) FROM books WHERE ((books.price > 77 OR books.id < 3) OR (books.price IN (49, 55, 55, 77) OR books.price IN (26, 66, 66, 68))) GROUP BY books.price, books.id;" -295,8970,187,5,"SELECT users.id, SUM(users.age), COUNT(users.id) +295,6105,182,5,"SELECT users.id, SUM(users.age), COUNT(users.id) FROM users JOIN departments ON users.id = departments.id GROUP BY users.id;" -296,1660,154,3,"SELECT t0.region, t0.id AS c2775, t0.note +296,432,162,3,"SELECT t0.region, t0.id AS c2775, t0.note FROM markets AS t0 ORDER BY t0.id DESC;" -297,13848,1207,22,"SELECT t2.department_id +297,694750,1166,21,"SELECT t2.department_id FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id FULL JOIN employees AS t2 ON t0.id = t2.id WHERE ((t2.id NOT BETWEEN 4 AND 6 OR t1.age != 21) OR t0.id <= 61);" -298,2098,152,4,"SELECT departments.id +298,988,157,4,"SELECT departments.id FROM departments WHERE ((departments.id NOT IN (4, 4, 5, 7) OR departments.id NOT IN (2, 5)) OR (departments.id NOT BETWEEN 3 AND 27 OR departments.id IS NULL));" -299,8375,263,0,"SELECT books.price, employees.id AS c7128 +299,3273,295,0,"SELECT books.price, employees.id AS c7128 FROM employees RIGHT JOIN books ON employees.id = books.id WHERE ((books.id > 68 OR books.id >= 52) AND (employees.department_id < 6 OR employees.department_id != 1)) ORDER BY books.price DESC;" -300,10775,4138,4965,"SELECT orders.id AS c9121 +300,1276883,3244,4965,"SELECT orders.id AS c9121 FROM orders LEFT JOIN departments ON orders.id = departments.id RIGHT JOIN books ON departments.id = books.id WHERE orders.customer_id <= 497 ORDER BY orders.id ASC;" -301,10170,180,3,"SELECT users.id, COUNT(markets.id), SUM(markets.id) +301,5241,175,3,"SELECT users.id, COUNT(markets.id), SUM(markets.id) FROM users JOIN markets ON users.id = markets.id GROUP BY users.id;" -302,12310,647,500,"SELECT regions.id, customers.region_id, employees.id +302,79260,419,15,"SELECT regions.id, customers.region_id, employees.id FROM regions FULL JOIN employees ON regions.id = employees.id JOIN customers ON regions.id = customers.id ORDER BY customers.region_id ASC, employees.id ASC, regions.id ASC;" -303,1610,151,8,"SELECT employees.id, employees.department_id +303,1832,150,8,"SELECT employees.id, employees.department_id FROM employees WHERE ((employees.id <= 33 OR employees.id = 3) OR (employees.department_id NOT IN (5) AND employees.id = 67));" -304,1220,128,11,"SELECT employees.department_id AS c3770 +304,1342,135,11,"SELECT employees.department_id AS c3770 FROM employees;" -305,2896,164,2,"SELECT regions.id AS c2143, COUNT(*), COUNT(*) +305,2896,173,2,"SELECT regions.id AS c2143, COUNT(*), COUNT(*) FROM regions WHERE regions.id IN (3, 10, 89) GROUP BY regions.id;" -306,8074,195,5,"SELECT employees.id, employees.department_id, SUM(employees.id), SUM(employees.department_id) AS c8963 +306,4531,199,5,"SELECT employees.id, employees.department_id, SUM(employees.id), SUM(employees.department_id) AS c8963 FROM employees JOIN departments ON employees.id = departments.id WHERE (departments.id <= 3 OR (employees.id = 68 OR employees.id <= 6)) GROUP BY employees.id, employees.department_id;" -307,12510,1269,3,"SELECT t0.note AS c4138 +307,678682,1225,3,"SELECT t0.note AS c4138 FROM markets AS t0 JOIN regions AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id WHERE ((t2.customer_id = 298 OR t0.region = 'AMERICA') OR t0.region != 'AMERICA') GROUP BY t0.note;" -308,4325,166,1,"SELECT departments.id, COUNT(*) AS c9125 +308,1808,156,1,"SELECT departments.id, COUNT(*) AS c9125 FROM departments WHERE (departments.id > 56 OR departments.id = 4) GROUP BY departments.id ORDER BY departments.id DESC;" -309,1632,153,1,"SELECT t0.id AS c7541, COUNT(t0.id) +309,932,163,1,"SELECT t0.id AS c7541, COUNT(t0.id) FROM markets AS t0 WHERE (t0.note != 'Fast lane' AND (t0.id = 3 OR t0.note = 'Old World')) GROUP BY t0.id;" -310,20325,11529,7,"SELECT t1.id, t2.id, SUM(t2.id) +310,7102108,12990,7,"SELECT t1.id, t2.id, SUM(t2.id) FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t0.id = t2.id WHERE (t2.customer_id < 243 OR (t2.id >= 38 AND t2.customer_id = 302)) GROUP BY t1.id, t2.id ORDER BY t2.id ASC;" -311,9432,2641,2,"SELECT t0.region, t1.customer_id AS c7183 +311,1550433,2827,2,"SELECT t0.region, t1.customer_id AS c7183 FROM markets AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id WHERE ((t0.id <= 3 OR t0.note = 'Fast lane') AND (t0.note != 'North, South' OR t0.note = 'Fast lane')) ORDER BY t0.region ASC;" -312,11870,1089,5,"SELECT t1.id, t0.id +312,681210,1215,5,"SELECT t1.id, t0.id FROM departments AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id JOIN employees AS t2 ON t1.id = t2.id;" -313,12504,1024,2,"SELECT employees.id, orders.id AS c4699, orders.customer_id +313,681466,1112,2,"SELECT employees.id, orders.id AS c4699, orders.customer_id FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN employees ON departments.id = employees.id WHERE employees.department_id NOT BETWEEN 5 AND 33;" -314,2264,168,13,"SELECT t0.age, t0.id +314,4228,179,13,"SELECT t0.age, t0.id FROM users AS t0 WHERE (t0.age > 5 AND t0.id != 2) GROUP BY t0.age, t0.id;" -315,6110,185,5,"SELECT t0.id +315,3354,192,5,"SELECT t0.id FROM regions AS t0 JOIN departments AS t1 ON t0.id = t1.id WHERE t1.id IS NOT NULL GROUP BY t0.id;" -316,6320,133,3,"SELECT books.id +316,1896,147,3,"SELECT books.id FROM books GROUP BY books.id;" -317,9220,2702,5000,"SELECT orders.id AS c7996, books.price +317,1550366,2810,5000,"SELECT orders.id AS c7996, books.price FROM books FULL JOIN orders ON books.id = orders.id;" -318,22320,329,4,"SELECT books.price, books.id +318,8406,346,4,"SELECT books.price, books.id FROM books FULL JOIN employees ON books.id = employees.id RIGHT JOIN regions ON employees.id = regions.id GROUP BY books.price, books.id;" -319,2896,146,3,"SELECT books.id AS c9150, books.price, COUNT(books.id) +319,932,163,3,"SELECT books.id AS c9150, books.price, COUNT(books.id) FROM books WHERE ((books.price IN (76, 77) AND books.id BETWEEN 1 AND 96) OR books.price IN (55, 66, 77)) GROUP BY books.id, books.price;" -320,4970,237,11,"SELECT customers.region_id, employees.id +320,71482,247,11,"SELECT customers.region_id, employees.id FROM customers JOIN employees ON customers.id = employees.id;" -321,16824,934,10,"SELECT t0.id AS c6071, COUNT(*), COUNT(*) AS c7241 +321,808000,991,10,"SELECT t0.id AS c6071, COUNT(*), COUNT(*) AS c7241 FROM regions AS t0 CROSS JOIN customers AS t1 WHERE ((t1.id >= 59 OR t0.id IS NULL) AND t1.id = 126) GROUP BY t0.id;" -322,17220,823,500,"SELECT t1.region_id, t1.id, t2.price +322,158466,723,500,"SELECT t1.region_id, t1.id, t2.price FROM regions AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN books AS t2 ON t0.id = t2.id;" -323,14275,522,3,"SELECT t0.region_id +323,90703,528,3,"SELECT t0.region_id FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id WHERE t1.id < 14 ORDER BY t0.region_id ASC;" -324,12160,2620,3,"SELECT orders.id AS c4187, regions.id +324,680894,1183,3,"SELECT orders.id AS c4187, regions.id FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN regions ON departments.id = regions.id WHERE regions.id < 4;" -325,15822,329,4,"SELECT markets.note AS c7216, books.price +325,2992,402,4,"SELECT markets.note AS c7216, books.price FROM departments CROSS JOIN markets LEFT JOIN books ON markets.id = books.id WHERE ((departments.id != 2 AND markets.note = 'Old World') AND (departments.id BETWEEN 1 AND 5 OR departments.id >= 41));" -326,1220,129,17,"SELECT t0.age +326,2074,142,17,"SELECT t0.age FROM users AS t0;" -327,6760,156,11,"SELECT t0.age +327,11679,179,11,"SELECT t0.age FROM users AS t0 GROUP BY t0.age ORDER BY t0.age ASC;" -328,84498,84707,54310,"SELECT employees.department_id +328,44723198,91834,54310,"SELECT employees.department_id FROM orders CROSS JOIN employees LEFT JOIN regions ON employees.id = regions.id WHERE ((employees.id <= 25 OR orders.id NOT BETWEEN 47 AND 184) OR orders.id IS NULL);" -329,5680,195,3,"SELECT t0.id +329,3583,199,3,"SELECT t0.id FROM markets AS t0 JOIN users AS t1 ON t0.id = t1.id WHERE (t0.id != 2 OR t0.id != 1) ORDER BY t0.id ASC;" -330,11143,1166,0,"SELECT books.price, employees.id, COUNT(*) +330,131853,2259,0,"SELECT books.price, employees.id, COUNT(*) FROM customers LEFT JOIN books ON customers.id = books.id FULL JOIN employees ON customers.id = employees.id WHERE ((customers.id > 96 AND employees.department_id != 32) AND (employees.id > 5 OR books.id IS NOT NULL)) GROUP BY books.price, employees.id ORDER BY books.price DESC, employees.id DESC;" -331,83620,1674673,50490,"SELECT t2.region_id, t2.id +331,1755762000,1746374,50490,"SELECT t2.region_id, t2.id FROM orders AS t0 CROSS JOIN regions AS t1 FULL JOIN customers AS t2 ON t1.id = t2.id;" -332,1610,145,10,"SELECT regions.id AS c7728 +332,1610,133,10,"SELECT regions.id AS c7728 FROM regions WHERE regions.id IS NOT NULL;" -333,22320,304862,6,"SELECT departments.id, COUNT(*) +333,2478160,315148,6,"SELECT departments.id, COUNT(*) FROM orders FULL JOIN departments ON orders.id = departments.id LEFT JOIN customers ON departments.id = customers.id GROUP BY departments.id;" -334,1775,165,10,"SELECT regions.id AS c1480 +334,1775,159,10,"SELECT regions.id AS c1480 FROM regions WHERE regions.id IS NOT NULL ORDER BY regions.id DESC;" -335,1133,144,0,"SELECT books.price, books.id +335,433,148,0,"SELECT books.price, books.id FROM books WHERE (books.price < 44 AND (books.price IN (55, 55, 66, 66) AND books.price != 77)) ORDER BY books.price DESC, books.id DESC;" -336,1122,139,1,"SELECT t0.department_id +336,1222,143,1,"SELECT t0.department_id FROM employees AS t0 WHERE ((t0.department_id = 12 AND t0.department_id < 35) AND (t0.id IN (4) OR t0.department_id != 31));" -337,1488,156,10,"SELECT users.id, users.age +337,2432,152,10,"SELECT users.id, users.age FROM users WHERE users.age IN (1, 21, 33, 64);" -338,1732,149,9,"SELECT t0.id +338,1732,155,9,"SELECT t0.id FROM regions AS t0 WHERE ((t0.id NOT BETWEEN 1 AND 15 OR t0.id < 10) AND (t0.id <= 40 OR t0.id != 3));" -339,1610,151,1,"SELECT departments.id +339,744,145,1,"SELECT departments.id FROM departments WHERE ((departments.id <= 98 OR departments.id > 1) AND (departments.id IS NULL OR departments.id IN (3, 3, 30, 91)));" -340,12160,557,13,"SELECT customers.region_id AS c4276, markets.region AS c7002, COUNT(*), COUNT(*) AS c3968 +340,155932,606,13,"SELECT customers.region_id AS c4276, markets.region AS c7002, COUNT(*), COUNT(*) AS c3968 FROM customers LEFT JOIN markets ON customers.id = markets.id WHERE (markets.note = 'Fast lane' OR customers.id IS NOT NULL) GROUP BY customers.region_id, markets.region;" -341,18070,391,3,"SELECT customers.id, SUM(customers.region_id) +341,76376,408,16,"SELECT customers.id, SUM(customers.region_id) FROM markets JOIN users ON markets.id = users.id RIGHT JOIN customers ON users.id = customers.id GROUP BY customers.id;" -342,1122,140,0,"SELECT employees.department_id, employees.id +342,1222,161,0,"SELECT employees.department_id, employees.id FROM employees WHERE ((employees.id >= 66 OR employees.id != 2) AND (employees.id > 69 AND employees.department_id = 33));" -343,1660,145,17,"SELECT users.age +343,3009,154,17,"SELECT users.age FROM users ORDER BY users.age ASC;" -344,6110,278,3,"SELECT t1.price AS c605, t0.id AS c1651, t1.id +344,2122,341,3,"SELECT t1.price AS c605, t0.id AS c1651, t1.id FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id WHERE (t1.id != 3 OR t1.id = 3);" -345,9660,441,3,"SELECT books.id, customers.id AS c5626 +345,155432,493,3,"SELECT books.id, customers.id AS c5626 FROM books LEFT JOIN customers ON books.id = customers.id ORDER BY customers.id DESC;" -346,84032,439,0,"SELECT t1.region, t2.id, COUNT(t1.id) +346,29564,444,0,"SELECT t1.region, t2.id, COUNT(t1.id) FROM employees AS t0 CROSS JOIN markets AS t1 FULL JOIN regions AS t2 ON t1.id = t2.id WHERE t0.department_id = 36 GROUP BY t1.region, t2.id;" -347,9610,5218,0,"SELECT users.age AS c6973 +347,6452676,5531,0,"SELECT users.age AS c6973 FROM users RIGHT JOIN orders ON users.id = orders.id WHERE users.id > 94;" -348,19356,1399,1187,"SELECT t1.id, t0.id +348,525100,1524,1187,"SELECT t1.id, t0.id FROM departments AS t0 CROSS JOIN customers AS t1 WHERE ((t1.id BETWEEN 28 AND 146 AND t1.id IN (46, 50, 104, 146)) OR (t0.id < 4 AND t1.region_id NOT IN (2, 2, 10, 12))) ORDER BY t1.id DESC;" -349,8825,280,5,"SELECT regions.id, departments.id AS c6050, COUNT(*), COUNT(*) +349,4208,350,5,"SELECT regions.id, departments.id AS c6050, COUNT(*), COUNT(*) FROM regions RIGHT JOIN departments ON regions.id = departments.id WHERE departments.id IS NOT NULL GROUP BY regions.id, departments.id ORDER BY departments.id ASC;" -350,14320,278,11,"SELECT employees.department_id, departments.id AS c3106, COUNT(*) AS c7893 +350,8110,276,11,"SELECT employees.department_id, departments.id AS c3106, COUNT(*) AS c7893 FROM departments RIGHT JOIN employees ON departments.id = employees.id GROUP BY employees.department_id, departments.id;" -351,83766,55158,261,"SELECT t0.customer_id, t2.id AS c6006, t2.age +351,32852932,60056,261,"SELECT t0.customer_id, t2.id AS c6006, t2.age FROM orders AS t0 CROSS JOIN departments AS t1 FULL JOIN users AS t2 ON t1.id = t2.id WHERE (t1.id >= 3 AND (t0.id < 55 OR t0.id < 88));" -352,21794,3404,80,"SELECT t1.customer_id, t1.id, t0.id +352,5464128,3748,80,"SELECT t1.customer_id, t1.id, t0.id FROM departments AS t0 CROSS JOIN orders AS t1 WHERE (t1.customer_id IN (426) OR (t1.customer_id IS NULL OR t0.id >= 57));" -353,1220,237,500,"SELECT t0.id, t0.region_id +353,61000,245,500,"SELECT t0.id, t0.region_id FROM customers AS t0;" -354,2962,167,1,"SELECT t0.department_id, t0.id +354,3760,176,1,"SELECT t0.department_id, t0.id FROM employees AS t0 WHERE (t0.department_id >= 31 AND (t0.department_id > 34 OR t0.id < 33)) GROUP BY t0.department_id, t0.id ORDER BY t0.department_id DESC;" -355,1244,243,2,"SELECT customers.id, customers.region_id +355,62200,362,2,"SELECT customers.id, customers.region_id FROM customers WHERE customers.id IN (153, 183);" -356,17220,320,5,"SELECT employees.department_id, departments.id +356,5326,320,5,"SELECT employees.department_id, departments.id FROM books LEFT JOIN employees ON books.id = employees.id FULL JOIN departments ON employees.id = departments.id;" -357,5424,3425,4914,"SELECT orders.id AS c1456, orders.customer_id, COUNT(*), COUNT(orders.customer_id) +357,2870000,3657,4914,"SELECT orders.id AS c1456, orders.customer_id, COUNT(*), COUNT(orders.customer_id) FROM orders WHERE (orders.id > 86 OR orders.customer_id IS NULL) GROUP BY orders.id, orders.customer_id;" -358,4160,153,0,"SELECT t0.department_id, t0.id AS c8666, COUNT(*) AS c1170, COUNT(*) +358,4260,153,0,"SELECT t0.department_id, t0.id AS c8666, COUNT(*) AS c1170, COUNT(*) FROM employees AS t0 WHERE t0.id IS NULL GROUP BY t0.department_id, t0.id;" -359,6320,149,10,"SELECT regions.id, COUNT(regions.id) AS c1004, COUNT(regions.id) AS c9498 +359,6320,159,10,"SELECT regions.id, COUNT(regions.id) AS c1004, COUNT(regions.id) AS c9498 FROM regions GROUP BY regions.id;" -360,1220,137,3,"SELECT t0.id, t0.note AS c1949, t0.region +360,366,145,3,"SELECT t0.id, t0.note AS c1949, t0.region FROM markets AS t0;" -361,649400,49930,11,"SELECT t2.department_id, COUNT(t2.id), SUM(t0.id) +361,178001600,53741,11,"SELECT t2.department_id, COUNT(t2.id), SUM(t0.id) FROM departments AS t0 CROSS JOIN orders AS t1 CROSS JOIN employees AS t2 GROUP BY t2.department_id;" -362,88720,780221,3,"SELECT markets.id AS c6682, markets.note AS c3493 +362,785551896,851162,3,"SELECT markets.id AS c6682, markets.note AS c3493 FROM orders CROSS JOIN customers RIGHT JOIN markets ON customers.id = markets.id GROUP BY markets.id, markets.note;" -363,1775,156,3,"SELECT books.price +363,433,159,3,"SELECT books.price FROM books WHERE books.price IS NOT NULL ORDER BY books.price DESC;" -364,1288,261,44,"SELECT customers.region_id AS c2372 +364,69900,242,44,"SELECT customers.region_id AS c2372 FROM customers WHERE customers.region_id IN (4, 89) ORDER BY customers.region_id DESC;" -365,13135,2618,3,"SELECT t0.id AS c4468, t1.customer_id, t0.region +365,831472,1381,3,"SELECT t0.id AS c4468, t1.customer_id, t0.region FROM markets AS t0 FULL JOIN orders AS t1 ON t0.id = t1.id JOIN customers AS t2 ON t0.id = t2.id WHERE t0.id <= 17;" -366,1366,153,1,"SELECT users.id, users.age +366,2310,178,1,"SELECT users.id, users.age FROM users WHERE (users.id = 15 OR (users.id != 3 AND users.id IS NULL));" -367,1220,141,17,"SELECT t0.age +367,2074,151,17,"SELECT t0.age FROM users AS t0;" -368,21794,262,49,"SELECT t0.id, t1.age +368,12062,286,49,"SELECT t0.id, t1.age FROM books AS t0 CROSS JOIN users AS t1 WHERE (t1.id = 96 OR (t1.age != 18 OR t0.price <= 61));" -369,3332,1069,0,"SELECT t0.id AS c4185, SUM(t0.id) +369,850932,1083,0,"SELECT t0.id AS c4185, SUM(t0.id) FROM markets AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id WHERE ((t0.id BETWEEN 1 AND 7 OR t0.note != 'North, South') AND (t0.note != 'Old World' AND t0.note IN ('ASIA', 'Old World', 'unknown'))) GROUP BY t0.id;" -370,1610,145,2,"SELECT markets.note AS c2495, markets.id, markets.region +370,422,154,2,"SELECT markets.note AS c2495, markets.id, markets.region FROM markets WHERE ((markets.note = 'North, South' AND markets.note != 'North, South') OR markets.note != 'Fast lane');" -371,14600,283,110,"SELECT regions.id +371,15960,288,110,"SELECT regions.id FROM regions CROSS JOIN employees;" -372,1930,1577,3214,"SELECT t0.id +372,1293750,1736,3214,"SELECT t0.id FROM orders AS t0 WHERE (t0.id <= 95 OR t0.customer_id BETWEEN 55 AND 369) ORDER BY t0.id DESC;" -373,6320,361,500,"SELECT customers.id, COUNT(customers.region_id) +373,316000,380,500,"SELECT customers.id, COUNT(customers.region_id) FROM customers GROUP BY customers.id;" -374,36830,5349,0,"SELECT orders.id AS c9907, COUNT(*) AS c8627 +374,9978000,5935,0,"SELECT orders.id AS c9907, COUNT(*) AS c8627 FROM departments CROSS JOIN orders WHERE ((orders.id >= 79 OR orders.customer_id IN (63, 185, 226, 480)) AND departments.id IS NULL) GROUP BY orders.id ORDER BY orders.id ASC;" -375,1854,1405,4999,"SELECT t0.customer_id AS c3627, t0.id AS c1197 +375,957500,1679,4999,"SELECT t0.customer_id AS c3627, t0.id AS c1197 FROM orders AS t0 WHERE (t0.customer_id <= 56 OR t0.id > 1);" -376,18098,331,9,"SELECT t1.id, t0.id, t1.department_id +376,10438,379,9,"SELECT t1.id, t0.id, t1.department_id FROM regions AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id FULL JOIN departments AS t2 ON t0.id = t2.id WHERE t0.id NOT IN (3);" -377,1643,469,341,"SELECT customers.id, customers.region_id, SUM(customers.region_id), SUM(customers.id) +377,98212,508,341,"SELECT customers.id, customers.region_id, SUM(customers.region_id), SUM(customers.id) FROM customers WHERE ((customers.region_id != 9 OR customers.id = 20) AND (customers.region_id >= 3 AND customers.id > 5)) GROUP BY customers.id, customers.region_id ORDER BY customers.id DESC, customers.region_id ASC;" -378,6320,130,3,"SELECT markets.region, markets.id AS c5516 +378,1896,155,3,"SELECT markets.region, markets.id AS c5516 FROM markets GROUP BY markets.region, markets.id;" -379,1220,117,11,"SELECT employees.department_id, employees.id +379,1342,142,11,"SELECT employees.department_id, employees.id FROM employees;" -380,2494,2285,4329,"SELECT orders.customer_id +380,1692500,2838,4329,"SELECT orders.customer_id FROM orders WHERE (orders.id < 86 OR (orders.customer_id IN (21, 71) OR orders.customer_id NOT BETWEEN 371 AND 436)) ORDER BY orders.customer_id ASC;" -381,18500,308,34,"SELECT t0.age AS c6869, t0.id +381,10354,279,34,"SELECT t0.age AS c6869, t0.id FROM users AS t0 CROSS JOIN markets AS t1 WHERE t1.note != 'Old World';" -382,6056,163,3,"SELECT t0.id AS c3548, t0.note, SUM(t0.id) AS c5991, COUNT(*) +382,1564,211,3,"SELECT t0.id AS c3548, t0.note, SUM(t0.id) AS c5991, COUNT(*) FROM markets AS t0 WHERE ((t0.note IN ('Fast lane', 'Fast lane', 'Old World') OR t0.region = 'AMERICA') OR t0.id NOT IN (1, 2, 3)) GROUP BY t0.id, t0.note;" -383,178400,10350,8500,"SELECT customers.id, customers.region_id +383,14597700,11406,8500,"SELECT customers.id, customers.region_id FROM regions CROSS JOIN customers CROSS JOIN users WHERE regions.id < 2;" -384,433400,370,9,"SELECT markets.id, books.id, COUNT(markets.id), COUNT(markets.id) +384,42520,429,9,"SELECT markets.id, books.id, COUNT(markets.id), COUNT(markets.id) FROM regions CROSS JOIN books CROSS JOIN markets WHERE regions.id != 5 GROUP BY markets.id, books.id;" -385,1366,133,0,"SELECT t0.id AS c9611, t0.age AS c4657 +385,2432,189,0,"SELECT t0.id AS c9611, t0.age AS c4657 FROM users AS t0 WHERE ((t0.id >= 3 OR t0.id IS NULL) AND t0.age IS NULL);" -386,17220,2250,3,"SELECT markets.note, markets.region AS c394 +386,1553776,2370,3,"SELECT markets.note, markets.region AS c394 FROM markets LEFT JOIN orders ON markets.id = orders.id LEFT JOIN employees ON orders.id = employees.id;" -387,2922,304,0,"SELECT employees.id AS c1393 +387,1832,254,0,"SELECT employees.id AS c1393 FROM employees LEFT JOIN books ON employees.id = books.id WHERE ((employees.id IS NULL AND books.id IS NOT NULL) AND (books.price = 55 AND employees.department_id = 12));" -388,14600,10525,25000,"SELECT orders.customer_id AS c3285 +388,3650500,11472,25000,"SELECT orders.customer_id AS c3285 FROM orders CROSS JOIN departments;" -389,13135,2093,2,"SELECT employees.id AS c6990 +389,679882,1202,2,"SELECT employees.id AS c6990 FROM orders LEFT JOIN markets ON orders.id = markets.id JOIN employees ON orders.id = employees.id WHERE markets.id < 3;" -390,22600,1888,5000,"SELECT markets.note AS c1438, customers.region_id, markets.id AS c7869 +390,160080,1984,5000,"SELECT markets.note AS c1438, customers.region_id, markets.id AS c7869 FROM customers LEFT JOIN markets ON customers.id = markets.id CROSS JOIN regions;" -391,14760,2533,5,"SELECT orders.customer_id AS c6961, departments.id +391,2253325,2732,5,"SELECT orders.customer_id AS c6961, departments.id FROM departments LEFT JOIN orders ON departments.id = orders.id GROUP BY orders.customer_id, departments.id ORDER BY departments.id DESC;" -392,88055,535,11,"SELECT employees.department_id AS c8803, SUM(users.id), SUM(employees.id) +392,63126,581,11,"SELECT employees.department_id AS c8803, SUM(users.id), SUM(employees.id) FROM users CROSS JOIN employees LEFT JOIN markets ON employees.id = markets.id WHERE ((markets.id >= 18 OR users.id = 4) OR employees.id >= 2) GROUP BY employees.department_id ORDER BY employees.department_id ASC;" -393,13620,498913,384231,"SELECT orders.customer_id, customers.id +393,291050000,530380,384231,"SELECT orders.customer_id, customers.id FROM orders CROSS JOIN customers WHERE (orders.id IS NOT NULL AND (orders.customer_id <= 190 AND customers.region_id IN (1, 5, 8, 9)));" -394,1732,136,8,"SELECT t0.id +394,1832,168,8,"SELECT t0.id FROM employees AS t0 WHERE t0.department_id NOT IN (6, 11, 32, 94);" -395,14600,10322,15000,"SELECT orders.id, orders.customer_id, books.price AS c2061 +395,2390300,11567,15000,"SELECT orders.id, orders.customer_id, books.price AS c2061 FROM orders CROSS JOIN books;" -396,1610,148,0,"SELECT markets.region, markets.id, markets.note +396,422,160,0,"SELECT markets.region, markets.id, markets.note FROM markets WHERE markets.region IS NULL;" -397,6320,392,500,"SELECT t0.id, t0.region_id, SUM(t0.region_id) +397,316000,404,500,"SELECT t0.id, t0.region_id, SUM(t0.region_id) FROM customers AS t0 GROUP BY t0.id, t0.region_id;" -398,4626,240,10,"SELECT regions.id, customers.id, customers.region_id +398,70776,252,10,"SELECT regions.id, customers.id, customers.region_id FROM regions JOIN customers ON regions.id = customers.id WHERE (customers.id NOT BETWEEN 18 AND 150 OR regions.id IN (1, 9, 10, 63));" -399,4325,156,1,"SELECT departments.id AS c2818, COUNT(departments.id), COUNT(departments.id) +399,1808,162,1,"SELECT departments.id AS c2818, COUNT(departments.id), COUNT(departments.id) FROM departments WHERE departments.id <= 1 GROUP BY departments.id diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index 1a10aba..3c75ca6 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -113,4 +113,30 @@ SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir) { return SchemaCatalog{std::move(tables)}; } +std::unordered_map LoadTableSizesFromCsvDir( + const std::filesystem::path& dir) { + std::unordered_map sizes; + if (!std::filesystem::is_directory(dir)) { + return sizes; + } + + static const std::regex kBench{R"(_\d+$)"}; + for (const auto& entry : std::filesystem::directory_iterator{dir}) { + if (entry.path().extension() != ".csv") continue; + auto stem = entry.path().stem().string(); + if (std::regex_search(stem, kBench)) continue; + + std::ifstream in{entry.path()}; + std::string line; + if (!std::getline(in, line)) continue; // skip header + + std::int64_t rows = 0; + while (std::getline(in, line)) { + if (!line.empty()) ++rows; + } + sizes.emplace(std::move(stem), rows); + } + return sizes; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 42e445b..f13e12d 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -253,8 +253,9 @@ int main(int argc, char** argv) { PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} : PropertySet::Any(); - Optimizer optimizer(parsed.op, MakeMainRules(), {}, LoadSchemaFromCsvDir(args.data_dir), - std::move(required)); + Optimizer optimizer(parsed.op, MakeMainRules(), + CardinalityEstimates{LoadTableSizesFromCsvDir(args.data_dir)}, + LoadSchemaFromCsvDir(args.data_dir), std::move(required)); plan = optimizer.Optimize(); plan_cost = optimizer.GetBestCost(); } catch (const std::exception& e) { From 2b63f14682b1504b60598def3aebe41212a3240b Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 2 Jun 2026 12:18:25 +0300 Subject: [PATCH 078/120] Fix --- src/stewkk/sql/logic/optimizer/rule_test.cpp | 15 +++++++++++++++ .../transformation_rules/join_associativity.cpp | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index da720d4..269f88e 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -81,4 +81,19 @@ TEST_F(JoinAssociativityTest, ReturnsCorrectExpression) { EXPECT_EQ(outer.qual, Expression{Literal::kTrue}); } +TEST_F(JoinAssociativityTest, DoesNotApplyWhenInnerJoinIsOuter) { + auto outer_ab = memo.AddGroup(logical::Join{a, b, JoinType::kFull, Literal::kTrue})->group; + auto expr = memo.AddGroup( + logical::Join{outer_ab, c, JoinType::kInner, Literal::kTrue}); + + EXPECT_FALSE(rule.IsApplicable(expr)); +} + +TEST_F(JoinAssociativityTest, DoesNotApplyWhenOuterJoinIsOuter) { + auto expr = memo.AddGroup( + logical::Join{ab, c, JoinType::kFull, Literal::kTrue}); + + EXPECT_FALSE(rule.IsApplicable(expr)); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index 0e85871..c5a0e47 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -11,8 +11,10 @@ namespace stewkk::sql { bool JoinAssociativity::IsApplicable(utils::NotNull expr) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& outer = std::get(expr->root_operator); + if (outer.type != JoinType::kInner) return false; for (auto inner_expr : outer.lhs->GetLogicalExprs()) { - if (std::holds_alternative(inner_expr->root_operator)) return true; + const auto* inner = std::get_if(&inner_expr->root_operator); + if (inner != nullptr && inner->type == JoinType::kInner) return true; } return false; } @@ -22,6 +24,7 @@ LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, for (auto inner_expr : outer.lhs->GetLogicalExprs()) { if (!std::holds_alternative(inner_expr->root_operator)) continue; const auto& inner = std::get(inner_expr->root_operator); + if (outer.type != JoinType::kInner || inner.type != JoinType::kInner) continue; auto bc_tables = GroupTables(inner.rhs); auto c_tables = GroupTables(outer.rhs); From 299bcd155236ebc940c91ba67e3fd740485e3159 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 2 Jun 2026 12:23:21 +0300 Subject: [PATCH 079/120] Fix --- research/fuzz/diff_fuzz.py | 4 +++- research/fuzz/test_diff_fuzz.py | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 research/fuzz/test_diff_fuzz.py diff --git a/research/fuzz/diff_fuzz.py b/research/fuzz/diff_fuzz.py index f631f0b..1429b59 100644 --- a/research/fuzz/diff_fuzz.py +++ b/research/fuzz/diff_fuzz.py @@ -104,8 +104,10 @@ def _check_order(query: SelectQuery, our_rows: list[str]) -> str | None: cur = [(_typed(cells[i]), direction) for i, direction in keys if i < len(cells)] if prev is not None: for (va, da), (vb, _) in zip(prev, cur): - if va is None or vb is None or va == vb: + if va == vb: continue + if va is None or vb is None: + break less = va < vb if da == "desc": less = not less diff --git a/research/fuzz/test_diff_fuzz.py b/research/fuzz/test_diff_fuzz.py new file mode 100644 index 0000000..ca3af52 --- /dev/null +++ b/research/fuzz/test_diff_fuzz.py @@ -0,0 +1,24 @@ +from research.fuzz.diff_fuzz import _check_order +from research.query_generator import Attr, SelectQuery, TableScan, Target + + +def _query() -> SelectQuery: + users_id = Attr("users", "id") + regions_id = Attr("regions", "id") + return SelectQuery( + targets=[Target(users_id), Target(regions_id)], + from_=TableScan("users"), + order_by=[(users_id, "desc"), (regions_id, "desc")], + ) + + +def test_check_order_does_not_use_later_key_after_null_difference() -> None: + assert _check_order(_query(), ["10\t10", "1\t1", "NULL\t9"]) is None + + +def test_check_order_uses_later_key_when_earlier_null_keys_are_equal() -> None: + assert _check_order(_query(), ["NULL\t1", "NULL\t9"]) is not None + + +def test_check_order_rejects_non_null_ordering_violation() -> None: + assert _check_order(_query(), ["10\t10", "1\t1", "5\t5"]) is not None From 3d4a815e5a9ae130add15b26586bddee49ecdc01 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 2 Jun 2026 12:30:28 +0300 Subject: [PATCH 080/120] Fix --- src/stewkk/sql/logic/optimizer/optimizer.cpp | 12 ++---- .../sql/logic/optimizer/optimizer_test.cpp | 38 +++++++++++++++++++ 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index c76cf2f..e9fc4c1 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -32,12 +32,8 @@ PropertySet RequiredInputProps(utils::NotNull expr, [&](const physical::SeqScan&) { return PropertySet::Any(); }, [&](const physical::Filter&) { return required; }, [&](const physical::Projection&) { return required; }, - [&](const physical::NestedLoopJoin&) -> PropertySet { - return child_index == 0 ? required : PropertySet::Any(); - }, - [&](const physical::NestedLoopCrossJoin&) -> PropertySet { - return child_index == 0 ? required : PropertySet::Any(); - }, + [&](const physical::NestedLoopJoin&) { return PropertySet::Any(); }, + [&](const physical::NestedLoopCrossJoin&) { return PropertySet::Any(); }, [&](const physical::HashJoin&) -> PropertySet { return PropertySet::Any(); }, @@ -52,8 +48,8 @@ PropertySet DeriveOutputProps(utils::NotNull expr, [&](const physical::SeqScan&) { return PropertySet::Any(); }, [&](const physical::Filter&) { return child_delivered[0]; }, [&](const physical::Projection&) { return child_delivered[0]; }, - [&](const physical::NestedLoopJoin&) { return child_delivered[0]; }, - [&](const physical::NestedLoopCrossJoin&) { return child_delivered[0]; }, + [&](const physical::NestedLoopJoin&) { return PropertySet::Any(); }, + [&](const physical::NestedLoopCrossJoin&) { return PropertySet::Any(); }, [&](const physical::HashJoin&) { return PropertySet::Any(); }, [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 7d44fc9..e87784b 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -141,6 +141,44 @@ TEST(OptimizerTest, OrderBy) { ASSERT_THAT(Serialize(got), Eq("(Sort (keys users.id Asc) (SeqScan users))")); } +TEST(OptimizerTest, OrderBySortsAfterCrossJoin) { + std::stringstream s{ + "SELECT * FROM departments CROSS JOIN orders ORDER BY departments.id;"}; + auto parsed = GetAST(s).value(); + SchemaCatalog schema({ + {"departments", {Attribute{"departments", "id"}}}, + {"orders", {Attribute{"orders", "id"}}}, + }); + PropertySet required{SortProperty{*parsed.required_order}}; + Optimizer optimizer(parsed.op, MakeMainRules(), {}, std::move(schema), std::move(required)); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + Eq("(Sort (keys departments.id Asc)" + " (NestedLoopCrossJoin (SeqScan departments) (SeqScan orders)))")); +} + +TEST(OptimizerTest, OrderBySortsAfterNestedLoopJoin) { + std::stringstream s{ + "SELECT * FROM departments JOIN orders ON departments.id < orders.id " + "ORDER BY departments.id;"}; + auto parsed = GetAST(s).value(); + SchemaCatalog schema({ + {"departments", {Attribute{"departments", "id"}}}, + {"orders", {Attribute{"orders", "id"}}}, + }); + PropertySet required{SortProperty{*parsed.required_order}}; + Optimizer optimizer(parsed.op, MakeMainRules(), {}, std::move(schema), std::move(required)); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + HasSubstr("(Sort (keys departments.id Asc) (NestedLoopJoin Inner")); +} + TEST(OptimizerTest, AliasedJoinOptimizesWithAliasQualifiedAttrs) { std::stringstream s{"SELECT c.id FROM customers AS c JOIN orders AS o ON c.id = o.customer_id WHERE c.region_id = 1;"}; Operator op = GetAST(s).value().op; From 7688ae2e5f192b56cbe1c8a4967fbd468a2aa4e7 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 00:23:14 +0300 Subject: [PATCH 081/120] Add report draft --- .gitignore | 1 + report/Makefile | 2 +- report/vkr.tex | 2658 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2660 insertions(+), 1 deletion(-) create mode 100644 report/vkr.tex diff --git a/.gitignore b/.gitignore index b1ab3b0..fa471f8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ FlameGraph/ /benchmarks/datasets/ssb/raw/ /.plans/ /report/build-practice/ +/report/build-vkr/ diff --git a/report/Makefile b/report/Makefile index c99d8c0..7258f3b 100644 --- a/report/Makefile +++ b/report/Makefile @@ -3,7 +3,7 @@ all: build build: - @latexmk -f -pdf -output-directory=build-practice -shell-escape ./practice.tex + @latexmk -f -pdf -output-directory=build-vkr -shell-escape ./vkr.tex bib: @cp ./biblio.bib ./build diff --git a/report/vkr.tex b/report/vkr.tex new file mode 100644 index 0000000..c75cf16 --- /dev/null +++ b/report/vkr.tex @@ -0,0 +1,2658 @@ +% !TeX TXS-program:bibliography = txs:///biber +% chktex-file 1 +\documentclass[fontsize=14pt, russian]{scrartcl} +\input{header.tex} +\addbibresource{biblio.bib} + +\usepackage{svg} + +\begin{document} +\sloppy + +\def\figurename{Рисунок} + +\newcommand{\sqlkw}[1]{\texttt{#1}} +\newcommand{\SELECT}{\sqlkw{SELECT}} +\newcommand{\FROM}{\sqlkw{FROM}} +\newcommand{\WHERE}{\sqlkw{WHERE}} +\newcommand{\JOIN}{\sqlkw{JOIN}} +\newcommand{\GROUPBY}{\sqlkw{GROUP BY}} +\newcommand{\ORDERBY}{\sqlkw{ORDER BY}} + +\newcommand{\COUNT}{\sqlkw{COUNT}} +\newcommand{\SUM}{\sqlkw{SUM}} +\newcommand{\AVG}{\sqlkw{AVG}} +\newcommand{\MIN}{\sqlkw{MIN}} +\newcommand{\MAX}{\sqlkw{MAX}} + +\newcommand{\LogicalGet}{\sqlkw{LogicalGet}} +\newcommand{\SeqScan}{\sqlkw{SeqScan}} +\newcommand{\IndexScan}{\sqlkw{IndexScan}} +\newcommand{\NestedLoopJoin}{\sqlkw{NestedLoopJoin}} +\newcommand{\NestedLoopCrossJoin}{\sqlkw{NestedLoopCrossJoin}} +\newcommand{\HashJoin}{\sqlkw{HashJoin}} +\newcommand{\MergeJoin}{\sqlkw{MergeJoin}} +\newcommand{\Sort}{\sqlkw{Sort}} +\newcommand{\FilterOp}{\sqlkw{Filter}} +\newcommand{\ProjOp}{\sqlkw{Projection}} + +\newcommand{\SelOp}[1]{\sigma_{#1}} +\newcommand{\ProjectionOp}[1]{\pi_{#1}} + +\newcommand{\Sel}[2]{\sigma_{#1}(#2)} +\newcommand{\Projection}[2]{\pi_{#1}(#2)} +\newcommand{\Agg}[3]{\gamma_{#1;\,#2}(#3)} +\newcommand{\AggP}[3]{\gamma_{#1;\,#2}^{partial}(#3)} +\newcommand{\NJoin}[2]{#1 \bowtie #2} +\newcommand{\InnerJoin}[3]{#1 \bowtie_{#2} #3} +\newcommand{\CProd}[2]{#1 \times #2} +\newcommand{\LOJ}[3]{#1 \ltimes_{#2} #3} +\newcommand{\ROJ}[3]{#1 \rtimes_{#2} #3} +\newcommand{\FOJ}[3]{#1 \mathbin{\ltimes\!\!\!\rtimes}_{#2} #3} +\newcommand{\Tr}[1]{[\![ #1 ]\!]} +\newcommand{\Apply}[2]{#1 \mathbin{\mathcal{A}} #2} +\newcommand{\TransRule}[3]{% + \ensuremath{% + \begin{array}{c} + #1 \\[1pt] + \xRightarrow{\,#2\,} \\[1pt] + #3 + \end{array}% + }% +} + +\setlength{\tabcolsep}{3pt} +\setcounter{page}{2} +%---------------------------------------------------------------------------- +% ОТСЮДА --- СОБСТВЕННО ТЕКСТ +%---------------------------------------------------------------------------- +\section*{АННОТАЦИЯ} + +Работа посвящена разработке оптимизатора SQL-запросов для модельной реляционной +СУБД. Цель работы состоит в реализации оптимизатора на основе архитектуры +Cascades и создании основы для его дальнейшего улучшения за счет сопоставления +порождаемых физических планов с планами промышленных систем. + +В ходе исследования рассмотрены архитектуры оптимизаторов System~R, Volcano и +Cascades, формализовано поддерживаемое подмножество SQL и соответствующее ему +подмножество реляционной алгебры. При реализации использованы структура Memo, +правила логических преобразований и физических реализаций, стоимостная модель, +учет требуемых физических свойств, а также метод ветвей и границ для отсечения +неперспективных вариантов планов. Для оценки работы системы применены модульное +тестирование, генерация SQL-запросов, бенчмарки физических операторов и +дифференциальное сравнение планов с Microsoft SQL Server. + +В результате разработана модельная СУБД, работающая с CSV-файлами и +поддерживающая основные операторы реляционной алгебры, а также расширяемый +оптимизатор, способный строить физические планы с учетом стоимости и физических +свойств результата. Получены стоимостные формулы операторов, подтвержден прирост +производительности относительно наивного плана и подготовлены инструменты для +поиска случаев, в которых пространство поиска оптимизатора требует расширения. +Практическая значимость работы заключается в возможности использовать +реализованную систему как основу для экспериментального исследования методов +оптимизации запросов и итеративного развития набора правил оптимизатора. + +\newpage +\renewcommand\contentsname{\hfill{\normalfont{СОДЕРЖАНИЕ}}\hfill} +\tableofcontents +\newpage +\anonsection{ВВЕДЕНИЕ} + +В эпоху стремительного роста объемов данных системы управления базами данных +(СУБД) являются важной частью информационных систем. По данным аналитических +исследований, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено +как расширением круга решаемых задач, так и усложнением структуры обрабатываемых +данных и увеличением их объема. Реляционные базы данных, работающие с различными +диалектами языка SQL, продолжают занимать доминирующее положение в сегменте +обработки транзакций и аналитических запросов. + +Одним из определяющих факторов конкурентоспособности между различными +реализациями СУБД является качество оптимизатора запросов. Оптимизатор +представляет собой компонент, ответственный за преобразование декларативного +SQL-запроса в эффективный физический план исполнения. Именно от качества работы +оптимизатора в значительной степени зависит производительность всей системы: +выбор неоптимального плана исполнения может привести к увеличению времени +выполнения запроса в десятки раз относительно оптимального случая. + +Также оптимизатор запросов считается наиболее сложной составной частью любой +СУБД. Задача нахождения оптимального плана является NP-полной в общем случае, +что обуславливает необходимость применения эвристических методов и алгоритмов +ограниченного перебора. Современные коммерческие и открытые системы используют +различные архитектуры оптимизаторов, среди них наиболее популярны устоявшиеся и +проверенные временем архитектуры Cascades и Volcano. + +Архитектура Cascades используется в таких промышленных системах, как Microsoft +SQL Server, Apache Orca, а также в ряде исследовательских проектов, включая +Columbia и CockroachDB\@. Преимущества этой архитектуры заключаются в +расширяемости, модульности, а также понятном и эффективном алгоритме поиска, +допускающим параллельность исполнения. + +Целью данной работы является разработка и реализация оптимизатора подмножества +SQL-запросов на основе архитектуры Cascades, а также создание каркаса для его +итеративного улучшения путем сравнения с промышленными реализациями. + +Для достижения поставленной цели необходимо решить следующие задачи: +\begin{itemize} + \item изучить существующие архитектуры оптимизаторов запросов, включая + System~R, Volcano и Cascades; + \item формализовать подмножество SQL и соответствующее подмножество + реляционной алгебры; + \item реализовать структуру данных Memo и алгоритм поиска оптимального плана + на основе архитектуры Cascades; + \item реализовать набор правил трансформации и реализации для основных + операторов реляционной алгебры; + \item реализовать метод ветвей и границ для эффективного отсечения + неоптимальных планов; + \item реализовать метод дифференциального анализа физических планов для + автоматизированного поиска примеров неоптимальных планов. +\end{itemize} + +\section{Архитектура СУБД} + +Система управления базами данных представляет собой программный комплекс, +обеспечивающий хранение, извлечение и модификацию структурированных +данных. Несмотря на разнообразие существующих реализаций, архитектура +большинства реляционных СУБД включает ряд типовых компонентов, +взаимодействие которых обеспечивает выполнение пользовательских запросов. + +К основным компонентам СУБД относятся~\refImage{fig::dbms_arch}: + +\begin{itemize} + \item транспортный уровень, принимающий клиентские подключения и запросы; + \item синтаксический анализатор (парсер), выполняющий разбор текста +SQL-запроса и построение синтаксического дерева; + \item оптимизатор запросов, преобразующий логическое представление запроса в +эффективный физический план исполнения; + \item исполнитель, непосредственно реализующий физический план; + \item менеджер хранения данных, управляющий размещением данных на физических +носителях; + \item менеджер транзакций и менеджер блокировок, обеспечивающие гарантии +транзакций; + \item менеджер страниц памяти, отвечающий за кэширование страниц данных в +оперативной памяти. +\end{itemize} + +\begin{figure}[!htb]\centering +\usetikzlibrary{fit} +\begin{tikzpicture}[ + box/.style={rectangle, draw, minimum width=4.1cm, minimum height=1cm, + align=center, font=\small}, + wbox/.style={rectangle, draw, minimum width=9.1cm, minimum height=1cm, + align=center, font=\small}, + grp/.style={draw, dashed, inner sep=0.3cm}, + lbl/.style={font=\small}, +] + \node[box] (clust) at (-2.5, 0) {Кластерные\\соединения}; + \node[box] (client) at ( 2.5, 0) {Клиентские\\соединения}; + \node[grp, fit=(clust)(client)] (TG) {}; + \node[lbl, anchor=south west] at (TG.north west) {Транспорт}; + + \node[wbox] (parser) at (0, -2.8) {Синтаксический анализатор}; + \node[wbox, fill=gray!20] (optim) at (0, -4.05) {\textbf{Оптимизатор запросов}}; + \node[grp, fit=(parser)(optim)] (QPG) {}; + \node[lbl, anchor=south west] at (QPG.north west) {Обработчик запросов}; + + \node[box] (remote) at (-2.5, -6.85) {Удалённое\\исполнение}; + \node[box] (local) at ( 2.5, -6.85) {Локальное\\исполнение}; + \node[grp, fit=(remote)(local)] (EEG) {}; + \node[lbl, anchor=south west] at (EEG.north west) {Исполнитель}; + + \node[box] (txmgr) at (-2.5, -9.65) {Менеджер\\транзакций}; + \node[box] (lockmgr) at ( 2.5, -9.65) {Менеджер\\блокировок}; + \node[wbox] (access) at ( 0, -10.9) {Методы доступа}; + \node[box] (bufmgr) at (-2.5, -12.15) {Менеджер\\страниц}; + \node[box] (recmgr) at ( 2.5, -12.15) {Менеджер\\восстановления}; + \node[grp, fit=(txmgr)(lockmgr)(access)(bufmgr)(recmgr)] (SEG) {}; + \node[lbl, anchor=south west] at (SEG.north west) {Подсистема хранения}; + + \draw[<->, thick, >=stealth] + ([xshift=0.4cm]TG.south east) -- ([xshift=0.4cm]QPG.north east); + \draw[<->, thick, >=stealth] + ([xshift=0.4cm]QPG.south east) -- ([xshift=0.4cm]EEG.north east); + \draw[<->, thick, >=stealth] + ([xshift=0.4cm]EEG.south east) -- ([xshift=0.4cm]SEG.north east); + + \draw[thick] ([xshift=-0.5cm]clust.west) -- ([xshift=-0.5cm]remote.west); + \draw[->, thick, >=stealth] ([xshift=-0.5cm]clust.west) -- (clust.west); + \draw[->, thick, >=stealth] ([xshift=-0.5cm]remote.west) -- (remote.west); +\end{tikzpicture} + \caption{Архитектура реляционной системы управления базами данных}% + \label{fig::dbms_arch} +\end{figure} + +\subsection{Процесс исполнения SQL-запроса} + +Процесс исполнения SQL-запроса в реляционной СУБД проходит несколько +последовательных этапов. + +\begin{enumerate} + \item \emph{Синтаксический анализ} --- запроса проходит лексический и + синтаксический разбор. Результатом данного этапа является синтаксическое + дерево, узлы которого соответствуют конструкциям языка SQL: операторам + \SELECT, \FROM, \WHERE, \JOIN, \GROUPBY, \ORDERBY{} и другим. На этом же + этапе выполняется семантический анализ: проверяется существование + указанных таблиц и столбцов, разрешаются имена объектов и определяются + типы выражений. + + \item \emph{Оптимизация} --- синтаксическое дерево преобразуется в логический + план запроса, выраженный в терминах реляционной алгебры. Оптимизатор + исследует пространство эквивалентных логических планов и для каждого из + них рассматривает возможные физические реализации операторов. С помощью + модели стоимости оптимизатор оценивает затраты на выполнение каждого + плана и выбирает план с наименьшей оценочной стоимостью. Результатом + этого этапа является физический план исполнения. Под этим понимается + дерево физических операторов с указанием конкретных алгоритмов + соединения, методов доступа к данным и порядка операций. + + \item \emph{Исполнение физического плана} --- движок выполнения реализует + физический план, порождая потоки кортежей. Данные извлекаются из + хранилища, обрабатываются операторами плана и формируют результирующий + набор, возвращаемый пользователю. +\end{enumerate} + + +Сформулируем задачу, которую решает оптимизатор: по запросу, представленному в +форме дерева операторов реляционной алгебры, построить эквивалентный и +оптимальный, с точки зрения необходимых для исполнения ресурсов, план +исполнения. Итоговый план является деревом, вершины которого помечены +конкретными указаниями на алгоритмы, реализующими один или несколько операторов +реляционной алгебры. Эквивалентность означает, что итоговый физический план и +исходный запрос при исполнении на любом наборе данных порождают одинаковые +отношения с точностью до требуемых свойств, таких как сортировка. + +Запрос в форме реляционной алгебры также называют логическим планом, а операторы +реляционной алгебры --- логическими операторами. + +Для каждого логического оператора существует несколько возможных физических +реализаций. Например, оператор соединения \(\bowtie\) может быть реализован как +соединение вложенными циклами, хеш-соединение или соединение слиянием. +Аналогично, оператор доступа к данным может быть реализован как последовательное +сканирование таблицы или сканирование индекса. Еще одним важным примером +является эквивалентность сканирования индекса с предикатом и двух логических +операторов, примененных последовательно: доступ к данным и фильтрация по тому же +условию. + +\section{Реляционная алгебра} + +Реляционная алгебра представляет собой формальный язык для описания операций над +отношениями реляционной базы данных. В отличие от декларативного SQL, +реляционная алгебра является процедурной, так как она определяет конкретную +последовательность операций, необходимых для получения результата. + +Отношение определяется как конечное множество кортежей, каждый из которых +представляет собой упорядоченный набор значений атрибутов: + +\[ + R \subseteq \text{dom}(A_1) \times \text{dom}(A_2) \times \ldots \times \text{dom}(A_n). +\] + +\subsection{Основные операторы реляционной алгебры} + +Среди основных операторов реляционной алгебры выделяют следующие. + +\begin{enumerate} + \item \emph{Фильтрация} \(\Sel{p}{R}\) --- возвращает подмножество кортежей + отношения \(R\), удовлетворяющих предикату \(p\). Например, + \(\Sel{\text{age} > 30}{\text{Employee}}\) вернет все кортежи из + отношения Employee, для которых значение атрибута age больше 30. + \item \emph{Проекция} \(\Projection{A_1, \ldots, A_k}{R}\) --- формирует новое + отношение, содержащее только перечисленные атрибуты. + \item \emph{Декартово произведение} \(\CProd{R}{S}\) --- формирует отношение, + каждый кортеж которого является конкатенацией кортежа из \(R\) и кортежа + из \(S\), при этом результат содержит \(|\CProd{R}{S}| = |R| \cdot |S|\) + элементов. + \item \emph{Соединение} \(\InnerJoin{R}{p}{S}\) --- комбинирует кортежи двух + отношений на основании предиката \(p\). Внутреннее соединение + определяется как + \(\InnerJoin{R}{R.a = S.b}{S} = \Sel{R.a = S.b}{\CProd{R}{S}}\). + \item \emph{Объединение} \(R \cup S\) --- возвращает все кортежи, + принадлежащие хотя бы одному из двух совместимых по схеме отношений. + \item \emph{Разность} \(R - S\) --- выбирает кортежи, принадлежащие \(R\), но + отсутствующие в \(S\). + \item \emph{Агрегация} \(\Agg{G}{f}{R}\) --- разбивает отношение \(R\) на + непересекающиеся множества по набору атрибутов \(G\) и вычисляет + агрегированные значения функции \(f\) по каждому такому множеству. + Примеры функций: \COUNT, \SUM, \AVG, \MIN, \MAX. + \item \emph{Apply} \(\Apply{R}{S(t)}\) --- для каждого кортежа \(t\) + отношения \(R\) вычисляет параметризованное им отношение \(S(t)\) и + конкатенирует \(t\) с каждым кортежем результата: + \[ + \Apply{R}{S(t)} = \bigcup_{t \in R} \{t\} \times S(t). + \] + В отличие от соединения, правая сторона зависит от текущего кортежа + левой и используется для представления коррелированных подзапросов. +\end{enumerate} + +\subsection{Преобразование синтаксического дерева к реляционной алгебре}\label{sec:translation} + +Полученное после лексического и синтаксического разбора абстрактное +синтаксическое дерево преобразуется в выражение реляционной алгебры. Этот +процесс определяется структурной индукцией по дереву запроса. Введём оператор +конверсии \(\Tr{\cdot}\), сопоставляющий узлу синтаксического дерева его +алгебраическое представление. Тогда правила трансляции записываются в виде +правил вывода. Если для всех поддеревьев известны алгебраические представления, +то алгебраическое представление составной конструкции выражается через них. + +\begin{enumerate} + \item \emph{Базовый случай.} Для ссылки на таблицу \(T\) выполняется + \(\Tr{T} = T\). + \item \emph{Блок \texttt{SELECT-FROM-WHERE}.} Пусть \(\bar{T} = T_1, \ldots, + T_n\) --- ссылки на таблицы или вложенные подзапросы, \(p\) --- + предикат фильтрации, \(\bar{a} = a_1, \ldots, a_k\) --- список + выражений проекции. Тогда + \[ + \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} + {\Tr{\SELECT\ \bar{a}\ \FROM\ \bar{T}\ \WHERE\ p} + = \Projection{\bar{a}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. + \] + \item \emph{Группировка.} Пусть \(\bar{g} = g_1, \ldots, g_m\) --- список + группирующих атрибутов, \(\bar{f} = f_1, \ldots, f_l\) --- список + агрегирующих функций. Тогда + \[ + \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} + {\Tr{\SELECT\ \bar{g}, \bar{f}\ \FROM\ \bar{T}\ \WHERE\ p\ \GROUPBY\ \bar{g}} + = \Agg{\bar{g}}{\bar{f}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. + \] + \item \emph{Вложенные подзапросы.} Пусть \(Q\) --- внешний блок, а \(Q'(t)\) + --- коррелированный подзапрос, зависящий от кортежа \(t\) из + \(\Tr{Q}\). Тогда + \[ + \frac{\Tr{Q} = E \quad \Tr{Q'(t)} = E'(t)} + {\Tr{Q\ \text{с подзапросом}\ Q'} = \Apply{E}{E'(t)}}, + \] + где \(\mathcal{A}\) --- оператор Apply, который впоследствии может быть + удалён процедурой декорреляции. + \item \emph{Сортировка.} Конструкция \ORDERBY{} не выражается в виде + операторов реляционной алгебры. Вместо этого она задает требуемое + физическое свойство упорядоченности результата, учитываемое на этапе + выбора физического плана. +\end{enumerate} + +Приведём пример применения этих правил к SQL-запросу из +листинга~\ref{lst:correlated_subquery}. Трансляция этого запроса в реляционную +алгебру выполняется по следующим шагам: + +\begin{listing}[H] + \caption{Запрос с коррелированным подзапросом.} + \label{lst:correlated_subquery} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT e.name + FROM Employee e + WHERE e.salary > ( + SELECT AVG(salary) + FROM Employee + WHERE dept = e.dept + ) + \end{minted} +\end{listing} + +\begin{enumerate} + \item По базовому правилу оба вхождения таблицы остаются как есть + \(\Tr{\text{Employee}} = \text{Employee}\). + \item Внутренний подзапрос + \(Q'(e) = (\SELECT\ \AVG(\text{salary})\ \FROM\ \ldots \WHERE\ \ldots\)) + транслируется по правилу группировки, где \(\bar{g} = \varnothing\), + \(\bar{f} = \AVG(\text{salary})\): + \[ + \Tr{Q'(e)} = \Agg{\varnothing}{\AVG(\text{salary})}{\Sel{\text{dept} = e.\text{dept}}{\text{Employee}}}. + \] + Подзапрос коррелирован, так как зависит от атрибута \(e.\text{dept}\) + внешнего кортежа. + \item По правилу вложенных подзапросов результат \(\Tr{Q'(e)}\) присоединяется + к внешнему блоку оператором \(\mathcal{A}\), добавляя к каждому кортежу + столбец \(c\) с вычисленным значением средней зарплаты. + \item Оставшаяся часть внешнего запроса переводится по правилу + \texttt{SELECT-FROM-WHERE} с \(\bar{a} = (e.\text{name})\) и + \(p = (e.\text{salary} > c)\). +\end{enumerate} + +Итоговое алгебраическое выражение имеет вид +\[ + \Projection{e.\text{name}}{\Sel{e.\text{salary} > c}{\Apply{\text{Employee}\;e}{\Agg{\varnothing}{\text{AVG}(\text{salary}) \to c}{\Sel{\text{dept} = e.\text{dept}}{\text{Employee}}}}}}. +\] +Соответствующее дерево операторов изображено на +рисунке~\ref{fig:correlated_subquery_tree}. + +\begin{figure}[!htb]\centering +\begin{tikzpicture}[ + rel/.style={rectangle, draw, rounded corners=2pt, minimum width=2.2cm, + minimum height=0.8cm, align=center, font=\small}, + op/.style={rectangle, draw, fill=gray!12, minimum width=2.6cm, + minimum height=0.9cm, align=center, font=\small}, + level distance=1.15cm +] + \node[op] (proj) at (0, 6.5) {\(\Projection{e.\text{name}}{}\)}; + \node[op] (sel1) at (0, 5.2) {\(\Sel{e.\text{salary} > c}{}\)}; + \node[op] (apply) at (0, 3.9) {\(\mathcal{A}\)}; + \node[rel] (emp1) at (-2.8, 2.6) {\texttt{Employee} \(e\)}; + \node[op] (agg) at (2.8, 2.6) {\(\Agg{\varnothing}{\text{AVG}(\text{salary}) \to c}{}\)}; + \node[op] (sel2) at (2.8, 1.3) {\(\Sel{\text{dept} = e.\text{dept}}{}\)}; + \node[rel] (emp2) at (2.8, 0) {\texttt{Employee}}; + + \draw[->] (sel1) -- (proj); + \draw[->] (apply) -- (sel1); + \draw[->] (emp1) -- (apply); + \draw[->] (agg) -- (apply); + \draw[->] (sel2) -- (agg); + \draw[->] (emp2) -- (sel2); +\end{tikzpicture} +\caption{Дерево реляционной алгебры для запроса из +листинга~\ref{lst:correlated_subquery}.}% +\label{fig:correlated_subquery_tree} +\end{figure} + +Преобразование в форму реляционной алгебры необходимо по нескольким причинам. +Во-первых, это позволяет использовать формализованный набор правил +эквивалентности, который позволяют оптимизатору корректно преобразовывать план +запроса без изменения семантики. Во-вторых, алгебраическое представление +позволяет единообразно обрабатывать различные синтаксические формы SQL-запросов, +порождающие одинаковые логические планы. Наконец, разделение на логические и +физические операторы позволяет оптимизатору независимо исследовать порядок +операций и алгоритмы их реализации. + +\section{Поиск оптимального плана} + +Эквивалентность планов, исследуемых в процессе поиска оптимального, +обеспечивается применением алгебраических тождеств, например ассоциативности и +коммутативности соединений. Правила эквивалентности реляционной алгебры подробно +рассматриваются в разделе~\ref{sec:transformation_rules}. + +Оптимальность запроса принято оценивать с помощью функции стоимости +\(\mathrm{cost} \colon \mathcal{P}_L \to \mathbb{R}_{\ge 0}\)~\cite{Selinger1979}, +где \(\mathcal{P}_{L}\) --- множество эквивалентных физических планов. Это +отображение оценивает затраты на исполнение плана исходя из конкретных +реализаций алгоритмов, а также основываясь на эвристиках и статистике о данных в +отношениях. Другими словами, цель оптимизатора состоит в том, чтобы для входного +запроса найти план \(P^* \in \mathcal{P}_L\), минимизирующий \(\mathrm{cost}\): +\[ + P^* = \arg\min_{P \in \mathcal{P}_L} \mathrm{cost}(P). +\] + +Одной из подзадач в рамках построения оптимального плана является определение +порядка выполнения соединений. Благодаря правилам эквивалентости, таким как +ассоциативность и коммутативность соединения +(раздел~\ref{sec:transformation_rules}), одно и то же множество соединяемых +отношений допускает большое количество эквивалентных порядков вычисления. +Различные порядки имеют кардинально разные стоимости, ввиду особенностей +алгоритмов, реализующих соединение. Для \(n\) отношений количество таких +порядков выражается как +\(O(n! \cdot C_{n-1}) = O(\frac{(2n-2)!}{(n-1)!})\)~\cite{IntroToTheJoinOrderingProblem}, +где \(C_k\) --- \(k\)-е число Каталана. Таким образом, пространство поиска +растет экспоненциально с увеличением числа соединяемых таблиц. + +Поскольку полный перебор \(\mathcal{P}_L\) для достаточно больших \(n\) +невозможен, на практике речь идёт о поиске плана с приемлемо малой стоимостью в +определенном подмножестве пространства поиска. Именно эта задача и определяет +архитектуру современных оптимизаторов: расширяемое описание пространства поиска +через правила преобразования, эффективный алгоритм его исследования и +стоимостная модель, позволяющая отсекать заведомо неоптимальные ветви. + +Выбор плана исполнения запроса может оказывать огромное влияние на объем +требуемых вычислительных ресурсов. В качестве примера оценим количество чтений +страниц с диска для различных физических операторов. Пусть имеется три +отношения: таблица \texttt{customer} с \(|C| = 10^5\) строк, таблица +\texttt{orders} с \(|O| = 10^7\) строк и таблица \texttt{lineitem} с +\(|L| = 5 \cdot 10^7\) строк. Размер страницы --- \(8\) КБ. В одну страницу +помещается \(100\) строк \texttt{customer}, \(80\) строк \texttt{orders} и +\(50\) строк \texttt{lineitem}. Соответственно, общее число страниц составляет +\(P_C = 10^3\), \(P_O = 1{,}25 \cdot 10^5\), \(P_L = 10^6\). + +Для запроса из листинга~\ref{lst:join_query} +рассмотрим два альтернативных плана~\refImage{fig::join_plan_comparison}: +\begin{listing} + \caption{Соединение \texttt{customer}, \texttt{orders} и \texttt{lineitem}.} + \label{lst:join_query} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT * + FROM customer c + JOIN orders o ON c.c_custkey = o.o_custkey + JOIN lineitem l ON o.o_orderkey = l.l_orderkey + \end{minted} +\end{listing} + +\begin{figure}[!htb]\centering +\begin{tikzpicture}[ + rel/.style={rectangle, draw, rounded corners=2pt, minimum width=2.45cm, + minimum height=0.8cm, align=center, font=\small}, + op/.style={rectangle, draw, fill=gray!12, minimum width=4.25cm, + minimum height=1.2cm, align=center, font=\small} +] + \node[op] (p1j2) at (-4.4, 2.9) {Hash Join\\\scriptsize \(10^6\) чтений}; + \node[op] (p1j1) at (-6.5, 1.2) {Hash Join\\\scriptsize \(1{,}26 \cdot 10^5\) чтений}; + \node[rel] (p1l) at (-2.3, 1.2) {\texttt{lineitem}}; + \node[rel] (p1c) at (-7.8, -0.3) {\texttt{customer}}; + \node[rel] (p1o) at (-4.4, -0.3) {\texttt{orders}}; + + \draw[->] (p1j1) -- (p1j2); + \draw[->] (p1l) -- (p1j2); + \draw[->] (p1c) -- (p1j1); + \draw[->] (p1o) -- (p1j1); + \node[font=\small\bfseries] at (-4.4, 4.0) {План \(P_1\)}; + + \node[op] (p2j2) at (4.4, 2.9) {Nested Loop Join\\\scriptsize \(1{,}25 \cdot 10^{14}\) чтений}; + \node[op] (p2j1) at (2.3, 1.2) {Nested Loop Join\\\scriptsize \(1{,}25 \cdot 10^8\) чтений}; + \node[rel] (p2l) at (6.5, 1.2) {\texttt{lineitem}}; + \node[rel] (p2c) at (1.0, -0.3) {\texttt{customer}}; + \node[rel] (p2o) at (4.4, -0.3) {\texttt{orders}}; + + \draw[->] (p2j1) -- (p2j2); + \draw[->] (p2l) -- (p2j2); + \draw[->] (p2c) -- (p2j1); + \draw[->] (p2o) -- (p2j1); + \node[font=\small\bfseries] at (4.4, 4.0) {План \(P_2\)}; +\end{tikzpicture} +\caption{Сравнение планов для запроса из листинга~\ref{lst:join_query}.}% +\label{fig::join_plan_comparison} +\end{figure} + +\begin{itemize} + \item План \(P_1\): + \(\NJoin{(\NJoin{\texttt{customer}}{\texttt{orders}})}{\texttt{lineitem}}\) + с реализацией обоих соединений через Hash Join, для чего сначала + полностью считываются \(P_C + P_O = 1{,}26 \cdot 10^5\) страниц для + построения хеш-таблицы, после чего промежуточный результат размером + \(10^7\) строк соединяется с \texttt{lineitem}, требуя считывания ещё % + \(P_L = 10^6\) страниц. В сумме --- порядка \(1{,}126 \cdot 10^6\) + операций чтения с диска. + \item План \(P_2\): тот же запрос, но реализованный как соединение с помощью + вложенных циклов без использования индексов: для каждой строки + \texttt{customer} полностью читается таблица \texttt{orders}, для каждой + результирующей пары --- \texttt{lineitem}. Совокупный объём ввода-вывода + оценивается величиной + \(P_C \cdot P_O \cdot P_L \approx 1{,}25 \cdot 10^{14}\) операций + чтения, что на восемь порядков превышает \(P_1\). +\end{itemize} + +На еще одном примере запроса из листинга~\ref{lst:logical_transform_query} +рассмотрим влияние логических преобразований. Отношение \texttt{Emp} содержит +\(10{,}000\) кортежей, что эквивалентно \(1{,}000\) страницам. \texttt{Dept} +включает \(500\) записей и \(50\) страниц соответственно. Атрибут +\texttt{Emp.did} является внешним ключом к \texttt{Dept.did}, поэтому каждому +кортежу из \texttt{Dept} соответствует \(10{,}000 / 500 = 20\) из \texttt{Emp}. +Пусть на \texttt{Emp.did} и \texttt{Dept.dname} построены индексы, а в +промежуточную страницу помещается \(5\) кортежей. + +\begin{listing} + \caption{Пример запроса с проекцией, фильтрацией и соединением.} + \label{lst:logical_transform_query} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT DISTINCT ename + FROM Emp E JOIN Dept D ON E.did = D.did + WHERE D.dname = 'Toy' + \end{minted} +\end{listing} + +\begin{figure}[!htb]\centering +\begin{tikzpicture}[ + rel/.style={rectangle, draw, rounded corners=2pt, minimum width=2.0cm, + minimum height=0.8cm, align=center, font=\small}, + op/.style={rectangle, draw, fill=gray!12, minimum width=4.5cm, + minimum height=1.2cm, align=center, font=\small} +] + \node[font=\small\bfseries] at (-3.5, 8.8) {План \(P_1\)}; + \node[op] (p1proj) at (-3.5, 7.7) {\(\ProjectionOp{\texttt{ename}}\)}; + \node[op] (p1sig2) at (-3.5, 6.2) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)}; + \node[op] (p1sig1) at (-3.5, 4.7) {\(\SelOp{\texttt{Emp.did}=\texttt{Dept.did}}\)}; + \node[op] (p1cp) at (-3.5, 3.2) {\(\CProd{\texttt{Emp}}{\texttt{Dept}}\)\\\scriptsize \(50{,}050\) чтений}; + \node[rel] (p1emp) at (-5.2, 1.7) {\texttt{Emp}}; + \node[rel] (p1dept) at (-1.8, 1.7) {\texttt{Dept}}; + + \draw[->] (p1emp) -- (p1cp); + \draw[->] (p1dept) -- (p1cp); + \draw[->] (p1cp) -- (p1sig1); + \draw[->] (p1sig1) -- (p1sig2); + \draw[->] (p1sig2) -- (p1proj); + + \node[font=\small\bfseries] at (3.5, 8.8) {План \(P_2\)}; + \node[op] (p2proj) at (3.5, 7.7) {\(\ProjectionOp{\texttt{ename}}\)}; + \node[op] (p2join) at (3.5, 5.5) {Index NL Join\\\(\texttt{Emp.did}=\texttt{Dept.did}\)\\\scriptsize \(23\) чтения}; + \node[rel] (p2emp) at (1.6, 3.5) {\texttt{Emp}}; + \node[op] (p2sig) at (5.4, 3.5) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)\\\scriptsize \(3\) чтения}; + \node[rel] (p2dept) at (5.4, 1.8) {\texttt{Dept}}; + + \draw[->] (p2emp) -- (p2join); + \draw[->] (p2sig) -- (p2join); + \draw[->] (p2join) -- (p2proj); + \draw[->] (p2dept) -- (p2sig); +\end{tikzpicture} +\caption{Сравнение планов для запроса из + листинга~\ref{lst:logical_transform_query}.}% +\label{fig::logical_transform_plans} +\end{figure} + +Рассмотрим два плана~\refImage{fig::logical_transform_plans}: + +\begin{itemize} + \item План \(P_1\) соответствует прямому преобразованию запроса в реляционную + алгебру, выполненному по алгоритму из раздела~\ref{sec:translation}. + Если рассматривать стоимость исполнения такого плана в модели + итераторов, то каждый оператор запрашивает у дочернего следующий кортеж + через вызов \texttt{next()}, поэтому \(\sigma\) и~\(\pi\) работают в + режиме конвейера и не инициируют обращений к диску. Вся стоимость + ввода-вывода сосредоточена в операторе~\(\times\), реализованном через + вложенные циклы с \texttt{Dept} в роли внешней таблицы: \texttt{Dept} + читается один раз, а \texttt{Emp} перечитывается полностью для каждой + страницы~\texttt{Dept}: + \[ + 50 + 50 \times 1{,}000 = 50{,}050 \text{ чтений.} + \] + + \item План \(P_2\) является оптимизированным вариантом, где применено правило + проталкивания предиката и декартово произведение заменено на соединение + по предикату. Причем для доступа к таблице \texttt{Dept} применяется + сканирование по индексу, что дает всего \(3\) чтения с диска. Соединение + реализуется через вложенные циклы с использованием индекса, что в итоге дает: + \[ + 3 + (3 + 20) = 26 \text{ чтений.} + \] +\end{itemize} + +Оба приведенных примера наглядно демонстрируют, что оптимизатор отвечает за +принципиальную возможность исполнения сложных аналитических запросов за +приемлемое время. В первом случае разница между физическими планами составляет +восемь порядков: если \(P_1\) завершается за секунды, то наивный \(P_2\) +потребует десятков лет. Во втором случае даже единственное логическое +преобразование, в виде проталкивания предиката, снижает число чтений с диска в +\(1{,}900\) раз. Именно поэтому качественный оптимизатор является конкурентным +преимуществом и одной из самых важных частей СУБД. + +\section{Обзор архитектур оптимизаторов} + +Рассмотрим наиболее популярные архитектуры оптимизаторов. + +\subsection{System R} + +Оптимизатор System~R, разработанный в IBM Research в конце 1970-х +годов~\cite{Selinger1979}, стал первым стоимостным оптимизатором запросов и +заложил фундаментальные принципы, используемые во всех последующих системах. + +Архитектуру, аналогичную System~R, реализуют PostgreSQL и ранние версии IBM DB2. + +Оптимизатор, построенный по архитектуре System~R, разбивает запрос на блоки, +каждый из которых оптимизируется индивидуально. Блок запроса состоит из +конструкции \SELECT, конструкции \FROM, ссылающейся на одну или +несколько таблиц, и дерева предикатов \WHERE. Несколько блоков +появляется в случае запроса с вложенными подзапросами. + +Для каждого блока оптимизатор выполняет два основных действия. Во-первых, для +запросов к одному отношению выбирается наилучший метод доступа на основании +стоимостной модели. Во-вторых, для запросов с несколькими отношениями +определяется оптимальный порядок соединений методом восходящего динамического +программирования: сначала выбираются оптимальные планы доступа к отдельным +таблицам, затем перебираются двухтабличные соединения, трехтабличные и так +далее. + +Стоимость плана вычисляется по формуле +\(\text{COST} = \text{PageFetches} + w \cdot \text{RSICalls}\), учитывающей +ожидаемый объем операций ввода-вывода и потребление ресурсов процессора, где +\(w\) --- весовой коэффициент. + +Важным нововведением System~R стало понятие интересных порядков. Стоимость плана +зависит от непосредственных затрат на выполнение оператора и от +того, обеспечивает ли он упорядоченность результата, требуемую вышестоящими +операторами. Например, использование соединения слиянием вместо хеш-соединения +может быть выгодно, если результат должен быть отсортирован для последующей +операции \ORDERBY. + +К ограничениям архитектуры System~R относятся: + +\begin{itemize} + \item рассмотрение только левосторонних + деревьев соединений; + \item независимая оптимизация вложенных подзапросов; + \item невозможность гибкого расширения набора правил преобразования, что + необходимо при добавлении новых операторов языка SQL\@. +\end{itemize} + +Эти ограничения послужили мотивацией для создания расширяемых архитектур +оптимизаторов. + +\subsection{Volcano} + +Volcano --- расширяемый, основанный на правилах, стоимостной оптимизатор +запросов, разработанный Грефе в 1993 году~\cite{GraefeMcKenna1993}. Volcano ввел +ряд концепций, ставших основой для последующих расширяемых оптимизаторов: +физические свойства выражений, обеспечивающие правила, структуру данных Memo и +нисходящий алгоритм поиска на основе динамического программирования. + +Volcano разделяет поиск на две фазы: + +\begin{itemize} + \item \emph{фаза генерации} --- оптимизатор применяет правила трансформации + для порождения всех эквивалентных логических выражений. Применяется + рекурсивный нисходящий обход дерева: для каждого выражения сначала + исследуются дочерние выражения, затем применяются правила трансформации + к текущему выражению. Все порожденные выражения кэшируются в структуре + данных Memo для предотвращения дублирования. + + \item \emph{фаза стоимостного анализа} --- по завершении генерации всех + эквивалентных логических выражений оптимизатор ищет наилучший физический + план. Для каждого логического выражения применяются правила реализации, + порождающие физические операторы. Стоимость каждого физического плана + оценивается рекурсивно, и сохраняется наилучший найденный план. +\end{itemize} + +Поиск осуществляется нисходящим динамическим программированием с использованием +стратегии ветвей и границ: текущая верхняя граница стоимости передается при +рекурсивных вызовах и используется для отсечения заведомо неоптимальных планов. + +Основным недостаткам Volcano является полное раскрытие всех классов +эквивалентности на фазе генерации до начала стоимостного анализа, что приводит к +избыточным вычислениям. + +\section{Архитектура Cascades} + +Cascades --- это расширяемая архитектура оптимизатора запросов, являющаяся +логическим продолжением идеи Volcano~\cite{Graefe1995}. + +Основными объектами Cascades являются: + +\begin{itemize} + \item выражение --- дерево или фрагмент дерева, корнем которого является + логический либо физический оператор; + \item групповое выражение --- выражение, дочерние узлы которого являются + ссылками на группы Memo; + \item группа --- множество логически эквивалентных выражений, возвращающих + один и тот же результат; + \item правило трансформации --- правило, преобразующее логическое выражение в + логически эквивалентное выражение; + \item правило реализации --- правило, преобразующее логический оператор в + физический оператор; + \item физическое свойство --- требование относительно порядка, распределения, + разбиения или уникальности результата; + \item задача --- элементарная единица работы оптимизатора, например + исследование группы, применение правила или оптимизация выражения под + заданное свойство. +\end{itemize} + +Важным принципом данной архитектуры является то, что правила являются объектами +первого класса. Они определяются условиями применимости и собственно алгоритмом +применения. Предполагается, что система легко расширяется добавлением новых +правил, потому что все правила наследуются от общего интерфейса и имеют +одинаковую структуру. + +\subsection{Группы эквивалентности и выражения} + +Группа в Memo представляет собой множество выражений, которые эквивалентны с +точки зрения логического результата. Например, для отношений \(A\), \(B\) и +\(C\) выражения \( \NJoin{A}{(\NJoin{B}{C})} ; \qquad{} \NJoin{(\NJoin{A}{B})}{C} \) +при выполнении условий ассоциативности соединения принадлежат одной группе, +поскольку возвращают одинаковый результат. Причем физические реализации этих +выражений могут отличаться, а стоимость может зависеть от кардинальности +промежуточных результатов. + +Групповое выражение хранит оператор и ссылки на дочерние группы. Например, +выражение \(Join(G_1, G_2)\) не указывает конкретное дерево для левого и правого +входов, а ссылается на группы \(G_1\) и \(G_2\), каждая из которых может +содержать множество альтернатив. Поэтому одно групповое выражение кодирует +комбинацию многих конкретных деревьев, храня эту информацию компактно. + +\subsection{Структура Memo} + +Memo является основной структурой данных Cascades. Оно выполняет сразу +несколько функций: устраняет дублирующиеся выражения, хранит альтернативы, +фиксирует результаты оптимизации под разными физическими свойствами и обеспечивает +точку синхронизации для задач поиска. + +Группа в Memo включает следующую информацию: + +\begin{itemize} + \item уникальный идентификатор группы; + \item список логических выражений; + \item список физических выражений; + \item логические свойства группы; + \item статистику и оценку кардинальности; + \item состояние исследования группы. +\end{itemize} + +Выражение, в свою очередь, содержит сам оператор, массив идентификаторов +дочерних групп. Для физического выражения дополнительно могут храниться +предоставляемые физические свойства, например сортировка выходного потока, и +рассчитанная стоимость исполнения этого оператора. + +\begin{listing} + \caption{Пример запроса.} + \label{lst:query} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT * FROM A JOIN B ON p_1 JOIN C ON p_2; + \end{minted} +\end{listing} + +На рисунке~\ref{fig:memo-structure} показан пример Memo для запроса из +листинга~\ref{lst:query}. Например, группа \(G_5\) представляет результат +соединения трех отношений, в ней находятся два логически эквивалентных выражения +с разной ассоциацией соединений и четыре физические реализации для них. Входными +данными для операторов являются группы, поэтому общие подвыражения не +дублируются. + +\begin{figure}[H] + \centering + \begin{tikzpicture}[ + scale=0.85, transform shape, + group/.style={draw, rounded corners, text width=4.8cm, inner sep=5pt}, + arrow/.style={-{Stealth[length=2.5mm]}, thick}, + altarrow/.style={-{Stealth[length=2.5mm]}, thick, dashed} + ] + \node[group] (g5) at (6,0) { + \textbf{Группа G5}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G4,G3)\\ + Join(G1,G6)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G4,G3)\\ + NestedLoopJoin(G4,G3)\\ + HashJoin(G1,G6)\\ + NestedLoopJoin(G1,G6) + }; + \node[group] (g4) at (3,-6) { + \textbf{Группа G4}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G1,G2)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G1,G2)\\ + NestedLoopJoin(G1,G2) + }; + \node[group] (g6) at (9,-6) { + \textbf{Группа G6}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G2,G3)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G2,G3)\\ + NestedLoopJoin(G2,G3) + }; + \node[group] (g1) at (0,-12) { + \textbf{Группа G1}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(A)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(A) + }; + \node[group] (g2) at (6,-12) { + \textbf{Группа G2}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(B)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(B) + }; + \node[group] (g3) at (12,-12) { + \textbf{Группа G3}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(C)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(C) + }; + + \draw[arrow] (g5) -- (g4); + \draw[arrow, rounded corners=5pt] + (g5.east) -- (15.5,0) -- (15.5,-12) -- (g3.east); + \draw[altarrow] (g5) -- (g6); + \draw[altarrow, rounded corners=5pt] + (g5.west) -- (-3.5,0) -- (-3.5,-12) -- (g1.west); + \draw[arrow] (g4) -- (g1); + \draw[arrow] (g4) -- (g2); + \draw[arrow] (g6) -- (g2); + \draw[arrow] (g6) -- (g3); + \end{tikzpicture} + \caption{Пример структуры Memo.}% + \label{fig:memo-structure} +\end{figure} + +При добавлении нового выражения Memo выполняет проверку на дубликаты. Если +выражение уже существует в некоторой группе, оно не добавляется повторно. Если +алгоритм в процессе работы обнаруживает эквивалентность двух ранее различных +групп, то они могут быть объединены. При этом требуется обновление ссылок и +состояния правил. + +\subsection{Алгоритм поиска} + +Cascades организует оптимизацию как выполнение набора задач. Задача может +исследовать группу, исследовать выражение, применить правило, реализовать +логический оператор, оптимизировать дочернюю группу под заданное физическое +свойство или построить вспомогательный оператор для обеспечения свойства. Такой +подход позволяет гибко управлять порядком работы и откладывать дорогостоящие +действия до тех пор, пока они не станут необходимыми, а также разбивать поиск на +несколько этапов и распараллеливать исполнение независимых веток. При этом +однопоточные реализации хранят задачи в обычной очереди. + +На рисунке~\ref{fig:cascades-tasks} показана схема взаимодействия задач в +оптимизаторе, а на +листингах~\ref{alg:cascades-search}-\ref{alg:cascades-search-3} приведен +псевдокод алгоритма поиска в архитектуре Cascades~\cite{DingNarasayya2024}. + +Алгоритм реализуется в виде управляемого стеком поиска в пространстве +эквивалентных планов: сначала запускается оптимизация корневой группы, +\textsc{OptimizeGroup} в свою очередь исследует группу, а затем оптимизирует +каждое ее логическое выражение. Исследование выполняется через +\textsc{ExploreGroup} и \textsc{ExploreExpression}, которые сохраняют в Memo +новые логические выражения и группы с помощью правил преобразования. После этого +\textsc{OptimizeExpression} применяет правила реализации, превращая логические +выражения в физические. Для каждого физического варианта +\textsc{ApplyImplementation} проверяет локальную стоимость и передает план в +\textsc{OptimizeInputs}, где последовательно оптимизируются дочерние группы, +накапливается полная стоимость и обновляется информация о лучшем плане. Параметр +\texttt{limit} используется для отсечения заведомо дорогих вариантов. + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{cascades.pdf} +\caption{Схема взаимодействия задач в оптимизаторе Cascades}% +\label{fig:cascades-tasks} +\end{figure} + +\section{Правила трансформации и реализации}\label{sec:transformation_rules} + +Правило в оптимизаторе Cascades состоит из образца, условия применимости и +алгоритма применения. Образец описывает форму логического выражения, к которому +может быть применено правило. Условие применимости проверяет дополнительные +требования: отсутствие внешних ссылок, тип соединения, сохранение семантики +\texttt{NULL}, совместимость свойств и другие ограничения. + +Формально правило записывается в виде +\[ + r : \TransRule{pattern(e)}{condition(e)}{substitute(e)}, +\] +где \(e\) --- исходное выражение, \(pattern\) --- структурный образец, +\(condition\) --- предикат применимости, \(substitute\) --- выражение-замена. +Для правил трансформации результатом применения является новое логическое +выражение в группе, а для правил реализации физическое выражение в той же +группе. + +\subsection{Правила трансформации} + +Правила трансформации задают эквивалентные преобразования логических выражений и +тем самым определяют пространство планов, исследуемое оптимизатором. Наиболее +важные из них представлены в таблице~\ref{tbl:transformation_rules}. + +\begin{Definition} +Null-отбрасывающим называется предикат, который при замене всех атрибутов +соответствующей стороны на \texttt{NULL} принимает значение, отличное от +\texttt{TRUE}. +\end{Definition} + +\begin{Definition} +Конъюнкты \(\theta_1 \land \theta_2\) называются перераспределяемыми, если их +можно разбить на две группы \(\theta'_1\) и \(\theta'_2\) такие, что атрибуты +\(\theta'_2\) принадлежат \(attrs(S) \cup attrs(T)\), а конъюнкты с атрибутами +из \(attrs(R)\) остаются в \(\theta'_1\). +\end{Definition} + +\begin{Definition} +Функция агрегации называется разделяемой, если она представима композицией +частичного агрегата и финального комбинатора. Например, \SUM{} раскладывается в +сумму частичных сумм, \AVG{} --- в пару \SUM{} и \COUNT{}. +\end{Definition} + +\subsection{Правила реализации} + +Правила реализации переводят логические операторы в физические. Используемые в +настоящей работе правила собраны в таблице~\ref{tbl:implementation_rules}. + +\subsection{Обеспечивающие операторы} + +Физические свойства в Cascades обрабатываются через требуемые и предоставляемые +свойства. Если родительский оператор требует вход, отсортированный по атрибуту +\(a\), а выбранный дочерний план такого порядка не предоставляет, оптимизатор +может добавить обеспечивающий оператор \Sort. + +Обеспечивающие операторы не изменяют логический результат, но меняют физические +свойства и увеличивают стоимость. Поэтому они рассматриваются наравне с другими +физическими альтернативами. Например, план с хеш-соединением и последующей +сортировкой может конкурировать с планом на основе соединения слиянием, которое +сохраняет порядок результата. + +\section{Метод ветвей и границ} + +Метод ветвей и границ используется для сокращения пространства поиска и, как +следствие, неасимптотического улучшения скорости работы алгоритма. В контексте +Cascades ветвями являются альтернативные выражения и комбинации физических +реализаций дочерних групп, а границей является текущая лучшая стоимость плана +для заданной группы и требуемых физических свойств. Если нижняя оценка стоимости +частично построенного плана уже превышает текущую лучшую, дальнейшее +исследование по этой ветке не имеет смысла. + +Пусть для группы \(G\) и требуемого свойства \(P\) уже найден план стоимости +\(C^*\). Рассматривается физическое выражение \(e\), имеющее локальную стоимость +\(C_{local}(e)\) и дочерние группы \(G_1, \ldots, G_k\). Если даже минимально +возможная оценка дочерних групп приводит к неравенству + +\[ + C_{local}(e) + \sum_{i=1}^{k} LB(G_i, P_i) \geq C^*, +\] + +то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает нижнюю границу +стоимости оптимизации дочерней группы под требуемым свойством \(P_i\). Чем +точнее нижняя граница, тем эффективнее отсечение. + +На практике в качестве \(LB(G_i, P_i)\) принимается лучшая стоимость, найденная +для пары \((G_i, P_i)\) на текущий момент работы алгоритма. Поскольку +оптимизация группы является рекурсивным процессом, к моменту отсечения для +\((G_i, P_i)\) уже могут быть найдены некоторые планы, и их минимальная +стоимость служит нижней границей. Если же группа \(G_i\) под свойством \(P_i\) +ещё не рассматривалась, используется тривиальная граница \(LB = 0\), или, при +условии наличия минимальной стоимости на кортеж, можно принимать +\(LB(G_i, P_i) = |G_i| \cdot \mathit{minCostPerRow}\). + +Требуемые свойства дочерних групп \(P_i\) определяются оператором выражения \(e\) +совместно с требованием родителя \(P\). Каждый физический оператор описывает, какие +свойства он ожидает от своих входов: например, оператор сортирующего слияния требует +упорядоченности обоих входов по соответствующим ключам, тогда как хеш-соединение не +предъявляет требований к порядку. Таким образом, при спуске по дереву поиска каждый +оператор транслирует глобальное требование \(P\) в конкретные требования \(P_1, +\ldots, P_k\) к своим дочерним группам. + +\subsection{Оценка кардинальности} + +Оценка кардинальности является процессом предсказания числа кортежей, +возвращаемых оператором. + +Для выборки используется селективность предиката \(sel(p)\), после чего +кардинальность результата оценивается как + +\[ + |\Sel{p}{R}| = |R| \cdot sel(p). +\] + +Для соединения на основе предиката равенства независимых атрибутов часто +применяется эвристика: + +\[ + |\InnerJoin{R}{R.a = S.b}{S}| \approx + \frac{|R| \cdot |S|}{\max(NDV(R.a), NDV(S.b))}, +\] + +где \(NDV\) --- число различных значений атрибута. Такая оценка удобна, но может +быть грубой, если данные имеют корреляции, сильный перекос или сложные +зависимости между атрибутами. Экспериментальные исследования показывают, что +ошибки кардинальности часто являются одной из основных причин выбора неудачных +планов~\cite{leis2015good}. + +Для повышения качества оценок используются гистограммы, статистики по +многоколоночным ключам, сведения об уникальности, функциональные зависимости, +ограничения на схему, а в современных исследованиях также модели машинного +обучения. + +\subsection{Оценка стоимости} + +Функция стоимости сопоставляет физическому плану численную оценку затрат на его +исполнение. Классическим считается представление стоимости в виде взвешенной +суммы операций чтения и записи страниц на диск, а также числа обработанных +кортежей и операций над ними~\cite{GraefeMcKenna1993,Graefe1995}: + +\[ + Cost(p) = w_{io} \cdot IO(p) + w_{cpu} \cdot CPU(p). +\] + +Коэффициенты \(w_{io}\), \(w_{cpu}\) зависят от конкретной аппаратной +конфигурации. + +Стоимость является аддитивной и вычисляется рекурсивно по дереву физического +плана: + +\[ + Cost(node) = LocalCost(node) + \sum_{child \in children(node)} Cost(child). +\] + +Локальная стоимость оператора определяется его типом и кардинальностью его +входов. Пусть \(|R|\) --- кардинальность отношения \(R\), \(b\) --- блочный +фактор (число кортежей на странице), тогда \(P(R) = \lceil|R|/b\rceil\) --- +число страниц, занимаемых \(R\); \(c_\theta\) --- стоимость вычисления +предиката \(\theta\) на одной паре кортежей; \(\sigma_\theta\) --- +селективность предиката \(\theta\) (доля кортежей входа, удовлетворяющих +\(\theta\)); \(M\) --- число страниц буфера, доступных оператору. Формулы +локальной стоимости физических операторов приведены в +таблице~\ref{tbl:local-cost}. + +\begin{longtable}{|l|c|c|} + \caption{Локальная стоимость физических операторов.}\label{tbl:local-cost}\\ + \hline + Оператор & \(IO(op)\) & \(CPU(op)\) \\ + \hline + \endfirsthead + \hline + \endfoot + + \(\SeqScan(T)\) & \(P(T)\) & \(|T|\) \\ \hline + \(\IndexScan(T, \theta)\) & \(\lceil \sigma_\theta \cdot P(T) \rceil\) & \(\sigma_\theta \cdot |T|\) \\ \hline + \(\FilterOp(R, \theta)\) & \(0\) & \(|R| \cdot c_\theta\) \\ \hline + \(\ProjOp(R)\) & \(0\) & \(|R|\) \\ \hline + \(\NestedLoopJoin(L, R, \theta)\) & \(P(L) \cdot (1 + P(R))\) & \(|L| \cdot |R| \cdot c_\theta\) \\ \hline + \(\NestedLoopCrossJoin(L, R)\) & \(P(L) \cdot (1 + P(R))\) & \(|L| \cdot |R|\) \\ \hline + \(\HashJoin(L, R, \theta)\) & \(P(L) + P(R)\) & \(|L| + |R| \cdot (1 + c_\theta)\) \\ \hline + \(\MergeJoin(L, R)\) & \(P(L) + P(R)\) & \(|L| + |R|\) \\ \hline + \(\Sort(R)\) & \(2 P(R) \cdot \lceil \log_M P(R) \rceil\) & \(|R| \cdot \log_2 |R|\) +\end{longtable} + +Для операторов \(\FilterOp\) и \(\ProjOp\) стоимость ввода-вывода равна \(0\), потому что это конвейерные операторы, которые не используют диск. + +\section{Дифференциальный анализ физических планов} + +Множество правил трансформации и реализации, используемых в +оптимизаторах запросов, изучено довольно хорошо и описано в +академической литературе. Вместе с тем условия активации правил +существенно различаются от системы к системе. Многие реализации +оптимизаторов упускают возможности для оптимизации из-за слишком +строгих условий активации правил или отсутствия определенных правил +в их наборе. + +Данная проблема особенно актуальна при разработке нового оптимизатора: после +реализации базового набора правил возникает вопрос о полноте и корректности +этого набора по сравнению с устоявшимися и проверенными временем промышленными +системами. Такие системы аккумулировали обратную связь от пользователей и +уточняли условия активации своих правил в течение многих лет. Не имея такого +преимущества сложно добиться отличного качества построенных планов. + +\subsection{Предлагаемый метод} + +Для поиска несоответствий между поведением реализуемой системы и внешней +эталонной системы предлагается применить дифференциальный анализ планов. + +Первым шагом нужно сформировать несколько наборов данных, состоящих из схем +таблиц и их наполнения. Разные данные позволяют всесторонне исследовать правила +активации, потому что они зависят от кардинальности отношений, наличия индексов +и т.п. + +Далее, по заданным схемам генерируются случайные SQL-запросы различной структуры +и сложности. Такой подход исключает тривиальные планы и приближает условия +работы оптимизатора к реальным нагрузкам при дальнейшем построении планов +запросов. + +Следующим шагом сгенерированные запросы транспилируются в диалекты SQL целевых +промышленных СУБД. В качестве эталонных систем рассматриваются PostgreSQL, +DuckDB, Umbra и Microsoft SQL Server. Эти системы являются зрелыми, имеют +документированный формат вывода планов и представляют разные архитектурные +подходы. Затем для получения физических планов исполняется аналог +\texttt{EXPLAIN ANALYZE}. + +Полученные физические планы промышленных СУБД конвертируются в формат +сериализованного плана разрабатываемого оптимизатора. Современные СУБД +предоставляют вывод планов в виде XML или JSON, что позволяет легко реализовать +их разбор. Для конвертации используется отображение между физическими +операторами разрабатываемой системы и операторами эталонной СУБД. Например, +\texttt{Hash Match} в SQL Server отображается в \HashJoin{} в разрабатываемой +системе, \texttt{Clustered Index Scan} --- в \IndexScan{} и так далее. +Восстановление предикатов, ключей соединения и выражений проекции выполняется +путем разбора соответствующих полей плана, причем не нужно поддерживать весь +синтаксис предикатов, так как генератор запросов и схемы данных ограничивают +множество допустимых выражений в планах. + +Корректность конвертации выполняется по построению, но дополнительно проверяется +путем исполнения исходного плана на внешней системе и сконвертированного плана +на разрабатываемой системе с последующим сравнением полученных результатов при +фиксированной схеме и различных вариантах сгенерированных для нее данных. + +Конвертированные планы сравниваются с планами, порождаемыми разрабатываемым +оптимизатором на исходных запросах, с целью определить, мог ли существующий +набор правил разрабатываемого оптимизатора породить план, эквивалентный плану +промышленной системы. Стоимостные модели и реализации операторов в разных СУБД +различаются, поэтому план, оптимальный для эталонной системы, не обязательно +будет оптимальным для разрабатываемой. По этоу причине сравнение направлено на +исследование полноты пространства поиска разрабатываемого оптимизатора, и не +предполагает сравнение эффективности планов. + +Для корректности структурного сравнения необходимо полное исследование +пространства эквивалентных планов. Определение требуемых изменений лежит на +разработчике системы, поэтому найденный запрос и примеры планов сохраняются для +последующего анализа. В дальнейшем, полученные после конвертации ``эталонные'' +планы можно использовать как тесты для оптимизатора, которые будут успешно +выполняться после уточнения соответвующих правил активации. + +\subsection{Поиск ближайшего плана} + +В случае невозможности построить ``эталонный'' план разрабатываемым +оптимизатором, предлагается искать ближайший план, т.е. план из пространства +поиска разрабатываемого оптимизатора, максимально близкий к плану промышленной +системы. При этом метрика расстояния между планами может быть определена как +расстояние редактирования деревьев. + +Анализ ближайшего плана может помочь упростить выявление трансформаций, которые +разрабатываемый план по какой-то причине не применил. + +\subsection{Область применения} + +Предлагаемый метод дифференциального анализа применим для сравнения как с +проприетарными системами, так и с СУБД с открытым исходным кодом, позволяя +уточнять условия применения правил. + +Систематическое применение этого подхода позволяет построить итеративный процесс +совершенствования оптимизатора: + +\begin{itemize} + \item генерация запросов; + \item запуск и сбор планов; + \item приведение к единому виду, сравнение и выявление расхождений; + \item добавление или корректировка правил; + \item повторное сравнение. +\end{itemize} + +Таким образом, дифференциальный анализ обеспечивает управляемое и измеримое +улучшение качества оптимизатора и позволяет новым или открытым оптимизаторам +быстрее достигать качества устоявшихся промышленных оптимизаторов. + +% {\color{red} TODO: описать как нормализовать и т.п.} + +\section{Реализация} + +Программа написана на языке C++ с использованием стандарта C++23. Этот язык +популярен в сфере разработки СУБД, являясь достаточно низкоуровневым и +производительным, но в то же время удобным для реализации больших систем. Для +сборки применяется CMake и его встроенные средства для зависимостей в виде +библиотек на C++. Окружение для разработки описывается декларативно и +воспроизводимо при помощи функционального доменно-специфичного языка \verb|nix| +для соответствующего пакетного менеджера. + +Для синтаксического анализа выбран генератор парсеров ANTLR4, ввиду простоты и +удобства в использовании. Асинхронное взаимодействие физических операторов +построено на Boost.Asio, по причине совместимости со встроенными в язык +корутинами и понятной модели асинхронности. Для тестирования корректности и +производительности используется Google Tests, Google Benchmarks и pytest. + +\subsection{Модуль синтаксического анализа} + +Для реализации парсера был выбран ANTLR4, ввиду его удобства и возможности +генерировать лексические и синтаксические анализаторы под практически любой язык +программирования. + +Грамматика PostgreSQL была взята из официального репозитория проекта +ANTLR4~\cite{Antlr4PostgreSQL}. Она была портирована автоматически из грамматики +для Bison~\cite{PostgresBisonGrammar} из официального репозитория Postgres, +поэтому является наиболее полной из существующих. + +ANTLR4 генерирует несколько файлов на C++, в том числе лексический и +синтаксический анализаторы, а также класс \verb|Visitor| для обхода дерева +разбора. Для интересующих конструкций SQL переопределены методы посещения узлов +грамматики. Например, предложение \WHERE{} преобразуется в логический оператор +фильтрации, список выражений после \SELECT{} преобразуется в проекцию, а список +таблиц после \FROM{} --- в дерево соединений. + +Результатом работы парсера является структура \texttt{ParsedQuery}. Она содержит +логический оператор верхнего уровня и необязательное требование к порядку строк +для \ORDERBY{}. Логические операторы и скалярные выражения представлены +алгебраическими типами на основе \texttt{std::variant}. В них входят операторы +таблицы, фильтрации, проекции, агрегации, соединения, ссылки на атрибуты, +константы и арифметические выражения~\refAlgo{lst:logical}. + +\begin{listing}[H] + \caption{Объявление типов для операторов реляционной алегебры и выражений.} + \label{lst:logical} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} +using Operator = std::variant; + +using Expression = std::variant; + +struct Projection { + std::vector expressions; + std::shared_ptr source; + std::vector> aliases; + + bool operator==(const Projection& other) const; +}; + \end{minted} +\end{listing} + +Выражения хранятся в алгебраическом типе \verb|Expression|, реализованном +аналогично \verb|Operator|. + +Функция \verb|GetAST| внутри строит абстрактное синтаксическое дерево и обходит +его с помощью \verb|Visitor|, который и генерирует представление запроса в виде +дерева из \verb|Operator|. + +Дополнительно реализована визуализация дерева из операторов реляционной алгебры +в формате Graphviz с помощью функции \verb|GetDotRepresentation|. + +\subsection{Модуль оптимизации запросов} + +Модуль оптимизации запросов отвечает за преобразование логического дерева +операторов в физический план исполнения с минимальной оцененной стоимостью. +Пространство исследуемых эквивалентных планов эффективно хранится в структуре +Memo и расширяется с помощью добавления новых правил. Поиск выполняется сверху +вниз с использованием стоимостной модели, физических свойств и метода ветвей и +границ. + +\subsubsection{Структура Memo} + +Структура Memo хранит группы логически эквивалентных выражений. Выражения из +одной группы возвращают одинаковый результат. Например, $A \Join B$ и +$B \Join A$ являются эквивалентными. + +Дочерние узлы выражения ссылаются не на конкретные операторы, а на группы. +Благодаря этому одно выражение компактно представляет множество деревьев. +Объявления классов \verb|Memo| и \verb|Group| приведены в +листинге~\ref{lst:memo}. + +\begin{listing}[H] + \caption{Основные элементы структуры Memo.} + \label{lst:memo} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +class Memo { +public: + utils::NotNull AddGroup(LogicalOperator op); + utils::NotNull AddLogicalExprToGroup( + utils::NotNull group, LogicalOperator op); + utils::NotNull Populate(const Operator& op); + +private: + std::deque groups_; + std::unordered_map expr_index_; +}; + +class Group { +public: + utils::NotNull AddLogicalExpr(LogicalOperator op); + utils::NotNull AddPhysicalExpr( + PhysicalOperator op, bool is_enforcer = false); + + LogicalExprs GetLogicalExprs(); + PhysicalExprs GetPhysicalExprs(); +}; + \end{minted} +\end{listing} + +Метод \verb|Memo::Populate| рекурсивно обходит исходное логическое дерево и +создает первоначальные группы. Для предотвращения повторного добавления +выражений используется отображение \verb|expr_index_|. Ключ строится из типа +оператора, его параметров и идентификаторов дочерних групп. Таким образом, +одинаковые выражения добавляются в Memo только один раз. + +Каждая группа содержит логические и физические выражения. Логические выражения +описывают семантику запроса, а физические выражения определяют конкретный способ +исполнения. Например, логическому соединению могут соответствовать физические +операторы соединения вложенными циклами и хеш-соединения. + +\subsubsection{Правила оптимизации} + +Расширение пространства поиска выполняется с помощью правил. Реализовано два +типа правил: трансформационные и реализационные. Их интерфейсы приведены в +листинге~\ref{lst:optimizer-rules}. + +\begin{listing}[H] + \caption{Интерфейсы правил оптимизации.} + \label{lst:optimizer-rules} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +class TransformationRule { +public: + virtual bool IsApplicable(utils::NotNull expr) = 0; + utils::NotNull Apply( + utils::NotNull expr, Memo& memo); + +private: + virtual LogicalOperator ApplyImpl( + utils::NotNull expr, Memo& memo) = 0; +}; + +class ImplementationRule { +public: + virtual bool IsApplicable(utils::NotNull expr) = 0; + virtual utils::NotNull Apply( + utils::NotNull expr, Memo& memo) = 0; +}; + \end{minted} +\end{listing} + +Правило трансформации создает новое логическое выражение и добавляет его в +ту же группу Memo, что и исходное выражение. Следовательно, правило должно +сохранять семантику запроса. Правило реализации создает физическое выражение, +которое может быть передано модулю исполнения. + +Реализованы следующие трансформационные правила: +\begin{itemize} + \item коммутативность соединения; + \item ассоциативность соединения; + \item разбиение конъюнкции на последовательность фильтров; + \item объединение последовательных фильтров; + \item проталкивание фильтра через проекцию; + \item проталкивание фильтра во входы соединения; + \item преобразование выражения \verb|IN| в цепочку сравнений. +\end{itemize} + +Например, правило коммутативности преобразует выражение $A \Join B$ в +$B \Join A$. Для левого и правого внешнего соединения одновременно изменяется +тип соединения. Реализация правила приведена в +листинге~\ref{lst:join-commutativity}. + +\begin{listing}[H] + \caption{Правило коммутативности соединения.} + \label{lst:join-commutativity} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, + linenos=false, xleftmargin=1.5em]{cpp} +LogicalOperator JoinCommutativity::ApplyImpl( + utils::NotNull expr, Memo&) { + auto join = std::get(expr->root_operator); + std::swap(join.lhs, join.rhs); + + if (join.type == JoinType::kLeft) { + join.type = JoinType::kRight; + } else if (join.type == JoinType::kRight) { + join.type = JoinType::kLeft; + } + return join; +} + \end{minted} +\end{listing} + +Правило проталкивания фильтра через соединение разбивает предикат на конъюнкты. +Каждый конъюнкт анализируется отдельно. Если он ссылается только на атрибуты +одного входа соединения, фильтр переносится ближе к соответствующей таблице. Это +позволяет уменьшить число кортежей до выполнения соединения. Для внешних +соединений учитывается направление: фильтр нельзя переносить в такой вход, для +которого это изменит семантику результата. + +Реализационные правила создают: +\begin{itemize} + \item последовательное сканирование таблицы; + \item фильтрацию; + \item проекцию; + \item агрегацию; + \item декартово произведение вложенными циклами; + \item соединение вложенными циклами; + \item хеш-соединение. +\end{itemize} + +Хеш-соединение применяется только для внутреннего эквисоединения двух атрибутов. +Для остальных условий доступно соединение вложенными циклами. Проверка +применимости правила приведена в листинге~\ref{lst:implement-hash-join}. + +\begin{listing}[H] + \caption{Проверка применимости хеш-соединения.} + \label{lst:implement-hash-join} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +bool ImplementHashJoin::IsApplicable( + utils::NotNull expr) { + if (!std::holds_alternative( + expr->root_operator)) { + return false; + } + + const auto& join = + std::get(expr->root_operator); + + if (join.type != JoinType::kInner) return false; + + const auto* bin = + std::get_if(&join.qual); + + return bin && bin->binop == BinaryOp::kEq + && std::holds_alternative(*bin->lhs) + && std::holds_alternative(*bin->rhs); +} + \end{minted} +\end{listing} + +Для каждого выражения хранится информация о ранее примененных правилах. Это +предотвращает повторное выполнение одного правила над одним выражением и +ограничивает образование циклов при заполнении Memo. + +\subsubsection{Оценка кардинальности} + +Стоимость физического плана зависит от количества обрабатываемых кортежей. +Для получения этой величины используется класс +\verb|CardinalityEstimates| из файла +\verb|src/stewkk/sql/logic/optimizer/cardinality.cpp|. + +Оценка кардинальности вычисляется для группы Memo и кэшируется. В текущей +версии используются следующие эвристики: +\begin{itemize} + \item для таблицы используется известное количество строк или значение по + умолчанию; + \item фильтрация и проекция сохраняют оценку кардинальности входа; + \item скалярная агрегация возвращает одну строку; + \item декартово произведение имеет кардинальность $N_l N_r$; + \item для соединения используется произведение кардинальностей входов и + коэффициента селективности. +\end{itemize} + +Для эквисоединения двух атрибутов коэффициент селективности оценивается как +\[ + S = \frac{1}{\max(1, N_l, N_r)}. +\] +Для конъюнкции условий коэффициенты селективности перемножаются. + +\subsubsection{Стоимостная модель} + +Стоимость плана вычисляется как сумма локальных стоимостей физических +операторов. Коэффициенты были подобраны с помощью бенчмарков отдельных +операторов, описанных в разделе тестирования. + +Для входных кардинальностей $N$, $N_l$ и $N_r$ используются следующие формулы: +\[ +\begin{aligned} + C_{\text{scan}} &= 100N, \\ + C_{\text{filter}} &= 100N, \\ + C_{\text{projection}} &= 22N, \\ + C_{\text{aggregation}} &= 510N, \\ + C_{\text{nested-loop join}} &= 70N_lN_r, \\ + C_{\text{cross join}} &= 104N_lN_r, \\ + C_{\text{hash join}} &= 69(N_l + N_r), \\ + C_{\text{sort}} &\approx 11N\log_2N. +\end{aligned} +\] + +Фрагмент реализации стоимостной модели приведен в +листинге~\ref{lst:optimizer-cost}. + +\begin{listing}[H] + \caption{Вычисление локальной стоимости физических операторов.} + \label{lst:optimizer-cost} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +int64_t CalcCost(PhysicalExpr* expr, + CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const physical::SeqScan&) { + return 100 * cardinality.GetCardinality(expr->group); + }, + [&](const physical::NestedLoopJoin& j) { + return 70 * cardinality.GetCardinality(j.lhs) + * cardinality.GetCardinality(j.rhs); + }, + [&](const physical::HashJoin& j) { + return 69 * (cardinality.GetCardinality(j.lhs) + + cardinality.GetCardinality(j.rhs)); + }, + [&](const physical::Sort& s) { + auto n = cardinality.GetCardinality(s.input); + return 11 * n * std::bit_width( + static_cast(n)); + }, + ... + }, expr->root_operator); +} + \end{minted} +\end{listing} + +\subsubsection{Алгоритм поиска} + +Класс \verb|Optimizer| реализует алгоритм поиска. При создании объекта исходное +логическое дерево помещается в Memo. Поиск запускается для корневой группы и +требуемых физических свойств результата. + +Алгоритм использует стек отложенных задач. Это позволяет разделить процесс на +небольшие операции: исследование группы, применение правила, оптимизацию +физического выражения и обработку его дочерних узлов. + +Основной метод оптимизации группы приведен в +листинге~\ref{lst:optimize-group}. + +\begin{listing}[H] + \caption{Оптимизация группы Memo.} + \label{lst:optimize-group} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +void Optimizer::OptimizeGroup(Group* group, + PropertySet required, + Limit limit) { + WinnerKey key{group, required}; + if (winner_.contains(key)) return; + + if (IsExplored(group) + && limit + && LowerBoundCost(group) >= *limit) { + return; + } + + if (!IsExplored(group)) { + tasks_.emplace([=] { + OptimizeGroup(group, required, limit); + }); + tasks_.emplace([=] { + ExploreGroup(group, limit); + }); + return; + } + + for (auto expr : group->GetPhysicalExprs()) { + if (expr->is_enforcer) continue; + auto cost = local_cost_[expr.get()]; + if (!limit || cost < *limit) { + tasks_.emplace([=] { + OptimizeInputs(expr, required, {}, cost, limit); + }); + } + } + + AddEnforcers(group, required, limit); +} + \end{minted} +\end{listing} + +Если группа еще не исследована, в стек добавляются две задачи. Первая расширяет +группу с помощью правил, вторая повторно запускает ее оптимизацию после +расширения. Если группа уже исследована, для каждого физического выражения +вычисляется полная стоимость с учетом дочерних групп. + +Для каждой пары из группы и требуемого набора свойств хранится лучший найденный +вариант. Ключ такого варианта представлен структурой \verb|WinnerKey|: + +\begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +struct WinnerKey { + Group* group; + PropertySet required; +}; +\end{minted} + +Хранение победителя отдельно для каждого набора свойств необходимо, поскольку +самый дешевый неотсортированный план может отличаться от самого дешевого плана, +удовлетворяющего требованию \verb|ORDER BY|. + +Дочерние группы физического выражения оптимизируются последовательно. После +получения победителя дочерней группы его стоимость прибавляется к накопленной +стоимости. Если все дочерние группы обработаны, проверяются выходные свойства +плана. Затем найденный вариант при необходимости становится новым победителем. + +\subsubsection{Метод ветвей и границ} + +Полный перебор пространства планов быстро становится непрактичным при +увеличении количества соединяемых таблиц. Для сокращения перебора используется +метод ветвей и границ. + +Для каждой группы вычисляется нижняя граница стоимости. Она равна минимальной +сумме нижней оценки локального оператора и нижних оценок дочерних групп. +Например, для логического соединения выбирается минимум между стоимостью +хеш-соединения и стоимостью соединения вложенными циклами: +\[ + LB_{\text{join}} = + \min(69(N_l + N_r), 70N_lN_r). +\] + +Если нижняя граница не меньше стоимости уже известного решения, исследование +ветви прекращается. Фрагмент реализации приведен в +листинге~\ref{lst:lower-bound}. + +\begin{listing}[H] + \caption{Вычисление нижней границы стоимости группы.} + \label{lst:lower-bound} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +int64_t Optimizer::LowerBoundCost(Group* group) { + if (auto it = lower_bounds_.find(group); + it != lower_bounds_.end()) { + return it->second; + } + + int64_t best = std::numeric_limits::max(); + + for (auto expr : group->GetLogicalExprs()) { + int64_t cost = LowerBoundLocalCost(expr, cardinality_); + + for (auto child : GetChildren(expr)) { + cost += LowerBoundCost(child); + } + best = std::min(best, cost); + } + + lower_bounds_[group] = best; + return best; +} + \end{minted} +\end{listing} + +Метод \verb|OptimizeInputs| также уменьшает границу для очередного дочернего +узла. Из общей допустимой стоимости вычитаются уже накопленная стоимость и +нижние оценки еще не обработанных дочерних групп. Благодаря этому заведомо +неоптимальные ветви отбрасываются до построения полного плана. + +Для исследовательских задач предусмотрен метод \verb|OptimizeExhaustive|. Он +запускает тот же алгоритм без ограничения стоимости и используется при +проверке достижимости внешних физических планов. + +\subsubsection{Физические свойства} + +Некоторые требования к результату нельзя выразить только стоимостью. Например, +конструкция \verb|ORDER BY| требует от результата определенного порядка +кортежей. Для представления таких требований используется класс +\verb|PropertySet|. + +В текущей версии реализовано свойство сортировки \verb|SortProperty|. Порядок +считается удовлетворяющим требованию, если требуемые ключи являются префиксом +фактически полученного порядка. Например, сортировка по $(a, b)$ удовлетворяет +требованию сортировки по $a$. + +Некоторые операторы сохраняют порядок дочернего узла. Фильтрация и проекция +сохраняют свойства входа. Соединение вложенными циклами сохраняет свойства +левого входа. Хеш-соединение и агрегация не гарантируют сохранение порядка. + +Если подходящий план не найден, оптимизатор пытается добавить обеспечивающий +оператор. Для сортировки используется класс \verb|SortEnforcer|. Он проверяет +наличие требуемых атрибутов в схеме группы и создает физический оператор +сортировки. + +\begin{listing}[H] + \caption{Добавление оператора сортировки для обеспечения свойства.} + \label{lst:sort-enforcer} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +std::optional SortEnforcer::TryBuild( + utils::NotNull group, + const PropertySet& required, + SchemaCatalog& schema) const { + const auto* sort = required.Get(); + if (!sort) return std::nullopt; + + if (!ContainsRequiredKeys(schema.GetSchema(group), + sort->order)) { + return std::nullopt; + } + + return physical::Sort{group, sort->order}; +} + \end{minted} +\end{listing} + +\subsubsection{Формирование физического плана} + +После завершения поиска метод \verb|BuildOptimalPlan| рекурсивно восстанавливает +итоговое дерево физических операторов. Для каждой группы выбирается сохраненный +победитель с учетом требуемых свойств. Затем аналогичным образом +восстанавливаются планы дочерних групп. + +Результатом работы оптимизатора является объект \verb|PhysicalPlanNode|, который +не зависит от структуры Memo. Он может быть сериализован для анализа или передан +модулю исполнения запросов. + +Таким образом, модуль оптимизации разделяет представление пространства планов, +правила его расширения, стоимостную модель и алгоритм поиска. Такая организация +позволяет добавлять новые правила и физические операторы без изменения основной +логики оптимизатора. + +\subsection{Модуль физического хранения данных} + +Данные хранятся в одной директории, где каждому отношению соответствует +файл с CSV-таблицей. Название файла совпадает с названием отношения. +Первая строка CSV-файла содержит описание атрибутов и их типов, +последующие строки содержат кортежи отношения. + +Для чтения таблиц реализован класс +\verb|CsvDirSequentialScanner|~\refAlgo{lst:csv-dir-scanners}. Он +выполняет последовательное сканирование CSV-файла и передает прочитанные +кортежи модулю исполнения физических операторов. + +\begin{listing}[H] + \caption{Объявления классов сканирования CSV-таблиц.} + \label{lst:csv-dir-scanners} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} +struct CsvDirSequentialScanner { + std::string dir; + + boost::asio::awaitable> operator()( + const std::string& table_name, + const std::string& output_table_name, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const; +}; + +struct CsvDirIndexedScanner { + std::string dir; + + boost::asio::awaitable> operator()( + const std::string& table_name, + const std::string& output_table_name, + const Expression& predicate, + AttributesInfoChannel& attrs_chan, + TuplesChannel& tuples_chan) const; +}; + \end{minted} +\end{listing} + +Дополнительно реализована поддержка индексов. Индекс представляет собой +отсортированный бинарный файл, содержащий целочисленные ключи и смещения +соответствующих строк в CSV-файле. Использование смещений позволяет +извлекать подходящие кортежи без полного сканирования отношения. + +Список доступных индексов задается в файле \verb|indexes.meta|, +расположенном в директории с данными. Каждая строка файла содержит +название отношения, название индексируемого атрибута, тип индекса и имя +бинарного файла~\refAlgo{lst:meta}. + +\begin{listing}[H] + \caption{Пример файла с метаданными о доступных индексах.} + \label{lst:meta} +\begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{text} +users id sorted users.id.sorted.idx +\end{minted} +\end{listing} + +Для чтения данных с использованием индекса реализован класс +\verb|CsvDirIndexedScanner|~\refAlgo{lst:csv-dir-scanners}. Если указанный в +метаданных бинарный файл отсутствует, индекс строится при первом обращении к +таблице. Для поиска диапазона подходящих ключей используется упорядоченность +записей индекса. + +Поддерживаются индексы только для целочисленных атрибутов. Индексное +сканирование применяется для предикатов сравнения атрибута с +целочисленной константой. Поддерживаются операции равенства, строгого и +нестрогого сравнения. После чтения найденных строк дополнительно +вычисляется исходный предикат, что обеспечивает корректную обработку +составных условий. + +\subsection{Модуль исполнения физических планов} + +За исполнение запросов отвечает класс \verb|Executor|~\refAlgo{lst:executor}. +Он получает физический план, запускает исполнение его операторов и формирует +результирующее отношение. Физический план представлен деревом объектов типа +\verb|PhysicalPlanNode|. Для каждого типа узла предусмотрена отдельная функция +исполнения. + +Поддерживается исполнение последовательного и индексного сканирования, +фильтрации, проекции, сортировки, агрегации, декартова произведения, соединения +вложенными циклами и хеш-соединения. Операторы могут обрабатывать дочерние узлы +плана независимо и передавать результаты вышестоящим операторам по мере их +готовности. + +\begin{listing}[H] + \caption{Основные элементы объявления класса Executor.} + \label{lst:executor} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} +template +class Executor { +public: + using SequentialScan = std::function>( + const std::string& table_name, + const std::string& output_table_name, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan)>; + + using IndexScan = std::function>( + const std::string& table_name, + const std::string& output_table_name, + const Expression& predicate, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan)>; + + Executor(SequentialScan seq_scan, + IndexScan index_scan, + boost::asio::any_io_executor executor); + + boost::asio::awaitable> + Execute(const PhysicalPlanNode& op); + +private: + SequentialScan sequential_scan_; + IndexScan index_scan_; + ExpressionExecutor expression_executor_; +}; + \end{minted} +\end{listing} + +Класс параметризуется интерфейсами \verb|SequentialScan|, \verb|IndexScan| и +\verb|ExpressionExecutor|. Первые два интерфейса отделяют исполнение физического +плана от конкретного способа хранения данных. \verb|SequentialScan| выполняет +полное чтение таблицы, а \verb|IndexScan| получает дополнительный предикат и +извлекает строки с использованием индекса. Благодаря этому исполнитель не +зависит от формата CSV-файлов и устройства индексных структур. + +Параметр \verb|ExpressionExecutor| определяет способ вычисления скалярных +выражений. Реализованы стратегии для интерпретации выражений и для +JIT-компиляции. По умолчанию используется интерпретируемый вариант. + +Значения атрибутов представлены структурой \verb|Value|. Она содержит признак +\verb|NULL| и значение одного из поддерживаемых типов: целого числа, логического +значения или идентификатора строки. Исходное значение для строк сохраняется в +пул, а в кортеже хранится числовой идентификатор строки. Кортеж представлен +вектором значений, а отношение состоит из описания атрибутов и списка кортежей. + +Коммуникация между физическими операторами осуществляется с помощью асинхронных +каналов. Используются два типа каналов: \verb|AttributesInfoChannel| для +однократной передачи схемы отношения и \verb|TuplesChannel| для передачи данных. +Кортежи передаются векторами. Это уменьшает число операций синхронизации и +позволяет потоковым операторам начинать обработку до полного завершения дочерних +узлов плана. + +Для реализации каналов используется +\verb|boost::asio::experimental::concurrent_channel|. Данный класс обеспечивает +потокобезопасность, буферизацию, асинхронную передачу данных и совместимость с +корутинами. Такой подход позволяет единообразно организовать взаимодействие +между операторами независимо от конкретных алгоритмов для их реализации. + +\subsection{Руководство пользователя} + +Для сборки программы требуются CMake, компилятор C++ с поддержкой C++23, LLVM, +ANTLR4 и библиотеки Boost. Дополнительно требуется Python, pytest и Docker. В +репозитории присутствует файл \texttt{flake.nix}, описывающий необходимые +зависимости, поэтому в системе с пакетным менеджером Nix рекомендуется открыть +окружение при помощи команды \verb|nix develop|. + +Все команды далее выполняются из корневого каталога проекта. + +\subsubsection{Сборка программы} + +Для выполнения конфигурации и сборки следует запустить команды на листинге~\ref{lst:build}. + +\begin{listing}[H] + \caption{Конфигурация и сборка проекта.} + \label{lst:build} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} +cmake -S . -B build -DCMAKE_BUILD_TYPE=Release +cmake --build build -- -j 6 + \end{minted} +\end{listing} + +После успешной сборки исполняемый файл находится по пути +\texttt{build/bin/sql}. Для повторной сборки также можно использовать цель +\texttt{make build}. + +\subsubsection{Запуск программы} + +Пользователь должен создать отдельную директорию и поместить в нее CSV-файлы. +Имя каждого файла без расширения считается именем таблицы. В заголовке каждого +файла для столбца указывается имя и тип через двоеточие. Поддерживаются типы +\texttt{int} и \texttt{string}. Пустое SQL-значение записывается как +\texttt{NULL}. + +Для первого запуска можно использовать готовые тестовые данные в \verb|test/static/executor/test_data|. + +SQL-запрос передается программе через стандартный поток ввода. Простейший +пример запуска представлен на листинге~\ref{lst:run-example}. + +\begin{listing}[H] + \caption{Простейший пример запуска программы.} + \label{lst:run-example} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} +echo 'SELECT users.id FROM users;' | \ + ./build/bin/sql --data-dir test/static/executor/test_data + \end{minted} +\end{listing} + +Программа выводит заголовок отношения, содержащий имена и типы столбцов, а +затем полученные строки. Если запрос не содержит \ORDERBY{}, строки вывода +сортируются лексикографически для воспроизводимости результата. + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{run-example.png} +\caption{Выполнение SQL-запроса над тестовыми данными}% +\label{fig:practice-run} +\end{figure} + +\subsubsection{Вывод логического и физического планов} + +Для диагностики предусмотрены параметры \texttt{--print-ast} и +\texttt{--print-plan}. Первый параметр выводит логическое дерево после +синтаксического анализа, второй --- выбранный физический план. +Пример использования представлен на листинге~\ref{lst:run-plan}. + +\begin{listing}[H] + \caption{Запуск программы с выводом логического дерева и физического плана.} + \label{lst:run-plan} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} +echo 'SELECT users.id FROM users WHERE users.age > 18 \ +ORDER BY users.id;' | \ + ./build/bin/sql --data-dir test/static/executor/test_data \ + --print-ast --print-plan + \end{minted} +\end{listing} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{run-with-prints.png} +\caption{Вывод логического дерева и физического плана}% +\label{fig:practice-plan} +\end{figure} + +Для проверки полноты набора правил оптимизации предусмотрен режим +\verb|--check-reachable|. В этом режиме программа получает SQL-запрос и +сериализованный физический план, после чего выполняет полный перебор +пространства поиска без отсечения по стоимости. Если заданный план может быть +получен с помощью реализованных правил, программа выводит сообщение +\verb|REACHABLE|. + +План передается в отдельном файле в формате S-expression. Например, содержимое +файла \verb|target.plan| может иметь вид, представленный на листинге~\ref{lst:target-plan}. + +\begin{listing}[H] + \caption{Пример содержимого файла с целевым физическим планом.} + \label{lst:target-plan} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +(PhysicalProjection (exprs (attr users id)) + (PhysicalFilter (> (attr users age) 18) + (SeqScan users))) + \end{minted} +\end{listing} + +Проверка выполняется командой на листинге~\ref{lst:check-reachable}. + +\begin{listing}[H] + \caption{Запуск программы в режиме проверки достижимости плана.} + \label{lst:check-reachable} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +echo 'SELECT users.id FROM users WHERE users.age > 18;' | \ + ./build/bin/sql \ + --data-dir test/static/executor/test_data \ + --check-reachable target.plan + \end{minted} +\end{listing} + +Если план недостижим, программа выводит сообщение \verb|NOT REACHABLE| и +описание первого обнаруженного расхождения. Параметр \verb|--data-dir| +необходим для загрузки схем таблиц. В частности, схема используется при +проверке достижимости планов с сортировкой. + +Для автоматизированной проверки достижимости планов используется Microsoft SQL +Server. Контейнер с СУБД запускается с помощью Docker Compose. Перед запуском +скриптов в директории research, следует выполнить команды на листинге~\ref{lst:docker-up}. + +\begin{listing}[H] + \caption{Запуск контейнера с Microsoft SQL Server.} + \label{lst:docker-up} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +cd research +docker compose up -d +cd .. + \end{minted} +\end{listing} + +Для запуска модульных тестов C++ следует выполнить команду на листинге~\ref{lst:ctest}. + +\begin{listing}[H] + \caption{Запуск модульных тестов C++.} + \label{lst:ctest} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +ctest --test-dir build --output-on-failure + \end{minted} +\end{listing} + +Модульные тесты проверяют синтаксический анализ запросов, вычисление выражений, +исполнение физических операторов, индексное сканирование, сериализацию планов, +структуру Memo, правила оптимизации и физические свойства. + +Для запуска Python-тестов преобразователя планов Microsoft SQL Server +необходимо предварительно запустить контейнер, после чего выполнить команды на листинге~\ref{lst:pytest-converter}. + +\begin{listing}[H] + \caption{Запуск тестов преобразователя планов Microsoft SQL Server.} + \label{lst:pytest-converter} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +cd research +pytest -q test_converter.py +cd .. + \end{minted} +\end{listing} + +Тесты инструментов Star Schema Benchmark запускаются командой на листинге~\ref{lst:pytest-ssb}. + +\begin{listing}[H] + \caption{Запуск тестов инструментов Star Schema Benchmark.} + \label{lst:pytest-ssb} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +pytest -q benchmarks/datasets/ssb + \end{minted} +\end{listing} + +Для поиска ошибок исполнения реализован дифференциальный фаззер. Он генерирует +случайные SQL-запросы, выполняет их в модельной СУБД и Microsoft SQL Server, +после чего сравнивает полученные результаты. Перед запуском необходимо поднять +контейнер с Microsoft SQL Server. + +Фаззер запускается из корневого каталога проекта командой на листинге~\ref{lst:diff-fuzz}. + +\begin{listing}[H] + \caption{Запуск дифференциального фаззера.} + \label{lst:diff-fuzz} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +python -m research.fuzz.diff_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data + \end{minted} +\end{listing} + +Для проверки режима JIT-компиляции можно дополнительно передать параметр +\verb|--jit|. При обнаружении расхождения фаззер выводит начальное значение +генератора случайных чисел и текст запроса, что позволяет воспроизвести ошибку. + +Второй фаззер проверяет полноту набора правил оптимизатора. Он получает +физический план запроса из Microsoft SQL Server, преобразует его во внутренний +формат проекта и запускает программу в режиме \verb|--check-reachable|, как показано на листинге~\ref{lst:reach-fuzz}. + +\begin{listing}[H] + \caption{Запуск фаззера проверки полноты правил оптимизатора.} + \label{lst:reach-fuzz} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +python -m research.fuzz.reach_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data + \end{minted} +\end{listing} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{reach-fuzz.png} +\caption{Пример вывода фаззера проверки полноты правил оптимизатора}% +\label{fig:reach-fuzz} +\end{figure} + +Оба фаззера поддерживают параметр \verb|--start-seed|. Он задает начальное +значение генератора и используется для воспроизводимого повторного запуска, +как показано на листинге~\ref{lst:reach-fuzz-seed}. + +\begin{listing}[H] + \caption{Запуск фаззера с фиксированным начальным значением генератора.} + \label{lst:reach-fuzz-seed} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +python -m research.fuzz.reach_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data \ + --start-seed 1000 + \end{minted} +\end{listing} + +\begin{longtable}{|p{4.2cm}|p{9.3cm}|} + \caption{Параметры командной строки программы.}\label{tbl:practice-cli}\\ + \hline + Параметр & Назначение \\ + \hline + \endfirsthead + \multicolumn{2}{l}{\small Продолжение таблицы~\ref{tbl:practice-cli}}\\ + \hline + Параметр & Назначение \\ + \hline + \endhead + \texttt{--data-dir DIR} & + Директория с CSV-файлами таблиц. Обязательна при обычном исполнении запроса. \\ + \hline + \texttt{--print-ast} & + Вывод логического дерева операторов после синтаксического анализа. \\ + \hline + \texttt{--print-plan} & + Вывод выбранного физического плана в формате S-expression. \\ + \hline + \texttt{--jit} & + Использование кэшируемой JIT-компиляции скалярных выражений. \\ + \hline + \texttt{--check-reachable FILE} & + Проверка достижимости физического плана, сериализованного в файле. \\ + \hline +\end{longtable} + +\section{Тестирование} + +Тестирование разработанной модельной СУБД выполнялось на нескольких уровнях. Для +проверки отдельных компонентов использовались модульные тесты. Корректность +выполнения запросов и полнота пространства поиска оптимизатора дополнительно +проверялись с помощью фаззинга. Для оценки производительности и калибровки +стоимостной модели были реализованы бенчмарки. Вспомогательные инструменты на +языке Python проверяются с помощью библиотеки \verb|pytest|. + +\subsection{Модульные тесты} + +Модульные тесты реализованы с использованием библиотеки GoogleTest. Они +проверяют синтаксический анализ SQL-запросов, исполнение физических операторов, +индексное сканирование, вычисление выражений, сериализацию физических планов, +структуру Memo, правила оптимизации и обработку свойств сортировки. + +Отдельные тесты проверяют выбор физического плана. Например, при различных +оценках кардинальности оптимизатор должен выбирать подходящий порядок соединения +таблиц. Также проверяется достижимость физических планов при полном переборе +пространства поиска. + +Пример теста синтаксического анализатора приведен в +листинге~\ref{lst:googletest}. + +\begin{listing}[H] + \caption{Пример модульного теста.} + \label{lst:googletest} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{cpp} +TEST(ParserTest, SelectSingleColumnFromSingleTable) { + std::stringstream s{"SELECT users.id FROM users;"}; + + Operator got = GetAST(s).value().op; + + ASSERT_THAT(got, VariantWith( + Projection{ + std::vector{{Attribute{"users", "id"}}}, + std::make_shared(Table{"users"}) + })); +} + \end{minted} +\end{listing} + +\subsection{Python-тесты} + +Для проверки вспомогательных инструментов используются тесты на языке Python, +запускаемые с помощью библиотеки \verb|pytest|. Они разделены на две группы. + +Первая группа проверяет преобразование физических планов Microsoft SQL Server из +формата ShowPlanXML во внутренний текстовый формат проекта. Рассматриваются +последовательное и индексное сканирование, фильтрация, сортировка, агрегация и +соединения. Часть тестов использует заранее подготовленные XML-фрагменты, часть +может быть запущена с подключением к экземпляру Microsoft SQL Server. + +Вторая группа относится к Star Schema Benchmark. Она проверяет преобразование +исходных таблиц SSB в CSV-формат модельной СУБД, обработку некорректных входных +данных и успешное выполнение стандартных аналитических запросов. + +\subsection{Фаззинг} + +Для проверки системы на большом количестве входных данных реализован генератор +случайных SQL-запросов. Он строит запросы из поддерживаемого подмножества языка: +проекции, фильтры, соединения, группировки, агрегатные функции, сортировки, +строковые выражения, \verb|IN| и \verb|BETWEEN|. Использование фиксированного +начального значения генератора позволяет воспроизводить найденные ошибки. + +% TODO: заменить на макросы \sqkkw + +Дифференциальный фаззер выполняет каждый сгенерированный запрос в модельной СУБД +и в Microsoft SQL Server. Результаты сравниваются как мультимножества строк. +Для запросов с \verb|ORDER BY| дополнительно проверяется корректность порядка +результатов. При обнаружении расхождения выводятся начальное значение +генератора, текст запроса и результаты обеих систем. + +Отдельный фаззер используется для исследования полноты набора правил +оптимизации. Для случайного запроса из Microsoft SQL Server извлекается +физический план, после чего план преобразуется во внутренний формат проекта. +Затем модельный оптимизатор выполняет полный перебор пространства поиска и +проверяет, достижим ли полученный план с помощью реализованных правил. Такой +подход позволяет находить отсутствующие преобразования и физические операторы. + +\subsection{Бенчмарки} + +Тесты производительности реализованы с помощью библиотеки Google Benchmark. +Для запросов предусмотрены два режима построения физического плана: +\verb|Naive| и \verb|Optimized|. В первом случае физический план строится +непосредственно по логическому дереву без применения оптимизатора. Во втором +случае используется стоимостная оптимизация. Сравнение этих режимов позволяет +оценить влияние выбранного физического плана на время выполнения запроса. + +Бенчмарки выполняются как для небольших синтетических тестовых запросов, так и +для набора аналитических запросов Star Schema Benchmark. Дополнительно +поддерживается сравнение интерпретируемого и JIT-компилируемого способов +вычисления выражений. + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{naive-vs-optimizer.png} +\caption{Сравнение времени выполнения запросов при наивном и оптимизированном + построении физического плана.} +\label{fig:benchmark-naive-optimized} +\end{figure} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{optimizer-speedup.png} +\caption{Относительное ускорение выполнения запросов после применения оптимизатора.} +\label{fig:benchmark-speedup} +\end{figure} + +В таблице~\ref{tbl:ssb-benchmark} приведено среднее время выполнения трех +повторений запросов SSB для набора данных масштаба \texttt{sf001}. Ускорение +рассчитывается как отношение времени выполнения наивного плана ко времени +выполнения оптимизированного плана. + +\begin{table}[H] + \centering + \caption{Результаты выполнения запросов Star Schema Benchmark.} + \label{tbl:ssb-benchmark} + \begin{tabular}{|l|r|r|r|} + \hline + Запрос & \texttt{Naive}, мс & \texttt{Optimized}, мс & Ускорение \\ + \hline + \texttt{q1.1} & 8.11 & 6.51 & 1.25 \\ + \texttt{q1.2} & 8.20 & 6.59 & 1.24 \\ + \texttt{q1.3} & 8.00 & 6.58 & 1.22 \\ + \texttt{q2.1} & 8.80 & 9.33 & 0.94 \\ + \texttt{q2.2} & 8.84 & 6.18 & 1.43 \\ + \texttt{q2.3} & 8.68 & 5.80 & 1.50 \\ + \texttt{q3.1} & 35.67 & 5.90 & 6.04 \\ + \texttt{q3.2} & 35.88 & 5.58 & 6.43 \\ + \texttt{q3.3} & 38.05 & 5.86 & 6.49 \\ + \texttt{q3.4} & 37.12 & 5.77 & 6.43 \\ + \texttt{q4.1} & 9.06 & 12.21 & 0.74 \\ + \texttt{q4.2} & 9.05 & 11.12 & 0.81 \\ + \texttt{q4.3} & 9.28 & 6.31 & 1.47 \\ + \hline + \end{tabular} +\end{table} + +\subsection{Калибровка стоимостной модели} + +Для калибровки коэффициентов в стоимостных формулах реализованы отдельные +бенчмарки физических операторов. Измеряется время выполнения последовательного +сканирования, фильтрации, проекции, сортировки, агрегации, хеш-соединения, +соединения вложенными циклами и декартова произведения. + +При выполнении этих бенчмарков данные хранятся в оперативной памяти. Это +позволяет уменьшить влияние файловой системы и измерять преимущественно +стоимость самого физического оператора. Для каждого оператора выполняются замеры +на таблицах различного размера. + +Дополнительно формируются группы запусков с приблизительно одинаковой расчетной +стоимостью. Для этого размер входных отношений выбирается на основе стоимостной +формулы оператора. Сопоставление расчетной стоимости с фактическим временем +выполнения позволяет сравнить операторы между собой и скорректировать +коэффициенты модели. Благодаря этому оптимизатор принимает решения на основе +оценок, соответствующих характеристикам реализованного исполнителя. + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{scaling.png} +\caption{Зависимость времени выполнения физических операторов от размера входных + данных.} +\label{fig:operator-benchmark} +\end{figure} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{calibration.png} +\caption{Сопоставление расчетной стоимости физических операторов с фактическим + временем выполнения.} +\label{fig:cost-model-calibration} +\end{figure} + +Стоимостные формулы физических операторов, полученные по результатам +калибровки, приведены в таблице~\ref{tbl:cost-model-coefficients}. + +\begin{table}[H] + \centering + \caption{Стоимостные формулы физических операторов.} + \label{tbl:cost-model-coefficients} + \small + \begin{tabular}{|p{0.40\textwidth}|l|} + \hline + Физический оператор & Формула стоимости \\ + \hline + Последовательное сканирование & $100\,n$ \\ + Фильтрация & $100\,n_{out}$ \\ + Проекция & $22\,n_{out}$ \\ + Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ + Агрегация & $510\,n$ \\ + Соединение вложенными циклами & $70\,n_l n_r$ \\ + Декартово произведение & $104\,n_l n_r$ \\ + Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ + \hline + \end{tabular} +\end{table} + +\anonsection{ЗАКЛЮЧЕНИЕ} + +В ходе практики разработана модельная СУБД и оптимизатор для нее. Программа +работает с CSV-файлами, поддерживает основные операторы реляционной алгебры и +формирует оптимальный физический план на основе стоимостной модели. + +Ключевой частью проекта является расширяемый оптимизатор, использующий структуру +Memo и правила преобразования. Реализован поиск планов с учетом физических +свойств, нижних оценок стоимости и метода ветвей и границ. + +Корректность основных компонентов проверена модульными тестами. Дополнительно +подготовлены бенчмарки физических операторов, оценен прирост производительности +относительно наивного плана и реализованы инструменты дифференциального +сравнения с промышленной СУБД Microsoft SQL Server. + +Цель курсовой работы была достигнута. Получена стабильная и расширяемая система, +демонстрирующая возможности оптимизатора. + +В заключение, несмотря на достигнутые положительные результаты, существует +потенциал для дальнейшего улучшения реализации оптимихатора. Это включает в себя +реализацию дедупликации групп в процессе поиска, добавление новых правил +трансформации и реализации и поддержку подзапросов. + +\renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} +\clearpage +{\catcode`"\active\def"{\relax} + \addcontentsline{toc}{section}{\protect\numberline{}\refname}% + \printbibliography +} +\newpage + +\settocdepth{section} +\anonsection{ПРИЛОЖЕНИЕ А} +\vspace{-30pt} + +\begin{algorithm}[H] + \caption{Алгоритм поиска (часть 1).}% + \label{alg:cascades-search} + \begin{algorithmic}[1] + + \Procedure{Optimize}{$root$} + \State Push task $\Call{OptimizeGroup}{root.group, \bot}$ onto task stack + \While{task stack is not empty} + \State Pop and execute next task + \EndWhile + \State \Return $best\_plan[root.group]$ + \EndProcedure + + \Procedure{OptimizeGroup}{$group, limit$} + \If{$best\_cost[group]$ exists \textbf{and} ($limit = \bot$ \textbf{or} $best\_cost[group] < limit$)} + \State \Return + \EndIf + \If{$group$ is not explored} + \State Push task $\Call{OptimizeGroup}{group, limit}$ onto task stack + \State Push task $\Call{ExploreGroup}{group, limit}$ onto task stack + \State \Return + \EndIf + \For{each logical expression $expr \in group$} + \State Push task $\Call{OptimizeExpression}{expr, limit}$ onto task stack + \EndFor + \EndProcedure + + \Procedure{ExploreGroup}{$group, limit$} + \State Mark $group$ as explored + \For{each logical expression $expr \in group$} + \State Push task $\Call{ExploreExpression}{expr, limit}$ onto task stack + \EndFor + \EndProcedure + \end{algorithmic} +\end{algorithm} + +\begin{algorithm}[H] + \caption{Алгоритм поиска (часть 2).}% + \label{alg:cascades-search-2} + \begin{algorithmic}[1] + \Procedure{ExploreExpression}{$expr, limit$} + \For{each applicable transformation rule $r$} + \State Push task $\Call{ApplyTransformation}{r, expr, limit}$ onto task stack + \EndFor + \For{each child group $child \in \Call{Children}{expr}$} + \If{$child$ is not explored} + \State Push task $\Call{ExploreGroup}{child, limit}$ onto task stack + \EndIf + \EndFor + \EndProcedure + + \Procedure{OptimizeExpression}{$expr, limit$} + \For{each applicable implementation rule $r$} + \State Push task $\Call{ApplyImplementation}{r, expr, limit}$ onto task stack + \EndFor + \For{each child group $child \in \Call{Children}{expr}$} + \If{$child$ is not explored} + \State Push task $\Call{ExploreGroup}{child, limit}$ onto task stack + \EndIf + \EndFor + \EndProcedure + + \Procedure{ApplyTransformation}{$rule, expr, limit$} + \State $new\_expr \leftarrow \Call{Apply}{rule, expr}$ + \State Push task $\Call{ExploreExpression}{new\_expr, limit}$ onto task stack + \EndProcedure + + \Procedure{ApplyImplementation}{$rule, expr, limit$} + \State $phys \leftarrow \Call{Apply}{rule, expr}$ + \State $lc \leftarrow \Call{CalcLocalCost}{phys}$ + \If{$limit \neq \bot$ \textbf{and} $lc \geq limit$} + \State \Return + \EndIf + \State $child\_limit \leftarrow (limit = \bot) \mathbin{?} \bot \mathbin{:} limit - lc$ + \State Push task $\Call{OptimizeInputs}{phys, child\_limit, 0}$ onto task stack + \EndProcedure + \end{algorithmic} +\end{algorithm} + +\begin{algorithm}[H] + \caption{Алгоритм поиска (часть 3).}% + \label{alg:cascades-search-3} + \begin{algorithmic}[1] + \Procedure{OptimizeInputs}{$expr, limit, i$} + \State $children \leftarrow \Call{Children}{expr}$ + \If{$i \geq |children|$} + \State $total \leftarrow local\_cost[expr] + accum\_child\_cost[expr]$ + \If{$best\_cost[expr.group]$ does not exist \textbf{or} $total < best\_cost[expr.group]$} + \State $best\_cost[expr.group] \leftarrow total$ + \State $best\_plan[expr.group] \leftarrow expr$ + \EndIf + \State \Return + \EndIf + \State $child \leftarrow children[i]$ + \State Push task: \textbf{if} $best\_cost[child]$ exists \textbf{then} accumulate child cost \textbf{and} push $\Call{OptimizeInputs}{expr, \ldots, i+1}$ + \State Push task $\Call{OptimizeGroup}{child, limit}$ onto task stack + \EndProcedure + \end{algorithmic} +\end{algorithm} + +\newpage{} + +\begin{scriptsize} +\begin{longtable}{|c|p{2.6cm}|c|p{4.2cm}|} + \caption{Правила трансформации.}\label{tbl:transformation_rules}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endfirsthead + \multicolumn{4}{l}{\small Продолжение таблицы~\ref{tbl:transformation_rules}}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endhead + \hline + \endfoot + \hline + \endlastfoot + + 1 & Коммутативность соединения & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{внутреннее или полное внешнее соединение}}{\InnerJoin{S}{\theta}{R}}\) & + Перестановка входов соединения. Позволяет рассмотреть оба порядка вычисления. \\ + \hline + + 2 & Ассоциативность соединения & + \(\TransRule{\InnerJoin{(\InnerJoin{R}{\theta_1}{S})}{\theta_2}{T}}{\substack{\text{оба соединения внутренние;}\\ \theta_1 \land \theta_2 \text{ перераспределяемы}}}{\InnerJoin{R}{\theta'_1}{(\InnerJoin{S}{\theta'_2}{T})}}\) & + Изменяет группировку цепочки соединений. Открывает альтернативные порядки и уменьшает размер промежуточных результатов. \\ + \hline + + 3 & Проталкивание фильтра в левый вход & + \(\TransRule{\Sel{p}{\InnerJoin{R}{\theta}{S}}}{\substack{attrs(p) \subseteq attrs(R); \\ \text{внутреннее соединение или сохраняющий вход}}}{\InnerJoin{\Sel{p}{R}}{\theta}{S}}\) & + Применяет селективный предикат до соединения, уменьшая кардинальность входа. \\ + \hline + + 4 & Проталкивание фильтра в правый вход & + \(\TransRule{\Sel{p}{\InnerJoin{R}{\theta}{S}}}{\substack{attrs(p) \subseteq attrs(S); \\ \text{внутреннее соединение или сохраняющий вход}}}{\InnerJoin{R}{\theta}{\Sel{p}{S}}}\) & + Симметричный случай для правого входа. \\ + \hline + + 5 & Перенос фильтра в предикат соединения & + \(\TransRule{\Sel{p}{\InnerJoin{R}{\theta}{S}}}{\substack{\text{соединение внутреннее;} \\ attrs(p) \subseteq attrs(R) \cup attrs(S)}}{\InnerJoin{R}{\theta \land p}{S}}\) & + Объединяет фильтр и предикат соединения. Может позволить применить хеш-соединение или соединение слиянием. \\ + \hline + + 6 & Превращение декартова произведения в соединение & + \(\TransRule{\Sel{p}{\CProd{R}{S}}}{\top}{\InnerJoin{R}{p}{S}}\) & + Частный случай правила~5. \\ + \hline + + 7 & Поднятие фильтра над соединением & + \(\TransRule{\InnerJoin{\Sel{p}{R}}{\theta}{S}}{\substack{attrs(p) \subseteq attrs(R); \\ \text{внутреннее соединение или сохраняющая сторона}}}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Переносит фильтр выше соединения для объединения с предикатами родительских операторов. \\ + \hline + + 8 & Разбиение фильтра на конъюнкты & + \(\TransRule{\Sel{p_1 \land \ldots \land p_n}{R}}{\top}{\Sel{p_1}{\ldots \Sel{p_n}{R} \ldots}}\) & + Позволяет обрабатывать каждый конъюнкт независимо. \\ + \hline + + 9 & Проталкивание проекции через соединение & + \(\TransRule{\Projection{L}{\InnerJoin{R}{\theta}{S}}}{\substack{L_R \cup J_R \subsetneq attrs(R) \\ \text{или}\ L_S \cup J_S \subsetneq attrs(S)}}{\Projection{L}{\InnerJoin{\Projection{L_R \cup J_R}{R}}{\theta}{\Projection{L_S \cup J_S}{S}}}}\) & + Удаляет неиспользуемые атрибуты до соединения, сокращая ширину кортежей. \\ + \hline + + 10 & Левое внешнее соединение во внутреннее & + \(\TransRule{\Sel{p}{\LOJ{R}{\theta}{S}}}{p\ \text{null-отбрасывающий по}\ attrs(S)}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Открывает для подплана правила, ограниченные внутренним соединением. \\ + \hline + + 11 & Правое внешнее соединение во внутреннее & + \(\TransRule{\Sel{p}{\ROJ{R}{\theta}{S}}}{p\ \text{null-отбрасывающий по}\ attrs(R)}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Симметричный случай. \\ + \hline + + 12 & Полное внешнее соединение во внутреннее & + \(\TransRule{\Sel{p}{\FOJ{R}{\theta}{S}}}{p\ \text{null-отбрасывающий по}\ attrs(R)\ \text{и}\ attrs(S)}{\Sel{p}{\InnerJoin{R}{\theta}{S}}}\) & + Требует null-отбрасывания с обеих сторон. \\ + \hline + + 13 & Проталкивание агрегации ниже соединения & + \(\TransRule{\Agg{G}{F}{\InnerJoin{R}{R.k = S.k}{S}}}{\substack{F\text{ разделяема;}\\ \text{внутреннее соединение по равенству}}}{\Agg{G}{F'}{\InnerJoin{\AggP{G_R \cup \{R.k\}}{F_R}{R}}{R.k=S.k}{S}}}\) & + Снижает кардинальность входа частичной группировкой. \(G_R = G \cap attrs(R)\); \(F_R\) --- частичные агрегаты по атрибутам \(R\); \(F'\) --- финальные комбинаторы. \\ + \hline + + 14 & Перестановка агрегации и соединения & + \(\TransRule{\Agg{G}{F_R}{\InnerJoin{R}{R.k=S.k}{S}}}{\substack{\text{внутреннее соединение по равенству;}\\ F_R\subseteq attrs(R);\ R.k \in G; \\ S.k\text{ уникален и полон}}}{\InnerJoin{\Agg{G}{F_R}{R}}{R.k=S.k}{S}}\) & + Полностью переносит агрегацию до соединения. \(S.k\) уникален: соединение не дублирует строки \(R\). \(S.k\) полон относительно \(R.k\): соединение не теряет строки \(R\). \\ + \hline +\end{longtable} + +\newpage{} + +\begin{longtable}{|c|p{2.8cm}|c|p{4.5cm}|} + \caption{Правила реализации.}\label{tbl:implementation_rules}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endfirsthead + \multicolumn{4}{l}{\small Продолжение таблицы~\ref{tbl:implementation_rules}}\\ + \hline + № & Название & Правило & Комментарий \\ + \hline + \endhead + \hline + \endfoot + \hline + \endlastfoot + + 1 & Последовательное сканирование & + \(\TransRule{\LogicalGet}{\top}{\SeqScan}\) & + Применимо к любому отношению. \\ + \hline + + 2 & Сканирование по индексу & + \(\TransRule{\LogicalGet}{\text{есть совместимый индекс}}{\IndexScan}\) & + Индекс должен быть совместим с предикатом или требуемым порядком. \\ + \hline + + 3 & Соединение вложенными циклами & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\top}{\NestedLoopJoin}\) & + Применимо при любом виде предиката. Стоимость высока без доступа по индексу к внутреннему отношению. \\ + \hline + + 4 & Хеш-соединение & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\theta\ \text{содержит равенство по ключам}}{\HashJoin}\) & + Хеш-таблица строится по ключам равенства. \\ + \hline + + 5 & Соединение слиянием & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{входы упорядочены по ключам соединения}}{\MergeJoin}\) & + Требуемый порядок может быть обеспечен явным оператором \Sort{}. \\ + \hline + + 6 & Хеш-агрегация & + \(\TransRule{\Agg{G}{F}{R}}{\top}{\sqlkw{HashAggregate}}\) & + Не требует упорядоченности входа. Потребляет память пропорционально числу групп. \\ + \hline + + 7 & Потоковая агрегация & + \(\TransRule{\Agg{G}{F}{R}}{\text{вход упорядочен по } G}{\sqlkw{StreamAggregate}}\) & + Эффективна при уже отсортированном входе. Может быть выгодна, если требуемый порядок нужен и родительскому оператору. \\ + \hline +\end{longtable} +\end{scriptsize} + +\end{document} From 1de9a98f296a40bff6b1981b7f269b81fd54eb1c Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 14:26:58 +0300 Subject: [PATCH 082/120] Intro --- report/vkr.tex | 68 +++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index c75cf16..e789632 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -112,40 +112,50 @@ \section*{АННОТАЦИЯ} SQL-запроса в эффективный физический план исполнения. Именно от качества работы оптимизатора в значительной степени зависит производительность всей системы: выбор неоптимального плана исполнения может привести к увеличению времени -выполнения запроса в десятки раз относительно оптимального случая. - -Также оптимизатор запросов считается наиболее сложной составной частью любой -СУБД. Задача нахождения оптимального плана является NP-полной в общем случае, -что обуславливает необходимость применения эвристических методов и алгоритмов -ограниченного перебора. Современные коммерческие и открытые системы используют -различные архитектуры оптимизаторов, среди них наиболее популярны устоявшиеся и -проверенные временем архитектуры Cascades и Volcano. - -Архитектура Cascades используется в таких промышленных системах, как Microsoft -SQL Server, Apache Orca, а также в ряде исследовательских проектов, включая -Columbia и CockroachDB\@. Преимущества этой архитектуры заключаются в -расширяемости, модульности, а также понятном и эффективном алгоритме поиска, -допускающим параллельность исполнения. +выполнения запроса в десятки раз относительно оптимального случая.Также +оптимизатор запросов считается наиболее сложной составной частью любой СУБД. +Задача нахождения оптимального плана является NP-полной в общем случае, что +обуславливает необходимость применения эвристических методов и алгоритмов +ограниченного перебора. + +Архитектура оптимизаторов Cascades используется в таких промышленных системах, +как Microsoft SQL Server, Apache Orca, а также в ряде исследовательских +проектов, включая Columbia и CockroachDB\@. Преимущества этой архитектуры +заключаются в расширяемости, модульности, а также понятном и эффективном +алгоритме поиска, допускающим параллельность исполнения. Целью данной работы является разработка и реализация оптимизатора подмножества SQL-запросов на основе архитектуры Cascades, а также создание каркаса для его итеративного улучшения путем сравнения с промышленными реализациями. -Для достижения поставленной цели необходимо решить следующие задачи: -\begin{itemize} - \item изучить существующие архитектуры оптимизаторов запросов, включая - System~R, Volcano и Cascades; - \item формализовать подмножество SQL и соответствующее подмножество - реляционной алгебры; - \item реализовать структуру данных Memo и алгоритм поиска оптимального плана - на основе архитектуры Cascades; - \item реализовать набор правил трансформации и реализации для основных - операторов реляционной алгебры; - \item реализовать метод ветвей и границ для эффективного отсечения - неоптимальных планов; - \item реализовать метод дифференциального анализа физических планов для - автоматизированного поиска примеров неоптимальных планов. -\end{itemize} +Для достижения поставленной цели прежде всего требуется изучить архитектуру +оптимиазторов Cascades и на ее основе проработать собственную. + +После выбора архитектурной основы необходимо формализовать поддерживаемое +подмножество SQL и соответствующее ему подмножество реляционной алгебры. Эта +задача определяет границы рассматриваемых запросов, их семантику и внутреннее +логическое представление, используемое на этапе оптимизации. + +Следующим шагом является реализация структуры данных Memo и алгоритма поиска +оптимального физического плана на основе архитектуры Cascades. В рамках этой +задачи требуется обеспечить хранение эквивалентных логических выражений, +повторное использование найденных вариантов планов и выбор плана с минимальной +оценочной стоимостью. + +Чтобы сформировать пространство поиска оптимизатора, требуется разработать набор +правил трансформации и реализации для основных операторов реляционной алгебры. +Правила трансформации должны порождать логически эквивалентные планы, а правила +реализации сопоставлять логическим операторам допустимые физические операторы. + +Для оптимизации алгоритма поиска нужно реазивовать метод ветвей и границ. Этот +метод должен использовать оценки стоимости для отсечения заведомо неоптимальных планов и +уменьшения объема пространства поиска, исследуемого оптимизатором. + +Для последующего развития системы также требуется реализовать метод +дифференциального анализа физических планов. Он должен обеспечивать +автоматизированный поиск примеров неоптимальных планов путем сравнения планов +разрабатываемого оптимизатора с планами промышленных СУБД, а найденные различия +должны использоваться для уточнения правил оптимизации. \section{Архитектура СУБД} From e2bea7e87d909d79fd4830e1ac747fbe9025f0a1 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 16:16:26 +0300 Subject: [PATCH 083/120] Refactor --- report/vkr.tex | 480 ++++++++++++++++++++++--------------------------- 1 file changed, 217 insertions(+), 263 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index e789632..0471c91 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -148,8 +148,8 @@ \section*{АННОТАЦИЯ} реализации сопоставлять логическим операторам допустимые физические операторы. Для оптимизации алгоритма поиска нужно реазивовать метод ветвей и границ. Этот -метод должен использовать оценки стоимости для отсечения заведомо неоптимальных планов и -уменьшения объема пространства поиска, исследуемого оптимизатором. +метод должен использовать оценки стоимости для отсечения заведомо неоптимальных +планов и уменьшения объема пространства поиска, исследуемого оптимизатором. Для последующего развития системы также требуется реализовать метод дифференциального анализа физических планов. Он должен обеспечивать @@ -157,7 +157,7 @@ \section*{АННОТАЦИЯ} разрабатываемого оптимизатора с планами промышленных СУБД, а найденные различия должны использоваться для уточнения правил оптимизации. -\section{Архитектура СУБД} +\section{Исследовательская часть} Система управления базами данных представляет собой программный комплекс, обеспечивающий хранение, извлечение и модификацию структурированных @@ -282,7 +282,7 @@ \subsection{Процесс исполнения SQL-запроса} операторов, примененных последовательно: доступ к данным и фильтрация по тому же условию. -\section{Реляционная алгебра} +\subsection{Реляционная алгебра} Реляционная алгебра представляет собой формальный язык для описания операций над отношениями реляционной базы данных. В отличие от декларативного SQL, @@ -296,8 +296,6 @@ \section{Реляционная алгебра} R \subseteq \text{dom}(A_1) \times \text{dom}(A_2) \times \ldots \times \text{dom}(A_n). \] -\subsection{Основные операторы реляционной алгебры} - Среди основных операторов реляционной алгебры выделяют следующие. \begin{enumerate} @@ -460,7 +458,7 @@ \subsection{Преобразование синтаксического дере физические операторы позволяет оптимизатору независимо исследовать порядок операций и алгоритмы их реализации. -\section{Поиск оптимального плана} +\subsection{Поиск оптимального плана} Эквивалентность планов, исследуемых в процессе поиска оптимального, обеспечивается применением алгебраических тождеств, например ассоциативности и @@ -666,124 +664,47 @@ \section{Поиск оптимального плана} \(1{,}900\) раз. Именно поэтому качественный оптимизатор является конкурентным преимуществом и одной из самых важных частей СУБД. -\section{Обзор архитектур оптимизаторов} - -Рассмотрим наиболее популярные архитектуры оптимизаторов. - -\subsection{System R} - -Оптимизатор System~R, разработанный в IBM Research в конце 1970-х -годов~\cite{Selinger1979}, стал первым стоимостным оптимизатором запросов и -заложил фундаментальные принципы, используемые во всех последующих системах. - -Архитектуру, аналогичную System~R, реализуют PostgreSQL и ранние версии IBM DB2. - -Оптимизатор, построенный по архитектуре System~R, разбивает запрос на блоки, -каждый из которых оптимизируется индивидуально. Блок запроса состоит из -конструкции \SELECT, конструкции \FROM, ссылающейся на одну или -несколько таблиц, и дерева предикатов \WHERE. Несколько блоков -появляется в случае запроса с вложенными подзапросами. - -Для каждого блока оптимизатор выполняет два основных действия. Во-первых, для -запросов к одному отношению выбирается наилучший метод доступа на основании -стоимостной модели. Во-вторых, для запросов с несколькими отношениями -определяется оптимальный порядок соединений методом восходящего динамического -программирования: сначала выбираются оптимальные планы доступа к отдельным -таблицам, затем перебираются двухтабличные соединения, трехтабличные и так -далее. - -Стоимость плана вычисляется по формуле -\(\text{COST} = \text{PageFetches} + w \cdot \text{RSICalls}\), учитывающей -ожидаемый объем операций ввода-вывода и потребление ресурсов процессора, где -\(w\) --- весовой коэффициент. - -Важным нововведением System~R стало понятие интересных порядков. Стоимость плана -зависит от непосредственных затрат на выполнение оператора и от -того, обеспечивает ли он упорядоченность результата, требуемую вышестоящими -операторами. Например, использование соединения слиянием вместо хеш-соединения -может быть выгодно, если результат должен быть отсортирован для последующей -операции \ORDERBY. - -К ограничениям архитектуры System~R относятся: - -\begin{itemize} - \item рассмотрение только левосторонних - деревьев соединений; - \item независимая оптимизация вложенных подзапросов; - \item невозможность гибкого расширения набора правил преобразования, что - необходимо при добавлении новых операторов языка SQL\@. -\end{itemize} - -Эти ограничения послужили мотивацией для создания расширяемых архитектур -оптимизаторов. - -\subsection{Volcano} - -Volcano --- расширяемый, основанный на правилах, стоимостной оптимизатор -запросов, разработанный Грефе в 1993 году~\cite{GraefeMcKenna1993}. Volcano ввел -ряд концепций, ставших основой для последующих расширяемых оптимизаторов: -физические свойства выражений, обеспечивающие правила, структуру данных Memo и -нисходящий алгоритм поиска на основе динамического программирования. - -Volcano разделяет поиск на две фазы: - -\begin{itemize} - \item \emph{фаза генерации} --- оптимизатор применяет правила трансформации - для порождения всех эквивалентных логических выражений. Применяется - рекурсивный нисходящий обход дерева: для каждого выражения сначала - исследуются дочерние выражения, затем применяются правила трансформации - к текущему выражению. Все порожденные выражения кэшируются в структуре - данных Memo для предотвращения дублирования. - - \item \emph{фаза стоимостного анализа} --- по завершении генерации всех - эквивалентных логических выражений оптимизатор ищет наилучший физический - план. Для каждого логического выражения применяются правила реализации, - порождающие физические операторы. Стоимость каждого физического плана - оценивается рекурсивно, и сохраняется наилучший найденный план. -\end{itemize} - -Поиск осуществляется нисходящим динамическим программированием с использованием -стратегии ветвей и границ: текущая верхняя граница стоимости передается при -рекурсивных вызовах и используется для отсечения заведомо неоптимальных планов. - -Основным недостаткам Volcano является полное раскрытие всех классов -эквивалентности на фазе генерации до начала стоимостного анализа, что приводит к -избыточным вычислениям. - -\section{Архитектура Cascades} - -Cascades --- это расширяемая архитектура оптимизатора запросов, являющаяся -логическим продолжением идеи Volcano~\cite{Graefe1995}. - -Основными объектами Cascades являются: - -\begin{itemize} - \item выражение --- дерево или фрагмент дерева, корнем которого является - логический либо физический оператор; - \item групповое выражение --- выражение, дочерние узлы которого являются - ссылками на группы Memo; - \item группа --- множество логически эквивалентных выражений, возвращающих - один и тот же результат; - \item правило трансформации --- правило, преобразующее логическое выражение в - логически эквивалентное выражение; - \item правило реализации --- правило, преобразующее логический оператор в - физический оператор; - \item физическое свойство --- требование относительно порядка, распределения, - разбиения или уникальности результата; - \item задача --- элементарная единица работы оптимизатора, например - исследование группы, применение правила или оптимизация выражения под - заданное свойство. -\end{itemize} - -Важным принципом данной архитектуры является то, что правила являются объектами -первого класса. Они определяются условиями применимости и собственно алгоритмом -применения. Предполагается, что система легко расширяется добавлением новых -правил, потому что все правила наследуются от общего интерфейса и имеют -одинаковую структуру. - -\subsection{Группы эквивалентности и выражения} - -Группа в Memo представляет собой множество выражений, которые эквивалентны с +\subsection{Обзор архитектур оптимизаторов} + +System~R, разработанный в IBM Research в конце 1970-х годов~\cite{Selinger1979}, +стал первым стоимостным оптимизатором. Его основная идея состоит в восходящем +динамическом программировании. Оптимизатор сначала выбирает лучшие методы +доступа к отдельным отношениям, затем строит лучшие планы для соединений из +двух, трех и большего числа отношений. Преимущество System~R заключается в +простоте и предсказуемости поиска, а также в учете стоимости ввода-вывода, +процессорных затрат и физических свойств операторов. Недостатки связаны с +ограниченной расширяемостью, ориентацией на левосторонние деревья соединений и +независимой оптимизацией вложенных подзапросов. + +Volcano~\cite{GraefeMcKenna1993} развивает стоимостный подход System~R, но +делает оптимизатор расширяемым за счет правил и структуры Memo. В отличие от +System~R, пространство эквивалентных выражений задается не жестко встроенным +алгоритмом, а набором правил трансформации и реализации. Поиск выполняется +нисходящим динамическим программированием и может учитывать требуемые физические +свойства. Преимущество Volcano состоит в модульности и возможности добавлять +новые преобразования и операторы без переписывания всего оптимизатора. Основной +недостаток заключается в разделении поиска на фазу генерации и фазу стоимостного +анализа: предварительное раскрытие всех классов эквивалентности может приводить +к избыточной работе. + +Cascades~\cite{Graefe1995} является развитием Volcano и сохраняет его ключевые +идеи: правила, Memo, физические свойства и стоимостный поиск. Главное отличие +Cascades состоит в том, что генерация альтернатив и стоимостная оптимизация не +разделяются на две независимые фазы, а чередуются через систему задач. Благодаря +этому оптимизатор может порождать только те альтернативы, которые нужны для +текущего поиска, раньше применять отсечения по стоимости и удобнее +распараллеливать независимые ветви. Недостатком Cascades является более сложная +реализация, так как требуется управлять состоянием групп, задачами поиска, +правилами и физическими свойствами. + +\subsection{Архитектура Cascades} + +В следующих разделах подробно рассматривается основные элементы архитектуры +оптимизаторов Cascades. + +\subsubsection{Группы эквивалентности и выражения} + +Группа представляет собой множество выражений, которые эквивалентны с точки зрения логического результата. Например, для отношений \(A\), \(B\) и \(C\) выражения \( \NJoin{A}{(\NJoin{B}{C})} ; \qquad{} \NJoin{(\NJoin{A}{B})}{C} \) при выполнении условий ассоциативности соединения принадлежат одной группе, @@ -797,28 +718,10 @@ \subsection{Группы эквивалентности и выражения} содержать множество альтернатив. Поэтому одно групповое выражение кодирует комбинацию многих конкретных деревьев, храня эту информацию компактно. -\subsection{Структура Memo} - -Memo является основной структурой данных Cascades. Оно выполняет сразу -несколько функций: устраняет дублирующиеся выражения, хранит альтернативы, -фиксирует результаты оптимизации под разными физическими свойствами и обеспечивает -точку синхронизации для задач поиска. - -Группа в Memo включает следующую информацию: - -\begin{itemize} - \item уникальный идентификатор группы; - \item список логических выражений; - \item список физических выражений; - \item логические свойства группы; - \item статистику и оценку кардинальности; - \item состояние исследования группы. -\end{itemize} - -Выражение, в свою очередь, содержит сам оператор, массив идентификаторов -дочерних групп. Для физического выражения дополнительно могут храниться -предоставляемые физические свойства, например сортировка выходного потока, и -рассчитанная стоимость исполнения этого оператора. +Memo является основной структурой данных для хранения групп эквивалентных +выражений в Cascades. Она выполняет функции устранения дублирующихся выражений, +хранит альтернативы, фиксирует результаты оптимизации под разными физическими +свойствами и является точкой синхронизации для задач поиска. \begin{listing} \caption{Пример запроса.} @@ -835,97 +738,13 @@ \subsection{Структура Memo} данными для операторов являются группы, поэтому общие подвыражения не дублируются. -\begin{figure}[H] - \centering - \begin{tikzpicture}[ - scale=0.85, transform shape, - group/.style={draw, rounded corners, text width=4.8cm, inner sep=5pt}, - arrow/.style={-{Stealth[length=2.5mm]}, thick}, - altarrow/.style={-{Stealth[length=2.5mm]}, thick, dashed} - ] - \node[group] (g5) at (6,0) { - \textbf{Группа G5}\\[2pt] - \hrule\vspace{2pt} - \textit{Логические:}\\ - Join(G4,G3)\\ - Join(G1,G6)\\[2pt] - \hrule\vspace{2pt} - \textit{Физические:}\\ - HashJoin(G4,G3)\\ - NestedLoopJoin(G4,G3)\\ - HashJoin(G1,G6)\\ - NestedLoopJoin(G1,G6) - }; - \node[group] (g4) at (3,-6) { - \textbf{Группа G4}\\[2pt] - \hrule\vspace{2pt} - \textit{Логические:}\\ - Join(G1,G2)\\[2pt] - \hrule\vspace{2pt} - \textit{Физические:}\\ - HashJoin(G1,G2)\\ - NestedLoopJoin(G1,G2) - }; - \node[group] (g6) at (9,-6) { - \textbf{Группа G6}\\[2pt] - \hrule\vspace{2pt} - \textit{Логические:}\\ - Join(G2,G3)\\[2pt] - \hrule\vspace{2pt} - \textit{Физические:}\\ - HashJoin(G2,G3)\\ - NestedLoopJoin(G2,G3) - }; - \node[group] (g1) at (0,-12) { - \textbf{Группа G1}\\[2pt] - \hrule\vspace{2pt} - \textit{Логические:}\\ - Scan(A)\\[2pt] - \hrule\vspace{2pt} - \textit{Физические:}\\ - SeqScan(A) - }; - \node[group] (g2) at (6,-12) { - \textbf{Группа G2}\\[2pt] - \hrule\vspace{2pt} - \textit{Логические:}\\ - Scan(B)\\[2pt] - \hrule\vspace{2pt} - \textit{Физические:}\\ - SeqScan(B) - }; - \node[group] (g3) at (12,-12) { - \textbf{Группа G3}\\[2pt] - \hrule\vspace{2pt} - \textit{Логические:}\\ - Scan(C)\\[2pt] - \hrule\vspace{2pt} - \textit{Физические:}\\ - SeqScan(C) - }; - - \draw[arrow] (g5) -- (g4); - \draw[arrow, rounded corners=5pt] - (g5.east) -- (15.5,0) -- (15.5,-12) -- (g3.east); - \draw[altarrow] (g5) -- (g6); - \draw[altarrow, rounded corners=5pt] - (g5.west) -- (-3.5,0) -- (-3.5,-12) -- (g1.west); - \draw[arrow] (g4) -- (g1); - \draw[arrow] (g4) -- (g2); - \draw[arrow] (g6) -- (g2); - \draw[arrow] (g6) -- (g3); - \end{tikzpicture} - \caption{Пример структуры Memo.}% - \label{fig:memo-structure} -\end{figure} - При добавлении нового выражения Memo выполняет проверку на дубликаты. Если -выражение уже существует в некоторой группе, оно не добавляется повторно. Если -алгоритм в процессе работы обнаруживает эквивалентность двух ранее различных -групп, то они могут быть объединены. При этом требуется обновление ссылок и -состояния правил. +выражение уже существует в некоторой группе, оно не добавляется повторно. В +случае, когда алгоритм в процессе работы обнаруживает эквивалентность двух ранее +различных групп, они эти группы объединяются в одну. При этом требуется +обновление ссылок и состояния правил. -\subsection{Алгоритм поиска} +\subsubsection{Алгоритм поиска} Cascades организует оптимизацию как выполнение набора задач. Задача может исследовать группу, исследовать выражение, применить правило, реализовать @@ -954,14 +773,7 @@ \subsection{Алгоритм поиска} накапливается полная стоимость и обновляется информация о лучшем плане. Параметр \texttt{limit} используется для отсечения заведомо дорогих вариантов. -\begin{figure}[H] -\centering -\includegraphics[width=0.8\textwidth]{cascades.pdf} -\caption{Схема взаимодействия задач в оптимизаторе Cascades}% -\label{fig:cascades-tasks} -\end{figure} - -\section{Правила трансформации и реализации}\label{sec:transformation_rules} +\subsection{Правила трансформации и реализации}\label{sec:transformation_rules} Правило в оптимизаторе Cascades состоит из образца, условия применимости и алгоритма применения. Образец описывает форму логического выражения, к которому @@ -979,12 +791,13 @@ \section{Правила трансформации и реализации}\labe выражение в группе, а для правил реализации физическое выражение в той же группе. -\subsection{Правила трансформации} - Правила трансформации задают эквивалентные преобразования логических выражений и тем самым определяют пространство планов, исследуемое оптимизатором. Наиболее важные из них представлены в таблице~\ref{tbl:transformation_rules}. +% TODO: может это вообще убрать? Или актуализировать... Еще нигде не описано как +% свойства выводятся + \begin{Definition} Null-отбрасывающим называется предикат, который при замене всех атрибутов соответствующей стороны на \texttt{NULL} принимает значение, отличное от @@ -1004,13 +817,9 @@ \subsection{Правила трансформации} сумму частичных сумм, \AVG{} --- в пару \SUM{} и \COUNT{}. \end{Definition} -\subsection{Правила реализации} - Правила реализации переводят логические операторы в физические. Используемые в настоящей работе правила собраны в таблице~\ref{tbl:implementation_rules}. -\subsection{Обеспечивающие операторы} - Физические свойства в Cascades обрабатываются через требуемые и предоставляемые свойства. Если родительский оператор требует вход, отсортированный по атрибуту \(a\), а выбранный дочерний план такого порядка не предоставляет, оптимизатор @@ -1022,7 +831,9 @@ \subsection{Обеспечивающие операторы} сортировкой может конкурировать с планом на основе соединения слиянием, которое сохраняет порядок результата. -\section{Метод ветвей и границ} +\subsubsection{Метод ветвей и границ} + +% актуализировать: формулы, алгос и у меня другая селективность... Метод ветвей и границ используется для сокращения пространства поиска и, как следствие, неасимптотического улучшения скорости работы алгоритма. В контексте @@ -1062,7 +873,7 @@ \section{Метод ветвей и границ} оператор транслирует глобальное требование \(P\) в конкретные требования \(P_1, \ldots, P_k\) к своим дочерним группам. -\subsection{Оценка кардинальности} +\subsubsection{Оценка кардинальности} Оценка кардинальности является процессом предсказания числа кортежей, возвращаемых оператором. @@ -1093,7 +904,7 @@ \subsection{Оценка кардинальности} ограничения на схему, а в современных исследованиях также модели машинного обучения. -\subsection{Оценка стоимости} +\subsubsection{Оценка стоимости} Функция стоимости сопоставляет физическому плану численную оценку затрат на его исполнение. Классическим считается представление стоимости в виде взвешенной @@ -1146,7 +957,7 @@ \subsection{Оценка стоимости} Для операторов \(\FilterOp\) и \(\ProjOp\) стоимость ввода-вывода равна \(0\), потому что это конвейерные операторы, которые не используют диск. -\section{Дифференциальный анализ физических планов} +\subsection{Дифференциальный анализ физических планов} Множество правил трансформации и реализации, используемых в оптимизаторах запросов, изучено довольно хорошо и описано в @@ -1163,10 +974,8 @@ \section{Дифференциальный анализ физических пл уточняли условия активации своих правил в течение многих лет. Не имея такого преимущества сложно добиться отличного качества построенных планов. -\subsection{Предлагаемый метод} - -Для поиска несоответствий между поведением реализуемой системы и внешней -эталонной системы предлагается применить дифференциальный анализ планов. +Решением может быть поиск несоответствий между поведением реализуемой системы и +внешней эталонной системы путем применения дифференциального анализа планов. Первым шагом нужно сформировать несколько наборов данных, состоящих из схем таблиц и их наполнения. Разные данные позволяют всесторонне исследовать правила @@ -1218,8 +1027,6 @@ \subsection{Предлагаемый метод} планы можно использовать как тесты для оптимизатора, которые будут успешно выполняться после уточнения соответвующих правил активации. -\subsection{Поиск ближайшего плана} - В случае невозможности построить ``эталонный'' план разрабатываемым оптимизатором, предлагается искать ближайший план, т.е. план из пространства поиска разрабатываемого оптимизатора, максимально близкий к плану промышленной @@ -1229,8 +1036,6 @@ \subsection{Поиск ближайшего плана} Анализ ближайшего плана может помочь упростить выявление трансформаций, которые разрабатываемый план по какой-то причине не применил. -\subsection{Область применения} - Предлагаемый метод дифференциального анализа применим для сравнения как с проприетарными системами, так и с СУБД с открытым исходным кодом, позволяя уточнять условия применения правил. @@ -1252,7 +1057,65 @@ \subsection{Область применения} % {\color{red} TODO: описать как нормализовать и т.п.} -\section{Реализация} +\section{Конструкторская часть} + +В рамках данной работы был разработан оптимизатор запросов для модельной +реляционной СУБД. + +Структурно реализация модельной СУБД состоит из следующих модулей: +\begin{itemize} + \item модуль синтаксического анализа SQL-запросов; + \item модуль построения логического представления запроса; + \item модуль стоимостной оптимизации на основе структуры Memo; + \item подсистема физического хранения на основе статических CSV-таблиц; + \item модуль исполнения физических операторов. +\end{itemize} + +Основой для проектирования оптимизатора была выбрана архитектура Cascades. В ней +пространство допустимых планов формируется с помощью набора правил +преобразования и хранится в структуре Memo. Эта структура объединяет логически +эквивалентные выражения в группы, что позволяет избежать повторного рассмотрения +одинаковых поддеревьев. Поиск оптимального физического плана выполняется с учетом +стоимостной модели и требуемых свойств результата, например порядка сортировки. + +Данная архитектура была выбрана по причине ее модульности и расширяемости. +Добавление новых логических преобразований и физических операторов выполняется +путем реализации отдельных правил и не требует изменения основного алгоритма +поиска. Это также удобно для итеративного процесса разработки, предполагающего +постепенное улучшение качества итоговых планов путем уточнения и расширения +пространства поиска. + +Модуль синтаксического анализа SQL-запросов отвечает за лексический и +синтаксический разбор поступающих на вход SQL-запросов. Для реализации этого +модуля было решено использовать генератор синтаксических и лексических +анализаторов, ввиду того, что грамматика SQL является очень объемной, и +использование готового формального описания для генератора гарантирует +совместимость с одним из диалектов языка. + +Модуль построения логического представления запроса отвечает за преобразование +результата синтаксического анализа во внутреннее представление, пригодное для +оптимизации. В качестве такого представления решено использовать дерево +операторов реляционной алгебры. Этот подход является общепринятым и позволяет +отделить особенности синтаксиса SQL от последующих этапов обработки запроса, а +также выполнять оптимизацию над ограниченным набором формализованных операций: +фильтрацией, проекцией, соединением, агрегацией и сортировкой. + +Подсистема физического хранения отвечает за предоставление модулю исполнения +табличных данных. Для хранения выбраны статические таблицы в формате CSV. +Использование простого текстового формата позволяет сосредоточиться на +проектировании оптимизатора и не усложнять прототип реализацией транзакций, +индексов, буферного кэша и управления дисковыми страницами. Кроме того, +CSV-файлы удобно создавать, изменять и использовать при проведении тестов. + +Модуль исполнения физических операторов отвечает за выполнение выбранного +оптимизатором плана и формирование результата запроса. Физический план решено +представлять в виде дерева операторов с единым интерфейсом взаимодействия. +Каждый оператор получает данные от дочерних узлов, выполняет определенное +преобразование и передает результат вышестоящему оператору. Такой подход +обеспечивает модульность подсистемы исполнения и позволяет добавлять новые +физические операторы независимо от уже реализованных. + +\section{Технологическая часть} Программа написана на языке C++ с использованием стандарта C++23. Этот язык популярен в сфере разработки СУБД, являясь достаточно низкоуровневым и @@ -2420,6 +2283,97 @@ \subsection{Калибровка стоимостной модели} \anonsection{ПРИЛОЖЕНИЕ А} \vspace{-30pt} +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{cascades.pdf} +\caption{Схема взаимодействия задач в оптимизаторе Cascades}% +\label{fig:cascades-tasks} +\end{figure} + +\begin{figure}[H] + \centering + \begin{tikzpicture}[ + scale=0.85, transform shape, + group/.style={draw, rounded corners, text width=4.8cm, inner sep=5pt}, + arrow/.style={-{Stealth[length=2.5mm]}, thick}, + altarrow/.style={-{Stealth[length=2.5mm]}, thick, dashed} + ] + \node[group] (g5) at (6,0) { + \textbf{Группа G5}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G4,G3)\\ + Join(G1,G6)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G4,G3)\\ + NestedLoopJoin(G4,G3)\\ + HashJoin(G1,G6)\\ + NestedLoopJoin(G1,G6) + }; + \node[group] (g4) at (3,-6) { + \textbf{Группа G4}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G1,G2)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G1,G2)\\ + NestedLoopJoin(G1,G2) + }; + \node[group] (g6) at (9,-6) { + \textbf{Группа G6}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G2,G3)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G2,G3)\\ + NestedLoopJoin(G2,G3) + }; + \node[group] (g1) at (0,-12) { + \textbf{Группа G1}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(A)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(A) + }; + \node[group] (g2) at (6,-12) { + \textbf{Группа G2}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(B)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(B) + }; + \node[group] (g3) at (12,-12) { + \textbf{Группа G3}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(C)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(C) + }; + + \draw[arrow] (g5) -- (g4); + \draw[arrow, rounded corners=5pt] + (g5.east) -- (15.5,0) -- (15.5,-12) -- (g3.east); + \draw[altarrow] (g5) -- (g6); + \draw[altarrow, rounded corners=5pt] + (g5.west) -- (-3.5,0) -- (-3.5,-12) -- (g1.west); + \draw[arrow] (g4) -- (g1); + \draw[arrow] (g4) -- (g2); + \draw[arrow] (g6) -- (g2); + \draw[arrow] (g6) -- (g3); + \end{tikzpicture} + \caption{Пример структуры Memo.}% + \label{fig:memo-structure} +\end{figure} + \begin{algorithm}[H] \caption{Алгоритм поиска (часть 1).}% \label{alg:cascades-search} From dc80227234dc498dc045c4e1004eb8a5a7860a4e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 20:55:39 +0300 Subject: [PATCH 084/120] Refactor report --- report/vkr.tex | 58 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 0471c91..1a462dc 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1085,12 +1085,34 @@ \section{Конструкторская часть} постепенное улучшение качества итоговых планов путем уточнения и расширения пространства поиска. +\subsection{Модули синтаксического анализа и построения логического представления} + Модуль синтаксического анализа SQL-запросов отвечает за лексический и -синтаксический разбор поступающих на вход SQL-запросов. Для реализации этого -модуля было решено использовать генератор синтаксических и лексических -анализаторов, ввиду того, что грамматика SQL является очень объемной, и -использование готового формального описания для генератора гарантирует -совместимость с одним из диалектов языка. +синтаксический разбор поступающих на вход SQL-запросов. В качестве основы для +грамматики выбран диалект PostgreSQL, так как он широко используется на практике +и имеет открытый исходный код. Использование готовой грамматики из официального +репозитория~\cite{PostgresBisonGrammar} гарантирует совместимость. + +В рамках работы поддерживается подмножество диалекта PostgreSQL, достаточное для +исследования оптимизации запросов на чтение данных. В него входят операторы +\SELECT{} с предложениями \FROM, \WHERE, \GROUPBY{} и \ORDERBY{}, выбор всех +столбцов или списка выражений, псевдонимы, соединения \JOIN, \sqlkw{INNER JOIN}, +\sqlkw{LEFT JOIN}, \sqlkw{RIGHT JOIN}, \sqlkw{FULL JOIN} с условием \sqlkw{ON}, +а также \sqlkw{CROSS JOIN}. Для группировки поддерживаются обычные выражения в +\GROUPBY{} и агрегатные функции \SUM{}, \COUNT{} и \sqlkw{COUNT(*)}. Сортировка +результата задается через \ORDERBY{} по ссылкам на столбцы в прямом или обратном +порядке. + +Поддерживаемые скалярные выражения включают ссылки на столбцы, целочисленные +константы, строковые литералы в одинарных кавычках, значения \sqlkw{NULL}, +\sqlkw{TRUE}, \sqlkw{FALSE} и \sqlkw{UNKNOWN}, арифметические операции сложения, +вычитания, умножения, деления, остатка от деления и возведения в степень, а +также унарный минус. В предикатах поддерживаются операции сравнения, логические +связки \sqlkw{AND}, \sqlkw{OR} и \sqlkw{NOT}, проверки \sqlkw{IS NULL}, +\sqlkw{IS TRUE}, \sqlkw{IS FALSE}, \sqlkw{IS UNKNOWN}, условия \sqlkw{BETWEEN} и +\sqlkw{IN} со списком значений. Такое подмножество покрывает основные +конструкции, влияющие на построение логического плана: проекцию, фильтрацию, +соединение, агрегацию и требование сортировки результата. Модуль построения логического представления запроса отвечает за преобразование результата синтаксического анализа во внутреннее представление, пригодное для @@ -1100,6 +1122,8 @@ \section{Конструкторская часть} также выполнять оптимизацию над ограниченным набором формализованных операций: фильтрацией, проекцией, соединением, агрегацией и сортировкой. +\subsection{Модули физического хранения и исполнения} + Подсистема физического хранения отвечает за предоставление модулю исполнения табличных данных. Для хранения выбраны статические таблицы в формате CSV. Использование простого текстового формата позволяет сосредоточиться на @@ -1107,6 +1131,16 @@ \section{Конструкторская часть} индексов, буферного кэша и управления дисковыми страницами. Кроме того, CSV-файлы удобно создавать, изменять и использовать при проведении тестов. +Данные хранятся в одной директории, где каждому отношению соответствует +файл с CSV-таблицей. Название файла совпадает с названием отношения. +Первая строка CSV-файла содержит описание атрибутов и их типов, +последующие строки содержат кортежи отношения. + +Дополнительно предусмотрена поддержка индексов. Индекс представляет собой +отсортированный бинарный файл, содержащий целочисленные ключи и смещения +соответствующих строк в CSV-файле. Использование смещений позволяет +извлекать подходящие кортежи без полного сканирования отношения. + Модуль исполнения физических операторов отвечает за выполнение выбранного оптимизатором плана и формирование результата запроса. Физический план решено представлять в виде дерева операторов с единым интерфейсом взаимодействия. @@ -1115,6 +1149,10 @@ \section{Конструкторская часть} обеспечивает модульность подсистемы исполнения и позволяет добавлять новые физические операторы независимо от уже реализованных. +\subsection{Модуль стоимостной оптимизации планов} + + + \section{Технологическая часть} Программа написана на языке C++ с использованием стандарта C++23. Этот язык @@ -1644,11 +1682,6 @@ \subsubsection{Формирование физического плана} \subsection{Модуль физического хранения данных} -Данные хранятся в одной директории, где каждому отношению соответствует -файл с CSV-таблицей. Название файла совпадает с названием отношения. -Первая строка CSV-файла содержит описание атрибутов и их типов, -последующие строки содержат кортежи отношения. - Для чтения таблиц реализован класс \verb|CsvDirSequentialScanner|~\refAlgo{lst:csv-dir-scanners}. Он выполняет последовательное сканирование CSV-файла и передает прочитанные @@ -1681,11 +1714,6 @@ \subsection{Модуль физического хранения данных} \end{minted} \end{listing} -Дополнительно реализована поддержка индексов. Индекс представляет собой -отсортированный бинарный файл, содержащий целочисленные ключи и смещения -соответствующих строк в CSV-файле. Использование смещений позволяет -извлекать подходящие кортежи без полного сканирования отношения. - Список доступных индексов задается в файле \verb|indexes.meta|, расположенном в директории с данными. Каждая строка файла содержит название отношения, название индексируемого атрибута, тип индекса и имя From 061024efdff25f4da16edc1a95ddbcbefd4e0121 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 21:17:53 +0300 Subject: [PATCH 085/120] wip --- report/vkr.tex | 118 +++++++++++++++++++++++++++++++------------------ 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 1a462dc..b83149e 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1151,7 +1151,69 @@ \subsection{Модули физического хранения и исполн \subsection{Модуль стоимостной оптимизации планов} +Модуль стоимостной оптимизации планов принимает на вход логическое представление +запроса и строит физический план исполнения с минимальной оцененной стоимостью. +В качестве основы выбран подход Cascades. Исходное дерево логических операторов +помещается в структуру Memo, после чего оптимизатор постепенно расширяет +пространство поиска с помощью правил преобразования и правил реализации. Такой +подход позволяет не хранить каждое дерево плана отдельно, а компактно +представлять множество эквивалентных вариантов через группы Memo. + +Каждая группа Memo соответствует множеству логически эквивалентных выражений, +то есть выражений, возвращающих один и тот же результат. Логические выражения +содержат ссылки на дочерние группы, поэтому один узел может представлять сразу +несколько вариантов построения поддерева. В процессе оптимизации в группы +добавляются как новые логические выражения, полученные правилами +трансформации, так и физические выражения, полученные правилами реализации. +Правило трансформации создает новое логическое выражение и добавляет его в +ту же группу Memo, что и исходное выражение. Следовательно, правило должно +сохранять семантику запроса. Правило реализации создает физическое выражение, +которое может быть передано модулю исполнения. + +Реализованы следующие трансформационные правила: +\begin{itemize} + \item коммутативность соединения; + \item ассоциативность соединения; + \item разбиение конъюнкции на последовательность фильтров; + \item объединение последовательных фильтров; + \item проталкивание фильтра через проекцию; + \item проталкивание фильтра во входы соединения; + \item преобразование выражения \verb|IN| в цепочку сравнений. +\end{itemize} + +И следующие правила реализации: +\begin{itemize} + \item последовательное сканирование таблицы; + \item фильтрацию; + \item проекцию; + \item агрегацию; + \item декартово произведение вложенными циклами; + \item соединение вложенными циклами; + \item хеш-соединение. +\end{itemize} + +% TODO: какой-то вывод о покрытии правилами или почему такие правила выбраны +% а у меня где-то описаны сами правила? + +Выбор лучшего плана выполняется на основе стоимостной модели. Стоимость +физического оператора рассчитывается с учетом оценок кардинальности входных и +выходных групп, а для хеш-соединения дополнительно учитывается ширина кортежей, +полученная из схемы отношений. Кардинальность базовых отношений берется из +описания входных таблиц, а для фильтров, соединений, агрегаций и проекций +оценивается эвристически. Чтобы сократить перебор, оптимизатор использует метод +ветвей и границ: если локальная стоимость или нижняя оценка стоимости поддерева +уже превышает текущий лучший результат, соответствующая ветвь пространства +поиска не рассматривается дальше. + +% Тут наверное стоит расписать выбранные формулы и обосновать + +Отдельно учитываются физические свойства результата. В данной работе таким +свойством является порядок строк, требуемый предложением \ORDERBY{}. Если +выбранный план не обеспечивает требуемую сортировку, оптимизатор может добавить +обеспечивающий физический оператор сортировки и сравнить его стоимость с +другими альтернативами. Результатом работы модуля является дерево физических +операторов, которое передается в модуль исполнения. \section{Технологическая часть} @@ -1313,26 +1375,8 @@ \subsubsection{Правила оптимизации} \end{minted} \end{listing} -Правило трансформации создает новое логическое выражение и добавляет его в -ту же группу Memo, что и исходное выражение. Следовательно, правило должно -сохранять семантику запроса. Правило реализации создает физическое выражение, -которое может быть передано модулю исполнения. - -Реализованы следующие трансформационные правила: -\begin{itemize} - \item коммутативность соединения; - \item ассоциативность соединения; - \item разбиение конъюнкции на последовательность фильтров; - \item объединение последовательных фильтров; - \item проталкивание фильтра через проекцию; - \item проталкивание фильтра во входы соединения; - \item преобразование выражения \verb|IN| в цепочку сравнений. -\end{itemize} - -Например, правило коммутативности преобразует выражение $A \Join B$ в -$B \Join A$. Для левого и правого внешнего соединения одновременно изменяется -тип соединения. Реализация правила приведена в -листинге~\ref{lst:join-commutativity}. +В качестве примера в листинге~\ref{lst:join-commutativity} приведено правило +коммутативности соединений. \begin{listing}[H] \caption{Правило коммутативности соединения.} @@ -1354,27 +1398,8 @@ \subsubsection{Правила оптимизации} \end{minted} \end{listing} -Правило проталкивания фильтра через соединение разбивает предикат на конъюнкты. -Каждый конъюнкт анализируется отдельно. Если он ссылается только на атрибуты -одного входа соединения, фильтр переносится ближе к соответствующей таблице. Это -позволяет уменьшить число кортежей до выполнения соединения. Для внешних -соединений учитывается направление: фильтр нельзя переносить в такой вход, для -которого это изменит семантику результата. - -Реализационные правила создают: -\begin{itemize} - \item последовательное сканирование таблицы; - \item фильтрацию; - \item проекцию; - \item агрегацию; - \item декартово произведение вложенными циклами; - \item соединение вложенными циклами; - \item хеш-соединение. -\end{itemize} - -Хеш-соединение применяется только для внутреннего эквисоединения двух атрибутов. -Для остальных условий доступно соединение вложенными циклами. Проверка -применимости правила приведена в листинге~\ref{lst:implement-hash-join}. +Пример метода для проверки применимости правила приведен в +листинге~\ref{lst:implement-hash-join}. \begin{listing}[H] \caption{Проверка применимости хеш-соединения.} @@ -1546,15 +1571,20 @@ \subsubsection{Алгоритм поиска} вычисляется полная стоимость с учетом дочерних групп. Для каждой пары из группы и требуемого набора свойств хранится лучший найденный -вариант. Ключ такого варианта представлен структурой \verb|WinnerKey|: +вариант. Ключ такого варианта представлен структурой +\verb|WinnerKey|~\refAlgo{winner-key}. -\begin{minted}[style=bw, breaklines, frame=single, - fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +\begin{listing}[H] + \caption{Ключ для хранения лучшего плана по группе и свойствам.} + \label{lst:winner-key} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} struct WinnerKey { Group* group; PropertySet required; }; \end{minted} +\end{listing} Хранение победителя отдельно для каждого набора свойств необходимо, поскольку самый дешевый неотсортированный план может отличаться от самого дешевого плана, From 90f30ec79c49ed3372442558cb8dae2eedf14338 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 21:42:57 +0300 Subject: [PATCH 086/120] wip --- report/vkr.tex | 74 ++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index b83149e..8863bb4 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -331,13 +331,13 @@ \subsection{Реляционная алгебра} левой и используется для представления коррелированных подзапросов. \end{enumerate} -\subsection{Преобразование синтаксического дерева к реляционной алгебре}\label{sec:translation} +\subsection{Преобразование синтаксического дерева в реляционную алгебру}\label{sec:translation} Полученное после лексического и синтаксического разбора абстрактное -синтаксическое дерево преобразуется в выражение реляционной алгебры. Этот -процесс определяется структурной индукцией по дереву запроса. Введём оператор -конверсии \(\Tr{\cdot}\), сопоставляющий узлу синтаксического дерева его -алгебраическое представление. Тогда правила трансляции записываются в виде +синтаксическое дерево преобразуется в выражение в форме реляционной алгебры. +Этот процесс определяется структурной индукцией по дереву запроса. Введём +оператор конверсии \(\Tr{\cdot}\), сопоставляющий узлу синтаксического дерева +его алгебраическое представление. Тогда правила трансляции записываются в виде правил вывода. Если для всех поддеревьев известны алгебраические представления, то алгебраическое представление составной конструкции выражается через них. @@ -1193,20 +1193,40 @@ \subsection{Модуль стоимостной оптимизации план \item хеш-соединение. \end{itemize} -% TODO: какой-то вывод о покрытии правилами или почему такие правила выбраны -% а у меня где-то описаны сами правила? +% TODO: актуализировать и сделать какой-то вывод о покрытии правилами или почему такие правила выбраны Выбор лучшего плана выполняется на основе стоимостной модели. Стоимость физического оператора рассчитывается с учетом оценок кардинальности входных и -выходных групп, а для хеш-соединения дополнительно учитывается ширина кортежей, -полученная из схемы отношений. Кардинальность базовых отношений берется из -описания входных таблиц, а для фильтров, соединений, агрегаций и проекций -оценивается эвристически. Чтобы сократить перебор, оптимизатор использует метод -ветвей и границ: если локальная стоимость или нижняя оценка стоимости поддерева -уже превышает текущий лучший результат, соответствующая ветвь пространства -поиска не рассматривается дальше. +выходных групп. Формулы для вычисления стоимости откалиброваны по результатам +бенчмарков и представлены в табилце~\ref{tbl:cost-model-coefficients}. +Кардинальность базовых отношений берется из описания входных таблиц, а для +фильтров, соединений, агрегаций и проекций оценивается эвристически. Чтобы +сократить перебор, оптимизатор использует метод ветвей и границ. Если локальная +стоимость или нижняя оценка стоимости поддерева уже превышает текущий лучший +результат, соответствующая ветвь пространства поиска не рассматривается дальше. -% Тут наверное стоит расписать выбранные формулы и обосновать +\begin{table}[H] + \centering + \caption{Стоимостные формулы физических операторов.} + \label{tbl:cost-model-coefficients} + \small + \begin{tabular}{|p{0.40\textwidth}|l|} + \hline + Физический оператор & Формула стоимости \\ + \hline + Последовательное сканирование & $100\,n$ \\ + Фильтрация & $100\,n_{out}$ \\ + Проекция & $22\,n_{out}$ \\ + Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ + Агрегация & $510\,n$ \\ + Соединение вложенными циклами & $70\,n_l n_r$ \\ + Декартово произведение & $104\,n_l n_r$ \\ + Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ + \hline + \end{tabular} +\end{table} + +% TODO: таблица с формулами для селективности и обоснование Отдельно учитываются физические свойства результата. В данной работе таким свойством является порядок строк, требуемый предложением \ORDERBY{}. Если @@ -2282,30 +2302,6 @@ \subsection{Калибровка стоимостной модели} \label{fig:cost-model-calibration} \end{figure} -Стоимостные формулы физических операторов, полученные по результатам -калибровки, приведены в таблице~\ref{tbl:cost-model-coefficients}. - -\begin{table}[H] - \centering - \caption{Стоимостные формулы физических операторов.} - \label{tbl:cost-model-coefficients} - \small - \begin{tabular}{|p{0.40\textwidth}|l|} - \hline - Физический оператор & Формула стоимости \\ - \hline - Последовательное сканирование & $100\,n$ \\ - Фильтрация & $100\,n_{out}$ \\ - Проекция & $22\,n_{out}$ \\ - Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ - Агрегация & $510\,n$ \\ - Соединение вложенными циклами & $70\,n_l n_r$ \\ - Декартово произведение & $104\,n_l n_r$ \\ - Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ - \hline - \end{tabular} -\end{table} - \anonsection{ЗАКЛЮЧЕНИЕ} В ходе практики разработана модельная СУБД и оптимизатор для нее. Программа From 162619b72ec12122eb92d4465aa521fe22fd9f21 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sat, 6 Jun 2026 21:57:27 +0300 Subject: [PATCH 087/120] wip --- report/vkr.tex | 394 +++++++++++++++++++++++++------------------------ 1 file changed, 199 insertions(+), 195 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 8863bb4..6d2c316 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1205,28 +1205,73 @@ \subsection{Модуль стоимостной оптимизации план стоимость или нижняя оценка стоимости поддерева уже превышает текущий лучший результат, соответствующая ветвь пространства поиска не рассматривается дальше. +Для оценки кардинальности промежуточных результатов используется коэффициент +селективности \(sel(p)\), показывающий долю кортежей, удовлетворяющих предикату +\(p\). Используемые формулы приведены в таблице~\ref{tbl:selectivity-model}. + \begin{table}[H] \centering - \caption{Стоимостные формулы физических операторов.} - \label{tbl:cost-model-coefficients} + \caption{Формулы оценки селективности предикатов.} + \label{tbl:selectivity-model} \small - \begin{tabular}{|p{0.40\textwidth}|l|} + \begin{tabular}{|p{0.42\textwidth}|p{0.42\textwidth}|} \hline - Физический оператор & Формула стоимости \\ + Вид предиката & Формула селективности \\ \hline - Последовательное сканирование & $100\,n$ \\ - Фильтрация & $100\,n_{out}$ \\ - Проекция & $22\,n_{out}$ \\ - Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ - Агрегация & $510\,n$ \\ - Соединение вложенными циклами & $70\,n_l n_r$ \\ - Декартово произведение & $104\,n_l n_r$ \\ - Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ + \(a = c\), где \(a\) --- атрибут, \(c\) --- константа + & \(sel(a = c) = 0{,}10\) \\ + \hline + \(a < b\), \(a > b\), \(a \le b\), \(a \ge b\) + & \(sel(p) = 0{,}50\) \\ + \hline + \(p_1 \land p_2\) + & \(sel(p_1 \land p_2) = sel(p_1) \cdot sel(p_2)\) \\ + \hline + \(p_1 \lor p_2\) + & \(sel(p_1 \lor p_2) = + sel(p_1) + sel(p_2) - sel(p_1) \cdot sel(p_2)\) \\ + \hline + \(\lnot p\) + & \(sel(\lnot p) = 1 - sel(p)\) \\ + \hline + \(a \in \{c_1, \ldots, c_k\}\) + & \(sel(p) = \min(0{,}50,\; 0{,}10k)\) \\ + \hline + \(a \notin \{c_1, \ldots, c_k\}\) + & \(sel(p) = 1 - \min(0{,}50,\; 0{,}10k)\) \\ + \hline + \(a = b\) в условии соединения, где \(a\) и \(b\) --- атрибуты разных входов + & \(sel(a = b) = \frac{1}{\max(1,\; \max(n_l, n_r))}\) \\ + \hline + \(\theta_1 \land \theta_2\) в условии соединения + & \(sel(\theta_1 \land \theta_2) = + sel(\theta_1) \cdot sel(\theta_2)\) \\ + \hline + Иной или неизвестный предикат фильтрации + & \(sel(p) = 0{,}50\) \\ + \hline + Иной или неизвестный предикат соединения + & \(sel(\theta) = 1\) \\ \hline \end{tabular} \end{table} -% TODO: таблица с формулами для селективности и обоснование +Такие формулы выбраны как простая эвристическая модель, не требующая гистограмм, +сведений о количестве различных значений и статистик корреляции между +атрибутами. Равенство атрибута константе считается достаточно селективным, +поэтому ему сопоставляется коэффициент \(0{,}10\). Диапазонные и неизвестные +условия оцениваются нейтральным коэффициентом \(0{,}50\), так как без статистики +нельзя надежно определить, какую часть отношения они оставят. Для \sqlkw{IN} +используется сумма селективностей отдельных равенств с верхней границей +\(0{,}50\), чтобы длинный список значений не делал оценку слишком оптимистичной. + +Формулы для \sqlkw{AND}, \sqlkw{OR} и \sqlkw{NOT} основаны на предположении +независимости предикатов. Для эквисоединения двух атрибутов используется оценка +\(1 / \max(n_l, n_r)\), соответствующая типичному случаю соединения по ключу или +внешнему ключу, размер результата в таком случае оказывается сопоставим с +размером большего входа, а не с полным декартовым произведением. Для неизвестных +условий соединения применяется селективность \(1\), чтобы не занижать стоимость +плана при отсутствии надежной информации. Отдельно учитываются физические свойства результата. В данной работе таким свойством является порядок строк, требуемый предложением \ORDERBY{}. Если @@ -1480,24 +1525,7 @@ \subsubsection{Оценка кардинальности} \subsubsection{Стоимостная модель} Стоимость плана вычисляется как сумма локальных стоимостей физических -операторов. Коэффициенты были подобраны с помощью бенчмарков отдельных -операторов, описанных в разделе тестирования. - -Для входных кардинальностей $N$, $N_l$ и $N_r$ используются следующие формулы: -\[ -\begin{aligned} - C_{\text{scan}} &= 100N, \\ - C_{\text{filter}} &= 100N, \\ - C_{\text{projection}} &= 22N, \\ - C_{\text{aggregation}} &= 510N, \\ - C_{\text{nested-loop join}} &= 70N_lN_r, \\ - C_{\text{cross join}} &= 104N_lN_r, \\ - C_{\text{hash join}} &= 69(N_l + N_r), \\ - C_{\text{sort}} &\approx 11N\log_2N. -\end{aligned} -\] - -Фрагмент реализации стоимостной модели приведен в +операторов. Фрагмент реализации стоимостной модели приведен в листинге~\ref{lst:optimizer-cost}. \begin{listing}[H] @@ -1902,19 +1930,23 @@ \subsubsection{Запуск программы} Имя каждого файла без расширения считается именем таблицы. В заголовке каждого файла для столбца указывается имя и тип через двоеточие. Поддерживаются типы \texttt{int} и \texttt{string}. Пустое SQL-значение записывается как -\texttt{NULL}. - -Для первого запуска можно использовать готовые тестовые данные в \verb|test/static/executor/test_data|. - -SQL-запрос передается программе через стандартный поток ввода. Простейший -пример запуска представлен на листинге~\ref{lst:run-example}. +\texttt{NULL}. Для первого запуска можно использовать готовые тестовые данные в +\verb|test/static/executor/test_data|. SQL-запрос передается программе через +стандартный поток ввода. Простейший пример запуска представлен на +листинге~\ref{lst:run-example}. \begin{listing}[H] - \caption{Простейший пример запуска программы.} + \caption{Примеры команд для запуска программы.} \label{lst:run-example} \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} echo 'SELECT users.id FROM users;' | \ ./build/bin/sql --data-dir test/static/executor/test_data + + +echo 'SELECT users.id FROM users WHERE users.age > 18 \ +ORDER BY users.id;' | \ + ./build/bin/sql --data-dir test/static/executor/test_data \ + --print-ast --print-plan \end{minted} \end{listing} @@ -1929,63 +1961,50 @@ \subsubsection{Запуск программы} \label{fig:practice-run} \end{figure} -\subsubsection{Вывод логического и физического планов} - Для диагностики предусмотрены параметры \texttt{--print-ast} и \texttt{--print-plan}. Первый параметр выводит логическое дерево после синтаксического анализа, второй --- выбранный физический план. -Пример использования представлен на листинге~\ref{lst:run-plan}. - -\begin{listing}[H] - \caption{Запуск программы с выводом логического дерева и физического плана.} - \label{lst:run-plan} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{bash} -echo 'SELECT users.id FROM users WHERE users.age > 18 \ -ORDER BY users.id;' | \ - ./build/bin/sql --data-dir test/static/executor/test_data \ - --print-ast --print-plan - \end{minted} -\end{listing} - -\begin{figure}[H] -\centering -\includegraphics[width=0.8\textwidth]{run-with-prints.png} -\caption{Вывод логического дерева и физического плана}% -\label{fig:practice-plan} -\end{figure} - -Для проверки полноты набора правил оптимизации предусмотрен режим -\verb|--check-reachable|. В этом режиме программа получает SQL-запрос и -сериализованный физический план, после чего выполняет полный перебор -пространства поиска без отсечения по стоимости. Если заданный план может быть -получен с помощью реализованных правил, программа выводит сообщение -\verb|REACHABLE|. - -План передается в отдельном файле в формате S-expression. Например, содержимое -файла \verb|target.plan| может иметь вид, представленный на листинге~\ref{lst:target-plan}. - -\begin{listing}[H] - \caption{Пример содержимого файла с целевым физическим планом.} - \label{lst:target-plan} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -(PhysicalProjection (exprs (attr users id)) - (PhysicalFilter (> (attr users age) 18) - (SeqScan users))) - \end{minted} -\end{listing} - -Проверка выполняется командой на листинге~\ref{lst:check-reachable}. - -\begin{listing}[H] - \caption{Запуск программы в режиме проверки достижимости плана.} - \label{lst:check-reachable} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -echo 'SELECT users.id FROM users WHERE users.age > 18;' | \ - ./build/bin/sql \ - --data-dir test/static/executor/test_data \ - --check-reachable target.plan - \end{minted} -\end{listing} +Пример использования представлен на листинге~\ref{lst:run-example}. + +% \begin{figure}[H] +% \centering +% \includegraphics[width=0.8\textwidth]{run-with-prints.png} +% \caption{Вывод логического дерева и физического плана}% +% \label{fig:practice-plan} +% \end{figure} + +% Для проверки полноты набора правил оптимизации предусмотрен режим +% \verb|--check-reachable|. В этом режиме программа получает SQL-запрос и +% сериализованный физический план, после чего выполняет полный перебор +% пространства поиска без отсечения по стоимости. Если заданный план может быть +% получен с помощью реализованных правил, программа выводит сообщение +% \verb|REACHABLE|. + +% План передается в отдельном файле в формате S-expression. Например, содержимое +% файла \verb|target.plan| может иметь вид, представленный на листинге~\ref{lst:target-plan}. + +% \begin{listing}[H] +% \caption{Пример содержимого файла с целевым физическим планом.} +% \label{lst:target-plan} +% \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +% (PhysicalProjection (exprs (attr users id)) +% (PhysicalFilter (> (attr users age) 18) +% (SeqScan users))) +% \end{minted} +% \end{listing} + +% Проверка выполняется командой на листинге~\ref{lst:check-reachable}. + +% \begin{listing}[H] +% \caption{Запуск программы в режиме проверки достижимости плана.} +% \label{lst:check-reachable} +% \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +% echo 'SELECT users.id FROM users WHERE users.age > 18;' | \ +% ./build/bin/sql \ +% --data-dir test/static/executor/test_data \ +% --check-reachable target.plan +% \end{minted} +% \end{listing} Если план недостижим, программа выводит сообщение \verb|NOT REACHABLE| и описание первого обнаруженного расхождения. Параметр \verb|--data-dir| @@ -2006,127 +2025,91 @@ \subsubsection{Вывод логического и физического пл \end{minted} \end{listing} -Для запуска модульных тестов C++ следует выполнить команду на листинге~\ref{lst:ctest}. - -\begin{listing}[H] - \caption{Запуск модульных тестов C++.} - \label{lst:ctest} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -ctest --test-dir build --output-on-failure - \end{minted} -\end{listing} - -Модульные тесты проверяют синтаксический анализ запросов, вычисление выражений, -исполнение физических операторов, индексное сканирование, сериализацию планов, -структуру Memo, правила оптимизации и физические свойства. - -Для запуска Python-тестов преобразователя планов Microsoft SQL Server -необходимо предварительно запустить контейнер, после чего выполнить команды на листинге~\ref{lst:pytest-converter}. - -\begin{listing}[H] - \caption{Запуск тестов преобразователя планов Microsoft SQL Server.} - \label{lst:pytest-converter} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -cd research -pytest -q test_converter.py -cd .. - \end{minted} -\end{listing} - -Тесты инструментов Star Schema Benchmark запускаются командой на листинге~\ref{lst:pytest-ssb}. - -\begin{listing}[H] - \caption{Запуск тестов инструментов Star Schema Benchmark.} - \label{lst:pytest-ssb} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -pytest -q benchmarks/datasets/ssb - \end{minted} -\end{listing} +% Модульные тесты проверяют синтаксический анализ запросов, вычисление выражений, +% исполнение физических операторов, индексное сканирование, сериализацию планов, +% структуру Memo, правила оптимизации и физические свойства. + +% Для запуска Python-тестов преобразователя планов Microsoft SQL Server +% необходимо предварительно запустить контейнер, после чего выполнить команды на листинге~\ref{lst:pytest-converter}. + +% \begin{listing}[H] +% \caption{Запуск тестов преобразователя планов Microsoft SQL Server.} +% \label{lst:pytest-converter} +% \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +% cd research +% pytest -q test_converter.py +% cd .. +% \end{minted} +% \end{listing} + +% Тесты инструментов Star Schema Benchmark запускаются командой на листинге~\ref{lst:pytest-ssb}. + +% \begin{listing}[H] +% \caption{Запуск тестов инструментов Star Schema Benchmark.} +% \label{lst:pytest-ssb} +% \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +% pytest -q benchmarks/datasets/ssb +% \end{minted} +% \end{listing} Для поиска ошибок исполнения реализован дифференциальный фаззер. Он генерирует случайные SQL-запросы, выполняет их в модельной СУБД и Microsoft SQL Server, после чего сравнивает полученные результаты. Перед запуском необходимо поднять -контейнер с Microsoft SQL Server. - -Фаззер запускается из корневого каталога проекта командой на листинге~\ref{lst:diff-fuzz}. - -\begin{listing}[H] - \caption{Запуск дифференциального фаззера.} - \label{lst:diff-fuzz} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -python -m research.fuzz.diff_fuzz \ - --cli build/bin/sql \ - --data-dir test/static/executor/test_data - \end{minted} -\end{listing} - -Для проверки режима JIT-компиляции можно дополнительно передать параметр -\verb|--jit|. При обнаружении расхождения фаззер выводит начальное значение -генератора случайных чисел и текст запроса, что позволяет воспроизвести ошибку. +контейнер с Microsoft SQL Server. Фаззер запускается из корневого каталога +проекта командой на листинге~\ref{lst:reach-fuzz}. Второй фаззер проверяет полноту набора правил оптимизатора. Он получает физический план запроса из Microsoft SQL Server, преобразует его во внутренний -формат проекта и запускает программу в режиме \verb|--check-reachable|, как показано на листинге~\ref{lst:reach-fuzz}. +формат проекта и запускает программу в режиме \verb|--check-reachable|, как +показано на листинге~\ref{lst:reach-fuzz}. \begin{listing}[H] - \caption{Запуск фаззера проверки полноты правил оптимизатора.} + \caption{Запуск фаззеров.} \label{lst:reach-fuzz} \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} python -m research.fuzz.reach_fuzz \ --cli build/bin/sql \ --data-dir test/static/executor/test_data - \end{minted} -\end{listing} - -\begin{figure}[H] -\centering -\includegraphics[width=0.8\textwidth]{reach-fuzz.png} -\caption{Пример вывода фаззера проверки полноты правил оптимизатора}% -\label{fig:reach-fuzz} -\end{figure} - -Оба фаззера поддерживают параметр \verb|--start-seed|. Он задает начальное -значение генератора и используется для воспроизводимого повторного запуска, -как показано на листинге~\ref{lst:reach-fuzz-seed}. - -\begin{listing}[H] - \caption{Запуск фаззера с фиксированным начальным значением генератора.} - \label{lst:reach-fuzz-seed} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -python -m research.fuzz.reach_fuzz \ +python -m research.fuzz.diff_fuzz \ --cli build/bin/sql \ - --data-dir test/static/executor/test_data \ - --start-seed 1000 + --data-dir test/static/executor/test_data \end{minted} \end{listing} -\begin{longtable}{|p{4.2cm}|p{9.3cm}|} - \caption{Параметры командной строки программы.}\label{tbl:practice-cli}\\ - \hline - Параметр & Назначение \\ - \hline - \endfirsthead - \multicolumn{2}{l}{\small Продолжение таблицы~\ref{tbl:practice-cli}}\\ - \hline - Параметр & Назначение \\ - \hline - \endhead - \texttt{--data-dir DIR} & - Директория с CSV-файлами таблиц. Обязательна при обычном исполнении запроса. \\ - \hline - \texttt{--print-ast} & - Вывод логического дерева операторов после синтаксического анализа. \\ - \hline - \texttt{--print-plan} & - Вывод выбранного физического плана в формате S-expression. \\ - \hline - \texttt{--jit} & - Использование кэшируемой JIT-компиляции скалярных выражений. \\ - \hline - \texttt{--check-reachable FILE} & - Проверка достижимости физического плана, сериализованного в файле. \\ - \hline -\end{longtable} +% \begin{figure}[H] +% \centering +% \includegraphics[width=0.8\textwidth]{reach-fuzz.png} +% \caption{Пример вывода фаззера проверки полноты правил оптимизатора}% +% \label{fig:reach-fuzz} +% \end{figure} + +% \begin{longtable}{|p{4.2cm}|p{9.3cm}|} +% \caption{Параметры командной строки программы.}\label{tbl:practice-cli}\\ +% \hline +% Параметр & Назначение \\ +% \hline +% \endfirsthead +% \multicolumn{2}{l}{\small Продолжение таблицы~\ref{tbl:practice-cli}}\\ +% \hline +% Параметр & Назначение \\ +% \hline +% \endhead +% \texttt{--data-dir DIR} & +% Директория с CSV-файлами таблиц. Обязательна при обычном исполнении запроса. \\ +% \hline +% \texttt{--print-ast} & +% Вывод логического дерева операторов после синтаксического анализа. \\ +% \hline +% \texttt{--print-plan} & +% Вывод выбранного физического плана в формате S-expression. \\ +% \hline +% \texttt{--jit} & +% Использование кэшируемой JIT-компиляции скалярных выражений. \\ +% \hline +% \texttt{--check-reachable FILE} & +% Проверка достижимости физического плана, сериализованного в файле. \\ +% \hline +% \end{longtable} \section{Тестирование} @@ -2673,4 +2656,25 @@ \subsection{Калибровка стоимостной модели} \end{longtable} \end{scriptsize} +\begin{table}[H] + \centering + \caption{Стоимостные формулы физических операторов.} + \label{tbl:cost-model-coefficients} + \small + \begin{tabular}{|p{0.40\textwidth}|l|} + \hline + Физический оператор & Формула стоимости \\ + \hline + Последовательное сканирование & $100\,n$ \\ + Фильтрация & $100\,n_{out}$ \\ + Проекция & $22\,n_{out}$ \\ + Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ + Агрегация & $510\,n$ \\ + Соединение вложенными циклами & $70\,n_l n_r$ \\ + Декартово произведение & $104\,n_l n_r$ \\ + Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ + \hline + \end{tabular} +\end{table} + \end{document} From 6177f791f72a4721a9193a64369f42885875ff53 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 17:39:50 +0300 Subject: [PATCH 088/120] wip --- report/vkr.tex | 186 ++++++++++++++++--------------------------------- 1 file changed, 59 insertions(+), 127 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 6d2c316..e39006a 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1358,11 +1358,10 @@ \subsection{Модуль оптимизации запросов} вниз с использованием стоимостной модели, физических свойств и метода ветвей и границ. -\subsubsection{Структура Memo} - -Структура Memo хранит группы логически эквивалентных выражений. Выражения из -одной группы возвращают одинаковый результат. Например, $A \Join B$ и -$B \Join A$ являются эквивалентными. +Центральное место в оптимизаторе занимает структура Memo, которая хранит группы +логически эквивалентных выражений. Выражения из одной группы возвращают +одинаковый результат. Например, $A \Join B$ и $B \Join A$ являются +эквивалентными. Дочерние узлы выражения ссылаются не на конкретные операторы, а на группы. Благодаря этому одно выражение компактно представляет множество деревьев. @@ -1409,7 +1408,7 @@ \subsubsection{Структура Memo} исполнения. Например, логическому соединению могут соответствовать физические операторы соединения вложенными циклами и хеш-соединения. -\subsubsection{Правила оптимизации} +\subsubsection{Правила трансформации и реализации} Расширение пространства поиска выполняется с помощью правил. Реализовано два типа правил: трансформационные и реализационные. Их интерфейсы приведены в @@ -1425,12 +1424,10 @@ \subsubsection{Правила оптимизации} virtual bool IsApplicable(utils::NotNull expr) = 0; utils::NotNull Apply( utils::NotNull expr, Memo& memo); - private: virtual LogicalOperator ApplyImpl( utils::NotNull expr, Memo& memo) = 0; }; - class ImplementationRule { public: virtual bool IsApplicable(utils::NotNull expr) = 0; @@ -1477,15 +1474,11 @@ \subsubsection{Правила оптимизации} expr->root_operator)) { return false; } - const auto& join = std::get(expr->root_operator); - if (join.type != JoinType::kInner) return false; - const auto* bin = std::get_if(&join.qual); - return bin && bin->binop == BinaryOp::kEq && std::holds_alternative(*bin->lhs) && std::holds_alternative(*bin->rhs); @@ -1497,33 +1490,12 @@ \subsubsection{Правила оптимизации} предотвращает повторное выполнение одного правила над одним выражением и ограничивает образование циклов при заполнении Memo. -\subsubsection{Оценка кардинальности} - -Стоимость физического плана зависит от количества обрабатываемых кортежей. -Для получения этой величины используется класс -\verb|CardinalityEstimates| из файла -\verb|src/stewkk/sql/logic/optimizer/cardinality.cpp|. - -Оценка кардинальности вычисляется для группы Memo и кэшируется. В текущей -версии используются следующие эвристики: -\begin{itemize} - \item для таблицы используется известное количество строк или значение по - умолчанию; - \item фильтрация и проекция сохраняют оценку кардинальности входа; - \item скалярная агрегация возвращает одну строку; - \item декартово произведение имеет кардинальность $N_l N_r$; - \item для соединения используется произведение кардинальностей входов и - коэффициента селективности. -\end{itemize} - -Для эквисоединения двух атрибутов коэффициент селективности оценивается как -\[ - S = \frac{1}{\max(1, N_l, N_r)}. -\] -Для конъюнкции условий коэффициенты селективности перемножаются. - \subsubsection{Стоимостная модель} +Стоимость физического плана зависит от количества обрабатываемых кортежей. Для +получения этой величины используется класс \verb|CardinalityEstimates|. Оценка +кардинальности вычисляется для группы Memo и кэшируется. + Стоимость плана вычисляется как сумма локальных стоимостей физических операторов. Фрагмент реализации стоимостной модели приведен в листинге~\ref{lst:optimizer-cost}. @@ -1566,10 +1538,8 @@ \subsubsection{Алгоритм поиска} Алгоритм использует стек отложенных задач. Это позволяет разделить процесс на небольшие операции: исследование группы, применение правила, оптимизацию -физического выражения и обработку его дочерних узлов. - -Основной метод оптимизации группы приведен в -листинге~\ref{lst:optimize-group}. +физического выражения и обработку его дочерних узлов. Основной метод оптимизации +группы приведен в листинге~\ref{lst:optimize-group}. \begin{listing}[H] \caption{Оптимизация группы Memo.} @@ -1581,13 +1551,11 @@ \subsubsection{Алгоритм поиска} Limit limit) { WinnerKey key{group, required}; if (winner_.contains(key)) return; - if (IsExplored(group) && limit && LowerBoundCost(group) >= *limit) { return; } - if (!IsExplored(group)) { tasks_.emplace([=] { OptimizeGroup(group, required, limit); @@ -1597,7 +1565,6 @@ \subsubsection{Алгоритм поиска} }); return; } - for (auto expr : group->GetPhysicalExprs()) { if (expr->is_enforcer) continue; auto cost = local_cost_[expr.get()]; @@ -1607,7 +1574,6 @@ \subsubsection{Алгоритм поиска} }); } } - AddEnforcers(group, required, limit); } \end{minted} @@ -1620,7 +1586,10 @@ \subsubsection{Алгоритм поиска} Для каждой пары из группы и требуемого набора свойств хранится лучший найденный вариант. Ключ такого варианта представлен структурой -\verb|WinnerKey|~\refAlgo{winner-key}. +\verb|WinnerKey|~\refAlgo{winner-key}. Хранение победителя отдельно для каждого +набора свойств необходимо, поскольку самый дешевый неотсортированный план может +отличаться от самого дешевого плана, удовлетворяющего требованию +\verb|ORDER BY|. \begin{listing}[H] \caption{Ключ для хранения лучшего плана по группе и свойствам.} @@ -1634,14 +1603,10 @@ \subsubsection{Алгоритм поиска} \end{minted} \end{listing} -Хранение победителя отдельно для каждого набора свойств необходимо, поскольку -самый дешевый неотсортированный план может отличаться от самого дешевого плана, -удовлетворяющего требованию \verb|ORDER BY|. - Дочерние группы физического выражения оптимизируются последовательно. После получения победителя дочерней группы его стоимость прибавляется к накопленной стоимости. Если все дочерние группы обработаны, проверяются выходные свойства -плана. Затем найденный вариант при необходимости становится новым победителем. +плана. Затем найденный вариант может стать новым лучшим планом. \subsubsection{Метод ветвей и границ} @@ -1672,18 +1637,14 @@ \subsubsection{Метод ветвей и границ} it != lower_bounds_.end()) { return it->second; } - int64_t best = std::numeric_limits::max(); - for (auto expr : group->GetLogicalExprs()) { int64_t cost = LowerBoundLocalCost(expr, cardinality_); - for (auto child : GetChildren(expr)) { cost += LowerBoundCost(child); } best = std::min(best, cost); } - lower_bounds_[group] = best; return best; } @@ -1695,9 +1656,9 @@ \subsubsection{Метод ветвей и границ} нижние оценки еще не обработанных дочерних групп. Благодаря этому заведомо неоптимальные ветви отбрасываются до построения полного плана. -Для исследовательских задач предусмотрен метод \verb|OptimizeExhaustive|. Он -запускает тот же алгоритм без ограничения стоимости и используется при -проверке достижимости внешних физических планов. +% Для исследовательских задач предусмотрен метод \verb|OptimizeExhaustive|. Он +% запускает тот же алгоритм без ограничения стоимости и используется при проверке +% достижимости внешних физических планов. \subsubsection{Физические свойства} @@ -1706,10 +1667,9 @@ \subsubsection{Физические свойства} кортежей. Для представления таких требований используется класс \verb|PropertySet|. -В текущей версии реализовано свойство сортировки \verb|SortProperty|. Порядок -считается удовлетворяющим требованию, если требуемые ключи являются префиксом -фактически полученного порядка. Например, сортировка по $(a, b)$ удовлетворяет -требованию сортировки по $a$. +Например, порядок сортировки считается удовлетворяющим требованию, если +требуемые ключи являются префиксом фактически полученного порядка. Таким образом +сортировка по $(a, b)$ удовлетворяет требованию сортировки по $a$. Некоторые операторы сохраняют порядок дочернего узла. Фильтрация и проекция сохраняют свойства входа. Соединение вложенными циклами сохраняет свойства @@ -1731,12 +1691,10 @@ \subsubsection{Физические свойства} SchemaCatalog& schema) const { const auto* sort = required.Get(); if (!sort) return std::nullopt; - if (!ContainsRequiredKeys(schema.GetSchema(group), sort->order)) { return std::nullopt; } - return physical::Sort{group, sort->order}; } \end{minted} @@ -1746,7 +1704,7 @@ \subsubsection{Формирование физического плана} После завершения поиска метод \verb|BuildOptimalPlan| рекурсивно восстанавливает итоговое дерево физических операторов. Для каждой группы выбирается сохраненный -победитель с учетом требуемых свойств. Затем аналогичным образом +лучший план с учетом требуемых свойств. Затем аналогичным образом восстанавливаются планы дочерних групп. Результатом работы оптимизатора является объект \verb|PhysicalPlanNode|, который @@ -1771,17 +1729,14 @@ \subsection{Модуль физического хранения данных} \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} struct CsvDirSequentialScanner { std::string dir; - boost::asio::awaitable> operator()( const std::string& table_name, const std::string& output_table_name, AttributesInfoChannel& attrs_chan, TuplesChannel& tuples_chan) const; }; - struct CsvDirIndexedScanner { std::string dir; - boost::asio::awaitable> operator()( const std::string& table_name, const std::string& output_table_name, @@ -1812,25 +1767,18 @@ \subsection{Модуль физического хранения данных} записей индекса. Поддерживаются индексы только для целочисленных атрибутов. Индексное -сканирование применяется для предикатов сравнения атрибута с -целочисленной константой. Поддерживаются операции равенства, строгого и -нестрогого сравнения. После чтения найденных строк дополнительно -вычисляется исходный предикат, что обеспечивает корректную обработку -составных условий. +сканирование применяется для предикатов сравнения атрибута с целочисленной +константой. Из возможных операций доступно равенство, строгое и нестрогое +сравнение. После чтения найденных строк дополнительно вычисляется исходный +предикат, что обеспечивает корректную обработку составных условий. \subsection{Модуль исполнения физических планов} -За исполнение запросов отвечает класс \verb|Executor|~\refAlgo{lst:executor}. -Он получает физический план, запускает исполнение его операторов и формирует +За исполнение запросов отвечает класс \verb|Executor|~\refAlgo{lst:executor}. Он +получает физический план, запускает исполнение его операторов и формирует результирующее отношение. Физический план представлен деревом объектов типа \verb|PhysicalPlanNode|. Для каждого типа узла предусмотрена отдельная функция -исполнения. - -Поддерживается исполнение последовательного и индексного сканирования, -фильтрации, проекции, сортировки, агрегации, декартова произведения, соединения -вложенными циклами и хеш-соединения. Операторы могут обрабатывать дочерние узлы -плана независимо и передавать результаты вышестоящим операторам по мере их -готовности. +исполнения реализующая единый интерфейс и исполняющаяся независимо. \begin{listing}[H] \caption{Основные элементы объявления класса Executor.} @@ -1844,21 +1792,17 @@ \subsection{Модуль исполнения физических планов} const std::string& output_table_name, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; - using IndexScan = std::function>( const std::string& table_name, const std::string& output_table_name, const Expression& predicate, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; - Executor(SequentialScan seq_scan, IndexScan index_scan, boost::asio::any_io_executor executor); - boost::asio::awaitable> Execute(const PhysicalPlanNode& op); - private: SequentialScan sequential_scan_; IndexScan index_scan_; @@ -2111,7 +2055,7 @@ \subsubsection{Запуск программы} % \hline % \end{longtable} -\section{Тестирование} +\section{Аналитическая часть} Тестирование разработанной модельной СУБД выполнялось на нескольких уровнях. Для проверки отдельных компонентов использовались модульные тесты. Корректность @@ -2120,20 +2064,13 @@ \section{Тестирование} стоимостной модели были реализованы бенчмарки. Вспомогательные инструменты на языке Python проверяются с помощью библиотеки \verb|pytest|. -\subsection{Модульные тесты} - Модульные тесты реализованы с использованием библиотеки GoogleTest. Они проверяют синтаксический анализ SQL-запросов, исполнение физических операторов, индексное сканирование, вычисление выражений, сериализацию физических планов, -структуру Memo, правила оптимизации и обработку свойств сортировки. - -Отдельные тесты проверяют выбор физического плана. Например, при различных -оценках кардинальности оптимизатор должен выбирать подходящий порядок соединения -таблиц. Также проверяется достижимость физических планов при полном переборе -пространства поиска. - -Пример теста синтаксического анализатора приведен в -листинге~\ref{lst:googletest}. +структуру Memo, правила оптимизации и обработку свойств сортировки. Пример теста +синтаксического анализатора приведен в листинге~\ref{lst:googletest}. Также +проверяется выбор физического плана. Например, при различных оценках +кардинальности оптимизатор должен выбирать подходящий порядок соединения таблиц. \begin{listing}[H] \caption{Пример модульного теста.} @@ -2153,36 +2090,32 @@ \subsection{Модульные тесты} \end{minted} \end{listing} -\subsection{Python-тесты} - -Для проверки вспомогательных инструментов используются тесты на языке Python, -запускаемые с помощью библиотеки \verb|pytest|. Они разделены на две группы. - -Первая группа проверяет преобразование физических планов Microsoft SQL Server из -формата ShowPlanXML во внутренний текстовый формат проекта. Рассматриваются -последовательное и индексное сканирование, фильтрация, сортировка, агрегация и -соединения. Часть тестов использует заранее подготовленные XML-фрагменты, часть -может быть запущена с подключением к экземпляру Microsoft SQL Server. - -Вторая группа относится к Star Schema Benchmark. Она проверяет преобразование -исходных таблиц SSB в CSV-формат модельной СУБД, обработку некорректных входных -данных и успешное выполнение стандартных аналитических запросов. +Для проверки вспомогательных инструментов используются тесты на языке Python. +Они разделены на две группы. Первая группа проверяет преобразование физических +планов Microsoft SQL Server из формата ShowPlanXML во внутренний текстовый +формат проекта. Рассматриваются последовательное и индексное сканирование, +фильтрация, сортировка, агрегация и соединения. Часть тестов использует заранее +подготовленные XML-фрагменты, часть может быть запущена с подключением к +экземпляру Microsoft SQL Server. + +Вторая группа относится к стандартному Star Schema Benchmark. Она проверяет +преобразование исходных таблиц SSB в CSV-формат модельной СУБД, обработку +некорректных входных данных и успешное выполнение стандартных аналитических +запросов. \subsection{Фаззинг} Для проверки системы на большом количестве входных данных реализован генератор случайных SQL-запросов. Он строит запросы из поддерживаемого подмножества языка: проекции, фильтры, соединения, группировки, агрегатные функции, сортировки, -строковые выражения, \verb|IN| и \verb|BETWEEN|. Использование фиксированного -начального значения генератора позволяет воспроизводить найденные ошибки. +строковые выражения, \verb|IN| и \verb|BETWEEN|. % TODO: заменить на макросы \sqkkw Дифференциальный фаззер выполняет каждый сгенерированный запрос в модельной СУБД -и в Microsoft SQL Server. Результаты сравниваются как мультимножества строк. -Для запросов с \verb|ORDER BY| дополнительно проверяется корректность порядка -результатов. При обнаружении расхождения выводятся начальное значение -генератора, текст запроса и результаты обеих систем. +и в Microsoft SQL Server. Результаты сравниваются как мультимножества строк. Для +запросов с \verb|ORDER BY| дополнительно проверяется корректность порядка +результатов. Отдельный фаззер используется для исследования полноты набора правил оптимизации. Для случайного запроса из Microsoft SQL Server извлекается @@ -2193,12 +2126,12 @@ \subsection{Фаззинг} \subsection{Бенчмарки} -Тесты производительности реализованы с помощью библиотеки Google Benchmark. -Для запросов предусмотрены два режима построения физического плана: -\verb|Naive| и \verb|Optimized|. В первом случае физический план строится -непосредственно по логическому дереву без применения оптимизатора. Во втором -случае используется стоимостная оптимизация. Сравнение этих режимов позволяет -оценить влияние выбранного физического плана на время выполнения запроса. +Тесты производительности реализованы с помощью библиотеки Google Benchmark. Для +запросов предусмотрены два режима построения физического плана: \verb|Naive| и +\verb|Optimized|. В первом случае физический план строится непосредственно по +логическому дереву без применения оптимизатора. Во втором случае используется +стоимостная оптимизация. Сравнение этих режимов позволяет оценить влияние +выбранного физического плана на время выполнения запроса. Бенчмарки выполняются как для небольших синтетических тестовых запросов, так и для набора аналитических запросов Star Schema Benchmark. Дополнительно @@ -2221,9 +2154,8 @@ \subsection{Бенчмарки} \end{figure} В таблице~\ref{tbl:ssb-benchmark} приведено среднее время выполнения трех -повторений запросов SSB для набора данных масштаба \texttt{sf001}. Ускорение -рассчитывается как отношение времени выполнения наивного плана ко времени -выполнения оптимизированного плана. +повторений запросов SSB. Ускорение рассчитывается как отношение времени +выполнения наивного плана ко времени выполнения оптимизированного плана. \begin{table}[H] \centering From f7c9fed2fad426b55997245a0d378705e2f741e9 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 17:53:13 +0300 Subject: [PATCH 089/120] Done --- report/vkr.tex | 60 +++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index e39006a..339eb32 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -2103,7 +2103,7 @@ \section{Аналитическая часть} некорректных входных данных и успешное выполнение стандартных аналитических запросов. -\subsection{Фаззинг} +\subsection{Дифференциальный анализ и тестирование производительности} Для проверки системы на большом количестве входных данных реализован генератор случайных SQL-запросов. Он строит запросы из поддерживаемого подмножества языка: @@ -2124,8 +2124,6 @@ \subsection{Фаззинг} проверяет, достижим ли полученный план с помощью реализованных правил. Такой подход позволяет находить отсутствующие преобразования и физические операторы. -\subsection{Бенчмарки} - Тесты производительности реализованы с помощью библиотеки Google Benchmark. Для запросов предусмотрены два режима построения физического плана: \verb|Naive| и \verb|Optimized|. В первом случае физический план строится непосредственно по @@ -2219,26 +2217,42 @@ \subsection{Калибровка стоимостной модели} \anonsection{ЗАКЛЮЧЕНИЕ} -В ходе практики разработана модельная СУБД и оптимизатор для нее. Программа -работает с CSV-файлами, поддерживает основные операторы реляционной алгебры и -формирует оптимальный физический план на основе стоимостной модели. - -Ключевой частью проекта является расширяемый оптимизатор, использующий структуру -Memo и правила преобразования. Реализован поиск планов с учетом физических -свойств, нижних оценок стоимости и метода ветвей и границ. - -Корректность основных компонентов проверена модульными тестами. Дополнительно -подготовлены бенчмарки физических операторов, оценен прирост производительности -относительно наивного плана и реализованы инструменты дифференциального -сравнения с промышленной СУБД Microsoft SQL Server. - -Цель курсовой работы была достигнута. Получена стабильная и расширяемая система, -демонстрирующая возможности оптимизатора. - -В заключение, несмотря на достигнутые положительные результаты, существует -потенциал для дальнейшего улучшения реализации оптимихатора. Это включает в себя -реализацию дедупликации групп в процессе поиска, добавление новых правил -трансформации и реализации и поддержку подзапросов. +В ходе работы была изучена архитектура оптимизаторов Cascades и на ее основе +спроектирован собственный оптимизатор для модельной реляционной СУБД. В +результате были выделены основные компоненты системы, такие как структура Memo, +набор правил преобразования и реализации, стоимостная модель, механизм учета +физических свойств и алгоритм поиска физического плана. + +Было формализовано поддерживаемое подмножество SQL и соответствующее ему +представление в терминах реляционной алгебры. Реализованная система поддерживает +запросы на чтение данных с фильтрацией, проекцией, соединениями, агрегацией и +сортировкой. + +Был реализован алгоритм поиска оптимального физического плана и структура Memo +для эффективного хранения групп логически эквивалентных выражений. В результате +система выбирает физический план с минимальной оценочной стоимостью с учетом +требуемых свойств результата. + +Для формирования пространства поиска был разработан набор правил трансформации и +реализации для основных операторов реляционной алгебры. Реализованные правила +позволяют изменять порядок и группировку соединений, преобразовывать и +проталкивать фильтры, а также сопоставлять логическим операторам физические +реализации, включая последовательное сканирование, фильтрацию, проекцию, +агрегацию, соединение вложенными циклами и хеш-соединение. + +Для ускорения поиска был реализован метод ветвей и границ. Оптимизатор +использует текущую лучшую стоимость и нижние оценки стоимости поддеревьев для +отсечения заведомо неоптимальных вариантов, что уменьшает объем исследуемого +пространства планов ухудшения качества результирующих планов. + +Для последующего развития оптимизатора был реализован метод дифференциального +анализа физических планов. Подготовлены инструменты генерации запросов, +сравнения результатов исполнения и сопоставления планов с промышленной СУБД +Microsoft SQL Server. + +Тем самым цель работы была достигнута. Получена работоспособная и расширяемая +система, которую можно использовать как основу для дальнейшего уточнения правил +оптимизации и увеличения пространства исследуемых планов исполнения запросов. \renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} \clearpage From 4ebbc71a52570e062a584dd5328fc014fd54a6b0 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 19:06:39 +0300 Subject: [PATCH 090/120] wip --- report/vkr.tex | 449 +++++++++------------ src/stewkk/sql/logic/executor/executor.cpp | 1 + 2 files changed, 185 insertions(+), 265 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 339eb32..890ac25 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1209,53 +1209,6 @@ \subsection{Модуль стоимостной оптимизации план селективности \(sel(p)\), показывающий долю кортежей, удовлетворяющих предикату \(p\). Используемые формулы приведены в таблице~\ref{tbl:selectivity-model}. -\begin{table}[H] - \centering - \caption{Формулы оценки селективности предикатов.} - \label{tbl:selectivity-model} - \small - \begin{tabular}{|p{0.42\textwidth}|p{0.42\textwidth}|} - \hline - Вид предиката & Формула селективности \\ - \hline - \(a = c\), где \(a\) --- атрибут, \(c\) --- константа - & \(sel(a = c) = 0{,}10\) \\ - \hline - \(a < b\), \(a > b\), \(a \le b\), \(a \ge b\) - & \(sel(p) = 0{,}50\) \\ - \hline - \(p_1 \land p_2\) - & \(sel(p_1 \land p_2) = sel(p_1) \cdot sel(p_2)\) \\ - \hline - \(p_1 \lor p_2\) - & \(sel(p_1 \lor p_2) = - sel(p_1) + sel(p_2) - sel(p_1) \cdot sel(p_2)\) \\ - \hline - \(\lnot p\) - & \(sel(\lnot p) = 1 - sel(p)\) \\ - \hline - \(a \in \{c_1, \ldots, c_k\}\) - & \(sel(p) = \min(0{,}50,\; 0{,}10k)\) \\ - \hline - \(a \notin \{c_1, \ldots, c_k\}\) - & \(sel(p) = 1 - \min(0{,}50,\; 0{,}10k)\) \\ - \hline - \(a = b\) в условии соединения, где \(a\) и \(b\) --- атрибуты разных входов - & \(sel(a = b) = \frac{1}{\max(1,\; \max(n_l, n_r))}\) \\ - \hline - \(\theta_1 \land \theta_2\) в условии соединения - & \(sel(\theta_1 \land \theta_2) = - sel(\theta_1) \cdot sel(\theta_2)\) \\ - \hline - Иной или неизвестный предикат фильтрации - & \(sel(p) = 0{,}50\) \\ - \hline - Иной или неизвестный предикат соединения - & \(sel(\theta) = 1\) \\ - \hline - \end{tabular} -\end{table} - Такие формулы выбраны как простая эвристическая модель, не требующая гистограмм, сведений о количестве различных значений и статистик корреляции между атрибутами. Равенство атрибута константе считается достаточно селективным, @@ -1411,80 +1364,37 @@ \subsection{Модуль оптимизации запросов} \subsubsection{Правила трансформации и реализации} Расширение пространства поиска выполняется с помощью правил. Реализовано два -типа правил: трансформационные и реализационные. Их интерфейсы приведены в -листинге~\ref{lst:optimizer-rules}. - -\begin{listing}[H] - \caption{Интерфейсы правил оптимизации.} - \label{lst:optimizer-rules} - \begin{minted}[style=bw, breaklines, frame=single, - fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} -class TransformationRule { -public: - virtual bool IsApplicable(utils::NotNull expr) = 0; - utils::NotNull Apply( - utils::NotNull expr, Memo& memo); -private: - virtual LogicalOperator ApplyImpl( - utils::NotNull expr, Memo& memo) = 0; -}; -class ImplementationRule { -public: - virtual bool IsApplicable(utils::NotNull expr) = 0; - virtual utils::NotNull Apply( - utils::NotNull expr, Memo& memo) = 0; -}; - \end{minted} -\end{listing} - -В качестве примера в листинге~\ref{lst:join-commutativity} приведено правило -коммутативности соединений. - -\begin{listing}[H] - \caption{Правило коммутативности соединения.} - \label{lst:join-commutativity} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, - linenos=false, xleftmargin=1.5em]{cpp} -LogicalOperator JoinCommutativity::ApplyImpl( - utils::NotNull expr, Memo&) { - auto join = std::get(expr->root_operator); - std::swap(join.lhs, join.rhs); - - if (join.type == JoinType::kLeft) { - join.type = JoinType::kRight; - } else if (join.type == JoinType::kRight) { - join.type = JoinType::kLeft; - } - return join; -} - \end{minted} -\end{listing} - -Пример метода для проверки применимости правила приведен в -листинге~\ref{lst:implement-hash-join}. +типа правил: трансформационные и реализационные. % Их интерфейсы приведены в +% листинге~\ref{lst:optimizer-rules}. +Правила реализуют единый интерфейс, состоящий из условия применимости и метода +для применения правила. Условие применимости выполняет быструю структурную +проверку по дереву выражений в Memo. Метод применения правила порождает +необходимые новые группы и результирующее логическое или физическое выражение. В +качестве примера в листинге~\ref{lst:join-commutativity} приведена реализация +правила коммутативности соединений. -\begin{listing}[H] - \caption{Проверка применимости хеш-соединения.} - \label{lst:implement-hash-join} - \begin{minted}[style=bw, breaklines, frame=single, - fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} -bool ImplementHashJoin::IsApplicable( - utils::NotNull expr) { - if (!std::holds_alternative( - expr->root_operator)) { - return false; - } - const auto& join = - std::get(expr->root_operator); - if (join.type != JoinType::kInner) return false; - const auto* bin = - std::get_if(&join.qual); - return bin && bin->binop == BinaryOp::kEq - && std::holds_alternative(*bin->lhs) - && std::holds_alternative(*bin->rhs); -} - \end{minted} -\end{listing} +% \begin{listing}[H] +% \caption{Интерфейсы правил оптимизации.} +% \label{lst:optimizer-rules} +% \begin{minted}[style=bw, breaklines, frame=single, +% fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +% class TransformationRule { +% public: +% virtual bool IsApplicable(utils::NotNull expr) = 0; +% utils::NotNull Apply( +% utils::NotNull expr, Memo& memo); +% private: +% virtual LogicalOperator ApplyImpl( +% utils::NotNull expr, Memo& memo) = 0; +% }; +% class ImplementationRule { +% public: +% virtual bool IsApplicable(utils::NotNull expr) = 0; +% virtual utils::NotNull Apply( +% utils::NotNull expr, Memo& memo) = 0; +% }; +% \end{minted} +% \end{listing} Для каждого выражения хранится информация о ранее примененных правилах. Это предотвращает повторное выполнение одного правила над одним выражением и @@ -1500,36 +1410,6 @@ \subsubsection{Стоимостная модель} операторов. Фрагмент реализации стоимостной модели приведен в листинге~\ref{lst:optimizer-cost}. -\begin{listing}[H] - \caption{Вычисление локальной стоимости физических операторов.} - \label{lst:optimizer-cost} - \begin{minted}[style=bw, breaklines, frame=single, - fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} -int64_t CalcCost(PhysicalExpr* expr, - CardinalityEstimates& cardinality) { - return std::visit(utils::Overloaded{ - [&](const physical::SeqScan&) { - return 100 * cardinality.GetCardinality(expr->group); - }, - [&](const physical::NestedLoopJoin& j) { - return 70 * cardinality.GetCardinality(j.lhs) - * cardinality.GetCardinality(j.rhs); - }, - [&](const physical::HashJoin& j) { - return 69 * (cardinality.GetCardinality(j.lhs) - + cardinality.GetCardinality(j.rhs)); - }, - [&](const physical::Sort& s) { - auto n = cardinality.GetCardinality(s.input); - return 11 * n * std::bit_width( - static_cast(n)); - }, - ... - }, expr->root_operator); -} - \end{minted} -\end{listing} - \subsubsection{Алгоритм поиска} Класс \verb|Optimizer| реализует алгоритм поиска. При создании объекта исходное @@ -1541,44 +1421,6 @@ \subsubsection{Алгоритм поиска} физического выражения и обработку его дочерних узлов. Основной метод оптимизации группы приведен в листинге~\ref{lst:optimize-group}. -\begin{listing}[H] - \caption{Оптимизация группы Memo.} - \label{lst:optimize-group} - \begin{minted}[style=bw, breaklines, frame=single, - fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} -void Optimizer::OptimizeGroup(Group* group, - PropertySet required, - Limit limit) { - WinnerKey key{group, required}; - if (winner_.contains(key)) return; - if (IsExplored(group) - && limit - && LowerBoundCost(group) >= *limit) { - return; - } - if (!IsExplored(group)) { - tasks_.emplace([=] { - OptimizeGroup(group, required, limit); - }); - tasks_.emplace([=] { - ExploreGroup(group, limit); - }); - return; - } - for (auto expr : group->GetPhysicalExprs()) { - if (expr->is_enforcer) continue; - auto cost = local_cost_[expr.get()]; - if (!limit || cost < *limit) { - tasks_.emplace([=] { - OptimizeInputs(expr, required, {}, cost, limit); - }); - } - } - AddEnforcers(group, required, limit); -} - \end{minted} -\end{listing} - Если группа еще не исследована, в стек добавляются две задачи. Первая расширяет группу с помощью правил, вторая повторно запускает ее оптимизацию после расширения. Если группа уже исследована, для каждого физического выражения @@ -1586,7 +1428,7 @@ \subsubsection{Алгоритм поиска} Для каждой пары из группы и требуемого набора свойств хранится лучший найденный вариант. Ключ такого варианта представлен структурой -\verb|WinnerKey|~\refAlgo{winner-key}. Хранение победителя отдельно для каждого +\verb|WinnerKey|~\refAlgo{lst:winner-key}. Хранение победителя отдельно для каждого набора свойств необходимо, поскольку самый дешевый неотсортированный план может отличаться от самого дешевого плана, удовлетворяющего требованию \verb|ORDER BY|. @@ -1718,34 +1560,9 @@ \subsubsection{Формирование физического плана} \subsection{Модуль физического хранения данных} -Для чтения таблиц реализован класс -\verb|CsvDirSequentialScanner|~\refAlgo{lst:csv-dir-scanners}. Он -выполняет последовательное сканирование CSV-файла и передает прочитанные -кортежи модулю исполнения физических операторов. - -\begin{listing}[H] - \caption{Объявления классов сканирования CSV-таблиц.} - \label{lst:csv-dir-scanners} - \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{C++} -struct CsvDirSequentialScanner { - std::string dir; - boost::asio::awaitable> operator()( - const std::string& table_name, - const std::string& output_table_name, - AttributesInfoChannel& attrs_chan, - TuplesChannel& tuples_chan) const; -}; -struct CsvDirIndexedScanner { - std::string dir; - boost::asio::awaitable> operator()( - const std::string& table_name, - const std::string& output_table_name, - const Expression& predicate, - AttributesInfoChannel& attrs_chan, - TuplesChannel& tuples_chan) const; -}; - \end{minted} -\end{listing} +Для чтения таблиц реализован класс \verb|CsvDirSequentialScanner|. Он выполняет +последовательное сканирование CSV-файла и передает прочитанные кортежи модулю +исполнения физических операторов. Список доступных индексов задается в файле \verb|indexes.meta|, расположенном в директории с данными. Каждая строка файла содержит @@ -1761,10 +1578,9 @@ \subsection{Модуль физического хранения данных} \end{listing} Для чтения данных с использованием индекса реализован класс -\verb|CsvDirIndexedScanner|~\refAlgo{lst:csv-dir-scanners}. Если указанный в -метаданных бинарный файл отсутствует, индекс строится при первом обращении к -таблице. Для поиска диапазона подходящих ключей используется упорядоченность -записей индекса. +\verb|CsvDirIndexedScanner|. Если указанный в метаданных бинарный файл +отсутствует, индекс строится при первом обращении к таблице. Для поиска +диапазона подходящих ключей используется упорядоченность записей индекса. Поддерживаются индексы только для целочисленных атрибутов. Индексное сканирование применяется для предикатов сравнения атрибута с целочисленной @@ -1787,17 +1603,6 @@ \subsection{Модуль исполнения физических планов} template class Executor { public: - using SequentialScan = std::function>( - const std::string& table_name, - const std::string& output_table_name, - AttributesInfoChannel& attr_chan, - TuplesChannel& tuples_chan)>; - using IndexScan = std::function>( - const std::string& table_name, - const std::string& output_table_name, - const Expression& predicate, - AttributesInfoChannel& attr_chan, - TuplesChannel& tuples_chan)>; Executor(SequentialScan seq_scan, IndexScan index_scan, boost::asio::any_io_executor executor); @@ -1877,7 +1682,7 @@ \subsubsection{Запуск программы} \texttt{NULL}. Для первого запуска можно использовать готовые тестовые данные в \verb|test/static/executor/test_data|. SQL-запрос передается программе через стандартный поток ввода. Простейший пример запуска представлен на -листинге~\ref{lst:run-example}. +листинге~\ref{lst:run-example} и на рисунке~\ref{fig:practice-run}. \begin{listing}[H] \caption{Примеры команд для запуска программы.} @@ -1886,7 +1691,6 @@ \subsubsection{Запуск программы} echo 'SELECT users.id FROM users;' | \ ./build/bin/sql --data-dir test/static/executor/test_data - echo 'SELECT users.id FROM users WHERE users.age > 18 \ ORDER BY users.id;' | \ ./build/bin/sql --data-dir test/static/executor/test_data \ @@ -1898,13 +1702,6 @@ \subsubsection{Запуск программы} затем полученные строки. Если запрос не содержит \ORDERBY{}, строки вывода сортируются лексикографически для воспроизводимости результата. -\begin{figure}[H] -\centering -\includegraphics[width=0.8\textwidth]{run-example.png} -\caption{Выполнение SQL-запроса над тестовыми данными}% -\label{fig:practice-run} -\end{figure} - Для диагностики предусмотрены параметры \texttt{--print-ast} и \texttt{--print-plan}. Первый параметр выводит логическое дерево после синтаксического анализа, второй --- выбранный физический план. @@ -1955,20 +1752,6 @@ \subsubsection{Запуск программы} необходим для загрузки схем таблиц. В частности, схема используется при проверке достижимости планов с сортировкой. -Для автоматизированной проверки достижимости планов используется Microsoft SQL -Server. Контейнер с СУБД запускается с помощью Docker Compose. Перед запуском -скриптов в директории research, следует выполнить команды на листинге~\ref{lst:docker-up}. - -\begin{listing}[H] - \caption{Запуск контейнера с Microsoft SQL Server.} - \label{lst:docker-up} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -cd research -docker compose up -d -cd .. - \end{minted} -\end{listing} - % Модульные тесты проверяют синтаксический анализ запросов, вычисление выражений, % исполнение физических операторов, индексное сканирование, сериализацию планов, % структуру Memo, правила оптимизации и физические свойства. @@ -2011,6 +1794,7 @@ \subsubsection{Запуск программы} \caption{Запуск фаззеров.} \label{lst:reach-fuzz} \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +docker compose up -d python -m research.fuzz.reach_fuzz \ --cli build/bin/sql \ --data-dir test/static/executor/test_data @@ -2218,15 +2002,11 @@ \subsection{Калибровка стоимостной модели} \anonsection{ЗАКЛЮЧЕНИЕ} В ходе работы была изучена архитектура оптимизаторов Cascades и на ее основе -спроектирован собственный оптимизатор для модельной реляционной СУБД. В -результате были выделены основные компоненты системы, такие как структура Memo, -набор правил преобразования и реализации, стоимостная модель, механизм учета -физических свойств и алгоритм поиска физического плана. +спроектирован собственный оптимизатор для модельной реляционной СУБД. Было формализовано поддерживаемое подмножество SQL и соответствующее ему представление в терминах реляционной алгебры. Реализованная система поддерживает -запросы на чтение данных с фильтрацией, проекцией, соединениями, агрегацией и -сортировкой. +запросы на чтение данных с основными операторами диалекта PostgreSQL. Был реализован алгоритм поиска оптимального физического плана и структура Memo для эффективного хранения групп логически эквивалентных выражений. В результате @@ -2235,10 +2015,8 @@ \subsection{Калибровка стоимостной модели} Для формирования пространства поиска был разработан набор правил трансформации и реализации для основных операторов реляционной алгебры. Реализованные правила -позволяют изменять порядок и группировку соединений, преобразовывать и -проталкивать фильтры, а также сопоставлять логическим операторам физические -реализации, включая последовательное сканирование, фильтрацию, проекцию, -агрегацию, соединение вложенными циклами и хеш-соединение. +позволяют изменять порядок и группировку соединений, преобразовывать предикаты и +выражения, а также сопоставлять логическим операторам физические реализации. Для ускорения поиска был реализован метод ветвей и границ. Оптимизатор использует текущую лучшую стоимость и нижние оценки стоимости поддеревьев для @@ -2357,6 +2135,54 @@ \subsection{Калибровка стоимостной модели} \label{fig:memo-structure} \end{figure} +\begin{table}[H] + \centering + \caption{Формулы оценки селективности предикатов.} + \label{tbl:selectivity-model} + \small + \begin{tabular}{|p{0.42\textwidth}|p{0.42\textwidth}|} + \hline + Вид предиката & Формула селективности \\ + \hline + \(a = c\), где \(a\) --- атрибут, \(c\) --- константа + & \(sel(a = c) = 0{,}10\) \\ + \hline + \(a < b\), \(a > b\), \(a \le b\), \(a \ge b\) + & \(sel(p) = 0{,}50\) \\ + \hline + \(p_1 \land p_2\) + & \(sel(p_1 \land p_2) = sel(p_1) \cdot sel(p_2)\) \\ + \hline + \(p_1 \lor p_2\) + & \(sel(p_1 \lor p_2) = + sel(p_1) + sel(p_2) - sel(p_1) \cdot sel(p_2)\) \\ + \hline + \(\lnot p\) + & \(sel(\lnot p) = 1 - sel(p)\) \\ + \hline + \(a \in \{c_1, \ldots, c_k\}\) + & \(sel(p) = \min(0{,}50,\; 0{,}10k)\) \\ + \hline + \(a \notin \{c_1, \ldots, c_k\}\) + & \(sel(p) = 1 - \min(0{,}50,\; 0{,}10k)\) \\ + \hline + \(a = b\) в условии соединения, где \(a\) и \(b\) --- атрибуты разных входов + & \(sel(a = b) = \frac{1}{\max(1,\; \max(n_l, n_r))}\) \\ + \hline + \(\theta_1 \land \theta_2\) в условии соединения + & \(sel(\theta_1 \land \theta_2) = + sel(\theta_1) \cdot sel(\theta_2)\) \\ + \hline + Иной или неизвестный предикат фильтрации + & \(sel(p) = 0{,}50\) \\ + \hline + Иной или неизвестный предикат соединения + & \(sel(\theta) = 1\) \\ + \hline + \end{tabular} +\end{table} + + \begin{algorithm}[H] \caption{Алгоритм поиска (часть 1).}% \label{alg:cascades-search} @@ -2623,4 +2449,97 @@ \subsection{Калибровка стоимостной модели} \end{tabular} \end{table} +\begin{listing}[H] + \caption{Правило коммутативности соединения.} + \label{lst:join-commutativity} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize, + linenos=false, xleftmargin=1.5em]{cpp} +LogicalOperator JoinCommutativity::ApplyImpl( + utils::NotNull expr, Memo&) { + auto join = std::get(expr->root_operator); + std::swap(join.lhs, join.rhs); + + if (join.type == JoinType::kLeft) { + join.type = JoinType::kRight; + } else if (join.type == JoinType::kRight) { + join.type = JoinType::kLeft; + } + return join; +} +bool ImplementHashJoin::IsApplicable( + utils::NotNull expr) { + if (!std::holds_alternative( + expr->root_operator)) { + return false; + } + const auto& join = + std::get(expr->root_operator); + if (join.type != JoinType::kInner) return false; + const auto* bin = + std::get_if(&join.qual); + return bin && bin->binop == BinaryOp::kEq + && std::holds_alternative(*bin->lhs) + && std::holds_alternative(*bin->rhs); +} + \end{minted} +\end{listing} +\begin{listing}[H] + \caption{Вычисление локальной стоимости физических операторов.} + \label{lst:optimizer-cost} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +int64_t CalcCost(PhysicalExpr* expr, + CardinalityEstimates& cardinality) { + return std::visit(utils::Overloaded{ + [&](const physical::NestedLoopJoin& j) { + return 70 * cardinality.GetCardinality(j.lhs) + * cardinality.GetCardinality(j.rhs); + }, + [&](const physical::HashJoin& j) { + return 69 * (cardinality.GetCardinality(j.lhs) + + cardinality.GetCardinality(j.rhs)); + }, + \end{minted} +\end{listing} + +\begin{figure}[H] +\centering +\includegraphics[width=0.8\textwidth]{run-example.png} +\caption{Выполнение SQL-запроса над тестовыми данными}% +\label{fig:practice-run} +\end{figure} + +\begin{listing}[H] + \caption{Оптимизация группы Memo.} + \label{lst:optimize-group} + \begin{minted}[style=bw, breaklines, frame=single, + fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} +void Optimizer::OptimizeGroup(Group* group, PropertySet required, + Limit limit) { + WinnerKey key{group, required}; + if (winner_.contains(key)) return; + if (IsExplored(group) && limit && LowerBoundCost(group) >= *limit) return; + if (!IsExplored(group)) { + tasks_.emplace([=] { + OptimizeGroup(group, required, limit); + }); + tasks_.emplace([=] { + ExploreGroup(group, limit); + }); + return; + } + for (auto expr : group->GetPhysicalExprs()) { + if (expr->is_enforcer) continue; + auto cost = local_cost_[expr.get()]; + if (!limit || cost < *limit) { + tasks_.emplace([=] { + OptimizeInputs(expr, required, {}, cost, limit); + }); + } + } + AddEnforcers(group, required, limit); +} + \end{minted} +\end{listing} + \end{document} diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 0669992..6259936 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -672,6 +672,7 @@ boost::asio::awaitable Executor::Execute(const Physica co_return; } boost::asio::awaitable operator()(const IndexSeek& seek) { + // FIXME: make index_scan_ required! if (!executor.index_scan_) { throw std::runtime_error("IndexSeek execution requested, but no index scanner is configured"); } From e72864ff99c5aa712b0f309c6d397fc88f860cf7 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 22:07:09 +0300 Subject: [PATCH 091/120] Done --- report/cascades.pdf | Bin 16363 -> 15469 bytes report/scaling.png | Bin 80847 -> 72812 bytes report/vkr.tex | 279 ++++++++++++++++++++------------------------ 3 files changed, 126 insertions(+), 153 deletions(-) diff --git a/report/cascades.pdf b/report/cascades.pdf index 14fa81da8ef0784067d65faf64fdcd9454b1e4fe..00f5a0121665c4d920254260508a64b16b8153cb 100644 GIT binary patch delta 2145 zcmah~3se(V8WvHC0eK0EAUY9ZgO$u9Z&ZX3aDySdUs8~eOeB$H(qy0!A4996g+;2c zrGg>|XnW9NrIu59i4svLNI{fRthI}{l`U4(svx?P06m^=_w2my{h#;y?|lC#@vFgy z7A_3-ff-y1t>=bufWiVG083R-)~%y}VpOvgPXm}NVCJ9{?p_a22j3Y+qMxC@`T? zh66k@Y$OE~2nfsoBtqnf&E%3dltckH>aYwgz@FBKMDpuz|8fdRhBlldD0U{k0_v)VLn)+BH+7h#(qqkbvw zvMLl=+c^AzDa28cyDuHmFe= zFg*j)ZS@AWX{C6Y9+d)_GcGs`76bM+l^WFu3k+j>2BJgbgU)ku7{xPl&bfs@0r6IxtC zBa(9}5}#$bIvjVYz1;Zus@q$JJ@*Kd_TrI~{)PhHn&VB~6PhN$0+Hd>&LWz7?s#s| ztzG?gHO?_ut}ZyWMe;&=B&RmigK>RTLr-3FY3*oF;hqbsiG$h>kC@@U)}+7J+`V<~ z+Xq2g&Wx30l_#|j&vCKH%!)XpB@851xySL4|WV~E9WowZik^|?)t@u&0iWsZp5$XwQ*-*^-Lnr84V(!di z7!DPS4HF8N2EX^b3x0j;w`ZX{hU~f|5&m$&`wPAr{=~QQNSN)?4ZX~c>Mw^1HhfQH zopva4AI*RL#c$64j7X3+RZ4gaTyo0WazAZ_aqZaMinjW;Sepm?xZP7V{~pxm4s}16 zx^yMat(qQ{n%DCg5pk@;w`1==LL9qj^wsRFD%Vqz(ddiG^m9u^O%aS2?m zU$u0s@0DUfm*qq{H|xdnCn?X}uh1XgOk*xT0OzQzRIVq^R}q2(!%**L8-=J9ia5hE zCbZuzZ>r#(>v3m=M=Hdxifq+Sohp0h?s6XV^()(-c`#&j{6b3ZV~J=Z ztBpS?2P(fQ2ypwjoz|Sc5&g7WTz52oo2ovBXLDx0&O%;7ITq)tJRh)$vy5Dl@ zyG}Jm)Q(-=kWQ%L!)hiKA01II^h$)P`_S{QUz4{pr51>Hyqt}{9Tql=B4y*nTNen<4w#Yi%N zT#u6!r#5|=r~rABrf2$EB&wi*B8?n1cN~OGwwfqq7Rfklf&#_?i7{~CW#MUZce0;5u@YE} zjh`O#3UE_a%NnPiiH#m!NXw6&_5GoT(UC_V+&Z`-D$nZpf8(OZr8?Z8BawjFFbkp3 KXhC7Yl>Y#_gE930 delta 3040 zcmd5;du$X%9B!#nI1<1j4;6H1s8pbPGqdkl8u~hVP^erBlt&}mcH3_0-Icp7wg$35 zFxrMcYA8eliM&FHv4+qf8jMCL6;Lo@fM6t`mKGEU5kwM_;>_&r-8O{~|1*2J?EL08 z^LxzqeLJ_B|FmXiyiwrGLY(Z$IDG5VhaLey5U#BEWM>0!u^y^5>wrj10S^FRYx{_) zT?dlS47aF>dJ!X%vFOo5)pW?m7t@?dOQR0FC6)E1W{{;5D+fVm zsdphjY{q9qq9zdNJFT&dFNIgz`r57yOB${uSJ2I)W<=M5P8ha@Q@<3qVpnu07;TBu zyzwa{K-V{;7L5~~P7#BkLLA@XG3`h0{-<~OJ^o~O|9Qm6S4*x0?DA8L0+VxaLE4LSyh9znnb2nrK=P!w~Cj@TPERhkSU zWsxSG&M|AA7S$ODpV%FO70b-8(;`j}inXXcMmPqiK}`pU9t*>Ow=h%{t~Nroz`N84 z<%Xh$V_>nD8r5c9l(dpZGN;I-ffNqzhgTtoc*&BH3S#f{)$Q{1cNt?2NwP|g%XXHr z%Bczzm_b$*PQePo6n4BSauBH^k6bYnWU0hOz_G}(h&dIjl0uvP^hZ>Q+7NG<21q*C0lG96BC|C&QeTU?!-?(_lablH-D~w*}VTwW~(-8D<7lL|B1`C z>?gz>yY)5Ek-=on_ZLw5(rH_v5`=zyhb%8yQrZ$Fg5nR=gz0WnECPD1K}4TOU@rNz z=}h~`l(!^OO@xv#IMZKEB+D>c;!~wfjg1X@kO~=7Dc2`0acV>yo#Xc|1uG!1Rsab? z4yv*wN{?I(_^u2{vT#}sw%_?G$vOh}ITF9h;qO!~Y7_h%-F6E#cAEX>ZnOidC z7Q*C}s=x$5t|9E|;kB zmUM3a<%T}VH}c|*foVJQPX6Ddt)c(kr~;C$QkbHC4@p><5`zjk(Z*-x!| z2VNbsCB5W`dFhXRZxtLlxn$td^)+)AJ?QSgyJcj>u2H*v_txI&>RrF_&8y!Z*#611 z3;y*@f%E-)Q~h1vuGasq+jpqw;)fGwbcD8t4AHu&Z#&jnayjRhAD6$}_ujpf%azgh zsX7k6i?K$=KesyyrY_zwCjI9Pn~yC6+E-%=R;HwFe-`YSQdGX+-SX}c q=^wmsYxJ-aH$xC6CEYj1t{mEgsHsKF<_M_|Nl;Nd85xBoKF`0X=Td?I diff --git a/report/scaling.png b/report/scaling.png index 61a1867174c9392642cf9c11b2c26c8c2c03e528..8f70bf5deb9061509941a0c49f8fc9271fd46498 100644 GIT binary patch literal 72812 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 literal 80847 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%0AvS=1*i`%FnQn{E&~)XAta5g$|7gdU!Hc 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%0AUPO*cwOB?eB|UYy$~Dk{S0V8KWXWY3W& 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 expr, Memo&) { +LogicalOperator JoinCommutativity::ApplyImpl(utils::NotNull expr, Memo&) { auto join = std::get(expr->root_operator); std::swap(join.lhs, join.rhs); - if (join.type == JoinType::kLeft) { join.type = JoinType::kRight; } else if (join.type == JoinType::kRight) { @@ -2466,41 +2464,16 @@ \subsection{Калибровка стоимостной модели} } return join; } -bool ImplementHashJoin::IsApplicable( - utils::NotNull expr) { - if (!std::holds_alternative( - expr->root_operator)) { +bool ImplementHashJoin::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; - } - const auto& join = - std::get(expr->root_operator); + const auto& join = std::get(expr->root_operator); if (join.type != JoinType::kInner) return false; - const auto* bin = - std::get_if(&join.qual); - return bin && bin->binop == BinaryOp::kEq - && std::holds_alternative(*bin->lhs) - && std::holds_alternative(*bin->rhs); + const auto* bin = std::get_if(&join.qual); + return bin && bin->binop == BinaryOp::kEq && std::holds_alternative(*bin->lhs) && std::holds_alternative(*bin->rhs); } \end{minted} \end{listing} -\begin{listing}[H] - \caption{Вычисление локальной стоимости физических операторов.} - \label{lst:optimizer-cost} - \begin{minted}[style=bw, breaklines, frame=single, - fontsize=\footnotesize, linenos=false, xleftmargin=1.5em]{cpp} -int64_t CalcCost(PhysicalExpr* expr, - CardinalityEstimates& cardinality) { - return std::visit(utils::Overloaded{ - [&](const physical::NestedLoopJoin& j) { - return 70 * cardinality.GetCardinality(j.lhs) - * cardinality.GetCardinality(j.rhs); - }, - [&](const physical::HashJoin& j) { - return 69 * (cardinality.GetCardinality(j.lhs) - + cardinality.GetCardinality(j.rhs)); - }, - \end{minted} -\end{listing} \begin{figure}[H] \centering From d029f0a6d121b824cc0130eed0c0babfd6738748 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 22:35:03 +0300 Subject: [PATCH 092/120] Add naive plan cost --- include/stewkk/sql/logic/optimizer/rules.hpp | 1 + src/stewkk/sql/logic/optimizer/optimizer.cpp | 1 + .../sql/logic/optimizer/optimizer_test.cpp | 31 +++++++++++++++++++ src/stewkk/sql/logic/optimizer/rules.cpp | 14 +++++++++ .../sql/logic/optimizer/rules_applier.cpp | 1 + src/stewkk/sql/main.cpp | 16 +++++++++- 6 files changed, 63 insertions(+), 1 deletion(-) diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index 57c675b..d3106f7 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -28,5 +28,6 @@ struct Rules { }; Rules<7, 7> MakeMainRules(); +Rules<0, 6> MakeNaiveRules(); } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index e9fc4c1..b3cb887 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -526,5 +526,6 @@ utils::NotNull Optimizer::GetRootGroup } template class Optimizer<7, 7>; +template class Optimizer<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index e87784b..0993ddf 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -13,6 +13,7 @@ #include using ::testing::Eq; +using ::testing::Gt; using ::testing::IsTrue; using ::testing::IsFalse; using ::testing::HasSubstr; @@ -220,6 +221,36 @@ TEST(OptimizerTest, PushesSelectiveFilterIntoHashBuildSide) { " (SeqScan lineorder lo))")); } +TEST(OptimizerTest, NaiveRulesDisableLogicalTransformations) { + std::stringstream s{ + "SELECT * FROM lineorder AS lo " + "JOIN supplier AS s ON lo.suppkey = s.id " + "WHERE s.region = 'AMERICA';"}; + Operator op = GetAST(s).value().op; + SchemaCatalog schema({ + {"lineorder", {Attribute{"lineorder", "suppkey"}, Attribute{"lineorder", "value"}}}, + {"supplier", {Attribute{"supplier", "id"}, Attribute{"supplier", "region"}}}, + }); + CardinalityEstimates cardinality({ + {"lineorder", 6000}, + {"supplier", 100}, + }); + Optimizer optimizer(op, MakeMainRules(), cardinality, schema); + auto optimized = optimizer.Optimize(); + + Optimizer naive_optimizer(op, MakeNaiveRules(), std::move(cardinality), std::move(schema)); + auto naive = naive_optimizer.Optimize(); + + ASSERT_THAT(Serialize(optimized), + HasSubstr("(PhysicalFilter (= (attr s region) (str \"AMERICA\")) " + "(SeqScan supplier s))")); + ASSERT_THAT(Serialize(naive), + Eq("(PhysicalFilter (= (attr s region) (str \"AMERICA\"))" + " (NestedLoopJoin Inner (= (attr lo suppkey) (attr s id))" + " (SeqScan lineorder lo) (SeqScan supplier s)))")); + ASSERT_THAT(naive_optimizer.GetBestCost(), Gt(optimizer.GetBestCost())); +} + TEST(ReachabilityTest, SeqScanReachable) { std::stringstream s{"SELECT * FROM users;"}; auto result = IsPlanReachable(s, SeqScan{"users"}); diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index b230f4f..c4de335 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -25,4 +25,18 @@ Rules<7, 7> MakeMainRules() { }; } +Rules<0, 6> MakeNaiveRules() { + return { + .transformation_rules = {}, + .implementation_rules = { + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + }, + }; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index cbf5808..c25860b 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -31,5 +31,6 @@ utils::NotNull RulesApplier::Ap } template class RulesApplier<7, 7>; +template class RulesApplier<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index f13e12d..dfafb63 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -249,6 +249,7 @@ int main(int argc, char** argv) { PhysicalPlanNode plan; std::int64_t plan_cost = 0; + std::int64_t naive_plan_cost = 0; try { PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} @@ -258,6 +259,17 @@ int main(int argc, char** argv) { LoadSchemaFromCsvDir(args.data_dir), std::move(required)); plan = optimizer.Optimize(); plan_cost = optimizer.GetBestCost(); + + if (args.stats) { + PropertySet naive_required = parsed.required_order + ? PropertySet{SortProperty{*parsed.required_order}} + : PropertySet::Any(); + Optimizer naive_optimizer(parsed.op, MakeNaiveRules(), + CardinalityEstimates{LoadTableSizesFromCsvDir(args.data_dir)}, + LoadSchemaFromCsvDir(args.data_dir), std::move(naive_required)); + naive_optimizer.Optimize(); + naive_plan_cost = naive_optimizer.GetBestCost(); + } } catch (const std::exception& e) { std::cerr << "optimizer error: " << e.what() << "\n"; return kOptimizerError; @@ -297,7 +309,9 @@ int main(int argc, char** argv) { PrintRelation(result.value(), parsed.required_order.has_value()); if (args.stats) { - std::cerr << "STATS plan_cost=" << plan_cost << " exec_us=" << exec_us + std::cerr << "STATS plan_cost=" << plan_cost + << " naive_plan_cost=" << naive_plan_cost + << " exec_us=" << exec_us << " rows=" << result.value().tuples.size() << "\n"; } return kOk; From b482cd61b6c1e900856b28ebff7cbeafc925f699 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 22:52:39 +0300 Subject: [PATCH 093/120] Add naive plan output --- src/stewkk/sql/main.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index dfafb63..d7fea11 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -248,6 +248,7 @@ int main(int argc, char** argv) { } PhysicalPlanNode plan; + PhysicalPlanNode naive_plan; std::int64_t plan_cost = 0; std::int64_t naive_plan_cost = 0; try { @@ -260,22 +261,20 @@ int main(int argc, char** argv) { plan = optimizer.Optimize(); plan_cost = optimizer.GetBestCost(); - if (args.stats) { - PropertySet naive_required = parsed.required_order - ? PropertySet{SortProperty{*parsed.required_order}} - : PropertySet::Any(); - Optimizer naive_optimizer(parsed.op, MakeNaiveRules(), - CardinalityEstimates{LoadTableSizesFromCsvDir(args.data_dir)}, - LoadSchemaFromCsvDir(args.data_dir), std::move(naive_required)); - naive_optimizer.Optimize(); - naive_plan_cost = naive_optimizer.GetBestCost(); - } + PropertySet naive_required = parsed.required_order + ? PropertySet{SortProperty{*parsed.required_order}} + : PropertySet::Any(); + Optimizer naive_optimizer(parsed.op, MakeNaiveRules(), + CardinalityEstimates{LoadTableSizesFromCsvDir(args.data_dir)}, + LoadSchemaFromCsvDir(args.data_dir), std::move(naive_required)); + naive_plan = naive_optimizer.Optimize(); + naive_plan_cost = naive_optimizer.GetBestCost(); } catch (const std::exception& e) { std::cerr << "optimizer error: " << e.what() << "\n"; return kOptimizerError; } - OutputDot(plan, std::nullopt); + OutputDot(plan, naive_plan); if (args.print_plan) { std::cerr << Serialize(plan) << "\n"; From 09eb82c9949f925753313c31a061034f608d7f20 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 23:16:32 +0300 Subject: [PATCH 094/120] Add cost and cardinality to dot graph --- include/stewkk/sql/logic/executor/plan.hpp | 30 +++++- src/stewkk/sql/logic/executor/executor.cpp | 2 +- src/stewkk/sql/logic/executor/plan.cpp | 4 + .../sql/logic/executor/plan_serializer.cpp | 101 +++++++++++------- .../logic/executor/plan_serializer_test.cpp | 9 ++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 7 +- .../sql/logic/optimizer/optimizer_test.cpp | 5 +- .../sql/logic/optimizer/reachability.cpp | 16 +-- 8 files changed, 125 insertions(+), 49 deletions(-) diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index af919b0..74692d7 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -1,8 +1,12 @@ #pragma once #include +#include +#include #include #include +#include +#include #include #include @@ -23,8 +27,7 @@ struct MergeJoin; struct IndexSeek; struct PhysicalSort; struct PhysicalAggregation; - -using PhysicalPlanNode = std::variant; +struct PhysicalPlanNode; struct SeqScan { std::string table; @@ -107,4 +110,27 @@ struct PhysicalAggregation { bool operator==(const PhysicalAggregation&) const; }; +struct PlanNodeMetadata { + std::int64_t cardinality = 0; + std::int64_t local_cost = 0; + + bool operator==(const PlanNodeMetadata&) const = default; +}; + +using PhysicalPlanAlternative = std::variant; + +struct PhysicalPlanNode { + PhysicalPlanAlternative node; + std::optional metadata; + + PhysicalPlanNode() = default; + + template + requires (!std::same_as, PhysicalPlanNode> + && std::constructible_from) + PhysicalPlanNode(T&& value) : node(std::forward(value)) {} + + bool operator==(const PhysicalPlanNode& other) const; +}; + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 6259936..cbdd4ad 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -755,7 +755,7 @@ boost::asio::awaitable Executor::Execute(const Physica TuplesChannel& tuples_chan; Executor& executor; }; - co_await std::visit(ExecuteVisitor{attr_chan, tuples_chan, *this}, op); + co_await std::visit(ExecuteVisitor{attr_chan, tuples_chan, *this}, op.node); co_return; } diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 7bbbed7..693aa5c 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -2,6 +2,10 @@ namespace stewkk::sql { +bool PhysicalPlanNode::operator==(const PhysicalPlanNode& other) const { + return node == other.node; +} + std::string_view OutputTable(const SeqScan& scan) { return scan.alias ? std::string_view{*scan.alias} : std::string_view{scan.table}; } diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 9ae53dc..af8baa0 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -224,7 +224,7 @@ std::string SerializeNode(const PhysicalPlanNode& node) { group_by_str, aggs_str, SerializeNode(*n.source)); } }; - return std::visit(Visitor{}, node); + return std::visit(Visitor{}, node.node); } enum class TokenKind { LParen, RParen, Atom }; @@ -587,7 +587,11 @@ struct DotBuilder { std::ostringstream os; int next_id = 0; - int Emit(std::string_view label) { + int Emit(std::string label, const std::optional& metadata) { + if (metadata) { + label += std::format("\\ncard={}\\ncost={}", metadata->cardinality, + metadata->local_cost); + } int id = next_id++; os << std::format(" n{} [label=\"{}\"]\n", id, EscapeLabel(label)); return id; @@ -597,65 +601,87 @@ struct DotBuilder { os << std::format(" n{} -> n{}\n", from, to); } - int operator()(const SeqScan& n) { + int EmitNode(const PhysicalPlanNode& node) { + return std::visit([&](const auto& n) { return EmitAlternative(n, node.metadata); }, + node.node); + } + + int EmitAlternative(const SeqScan& n, const std::optional& metadata) { if (n.alias) { - return Emit(std::format("SeqScan\\n{} AS {}", n.table, *n.alias)); + return Emit(std::format("SeqScan\\n{} AS {}", n.table, *n.alias), metadata); } - return Emit(std::format("SeqScan\\n{}", n.table)); + return Emit(std::format("SeqScan\\n{}", n.table), metadata); } - int operator()(const PhysicalFilter& n) { - int src = std::visit(*this, *n.source); - int id = Emit(std::format("σ {}", ToString(n.predicate))); + + int EmitAlternative(const PhysicalFilter& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); + int id = Emit(std::format("σ {}", ToString(n.predicate)), metadata); EmitEdge(src, id); return id; } - int operator()(const PhysicalProjection& n) { - int src = std::visit(*this, *n.source); + + int EmitAlternative(const PhysicalProjection& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); auto exprs = n.expressions | std::views::transform([](const Expression& e) { return ToString(e); }) | std::views::join_with(std::string(", ")) | std::ranges::to(); - int id = Emit(std::format("π {}", exprs)); + int id = Emit(std::format("π {}", exprs), metadata); EmitEdge(src, id); return id; } - int operator()(const NestedLoopCrossJoin& n) { - int lhs = std::visit(*this, *n.lhs); - int rhs = std::visit(*this, *n.rhs); - int id = Emit("×"); + + int EmitAlternative(const NestedLoopCrossJoin& n, + const std::optional& metadata) { + int lhs = EmitNode(*n.lhs); + int rhs = EmitNode(*n.rhs); + int id = Emit("×", metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); return id; } - int operator()(const NestedLoopJoin& n) { - int lhs = std::visit(*this, *n.lhs); - int rhs = std::visit(*this, *n.rhs); - int id = Emit(std::format("NL {}\\nON {}", ToString(n.type), ToString(n.qual))); + + int EmitAlternative(const NestedLoopJoin& n, + const std::optional& metadata) { + int lhs = EmitNode(*n.lhs); + int rhs = EmitNode(*n.rhs); + int id = Emit(std::format("NL {}\\nON {}", ToString(n.type), ToString(n.qual)), + metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); return id; } - int operator()(const IndexSeek& n) { - return Emit(std::format("IndexSeek\\n{}\\n{}", n.table, ToString(n.predicate))); + + int EmitAlternative(const IndexSeek& n, const std::optional& metadata) { + return Emit(std::format("IndexSeek\\n{}\\n{}", n.table, ToString(n.predicate)), + metadata); } - int operator()(const HashJoin& n) { - int lhs = std::visit(*this, *n.lhs); - int rhs = std::visit(*this, *n.rhs); - int id = Emit(std::format("Hash {}\\nON {}", ToString(n.type), ToString(n.qual))); + + int EmitAlternative(const HashJoin& n, const std::optional& metadata) { + int lhs = EmitNode(*n.lhs); + int rhs = EmitNode(*n.rhs); + int id = Emit(std::format("Hash {}\\nON {}", ToString(n.type), ToString(n.qual)), + metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); return id; } - int operator()(const MergeJoin& n) { - int lhs = std::visit(*this, *n.lhs); - int rhs = std::visit(*this, *n.rhs); - int id = Emit(std::format("Merge {}\\nON {}", ToString(n.type), ToString(n.qual))); + + int EmitAlternative(const MergeJoin& n, const std::optional& metadata) { + int lhs = EmitNode(*n.lhs); + int rhs = EmitNode(*n.rhs); + int id = Emit(std::format("Merge {}\\nON {}", ToString(n.type), ToString(n.qual)), + metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); return id; } - int operator()(const PhysicalSort& n) { - int src = std::visit(*this, *n.source); + + int EmitAlternative(const PhysicalSort& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); std::string keys; for (const auto& k : n.keys.keys) { if (!keys.empty()) keys += ", "; @@ -664,12 +690,14 @@ struct DotBuilder { keys += k.column; keys += k.dir == Direction::kAsc ? " asc" : " desc"; } - int id = Emit(std::format("Sort\\n{}", keys)); + int id = Emit(std::format("Sort\\n{}", keys), metadata); EmitEdge(src, id); return id; } - int operator()(const PhysicalAggregation& n) { - int src = std::visit(*this, *n.source); + + int EmitAlternative(const PhysicalAggregation& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); std::string aggs; for (const auto& e : n.aggregates) { if (!aggs.empty()) aggs += ", "; @@ -680,7 +708,8 @@ struct DotBuilder { if (!group_by.empty()) group_by += ", "; group_by += ToString(e); } - int id = Emit(std::format("HashAgg\\nGROUP BY {}\\n{}", group_by, aggs)); + int id = Emit(std::format("HashAgg\\nGROUP BY {}\\n{}", group_by, aggs), + metadata); EmitEdge(src, id); return id; } @@ -700,7 +729,7 @@ PhysicalPlanNode Deserialize(std::string_view text) { std::string SerializeDot(const PhysicalPlanNode& node) { DotBuilder b; - std::visit(b, node); + b.EmitNode(node); return std::format("digraph G {{ rankdir=BT;\n{}}}\n", b.os.str()); } diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index 0c33461..34d6a69 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -261,4 +261,13 @@ TEST(PlanSerializerDotTest, SmokeTest) { EXPECT_THAT(dot, ::testing::HasSubstr("n1 -> n2")); } +TEST(PlanSerializerDotTest, RendersMetadataWhenPresent) { + PhysicalPlanNode plan = SeqScan{"users"}; + plan.metadata = PlanNodeMetadata{.cardinality = 42, .local_cost = 4200}; + + auto dot = SerializeDot(plan); + + EXPECT_THAT(dot, ::testing::HasSubstr("SeqScan\\\\nusers\\\\ncard=42\\\\ncost=4200")); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index b3cb887..2a8951b 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -408,7 +408,7 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G } auto* best_expr = it->second.plan; utils::NotNull best_expr_nn{best_expr}; - return std::visit( + auto plan = std::visit( utils::Overloaded{ [](const physical::SeqScan& op) -> PhysicalPlanNode { return SeqScan{.table = op.table, .alias = op.alias}; @@ -473,6 +473,11 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G }, }, best_expr->root_operator); + plan.metadata = PlanNodeMetadata{ + .cardinality = cardinality_.GetCardinality(best_expr->group), + .local_cost = local_cost_.at(best_expr), + }; + return plan; } template diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 0993ddf..5e585df 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -66,7 +66,10 @@ TEST(OptimizerTest, Simple) { auto got = optimizer.Optimize(); - ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n n0 [label=\"SeqScan\\\\nusers\"]\n}\n")); + ASSERT_THAT(SerializeDot(got), + Eq("digraph G { rankdir=BT;\n" + " n0 [label=\"SeqScan\\\\nusers\\\\ncard=10\\\\ncost=1000\"]\n" + "}\n")); ASSERT_THAT(optimizer.GetBestCost(), Eq(1000)); } diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 8aa6544..90c9283 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -26,7 +26,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, const PhysicalPlanNode& target, int depth) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected SeqScan"}; if (op.table != t->table) return {false, depth + 1, @@ -38,7 +38,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return {true, depth + 1, {}}; }, [&](const physical::Filter& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected Filter"}; if (op.predicate != t->predicate) return {false, depth + 1, @@ -49,7 +49,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return child; }, [&](const physical::Projection& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected Projection"}; if (op.expressions != t->expressions) return {false, depth + 1, "Projection expressions mismatch"}; @@ -58,7 +58,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return child; }, [&](const physical::NestedLoopJoin& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected NestedLoopJoin"}; if (op.type != t->type) return {false, depth + 1, "NestedLoopJoin join type mismatch"}; @@ -73,7 +73,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return {true, std::max(lhs.depth, rhs.depth), {}}; }, [&](const physical::NestedLoopCrossJoin& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected NestedLoopCrossJoin"}; auto lhs = MatchGroup(op.lhs.get(), *t->lhs, depth + 1); if (!lhs.ok) { lhs.reason = "NestedLoopCrossJoin.lhs: " + lhs.reason; return lhs; } @@ -82,7 +82,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return {true, std::max(lhs.depth, rhs.depth), {}}; }, [&](const physical::HashJoin& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected HashJoin"}; if (op.type != t->type) return {false, depth + 1, "HashJoin join type mismatch"}; @@ -97,7 +97,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return {true, std::max(lhs.depth, rhs.depth), {}}; }, [&](const physical::Sort& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected Sort"}; if (op.keys != t->keys) return {false, depth + 1, "Sort keys mismatch"}; @@ -106,7 +106,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return child; }, [&](const physical::Aggregation& op) -> InternalMatch { - const auto* t = std::get_if(&target); + const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected HashAggregate"}; if (op.group_by != t->group_by) return {false, depth + 1, "Aggregation group_by mismatch"}; From c1d0eb75470ee8f39f1617421ff3a650d94f092c Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 23:21:34 +0300 Subject: [PATCH 095/120] Typo --- src/stewkk/sql/logic/executor/plan_serializer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index af8baa0..92265cb 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -589,7 +589,7 @@ struct DotBuilder { int Emit(std::string label, const std::optional& metadata) { if (metadata) { - label += std::format("\\ncard={}\\ncost={}", metadata->cardinality, + label += std::format("\ncard={}\ncost={}", metadata->cardinality, metadata->local_cost); } int id = next_id++; From a2ee42e9bb21a35096664db4adc6e6f701de4677 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 7 Jun 2026 23:46:00 +0300 Subject: [PATCH 096/120] Index seek support in optimizer --- .../implement_index_seek.hpp | 21 +++++ .../sql/logic/optimizer/physical_expr.hpp | 11 ++- .../sql/logic/optimizer/reachability.hpp | 3 +- include/stewkk/sql/logic/optimizer/rules.hpp | 3 +- .../sql/logic/optimizer/schema_catalog.hpp | 19 ++++ research/converter.py | 16 ++-- research/fuzz/mssql_runner.py | 7 ++ research/fuzz/reach_fuzz.py | 30 ++++++- research/test_converter.py | 60 ++++++++++++- src/stewkk/sql/CMakeLists.txt | 1 + .../sql/logic/executor/executor_test.cpp | 45 ++++++++++ .../sql/logic/executor/plan_serializer.cpp | 4 + .../logic/executor/plan_serializer_test.cpp | 2 +- .../implement_index_seek.cpp | 86 +++++++++++++++++++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 16 +++- .../sql/logic/optimizer/optimizer_test.cpp | 53 +++++++++++- .../sql/logic/optimizer/reachability.cpp | 22 ++++- src/stewkk/sql/logic/optimizer/rules.cpp | 5 +- .../sql/logic/optimizer/rules_applier.cpp | 2 +- .../sql/logic/optimizer/schema_catalog.cpp | 34 ++++++++ src/stewkk/sql/main.cpp | 9 +- 21 files changed, 427 insertions(+), 22 deletions(-) create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp diff --git a/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp b/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp new file mode 100644 index 0000000..42682fa --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include +#include + +namespace stewkk::sql { + +class ImplementIndexSeek : public ImplementationRule { +public: + explicit ImplementIndexSeek(IndexCatalog indexes); + + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + +private: + IndexCatalog indexes_; +}; + +bool HasCompatibleIndexSeek(const logical::Filter& filter, const IndexCatalog& indexes); + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 193257c..aedb4f5 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -22,6 +22,14 @@ struct SeqScan { bool operator==(const SeqScan&) const = default; }; +struct IndexSeek { + std::string table; + std::optional alias; + Expression predicate; + + bool operator==(const IndexSeek&) const = default; +}; + struct Projection { utils::NotNull source; std::vector expressions; @@ -82,7 +90,8 @@ struct Aggregation { struct PhysicalExpr { std::variant root_operator; + physical::HashJoin, physical::Sort, physical::Aggregation, + physical::IndexSeek> root_operator; utils::NotNull group; bool is_enforcer = false; }; diff --git a/include/stewkk/sql/logic/optimizer/reachability.hpp b/include/stewkk/sql/logic/optimizer/reachability.hpp index c62eda9..e5c7134 100644 --- a/include/stewkk/sql/logic/optimizer/reachability.hpp +++ b/include/stewkk/sql/logic/optimizer/reachability.hpp @@ -21,6 +21,7 @@ MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& tar MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, CardinalityEstimates cardinality = {}, - SchemaCatalog schema = {}); + SchemaCatalog schema = {}, + IndexCatalog indexes = {}); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index d3106f7..7db0a85 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -18,6 +18,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -27,7 +28,7 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<7, 7> MakeMainRules(); +Rules<7, 8> MakeMainRules(IndexCatalog indexes = {}); Rules<0, 6> MakeNaiveRules(); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp index f3d1082..62383d7 100644 --- a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -15,6 +15,23 @@ namespace stewkk::sql { using Schema = std::vector; +struct IndexInfo { + std::string table; + std::string column; + std::string type; + std::string file; +}; + +class IndexCatalog { +public: + IndexCatalog(std::vector indexes = {}); + + bool HasSortedIndex(const std::string& table, const std::string& column) const; + +private: + std::vector indexes_; +}; + class SchemaCatalog { public: SchemaCatalog(std::unordered_map tables = {}); @@ -31,6 +48,8 @@ class SchemaCatalog { SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir); +IndexCatalog LoadIndexCatalogFromCsvDir(const std::filesystem::path& dir); + std::unordered_map LoadTableSizesFromCsvDir( const std::filesystem::path& dir); diff --git a/research/converter.py b/research/converter.py index 439c346..89d2ac9 100644 --- a/research/converter.py +++ b/research/converter.py @@ -210,19 +210,22 @@ def _convert_scan(relop: ET.Element) -> str: raise ValueError("cannot find Object element in scan") table, alias = _object_table_and_alias(obj) visible_table = alias or table + pred_elem = relop.find(f".//{NS}IndexScan/{NS}Predicate/{NS}ScalarOperator") + if pred_elem is None: + pred_elem = relop.find(f".//{NS}TableScan/{NS}Predicate/{NS}ScalarOperator") if "Seek" in phys_op: seek_pred = _convert_seek_predicates(relop, visible_table) if seek_pred is None: - raise ValueError(f"Index Seek node has no SeekPredicates: {phys_op!r}") - base = f"(IndexSeek {seek_pred} {table})" + if pred_elem is None: + raise ValueError(f"Index Seek node has no SeekPredicates: {phys_op!r}") + seek_pred = _convert_scalar(pred_elem) + pred_elem = None + base = f"(IndexSeek {seek_pred} {table} {alias})" if alias else f"(IndexSeek {seek_pred} {table})" else: base = f"(SeqScan {table} {alias})" if alias else f"(SeqScan {table})" # Residual predicate (pushed-down filter evaluated after the scan/seek) - pred_elem = relop.find(f".//{NS}IndexScan/{NS}Predicate/{NS}ScalarOperator") - if pred_elem is None: - pred_elem = relop.find(f".//{NS}TableScan/{NS}Predicate/{NS}ScalarOperator") if pred_elem is not None: return f"(PhysicalFilter {_convert_scalar(pred_elem)} {base})" @@ -235,7 +238,8 @@ def _convert_seek_predicates(relop: ET.Element, table: str) -> str | None: return None conditions = [] - for range_elem in (seek_preds.findall(f".//{NS}StartRange") + + for range_elem in (seek_preds.findall(f".//{NS}Prefix") + + seek_preds.findall(f".//{NS}StartRange") + seek_preds.findall(f".//{NS}EndRange")): op = _SEEK_SCAN_TYPES.get(range_elem.get("ScanType", "")) if not op: diff --git a/research/fuzz/mssql_runner.py b/research/fuzz/mssql_runner.py index db4d056..312ab21 100644 --- a/research/fuzz/mssql_runner.py +++ b/research/fuzz/mssql_runner.py @@ -123,6 +123,13 @@ def conv(v: str, type_: str): rows, ) + for col, type_ in zip(cols, types): + if type_ == "int": + index_name = f"ix_{path.stem}_{col}" + cur.execute( + f"CREATE INDEX [{index_name}] ON [dbo].[{path.stem}] ([{col}])" + ) + def run(self, query: str) -> RunResult: if self._conn is None: self._conn = self._connect(self._database) diff --git a/research/fuzz/reach_fuzz.py b/research/fuzz/reach_fuzz.py index 1c632e0..1eb77b5 100644 --- a/research/fuzz/reach_fuzz.py +++ b/research/fuzz/reach_fuzz.py @@ -25,7 +25,9 @@ from __future__ import annotations import argparse +import os import random +import shutil import subprocess import sys import tempfile @@ -44,6 +46,25 @@ ) +def _make_reachability_data_dir(source_dir: Path, schema: "Schema", tmp_dir: Path) -> Path: + for path in source_dir.glob("*.csv"): + target = tmp_dir / path.name + try: + os.symlink(path.resolve(), target) + except OSError: + shutil.copy2(path, target) + + with (tmp_dir / "indexes.meta").open("w") as meta: + meta.write("# Generated by reach_fuzz.py for optimizer reachability checks.\n") + for table in sorted(schema.tables.values(), key=lambda t: t.name): + for col in table.columns: + if col.type == "int": + meta.write( + f"{table.name} {col.name} sorted {table.name}.{col.name}.sorted.idx\n" + ) + return tmp_dir + + def _quote_alias(alias: str) -> str: return '"' + alias.replace("\\", "\\\\").replace('"', '\\"') + '"' @@ -212,7 +233,12 @@ def main() -> None: ap.add_argument("--mssql-database", default="fuzz") args = ap.parse_args() - schema = load_schema(Path(args.data_dir)) + source_data_dir = Path(args.data_dir) + schema = load_schema(source_data_dir) + reach_tmp = tempfile.TemporaryDirectory(prefix="iu9-sql-reach-") + reach_data_dir = _make_reachability_data_dir( + source_data_dir, schema, Path(reach_tmp.name) + ) mssql = MsSqlRunner( host=args.mssql_host, @@ -261,7 +287,7 @@ def main() -> None: target_plan = _wrap_projection(converted, query) try: - proc = _run_reach_check(args.cli, args.data_dir, ours_sql, target_plan) + proc = _run_reach_check(args.cli, str(reach_data_dir), ours_sql, target_plan) except subprocess.TimeoutExpired: print(f"DIVERGENCE seed={seed}: reachability check timed out") print(f"\n--- query (ours):\n{ours_sql}") diff --git a/research/test_converter.py b/research/test_converter.py index 941f171..a484424 100644 --- a/research/test_converter.py +++ b/research/test_converter.py @@ -129,7 +129,65 @@ def test_aliased_index_seek_from_xml(): result = convert(plan) - assert result == "(IndexSeek (> (attr t titleId) 5000) Titles)" + assert result == "(IndexSeek (> (attr t titleId) 5000) Titles t)" + + +def test_index_seek_without_seek_predicates_uses_predicate_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == "(IndexSeek (= (attr t0 region_id) 7) customers t0)" + + +def test_index_seek_prefix_eq_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == "(IndexSeek (= (attr t0 region_id) 7) customers t0)" def test_filter_lt(extractor): diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 312cef8..8784d11 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -48,6 +48,7 @@ add_library(libsql logic/transformation_rules/in_to_or_chain.cpp logic/implementation_rules/implement_table.cpp logic/implementation_rules/implement_filter.cpp + logic/implementation_rules/implement_index_seek.cpp logic/implementation_rules/implement_projection.cpp logic/implementation_rules/implement_join.cpp logic/implementation_rules/implement_cross_join.cpp diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index cb50130..d199219 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -7,10 +7,15 @@ #include #include #include +#include #include #include #include +#include +#include +#include +#include #include #include @@ -189,6 +194,46 @@ TEST(ExecutorTest, IndexSeekBuildsAndUsesSortedIntIndex) { ctx.run(); } +TEST(ExecutorTest, OptimizedIndexSeekPlanExecutes) { + auto dir = std::filesystem::temp_directory_path() / "iu9_sql_optimized_index_seek_test"; + std::filesystem::remove_all(dir); + std::filesystem::create_directories(dir); + { + std::ofstream csv{dir / "users.csv"}; + csv << "id:int,age:int\n" + << "10,22\n" + << "1,33\n" + << "8,64\n" + << "8,70\n"; + std::ofstream meta{dir / "indexes.meta"}; + meta << "users id sorted users.id.sorted.idx\n"; + } + + std::stringstream sql{"SELECT * FROM users WHERE users.id >= 8 AND users.age < 70;"}; + auto parsed = GetAST(sql).value(); + Optimizer optimizer(parsed.op, MakeMainRules(LoadIndexCatalogFromCsvDir(dir)), + CardinalityEstimates({{"users", 4}}), + LoadSchemaFromCsvDir(dir)); + auto plan = optimizer.Optimize(); + + boost::asio::io_context ctx; + CsvDirSequentialScanner seq_scan{dir.string()}; + CsvDirIndexedScanner index_scan{dir.string()}; + Executor executor(std::move(seq_scan), std::move(index_scan), ctx.get_executor()); + auto fut = boost::asio::co_spawn(ctx, executor.Execute(plan), boost::asio::use_future); + ctx.run(); + auto got = fut.get(); + + ASSERT_THAT(got.value().attributes, + Eq(AttributesInfo{{"users", "id", Type::kInt}, {"users", "age", Type::kInt}})); + ASSERT_THAT(got.value().tuples, + Eq(Tuples{ + Tuple{Value{false, 8}, Value{false, 64}}, + Tuple{Value{false, 10}, Value{false, 22}}, + })); + std::filesystem::remove_all(dir); +} + TEST(ExecutorTest, StringFilterProjectionAndCsvQuotes) { boost::asio::io_context ctx; boost::asio::co_spawn( diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 92265cb..14ad1c0 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -577,6 +577,10 @@ std::string EscapeLabel(std::string_view s) { std::string out; out.reserve(s.size()); for (char c : s) { + if (c == '\n') { + out += "\\n"; + continue; + } if (c == '"' || c == '\\') out += '\\'; out += c; } diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index 34d6a69..ed59687 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -267,7 +267,7 @@ TEST(PlanSerializerDotTest, RendersMetadataWhenPresent) { auto dot = SerializeDot(plan); - EXPECT_THAT(dot, ::testing::HasSubstr("SeqScan\\\\nusers\\\\ncard=42\\\\ncost=4200")); + EXPECT_THAT(dot, ::testing::HasSubstr("SeqScan\\\\nusers\\ncard=42\\ncost=4200")); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp b/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp new file mode 100644 index 0000000..44204b0 --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp @@ -0,0 +1,86 @@ +#include + +#include +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +namespace { + +bool IsSupportedComparison(BinaryOp op) { + return std::ranges::contains(std::vector{BinaryOp::kEq, BinaryOp::kLt, BinaryOp::kLe, + BinaryOp::kGt, BinaryOp::kGe}, op); +} + +const logical::Table* SourceTable(utils::NotNull group) { + auto exprs = group->GetLogicalExprs(); + if (exprs.size() != 1) { + return nullptr; + } + return std::get_if(&exprs.front()->root_operator); +} + +bool AttrMatchesTable(const Attribute& attr, const logical::Table& table) { + auto visible = std::string_view{VisibleName(table)}; + return attr.table.empty() || attr.table == table.name || attr.table == visible; +} + +bool IsIndexedComparison(const Expression& expr, const logical::Table& table, + const IndexCatalog& indexes) { + const auto* binary = std::get_if(&expr); + if (!binary || !IsSupportedComparison(binary->binop)) { + return false; + } + + if (const auto* attr = std::get_if(binary->lhs.get()); + attr && AttrMatchesTable(*attr, table) && std::holds_alternative(*binary->rhs)) { + return indexes.HasSortedIndex(table.name, attr->name); + } + if (const auto* attr = std::get_if(binary->rhs.get()); + attr && AttrMatchesTable(*attr, table) && std::holds_alternative(*binary->lhs)) { + return indexes.HasSortedIndex(table.name, attr->name); + } + return false; +} + +} // namespace + +ImplementIndexSeek::ImplementIndexSeek(IndexCatalog indexes) + : indexes_(std::move(indexes)) {} + +bool HasCompatibleIndexSeek(const logical::Filter& filter, const IndexCatalog& indexes) { + const auto* table = SourceTable(filter.source); + if (!table) { + return false; + } + + std::vector conjuncts; + CollectConjuncts(filter.predicate, conjuncts); + return std::ranges::any_of(conjuncts, [&](const Expression& conjunct) { + return IsIndexedComparison(conjunct, *table, indexes); + }); +} + +bool ImplementIndexSeek::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) { + return false; + } + return HasCompatibleIndexSeek(std::get(expr->root_operator), indexes_); +} + +utils::NotNull ImplementIndexSeek::Apply(utils::NotNull expr, Memo&) { + auto& filter = std::get(expr->root_operator); + const auto* table = SourceTable(filter.source); + return expr->group->AddPhysicalExpr(physical::IndexSeek{ + .table = table->name, + .alias = table->alias, + .predicate = filter.predicate, + }); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 2a8951b..d1a1698 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -30,6 +31,7 @@ PropertySet RequiredInputProps(utils::NotNull expr, PropertySet required, size_t child_index) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) { return PropertySet::Any(); }, + [&](const physical::IndexSeek&) { return PropertySet::Any(); }, [&](const physical::Filter&) { return required; }, [&](const physical::Projection&) { return required; }, [&](const physical::NestedLoopJoin&) { return PropertySet::Any(); }, @@ -46,6 +48,7 @@ PropertySet DeriveOutputProps(utils::NotNull expr, const std::vector& child_delivered) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) { return PropertySet::Any(); }, + [&](const physical::IndexSeek&) { return PropertySet::Any(); }, [&](const physical::Filter&) { return child_delivered[0]; }, [&](const physical::Projection&) { return child_delivered[0]; }, [&](const physical::NestedLoopJoin&) { return PropertySet::Any(); }, @@ -103,6 +106,11 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi [&](const physical::SeqScan&) -> int64_t { return 100 * cardinality.GetCardinality(expr->group); }, + [&](const physical::IndexSeek&) -> int64_t { + auto out = cardinality.GetCardinality(expr->group); + return 200 * out + 100 * static_cast( + std::bit_width(static_cast(std::max(1, out)))); + }, [&](const physical::Filter&) -> int64_t { return 100 * cardinality.GetCardinality(expr->group); }, @@ -162,6 +170,9 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::SeqScan&) -> std::vector> { return {}; }, + [](const physical::IndexSeek&) -> std::vector> { + return {}; + }, [](const physical::Filter& f) -> std::vector> { return {f.source}; }, @@ -413,6 +424,9 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G [](const physical::SeqScan& op) -> PhysicalPlanNode { return SeqScan{.table = op.table, .alias = op.alias}; }, + [](const physical::IndexSeek& op) -> PhysicalPlanNode { + return IndexSeek{.table = op.table, .alias = op.alias, .predicate = op.predicate}; + }, [this, best_expr_nn, required](const physical::Projection& op) -> PhysicalPlanNode { return PhysicalProjection{ .source = std::make_shared( @@ -530,7 +544,7 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<7, 7>; +template class Optimizer<7, 8>; template class Optimizer<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 5e585df..edbf3e0 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -68,7 +68,7 @@ TEST(OptimizerTest, Simple) { ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n" - " n0 [label=\"SeqScan\\\\nusers\\\\ncard=10\\\\ncost=1000\"]\n" + " n0 [label=\"SeqScan\\\\nusers\\ncard=10\\ncost=1000\"]\n" "}\n")); ASSERT_THAT(optimizer.GetBestCost(), Eq(1000)); } @@ -224,6 +224,42 @@ TEST(OptimizerTest, PushesSelectiveFilterIntoHashBuildSide) { " (SeqScan lineorder lo))")); } +TEST(OptimizerTest, UsesIndexSeekForIndexedIntegerPredicate) { + std::stringstream s{"SELECT * FROM users WHERE users.id = 8;"}; + Operator op = GetAST(s).value().op; + Optimizer optimizer(op, MakeMainRules(IndexCatalog({ + IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, + })), CardinalityEstimates({{"users", 1000}})); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), Eq("(IndexSeek (= (attr users id) 8) users)")); +} + +TEST(OptimizerTest, KeepsSequentialFilterWhenIndexMetadataIsAbsent) { + std::stringstream s{"SELECT * FROM users WHERE users.id = 8;"}; + Operator op = GetAST(s).value().op; + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({{"users", 1000}})); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), + Eq("(PhysicalFilter (= (attr users id) 8) (SeqScan users))")); +} + +TEST(OptimizerTest, IndexSeekSupportsAliasAndFullResidualPredicate) { + std::stringstream s{"SELECT * FROM users AS u WHERE u.id >= 8 AND u.age < 70;"}; + Operator op = GetAST(s).value().op; + Optimizer optimizer(op, MakeMainRules(IndexCatalog({ + IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, + })), CardinalityEstimates({{"users", 1000}})); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), + Eq("(IndexSeek (and (>= (attr u id) 8) (< (attr u age) 70)) users u)")); +} + TEST(OptimizerTest, NaiveRulesDisableLogicalTransformations) { std::stringstream s{ "SELECT * FROM lineorder AS lo " @@ -267,6 +303,21 @@ TEST(ReachabilityTest, SeqScanWrongTable) { ASSERT_THAT(result.mismatch, HasSubstr("users")); } +TEST(ReachabilityTest, IndexSeekReachableWithIndexCatalog) { + std::stringstream s{"SELECT * FROM users WHERE users.id >= 8;"}; + Expression predicate = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kGe, + std::make_shared(IntConst{8})}; + auto result = IsPlanReachable( + s, IndexSeek{"users", std::nullopt, predicate}, {}, {}, + IndexCatalog({ + IndexInfo{.table = "users", .column = "id", .type = "sorted", + .file = "users.id.sorted.idx"}, + })); + ASSERT_THAT(result.reachable, IsTrue()); +} + TEST(ReachabilityTest, WrongOperatorType) { std::stringstream s{"SELECT * FROM users;"}; Expression qual = BinaryExpression{ diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 90c9283..cbf1497 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include @@ -37,6 +38,22 @@ InternalMatch TryMatchExpr(utils::NotNull pe, op.alias.value_or(""), t->alias.value_or(""))}; return {true, depth + 1, {}}; }, + [&](const physical::IndexSeek& op) -> InternalMatch { + const auto* t = std::get_if(&target.node); + if (!t) return {false, depth, "type mismatch: expected IndexSeek"}; + if (op.table != t->table) + return {false, depth + 1, + std::format("IndexSeek table '{}' != '{}'", op.table, t->table)}; + if (op.alias != t->alias) + return {false, depth + 1, + std::format("IndexSeek alias '{}' != '{}'", + op.alias.value_or(""), t->alias.value_or(""))}; + if (op.predicate != t->predicate) + return {false, depth + 1, + std::format("IndexSeek predicate '{}' != '{}'", + ToString(op.predicate), ToString(t->predicate))}; + return {true, depth + 1, {}}; + }, [&](const physical::Filter& op) -> InternalMatch { const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected Filter"}; @@ -139,12 +156,13 @@ MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& tar } MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, - CardinalityEstimates cardinality, SchemaCatalog schema) { + CardinalityEstimates cardinality, SchemaCatalog schema, + IndexCatalog indexes) { auto parsed = GetAST(sql).value(); PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} : PropertySet::Any(); - Optimizer optimizer(parsed.op, MakeMainRules(), std::move(cardinality), + Optimizer optimizer(parsed.op, MakeMainRules(std::move(indexes)), std::move(cardinality), std::move(schema), std::move(required)); auto plan = optimizer.OptimizeExhaustive(); auto result = IsReachable(optimizer.GetRootGroup(), target); diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index c4de335..47a4839 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -1,8 +1,10 @@ #include +#include + namespace stewkk::sql { -Rules<7, 7> MakeMainRules() { +Rules<7, 8> MakeMainRules(IndexCatalog indexes) { return { .transformation_rules = { std::make_unique(), @@ -16,6 +18,7 @@ Rules<7, 7> MakeMainRules() { .implementation_rules = { std::make_unique(), std::make_unique(), + std::make_unique(std::move(indexes)), std::make_unique(), std::make_unique(), std::make_unique(), diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index c25860b..82abf06 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -30,7 +30,7 @@ utils::NotNull RulesApplier::Ap return rules_.implementation_rules[rule.value]->Apply(expr, memo); } -template class RulesApplier<7, 7>; +template class RulesApplier<7, 8>; template class RulesApplier<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index 3c75ca6..9591609 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -5,11 +5,22 @@ #include #include #include +#include +#include #include namespace stewkk::sql { +IndexCatalog::IndexCatalog(std::vector indexes) + : indexes_(std::move(indexes)) {} + +bool IndexCatalog::HasSortedIndex(const std::string& table, const std::string& column) const { + return std::ranges::any_of(indexes_, [&](const IndexInfo& index) { + return index.table == table && index.column == column && index.type == "sorted"; + }); +} + SchemaCatalog::SchemaCatalog(std::unordered_map tables) : tables_(std::move(tables)) {} @@ -113,6 +124,29 @@ SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir) { return SchemaCatalog{std::move(tables)}; } +IndexCatalog LoadIndexCatalogFromCsvDir(const std::filesystem::path& dir) { + std::vector indexes; + std::ifstream input{dir / "indexes.meta"}; + if (!input) { + return IndexCatalog{}; + } + + std::string line; + while (std::getline(input, line)) { + auto first = line.find_first_not_of(" \t\r\n"); + if (first == std::string::npos || line[first] == '#') { + continue; + } + + std::istringstream fields{line}; + IndexInfo index; + if (fields >> index.table >> index.column >> index.type >> index.file) { + indexes.push_back(std::move(index)); + } + } + return IndexCatalog{std::move(indexes)}; +} + std::unordered_map LoadTableSizesFromCsvDir( const std::filesystem::path& dir) { std::unordered_map sizes; diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index d7fea11..172431e 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -186,8 +186,9 @@ boost::asio::awaitable> RunQuery(const std::string& data_dir, boost::asio::awaitable> RunQueryJit(const std::string& data_dir, const PhysicalPlanNode& plan) { CsvDirSequentialScanner seq_scan{data_dir}; + CsvDirIndexedScanner index_scan{data_dir}; Executor executor( - std::move(seq_scan), co_await boost::asio::this_coro::executor); + std::move(seq_scan), std::move(index_scan), co_await boost::asio::this_coro::executor); co_return co_await executor.Execute(plan); } @@ -223,7 +224,9 @@ int main(int argc, char** argv) { try { SchemaCatalog schema = args.data_dir.empty() ? SchemaCatalog{} : LoadSchemaFromCsvDir(args.data_dir); - mr = IsPlanReachable(sql_stream, target, {}, std::move(schema)); + IndexCatalog indexes = args.data_dir.empty() ? IndexCatalog{} + : LoadIndexCatalogFromCsvDir(args.data_dir); + mr = IsPlanReachable(sql_stream, target, {}, std::move(schema), std::move(indexes)); } catch (const std::exception& e) { std::cerr << "reachability error: " << e.what() << "\n"; return kOptimizerError; @@ -255,7 +258,7 @@ int main(int argc, char** argv) { PropertySet required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} : PropertySet::Any(); - Optimizer optimizer(parsed.op, MakeMainRules(), + Optimizer optimizer(parsed.op, MakeMainRules(LoadIndexCatalogFromCsvDir(args.data_dir)), CardinalityEstimates{LoadTableSizesFromCsvDir(args.data_dir)}, LoadSchemaFromCsvDir(args.data_dir), std::move(required)); plan = optimizer.Optimize(); From 0841199947f459ff4c1436c84c2b0e0ca3863883 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 8 Jun 2026 00:42:08 +0300 Subject: [PATCH 097/120] Fix UB --- .../stewkk/sql/logic/executor/executor.hpp | 6 + src/stewkk/sql/logic/executor/executor.cpp | 212 +++++++++--------- 2 files changed, 115 insertions(+), 103 deletions(-) diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 38ae688..63a1c31 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -59,6 +59,10 @@ class Executor { private: boost::asio::awaitable Execute(const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteSeqScan(const SeqScan& seq_scan, AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteIndexSeek(const IndexSeek& seek, AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteProjection(const PhysicalProjection& proj, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteFilter(const PhysicalFilter& filter, AttributesInfoChannel& attr_chan, @@ -73,6 +77,8 @@ class Executor { boost::asio::awaitable ExecuteHashAggregate(const PhysicalAggregation& agg, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteSort(const PhysicalSort& sort, AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); boost::asio::experimental::promise SpawnExecutor( boost::asio::any_io_executor exec, const PhysicalPlanNode& op, AttributesInfoChannel& attr_chan, TuplesChannel& tuple_chan); diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index cbdd4ad..96c8657 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -636,119 +636,36 @@ boost::asio::awaitable Executor::Execute(const Physica tuples_chan.close(); }); struct ExecuteVisitor{ - boost::asio::awaitable operator()(const SeqScan& seq_scan) { - co_await executor.sequential_scan_(seq_scan.table, std::string{OutputTable(seq_scan)}, - attr_chan, tuples_chan); - co_return; + boost::asio::awaitable operator()(const SeqScan& seq_scan) const { + return executor.ExecuteSeqScan(seq_scan, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const PhysicalProjection& projection) { + boost::asio::awaitable operator()(const PhysicalProjection& projection) const { // NOTE: We are using multiset relational algebra projection (i.e. not - - co_await executor.ExecuteProjection(projection, attr_chan, tuples_chan); - co_return; + return executor.ExecuteProjection(projection, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const PhysicalFilter& filter) { - co_await executor.ExecuteFilter(filter, attr_chan, tuples_chan); - co_return; + boost::asio::awaitable operator()(const PhysicalFilter& filter) const { + return executor.ExecuteFilter(filter, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const NestedLoopJoin& join) { - co_await executor.ExecuteJoin(join, attr_chan, tuples_chan); - co_return; + boost::asio::awaitable operator()(const NestedLoopJoin& join) const { + return executor.ExecuteJoin(join, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const NestedLoopCrossJoin& cross_join) { - co_await executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); - co_return; + boost::asio::awaitable operator()(const NestedLoopCrossJoin& cross_join) const { + return executor.ExecuteCrossJoin(cross_join, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const HashJoin& join) { - co_await executor.ExecuteHashJoin(join, attr_chan, tuples_chan); - co_return; + boost::asio::awaitable operator()(const HashJoin& join) const { + return executor.ExecuteHashJoin(join, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const PhysicalAggregation& agg) { - co_await executor.ExecuteHashAggregate(agg, attr_chan, tuples_chan); - co_return; + boost::asio::awaitable operator()(const PhysicalAggregation& agg) const { + return executor.ExecuteHashAggregate(agg, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const MergeJoin&) { + boost::asio::awaitable operator()(const MergeJoin&) const { throw std::runtime_error("MergeJoin execution not implemented"); - co_return; } - boost::asio::awaitable operator()(const IndexSeek& seek) { - // FIXME: make index_scan_ required! - if (!executor.index_scan_) { - throw std::runtime_error("IndexSeek execution requested, but no index scanner is configured"); - } - co_await executor.index_scan_(seek.table, seek.alias ? *seek.alias : seek.table, seek.predicate, - attr_chan, tuples_chan); - co_return; - } - // FIXME: that's in-memory sort - boost::asio::awaitable operator()(const PhysicalSort& sort) { - auto close_on_fail = boost::scope::make_scope_fail( - [this] { attr_chan.close(); tuples_chan.close(); }); - auto exec = co_await boost::asio::this_coro::executor; - auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); - auto task = executor.SpawnExecutor(exec, *sort.source, in_attrs_chan, in_tuples_chan); - - auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); - co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); - attr_chan.close(); - - Tuples all_tuples; - for (;;) { - auto buf = co_await ReceiveTuples(in_tuples_chan); - if (buf.empty()) break; - std::move(buf.begin(), buf.end(), std::back_inserter(all_tuples)); - } - - std::vector> key_indices; - for (const auto& key : sort.keys.keys) { - auto it = std::find_if(attrs.begin(), attrs.end(), - [&](const AttributeInfo& a) { - return a.name == key.column && (key.table.empty() || a.table == key.table); - }); - if (it == attrs.end()) - throw std::runtime_error{"sort key column not found: " + key.table + "." + key.column}; - key_indices.push_back({static_cast(it - attrs.begin()), key.dir}); - } - - std::sort(all_tuples.begin(), all_tuples.end(), - [&](const Tuple& a, const Tuple& b) { - for (const auto& [idx, dir] : key_indices) { - const auto& attr = attrs[idx]; - const auto& va = a[idx]; - const auto& vb = b[idx]; - if (va.is_null && vb.is_null) continue; - if (va.is_null) return false; - if (vb.is_null) return true; - bool less = false; - bool greater = false; - switch (attr.type) { - case Type::kInt: - less = va.value.int_value < vb.value.int_value; - greater = va.value.int_value > vb.value.int_value; - break; - case Type::kBool: - less = va.value.bool_value < vb.value.bool_value; - greater = va.value.bool_value > vb.value.bool_value; - break; - case Type::kString: { - const auto& sa = GetInternedString(va.value.string_id); - const auto& sb = GetInternedString(vb.value.string_id); - less = sa < sb; - greater = sa > sb; - break; - } - } - if (less || greater) return dir == Direction::kAsc ? less : greater; - } - return false; - }); - - if (!all_tuples.empty()) - co_await tuples_chan.async_send(boost::system::error_code{}, - std::move(all_tuples), boost::asio::use_awaitable); - co_await task(boost::asio::use_awaitable); - tuples_chan.close(); - co_return; + boost::asio::awaitable operator()(const IndexSeek& seek) const { + return executor.ExecuteIndexSeek(seek, attr_chan, tuples_chan); + } + boost::asio::awaitable operator()(const PhysicalSort& sort) const { + return executor.ExecuteSort(sort, attr_chan, tuples_chan); } AttributesInfoChannel& attr_chan; @@ -759,6 +676,95 @@ boost::asio::awaitable Executor::Execute(const Physica co_return; } +template +boost::asio::awaitable Executor::ExecuteSeqScan( + const SeqScan& seq_scan, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + co_await sequential_scan_(seq_scan.table, std::string{OutputTable(seq_scan)}, attr_chan, tuples_chan); +} + +template +boost::asio::awaitable Executor::ExecuteIndexSeek( + const IndexSeek& seek, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + // FIXME: make index_scan_ required! + if (!index_scan_) { + throw std::runtime_error("IndexSeek execution requested, but no index scanner is configured"); + } + co_await index_scan_(seek.table, seek.alias ? *seek.alias : seek.table, seek.predicate, + attr_chan, tuples_chan); +} + +template +boost::asio::awaitable Executor::ExecuteSort( + const PhysicalSort& sort, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + // FIXME: that's in-memory sort + auto close_on_fail = boost::scope::make_scope_fail( + [&] { attr_chan.close(); tuples_chan.close(); }); + auto exec = co_await boost::asio::this_coro::executor; + auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); + auto task = SpawnExecutor(exec, *sort.source, in_attrs_chan, in_tuples_chan); + + auto attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); + co_await attr_chan.async_send(boost::system::error_code{}, attrs, boost::asio::use_awaitable); + attr_chan.close(); + + Tuples all_tuples; + for (;;) { + auto buf = co_await ReceiveTuples(in_tuples_chan); + if (buf.empty()) break; + std::move(buf.begin(), buf.end(), std::back_inserter(all_tuples)); + } + + std::vector> key_indices; + for (const auto& key : sort.keys.keys) { + auto it = std::find_if(attrs.begin(), attrs.end(), + [&](const AttributeInfo& a) { + return a.name == key.column && (key.table.empty() || a.table == key.table); + }); + if (it == attrs.end()) + throw std::runtime_error{"sort key column not found: " + key.table + "." + key.column}; + key_indices.push_back({static_cast(it - attrs.begin()), key.dir}); + } + + std::sort(all_tuples.begin(), all_tuples.end(), + [&](const Tuple& a, const Tuple& b) { + for (const auto& [idx, dir] : key_indices) { + const auto& attr = attrs[idx]; + const auto& va = a[idx]; + const auto& vb = b[idx]; + if (va.is_null && vb.is_null) continue; + if (va.is_null) return false; + if (vb.is_null) return true; + bool less = false; + bool greater = false; + switch (attr.type) { + case Type::kInt: + less = va.value.int_value < vb.value.int_value; + greater = va.value.int_value > vb.value.int_value; + break; + case Type::kBool: + less = va.value.bool_value < vb.value.bool_value; + greater = va.value.bool_value > vb.value.bool_value; + break; + case Type::kString: { + const auto& sa = GetInternedString(va.value.string_id); + const auto& sb = GetInternedString(vb.value.string_id); + less = sa < sb; + greater = sa > sb; + break; + } + } + if (less || greater) return dir == Direction::kAsc ? less : greater; + } + return false; + }); + + if (!all_tuples.empty()) + co_await tuples_chan.async_send(boost::system::error_code{}, + std::move(all_tuples), boost::asio::use_awaitable); + co_await task(boost::asio::use_awaitable); + tuples_chan.close(); +} + template boost::asio::awaitable Executor::ExecuteProjection(const PhysicalProjection& proj, AttributesInfoChannel& out_attr_chan, From 16a4f45e7458345199cd7779cfe7b04e40afee5b Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 9 Jun 2026 21:14:48 +0300 Subject: [PATCH 098/120] Add MergeJoin --- benchmarks/main.cpp | 22 +- .../stewkk/sql/logic/executor/executor.hpp | 2 + .../implement_merge_join.hpp | 13 + .../stewkk/sql/logic/optimizer/optimizer.hpp | 2 +- .../sql/logic/optimizer/physical_expr.hpp | 13 +- .../sql/logic/optimizer/reachability.hpp | 4 +- include/stewkk/sql/logic/optimizer/rules.hpp | 3 +- .../sql/logic/optimizer/schema_catalog.hpp | 7 +- query.sql | 11 + research/converter.py | 1 + src/stewkk/sql/CMakeLists.txt | 1 + src/stewkk/sql/logic/executor/executor.cpp | 243 +++++++++++++++++- .../sql/logic/executor/executor_test.cpp | 102 ++++++++ .../implement_merge_join.cpp | 28 ++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 125 +++++++-- .../sql/logic/optimizer/optimizer_test.cpp | 108 ++++++-- .../sql/logic/optimizer/reachability.cpp | 15 ++ src/stewkk/sql/logic/optimizer/rules.cpp | 3 +- .../sql/logic/optimizer/rules_applier.cpp | 2 +- .../sql/logic/optimizer/schema_catalog.cpp | 33 ++- .../sql/logic/optimizer/sort_enforcer.cpp | 17 +- 21 files changed, 677 insertions(+), 78 deletions(-) create mode 100644 include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp create mode 100644 query.sql create mode 100644 src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp diff --git a/benchmarks/main.cpp b/benchmarks/main.cpp index eb158b4..ac93677 100644 --- a/benchmarks/main.cpp +++ b/benchmarks/main.cpp @@ -95,6 +95,26 @@ CardinalityEstimates MakeBenchCardinality() { }); } +SchemaCatalog MakeBenchSchema() { + return SchemaCatalog({ + {"users", {Attribute{"users", "id"}, Attribute{"users", "age"}}}, + {"employees", {Attribute{"employees", "id"}, Attribute{"employees", "department_id"}}}, + {"employees_200", {Attribute{"employees_200", "id"}, + Attribute{"employees_200", "department_id"}}}, + {"departments", {Attribute{"departments", "id"}}}, + {"departments_500", {Attribute{"departments_500", "id"}}}, + {"departments_1000", {Attribute{"departments_1000", "id"}}}, + {"departments_2000", {Attribute{"departments_2000", "id"}}}, + {"departments_4000", {Attribute{"departments_4000", "id"}}}, + {"departments_8000", {Attribute{"departments_8000", "id"}}}, + {"departments_16000", {Attribute{"departments_16000", "id"}}}, + {"books", {Attribute{"books", "id"}}}, + {"regions", {Attribute{"regions", "id"}}}, + {"customers", {Attribute{"customers", "id"}, Attribute{"customers", "region_id"}}}, + {"orders", {Attribute{"orders", "id"}, Attribute{"orders", "customer_id"}}}, + }); +} + CardinalityEstimates LoadCardinalityFromCsvDir(const std::filesystem::path& dir) { std::unordered_map counts; if (!std::filesystem::is_directory(dir)) { @@ -133,7 +153,7 @@ PhysicalPlanNode MakePlan(const Operator& op) { if constexpr (Mode == PlannerMode::kNaive) { return ToPhysicalPlan(op); } else { - Optimizer optimizer(op, MakeMainRules(), MakeBenchCardinality()); + Optimizer optimizer(op, MakeMainRules(), MakeBenchCardinality(), MakeBenchSchema()); return optimizer.Optimize(); } } diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 63a1c31..24eefb4 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -74,6 +74,8 @@ class Executor { TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteHashJoin(const HashJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteMergeJoin(const MergeJoin& join, AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteHashAggregate(const PhysicalAggregation& agg, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); diff --git a/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp new file mode 100644 index 0000000..1742d96 --- /dev/null +++ b/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ImplementMergeJoin : public ImplementationRule { + public: + bool IsApplicable(utils::NotNull expr) override; + utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index c0dbbc8..c5ecc04 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -26,7 +26,7 @@ template class Optimizer { public: Optimizer(const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality = {}, SchemaCatalog schema = {}, + CardinalityEstimates cardinality, SchemaCatalog schema, PropertySet required = PropertySet::Any()); PhysicalPlanNode Optimize(); diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index aedb4f5..2081d8f 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -70,6 +70,15 @@ struct HashJoin { bool operator==(const HashJoin&) const = default; }; +struct MergeJoin { + utils::NotNull lhs; + utils::NotNull rhs; + JoinType type; + Expression qual; + + bool operator==(const MergeJoin&) const = default; +}; + struct Sort { utils::NotNull input; SortOrder keys; @@ -90,8 +99,8 @@ struct Aggregation { struct PhysicalExpr { std::variant root_operator; + physical::HashJoin, physical::MergeJoin, physical::Sort, + physical::Aggregation, physical::IndexSeek> root_operator; utils::NotNull group; bool is_enforcer = false; }; diff --git a/include/stewkk/sql/logic/optimizer/reachability.hpp b/include/stewkk/sql/logic/optimizer/reachability.hpp index e5c7134..ab16136 100644 --- a/include/stewkk/sql/logic/optimizer/reachability.hpp +++ b/include/stewkk/sql/logic/optimizer/reachability.hpp @@ -20,8 +20,8 @@ struct MatchResult { MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target); MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, - CardinalityEstimates cardinality = {}, - SchemaCatalog schema = {}, + CardinalityEstimates cardinality, + SchemaCatalog schema, IndexCatalog indexes = {}); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index 7db0a85..8b9a31c 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -28,7 +29,7 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<7, 8> MakeMainRules(IndexCatalog indexes = {}); +Rules<7, 9> MakeMainRules(IndexCatalog indexes = {}); Rules<0, 6> MakeNaiveRules(); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp index 62383d7..b7f5528 100644 --- a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -2,7 +2,6 @@ #include #include -#include #include #include #include @@ -36,14 +35,14 @@ class SchemaCatalog { public: SchemaCatalog(std::unordered_map tables = {}); - std::optional GetSchema(utils::NotNull group); + Schema GetSchema(utils::NotNull group); std::int64_t GetWidth(utils::NotNull group); private: - std::optional Derive(const LogicalOperator& op); + Schema Derive(const LogicalOperator& op); std::unordered_map tables_; - std::unordered_map> cache_; + std::unordered_map cache_; }; SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir); diff --git a/query.sql b/query.sql new file mode 100644 index 0000000..6efbe87 --- /dev/null +++ b/query.sql @@ -0,0 +1,11 @@ +SELECT d.d_year, c.c_nation, SUM(lo.lo_revenue - lo.lo_supplycost) AS profit +FROM lineorder AS lo +JOIN date AS d ON lo.lo_orderdate = d.d_datekey +JOIN customer AS c ON lo.lo_custkey = c.c_custkey +JOIN supplier AS s ON lo.lo_suppkey = s.s_suppkey +JOIN part AS p ON lo.lo_partkey = p.p_partkey +WHERE c.c_region = 'AMERICA' + AND s.s_region = 'AMERICA' + AND p.p_mfgr IN ('MFGR#1', 'MFGR#2') +GROUP BY d.d_year, c.c_nation +ORDER BY d.d_year, c.c_nation; diff --git a/research/converter.py b/research/converter.py index 89d2ac9..f6c9d4c 100644 --- a/research/converter.py +++ b/research/converter.py @@ -9,6 +9,7 @@ (PhysicalProjection (exprs EXPR...) SOURCE) (NestedLoopCrossJoin LHS RHS) (NestedLoopJoin JoinType EXPR LHS RHS) JoinType: Inner | Full | Left | Right + (MergeJoin JoinType EXPR LHS RHS) JoinType: Inner | Full | Left | Right (Sort (keys table.col Asc|Desc ...) SOURCE) (HashAggregate (group_by EXPR...) (aggs EXPR...) SOURCE) diff --git a/src/stewkk/sql/CMakeLists.txt b/src/stewkk/sql/CMakeLists.txt index 8784d11..15b2517 100644 --- a/src/stewkk/sql/CMakeLists.txt +++ b/src/stewkk/sql/CMakeLists.txt @@ -53,6 +53,7 @@ add_library(libsql logic/implementation_rules/implement_join.cpp logic/implementation_rules/implement_cross_join.cpp logic/implementation_rules/implement_hash_join.cpp + logic/implementation_rules/implement_merge_join.cpp logic/implementation_rules/implement_aggregation.cpp logic/optimizer/properties/sort_order.cpp logic/optimizer/properties/sort_property.cpp diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 96c8657..c16f24f 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -658,8 +658,8 @@ boost::asio::awaitable Executor::Execute(const Physica boost::asio::awaitable operator()(const PhysicalAggregation& agg) const { return executor.ExecuteHashAggregate(agg, attr_chan, tuples_chan); } - boost::asio::awaitable operator()(const MergeJoin&) const { - throw std::runtime_error("MergeJoin execution not implemented"); + boost::asio::awaitable operator()(const MergeJoin& join) const { + return executor.ExecuteMergeJoin(join, attr_chan, tuples_chan); } boost::asio::awaitable operator()(const IndexSeek& seek) const { return executor.ExecuteIndexSeek(seek, attr_chan, tuples_chan); @@ -1092,6 +1092,84 @@ size_t FindAttrIndex(const AttributesInfo& attrs, const Attribute& a) { return static_cast(it - attrs.begin()); } +bool AttrMatches(const AttributeInfo& ai, const Attribute& a) { + return ai.name == a.name && (a.table.empty() || ai.table == a.table); +} + +bool HasAttr(const AttributesInfo& attrs, const Attribute& a) { + return std::ranges::any_of(attrs, [&](const AttributeInfo& ai) { + return AttrMatches(ai, a); + }); +} + +size_t FindAttrIndexFlexible(const AttributesInfo& attrs, const Attribute& a) { + auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& ai) { + return AttrMatches(ai, a); + }); + if (it == attrs.end()) { + throw std::runtime_error{"merge join key attribute not found: " + a.table + "." + a.name}; + } + return static_cast(it - attrs.begin()); +} + +struct ExecutorJoinKeys { + Attribute lhs; + Attribute rhs; +}; + +ExecutorJoinKeys ResolveExecutorJoinKeys(const Expression& qual, + const AttributesInfo& lhs_attrs, + const AttributesInfo& rhs_attrs) { + const auto* bin = std::get_if(&qual); + if (!bin || bin->binop != BinaryOp::kEq) { + throw std::logic_error{"MergeJoin qual must be an equality"}; + } + const auto* a = std::get_if(bin->lhs.get()); + const auto* b = std::get_if(bin->rhs.get()); + if (!a || !b) { + throw std::logic_error{"MergeJoin qual must be `attr = attr`"}; + } + + const bool a_lhs = HasAttr(lhs_attrs, *a); + const bool a_rhs = HasAttr(rhs_attrs, *a); + const bool b_lhs = HasAttr(lhs_attrs, *b); + const bool b_rhs = HasAttr(rhs_attrs, *b); + if (a_lhs && !a_rhs && b_rhs && !b_lhs) { + return {*a, *b}; + } + if (b_lhs && !b_rhs && a_rhs && !a_lhs) { + return {*b, *a}; + } + throw std::runtime_error{"MergeJoin qual cannot be mapped unambiguously to inputs"}; +} + +boost::asio::awaitable CollectAllTuples(TuplesChannel& tuples_chan) { + Tuples result; + for (;;) { + auto buf = co_await ReceiveTuples(tuples_chan); + if (buf.empty()) break; + std::move(buf.begin(), buf.end(), std::back_inserter(result)); + } + co_return result; +} + +int CompareNonNullValues(const Value& lhs, const Value& rhs, Type type) { + switch (type) { + case Type::kInt: + return (lhs.value.int_value > rhs.value.int_value) + - (lhs.value.int_value < rhs.value.int_value); + case Type::kBool: + return (lhs.value.bool_value > rhs.value.bool_value) + - (lhs.value.bool_value < rhs.value.bool_value); + case Type::kString: { + const auto& l = GetInternedString(lhs.value.string_id); + const auto& r = GetInternedString(rhs.value.string_id); + return (l > r) - (l < r); + } + } + std::unreachable(); +} + } // namespace @@ -1196,6 +1274,167 @@ boost::asio::awaitable Executor::ExecuteHashJoin( tuples_chan.close(); } +template +boost::asio::awaitable Executor::ExecuteMergeJoin( + const MergeJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan) { + Log("Executing merge join"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { attr_chan.close(); tuples_chan.close(); }); + + auto exec = co_await boost::asio::this_coro::executor; + auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); + auto lhs_task = SpawnExecutor(exec, *join.lhs, lhs_attrs_chan, lhs_tuples_chan); + auto [rhs_attrs_chan, rhs_tuples_chan] = co_await GetChannels(); + auto rhs_task = SpawnExecutor(exec, *join.rhs, rhs_attrs_chan, rhs_tuples_chan); + + auto lhs_attrs = co_await lhs_attrs_chan.async_receive(boost::asio::use_awaitable); + auto rhs_attrs = co_await rhs_attrs_chan.async_receive(boost::asio::use_awaitable); + auto keys = ResolveExecutorJoinKeys(join.qual, lhs_attrs, rhs_attrs); + const size_t lhs_key_idx = FindAttrIndexFlexible(lhs_attrs, keys.lhs); + const size_t rhs_key_idx = FindAttrIndexFlexible(rhs_attrs, keys.rhs); + if (lhs_attrs[lhs_key_idx].type != rhs_attrs[rhs_key_idx].type) { + throw std::logic_error{"MergeJoin key types mismatch"}; + } + const Type key_type = lhs_attrs[lhs_key_idx].type; + + AttributesInfo out_attrs = lhs_attrs; + std::ranges::copy(rhs_attrs, std::back_inserter(out_attrs)); + co_await attr_chan.async_send(boost::system::error_code{}, out_attrs, + boost::asio::use_awaitable); + attr_chan.close(); + + auto lhs = co_await CollectAllTuples(lhs_tuples_chan); + auto rhs = co_await CollectAllTuples(rhs_tuples_chan); + + Tuples out_buf; + out_buf.reserve(kBufSize); + auto emit = [&](Tuple tuple) -> boost::asio::awaitable { + out_buf.push_back(std::move(tuple)); + if (out_buf.size() == kBufSize) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + out_buf.clear(); + out_buf.reserve(kBufSize); + } + }; + auto flush = [&]() -> boost::asio::awaitable { + if (!out_buf.empty()) { + co_await tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + out_buf.clear(); + out_buf.reserve(kBufSize); + } + }; + + auto same_lhs_key = [&](size_t a, size_t b) { + const auto& av = lhs[a][lhs_key_idx]; + const auto& bv = lhs[b][lhs_key_idx]; + return !av.is_null && !bv.is_null && CompareNonNullValues(av, bv, key_type) == 0; + }; + auto same_rhs_key = [&](size_t a, size_t b) { + const auto& av = rhs[a][rhs_key_idx]; + const auto& bv = rhs[b][rhs_key_idx]; + return !av.is_null && !bv.is_null && CompareNonNullValues(av, bv, key_type) == 0; + }; + + if (join.type == JoinType::kRight) { + size_t i = 0; + size_t j = 0; + while (j < rhs.size()) { + const auto& rhs_key = rhs[j][rhs_key_idx]; + size_t rhs_end = j + 1; + while (rhs_end < rhs.size() && same_rhs_key(j, rhs_end)) ++rhs_end; + + if (rhs_key.is_null) { + for (size_t r = j; r < rhs_end; ++r) { + co_await emit(ConcatTuples(Tuple(lhs_attrs.size(), Value{true}), rhs[r])); + } + j = rhs_end; + continue; + } + + while (i < lhs.size()) { + const auto& lhs_key = lhs[i][lhs_key_idx]; + if (lhs_key.is_null || CompareNonNullValues(lhs_key, rhs_key, key_type) >= 0) break; + ++i; + } + + if (i < lhs.size() && !lhs[i][lhs_key_idx].is_null + && CompareNonNullValues(lhs[i][lhs_key_idx], rhs_key, key_type) == 0) { + size_t lhs_end = i + 1; + while (lhs_end < lhs.size() && same_lhs_key(i, lhs_end)) ++lhs_end; + for (size_t l = i; l < lhs_end; ++l) { + for (size_t r = j; r < rhs_end; ++r) { + co_await emit(ConcatTuples(lhs[l], rhs[r])); + } + } + i = lhs_end; + } else { + for (size_t r = j; r < rhs_end; ++r) { + co_await emit(ConcatTuples(Tuple(lhs_attrs.size(), Value{true}), rhs[r])); + } + } + j = rhs_end; + } + } else { + std::vector rhs_used(rhs.size(), false); + size_t i = 0; + size_t j = 0; + while (i < lhs.size()) { + const auto& lhs_key = lhs[i][lhs_key_idx]; + size_t lhs_end = i + 1; + while (lhs_end < lhs.size() && same_lhs_key(i, lhs_end)) ++lhs_end; + + if (lhs_key.is_null) { + if (join.type == JoinType::kLeft || join.type == JoinType::kFull) { + for (size_t l = i; l < lhs_end; ++l) { + co_await emit(ConcatTuples(lhs[l], Tuple(rhs_attrs.size(), Value{true}))); + } + } + i = lhs_end; + continue; + } + + while (j < rhs.size()) { + const auto& rhs_key = rhs[j][rhs_key_idx]; + if (rhs_key.is_null || CompareNonNullValues(rhs_key, lhs_key, key_type) >= 0) break; + ++j; + } + + if (j < rhs.size() && !rhs[j][rhs_key_idx].is_null + && CompareNonNullValues(rhs[j][rhs_key_idx], lhs_key, key_type) == 0) { + size_t rhs_end = j + 1; + while (rhs_end < rhs.size() && same_rhs_key(j, rhs_end)) ++rhs_end; + for (size_t l = i; l < lhs_end; ++l) { + for (size_t r = j; r < rhs_end; ++r) { + rhs_used[r] = true; + co_await emit(ConcatTuples(lhs[l], rhs[r])); + } + } + j = rhs_end; + } else if (join.type == JoinType::kLeft || join.type == JoinType::kFull) { + for (size_t l = i; l < lhs_end; ++l) { + co_await emit(ConcatTuples(lhs[l], Tuple(rhs_attrs.size(), Value{true}))); + } + } + i = lhs_end; + } + + if (join.type == JoinType::kFull) { + for (size_t r = 0; r < rhs.size(); ++r) { + if (!rhs_used[r]) { + co_await emit(ConcatTuples(Tuple(lhs_attrs.size(), Value{true}), rhs[r])); + } + } + } + } + + co_await flush(); + co_await lhs_task(boost::asio::use_awaitable); + co_await rhs_task(boost::asio::use_awaitable); + tuples_chan.close(); +} + template boost::asio::awaitable Executor::ExecuteHashAggregate( const PhysicalAggregation& agg, AttributesInfoChannel& out_attr_chan, diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index d199219..7b4a765 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -234,6 +234,108 @@ TEST(ExecutorTest, OptimizedIndexSeekPlanExecutes) { std::filesystem::remove_all(dir); } +TEST(ExecutorTest, MergeJoinFullOuterWithDuplicatesAndNulls) { + auto dir = std::filesystem::temp_directory_path() / "iu9_sql_merge_join_test"; + std::filesystem::remove_all(dir); + std::filesystem::create_directories(dir); + { + std::ofstream a{dir / "a.csv"}; + a << "id:int,v:int\n" + << "1,10\n" + << "1,11\n" + << "2,20\n" + << "NULL,99\n"; + std::ofstream b{dir / "b.csv"}; + b << "id:int,w:int\n" + << "1,100\n" + << "1,101\n" + << "3,300\n" + << "NULL,999\n"; + } + + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"a", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"b", "id"}), + }; + PhysicalPlanNode plan = MergeJoin{ + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"a"}), + SortOrder{{SortKey{"a", "id", Direction::kAsc}}}}), + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"b"}), + SortOrder{{SortKey{"b", "id", Direction::kAsc}}}}), + JoinType::kFull, + qual, + }; + + boost::asio::io_context ctx; + CsvDirSequentialScanner seq_scan{dir.string()}; + Executor executor(std::move(seq_scan), ctx.get_executor()); + auto fut = boost::asio::co_spawn(ctx, executor.Execute(plan), boost::asio::use_future); + ctx.run(); + auto got = fut.get(); + + ASSERT_THAT(got.value().tuples, + Eq(Tuples{ + Tuple{Value{false, 1}, Value{false, 10}, Value{false, 1}, Value{false, 100}}, + Tuple{Value{false, 1}, Value{false, 10}, Value{false, 1}, Value{false, 101}}, + Tuple{Value{false, 1}, Value{false, 11}, Value{false, 1}, Value{false, 100}}, + Tuple{Value{false, 1}, Value{false, 11}, Value{false, 1}, Value{false, 101}}, + Tuple{Value{false, 2}, Value{false, 20}, Value{true}, Value{true}}, + Tuple{Value{true}, Value{false, 99}, Value{true}, Value{true}}, + Tuple{Value{true}, Value{true}, Value{false, 3}, Value{false, 300}}, + Tuple{Value{true}, Value{true}, Value{true}, Value{false, 999}}, + })); + std::filesystem::remove_all(dir); +} + +TEST(ExecutorTest, MergeJoinStringKeys) { + auto dir = std::filesystem::temp_directory_path() / "iu9_sql_merge_join_string_test"; + std::filesystem::remove_all(dir); + std::filesystem::create_directories(dir); + { + std::ofstream lhs{dir / "lhs.csv"}; + lhs << "name:string,v:int\n" + << "alpha,1\n" + << "beta,2\n"; + std::ofstream rhs{dir / "rhs.csv"}; + rhs << "name:string,w:int\n" + << "alpha,10\n" + << "gamma,30\n"; + } + + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"lhs", "name"}), + BinaryOp::kEq, + std::make_shared(Attribute{"rhs", "name"}), + }; + PhysicalPlanNode plan = MergeJoin{ + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"lhs"}), + SortOrder{{SortKey{"lhs", "name", Direction::kAsc}}}}), + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"rhs"}), + SortOrder{{SortKey{"rhs", "name", Direction::kAsc}}}}), + JoinType::kInner, + qual, + }; + + boost::asio::io_context ctx; + CsvDirSequentialScanner seq_scan{dir.string()}; + Executor executor(std::move(seq_scan), ctx.get_executor()); + auto fut = boost::asio::co_spawn(ctx, executor.Execute(plan), boost::asio::use_future); + ctx.run(); + auto got = fut.get(); + + ASSERT_THAT(got.value().tuples.size(), Eq(1u)); + ASSERT_THAT(GetInternedString(got.value().tuples[0][0].value.string_id), Eq("alpha")); + ASSERT_THAT(GetInternedString(got.value().tuples[0][2].value.string_id), Eq("alpha")); + ASSERT_THAT(got.value().tuples[0][1], Eq(Value{false, 1})); + ASSERT_THAT(got.value().tuples[0][3], Eq(Value{false, 10})); + std::filesystem::remove_all(dir); +} + TEST(ExecutorTest, StringFilterProjectionAndCsvQuotes) { boost::asio::io_context ctx; boost::asio::co_spawn( diff --git a/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp new file mode 100644 index 0000000..2d56b8f --- /dev/null +++ b/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp @@ -0,0 +1,28 @@ +#include + +namespace stewkk::sql { + +namespace { + +bool IsSimpleEquiJoin(const Expression& qual) { + const auto* bin = std::get_if(&qual); + if (!bin || bin->binop != BinaryOp::kEq) return false; + return std::holds_alternative(*bin->lhs) + && std::holds_alternative(*bin->rhs); +} + +} // namespace + +bool ImplementMergeJoin::IsApplicable(utils::NotNull expr) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& join = std::get(expr->root_operator); + return IsSimpleEquiJoin(join.qual); +} + +utils::NotNull ImplementMergeJoin::Apply(utils::NotNull expr, Memo&) { + auto& join = std::get(expr->root_operator); + return expr->group->AddPhysicalExpr( + physical::MergeJoin{join.lhs, join.rhs, join.type, join.qual}); +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index d1a1698..2ae8eee 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include @@ -26,9 +27,56 @@ static const std::vector> kEnforcers = [] { return v; }(); +struct JoinKeys { + Attribute lhs; + Attribute rhs; +}; + +bool AttrMatchesSchema(const Attribute& attr, const Attribute& schema_attr) { + return attr.name == schema_attr.name + && (attr.table.empty() || attr.table == schema_attr.table); +} + +bool AttrInSchema(const Attribute& attr, const Schema& schema) { + return std::ranges::any_of(schema, [&](const Attribute& schema_attr) { + return AttrMatchesSchema(attr, schema_attr); + }); +} + +std::optional ResolveJoinKeys(const Expression& qual, + utils::NotNull lhs, + utils::NotNull rhs, + SchemaCatalog& schema) { + const auto* bin = std::get_if(&qual); + if (!bin || bin->binop != BinaryOp::kEq) return std::nullopt; + const auto* a = std::get_if(bin->lhs.get()); + const auto* b = std::get_if(bin->rhs.get()); + if (!a || !b) return std::nullopt; + + auto lhs_schema = schema.GetSchema(lhs); + auto rhs_schema = schema.GetSchema(rhs); + + const bool a_lhs = AttrInSchema(*a, lhs_schema); + const bool a_rhs = AttrInSchema(*a, rhs_schema); + const bool b_lhs = AttrInSchema(*b, lhs_schema); + const bool b_rhs = AttrInSchema(*b, rhs_schema); + + if (a_lhs && !a_rhs && b_rhs && !b_lhs) { + return JoinKeys{*a, *b}; + } + if (b_lhs && !b_rhs && a_rhs && !a_lhs) { + return JoinKeys{*b, *a}; + } + return std::nullopt; +} + +PropertySet SortOn(const Attribute& attr) { + return PropertySet{SortProperty{SortOrder{{SortKey{attr.table, attr.name, Direction::kAsc}}}}}; +} PropertySet RequiredInputProps(utils::NotNull expr, - PropertySet required, size_t child_index) { + PropertySet required, size_t child_index, + SchemaCatalog& schema) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) { return PropertySet::Any(); }, [&](const physical::IndexSeek&) { return PropertySet::Any(); }, @@ -39,13 +87,19 @@ PropertySet RequiredInputProps(utils::NotNull expr, [&](const physical::HashJoin&) -> PropertySet { return PropertySet::Any(); }, + [&](const physical::MergeJoin& j) -> PropertySet { + auto keys = ResolveJoinKeys(j.qual, j.lhs, j.rhs, schema); + if (!keys) return PropertySet::Any(); + return SortOn(child_index == 0 ? keys->lhs : keys->rhs); + }, [&](const physical::Sort&) { return PropertySet::Any(); }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, }, expr->root_operator); } PropertySet DeriveOutputProps(utils::NotNull expr, - const std::vector& child_delivered) { + const std::vector& child_delivered, + SchemaCatalog& schema) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) { return PropertySet::Any(); }, [&](const physical::IndexSeek&) { return PropertySet::Any(); }, @@ -54,6 +108,11 @@ PropertySet DeriveOutputProps(utils::NotNull expr, [&](const physical::NestedLoopJoin&) { return PropertySet::Any(); }, [&](const physical::NestedLoopCrossJoin&) { return PropertySet::Any(); }, [&](const physical::HashJoin&) { return PropertySet::Any(); }, + [&](const physical::MergeJoin& j) -> PropertySet { + auto keys = ResolveJoinKeys(j.qual, j.lhs, j.rhs, schema); + if (!keys) return PropertySet::Any(); + return SortOn(j.type == JoinType::kRight ? keys->rhs : keys->lhs); + }, [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, }, expr->root_operator); @@ -70,6 +129,15 @@ int64_t HashJoinCost(utils::NotNull build, utils::NotNull probe, + kTupleCopy * cardinality.GetCardinality(output) * schema.GetWidth(output); } +int64_t MergeJoinCost(utils::NotNull lhs, utils::NotNull rhs, + utils::NotNull output, CardinalityEstimates& cardinality, + SchemaCatalog& schema) { + constexpr int64_t kMergeRead = 18; + constexpr int64_t kTupleCopy = 10; + return kMergeRead * (cardinality.GetCardinality(lhs) + cardinality.GetCardinality(rhs)) + + kTupleCopy * cardinality.GetCardinality(output) * schema.GetWidth(output); +} + int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstimates& cardinality, SchemaCatalog& schema) { return std::visit(utils::Overloaded{ @@ -91,11 +159,15 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima [&](const logical::Join& j) -> int64_t { auto n_l = cardinality.GetCardinality(j.lhs); auto n_r = cardinality.GetCardinality(j.rhs); - return std::min({ + std::vector alternatives{ HashJoinCost(j.lhs, j.rhs, expr->group, cardinality, schema), HashJoinCost(j.rhs, j.lhs, expr->group, cardinality, schema), 70 * n_l * n_r, - }); + }; + if (ResolveJoinKeys(j.qual, j.lhs, j.rhs, schema)) { + alternatives.push_back(MergeJoinCost(j.lhs, j.rhs, expr->group, cardinality, schema)); + } + return *std::ranges::min_element(alternatives); }, }, expr->root_operator); } @@ -130,6 +202,12 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi [&](const physical::HashJoin& j) -> int64_t { return HashJoinCost(j.lhs, j.rhs, expr->group, cardinality, schema); }, + [&](const physical::MergeJoin& j) -> int64_t { + if (!ResolveJoinKeys(j.qual, j.lhs, j.rhs, schema)) { + return std::numeric_limits::max() / 4; + } + return MergeJoinCost(j.lhs, j.rhs, expr->group, cardinality, schema); + }, [&](const physical::Sort& s) -> int64_t { auto n = cardinality.GetCardinality(s.input); return 11 * (n > 1 ? n * static_cast(std::bit_width(static_cast(n))) : n); @@ -188,6 +266,9 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::HashJoin& j) -> std::vector> { return {j.lhs, j.rhs}; }, + [](const physical::MergeJoin& j) -> std::vector> { + return {j.lhs, j.rhs}; + }, [](const physical::Sort& s) -> std::vector> { return {s.input}; }, @@ -253,7 +334,7 @@ void Optimizer::OptimizeInputs( if (limit && accum >= *limit) return; auto children = GetChildren(expr); if (child_index >= children.size()) { - auto delivered = DeriveOutputProps(expr, child_delivered); + auto delivered = DeriveOutputProps(expr, child_delivered, schema_); if (!delivered.Satisfies(required)) return; WinnerKey key{expr->group.get(), required}; if (!winner_.contains(key) || accum < winner_.at(key).cost) { @@ -264,7 +345,7 @@ void Optimizer::OptimizeInputs( } auto child = children[child_index]; - auto child_required = RequiredInputProps(expr, required, child_index); + auto child_required = RequiredInputProps(expr, required, child_index, schema_); tasks_.emplace([this, expr, child, child_index, required, child_delivered, accum, limit, child_required]() mutable { WinnerKey child_key{child.get(), child_required}; @@ -430,7 +511,7 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G [this, best_expr_nn, required](const physical::Projection& op) -> PhysicalPlanNode { return PhysicalProjection{ .source = std::make_shared( - BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .expressions = op.expressions, .aliases = op.aliases, }; @@ -438,16 +519,16 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G [this, best_expr_nn, required](const physical::Filter& op) -> PhysicalPlanNode { return PhysicalFilter{ .source = std::make_shared( - BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .predicate = op.predicate, }; }, [this, best_expr_nn, required](const physical::NestedLoopJoin& op) -> PhysicalPlanNode { return NestedLoopJoin{ .lhs = std::make_shared( - BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .rhs = std::make_shared( - BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1, schema_))), .type = op.type, .qual = op.qual, }; @@ -455,17 +536,27 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G [this, best_expr_nn, required](const physical::NestedLoopCrossJoin& op) -> PhysicalPlanNode { return NestedLoopCrossJoin{ .lhs = std::make_shared( - BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .rhs = std::make_shared( - BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1, schema_))), }; }, [this, best_expr_nn, required](const physical::HashJoin& op) -> PhysicalPlanNode { return HashJoin{ .lhs = std::make_shared( - BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), + .rhs = std::make_shared( + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1, schema_))), + .type = op.type, + .qual = op.qual, + }; + }, + [this, best_expr_nn, required](const physical::MergeJoin& op) -> PhysicalPlanNode { + return MergeJoin{ + .lhs = std::make_shared( + BuildOptimalPlan(op.lhs.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .rhs = std::make_shared( - BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1))), + BuildOptimalPlan(op.rhs.get(), RequiredInputProps(best_expr_nn, required, 1, schema_))), .type = op.type, .qual = op.qual, }; @@ -473,14 +564,14 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G [this, best_expr_nn, required](const physical::Sort& op) -> PhysicalPlanNode { return PhysicalSort{ .source = std::make_shared( - BuildOptimalPlan(op.input.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.input.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .keys = op.keys, }; }, [this, best_expr_nn, required](const physical::Aggregation& op) -> PhysicalPlanNode { return PhysicalAggregation{ .source = std::make_shared( - BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0))), + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), .group_by = op.group_by, .aggregates = op.aggregates, }; @@ -544,7 +635,7 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<7, 8>; +template class Optimizer<7, 9>; template class Optimizer<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index edbf3e0..b2118b5 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include @@ -33,6 +34,20 @@ int64_t EstimateCardinality( return cardinality.GetCardinality(root->group); } +SchemaCatalog MakeTestSchema() { + return SchemaCatalog({ + {"users", {Attribute{"users", "id"}, Attribute{"users", "age"}, + Attribute{"users", "name"}}}, + {"orders", {Attribute{"orders", "id"}, Attribute{"orders", "user_id"}, + Attribute{"orders", "customer_id"}, Attribute{"orders", "total"}}}, + {"customers", {Attribute{"customers", "id"}, Attribute{"customers", "region_id"}}}, + {"regions", {Attribute{"regions", "id"}}}, + {"departments", {Attribute{"departments", "id"}}}, + {"lineorder", {Attribute{"lineorder", "suppkey"}, Attribute{"lineorder", "value"}}}, + {"supplier", {Attribute{"supplier", "id"}, Attribute{"supplier", "region"}}}, + }); +} + TEST(CardinalityEstimatesTest, AppliesFilterHeuristics) { ASSERT_THAT(EstimateCardinality("SELECT * FROM users WHERE users.id = 1;", {{"users", 1000}}), Eq(100)); @@ -59,10 +74,19 @@ TEST(SchemaCatalogTest, DerivesJoinWidth) { ASSERT_THAT(schema.GetWidth(root->group), Eq(5)); } +TEST(SchemaCatalogTest, MissingTableSchemaThrows) { + std::stringstream s{"SELECT * FROM users;"}; + Memo memo; + auto root = memo.Populate(GetAST(s).value().op); + SchemaCatalog schema; + + ASSERT_THROW(schema.GetWidth(root->group), std::runtime_error); +} + TEST(OptimizerTest, Simple) { std::stringstream s{"SELECT * FROM users;"}; Operator op = GetAST(s).value().op; - Optimizer optimizer(op, MakeMainRules()); + Optimizer optimizer(op, MakeMainRules(), {}, MakeTestSchema()); auto got = optimizer.Optimize(); @@ -79,7 +103,7 @@ TEST(OptimizerTest, JoinCommutativity) { Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ {"users", 10000}, {"orders", 100}, - })); + }), MakeTestSchema()); auto got = optimizer.Optimize(); @@ -97,7 +121,7 @@ TEST(OptimizerTest, MultiwayJoinOCR) { {"regions", 10}, {"customers", 500}, {"orders", 5000}, - })); + }), MakeTestSchema()); auto got = optimizer.Optimize(); @@ -119,7 +143,7 @@ TEST(OptimizerTest, MultiwayJoinROC) { {"regions", 10}, {"customers", 500}, {"orders", 5000}, - })); + }), MakeTestSchema()); auto got = optimizer.Optimize(); @@ -189,7 +213,7 @@ TEST(OptimizerTest, AliasedJoinOptimizesWithAliasQualifiedAttrs) { Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ {"customers", 500}, {"orders", 5000}, - })); + }), MakeTestSchema()); auto got = optimizer.Optimize(); auto serialized = Serialize(got); @@ -229,7 +253,7 @@ TEST(OptimizerTest, UsesIndexSeekForIndexedIntegerPredicate) { Operator op = GetAST(s).value().op; Optimizer optimizer(op, MakeMainRules(IndexCatalog({ IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, - })), CardinalityEstimates({{"users", 1000}})); + })), CardinalityEstimates({{"users", 1000}}), MakeTestSchema()); auto got = optimizer.Optimize(); @@ -239,7 +263,8 @@ TEST(OptimizerTest, UsesIndexSeekForIndexedIntegerPredicate) { TEST(OptimizerTest, KeepsSequentialFilterWhenIndexMetadataIsAbsent) { std::stringstream s{"SELECT * FROM users WHERE users.id = 8;"}; Operator op = GetAST(s).value().op; - Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({{"users", 1000}})); + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({{"users", 1000}}), + MakeTestSchema()); auto got = optimizer.Optimize(); @@ -252,7 +277,7 @@ TEST(OptimizerTest, IndexSeekSupportsAliasAndFullResidualPredicate) { Operator op = GetAST(s).value().op; Optimizer optimizer(op, MakeMainRules(IndexCatalog({ IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, - })), CardinalityEstimates({{"users", 1000}})); + })), CardinalityEstimates({{"users", 1000}}), MakeTestSchema()); auto got = optimizer.Optimize(); @@ -292,13 +317,13 @@ TEST(OptimizerTest, NaiveRulesDisableLogicalTransformations) { TEST(ReachabilityTest, SeqScanReachable) { std::stringstream s{"SELECT * FROM users;"}; - auto result = IsPlanReachable(s, SeqScan{"users"}); + auto result = IsPlanReachable(s, SeqScan{"users"}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsTrue()); } TEST(ReachabilityTest, SeqScanWrongTable) { std::stringstream s{"SELECT * FROM users;"}; - auto result = IsPlanReachable(s, SeqScan{"orders"}); + auto result = IsPlanReachable(s, SeqScan{"orders"}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); ASSERT_THAT(result.mismatch, HasSubstr("users")); } @@ -310,7 +335,7 @@ TEST(ReachabilityTest, IndexSeekReachableWithIndexCatalog) { BinaryOp::kGe, std::make_shared(IntConst{8})}; auto result = IsPlanReachable( - s, IndexSeek{"users", std::nullopt, predicate}, {}, {}, + s, IndexSeek{"users", std::nullopt, predicate}, {}, MakeTestSchema(), IndexCatalog({ IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, @@ -328,7 +353,7 @@ TEST(ReachabilityTest, WrongOperatorType) { std::make_shared(SeqScan{"users"}), std::make_shared(SeqScan{"orders"}), JoinType::kInner, - qual}); + qual}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); } @@ -344,13 +369,13 @@ TEST(ReachabilityTest, BothJoinOrdersReachable) { auto optimal = IsPlanReachable(s1, NestedLoopJoin{ std::make_shared(SeqScan{"orders"}), std::make_shared(SeqScan{"users"}), - JoinType::kInner, qual}, cardinality); + JoinType::kInner, qual}, cardinality, MakeTestSchema()); ASSERT_THAT(optimal.reachable, IsTrue()); auto suboptimal = IsPlanReachable(s2, NestedLoopJoin{ std::make_shared(SeqScan{"users"}), std::make_shared(SeqScan{"orders"}), - JoinType::kInner, qual}, cardinality); + JoinType::kInner, qual}, cardinality, MakeTestSchema()); ASSERT_THAT(suboptimal.reachable, IsTrue()); } @@ -363,7 +388,50 @@ TEST(ReachabilityTest, HashJoinReachable) { auto result = IsPlanReachable(s, HashJoin{ std::make_shared(SeqScan{"orders"}), std::make_shared(SeqScan{"users"}), - JoinType::kInner, qual}); + JoinType::kInner, qual}, {}, MakeTestSchema()); + ASSERT_THAT(result.reachable, IsTrue()); +} + +TEST(ReachabilityTest, MergeJoinReachableWithSortedInputs) { + std::stringstream s{"SELECT * FROM users JOIN orders ON users.id = orders.user_id;"}; + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"orders", "user_id"})}; + SchemaCatalog schema({ + {"users", {Attribute{"users", "id"}}}, + {"orders", {Attribute{"orders", "user_id"}}}, + }); + auto result = IsPlanReachable(s, MergeJoin{ + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"users"}), + SortOrder{{SortKey{"users", "id", Direction::kAsc}}}}), + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"orders"}), + SortOrder{{SortKey{"orders", "user_id", Direction::kAsc}}}}), + JoinType::kInner, qual}, {}, std::move(schema)); + ASSERT_THAT(result.reachable, IsTrue()); +} + +TEST(ReachabilityTest, MergeJoinCanSatisfyOrderByJoinKey) { + std::stringstream s{ + "SELECT * FROM users JOIN orders ON users.id = orders.user_id ORDER BY users.id;"}; + Expression qual = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(Attribute{"orders", "user_id"})}; + SchemaCatalog schema({ + {"users", {Attribute{"users", "id"}}}, + {"orders", {Attribute{"orders", "user_id"}}}, + }); + auto result = IsPlanReachable(s, MergeJoin{ + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"users"}), + SortOrder{{SortKey{"users", "id", Direction::kAsc}}}}), + std::make_shared(PhysicalSort{ + std::make_shared(SeqScan{"orders"}), + SortOrder{{SortKey{"orders", "user_id", Direction::kAsc}}}}), + JoinType::kInner, qual}, {}, std::move(schema)); ASSERT_THAT(result.reachable, IsTrue()); } @@ -376,7 +444,7 @@ TEST(ReachabilityTest, WrongJoinQual) { auto result = IsPlanReachable(s, NestedLoopJoin{ std::make_shared(SeqScan{"orders"}), std::make_shared(SeqScan{"users"}), - JoinType::kInner, wrong_qual}); + JoinType::kInner, wrong_qual}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); ASSERT_THAT(result.mismatch, HasSubstr("qual")); } @@ -403,7 +471,7 @@ TEST(ReachabilityTest, InExpandsToOrChain) { BinaryOp::kOr, std::make_shared(std::move(eq3))}; auto result = IsPlanReachable(s, PhysicalFilter{ - std::make_shared(SeqScan{"users"}), or_chain}); + std::make_shared(SeqScan{"users"}), or_chain}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsTrue()); } @@ -417,7 +485,7 @@ TEST(ReachabilityTest, OrderByReachableViaSortEnforcer) { {Attribute{"users", "id"}}, {}}), SortOrder{{SortKey{"users", "id", Direction::kAsc}}}}; - auto result = IsPlanReachable(s, target); + auto result = IsPlanReachable(s, target, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsTrue()); } @@ -431,7 +499,7 @@ TEST(ReachabilityTest, OrderByWrongDirectionNotReachable) { {Attribute{"users", "id"}}, {}}), SortOrder{{SortKey{"users", "id", Direction::kDesc}}}}; - auto result = IsPlanReachable(s, target); + auto result = IsPlanReachable(s, target, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); } @@ -445,7 +513,7 @@ TEST(ReachabilityTest, SortNotReachableWithoutOrderBy) { {Attribute{"users", "id"}}, {}}), SortOrder{{SortKey{"users", "id", Direction::kAsc}}}}; - auto result = IsPlanReachable(s, target); + auto result = IsPlanReachable(s, target, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); } diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index cbf1497..5a51448 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -113,6 +113,21 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!rhs.ok) { rhs.reason = "HashJoin.rhs: " + rhs.reason; return rhs; } return {true, std::max(lhs.depth, rhs.depth), {}}; }, + [&](const physical::MergeJoin& op) -> InternalMatch { + const auto* t = std::get_if(&target.node); + if (!t) return {false, depth, "type mismatch: expected MergeJoin"}; + if (op.type != t->type) + return {false, depth + 1, "MergeJoin join type mismatch"}; + if (op.qual != t->qual) + return {false, depth + 1, + std::format("MergeJoin qual '{}' != '{}'", + ToString(op.qual), ToString(t->qual))}; + auto lhs = MatchGroup(op.lhs.get(), *t->lhs, depth + 1); + if (!lhs.ok) { lhs.reason = "MergeJoin.lhs: " + lhs.reason; return lhs; } + auto rhs = MatchGroup(op.rhs.get(), *t->rhs, depth + 1); + if (!rhs.ok) { rhs.reason = "MergeJoin.rhs: " + rhs.reason; return rhs; } + return {true, std::max(lhs.depth, rhs.depth), {}}; + }, [&](const physical::Sort& op) -> InternalMatch { const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected Sort"}; diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index 47a4839..dadda82 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -4,7 +4,7 @@ namespace stewkk::sql { -Rules<7, 8> MakeMainRules(IndexCatalog indexes) { +Rules<7, 9> MakeMainRules(IndexCatalog indexes) { return { .transformation_rules = { std::make_unique(), @@ -23,6 +23,7 @@ Rules<7, 8> MakeMainRules(IndexCatalog indexes) { std::make_unique(), std::make_unique(), std::make_unique(), + std::make_unique(), std::make_unique(), }, }; diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 82abf06..783aed1 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -30,7 +30,7 @@ utils::NotNull RulesApplier::Ap return rules_.implementation_rules[rule.value]->Apply(expr, memo); } -template class RulesApplier<7, 8>; +template class RulesApplier<7, 9>; template class RulesApplier<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index 9591609..e0a36fe 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -24,7 +25,7 @@ bool IndexCatalog::HasSortedIndex(const std::string& table, const std::string& c SchemaCatalog::SchemaCatalog(std::unordered_map tables) : tables_(std::move(tables)) {} -std::optional SchemaCatalog::GetSchema(utils::NotNull group) { +Schema SchemaCatalog::GetSchema(utils::NotNull group) { if (auto it = cache_.find(group.get()); it != cache_.end()) { return it->second; } @@ -34,27 +35,28 @@ std::optional SchemaCatalog::GetSchema(utils::NotNull group) { } std::int64_t SchemaCatalog::GetWidth(utils::NotNull group) { - auto schema = GetSchema(group); - return schema ? std::max(1, schema->size()) : 1; + return std::max(1, GetSchema(group).size()); } // TODO: refactor to remove duplicate logic: both executor and optimizer derive // attributes -std::optional SchemaCatalog::Derive(const LogicalOperator& op) { +Schema SchemaCatalog::Derive(const LogicalOperator& op) { return std::visit(utils::Overloaded{ - [this](const logical::Table& t) -> std::optional { + [this](const logical::Table& t) -> Schema { auto it = tables_.find(t.name); - if (it == tables_.end()) return std::nullopt; + if (it == tables_.end()) { + throw std::runtime_error{std::format("missing schema for table '{}'", t.name)}; + } auto schema = it->second; for (auto& attr : schema) { attr.table = std::string{VisibleName(t)}; } return schema; }, - [this](const logical::Filter& f) -> std::optional { + [this](const logical::Filter& f) -> Schema { return GetSchema(f.source); }, - [](const logical::Projection& p) -> std::optional { + [](const logical::Projection& p) -> Schema { Schema out; for (size_t i = 0; i < p.expressions.size(); ++i) { if (i < p.aliases.size() && p.aliases[i]) { @@ -65,9 +67,8 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { } return out; }, - [this](const logical::Aggregation& a) -> std::optional { - auto input = GetSchema(a.source); - if (!input) return std::nullopt; + [this](const logical::Aggregation& a) -> Schema { + GetSchema(a.source); Schema out; for (const auto& expr : a.group_by) { if (const auto* attr = std::get_if(&expr)) { @@ -79,18 +80,16 @@ std::optional SchemaCatalog::Derive(const LogicalOperator& op) { } return out; }, - [this](const logical::CrossJoin& j) -> std::optional { + [this](const logical::CrossJoin& j) -> Schema { auto l = GetSchema(j.lhs); auto r = GetSchema(j.rhs); - if (!l || !r) return std::nullopt; - l->insert(l->end(), r->begin(), r->end()); + l.insert(l.end(), r.begin(), r.end()); return l; }, - [this](const logical::Join& j) -> std::optional { + [this](const logical::Join& j) -> Schema { auto l = GetSchema(j.lhs); auto r = GetSchema(j.rhs); - if (!l || !r) return std::nullopt; - l->insert(l->end(), r->begin(), r->end()); + l.insert(l.end(), r.begin(), r.end()); return l; }, }, op); diff --git a/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp b/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp index 694111a..d5c0060 100644 --- a/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp +++ b/src/stewkk/sql/logic/optimizer/sort_enforcer.cpp @@ -11,17 +11,16 @@ std::optional SortEnforcer::TryBuild( SchemaCatalog& schema) const { const auto* req = required.Get(); if (!req) return std::nullopt; - if (auto sch = schema.GetSchema(group)) { - for (const auto& sk : req->order.keys) { - bool found = false; - for (const auto& a : *sch) { - if (a.name == sk.column && (sk.table.empty() || a.table == sk.table)) { - found = true; - break; - } + auto sch = schema.GetSchema(group); + for (const auto& sk : req->order.keys) { + bool found = false; + for (const auto& a : sch) { + if (a.name == sk.column && (sk.table.empty() || a.table == sk.table)) { + found = true; + break; } - if (!found) return std::nullopt; } + if (!found) return std::nullopt; } return PhysicalOperator{physical::Sort{group, req->order}}; } From 7cf088ecc6a696dc43f4f20373fb4c78d418a60e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 9 Jun 2026 22:53:08 +0300 Subject: [PATCH 099/120] Add StreamAgg --- .../stewkk/sql/logic/executor/executor.hpp | 6 +- include/stewkk/sql/logic/executor/plan.hpp | 12 +- .../sql/logic/executor/sequential_scan.hpp | 3 + .../implement_aggregation.hpp | 2 +- .../implement_cross_join.hpp | 2 +- .../implementation_rules/implement_filter.hpp | 2 +- .../implement_hash_join.hpp | 2 +- .../implement_index_seek.hpp | 2 +- .../implementation_rules/implement_join.hpp | 2 +- .../implement_merge_join.hpp | 2 +- .../implement_projection.hpp | 2 +- .../implementation_rules/implement_table.hpp | 2 +- .../sql/logic/optimizer/physical_expr.hpp | 12 +- include/stewkk/sql/logic/optimizer/rule.hpp | 3 +- .../sql/logic/optimizer/rules_applier.hpp | 2 +- src/stewkk/sql/logic/executor/executor.cpp | 140 +++++++++++++++++- .../sql/logic/executor/executor_test.cpp | 36 +++++ src/stewkk/sql/logic/executor/plan.cpp | 7 +- .../sql/logic/executor/plan_serializer.cpp | 42 +++++- .../sql/logic/executor/sequential_scan.cpp | 14 ++ .../implement_aggregation.cpp | 17 ++- .../implement_cross_join.cpp | 4 +- .../implementation_rules/implement_filter.cpp | 4 +- .../implement_hash_join.cpp | 6 +- .../implement_index_seek.cpp | 56 ++++++- .../implementation_rules/implement_join.cpp | 6 +- .../implement_merge_join.cpp | 6 +- .../implement_projection.cpp | 6 +- .../implementation_rules/implement_table.cpp | 4 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 52 ++++++- .../sql/logic/optimizer/optimizer_test.cpp | 44 ++++++ .../sql/logic/optimizer/reachability.cpp | 11 ++ .../sql/logic/optimizer/rules_applier.cpp | 2 +- 33 files changed, 462 insertions(+), 51 deletions(-) diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 24eefb4..0cfc999 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -51,7 +51,8 @@ class Executor { AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; using IndexScan = std::function>( const std::string& table_name, const std::string& output_table_name, - const Expression& predicate, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; + const Expression& predicate, const std::optional& index_column, + AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan)>; Executor(SequentialScan seq_scan, boost::asio::any_io_executor executor); Executor(SequentialScan seq_scan, IndexScan index_scan, boost::asio::any_io_executor executor); @@ -79,6 +80,9 @@ class Executor { boost::asio::awaitable ExecuteHashAggregate(const PhysicalAggregation& agg, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); + boost::asio::awaitable ExecuteStreamAggregate(const PhysicalStreamAggregation& agg, + AttributesInfoChannel& attr_chan, + TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteSort(const PhysicalSort& sort, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); boost::asio::experimental::promise SpawnExecutor( diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 74692d7..41b3a6f 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -27,6 +27,7 @@ struct MergeJoin; struct IndexSeek; struct PhysicalSort; struct PhysicalAggregation; +struct PhysicalStreamAggregation; struct PhysicalPlanNode; struct SeqScan { @@ -91,6 +92,7 @@ struct IndexSeek { std::string table; std::optional alias; Expression predicate; + std::optional index_column = std::nullopt; bool operator==(const IndexSeek&) const; }; @@ -110,6 +112,14 @@ struct PhysicalAggregation { bool operator==(const PhysicalAggregation&) const; }; +struct PhysicalStreamAggregation { + std::shared_ptr source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const PhysicalStreamAggregation&) const; +}; + struct PlanNodeMetadata { std::int64_t cardinality = 0; std::int64_t local_cost = 0; @@ -117,7 +127,7 @@ struct PlanNodeMetadata { bool operator==(const PlanNodeMetadata&) const = default; }; -using PhysicalPlanAlternative = std::variant; +using PhysicalPlanAlternative = std::variant; struct PhysicalPlanNode { PhysicalPlanAlternative node; diff --git a/include/stewkk/sql/logic/executor/sequential_scan.hpp b/include/stewkk/sql/logic/executor/sequential_scan.hpp index 543ae6b..ecaf2a8 100644 --- a/include/stewkk/sql/logic/executor/sequential_scan.hpp +++ b/include/stewkk/sql/logic/executor/sequential_scan.hpp @@ -2,6 +2,8 @@ #include +#include + #include #include #include @@ -23,6 +25,7 @@ struct CsvDirIndexedScanner { boost::asio::awaitable> operator()(const std::string& table_name, const std::string& output_table_name, const Expression& predicate, + const std::optional& index_column, AttributesInfoChannel& attrs_chan, TuplesChannel& tuples_chan) const; }; diff --git a/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp b/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp index b92318f..c541068 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_aggregation.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementAggregation : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp index fd0bd40..5db26a0 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_cross_join.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementCrossJoin : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp b/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp index ff48d4a..884618c 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_filter.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementFilter : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp index f2a11a3..1eecab2 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_hash_join.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementHashJoin : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp b/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp index 42682fa..1842ba9 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_index_seek.hpp @@ -10,7 +10,7 @@ class ImplementIndexSeek : public ImplementationRule { explicit ImplementIndexSeek(IndexCatalog indexes); bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; private: IndexCatalog indexes_; diff --git a/include/stewkk/sql/logic/implementation_rules/implement_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_join.hpp index 7838bef..5ec710e 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_join.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_join.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementJoin : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp b/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp index 1742d96..5a9b564 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_merge_join.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementMergeJoin : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp b/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp index f0c2716..2437041 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_projection.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementProjection : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/implementation_rules/implement_table.hpp b/include/stewkk/sql/logic/implementation_rules/implement_table.hpp index 1d554f9..b1e96ca 100644 --- a/include/stewkk/sql/logic/implementation_rules/implement_table.hpp +++ b/include/stewkk/sql/logic/implementation_rules/implement_table.hpp @@ -7,7 +7,7 @@ namespace stewkk::sql { class ImplementTable : public ImplementationRule { public: bool IsApplicable(utils::NotNull expr) override; - utils::NotNull Apply(utils::NotNull expr, Memo& memo) override; + std::vector> Apply(utils::NotNull expr, Memo& memo) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 2081d8f..9dd2dba 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -26,6 +26,7 @@ struct IndexSeek { std::string table; std::optional alias; Expression predicate; + std::string index_column; bool operator==(const IndexSeek&) const = default; }; @@ -94,13 +95,22 @@ struct Aggregation { bool operator==(const Aggregation&) const = default; }; +struct StreamAggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const StreamAggregation&) const = default; +}; + } // namespace physical struct PhysicalExpr { std::variant root_operator; + physical::Aggregation, physical::StreamAggregation, + physical::IndexSeek> root_operator; utils::NotNull group; bool is_enforcer = false; }; diff --git a/include/stewkk/sql/logic/optimizer/rule.hpp b/include/stewkk/sql/logic/optimizer/rule.hpp index 8690454..872c2f6 100644 --- a/include/stewkk/sql/logic/optimizer/rule.hpp +++ b/include/stewkk/sql/logic/optimizer/rule.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -23,7 +24,7 @@ class TransformationRule { class ImplementationRule { public: virtual bool IsApplicable(utils::NotNull expr) = 0; - virtual utils::NotNull Apply(utils::NotNull, Memo& memo) = 0; + virtual std::vector> Apply(utils::NotNull, Memo& memo) = 0; virtual ~ImplementationRule() = default; }; diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp index 59aca4f..4d0bbf7 100644 --- a/include/stewkk/sql/logic/optimizer/rules_applier.hpp +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -26,7 +26,7 @@ class RulesApplier { utils::NotNull Apply(TransformationRuleId rule, utils::NotNull expr, Memo& memo); bool IsApplicable(ImplementationRuleId rule, utils::NotNull expr); - utils::NotNull Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo); + std::vector> Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo); private: Rules rules_; diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index c16f24f..22dbded 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -658,6 +658,9 @@ boost::asio::awaitable Executor::Execute(const Physica boost::asio::awaitable operator()(const PhysicalAggregation& agg) const { return executor.ExecuteHashAggregate(agg, attr_chan, tuples_chan); } + boost::asio::awaitable operator()(const PhysicalStreamAggregation& agg) const { + return executor.ExecuteStreamAggregate(agg, attr_chan, tuples_chan); + } boost::asio::awaitable operator()(const MergeJoin& join) const { return executor.ExecuteMergeJoin(join, attr_chan, tuples_chan); } @@ -690,7 +693,7 @@ boost::asio::awaitable Executor::ExecuteIndexSeek( throw std::runtime_error("IndexSeek execution requested, but no index scanner is configured"); } co_await index_scan_(seek.table, seek.alias ? *seek.alias : seek.table, seek.predicate, - attr_chan, tuples_chan); + seek.index_column, attr_chan, tuples_chan); } template @@ -1568,6 +1571,141 @@ boost::asio::awaitable Executor::ExecuteHashAggregate( out_tuples_chan.close(); } +template +boost::asio::awaitable Executor::ExecuteStreamAggregate( + const PhysicalStreamAggregation& agg, AttributesInfoChannel& out_attr_chan, + TuplesChannel& out_tuples_chan) { + Log("Executing stream aggregate"); + auto close_on_fail = boost::scope::make_scope_fail( + [&] { out_attr_chan.close(); out_tuples_chan.close(); }); + auto exec = co_await boost::asio::this_coro::executor; + auto [in_attrs_chan, in_tuples_chan] = co_await GetChannels(); + auto task = SpawnExecutor(exec, *agg.source, in_attrs_chan, in_tuples_chan); + + auto in_attrs = co_await in_attrs_chan.async_receive(boost::asio::use_awaitable); + + AttributesInfo out_attrs; + for (const auto& expr : agg.group_by) { + if (const auto* attr = std::get_if(&expr)) { + auto it = std::find_if(in_attrs.begin(), in_attrs.end(), [&](const AttributeInfo& ai) { + return ai.table == attr->table && ai.name == attr->name; + }); + if (it != in_attrs.end()) { + out_attrs.push_back(*it); + } + } + } + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + const auto& agg_expr = std::get(agg.aggregates[i]); + Type t = (agg_expr.function == AggregateFunction::kCount) + ? Type::kInt + : (agg_expr.is_star ? Type::kInt : GetExpressionTypeUnchecked(*agg_expr.argument, in_attrs)); + out_attrs.push_back(AttributeInfo{"", std::format("__agg{}", i), t}); + } + co_await out_attr_chan.async_send(boost::system::error_code{}, out_attrs, + boost::asio::use_awaitable); + out_attr_chan.close(); + + struct GroupState { + std::vector accumulators; + std::vector any_non_null; + }; + + auto do_scalar = [&](const Expression& expr, const Tuple& tuple) -> Value { + return CalcExpression(tuple, in_attrs, expr); + }; + auto init_state = [&]() -> GroupState { + GroupState s; + s.accumulators.resize(agg.aggregates.size(), 0); + s.any_non_null.resize(agg.aggregates.size(), false); + return s; + }; + auto update_state = [&](GroupState& state, const Tuple& tuple) { + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + const auto& agg_expr = std::get(agg.aggregates[i]); + if (agg_expr.function == AggregateFunction::kCount) { + if (agg_expr.is_star) { + state.accumulators[i]++; + } else { + auto v = do_scalar(*agg_expr.argument, tuple); + if (!v.is_null) state.accumulators[i]++; + } + } else { + auto v = do_scalar(*agg_expr.argument, tuple); + if (!v.is_null) { + state.accumulators[i] += v.value.int_value; + state.any_non_null[i] = true; + } + } + } + }; + + Tuples out_buf; + out_buf.reserve(kBufSize); + auto emit_group = [&](const std::vector& key, const GroupState& state) + -> boost::asio::awaitable { + Tuple tuple = key; + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + const auto& agg_expr = std::get(agg.aggregates[i]); + if (agg_expr.function == AggregateFunction::kSum && !state.any_non_null[i]) { + tuple.push_back(Value{true}); + } else { + tuple.push_back(Value{false, {.int_value = state.accumulators[i]}}); + } + } + out_buf.push_back(std::move(tuple)); + if (out_buf.size() == kBufSize) { + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + out_buf.clear(); + out_buf.reserve(kBufSize); + } + }; + auto flush_output = [&]() -> boost::asio::awaitable { + if (!out_buf.empty()) { + co_await out_tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), + boost::asio::use_awaitable); + out_buf.clear(); + out_buf.reserve(kBufSize); + } + }; + + std::vector current_key; + GroupState current_state = init_state(); + bool has_current = false; + + for (;;) { + auto buf = co_await ReceiveTuples(in_tuples_chan); + if (buf.empty()) break; + for (const auto& tuple : buf) { + std::vector key; + key.reserve(agg.group_by.size()); + for (const auto& expr : agg.group_by) { + key.push_back(do_scalar(expr, tuple)); + } + if (!has_current) { + current_key = std::move(key); + current_state = init_state(); + has_current = true; + } else if (key != current_key) { + co_await emit_group(current_key, current_state); + current_key = std::move(key); + current_state = init_state(); + } + update_state(current_state, tuple); + } + } + + if (has_current) { + co_await emit_group(current_key, current_state); + } else if (agg.group_by.empty()) { + co_await emit_group(std::vector{}, init_state()); + } + co_await flush_output(); + co_await task(boost::asio::use_awaitable); + out_tuples_chan.close(); +} + template boost::asio::experimental::promise Executor::SpawnExecutor(boost::asio::any_io_executor exec, diff --git a/src/stewkk/sql/logic/executor/executor_test.cpp b/src/stewkk/sql/logic/executor/executor_test.cpp index 7b4a765..2f9abac 100644 --- a/src/stewkk/sql/logic/executor/executor_test.cpp +++ b/src/stewkk/sql/logic/executor/executor_test.cpp @@ -897,4 +897,40 @@ TEST(ExecutorTest, GroupByCountStar) { ctx.run(); } +TEST(ExecutorTest, StreamGroupByCountStar) { + boost::asio::io_context ctx; + boost::asio::co_spawn( + ctx, + []() -> boost::asio::awaitable> { + std::stringstream s{"SELECT users.age, COUNT(*) FROM users GROUP BY users.age;"}; + auto ast = GetAST(s).value().op; + const auto& projection = std::get(ast); + const auto& agg = std::get(*projection.source); + PhysicalPlanNode op = PhysicalStreamAggregation{ + .source = std::make_shared(PhysicalSort{ + .source = std::make_shared(ToPhysicalPlan(*agg.source)), + .keys = SortOrder{{SortKey{"users", "age", Direction::kAsc}}}, + }), + .group_by = agg.group_by, + .aggregates = agg.aggregates, + }; + CsvDirSequentialScanner seq_scan{kProjectDir + "/test/static/executor/test_data"}; + Executor executor( + std::move(seq_scan), co_await boost::asio::this_coro::executor); + auto got = co_await executor.Execute(op); + co_return got; + }(), + [](std::exception_ptr p, Result got) { + if (p) std::rethrow_exception(p); + ASSERT_THAT(got.value().tuples.size(), Eq(11u)); + + int64_t total = 0; + for (const auto& t : got.value().tuples) { + total += t[1].value.int_value; + } + ASSERT_THAT(total, Eq(17)); + }); + ctx.run(); +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 693aa5c..5fddf24 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -35,7 +35,8 @@ bool MergeJoin::operator==(const MergeJoin& other) const { } bool IndexSeek::operator==(const IndexSeek& other) const { - return table == other.table && alias == other.alias && predicate == other.predicate; + return table == other.table && alias == other.alias && predicate == other.predicate + && index_column == other.index_column; } bool PhysicalSort::operator==(const PhysicalSort& other) const { @@ -46,4 +47,8 @@ bool PhysicalAggregation::operator==(const PhysicalAggregation& other) const { return *source == *other.source && group_by == other.group_by && aggregates == other.aggregates; } +bool PhysicalStreamAggregation::operator==(const PhysicalStreamAggregation& other) const { + return *source == *other.source && group_by == other.group_by && aggregates == other.aggregates; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 14ad1c0..819fdea 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -223,6 +223,20 @@ std::string SerializeNode(const PhysicalPlanNode& node) { return std::format("(HashAggregate (group_by {}) (aggs {}) {})", group_by_str, aggs_str, SerializeNode(*n.source)); } + std::string operator()(const PhysicalStreamAggregation& n) const { + std::string group_by_str; + for (const auto& e : n.group_by) { + if (!group_by_str.empty()) group_by_str += ' '; + group_by_str += SerializeExpr(e); + } + std::string aggs_str; + for (const auto& e : n.aggregates) { + if (!aggs_str.empty()) aggs_str += ' '; + aggs_str += SerializeExpr(e); + } + return std::format("(StreamAggregate (group_by {}) (aggs {}) {})", + group_by_str, aggs_str, SerializeNode(*n.source)); + } }; return std::visit(Visitor{}, node.node); } @@ -544,7 +558,7 @@ PhysicalPlanNode ParseNode(ParseState& s) { }; } - if (head == "HashAggregate") { + if (head == "HashAggregate" || head == "StreamAggregate") { s.ExpectLParen(); auto kw1 = s.ExpectAtom(); if (kw1 != "group_by") @@ -563,6 +577,13 @@ PhysicalPlanNode ParseNode(ParseState& s) { s.ExpectRParen(); auto source = ParseNode(s); s.ExpectRParen(); + if (head == "StreamAggregate") { + return PhysicalStreamAggregation{ + std::make_shared(std::move(source)), + std::move(group_by), + std::move(aggregates), + }; + } return PhysicalAggregation{ std::make_shared(std::move(source)), std::move(group_by), @@ -717,6 +738,25 @@ struct DotBuilder { EmitEdge(src, id); return id; } + + int EmitAlternative(const PhysicalStreamAggregation& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); + std::string aggs; + for (const auto& e : n.aggregates) { + if (!aggs.empty()) aggs += ", "; + aggs += ToString(e); + } + std::string group_by; + for (const auto& e : n.group_by) { + if (!group_by.empty()) group_by += ", "; + group_by += ToString(e); + } + int id = Emit(std::format("StreamAgg\\nGROUP BY {}\\n{}", group_by, aggs), + metadata); + EmitEdge(src, id); + return id; + } }; } // namespace diff --git a/src/stewkk/sql/logic/executor/sequential_scan.cpp b/src/stewkk/sql/logic/executor/sequential_scan.cpp index 51663ce..c78105d 100644 --- a/src/stewkk/sql/logic/executor/sequential_scan.cpp +++ b/src/stewkk/sql/logic/executor/sequential_scan.cpp @@ -20,6 +20,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -381,12 +382,25 @@ boost::asio::awaitable> CsvDirSequentialScanner::operator()( boost::asio::awaitable> CsvDirIndexedScanner::operator()( const std::string& table_name, const std::string& output_table_name, const Expression& predicate, + const std::optional& index_column, AttributesInfoChannel& attrs_chan, TuplesChannel& tuples_chan) const { #ifdef DEBUG std::clog << "Executing index seek\n"; #endif auto condition = ExtractSeekCondition(predicate, table_name, output_table_name); + if (index_column && (!condition || condition->column != *index_column)) { + std::vector conjuncts; + CollectConjuncts(predicate, conjuncts); + condition = std::nullopt; + for (const auto& conjunct : conjuncts) { + auto candidate = ExtractSeekCondition(conjunct, table_name, output_table_name); + if (candidate && candidate->column == *index_column) { + condition = std::move(candidate); + break; + } + } + } if (!condition) { throw std::runtime_error{"IndexSeek predicate must be a comparison between one indexed int column and an int constant"}; } diff --git a/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp b/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp index 3e57792..8164a5c 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp @@ -1,15 +1,26 @@ #include +#include + namespace stewkk::sql { bool ImplementAggregation::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull ImplementAggregation::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementAggregation::Apply(utils::NotNull expr, Memo&) { auto& agg = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr( - physical::Aggregation{agg.source, agg.group_by, agg.aggregates}); + std::vector> result{ + expr->group->AddPhysicalExpr( + physical::Aggregation{agg.source, agg.group_by, agg.aggregates})}; + if (!agg.group_by.empty() + && std::ranges::all_of(agg.group_by, [](const Expression& group_expr) { + return std::holds_alternative(group_expr); + })) { + result.push_back(expr->group->AddPhysicalExpr( + physical::StreamAggregation{agg.source, agg.group_by, agg.aggregates})); + } + return result; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp index c9a2677..d517ee3 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_cross_join.cpp @@ -6,9 +6,9 @@ bool ImplementCrossJoin::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull ImplementCrossJoin::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementCrossJoin::Apply(utils::NotNull expr, Memo&) { auto& cj = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr(physical::NestedLoopCrossJoin{cj.lhs, cj.rhs}); + return {expr->group->AddPhysicalExpr(physical::NestedLoopCrossJoin{cj.lhs, cj.rhs})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp b/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp index 96b8b21..38baaaa 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_filter.cpp @@ -6,9 +6,9 @@ bool ImplementFilter::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull ImplementFilter::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementFilter::Apply(utils::NotNull expr, Memo&) { auto& filter = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr(physical::Filter{filter.source, filter.predicate}); + return {expr->group->AddPhysicalExpr(physical::Filter{filter.source, filter.predicate})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp index 4306956..012a1cd 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp @@ -20,10 +20,10 @@ bool ImplementHashJoin::IsApplicable(utils::NotNull expr) { return IsSimpleEquiJoin(join.qual); } -utils::NotNull ImplementHashJoin::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementHashJoin::Apply(utils::NotNull expr, Memo&) { auto& join = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr( - physical::HashJoin{join.lhs, join.rhs, join.type, join.qual}); + return {expr->group->AddPhysicalExpr( + physical::HashJoin{join.lhs, join.rhs, join.type, join.qual})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp b/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp index 44204b0..6769399 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_index_seek.cpp @@ -48,6 +48,41 @@ bool IsIndexedComparison(const Expression& expr, const logical::Table& table, return false; } +void CollectIndexedColumns(const Expression& expr, const logical::Table& table, + const IndexCatalog& indexes, std::vector& columns) { + const auto* binary = std::get_if(&expr); + if (!binary) { + return; + } + if (binary->binop == BinaryOp::kAnd) { + CollectIndexedColumns(*binary->lhs, table, indexes, columns); + CollectIndexedColumns(*binary->rhs, table, indexes, columns); + return; + } + if (!IsSupportedComparison(binary->binop)) { + return; + } + + auto add_if_indexed = [&](const Attribute& attr, const Expression& other) { + if (!AttrMatchesTable(attr, table) || !std::holds_alternative(other)) { + return; + } + if (!indexes.HasSortedIndex(table.name, attr.name)) { + return; + } + if (!std::ranges::contains(columns, attr.name)) { + columns.push_back(attr.name); + } + }; + + if (const auto* attr = std::get_if(binary->lhs.get())) { + add_if_indexed(*attr, *binary->rhs); + } + if (const auto* attr = std::get_if(binary->rhs.get())) { + add_if_indexed(*attr, *binary->lhs); + } +} + } // namespace ImplementIndexSeek::ImplementIndexSeek(IndexCatalog indexes) @@ -73,14 +108,23 @@ bool ImplementIndexSeek::IsApplicable(utils::NotNull expr) { return HasCompatibleIndexSeek(std::get(expr->root_operator), indexes_); } -utils::NotNull ImplementIndexSeek::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementIndexSeek::Apply(utils::NotNull expr, Memo&) { auto& filter = std::get(expr->root_operator); const auto* table = SourceTable(filter.source); - return expr->group->AddPhysicalExpr(physical::IndexSeek{ - .table = table->name, - .alias = table->alias, - .predicate = filter.predicate, - }); + std::vector columns; + CollectIndexedColumns(filter.predicate, *table, indexes_, columns); + + std::vector> result; + result.reserve(columns.size()); + for (const auto& column : columns) { + result.push_back(expr->group->AddPhysicalExpr(physical::IndexSeek{ + .table = table->name, + .alias = table->alias, + .predicate = filter.predicate, + .index_column = column, + })); + } + return result; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_join.cpp index d7110f9..89ff20c 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_join.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_join.cpp @@ -6,10 +6,10 @@ bool ImplementJoin::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull ImplementJoin::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementJoin::Apply(utils::NotNull expr, Memo&) { auto& join = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr( - physical::NestedLoopJoin{join.lhs, join.rhs, join.type, join.qual}); + return {expr->group->AddPhysicalExpr( + physical::NestedLoopJoin{join.lhs, join.rhs, join.type, join.qual})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp index 2d56b8f..130e1bf 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_merge_join.cpp @@ -19,10 +19,10 @@ bool ImplementMergeJoin::IsApplicable(utils::NotNull expr) { return IsSimpleEquiJoin(join.qual); } -utils::NotNull ImplementMergeJoin::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementMergeJoin::Apply(utils::NotNull expr, Memo&) { auto& join = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr( - physical::MergeJoin{join.lhs, join.rhs, join.type, join.qual}); + return {expr->group->AddPhysicalExpr( + physical::MergeJoin{join.lhs, join.rhs, join.type, join.qual})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp b/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp index 51889c6..26d6891 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_projection.cpp @@ -6,10 +6,10 @@ bool ImplementProjection::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull ImplementProjection::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementProjection::Apply(utils::NotNull expr, Memo&) { auto& proj = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr( - physical::Projection{proj.source, proj.expressions, proj.aliases}); + return {expr->group->AddPhysicalExpr( + physical::Projection{proj.source, proj.expressions, proj.aliases})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/implementation_rules/implement_table.cpp b/src/stewkk/sql/logic/implementation_rules/implement_table.cpp index 623b26e..c12f35d 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_table.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_table.cpp @@ -6,9 +6,9 @@ bool ImplementTable::IsApplicable(utils::NotNull expr) { return std::holds_alternative(expr->root_operator); } -utils::NotNull ImplementTable::Apply(utils::NotNull expr, Memo&) { +std::vector> ImplementTable::Apply(utils::NotNull expr, Memo&) { auto& table = std::get(expr->root_operator); - return expr->group->AddPhysicalExpr(physical::SeqScan{table.name, table.alias}); + return {expr->group->AddPhysicalExpr(physical::SeqScan{table.name, table.alias})}; } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 2ae8eee..02abba3 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -74,6 +74,21 @@ PropertySet SortOn(const Attribute& attr) { return PropertySet{SortProperty{SortOrder{{SortKey{attr.table, attr.name, Direction::kAsc}}}}}; } +PropertySet SortOn(const std::string& table, const std::string& column) { + return PropertySet{SortProperty{SortOrder{{SortKey{table, column, Direction::kAsc}}}}}; +} + +PropertySet SortOnGroupBy(const std::vector& group_by) { + SortOrder order; + for (const auto& expr : group_by) { + const auto* attr = std::get_if(&expr); + if (!attr) return PropertySet::Any(); + order.keys.push_back(SortKey{attr->table, attr->name, Direction::kAsc}); + } + if (order.keys.empty()) return PropertySet::Any(); + return PropertySet{SortProperty{std::move(order)}}; +} + PropertySet RequiredInputProps(utils::NotNull expr, PropertySet required, size_t child_index, SchemaCatalog& schema) { @@ -94,6 +109,7 @@ PropertySet RequiredInputProps(utils::NotNull expr, }, [&](const physical::Sort&) { return PropertySet::Any(); }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, + [&](const physical::StreamAggregation& a) { return SortOnGroupBy(a.group_by); }, }, expr->root_operator); } @@ -102,7 +118,9 @@ PropertySet DeriveOutputProps(utils::NotNull expr, SchemaCatalog& schema) { return std::visit(utils::Overloaded{ [&](const physical::SeqScan&) { return PropertySet::Any(); }, - [&](const physical::IndexSeek&) { return PropertySet::Any(); }, + [&](const physical::IndexSeek& s) { + return SortOn(s.alias.value_or(s.table), s.index_column); + }, [&](const physical::Filter&) { return child_delivered[0]; }, [&](const physical::Projection&) { return child_delivered[0]; }, [&](const physical::NestedLoopJoin&) { return PropertySet::Any(); }, @@ -115,6 +133,7 @@ PropertySet DeriveOutputProps(utils::NotNull expr, }, [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, + [&](const physical::StreamAggregation& a) { return SortOnGroupBy(a.group_by); }, }, expr->root_operator); } @@ -215,6 +234,9 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi [&](const physical::Aggregation& a) -> int64_t { return 510 * cardinality.GetCardinality(a.source); }, + [&](const physical::StreamAggregation& a) -> int64_t { + return 130 * cardinality.GetCardinality(a.source); + }, }, expr->root_operator); } @@ -275,6 +297,9 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::Aggregation& a) -> std::vector> { return {a.source}; }, + [](const physical::StreamAggregation& a) -> std::vector> { + return {a.source}; + }, }, expr->root_operator); } @@ -405,10 +430,12 @@ void Optimizer::TryRules( } tasks_.emplace([this, expr, rule]() { Log("Applying implementation rule {} to group {}", rule, expr->group->GetId()); - auto new_expr = rules_applier_.Apply(ImplementationRuleId{rule}, expr, memo_); - auto lc = CalcCost(new_expr, cardinality_, schema_); - Log("Local cost for group {} expression: {}", new_expr->group->GetId(), lc); - local_cost_[new_expr.get()] = lc; + auto new_exprs = rules_applier_.Apply(ImplementationRuleId{rule}, expr, memo_); + for (auto new_expr : new_exprs) { + auto lc = CalcCost(new_expr, cardinality_, schema_); + Log("Local cost for group {} expression: {}", new_expr->group->GetId(), lc); + local_cost_[new_expr.get()] = lc; + } }); } } @@ -506,7 +533,12 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G return SeqScan{.table = op.table, .alias = op.alias}; }, [](const physical::IndexSeek& op) -> PhysicalPlanNode { - return IndexSeek{.table = op.table, .alias = op.alias, .predicate = op.predicate}; + return IndexSeek{ + .table = op.table, + .alias = op.alias, + .predicate = op.predicate, + .index_column = op.index_column, + }; }, [this, best_expr_nn, required](const physical::Projection& op) -> PhysicalPlanNode { return PhysicalProjection{ @@ -576,6 +608,14 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G .aggregates = op.aggregates, }; }, + [this, best_expr_nn, required](const physical::StreamAggregation& op) -> PhysicalPlanNode { + return PhysicalStreamAggregation{ + .source = std::make_shared( + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), + .group_by = op.group_by, + .aggregates = op.aggregates, + }; + }, }, best_expr->root_operator); plan.metadata = PlanNodeMetadata{ diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index b2118b5..03a23c1 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -169,6 +169,21 @@ TEST(OptimizerTest, OrderBy) { ASSERT_THAT(Serialize(got), Eq("(Sort (keys users.id Asc) (SeqScan users))")); } +TEST(OptimizerTest, UsesStreamAggregateWhenOrderCanBeProvided) { + std::stringstream s{"SELECT users.id, COUNT(*) FROM users GROUP BY users.id ORDER BY users.id;"}; + auto parsed = GetAST(s).value(); + PropertySet required{SortProperty{*parsed.required_order}}; + Optimizer optimizer(parsed.op, MakeMainRules(), CardinalityEstimates({{"users", 1000}}), + MakeTestSchema(), std::move(required)); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + HasSubstr("(StreamAggregate (group_by (attr users id)) (aggs (COUNT *))" + " (Sort (keys users.id Asc) (SeqScan users)))")); +} + TEST(OptimizerTest, OrderBySortsAfterCrossJoin) { std::stringstream s{ "SELECT * FROM departments CROSS JOIN orders ORDER BY departments.id;"}; @@ -285,6 +300,35 @@ TEST(OptimizerTest, IndexSeekSupportsAliasAndFullResidualPredicate) { Eq("(IndexSeek (and (>= (attr u id) 8) (< (attr u age) 70)) users u)")); } +TEST(OptimizerTest, IndexSeekDeliversSortedIndexOrder) { + std::stringstream s{"SELECT * FROM users WHERE users.id >= 8 ORDER BY users.id;"}; + auto parsed = GetAST(s).value(); + Optimizer optimizer(parsed.op, MakeMainRules(IndexCatalog({ + IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, + })), CardinalityEstimates({{"users", 1000}}), MakeTestSchema(), + PropertySet{SortProperty{*parsed.required_order}}); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), Eq("(IndexSeek (>= (attr users id) 8) users)")); +} + +TEST(OptimizerTest, IndexSeekCanChooseOrderCompatibleIndexedConjunct) { + std::stringstream s{ + "SELECT * FROM users AS u WHERE u.id >= 8 AND u.age < 70 ORDER BY u.age;"}; + auto parsed = GetAST(s).value(); + Optimizer optimizer(parsed.op, MakeMainRules(IndexCatalog({ + IndexInfo{.table = "users", .column = "id", .type = "sorted", .file = "users.id.sorted.idx"}, + IndexInfo{.table = "users", .column = "age", .type = "sorted", .file = "users.age.sorted.idx"}, + })), CardinalityEstimates({{"users", 1000}}), MakeTestSchema(), + PropertySet{SortProperty{*parsed.required_order}}); + + auto got = optimizer.Optimize(); + + ASSERT_THAT(Serialize(got), + Eq("(IndexSeek (and (>= (attr u id) 8) (< (attr u age) 70)) users u)")); +} + TEST(OptimizerTest, NaiveRulesDisableLogicalTransformations) { std::stringstream s{ "SELECT * FROM lineorder AS lo " diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 5a51448..c36000c 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -148,6 +148,17 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!child.ok) child.reason = "Aggregation.source: " + child.reason; return child; }, + [&](const physical::StreamAggregation& op) -> InternalMatch { + const auto* t = std::get_if(&target.node); + if (!t) return {false, depth, "type mismatch: expected StreamAggregate"}; + if (op.group_by != t->group_by) + return {false, depth + 1, "StreamAggregation group_by mismatch"}; + if (op.aggregates != t->aggregates) + return {false, depth + 1, "StreamAggregation aggregates mismatch"}; + auto child = MatchGroup(op.source.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "StreamAggregation.source: " + child.reason; + return child; + }, }, pe->root_operator); } diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 783aed1..41a9186 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -25,7 +25,7 @@ bool RulesApplier::IsApplicable(Implementation } template -utils::NotNull RulesApplier::Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo) { +std::vector> RulesApplier::Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo) { applied_implementation_rules_[expr.get()][rule.value] = 1; return rules_.implementation_rules[rule.value]->Apply(expr, memo); } From c06be56429ad9349f63737fc8e5ecabdd4091fff Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 00:07:51 +0300 Subject: [PATCH 100/120] Update report and benchmarks --- report/vkr.tex | 21 +- .../operator-cost-matched.json | 1594 +++---- research/benchmark-results/operator-cost.json | 2102 ++++----- research/benchmark-results/query.json | 412 +- research/benchmark-results/ssb-sf001.json | 1510 +++--- research/benchmarks.ipynb | 1450 +++--- research/cost-on-random.ipynb | 86 +- research/cost-stats.csv | 800 ++-- research/fuzz/cost_stats.py | 7 +- research/research.ipynb | 4137 ++++++++++++----- 10 files changed, 7003 insertions(+), 5116 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 8bb96d1..732a605 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -795,8 +795,7 @@ \subsection{Правила трансформации и реализации}\l тем самым определяют пространство планов, исследуемое оптимизатором. Наиболее важные из них представлены в таблице~\ref{tbl:transformation_rules}. -% TODO: может это вообще убрать? Или актуализировать... Еще нигде не описано как -% свойства выводятся +% TODO: может это вообще убрать? + нигде не описываю как выводятся свойства \begin{Definition} Null-отбрасывающим называется предикат, который при замене всех атрибутов @@ -1185,15 +1184,21 @@ \subsection{Модуль стоимостной оптимизации план И следующие правила реализации: \begin{itemize} \item последовательное сканирование таблицы; - \item фильтрацию; - \item проекцию; - \item агрегацию; + \item фильтрация; + \item проекция; + \item хэш-агрегация; + \item потоковая агрегация; \item декартово произведение вложенными циклами; \item соединение вложенными циклами; - \item хеш-соединение. + \item хеш-соединение; + \item соединение слиянием. \end{itemize} -% TODO: актуализировать и сделать какой-то вывод о покрытии правилами или почему такие правила выбраны +Данный набор правил все основные алгоритмы, реализующие операторы реляционной +алгебры, и включает самые важные правила трансформации. Также более полное +покрытие правилами реализации хорошо подходит для демонтрации возможностей +дифференциального сравнения планов для последующего расширения покрытия +правилами трансформации. Выбор лучшего плана выполняется на основе стоимостной модели. Стоимость физического оператора рассчитывается с учетом оценок кардинальности входных и @@ -2365,7 +2370,9 @@ \subsection{Калибровка стоимостной модели} Проекция & $22\,n_{out}$ \\ Сортировка & $11\,n\bigl(\lfloor\log_2 n\rfloor + 1\bigr)$ \\ Агрегация & $510\,n$ \\ + Потоковая агрегация & $130\,n$ \\ Соединение вложенными циклами & $70\,n_l n_r$ \\ + Соединение слиянием & $18\,n_l + n_l\,+ 10\,n_o w_o$ \\ Декартово произведение & $104\,n_l n_r$ \\ Хеш-соединение & $100\,n_b w_b + 35\,n_p + 10\,n_o w_o$ \\ \hline diff --git a/research/benchmark-results/operator-cost-matched.json b/research/benchmark-results/operator-cost-matched.json index cd23275..e7e3666 100644 --- a/research/benchmark-results/operator-cost-matched.json +++ b/research/benchmark-results/operator-cost-matched.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-02T01:20:14+03:00", + "date": "2026-06-09T23:49:41+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [1.60498,1.06787,0.731934], + "load_avg": [2.20801,1.40576,1.14795], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,9 +47,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2134, - "real_time": 3.1959937816721865e+05, - "cpu_time": 3.1678497282099345e+05, + "iterations": 2201, + "real_time": 3.1308477827712137e+05, + "cpu_time": 3.1023940345297597e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -65,9 +65,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2134, - "real_time": 3.2149249062863167e+05, - "cpu_time": 3.1863026569821930e+05, + "iterations": 2201, + "real_time": 3.1884279055965185e+05, + "cpu_time": 3.1639320490686060e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -83,9 +83,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2134, - "real_time": 3.1938551311514707e+05, - "cpu_time": 3.1662225585754460e+05, + "iterations": 2201, + "real_time": 3.1709757428868051e+05, + "cpu_time": 3.1426909904588806e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -103,8 +103,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.2015912730366579e+05, - "cpu_time": 3.1734583145891904e+05, + "real_time": 3.1634171437515126e+05, + "cpu_time": 3.1363390246857487e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -122,8 +122,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1959937816721865e+05, - "cpu_time": 3.1678497282099345e+05, + "real_time": 3.1709757428868051e+05, + "cpu_time": 3.1426909904588811e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -141,8 +141,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1596671429184132e+03, - "cpu_time": 1.1153240286591688e+03, + "real_time": 2.9524853120924695e+03, + "cpu_time": 3.1256877806897505e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -160,8 +160,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6221586205739732e-03, - "cpu_time": 3.5145381413448605e-03, + "real_time": 9.3332152477086927e-03, + "cpu_time": 9.9660392453999273e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -177,9 +177,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1753, - "real_time": 4.3079205019653478e+05, - "cpu_time": 4.2860011123787781e+05, + "iterations": 1729, + "real_time": 4.2820256100733217e+05, + "cpu_time": 4.2593496992481180e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -195,9 +195,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1753, - "real_time": 3.9971894409109856e+05, - "cpu_time": 3.9788238676554454e+05, + "iterations": 1729, + "real_time": 4.0207458647550282e+05, + "cpu_time": 4.0061198843261990e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -213,9 +213,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1753, - "real_time": 3.9723416200586094e+05, - "cpu_time": 3.9528256189389637e+05, + "iterations": 1729, + "real_time": 4.0215632678001490e+05, + "cpu_time": 4.0059324117987277e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -233,8 +233,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0924838543116482e+05, - "cpu_time": 4.0725501996577292e+05, + "real_time": 4.1081115808761661e+05, + "cpu_time": 4.0904673317910143e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -252,8 +252,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9971894409109856e+05, - "cpu_time": 3.9788238676554454e+05, + "real_time": 4.0215632678001490e+05, + "cpu_time": 4.0061198843261978e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -271,8 +271,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8698680545555701e+04, - "cpu_time": 1.8531040537477937e+04, + "real_time": 1.5061452187829180e+04, + "cpu_time": 1.4625645050707279e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -290,8 +290,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.5690297655922703e-02, - "cpu_time": 4.5502301086516615e-02, + "real_time": 3.6662714464578680e-02, + "cpu_time": 3.5755437861676870e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -307,9 +307,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 221, - "real_time": 3.1135491538230260e+06, - "cpu_time": 3.0914587466063341e+06, + "iterations": 224, + "real_time": 3.0960619286426147e+06, + "cpu_time": 3.0747937633928573e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -325,9 +325,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 221, - "real_time": 3.1329700317022041e+06, - "cpu_time": 3.1114170452488684e+06, + "iterations": 224, + "real_time": 3.1441242409917838e+06, + "cpu_time": 3.1229820491071432e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -343,9 +343,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 221, - "real_time": 3.0453563801500718e+06, - "cpu_time": 3.0240103257918572e+06, + "iterations": 224, + "real_time": 3.1377971116463803e+06, + "cpu_time": 3.1165352053571432e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -363,8 +363,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0972918552251006e+06, - "cpu_time": 3.0756287058823537e+06, + "real_time": 3.1259944270935929e+06, + "cpu_time": 3.1047703392857146e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -382,8 +382,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1135491538230260e+06, - "cpu_time": 3.0914587466063336e+06, + "real_time": 3.1377971116463803e+06, + "cpu_time": 3.1165352053571437e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -401,8 +401,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.6013724070689255e+04, - "cpu_time": 4.5803125368818633e+04, + "real_time": 2.6114631704802276e+04, + "cpu_time": 2.6159831331332960e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -420,8 +420,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.4856115026120175e-02, - "cpu_time": 1.4892280489259635e-02, + "real_time": 8.3540237559164392e-03, + "cpu_time": 8.4256896557931282e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -437,9 +437,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 989, - "real_time": 7.3863877148847247e+05, - "cpu_time": 7.3131884327603586e+05, + "iterations": 996, + "real_time": 7.0582497386910755e+05, + "cpu_time": 7.0269638353413541e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -455,9 +455,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 989, - "real_time": 7.0003620221743814e+05, - "cpu_time": 6.9446491102123272e+05, + "iterations": 996, + "real_time": 6.9997442669883172e+05, + "cpu_time": 6.9672412550200918e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -473,9 +473,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 989, - "real_time": 7.0414523862990201e+05, - "cpu_time": 6.9763879676440801e+05, + "iterations": 996, + "real_time": 6.9949409538617241e+05, + "cpu_time": 6.9659677911646734e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -493,8 +493,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1427340411193762e+05, - "cpu_time": 7.0780751702055882e+05, + "real_time": 7.0176449865137052e+05, + "cpu_time": 6.9867242938420398e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -512,8 +512,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0414523862990213e+05, - "cpu_time": 6.9763879676440812e+05, + "real_time": 6.9997442669883172e+05, + "cpu_time": 6.9672412550200929e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -531,8 +531,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1200811083658697e+04, - "cpu_time": 2.0423154369398882e+04, + "real_time": 3.5246664789629790e+03, + "cpu_time": 3.4854281696968096e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -550,8 +550,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9681647057848745e-02, - "cpu_time": 2.8854107759928853e-02, + "real_time": 5.0225773542785001e-03, + "cpu_time": 4.9886442102328220e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -567,9 +567,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1951, - "real_time": 3.5571719989303959e+05, - "cpu_time": 3.5380934392619203e+05, + "iterations": 1997, + "real_time": 3.4492794541993242e+05, + "cpu_time": 3.4377248823234811e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -585,9 +585,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1951, - "real_time": 3.5278431522308628e+05, - "cpu_time": 3.5080882214249083e+05, + "iterations": 1997, + "real_time": 3.5217452829173906e+05, + "cpu_time": 3.5094974411617417e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -603,9 +603,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1951, - "real_time": 3.5274546797169390e+05, - "cpu_time": 3.4959611788826273e+05, + "iterations": 1997, + "real_time": 3.5108648071568750e+05, + "cpu_time": 3.4975750125187810e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -623,8 +623,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5374899436260661e+05, - "cpu_time": 3.5140476131898188e+05, + "real_time": 3.4939631814245303e+05, + "cpu_time": 3.4815991120013344e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -642,8 +642,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5278431522308622e+05, - "cpu_time": 3.5080882214249088e+05, + "real_time": 3.5108648071568744e+05, + "cpu_time": 3.4975750125187816e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -661,8 +661,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7046266555327054e+03, - "cpu_time": 2.1689112564212855e+03, + "real_time": 3.9077778816701375e+03, + "cpu_time": 3.8460981508032892e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -680,8 +680,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.8187462938351034e-03, - "cpu_time": 6.1721168725215204e-03, + "real_time": 1.1184370523552256e-02, + "cpu_time": 1.1046929951083395e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -697,9 +697,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2826, - "real_time": 2.5065704565115442e+05, - "cpu_time": 2.4948463481953283e+05, + "iterations": 2600, + "real_time": 2.5277129883761515e+05, + "cpu_time": 2.5169727038461503e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -716,9 +716,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2826, - "real_time": 2.5367649469384726e+05, - "cpu_time": 2.5223422611464988e+05, + "iterations": 2600, + "real_time": 2.4949188269182251e+05, + "cpu_time": 2.4836474961538453e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -735,9 +735,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2826, - "real_time": 2.4992166383239566e+05, - "cpu_time": 2.4840726680820910e+05, + "iterations": 2600, + "real_time": 2.4811411922340858e+05, + "cpu_time": 2.4725135884615395e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -756,8 +756,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5141840139246578e+05, - "cpu_time": 2.5004204258079722e+05, + "real_time": 2.5012576691761543e+05, + "cpu_time": 2.4910445961538446e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -776,8 +776,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5065704565115439e+05, - "cpu_time": 2.4948463481953283e+05, + "real_time": 2.4949188269182251e+05, + "cpu_time": 2.4836474961538453e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -796,8 +796,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9898330641364194e+03, - "cpu_time": 1.9734315145302073e+03, + "real_time": 2.3924229138098212e+03, + "cpu_time": 2.3134196582213044e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -816,8 +816,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.9144289086075167e-03, - "cpu_time": 7.8923987908654323e-03, + "real_time": 9.5648798734031260e-03, + "cpu_time": 9.2869459735614845e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -834,9 +834,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1023, - "real_time": 6.7543047311864176e+05, - "cpu_time": 6.6822351026392926e+05, + "iterations": 1033, + "real_time": 6.6694372410445113e+05, + "cpu_time": 6.6382655566311814e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -853,9 +853,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1023, - "real_time": 6.7492656403538457e+05, - "cpu_time": 6.7033196480938361e+05, + "iterations": 1033, + "real_time": 6.7231756050567015e+05, + "cpu_time": 6.6905101064859529e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -872,9 +872,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1023, - "real_time": 6.7869487194319826e+05, - "cpu_time": 6.7383008504398668e+05, + "iterations": 1033, + "real_time": 6.6608167377400631e+05, + "cpu_time": 6.6280441819941858e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -893,8 +893,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7635063636574161e+05, - "cpu_time": 6.7079518670576648e+05, + "real_time": 6.6844765279470931e+05, + "cpu_time": 6.6522732817037741e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -913,8 +913,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7543047311864176e+05, - "cpu_time": 6.7033196480938361e+05, + "real_time": 6.6694372410445136e+05, + "cpu_time": 6.6382655566311826e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -933,8 +933,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0457422669924872e+03, - "cpu_time": 2.8318458794784506e+03, + "real_time": 3.3790415744024026e+03, + "cpu_time": 3.3506121857408598e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -953,8 +953,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.0246770787190290e-03, - "cpu_time": 4.2216252227233013e-03, + "real_time": 5.0550578796634037e-03, + "cpu_time": 5.0367927531724975e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -971,9 +971,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1745, - "real_time": 3.9936067965275270e+05, - "cpu_time": 3.9391174957020098e+05, + "iterations": 1784, + "real_time": 3.9590542938016279e+05, + "cpu_time": 3.9344063957399171e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -990,9 +990,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1745, - "real_time": 4.0198811575907806e+05, - "cpu_time": 3.9843648653295141e+05, + "iterations": 1784, + "real_time": 3.9683092040526099e+05, + "cpu_time": 3.9427491928251146e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1009,9 +1009,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1745, - "real_time": 3.9488310028530692e+05, - "cpu_time": 3.9134692951289425e+05, + "iterations": 1784, + "real_time": 4.1283857399525202e+05, + "cpu_time": 4.0964141704035935e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1030,8 +1030,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9874396523237921e+05, - "cpu_time": 3.9456505520534888e+05, + "real_time": 4.0185830792689190e+05, + "cpu_time": 3.9911899196562084e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1050,8 +1050,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9936067965275276e+05, - "cpu_time": 3.9391174957020092e+05, + "real_time": 3.9683092040526099e+05, + "cpu_time": 3.9427491928251152e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1070,8 +1070,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5924314506796982e+03, - "cpu_time": 3.5896463439821096e+03, + "real_time": 9.5204419859792561e+03, + "cpu_time": 9.1222298670954096e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1090,8 +1090,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.0093688279046635e-03, - "cpu_time": 9.0977300108695657e-03, + "real_time": 2.3691041837839179e-02, + "cpu_time": 2.2855915280225944e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1108,9 +1108,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2017, - "real_time": 3.4750430193185079e+05, - "cpu_time": 3.4489420178482815e+05, + "iterations": 1998, + "real_time": 3.4563285885383381e+05, + "cpu_time": 3.4412943743743672e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1126,9 +1126,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2017, - "real_time": 3.4945645017601806e+05, - "cpu_time": 3.4778087059990200e+05, + "iterations": 1998, + "real_time": 3.4439379078822228e+05, + "cpu_time": 3.4241372272272233e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1144,9 +1144,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2017, - "real_time": 3.6007833664242481e+05, - "cpu_time": 3.5810382102131739e+05, + "iterations": 1998, + "real_time": 3.4484542842832737e+05, + "cpu_time": 3.4355080580580694e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1164,8 +1164,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5234636291676457e+05, - "cpu_time": 3.5025963113534910e+05, + "real_time": 3.4495735935679451e+05, + "cpu_time": 3.4336465532198857e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1183,8 +1183,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4945645017601800e+05, - "cpu_time": 3.4778087059990200e+05, + "real_time": 3.4484542842832737e+05, + "cpu_time": 3.4355080580580694e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1202,8 +1202,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7668518501962935e+03, - "cpu_time": 6.9449046384655185e+03, + "real_time": 6.2707162059865288e+02, + "cpu_time": 8.7287355760387481e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1221,8 +1221,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.9205113383829197e-02, - "cpu_time": 1.9827876298373168e-02, + "real_time": 1.8178235761309369e-03, + "cpu_time": 2.5421182526353552e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1238,9 +1238,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1098, - "real_time": 6.4536491530077567e+05, - "cpu_time": 6.4221397449908894e+05, + "iterations": 1108, + "real_time": 6.3257316154842218e+05, + "cpu_time": 6.2974223375450983e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1256,9 +1256,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1098, - "real_time": 6.9193085427351471e+05, - "cpu_time": 6.8822382786885265e+05, + "iterations": 1108, + "real_time": 6.4124681769692863e+05, + "cpu_time": 6.3815216245487344e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1274,9 +1274,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1098, - "real_time": 6.5574999544283922e+05, - "cpu_time": 6.5227131785063515e+05, + "iterations": 1108, + "real_time": 6.4404472202904825e+05, + "cpu_time": 6.4052159476534347e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1294,8 +1294,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6434858833904308e+05, - "cpu_time": 6.6090304007285892e+05, + "real_time": 6.3928823375813290e+05, + "cpu_time": 6.3613866365824209e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1313,8 +1313,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5574999544283922e+05, - "cpu_time": 6.5227131785063515e+05, + "real_time": 6.4124681769692863e+05, + "cpu_time": 6.3815216245487344e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1332,8 +1332,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4444805541243975e+04, - "cpu_time": 2.4188977307196143e+04, + "real_time": 5.9813220318930735e+03, + "cpu_time": 5.6647408593572536e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1351,8 +1351,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6795149369338066e-02, - "cpu_time": 3.6599888093311723e-02, + "real_time": 9.3562210534224154e-03, + "cpu_time": 8.9048837666634382e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1368,9 +1368,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 129, - "real_time": 5.5410689069680115e+06, - "cpu_time": 5.4980028914728574e+06, + "iterations": 139, + "real_time": 4.9726498345073937e+06, + "cpu_time": 4.9447566187050398e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1386,9 +1386,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 129, - "real_time": 5.5632144728244115e+06, - "cpu_time": 5.5193484728682078e+06, + "iterations": 139, + "real_time": 4.9559121439317176e+06, + "cpu_time": 4.9227157338129496e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1404,9 +1404,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 129, - "real_time": 5.5757678991956124e+06, - "cpu_time": 5.5366980000000084e+06, + "iterations": 139, + "real_time": 5.0025056403133646e+06, + "cpu_time": 4.9735199496402973e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1424,8 +1424,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5600170929960115e+06, - "cpu_time": 5.5180164547803579e+06, + "real_time": 4.9770225395841580e+06, + "cpu_time": 4.9469974340527626e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1443,8 +1443,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5632144728244124e+06, - "cpu_time": 5.5193484728682078e+06, + "real_time": 4.9726498345073927e+06, + "cpu_time": 4.9447566187050408e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1462,8 +1462,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7569076348617778e+04, - "cpu_time": 1.9381913221220399e+04, + "real_time": 2.3602518690500099e+04, + "cpu_time": 2.5476126599603274e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1481,8 +1481,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.1598961036917771e-03, - "cpu_time": 3.5124783298588202e-03, + "real_time": 4.7422969260798526e-03, + "cpu_time": 5.1498160124842226e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1498,9 +1498,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 591, - "real_time": 1.1739491065934557e+06, - "cpu_time": 1.1688467969543147e+06, + "iterations": 614, + "real_time": 1.1341678273370368e+06, + "cpu_time": 1.1295298664495109e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1516,9 +1516,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 591, - "real_time": 1.1882044940719274e+06, - "cpu_time": 1.1820314179356971e+06, + "iterations": 614, + "real_time": 1.1368175733042730e+06, + "cpu_time": 1.1325081123778548e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1534,9 +1534,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 591, - "real_time": 1.1832893197897463e+06, - "cpu_time": 1.1776770423011817e+06, + "iterations": 614, + "real_time": 1.1524035472021641e+06, + "cpu_time": 1.1470397475570044e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1554,8 +1554,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1818143068183761e+06, - "cpu_time": 1.1761850857303976e+06, + "real_time": 1.1411296492811579e+06, + "cpu_time": 1.1363592421281233e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1573,8 +1573,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1832893197897461e+06, - "cpu_time": 1.1776770423011815e+06, + "real_time": 1.1368175733042730e+06, + "cpu_time": 1.1325081123778548e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1592,8 +1592,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2412544141236176e+03, - "cpu_time": 6.7177383405996143e+03, + "real_time": 9.8529624566817838e+03, + "cpu_time": 9.3686917104236363e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1611,8 +1611,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.1272353637503137e-03, - "cpu_time": 5.7114636311069826e-03, + "real_time": 8.6343935265274646e-03, + "cpu_time": 8.2444805859794527e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1628,9 +1628,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1243, - "real_time": 5.4525752212207508e+05, - "cpu_time": 5.4324899919549376e+05, + "iterations": 1273, + "real_time": 5.3098601337013068e+05, + "cpu_time": 5.2881867242733785e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1646,9 +1646,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1243, - "real_time": 5.3932975784679526e+05, - "cpu_time": 5.3740527272727445e+05, + "iterations": 1273, + "real_time": 5.2959087509800913e+05, + "cpu_time": 5.2767492301649693e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1664,9 +1664,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1243, - "real_time": 5.3810161142816057e+05, - "cpu_time": 5.3618039662107837e+05, + "iterations": 1273, + "real_time": 5.2640415868101513e+05, + "cpu_time": 5.2457712018853263e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1684,8 +1684,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.4089629713234352e+05, - "cpu_time": 5.3894488951461541e+05, + "real_time": 5.2899368238305172e+05, + "cpu_time": 5.2702357187745592e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1703,8 +1703,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3932975784679526e+05, - "cpu_time": 5.3740527272727445e+05, + "real_time": 5.2959087509800924e+05, + "cpu_time": 5.2767492301649693e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1722,8 +1722,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8265256388432558e+03, - "cpu_time": 3.7774462905115320e+03, + "real_time": 2.3485798798903938e+03, + "cpu_time": 2.1945124921908568e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1741,8 +1741,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.0744164068607084e-03, - "cpu_time": 7.0089657848199944e-03, + "real_time": 4.4397125298554219e-03, + "cpu_time": 4.1639740787554900e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1758,9 +1758,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1755, - "real_time": 3.9649348603355885e+05, - "cpu_time": 3.9474518518518622e+05, + "iterations": 1797, + "real_time": 4.1462430996332126e+05, + "cpu_time": 4.1225401780745643e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1777,9 +1777,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1755, - "real_time": 4.1440835555430310e+05, - "cpu_time": 4.1210786438746395e+05, + "iterations": 1797, + "real_time": 3.9303921367861662e+05, + "cpu_time": 3.9140321090706665e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1796,9 +1796,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1755, - "real_time": 4.1376162393176474e+05, - "cpu_time": 4.1141321481481387e+05, + "iterations": 1797, + "real_time": 3.8777616916524433e+05, + "cpu_time": 3.8620169838620006e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1817,8 +1817,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0822115517320886e+05, - "cpu_time": 4.0608875479582133e+05, + "real_time": 3.9847989760239405e+05, + "cpu_time": 3.9661964236690773e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1837,8 +1837,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1376162393176468e+05, - "cpu_time": 4.1141321481481381e+05, + "real_time": 3.9303921367861662e+05, + "cpu_time": 3.9140321090706671e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1857,8 +1857,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0161605829529124e+04, - "cpu_time": 9.8299574333087949e+03, + "real_time": 1.4226961982350842e+04, + "cpu_time": 1.3787284166512027e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1877,8 +1877,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.4892403788376764e-02, - "cpu_time": 2.4206426100745464e-02, + "real_time": 3.5703085821776136e-02, + "cpu_time": 3.4761980229303893e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1895,9 +1895,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 670, - "real_time": 1.0020513701297815e+06, - "cpu_time": 9.9699104179105069e+05, + "iterations": 714, + "real_time": 1.0080792366739634e+06, + "cpu_time": 1.0028058949579867e+06, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1914,9 +1914,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 670, - "real_time": 1.0013749850557686e+06, - "cpu_time": 9.9613182835820399e+05, + "iterations": 714, + "real_time": 9.8433718346163677e+05, + "cpu_time": 9.7921947338935942e+05, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1933,9 +1933,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 670, - "real_time": 1.0152360925463084e+06, - "cpu_time": 9.9908078805969737e+05, + "iterations": 714, + "real_time": 9.7170133615357417e+05, + "cpu_time": 9.6725160784313711e+05, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1954,8 +1954,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0062208159106196e+06, - "cpu_time": 9.9740121940298390e+05, + "real_time": 9.8803925209639140e+05, + "cpu_time": 9.8309232539682754e+05, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1974,8 +1974,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0020513701297817e+06, - "cpu_time": 9.9699104179105081e+05, + "real_time": 9.8433718346163677e+05, + "cpu_time": 9.7921947338935931e+05, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1994,8 +1994,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.8147798309316095e+03, - "cpu_time": 1.5166657791653067e+03, + "real_time": 1.8469350169949928e+04, + "cpu_time": 1.8090773064334313e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2014,8 +2014,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.7664660752017082e-03, - "cpu_time": 1.5206175304990498e-03, + "real_time": 1.8692931612547002e-02, + "cpu_time": 1.8401906511712342e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2032,9 +2032,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1138, - "real_time": 6.0034724956111144e+05, - "cpu_time": 5.9616399472759035e+05, + "iterations": 1215, + "real_time": 5.7465879341449449e+05, + "cpu_time": 5.7113181810699799e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2051,9 +2051,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1138, - "real_time": 5.9903433918482368e+05, - "cpu_time": 5.9482182952548214e+05, + "iterations": 1215, + "real_time": 5.7763943047197571e+05, + "cpu_time": 5.7397227325102536e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2070,9 +2070,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1138, - "real_time": 6.0123818541769765e+05, - "cpu_time": 5.9702114499121788e+05, + "iterations": 1215, + "real_time": 5.7583975966410409e+05, + "cpu_time": 5.7197935637860117e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2091,8 +2091,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0020659138787759e+05, - "cpu_time": 5.9600232308143016e+05, + "real_time": 5.7604599451685813e+05, + "cpu_time": 5.7236114924554143e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2111,8 +2111,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0034724956111144e+05, - "cpu_time": 5.9616399472759035e+05, + "real_time": 5.7583975966410420e+05, + "cpu_time": 5.7197935637860128e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2131,8 +2131,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1086356912112835e+03, - "cpu_time": 1.1085352589740796e+03, + "real_time": 1.5009826541207833e+03, + "cpu_time": 1.4582080445990132e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2151,8 +2151,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8470901638180089e-03, - "cpu_time": 1.8599512385166050e-03, + "real_time": 2.6056645969384602e-03, + "cpu_time": 2.5477061930586167e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2169,9 +2169,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 557, - "real_time": 1.2573716068189740e+06, - "cpu_time": 1.2485316696588891e+06, + "iterations": 594, + "real_time": 1.1861069814454112e+06, + "cpu_time": 1.1779857457912401e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2187,9 +2187,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 557, - "real_time": 1.3702064416604533e+06, - "cpu_time": 1.3608439982046764e+06, + "iterations": 594, + "real_time": 1.3275793703588082e+06, + "cpu_time": 1.3171716414141336e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2205,9 +2205,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 557, - "real_time": 1.2263790502620919e+06, - "cpu_time": 1.2187431364452399e+06, + "iterations": 594, + "real_time": 1.1991726195162181e+06, + "cpu_time": 1.1916339781144718e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2225,8 +2225,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2846523662471732e+06, - "cpu_time": 1.2760396014362683e+06, + "real_time": 1.2376196571068126e+06, + "cpu_time": 1.2289304551066153e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2244,8 +2244,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2573716068189738e+06, - "cpu_time": 1.2485316696588891e+06, + "real_time": 1.1991726195162183e+06, + "cpu_time": 1.1916339781144720e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2263,8 +2263,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.5695174914580450e+04, - "cpu_time": 7.4937830641108099e+04, + "real_time": 7.8180817537522613e+04, + "cpu_time": 7.6723195854357313e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2282,8 +2282,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.8922691385924986e-02, - "cpu_time": 5.8726884774391433e-02, + "real_time": 6.3170310109881542e-02, + "cpu_time": 6.2430868675722763e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2299,9 +2299,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 328, - "real_time": 2.2282450335318926e+06, - "cpu_time": 2.2167228201219477e+06, + "iterations": 329, + "real_time": 2.1039468236621413e+06, + "cpu_time": 2.0949619665653321e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2317,9 +2317,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 328, - "real_time": 2.1411279542407123e+06, - "cpu_time": 2.1311571219512243e+06, + "iterations": 329, + "real_time": 2.1259203008453907e+06, + "cpu_time": 2.1148626838905723e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2335,9 +2335,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 328, - "real_time": 2.1591267225342495e+06, - "cpu_time": 2.1500275243902397e+06, + "iterations": 329, + "real_time": 2.1401849088094858e+06, + "cpu_time": 2.1277671914893552e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2355,8 +2355,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1761665701022847e+06, - "cpu_time": 2.1659691554878037e+06, + "real_time": 2.1233506777723390e+06, + "cpu_time": 2.1125306139817527e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2374,8 +2374,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1591267225342491e+06, - "cpu_time": 2.1500275243902397e+06, + "real_time": 2.1259203008453907e+06, + "cpu_time": 2.1148626838905723e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2393,8 +2393,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5990365076965943e+04, - "cpu_time": 4.4955243046824704e+04, + "real_time": 1.8255189011346167e+04, + "cpu_time": 1.6526482025068985e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2412,8 +2412,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.1133660312962297e-02, - "cpu_time": 2.0755255416691383e-02, + "real_time": 8.5973500291050137e-03, + "cpu_time": 7.8230733868132878e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2430,8 +2430,8 @@ "repetition_index": 0, "threads": 1, "iterations": 35, - "real_time": 1.9850266514445789e+07, - "cpu_time": 1.9707621942857094e+07, + "real_time": 1.9513198257690027e+07, + "cpu_time": 1.9372675828571420e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2448,8 +2448,8 @@ "repetition_index": 1, "threads": 1, "iterations": 35, - "real_time": 2.0366640285854891e+07, - "cpu_time": 2.0188078000000026e+07, + "real_time": 1.9995323685829394e+07, + "cpu_time": 1.9821715114285607e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2466,8 +2466,8 @@ "repetition_index": 2, "threads": 1, "iterations": 35, - "real_time": 1.9959602571491685e+07, - "cpu_time": 1.9781221257142685e+07, + "real_time": 1.9109750028500065e+07, + "cpu_time": 1.8978055514285836e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2485,8 +2485,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0058836457264122e+07, - "cpu_time": 1.9892307066666603e+07, + "real_time": 1.9539423990673166e+07, + "cpu_time": 1.9390815485714290e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2504,8 +2504,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9959602571491685e+07, - "cpu_time": 1.9781221257142689e+07, + "real_time": 1.9513198257690031e+07, + "cpu_time": 1.9372675828571420e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2523,8 +2523,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7211393020949228e+05, - "cpu_time": 2.5877509254077252e+05, + "real_time": 4.4336894054709881e+05, + "cpu_time": 4.2212221635314700e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2542,8 +2542,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3565788364107668e-02, - "cpu_time": 1.3008802431689790e-02, + "real_time": 2.2690993386434214e-02, + "cpu_time": 2.1769183284949270e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2559,9 +2559,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 168, - "real_time": 4.2066907203012044e+06, - "cpu_time": 4.1801236726190434e+06, + "iterations": 176, + "real_time": 4.0440506760536330e+06, + "cpu_time": 4.0273345568181914e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2577,9 +2577,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 168, - "real_time": 4.1829359880856439e+06, - "cpu_time": 4.1602477023809501e+06, + "iterations": 176, + "real_time": 3.9938337897844822e+06, + "cpu_time": 3.9734451420454709e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2595,9 +2595,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 168, - "real_time": 4.1644775059726918e+06, - "cpu_time": 4.1449916666666875e+06, + "iterations": 176, + "real_time": 3.9726324203828964e+06, + "cpu_time": 3.9547886420454388e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2615,8 +2615,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1847014047865137e+06, - "cpu_time": 4.1617876805555597e+06, + "real_time": 4.0035056287403367e+06, + "cpu_time": 3.9851894469696996e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2634,8 +2634,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1829359880856429e+06, - "cpu_time": 4.1602477023809496e+06, + "real_time": 3.9938337897844817e+06, + "cpu_time": 3.9734451420454704e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2653,8 +2653,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1161908895030607e+04, - "cpu_time": 1.7616557840267622e+04, + "real_time": 3.6678333691095635e+04, + "cpu_time": 3.7671925371151658e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2672,8 +2672,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.0569698642835914e-03, - "cpu_time": 4.2329304598056703e-03, + "real_time": 9.1615541708720185e-03, + "cpu_time": 9.4529823167621378e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2689,9 +2689,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 308, - "real_time": 1.9028669123688270e+06, - "cpu_time": 1.8937144318181819e+06, + "iterations": 381, + "real_time": 1.8305065721582640e+06, + "cpu_time": 1.8222413070866195e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2707,9 +2707,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 308, - "real_time": 1.8766771201342917e+06, - "cpu_time": 1.8678562272727161e+06, + "iterations": 381, + "real_time": 1.9812883045023254e+06, + "cpu_time": 1.9684665485564233e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2725,9 +2725,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 308, - "real_time": 1.8650648214263909e+06, - "cpu_time": 1.8572536006493522e+06, + "iterations": 381, + "real_time": 1.8640592624922220e+06, + "cpu_time": 1.8551294908136604e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2745,8 +2745,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8815362846431697e+06, - "cpu_time": 1.8729414199134167e+06, + "real_time": 1.8919513797176040e+06, + "cpu_time": 1.8819457821522346e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2764,8 +2764,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8766771201342919e+06, - "cpu_time": 1.8678562272727161e+06, + "real_time": 1.8640592624922220e+06, + "cpu_time": 1.8551294908136604e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2783,8 +2783,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9363835614336109e+04, - "cpu_time": 1.8754797800148412e+04, + "real_time": 7.9166030307539462e+04, + "cpu_time": 7.6712387667131974e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2802,8 +2802,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0291502626008845e-02, - "cpu_time": 1.0013552800287484e-02, + "real_time": 4.1843586022467412e-02, + "cpu_time": 4.0762272959533406e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2819,9 +2819,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 527, - "real_time": 1.3079517096832423e+06, - "cpu_time": 1.2998574535104367e+06, + "iterations": 530, + "real_time": 1.3141324924841030e+06, + "cpu_time": 1.3071131056603747e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2838,9 +2838,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 527, - "real_time": 1.3061806280839662e+06, - "cpu_time": 1.2975189335863392e+06, + "iterations": 530, + "real_time": 1.2856152339153131e+06, + "cpu_time": 1.2784913339622640e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2857,9 +2857,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 527, - "real_time": 1.3055427229554134e+06, - "cpu_time": 1.2979189677419360e+06, + "iterations": 530, + "real_time": 1.2904943339307003e+06, + "cpu_time": 1.2835080886792422e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2878,8 +2878,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3065583535742073e+06, - "cpu_time": 1.2984317849462372e+06, + "real_time": 1.2967473534433718e+06, + "cpu_time": 1.2897041761006268e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2898,8 +2898,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3061806280839662e+06, - "cpu_time": 1.2979189677419357e+06, + "real_time": 1.2904943339307001e+06, + "cpu_time": 1.2835080886792422e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2918,8 +2918,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2481232605022940e+03, - "cpu_time": 1.2507617569397241e+03, + "real_time": 1.5252334209538914e+04, + "cpu_time": 1.5283817529826309e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2938,8 +2938,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.5527555817766674e-04, - "cpu_time": 9.6328645943576693e-04, + "real_time": 1.1761993706050754e-02, + "cpu_time": 1.1850638164200081e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2956,9 +2956,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 247, - "real_time": 2.8583840121206855e+06, - "cpu_time": 2.8228807085020225e+06, + "iterations": 239, + "real_time": 2.9282864519525478e+06, + "cpu_time": 2.9145974184100539e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -2975,9 +2975,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 247, - "real_time": 2.8831381578755337e+06, - "cpu_time": 2.8703373522267449e+06, + "iterations": 239, + "real_time": 3.1698297280097329e+06, + "cpu_time": 3.1484756150627565e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -2994,9 +2994,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 247, - "real_time": 2.9084713603341612e+06, - "cpu_time": 2.8954211578947580e+06, + "iterations": 239, + "real_time": 2.9481217740288698e+06, + "cpu_time": 2.9332148535564747e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -3015,8 +3015,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8833311767767933e+06, - "cpu_time": 2.8628797395411748e+06, + "real_time": 3.0154126513303830e+06, + "cpu_time": 2.9987626290097614e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -3035,8 +3035,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8831381578755337e+06, - "cpu_time": 2.8703373522267449e+06, + "real_time": 2.9481217740288698e+06, + "cpu_time": 2.9332148535564747e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -3055,8 +3055,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5044231970404289e+04, - "cpu_time": 3.6840754467683677e+04, + "real_time": 1.3409636526809214e+05, + "cpu_time": 1.2998898363914917e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3075,8 +3075,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.6858672954803033e-03, - "cpu_time": 1.2868425438502015e-02, + "real_time": 4.4470319910918189e-02, + "cpu_time": 4.3347540209300782e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3093,9 +3093,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 361, - "real_time": 1.9450020775459500e+06, - "cpu_time": 1.9261377700831038e+06, + "iterations": 347, + "real_time": 1.9741251786079751e+06, + "cpu_time": 1.9564031412103847e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3112,9 +3112,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 361, - "real_time": 1.9610651495925812e+06, - "cpu_time": 1.9417327396121894e+06, + "iterations": 347, + "real_time": 1.9759533948483756e+06, + "cpu_time": 1.9561049567723265e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3131,9 +3131,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 361, - "real_time": 1.9970301218563691e+06, - "cpu_time": 1.9774793185595647e+06, + "iterations": 347, + "real_time": 1.9577290287935135e+06, + "cpu_time": 1.9377983141210261e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3152,8 +3152,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9676991163316339e+06, - "cpu_time": 1.9484499427516193e+06, + "real_time": 1.9692692007499549e+06, + "cpu_time": 1.9501021373679123e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3172,8 +3172,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9610651495925812e+06, - "cpu_time": 1.9417327396121898e+06, + "real_time": 1.9741251786079751e+06, + "cpu_time": 1.9561049567723265e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3192,8 +3192,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6640879953787520e+04, - "cpu_time": 2.6321650090824391e+04, + "real_time": 1.0035799432207679e+04, + "cpu_time": 1.0656466504360225e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3212,8 +3212,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3539102463721135e-02, - "cpu_time": 1.3509020433777585e-02, + "real_time": 5.0962049416025780e-03, + "cpu_time": 5.4645683937065200e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3231,8 +3231,8 @@ "repetition_index": 0, "threads": 1, "iterations": 184, - "real_time": 3.7433058206933425e+06, - "cpu_time": 3.7101630706521659e+06, + "real_time": 3.7718354294117056e+06, + "cpu_time": 3.7381105217391322e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3249,8 +3249,8 @@ "repetition_index": 1, "threads": 1, "iterations": 184, - "real_time": 3.6817014185109418e+06, - "cpu_time": 3.6506450652173855e+06, + "real_time": 3.7187801467750785e+06, + "cpu_time": 3.6843537336956598e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3267,8 +3267,8 @@ "repetition_index": 2, "threads": 1, "iterations": 184, - "real_time": 3.9874370923707434e+06, - "cpu_time": 3.9465742554347846e+06, + "real_time": 3.9800230490231034e+06, + "cpu_time": 3.9423033750000065e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3286,8 +3286,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8041481105250097e+06, - "cpu_time": 3.7691274637681115e+06, + "real_time": 3.8235462084032954e+06, + "cpu_time": 3.7882558768115994e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3305,8 +3305,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7433058206933425e+06, - "cpu_time": 3.7101630706521659e+06, + "real_time": 3.7718354294117051e+06, + "cpu_time": 3.7381105217391322e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3324,8 +3324,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6169388900511208e+05, - "cpu_time": 1.5652833975779495e+05, + "real_time": 1.3808499915515727e+05, + "cpu_time": 1.3608975655343197e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3343,8 +3343,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.2504625032277400e-02, - "cpu_time": 4.1529065085347053e-02, + "real_time": 3.6114379591301253e-02, + "cpu_time": 3.5924119430911429e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3360,9 +3360,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 137, - "real_time": 4.7996118101784205e+06, - "cpu_time": 4.7718060802919436e+06, + "iterations": 134, + "real_time": 4.8460080522918776e+06, + "cpu_time": 4.8139725223880364e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3378,9 +3378,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 137, - "real_time": 4.9002593284197506e+06, - "cpu_time": 4.8729794379562233e+06, + "iterations": 134, + "real_time": 5.2929276493186848e+06, + "cpu_time": 5.2588288507462246e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3396,9 +3396,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 137, - "real_time": 5.0648408612647653e+06, - "cpu_time": 5.0370861824817592e+06, + "iterations": 134, + "real_time": 4.9774928134431671e+06, + "cpu_time": 4.9457495820895331e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3416,8 +3416,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9215706666209791e+06, - "cpu_time": 4.8939572335766423e+06, + "real_time": 5.0388095050179092e+06, + "cpu_time": 5.0061836517412644e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3435,8 +3435,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9002593284197506e+06, - "cpu_time": 4.8729794379562233e+06, + "real_time": 4.9774928134431671e+06, + "cpu_time": 4.9457495820895331e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3454,8 +3454,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3389265191559258e+05, - "cpu_time": 1.3387843025028062e+05, + "real_time": 2.2968257237089062e+05, + "cpu_time": 2.2850272602550886e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3473,8 +3473,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.7205268599245727e-02, - "cpu_time": 2.7355864356918065e-02, + "real_time": 4.5582706022555673e-02, + "cpu_time": 4.5644095766648601e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3491,8 +3491,8 @@ "repetition_index": 0, "threads": 1, "iterations": 17, - "real_time": 4.1664975176579051e+07, - "cpu_time": 4.1344687352941178e+07, + "real_time": 4.1717090058441766e+07, + "cpu_time": 4.1418955117647059e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3509,8 +3509,8 @@ "repetition_index": 1, "threads": 1, "iterations": 17, - "real_time": 4.1714916470535927e+07, - "cpu_time": 4.1392994705882512e+07, + "real_time": 4.0860569587333456e+07, + "cpu_time": 4.0567387647058696e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3527,8 +3527,8 @@ "repetition_index": 2, "threads": 1, "iterations": 17, - "real_time": 4.2616300117943488e+07, - "cpu_time": 4.2283395000000007e+07, + "real_time": 4.0203538177165151e+07, + "cpu_time": 3.9915717411764465e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3546,8 +3546,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1998730588352814e+07, - "cpu_time": 4.1673692352941237e+07, + "real_time": 4.0927065940980129e+07, + "cpu_time": 4.0634020058823414e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3565,8 +3565,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1714916470535927e+07, - "cpu_time": 4.1392994705882512e+07, + "real_time": 4.0860569587333463e+07, + "cpu_time": 4.0567387647058703e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3584,8 +3584,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3541350946753146e+05, - "cpu_time": 5.2857013580003416e+05, + "real_time": 7.5896386482843384e+05, + "cpu_time": 7.5383075608530396e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3603,8 +3603,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2748326008120195e-02, - "cpu_time": 1.2683544604675011e-02, + "real_time": 1.8544301854496879e-02, + "cpu_time": 1.8551714917550092e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3620,9 +3620,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 67, - "real_time": 1.0293265656740127e+07, - "cpu_time": 1.0238812626865799e+07, + "iterations": 65, + "real_time": 9.8258075384924617e+06, + "cpu_time": 9.7672615384615604e+06, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3638,9 +3638,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 67, - "real_time": 1.0346101776135515e+07, - "cpu_time": 1.0287454641790923e+07, + "iterations": 65, + "real_time": 9.9867926923952140e+06, + "cpu_time": 9.9288823076921497e+06, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3656,9 +3656,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 67, - "real_time": 1.0176420716547977e+07, - "cpu_time": 1.0120201791044865e+07, + "iterations": 65, + "real_time": 1.0194654030671630e+07, + "cpu_time": 1.0120535738461345e+07, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3676,8 +3676,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0271929383141207e+07, - "cpu_time": 1.0215489686567195e+07, + "real_time": 1.0002418087186435e+07, + "cpu_time": 9.9388931948716845e+06, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3695,8 +3695,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0293265656740125e+07, - "cpu_time": 1.0238812626865797e+07, + "real_time": 9.9867926923952140e+06, + "cpu_time": 9.9288823076921497e+06, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3714,8 +3714,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.6829389748095171e+04, - "cpu_time": 8.6031091349638242e+04, + "real_time": 1.8491903206538255e+05, + "cpu_time": 1.7684973421802523e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3733,8 +3733,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.4530750270347295e-03, - "cpu_time": 8.4216316583202461e-03, + "real_time": 1.8487432784105719e-02, + "cpu_time": 1.7793705068616387e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3750,9 +3750,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 160, - "real_time": 4.4489830124803120e+06, - "cpu_time": 4.4244613249999173e+06, + "iterations": 138, + "real_time": 4.2673892827039799e+06, + "cpu_time": 4.2422957028985042e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3768,9 +3768,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 160, - "real_time": 4.4432558937842259e+06, - "cpu_time": 4.4152428687499249e+06, + "iterations": 138, + "real_time": 4.7523767897855835e+06, + "cpu_time": 4.7183559855072815e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3786,9 +3786,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 160, - "real_time": 4.4222335312042553e+06, - "cpu_time": 4.3991844124999344e+06, + "iterations": 138, + "real_time": 4.5172276014995268e+06, + "cpu_time": 4.4889080652173636e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3806,8 +3806,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4381574791562641e+06, - "cpu_time": 4.4129628687499259e+06, + "real_time": 4.5123312246630294e+06, + "cpu_time": 4.4831865845410498e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3825,8 +3825,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4432558937842259e+06, - "cpu_time": 4.4152428687499240e+06, + "real_time": 4.5172276014995258e+06, + "cpu_time": 4.4889080652173636e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3844,8 +3844,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4084710182525663e+04, - "cpu_time": 1.2791769869064803e+04, + "real_time": 2.4253082564059203e+05, + "cpu_time": 2.3808170798118532e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3863,8 +3863,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.1735489893439522e-03, - "cpu_time": 2.8986806029229900e-03, + "real_time": 5.3748453640768287e-02, + "cpu_time": 5.3105464939188586e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3880,9 +3880,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 227, - "real_time": 3.0228941145430971e+06, - "cpu_time": 3.0029500000000154e+06, + "iterations": 223, + "real_time": 3.2865667578371684e+06, + "cpu_time": 3.2587939820627454e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3899,9 +3899,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 227, - "real_time": 3.0347369250991186e+06, - "cpu_time": 3.0130578149779700e+06, + "iterations": 223, + "real_time": 3.1994071478732014e+06, + "cpu_time": 3.1710662376681408e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3918,9 +3918,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 227, - "real_time": 3.0720233347980785e+06, - "cpu_time": 3.0502135242290143e+06, + "iterations": 223, + "real_time": 3.1012533855887605e+06, + "cpu_time": 3.0766526950672604e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3939,8 +3939,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0432181248134314e+06, - "cpu_time": 3.0220737797356672e+06, + "real_time": 3.1957424304330428e+06, + "cpu_time": 3.1688376382660479e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3959,8 +3959,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0347369250991191e+06, - "cpu_time": 3.0130578149779700e+06, + "real_time": 3.1994071478732019e+06, + "cpu_time": 3.1710662376681413e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3979,8 +3979,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5639191332011844e+04, - "cpu_time": 2.4888268240721183e+04, + "real_time": 9.2711024689398051e+04, + "cpu_time": 9.1091092311855245e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3999,8 +3999,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.4250258379305904e-03, - "cpu_time": 8.2354932588370160e-03, + "real_time": 2.9010793800686593e-02, + "cpu_time": 2.8745900771899202e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4017,9 +4017,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 123, - "real_time": 5.8875153657773938e+06, - "cpu_time": 5.8641030487805428e+06, + "iterations": 117, + "real_time": 5.8786601537607731e+06, + "cpu_time": 5.8516572991452804e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4036,9 +4036,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 123, - "real_time": 5.7766320813509701e+06, - "cpu_time": 5.7528516178861288e+06, + "iterations": 117, + "real_time": 6.1285927693725713e+06, + "cpu_time": 6.1021305470085545e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4055,9 +4055,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 123, - "real_time": 5.7718984065037901e+06, - "cpu_time": 5.7490750162602160e+06, + "iterations": 117, + "real_time": 6.0619309914704319e+06, + "cpu_time": 6.0326073931623586e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4076,8 +4076,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8120152845440516e+06, - "cpu_time": 5.7886765609756289e+06, + "real_time": 6.0230613048679242e+06, + "cpu_time": 5.9954650797720654e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4096,8 +4096,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.7766320813509701e+06, - "cpu_time": 5.7528516178861288e+06, + "real_time": 6.0619309914704310e+06, + "cpu_time": 6.0326073931623586e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4116,8 +4116,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5427812274815660e+04, - "cpu_time": 6.5348542270619721e+04, + "real_time": 1.2942069961590238e+05, + "cpu_time": 1.2930149093022522e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4136,8 +4136,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1257336581479488e-02, - "cpu_time": 1.1289029812300622e-02, + "real_time": 2.1487528196218540e-02, + "cpu_time": 2.1566548918193516e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4154,9 +4154,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 115, - "real_time": 5.4640483826085040e+06, - "cpu_time": 5.3500704347826568e+06, + "iterations": 124, + "real_time": 5.2439974111151854e+06, + "cpu_time": 5.1778422499999749e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4173,9 +4173,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 115, - "real_time": 6.0040203565934105e+06, - "cpu_time": 5.9229354782608505e+06, + "iterations": 124, + "real_time": 5.6031942902688654e+06, + "cpu_time": 5.5374248387096487e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4192,9 +4192,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 115, - "real_time": 5.5857568260525223e+06, - "cpu_time": 5.5122696086956663e+06, + "iterations": 124, + "real_time": 4.8732642742012804e+06, + "cpu_time": 4.8237611532258028e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4213,8 +4213,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.6846085217514783e+06, - "cpu_time": 5.5950918405797230e+06, + "real_time": 5.2401519918617764e+06, + "cpu_time": 5.1796760806451412e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4233,8 +4233,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5857568260525232e+06, - "cpu_time": 5.5122696086956663e+06, + "real_time": 5.2439974111151854e+06, + "cpu_time": 5.1778422499999749e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4253,8 +4253,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8323343107622577e+05, - "cpu_time": 2.9527653323709912e+05, + "real_time": 3.6498020155350870e+05, + "cpu_time": 3.5683537688369263e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4273,8 +4273,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.9824615009541426e-02, - "cpu_time": 5.2774206688715353e-02, + "real_time": 6.9650689926616924e-02, + "cpu_time": 6.8891446362269029e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4291,9 +4291,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 94, - "real_time": 7.1063107128832191e+06, - "cpu_time": 7.0468645957446899e+06, + "iterations": 88, + "real_time": 6.6996750227355566e+06, + "cpu_time": 6.6278876704545757e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4309,9 +4309,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 94, - "real_time": 7.2893138404903403e+06, - "cpu_time": 7.2201526702126609e+06, + "iterations": 88, + "real_time": 6.7314150001038797e+06, + "cpu_time": 6.6699185227272874e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4327,9 +4327,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 94, - "real_time": 7.2044139256406119e+06, - "cpu_time": 7.1374457978723962e+06, + "iterations": 88, + "real_time": 6.6051335339910686e+06, + "cpu_time": 6.5402310113637056e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4347,8 +4347,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2000128263380555e+06, - "cpu_time": 7.1348210212765811e+06, + "real_time": 6.6787411856101677e+06, + "cpu_time": 6.6126790681818547e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4366,8 +4366,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2044139256406119e+06, - "cpu_time": 7.1374457978723943e+06, + "real_time": 6.6996750227355557e+06, + "cpu_time": 6.6278876704545738e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4385,8 +4385,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.1580911956680007e+04, - "cpu_time": 8.6673850020401485e+04, + "real_time": 6.5691866494259535e+04, + "cpu_time": 6.6167883737093784e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4404,8 +4404,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2719548446034961e-02, - "cpu_time": 1.2148006202528901e-02, + "real_time": 9.8359652917524975e-03, + "cpu_time": 1.0006214282418900e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4421,9 +4421,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 76, - "real_time": 9.2742881053326484e+06, - "cpu_time": 9.2094332105262224e+06, + "iterations": 71, + "real_time": 9.1414089158052765e+06, + "cpu_time": 9.0778479859156348e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4439,9 +4439,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 76, - "real_time": 9.3706988420882765e+06, - "cpu_time": 9.3114449342105631e+06, + "iterations": 71, + "real_time": 9.5297777180848513e+06, + "cpu_time": 9.4682228309860453e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4457,9 +4457,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 76, - "real_time": 8.9046132238045651e+06, - "cpu_time": 8.8488021973684058e+06, + "iterations": 71, + "real_time": 9.1745236053944789e+06, + "cpu_time": 9.1104914084506631e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4477,8 +4477,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.1832000570751615e+06, - "cpu_time": 9.1232267807017285e+06, + "real_time": 9.2819034130948689e+06, + "cpu_time": 9.2188540751174483e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4496,8 +4496,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.2742881053326484e+06, - "cpu_time": 9.2094332105262224e+06, + "real_time": 9.1745236053944789e+06, + "cpu_time": 9.1104914084506612e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4515,8 +4515,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4603195990409984e+05, - "cpu_time": 2.4307043607875367e+05, + "real_time": 2.1530303985856450e+05, + "cpu_time": 2.1657557701938992e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4534,8 +4534,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6791527830709237e-02, - "cpu_time": 2.6643033426826369e-02, + "real_time": 2.3196000892965109e-02, + "cpu_time": 2.3492678727169328e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4551,9 +4551,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 10, - "real_time": 7.6053967699408531e+07, - "cpu_time": 7.5558307400000051e+07, + "iterations": 9, + "real_time": 7.4916742441322029e+07, + "cpu_time": 7.4404627555556610e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4569,9 +4569,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 10, - "real_time": 7.7498580899555236e+07, - "cpu_time": 7.6962455599999651e+07, + "iterations": 9, + "real_time": 7.4807555223944485e+07, + "cpu_time": 7.4308514444445625e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4587,9 +4587,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 10, - "real_time": 7.4911065399646759e+07, - "cpu_time": 7.4407432400001019e+07, + "iterations": 9, + "real_time": 7.4933875555871055e+07, + "cpu_time": 7.4452631444444239e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4607,8 +4607,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.6154537999536827e+07, - "cpu_time": 7.5642731800000235e+07, + "real_time": 7.4886057740379199e+07, + "cpu_time": 7.4388591148148820e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4626,8 +4626,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.6053967699408531e+07, - "cpu_time": 7.5558307400000051e+07, + "real_time": 7.4916742441322029e+07, + "cpu_time": 7.4404627555556625e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4645,8 +4645,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2966861241321696e+06, - "cpu_time": 1.2796020856576839e+06, + "real_time": 6.8522767884455476e+04, + "cpu_time": 7.3384618244718906e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4664,8 +4664,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7027036841061997e-02, - "cpu_time": 1.6916391769680638e-02, + "real_time": 9.1502704177612792e-04, + "cpu_time": 9.8650367095364866e-04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4681,9 +4681,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 32, - "real_time": 2.1857907187495586e+07, - "cpu_time": 2.1704987562500387e+07, + "iterations": 33, + "real_time": 1.9720008696436487e+07, + "cpu_time": 1.9617149636363424e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4699,9 +4699,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 32, - "real_time": 2.1592684562619980e+07, - "cpu_time": 2.1449074531250112e+07, + "iterations": 33, + "real_time": 1.9966627757777601e+07, + "cpu_time": 1.9853228606060833e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4717,9 +4717,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 32, - "real_time": 2.1444651593355957e+07, - "cpu_time": 2.1285490749999970e+07, + "iterations": 33, + "real_time": 2.0603572455001995e+07, + "cpu_time": 2.0460722303030562e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4737,8 +4737,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1631747781157173e+07, - "cpu_time": 2.1479850947916824e+07, + "real_time": 2.0096736303072028e+07, + "cpu_time": 1.9977033515151609e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4756,8 +4756,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1592684562619980e+07, - "cpu_time": 2.1449074531250112e+07, + "real_time": 1.9966627757777601e+07, + "cpu_time": 1.9853228606060836e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4775,8 +4775,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0937883800385857e+05, - "cpu_time": 2.1143506045965478e+05, + "real_time": 4.5592477891802212e+05, + "cpu_time": 4.3520047406147304e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4794,8 +4794,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.6792381328633451e-03, - "cpu_time": 9.8434137635466396e-03, + "real_time": 2.2686508497816560e-02, + "cpu_time": 2.1785039992619260e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4811,9 +4811,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 63, - "real_time": 1.0718525476044133e+07, - "cpu_time": 1.0652201539682569e+07, + "iterations": 65, + "real_time": 1.0030503184624160e+07, + "cpu_time": 9.9599967538462281e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4829,9 +4829,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 63, - "real_time": 1.1063641571256865e+07, - "cpu_time": 1.0983191777777772e+07, + "iterations": 65, + "real_time": 1.1071145184373913e+07, + "cpu_time": 1.0988163307692388e+07, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4847,9 +4847,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 63, - "real_time": 1.1005948904702174e+07, - "cpu_time": 1.0931545412698517e+07, + "iterations": 65, + "real_time": 1.0051195876887783e+07, + "cpu_time": 9.9845561846153103e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4867,8 +4867,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0929371984001057e+07, - "cpu_time": 1.0855646243386285e+07, + "real_time": 1.0384281415295286e+07, + "cpu_time": 1.0310905415384643e+07, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4886,8 +4886,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1005948904702174e+07, - "cpu_time": 1.0931545412698517e+07, + "real_time": 1.0051195876887785e+07, + "cpu_time": 9.9845561846153121e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4905,8 +4905,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8486291781151327e+05, - "cpu_time": 1.7807062462779786e+05, + "real_time": 5.9493144549011195e+05, + "cpu_time": 5.8665107255486690e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4924,8 +4924,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.6914322074692355e-02, - "cpu_time": 1.6403502899358571e-02, + "real_time": 5.7291537247230365e-02, + "cpu_time": 5.6896174382468828e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4941,9 +4941,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 99, - "real_time": 6.2396045858887108e+06, - "cpu_time": 6.1858851313131116e+06, + "iterations": 92, + "real_time": 6.4340163586640982e+06, + "cpu_time": 6.3822910000000801e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -4960,9 +4960,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 99, - "real_time": 7.1795064443839956e+06, - "cpu_time": 7.1191600808080891e+06, + "iterations": 92, + "real_time": 6.4712804128446253e+06, + "cpu_time": 6.4161304130435195e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -4979,9 +4979,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 99, - "real_time": 6.3195431009969786e+06, - "cpu_time": 6.2718209898990998e+06, + "iterations": 92, + "real_time": 6.3415121305455538e+06, + "cpu_time": 6.2920037608695989e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -5000,8 +5000,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5795513770898944e+06, - "cpu_time": 6.5256220673401011e+06, + "real_time": 6.4156029673514245e+06, + "cpu_time": 6.3634750579710649e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -5020,8 +5020,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.3195431009969776e+06, - "cpu_time": 6.2718209898990998e+06, + "real_time": 6.4340163586640963e+06, + "cpu_time": 6.3822910000000810e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -5040,8 +5040,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2111141191528243e+05, - "cpu_time": 5.1581176122825005e+05, + "real_time": 6.6814979663669103e+04, + "cpu_time": 6.4166862170521876e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5060,8 +5060,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.9201663160470323e-02, - "cpu_time": 7.9044075170982026e-02, + "real_time": 1.0414450520658163e-02, + "cpu_time": 1.0083619655292695e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5078,9 +5078,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 73, - "real_time": 1.0175966849464489e+07, - "cpu_time": 1.0134945232876834e+07, + "iterations": 72, + "real_time": 1.0015789916603051e+07, + "cpu_time": 9.9727666944444422e+06, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5097,9 +5097,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 73, - "real_time": 1.0227220315144921e+07, - "cpu_time": 1.0190865109589046e+07, + "iterations": 72, + "real_time": 1.0123201319301087e+07, + "cpu_time": 1.0083855902777828e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5116,9 +5116,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 73, - "real_time": 1.0207016904095238e+07, - "cpu_time": 1.0169490657534340e+07, + "iterations": 72, + "real_time": 1.0134249097366894e+07, + "cpu_time": 1.0097309069444431e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5137,8 +5137,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0203401356234882e+07, - "cpu_time": 1.0165100333333405e+07, + "real_time": 1.0091080111090343e+07, + "cpu_time": 1.0051310555555565e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5157,8 +5157,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0207016904095238e+07, - "cpu_time": 1.0169490657534340e+07, + "real_time": 1.0123201319301086e+07, + "cpu_time": 1.0083855902777826e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5177,8 +5177,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5817311552813306e+04, - "cpu_time": 2.8217270647881960e+04, + "real_time": 6.5436789266549720e+04, + "cpu_time": 6.8352765211266247e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5197,8 +5197,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.5302652175921126e-03, - "cpu_time": 2.7758969142047583e-03, + "real_time": 6.4846169633152647e-03, + "cpu_time": 6.8003833762241344e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5215,9 +5215,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 62, - "real_time": 1.0941390048350101e+07, - "cpu_time": 1.0826967725806652e+07, + "iterations": 61, + "real_time": 1.0730578606570385e+07, + "cpu_time": 1.0601961098360822e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5234,9 +5234,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 62, - "real_time": 1.1156641854951534e+07, - "cpu_time": 1.1021816161290312e+07, + "iterations": 61, + "real_time": 1.0846012426047876e+07, + "cpu_time": 1.0703855475409841e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5253,9 +5253,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 62, - "real_time": 1.1642135887203978e+07, - "cpu_time": 1.1511697967741903e+07, + "iterations": 61, + "real_time": 1.0805561901909895e+07, + "cpu_time": 1.0678400049180320e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5274,8 +5274,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1246722596835203e+07, - "cpu_time": 1.1120160618279621e+07, + "real_time": 1.0794050978176052e+07, + "cpu_time": 1.0661405540983660e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5294,8 +5294,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1156641854951533e+07, - "cpu_time": 1.1021816161290312e+07, + "real_time": 1.0805561901909893e+07, + "cpu_time": 1.0678400049180320e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5314,8 +5314,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5895276529303263e+05, - "cpu_time": 3.5279966017638613e+05, + "real_time": 5.8571475085485035e+04, + "cpu_time": 5.3030425231166446e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5334,8 +5334,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.1916210451748937e-02, - "cpu_time": 3.1726129890286343e-02, + "real_time": 5.4262737135397782e-03, + "cpu_time": 4.9740557215754945e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5353,8 +5353,8 @@ "repetition_index": 0, "threads": 1, "iterations": 40, - "real_time": 1.7262143825064413e+07, - "cpu_time": 1.7128744149999876e+07, + "real_time": 1.6767849800089607e+07, + "cpu_time": 1.6581281199999863e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5371,8 +5371,8 @@ "repetition_index": 1, "threads": 1, "iterations": 40, - "real_time": 1.7199810100282777e+07, - "cpu_time": 1.7065588749999706e+07, + "real_time": 1.8629027724819027e+07, + "cpu_time": 1.8440807474999942e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5389,8 +5389,8 @@ "repetition_index": 2, "threads": 1, "iterations": 40, - "real_time": 1.7122868974911399e+07, - "cpu_time": 1.6985729574999906e+07, + "real_time": 1.5824122725462075e+07, + "cpu_time": 1.5700634574999839e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5408,8 +5408,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7194940966752861e+07, - "cpu_time": 1.7060020824999828e+07, + "real_time": 1.7073666750123564e+07, + "cpu_time": 1.6907574416666549e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5427,8 +5427,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7199810100282777e+07, - "cpu_time": 1.7065588749999706e+07, + "real_time": 1.6767849800089607e+07, + "cpu_time": 1.6581281199999863e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5446,8 +5446,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9764979160923554e+04, - "cpu_time": 7.1669683320804965e+04, + "real_time": 1.4272407011609992e+06, + "cpu_time": 1.3989236319062321e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5465,8 +5465,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.0572968116504180e-03, - "cpu_time": 4.2010314088116417e-03, + "real_time": 8.3593098193196852e-02, + "cpu_time": 8.2739463238869507e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5482,9 +5482,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 37, - "real_time": 1.9341412378314603e+07, - "cpu_time": 1.9238703324324310e+07, + "iterations": 36, + "real_time": 1.9344091444509104e+07, + "cpu_time": 1.9229511305555589e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5500,9 +5500,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 37, - "real_time": 2.0226670702843852e+07, - "cpu_time": 2.0105167108108174e+07, + "iterations": 36, + "real_time": 1.9265840666776057e+07, + "cpu_time": 1.9167215027777787e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5518,9 +5518,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 37, - "real_time": 2.1237649459303733e+07, - "cpu_time": 2.1085447324324492e+07, + "iterations": 36, + "real_time": 1.9092187249851927e+07, + "cpu_time": 1.8984599944444608e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5538,8 +5538,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0268577513487395e+07, - "cpu_time": 2.0143105918918993e+07, + "real_time": 1.9234039787045699e+07, + "cpu_time": 1.9127108759259325e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5557,8 +5557,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0226670702843852e+07, - "cpu_time": 2.0105167108108174e+07, + "real_time": 1.9265840666776057e+07, + "cpu_time": 1.9167215027777787e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5576,8 +5576,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.4881289115047723e+05, - "cpu_time": 9.2395636553275574e+05, + "real_time": 1.2892789762177157e+05, + "cpu_time": 1.2728620617041340e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5595,8 +5595,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.6812011870053780e-02, - "cpu_time": 4.5869607658913666e-02, + "real_time": 6.7031106854944589e-03, + "cpu_time": 6.6547541383532340e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5613,8 +5613,8 @@ "repetition_index": 0, "threads": 1, "iterations": 5, - "real_time": 1.5696650660247543e+08, - "cpu_time": 1.5580631720000044e+08, + "real_time": 1.5620132120093331e+08, + "cpu_time": 1.5500595780000025e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5631,8 +5631,8 @@ "repetition_index": 1, "threads": 1, "iterations": 5, - "real_time": 1.6000344740168658e+08, - "cpu_time": 1.5869880280000073e+08, + "real_time": 1.5661140320007688e+08, + "cpu_time": 1.5556184579999977e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5649,8 +5649,8 @@ "repetition_index": 2, "threads": 1, "iterations": 5, - "real_time": 1.5815563900105190e+08, - "cpu_time": 1.5716567460000020e+08, + "real_time": 1.5834078739862889e+08, + "cpu_time": 1.5718693260000125e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5668,8 +5668,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5837519766840461e+08, - "cpu_time": 1.5722359820000044e+08, + "real_time": 1.5705117059987968e+08, + "cpu_time": 1.5591824540000039e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5687,8 +5687,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5815563900105190e+08, - "cpu_time": 1.5716567460000020e+08, + "real_time": 1.5661140320007688e+08, + "cpu_time": 1.5556184579999980e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5706,8 +5706,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5303290041000803e+06, - "cpu_time": 1.4471125022377383e+06, + "real_time": 1.1355066830363863e+06, + "cpu_time": 1.1333262000553196e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5725,8 +5725,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.6626809413945022e-03, - "cpu_time": 9.2041685777786396e-03, + "real_time": 7.2301701330792639e-03, + "cpu_time": 7.2687208424378324e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5743,8 +5743,8 @@ "repetition_index": 0, "threads": 1, "iterations": 11, - "real_time": 6.7490124090744019e+07, - "cpu_time": 6.6964215363636404e+07, + "real_time": 6.2653688637179919e+07, + "cpu_time": 6.2212700909091204e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5761,8 +5761,8 @@ "repetition_index": 1, "threads": 1, "iterations": 11, - "real_time": 6.5766383364627309e+07, - "cpu_time": 6.5262983272727512e+07, + "real_time": 6.1052309817486361e+07, + "cpu_time": 6.0624938090909235e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5779,8 +5779,8 @@ "repetition_index": 2, "threads": 1, "iterations": 11, - "real_time": 6.5099047544539310e+07, - "cpu_time": 6.4588634909091003e+07, + "real_time": 5.8747167090504341e+07, + "cpu_time": 5.8356888909090996e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5798,8 +5798,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6118518333303541e+07, - "cpu_time": 6.5605277848484963e+07, + "real_time": 6.0817721848390199e+07, + "cpu_time": 6.0398175969697140e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5817,8 +5817,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5766383364627302e+07, - "cpu_time": 6.5262983272727512e+07, + "real_time": 6.1052309817486353e+07, + "cpu_time": 6.0624938090909220e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5836,8 +5836,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2338196949217955e+06, - "cpu_time": 1.2242221230025005e+06, + "real_time": 1.9637976690826479e+06, + "cpu_time": 1.9378821789648274e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5855,8 +5855,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8660728129177198e-02, - "cpu_time": 1.8660421282413207e-02, + "real_time": 3.2289891982111921e-02, + "cpu_time": 3.2085110979793462e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5872,9 +5872,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 18, - "real_time": 3.8036283999746151e+07, - "cpu_time": 3.7732093000000097e+07, + "iterations": 20, + "real_time": 3.8973592749971434e+07, + "cpu_time": 3.8685986850000374e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5890,9 +5890,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 18, - "real_time": 3.7531672499931626e+07, - "cpu_time": 3.7260668722221941e+07, + "iterations": 20, + "real_time": 3.4202010498847812e+07, + "cpu_time": 3.3985413199999921e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5908,9 +5908,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 18, - "real_time": 3.4906734055968828e+07, - "cpu_time": 3.4647074111110970e+07, + "iterations": 20, + "real_time": 3.3547285450913478e+07, + "cpu_time": 3.3338214049999945e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5928,8 +5928,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6824896851882197e+07, - "cpu_time": 3.6546611944444329e+07, + "real_time": 3.5574296233244240e+07, + "cpu_time": 3.5336538033333413e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5947,8 +5947,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7531672499931626e+07, - "cpu_time": 3.7260668722221933e+07, + "real_time": 3.4202010498847812e+07, + "cpu_time": 3.3985413199999921e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5966,8 +5966,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6802290246143334e+06, - "cpu_time": 1.6618493306008400e+06, + "real_time": 2.9620227596312016e+06, + "cpu_time": 2.9187021459107138e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5985,8 +5985,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.5627528336945056e-02, - "cpu_time": 4.5472049040471113e-02, + "real_time": 8.3263003720736625e-02, + "cpu_time": 8.2597286218515920e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -6002,9 +6002,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 45, - "real_time": 1.5994518244406207e+07, - "cpu_time": 1.5873727133333344e+07, + "iterations": 43, + "real_time": 1.6169042418559277e+07, + "cpu_time": 1.6035586255813889e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6021,9 +6021,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 45, - "real_time": 1.5248194644421648e+07, - "cpu_time": 1.5150187600000069e+07, + "iterations": 43, + "real_time": 1.7688036069874976e+07, + "cpu_time": 1.7544754139534719e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6040,9 +6040,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 45, - "real_time": 1.5391908644556277e+07, - "cpu_time": 1.5276462155555731e+07, + "iterations": 43, + "real_time": 1.6172905348993966e+07, + "cpu_time": 1.6059888651162762e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6061,8 +6061,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5544873844461376e+07, - "cpu_time": 1.5433458962963047e+07, + "real_time": 1.6676661279142739e+07, + "cpu_time": 1.6546743015503792e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6081,8 +6081,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5391908644556275e+07, - "cpu_time": 1.5276462155555731e+07, + "real_time": 1.6172905348993966e+07, + "cpu_time": 1.6059888651162764e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6101,8 +6101,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9597789491343574e+05, - "cpu_time": 3.8647556484990980e+05, + "real_time": 8.7587839113336650e+05, + "cpu_time": 8.6438839902667922e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6121,8 +6121,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.5473213798677584e-02, - "cpu_time": 2.5041409432413519e-02, + "real_time": 5.2521207720925230e-02, + "cpu_time": 5.2239186782363979e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6140,8 +6140,8 @@ "repetition_index": 0, "threads": 1, "iterations": 34, - "real_time": 2.1356363676365137e+07, - "cpu_time": 2.1272632235294130e+07, + "real_time": 2.2066501999849122e+07, + "cpu_time": 2.1965138823529091e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6159,8 +6159,8 @@ "repetition_index": 1, "threads": 1, "iterations": 34, - "real_time": 2.1404013382647570e+07, - "cpu_time": 2.1323763823529623e+07, + "real_time": 2.1873878794448342e+07, + "cpu_time": 2.1796083499999952e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6178,8 +6178,8 @@ "repetition_index": 2, "threads": 1, "iterations": 34, - "real_time": 2.1686173588129938e+07, - "cpu_time": 2.1614624823529694e+07, + "real_time": 2.1685511941220336e+07, + "cpu_time": 2.1595912823529605e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6198,8 +6198,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1482183549047548e+07, - "cpu_time": 2.1403673627451148e+07, + "real_time": 2.1875297578505937e+07, + "cpu_time": 2.1785711715686217e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6218,8 +6218,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1404013382647570e+07, - "cpu_time": 2.1323763823529623e+07, + "real_time": 2.1873878794448342e+07, + "cpu_time": 2.1796083499999952e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6238,8 +6238,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7825985431668264e+05, - "cpu_time": 1.8446927975681992e+05, + "real_time": 1.9049899187319237e+05, + "cpu_time": 1.8483138316086572e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6258,8 +6258,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.2980323629432036e-03, - "cpu_time": 8.6185802945635444e-03, + "real_time": 8.7084068771878763e-03, + "cpu_time": 8.4840644902035873e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6276,9 +6276,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 28, - "real_time": 2.5271681428941000e+07, - "cpu_time": 2.4999393214286111e+07, + "iterations": 29, + "real_time": 2.4021322448569320e+07, + "cpu_time": 2.3765103241379101e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6295,9 +6295,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 28, - "real_time": 2.4712777035996884e+07, - "cpu_time": 2.4465697035714027e+07, + "iterations": 29, + "real_time": 2.3866731138570748e+07, + "cpu_time": 2.3617933034482863e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6314,9 +6314,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 28, - "real_time": 2.4799746999633498e+07, - "cpu_time": 2.4566264250000000e+07, + "iterations": 29, + "real_time": 2.3685086138169121e+07, + "cpu_time": 2.3443975241379227e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6335,8 +6335,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4928068488190457e+07, - "cpu_time": 2.4677118166666713e+07, + "real_time": 2.3857713241769727e+07, + "cpu_time": 2.3609003839080393e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6355,8 +6355,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4799746999633502e+07, - "cpu_time": 2.4566264250000000e+07, + "real_time": 2.3866731138570752e+07, + "cpu_time": 2.3617933034482863e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6375,8 +6375,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0073798135960329e+05, - "cpu_time": 2.8359186498553347e+05, + "real_time": 1.6829945322241614e+05, + "cpu_time": 1.6075010418015547e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6395,8 +6395,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2064231189916553e-02, - "cpu_time": 1.1492098188701909e-02, + "real_time": 7.0542994425702105e-03, + "cpu_time": 6.8088473904207268e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, diff --git a/research/benchmark-results/operator-cost.json b/research/benchmark-results/operator-cost.json index 2fc790c..6cbf34b 100644 --- a/research/benchmark-results/operator-cost.json +++ b/research/benchmark-results/operator-cost.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-02T01:17:41+03:00", + "date": "2026-06-09T23:47:09+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [1.43018,0.73584,0.578125], + "load_avg": [1.61963,0.920898,0.974609], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,9 +47,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 18000, - "real_time": 3.9246624055926484e+04, - "cpu_time": 3.9044977722222226e+04, + "iterations": 18250, + "real_time": 3.8845030684980935e+04, + "cpu_time": 3.8709108164383571e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -65,9 +65,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 18000, - "real_time": 3.7743562666744561e+04, - "cpu_time": 3.7344257222222237e+04, + "iterations": 18250, + "real_time": 3.9302844657843350e+04, + "cpu_time": 3.9168997315068496e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -83,9 +83,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 18000, - "real_time": 3.8427845222435688e+04, - "cpu_time": 3.8240413166666687e+04, + "iterations": 18250, + "real_time": 3.9311777588222430e+04, + "cpu_time": 3.9168773041095883e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -103,8 +103,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8472677315035580e+04, - "cpu_time": 3.8209882703703712e+04, + "real_time": 3.9153217643682234e+04, + "cpu_time": 3.9015626173515986e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -122,8 +122,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8427845222435681e+04, - "cpu_time": 3.8240413166666687e+04, + "real_time": 3.9302844657843343e+04, + "cpu_time": 3.9168773041095883e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -141,8 +141,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.5253293768943513e+02, - "cpu_time": 8.5077120112114517e+02, + "real_time": 2.6693510530977704e+02, + "cpu_time": 2.6545240631176927e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -160,8 +160,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.9560191549116243e-02, - "cpu_time": 2.2265737053379631e-02, + "real_time": 6.8177054498827303e-03, + "cpu_time": 6.8037458922538020e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -177,9 +177,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9874, - "real_time": 7.0670865505453388e+04, - "cpu_time": 7.0332341097832730e+04, + "iterations": 9649, + "real_time": 7.1402024148586672e+04, + "cpu_time": 7.1145830448751149e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -195,9 +195,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9874, - "real_time": 6.9583156370238663e+04, - "cpu_time": 6.9237687563297528e+04, + "iterations": 9649, + "real_time": 7.4413162504712483e+04, + "cpu_time": 7.4079988496217149e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -213,9 +213,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9874, - "real_time": 6.8866311321799498e+04, - "cpu_time": 6.8571118594288011e+04, + "iterations": 9649, + "real_time": 7.1228492588142806e+04, + "cpu_time": 7.1011361902787845e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -233,8 +233,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9706777732497183e+04, - "cpu_time": 6.9380382418472742e+04, + "real_time": 7.2347893080480644e+04, + "cpu_time": 7.2079060282585371e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -252,8 +252,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9583156370238663e+04, - "cpu_time": 6.9237687563297528e+04, + "real_time": 7.1402024148586672e+04, + "cpu_time": 7.1145830448751163e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -271,8 +271,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.0860642268310050e+02, - "cpu_time": 8.8923986810085864e+02, + "real_time": 1.7906791020775183e+03, + "cpu_time": 1.7341585090601286e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -290,8 +290,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3034692640218110e-02, - "cpu_time": 1.2816877582734336e-02, + "real_time": 2.4750950246547554e-02, + "cpu_time": 2.4059116507087832e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -307,9 +307,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 4575, - "real_time": 1.5385901420873392e+05, - "cpu_time": 1.5231552612021856e+05, + "iterations": 4370, + "real_time": 1.6078171190391219e+05, + "cpu_time": 1.5910665194508014e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -325,9 +325,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 4575, - "real_time": 1.5345261289733028e+05, - "cpu_time": 1.5185940131147558e+05, + "iterations": 4370, + "real_time": 1.5755818626769868e+05, + "cpu_time": 1.5598532494279178e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -343,9 +343,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 4575, - "real_time": 1.5517629311506540e+05, - "cpu_time": 1.5297860153005453e+05, + "iterations": 4370, + "real_time": 1.5609967619557897e+05, + "cpu_time": 1.5458381922196803e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -363,8 +363,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5416264007370986e+05, - "cpu_time": 1.5238450965391620e+05, + "real_time": 1.5814652478906329e+05, + "cpu_time": 1.5655859870328000e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -382,8 +382,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5385901420873392e+05, - "cpu_time": 1.5231552612021856e+05, + "real_time": 1.5755818626769868e+05, + "cpu_time": 1.5598532494279181e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -401,8 +401,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.0106041566070314e+02, - "cpu_time": 5.6277999987616192e+02, + "real_time": 2.3958237112342867e+03, + "cpu_time": 2.3152723519420706e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -420,8 +420,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.8448688685525793e-03, - "cpu_time": 3.6931575338878205e-03, + "real_time": 1.5149392087052497e-02, + "cpu_time": 1.4788535226545590e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -437,9 +437,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1956, - "real_time": 3.5587616564577649e+05, - "cpu_time": 3.5244620603271981e+05, + "iterations": 1960, + "real_time": 3.5702310612707929e+05, + "cpu_time": 3.5412047142857121e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -455,9 +455,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1956, - "real_time": 4.1456895245413884e+05, - "cpu_time": 4.0906104498977540e+05, + "iterations": 1960, + "real_time": 3.6373994132320932e+05, + "cpu_time": 3.6082918061224459e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -473,9 +473,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1956, - "real_time": 3.9999774540357903e+05, - "cpu_time": 3.9529778834355902e+05, + "iterations": 1960, + "real_time": 3.5611569438348245e+05, + "cpu_time": 3.5327081122448994e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -493,8 +493,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9014762116783141e+05, - "cpu_time": 3.8560167978868471e+05, + "real_time": 3.5895958061125694e+05, + "cpu_time": 3.5607348775510187e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -512,8 +512,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9999774540357915e+05, - "cpu_time": 3.9529778834355902e+05, + "real_time": 3.5702310612707929e+05, + "cpu_time": 3.5412047142857121e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -531,8 +531,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0561078456555570e+04, - "cpu_time": 2.9526613222045959e+04, + "real_time": 4.1647011201754240e+03, + "cpu_time": 4.1404035466580581e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -550,8 +550,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.8332089697425028e-02, - "cpu_time": 7.6572833495504908e-02, + "real_time": 1.1602145046758558e-02, + "cpu_time": 1.1627946727406227e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -567,9 +567,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 822, - "real_time": 9.0433581508234388e+05, - "cpu_time": 8.9520096107055817e+05, + "iterations": 826, + "real_time": 7.9650909079100087e+05, + "cpu_time": 7.8999985230024299e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -585,9 +585,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 822, - "real_time": 9.3126070681152702e+05, - "cpu_time": 9.2162533211678872e+05, + "iterations": 826, + "real_time": 7.9224021186698088e+05, + "cpu_time": 7.8613784987893619e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -603,9 +603,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 822, - "real_time": 9.3750599270387401e+05, - "cpu_time": 9.2805541119221412e+05, + "iterations": 826, + "real_time": 8.0226254599427094e+05, + "cpu_time": 7.9617707748184004e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -623,8 +623,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.2436750486591493e+05, - "cpu_time": 9.1496056812652026e+05, + "real_time": 7.9700394955075101e+05, + "cpu_time": 7.9077159322033974e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -642,8 +642,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.3126070681152691e+05, - "cpu_time": 9.2162533211678872e+05, + "real_time": 7.9650909079100098e+05, + "cpu_time": 7.8999985230024299e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -661,8 +661,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7626750853705111e+04, - "cpu_time": 1.7411721123530708e+04, + "real_time": 5.0294591392965904e+03, + "cpu_time": 5.0639125931953331e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -680,8 +680,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.9068985831843993e-02, - "cpu_time": 1.9030023511486482e-02, + "real_time": 6.3104569834711074e-03, + "cpu_time": 6.4037613852225596e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -697,9 +697,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 320, - "real_time": 1.7997137062138792e+06, - "cpu_time": 1.7869147593749966e+06, + "iterations": 336, + "real_time": 1.9899760088827903e+06, + "cpu_time": 1.9721588750000026e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -715,9 +715,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 320, - "real_time": 1.9713889500053483e+06, - "cpu_time": 1.9529871281250000e+06, + "iterations": 336, + "real_time": 1.9653108035223945e+06, + "cpu_time": 1.9469479255952383e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -733,9 +733,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 320, - "real_time": 1.9337302750045639e+06, - "cpu_time": 1.9160913781250012e+06, + "iterations": 336, + "real_time": 2.0173753214510810e+06, + "cpu_time": 1.9963626160714321e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -753,8 +753,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9016109770745970e+06, - "cpu_time": 1.8853310885416658e+06, + "real_time": 1.9908873779520886e+06, + "cpu_time": 1.9718231388888909e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -772,8 +772,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9337302750045639e+06, - "cpu_time": 1.9160913781250010e+06, + "real_time": 1.9899760088827906e+06, + "cpu_time": 1.9721588750000026e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -791,8 +791,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.0232113503731802e+04, - "cpu_time": 8.7204670041214515e+04, + "real_time": 2.6044221085922400e+04, + "cpu_time": 2.4709055986958661e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -810,8 +810,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.7450353721949598e-02, - "cpu_time": 4.6254300144527263e-02, + "real_time": 1.3081714904794159e-02, + "cpu_time": 1.2531071118722164e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -827,9 +827,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 100, - "real_time": 5.1028332998976111e+06, - "cpu_time": 5.0516337499999860e+06, + "iterations": 136, + "real_time": 4.8432163528238609e+06, + "cpu_time": 4.7967932647058927e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -845,9 +845,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 100, - "real_time": 4.9981412800843827e+06, - "cpu_time": 4.9462012100000056e+06, + "iterations": 136, + "real_time": 5.2586463675919846e+06, + "cpu_time": 5.2008186985294158e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -863,9 +863,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 100, - "real_time": 4.7970186099701095e+06, - "cpu_time": 4.7305430800000010e+06, + "iterations": 136, + "real_time": 4.7411703380930703e+06, + "cpu_time": 4.6977030514705861e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -883,8 +883,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9659977299840339e+06, - "cpu_time": 4.9094593466666630e+06, + "real_time": 4.9476776861696383e+06, + "cpu_time": 4.8984383382352991e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -902,8 +902,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9981412800843827e+06, - "cpu_time": 4.9462012100000046e+06, + "real_time": 4.8432163528238619e+06, + "cpu_time": 4.7967932647058936e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -921,8 +921,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5542059710238207e+05, - "cpu_time": 1.6366819477578657e+05, + "real_time": 2.7409758827792853e+05, + "cpu_time": 2.6651478253270546e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -940,8 +940,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.1296952909175370e-02, - "cpu_time": 3.3337315418837526e-02, + "real_time": 5.5399240949773276e-02, + "cpu_time": 5.4408112163502206e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -957,9 +957,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 64, - "real_time": 1.1002289312500579e+07, - "cpu_time": 1.0876498062499989e+07, + "iterations": 63, + "real_time": 1.0852161285814844e+07, + "cpu_time": 1.0741227460317455e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -975,9 +975,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 64, - "real_time": 1.4250770406306401e+07, - "cpu_time": 1.4081002734374959e+07, + "iterations": 63, + "real_time": 1.0996642793687653e+07, + "cpu_time": 1.0886871222222256e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -993,9 +993,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 64, - "real_time": 1.1162739046994830e+07, - "cpu_time": 1.1038912562500004e+07, + "iterations": 63, + "real_time": 1.0878575555536719e+07, + "cpu_time": 1.0770946809523810e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -1013,8 +1013,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2138599588600604e+07, - "cpu_time": 1.1998804453124983e+07, + "real_time": 1.0909126545013070e+07, + "cpu_time": 1.0799681830687838e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -1032,8 +1032,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1162739046994830e+07, - "cpu_time": 1.1038912562500002e+07, + "real_time": 1.0878575555536717e+07, + "cpu_time": 1.0770946809523808e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -1051,8 +1051,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8309519932813232e+06, - "cpu_time": 1.8050642313454684e+06, + "real_time": 7.6933404629008161e+04, + "cpu_time": 7.6956496973491885e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1070,8 +1070,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.5083716864676680e-01, - "cpu_time": 1.5043700715327143e-01, + "real_time": 7.0522057207391201e-03, + "cpu_time": 7.1258114988921378e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1087,9 +1087,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 29, - "real_time": 3.0710132724348586e+07, - "cpu_time": 3.0336448689655259e+07, + "iterations": 31, + "real_time": 2.3361223710385423e+07, + "cpu_time": 2.3114136483871005e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1105,9 +1105,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 29, - "real_time": 2.3244998723886717e+07, - "cpu_time": 2.3024292413793143e+07, + "iterations": 31, + "real_time": 2.2093402678071853e+07, + "cpu_time": 2.1902533483870938e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1123,9 +1123,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 29, - "real_time": 2.2978988585989632e+07, - "cpu_time": 2.2762531689655110e+07, + "iterations": 31, + "real_time": 2.2384762709524725e+07, + "cpu_time": 2.2194274451612886e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1143,8 +1143,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5644706678074982e+07, - "cpu_time": 2.5374424264367834e+07, + "real_time": 2.2613129699327331e+07, + "cpu_time": 2.2403648139784943e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1162,8 +1162,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3244998723886713e+07, - "cpu_time": 2.3024292413793147e+07, + "real_time": 2.2384762709524725e+07, + "cpu_time": 2.2194274451612886e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1181,8 +1181,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3888034953807639e+06, - "cpu_time": 4.2992318461600589e+06, + "real_time": 6.6404529515532206e+05, + "cpu_time": 6.3235548813659884e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1200,8 +1200,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7113876756223478e-01, - "cpu_time": 1.6943170025722620e-01, + "real_time": 2.9365475013176764e-02, + "cpu_time": 2.8225558810381718e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1217,9 +1217,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9876, - "real_time": 7.0365239469032807e+04, - "cpu_time": 7.0085761036856959e+04, + "iterations": 9645, + "real_time": 7.3610573354408436e+04, + "cpu_time": 7.3291684707102002e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1235,9 +1235,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9876, - "real_time": 7.0987971344471502e+04, - "cpu_time": 7.0724434690157708e+04, + "iterations": 9645, + "real_time": 7.4202260965681271e+04, + "cpu_time": 7.3951352825298120e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1253,9 +1253,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9876, - "real_time": 6.9922420007443376e+04, - "cpu_time": 6.9626919603078073e+04, + "iterations": 9645, + "real_time": 7.4259590149575626e+04, + "cpu_time": 7.4026318818040207e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1273,8 +1273,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0425210273649223e+04, - "cpu_time": 7.0145705110030904e+04, + "real_time": 7.4024141489888440e+04, + "cpu_time": 7.3756452116813423e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1292,8 +1292,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0365239469032807e+04, - "cpu_time": 7.0085761036856959e+04, + "real_time": 7.4202260965681271e+04, + "cpu_time": 7.3951352825298105e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1311,8 +1311,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3530111714412453e+02, - "cpu_time": 5.5120759295001687e+02, + "real_time": 3.5930573450076935e+02, + "cpu_time": 4.0424192492232237e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1330,8 +1330,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.6009871332172133e-03, - "cpu_time": 7.8580376672440586e-03, + "real_time": 4.8538993802427254e-03, + "cpu_time": 5.4807669474406821e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1347,9 +1347,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 5438, - "real_time": 1.2523293857804030e+05, - "cpu_time": 1.2480802979036413e+05, + "iterations": 4705, + "real_time": 1.4000763103052159e+05, + "cpu_time": 1.3945640531349686e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1365,9 +1365,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 5438, - "real_time": 1.2585436134757481e+05, - "cpu_time": 1.2541858606105215e+05, + "iterations": 4705, + "real_time": 1.3930782720651457e+05, + "cpu_time": 1.3868528990435688e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1383,9 +1383,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 5438, - "real_time": 1.2535870117730908e+05, - "cpu_time": 1.2493645770503869e+05, + "iterations": 4705, + "real_time": 1.3328246121179988e+05, + "cpu_time": 1.3284171179596151e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1403,8 +1403,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2548200036764139e+05, - "cpu_time": 1.2505435785215166e+05, + "real_time": 1.3753263981627868e+05, + "cpu_time": 1.3699446900460505e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1422,8 +1422,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2535870117730911e+05, - "cpu_time": 1.2493645770503870e+05, + "real_time": 1.3930782720651457e+05, + "cpu_time": 1.3868528990435688e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1441,8 +1441,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.2854768661543000e+02, - "cpu_time": 3.2190071984842018e+02, + "real_time": 3.6973564847743728e+03, + "cpu_time": 3.6170013919012345e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1460,8 +1460,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6182853768097411e-03, - "cpu_time": 2.5740863843305216e-03, + "real_time": 2.6883483729487356e-02, + "cpu_time": 2.6402535943109127e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1477,9 +1477,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2896, - "real_time": 2.4423689675277474e+05, - "cpu_time": 2.4295935911602259e+05, + "iterations": 2692, + "real_time": 2.5931452748671529e+05, + "cpu_time": 2.5830611961367010e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1495,9 +1495,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2896, - "real_time": 2.4357472582939221e+05, - "cpu_time": 2.4244804558010976e+05, + "iterations": 2692, + "real_time": 2.6544695654128061e+05, + "cpu_time": 2.6433167161961424e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1513,9 +1513,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2896, - "real_time": 2.4557083322093674e+05, - "cpu_time": 2.4441006284530324e+05, + "iterations": 2692, + "real_time": 2.6003982577532434e+05, + "cpu_time": 2.5906983543833590e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1533,8 +1533,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4446081860103455e+05, - "cpu_time": 2.4327248918047853e+05, + "real_time": 2.6160043660110669e+05, + "cpu_time": 2.6056920889054006e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1552,8 +1552,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4423689675277472e+05, - "cpu_time": 2.4295935911602259e+05, + "real_time": 2.6003982577532428e+05, + "cpu_time": 2.5906983543833590e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1571,8 +1571,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0167187050747069e+03, - "cpu_time": 1.0177994719893127e+03, + "real_time": 3.3508657298542607e+03, + "cpu_time": 3.2806873983889450e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1590,8 +1590,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.1590252004105989e-03, - "cpu_time": 4.1837836880693471e-03, + "real_time": 1.2809098384509674e-02, + "cpu_time": 1.2590464592334453e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1607,9 +1607,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1470, - "real_time": 4.7470465986308368e+05, - "cpu_time": 4.7251572244898049e+05, + "iterations": 1361, + "real_time": 5.1609085009533918e+05, + "cpu_time": 5.1370937252020522e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1625,9 +1625,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1470, - "real_time": 4.7748832381132443e+05, - "cpu_time": 4.7539816870748275e+05, + "iterations": 1361, + "real_time": 5.1665417928283545e+05, + "cpu_time": 5.1415814695077279e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1643,9 +1643,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1470, - "real_time": 4.8689427823192585e+05, - "cpu_time": 4.8413452653061232e+05, + "iterations": 1361, + "real_time": 5.0875262967940397e+05, + "cpu_time": 5.0666673034533591e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1663,8 +1663,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.7969575396877801e+05, - "cpu_time": 4.7734947256235854e+05, + "real_time": 5.1383255301919294e+05, + "cpu_time": 5.1151141660543793e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1682,8 +1682,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.7748832381132449e+05, - "cpu_time": 4.7539816870748275e+05, + "real_time": 5.1609085009533918e+05, + "cpu_time": 5.1370937252020527e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1701,8 +1701,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.3875863923375291e+03, - "cpu_time": 6.0501935607376499e+03, + "real_time": 4.4083501218641932e+03, + "cpu_time": 4.2016173482983295e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1720,8 +1720,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3315911886835834e-02, - "cpu_time": 1.2674557967480070e-02, + "real_time": 8.5793515727282683e-03, + "cpu_time": 8.2141223282594118e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1737,9 +1737,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 687, - "real_time": 9.9092686463762855e+05, - "cpu_time": 9.8521732751091616e+05, + "iterations": 643, + "real_time": 1.0509333001796596e+06, + "cpu_time": 1.0455488926905136e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1755,9 +1755,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 687, - "real_time": 9.8978464630279236e+05, - "cpu_time": 9.8424624599708745e+05, + "iterations": 643, + "real_time": 1.1059197216185352e+06, + "cpu_time": 1.0995506827371665e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1773,9 +1773,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 687, - "real_time": 9.9943843232149188e+05, - "cpu_time": 9.9456080931586854e+05, + "iterations": 643, + "real_time": 1.0433007387623980e+06, + "cpu_time": 1.0389542597200627e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1793,8 +1793,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.9338331442063756e+05, - "cpu_time": 9.8800812760795734e+05, + "real_time": 1.0667179201868644e+06, + "cpu_time": 1.0613512783825810e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1812,8 +1812,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.9092686463762866e+05, - "cpu_time": 9.8521732751091616e+05, + "real_time": 1.0509333001796596e+06, + "cpu_time": 1.0455488926905137e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1831,8 +1831,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2748938639936514e+03, - "cpu_time": 5.6955226275137456e+03, + "real_time": 3.4163575999345208e+04, + "cpu_time": 3.3245573626993217e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1850,8 +1850,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.3100286540146719e-03, - "cpu_time": 5.7646515938113161e-03, + "real_time": 3.2026813605381767e-02, + "cpu_time": 3.1323817386508405e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1868,8 +1868,8 @@ "repetition_index": 0, "threads": 1, "iterations": 320, - "real_time": 2.1116050374985207e+06, - "cpu_time": 2.0999389906249945e+06, + "real_time": 2.1563060937296539e+06, + "cpu_time": 2.1456853000000110e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1886,8 +1886,8 @@ "repetition_index": 1, "threads": 1, "iterations": 320, - "real_time": 2.1298201874742517e+06, - "cpu_time": 2.1181946500000050e+06, + "real_time": 2.1776743687951239e+06, + "cpu_time": 2.1667227874999861e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1904,8 +1904,8 @@ "repetition_index": 2, "threads": 1, "iterations": 320, - "real_time": 2.2954504343488226e+06, - "cpu_time": 2.2812585374999861e+06, + "real_time": 2.2352051687448691e+06, + "cpu_time": 2.2217824937500018e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1923,8 +1923,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1789585531071979e+06, - "cpu_time": 2.1664640593749951e+06, + "real_time": 2.1897285437565488e+06, + "cpu_time": 2.1780635270833327e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1942,8 +1942,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1298201874742513e+06, - "cpu_time": 2.1181946500000046e+06, + "real_time": 2.1776743687951239e+06, + "cpu_time": 2.1667227874999861e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1961,8 +1961,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0129519593035891e+05, - "cpu_time": 9.9833092864018559e+04, + "real_time": 4.0807393448547460e+04, + "cpu_time": 3.9295737744425845e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1980,8 +1980,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.6487894772441550e-02, - "cpu_time": 4.6081121185467290e-02, + "real_time": 1.8635822949332834e-02, + "cpu_time": 1.8041593946089892e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1997,9 +1997,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 161, - "real_time": 4.2840201179540325e+06, - "cpu_time": 4.2638639813664770e+06, + "iterations": 139, + "real_time": 4.5444325325347269e+06, + "cpu_time": 4.5175419712230181e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2015,9 +2015,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 161, - "real_time": 4.4736977763689468e+06, - "cpu_time": 4.4500819565217569e+06, + "iterations": 139, + "real_time": 4.6125408992750850e+06, + "cpu_time": 4.5875623956834106e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2033,9 +2033,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 161, - "real_time": 4.5514333539827503e+06, - "cpu_time": 4.5265054906832362e+06, + "iterations": 139, + "real_time": 4.6494261149347182e+06, + "cpu_time": 4.6240235035970937e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2053,8 +2053,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4363837494352432e+06, - "cpu_time": 4.4134838095238237e+06, + "real_time": 4.6021331822481761e+06, + "cpu_time": 4.5763759568345072e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2072,8 +2072,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4736977763689468e+06, - "cpu_time": 4.4500819565217569e+06, + "real_time": 4.6125408992750859e+06, + "cpu_time": 4.5875623956834106e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2091,8 +2091,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3755621452827789e+05, - "cpu_time": 1.3509148336150381e+05, + "real_time": 5.3264937027895743e+04, + "cpu_time": 5.4114984013475019e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2110,8 +2110,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.1006383193471251e-02, - "cpu_time": 3.0608809093168283e-02, + "real_time": 1.1573966879827547e-02, + "cpu_time": 1.1824855414830584e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2127,9 +2127,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 69, - "real_time": 9.6964141739063319e+06, - "cpu_time": 9.6437748550724182e+06, + "iterations": 73, + "real_time": 9.5998669040791243e+06, + "cpu_time": 9.5496207534246780e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2145,9 +2145,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 69, - "real_time": 9.9056520726214554e+06, - "cpu_time": 9.8435164347825982e+06, + "iterations": 73, + "real_time": 1.0333870123347830e+07, + "cpu_time": 1.0266777383561656e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2163,9 +2163,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 69, - "real_time": 9.7234177536439095e+06, - "cpu_time": 9.6639156376811918e+06, + "iterations": 73, + "real_time": 9.9616823973108642e+06, + "cpu_time": 9.8989278356164433e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2183,8 +2183,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.7751613333905656e+06, - "cpu_time": 9.7170689758454021e+06, + "real_time": 9.9651398082459364e+06, + "cpu_time": 9.9051086575342584e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2202,8 +2202,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.7234177536439095e+06, - "cpu_time": 9.6639156376811918e+06, + "real_time": 9.9616823973108642e+06, + "cpu_time": 9.8989278356164414e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2221,8 +2221,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1381200770768267e+05, - "cpu_time": 1.0996878050050781e+05, + "real_time": 3.6701382363888324e+05, + "cpu_time": 3.5861826495179691e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2240,8 +2240,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1642979980178637e-02, - "cpu_time": 1.1317073160010202e-02, + "real_time": 3.6829771654100354e-02, + "cpu_time": 3.6205384246745867e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2257,9 +2257,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 35, - "real_time": 1.9785876771701235e+07, - "cpu_time": 1.9674015657142870e+07, + "iterations": 34, + "real_time": 2.1230587470413677e+07, + "cpu_time": 2.1076212029411782e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2275,9 +2275,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 35, - "real_time": 2.0028071428532712e+07, - "cpu_time": 1.9914758771428507e+07, + "iterations": 34, + "real_time": 2.0398640734663997e+07, + "cpu_time": 2.0281736617647123e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2293,9 +2293,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 35, - "real_time": 2.0220994971376579e+07, - "cpu_time": 2.0097260742857210e+07, + "iterations": 34, + "real_time": 2.0609233647358932e+07, + "cpu_time": 2.0480860647058982e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2313,8 +2313,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0011647723870173e+07, - "cpu_time": 1.9895345057142861e+07, + "real_time": 2.0746153950812202e+07, + "cpu_time": 2.0612936431372628e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2332,8 +2332,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0028071428532712e+07, - "cpu_time": 1.9914758771428507e+07, + "real_time": 2.0609233647358935e+07, + "cpu_time": 2.0480860647058982e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2351,8 +2351,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1802354340405521e+05, - "cpu_time": 2.1228935411897779e+05, + "real_time": 4.3254389361598721e+05, + "cpu_time": 4.1337731502374797e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2370,8 +2370,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0894832170366147e-02, - "cpu_time": 1.0670302701925810e-02, + "real_time": 2.0849353313463350e-02, + "cpu_time": 2.0054266232276977e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2387,9 +2387,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 7390, - "real_time": 9.3759352098145377e+04, - "cpu_time": 9.3398126522328093e+04, + "iterations": 6697, + "real_time": 1.0247587292596011e+05, + "cpu_time": 1.0206261027325744e+05, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2405,9 +2405,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 7390, - "real_time": 9.4592332071530167e+04, - "cpu_time": 9.4279454939107003e+04, + "iterations": 6697, + "real_time": 1.0355064402201168e+05, + "cpu_time": 1.0314150739136907e+05, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2423,9 +2423,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 7390, - "real_time": 9.4715360216846806e+04, - "cpu_time": 9.4407085926928077e+04, + "iterations": 6697, + "real_time": 1.0147738704155132e+05, + "cpu_time": 1.0110561370763021e+05, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2443,8 +2443,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.4355681462174107e+04, - "cpu_time": 9.4028222462787700e+04, + "real_time": 1.0250130132984104e+05, + "cpu_time": 1.0210324379075221e+05, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2462,8 +2462,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.4592332071530167e+04, - "cpu_time": 9.4279454939107003e+04, + "real_time": 1.0247587292596011e+05, + "cpu_time": 1.0206261027325742e+05, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2481,8 +2481,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2008702535336658e+02, - "cpu_time": 5.4939793219723276e+02, + "real_time": 1.0368623725206230e+03, + "cpu_time": 1.0185549003036546e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2500,8 +2500,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.5119841995085626e-03, - "cpu_time": 5.8429045855318664e-03, + "real_time": 1.0115602036934949e-02, + "cpu_time": 9.9757349765601470e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2517,9 +2517,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 3952, - "real_time": 1.7699749392697323e+05, - "cpu_time": 1.7635814777327894e+05, + "iterations": 3538, + "real_time": 1.9173549886558883e+05, + "cpu_time": 1.9090579847371348e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2535,9 +2535,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 3952, - "real_time": 1.7589876366356673e+05, - "cpu_time": 1.7538361968623433e+05, + "iterations": 3538, + "real_time": 1.9910325748788548e+05, + "cpu_time": 1.9816358846806077e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2553,9 +2553,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 3952, - "real_time": 1.7633422419248192e+05, - "cpu_time": 1.7577747672064675e+05, + "iterations": 3538, + "real_time": 1.8616733154076125e+05, + "cpu_time": 1.8540704946297270e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2573,8 +2573,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7641016059434065e+05, - "cpu_time": 1.7583974806005336e+05, + "real_time": 1.9233536263141184e+05, + "cpu_time": 1.9149214546824899e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2592,8 +2592,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7633422419248192e+05, - "cpu_time": 1.7577747672064675e+05, + "real_time": 1.9173549886558883e+05, + "cpu_time": 1.9090579847371348e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2611,8 +2611,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5328726786655841e+02, - "cpu_time": 4.9023926596487394e+02, + "real_time": 6.4887920625138040e+03, + "cpu_time": 6.3984509020220057e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2630,8 +2630,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.1363684835526893e-03, - "cpu_time": 2.7879889011069663e-03, + "real_time": 3.3736864473273245e-02, + "cpu_time": 3.3413646739275389e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2647,9 +2647,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1995, - "real_time": 3.5057638295958831e+05, - "cpu_time": 3.4933553784461156e+05, + "iterations": 1935, + "real_time": 3.5661912298501405e+05, + "cpu_time": 3.5545364754521998e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2665,9 +2665,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1995, - "real_time": 3.5813016290916485e+05, - "cpu_time": 3.5642498195488809e+05, + "iterations": 1935, + "real_time": 3.6000791936811997e+05, + "cpu_time": 3.5895315400516801e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2683,9 +2683,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1995, - "real_time": 3.4492048520984640e+05, - "cpu_time": 3.4346615238095459e+05, + "iterations": 1935, + "real_time": 3.5774011368856067e+05, + "cpu_time": 3.5647612144702632e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2703,8 +2703,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5120901035953313e+05, - "cpu_time": 3.4974222406015149e+05, + "real_time": 3.5812238534723152e+05, + "cpu_time": 3.5696097433247144e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2722,8 +2722,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5057638295958837e+05, - "cpu_time": 3.4933553784461162e+05, + "real_time": 3.5774011368856067e+05, + "cpu_time": 3.5647612144702632e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2741,8 +2741,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6275228630570973e+03, - "cpu_time": 6.4889799845573334e+03, + "real_time": 1.7264367776721201e+03, + "cpu_time": 1.7994299392292014e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2760,8 +2760,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8870594624757757e-02, - "cpu_time": 1.8553607594836211e-02, + "real_time": 4.8208010677639876e-03, + "cpu_time": 5.0409710545927140e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2777,9 +2777,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 999, - "real_time": 6.9439118518342578e+05, - "cpu_time": 6.9130116216216085e+05, + "iterations": 940, + "real_time": 7.3347029575280484e+05, + "cpu_time": 7.3025823936169536e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2795,9 +2795,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 999, - "real_time": 6.8734915014549810e+05, - "cpu_time": 6.8433097497497452e+05, + "iterations": 940, + "real_time": 7.3056114999146422e+05, + "cpu_time": 7.2706177978723927e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2813,9 +2813,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 999, - "real_time": 6.8228848247233697e+05, - "cpu_time": 6.7906060160160181e+05, + "iterations": 940, + "real_time": 7.2841075638512231e+05, + "cpu_time": 7.2475577765956847e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2833,8 +2833,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8800960593375366e+05, - "cpu_time": 6.8489757957957895e+05, + "real_time": 7.3081406737646367e+05, + "cpu_time": 7.2735859893616766e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2852,8 +2852,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8734915014549822e+05, - "cpu_time": 6.8433097497497452e+05, + "real_time": 7.3056114999146422e+05, + "cpu_time": 7.2706177978723915e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2871,8 +2871,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0783225164861351e+03, - "cpu_time": 6.1399194858533056e+03, + "real_time": 2.5392341475704084e+03, + "cpu_time": 2.7632132384614292e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2890,8 +2890,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.8346477491934878e-03, - "cpu_time": 8.9647265064394955e-03, + "real_time": 3.4745282841721421e-03, + "cpu_time": 3.7989696451006367e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2907,9 +2907,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 499, - "real_time": 1.4189123647298687e+06, - "cpu_time": 1.4119977054108263e+06, + "iterations": 474, + "real_time": 1.4672877890463597e+06, + "cpu_time": 1.4599121729957813e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2925,9 +2925,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 499, - "real_time": 1.4050172364599593e+06, - "cpu_time": 1.3975370501002064e+06, + "iterations": 474, + "real_time": 1.5985105295502483e+06, + "cpu_time": 1.5892844915611921e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2943,9 +2943,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 499, - "real_time": 1.4021861763707900e+06, - "cpu_time": 1.3958977274549073e+06, + "iterations": 474, + "real_time": 1.5142343480671453e+06, + "cpu_time": 1.5059669177215211e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2963,8 +2963,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4087052591868725e+06, - "cpu_time": 1.4018108276553128e+06, + "real_time": 1.5266775555545839e+06, + "cpu_time": 1.5183878607594979e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2982,8 +2982,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4050172364599593e+06, - "cpu_time": 1.3975370501002062e+06, + "real_time": 1.5142343480671456e+06, + "cpu_time": 1.5059669177215211e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -3001,8 +3001,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.9522331281775078e+03, - "cpu_time": 8.8600904898559038e+03, + "real_time": 6.6490427625113240e+04, + "cpu_time": 6.5574454417946850e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3020,8 +3020,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.3549369676839862e-03, - "cpu_time": 6.3204608746498308e-03, + "real_time": 4.3552371214994230e-02, + "cpu_time": 4.3186893225783889e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3037,9 +3037,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 249, - "real_time": 2.9553089839739194e+06, - "cpu_time": 2.9386077590361373e+06, + "iterations": 223, + "real_time": 3.0730027353574811e+06, + "cpu_time": 3.0568931121076373e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3055,9 +3055,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 249, - "real_time": 3.2144210803468362e+06, - "cpu_time": 3.1946812168674762e+06, + "iterations": 223, + "real_time": 3.1441380807528519e+06, + "cpu_time": 3.1264916681614448e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3073,9 +3073,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 249, - "real_time": 3.0210174939943007e+06, - "cpu_time": 3.0067343172690705e+06, + "iterations": 223, + "real_time": 3.1486676008526166e+06, + "cpu_time": 3.1306725739910351e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3093,8 +3093,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0635825194383524e+06, - "cpu_time": 3.0466744310575617e+06, + "real_time": 3.1219361389876497e+06, + "cpu_time": 3.1046857847533724e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3112,8 +3112,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0210174939943007e+06, - "cpu_time": 3.0067343172690701e+06, + "real_time": 3.1441380807528519e+06, + "cpu_time": 3.1264916681614448e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3131,8 +3131,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3469820215942603e+05, - "cpu_time": 1.3262659412238971e+05, + "real_time": 4.2438044620468012e+04, + "cpu_time": 4.1442425874449516e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3150,8 +3150,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.3967544959135067e-02, - "cpu_time": 4.3531593914467710e-02, + "real_time": 1.3593501830639430e-02, + "cpu_time": 1.3348347867589955e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3167,9 +3167,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 104, - "real_time": 6.4320164037781069e+06, - "cpu_time": 6.3976388365384405e+06, + "iterations": 101, + "real_time": 6.5313850694893869e+06, + "cpu_time": 6.4869403762375955e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3185,9 +3185,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 104, - "real_time": 6.4142712691626418e+06, - "cpu_time": 6.3830907884615278e+06, + "iterations": 101, + "real_time": 6.6087494159375532e+06, + "cpu_time": 6.5550811881187987e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3203,9 +3203,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 104, - "real_time": 6.3818577981202491e+06, - "cpu_time": 6.3431990961538590e+06, + "iterations": 101, + "real_time": 6.6456573071317878e+06, + "cpu_time": 6.5922161386138378e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3223,8 +3223,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4093818236869993e+06, - "cpu_time": 6.3746429070512764e+06, + "real_time": 6.5952639308529077e+06, + "cpu_time": 6.5447459009900764e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3242,8 +3242,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4142712691626428e+06, - "cpu_time": 6.3830907884615287e+06, + "real_time": 6.6087494159375532e+06, + "cpu_time": 6.5550811881187977e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3261,8 +3261,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5434257177555719e+04, - "cpu_time": 2.8185924830090327e+04, + "real_time": 5.8317491415000732e+04, + "cpu_time": 5.3393446751510688e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3280,8 +3280,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.9682855347389261e-03, - "cpu_time": 4.4215692143182829e-03, + "real_time": 8.8423286810690293e-03, + "cpu_time": 8.1582153928135594e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3297,9 +3297,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 50, - "real_time": 1.3847824239928741e+07, - "cpu_time": 1.3759304560000060e+07, + "iterations": 49, + "real_time": 1.3952794611900665e+07, + "cpu_time": 1.3845379979591839e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3315,9 +3315,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 50, - "real_time": 1.3940036760177465e+07, - "cpu_time": 1.3849617119999919e+07, + "iterations": 49, + "real_time": 1.4854621898254609e+07, + "cpu_time": 1.4734450653061284e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3333,9 +3333,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 50, - "real_time": 1.3394919459824450e+07, - "cpu_time": 1.3302785679999972e+07, + "iterations": 49, + "real_time": 1.4192063694021532e+07, + "cpu_time": 1.4077397938775642e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3353,8 +3353,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3727593486643551e+07, - "cpu_time": 1.3637235786666652e+07, + "real_time": 1.4333160068058932e+07, + "cpu_time": 1.4219076190476254e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3372,8 +3372,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3847824239928739e+07, - "cpu_time": 1.3759304560000060e+07, + "real_time": 1.4192063694021530e+07, + "cpu_time": 1.4077397938775642e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3391,8 +3391,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9177010352796857e+05, - "cpu_time": 2.9314116908150271e+05, + "real_time": 4.6717689762875438e+05, + "cpu_time": 4.6115746861519286e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3410,8 +3410,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.1254279113950333e-02, - "cpu_time": 2.1495644254249213e-02, + "real_time": 3.2594131050684746e-02, + "cpu_time": 3.2432308712437304e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3428,8 +3428,8 @@ "repetition_index": 0, "threads": 1, "iterations": 21, - "real_time": 3.3413079618531767e+07, - "cpu_time": 3.3189873190475997e+07, + "real_time": 3.3431509046793159e+07, + "cpu_time": 3.3156272809523758e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3446,8 +3446,8 @@ "repetition_index": 1, "threads": 1, "iterations": 21, - "real_time": 3.3275240856926844e+07, - "cpu_time": 3.3069358476190299e+07, + "real_time": 3.3354849809603322e+07, + "cpu_time": 3.3124116047618810e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3464,8 +3464,8 @@ "repetition_index": 2, "threads": 1, "iterations": 21, - "real_time": 3.3055061143213175e+07, - "cpu_time": 3.2853383285714563e+07, + "real_time": 3.3318172523563374e+07, + "cpu_time": 3.3105869666666791e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3483,8 +3483,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3247793872890592e+07, - "cpu_time": 3.3037538317460280e+07, + "real_time": 3.3368177126653280e+07, + "cpu_time": 3.3128752841269780e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3502,8 +3502,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3275240856926844e+07, - "cpu_time": 3.3069358476190303e+07, + "real_time": 3.3354849809603319e+07, + "cpu_time": 3.3124116047618806e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3521,8 +3521,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8058048030468973e+05, - "cpu_time": 1.7048682024747954e+05, + "real_time": 5.7831694680363413e+04, + "cpu_time": 2.5519484598581927e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3540,8 +3540,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.4313522573878337e-03, - "cpu_time": 5.1603972005800905e-03, + "real_time": 1.7331391661239287e-03, + "cpu_time": 7.7031226381668388e-04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3557,9 +3557,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 6028, - "real_time": 1.1350639183876089e+05, - "cpu_time": 1.1312052106834856e+05, + "iterations": 5865, + "real_time": 1.2021289548049826e+05, + "cpu_time": 1.1974597135549874e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3575,9 +3575,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 6028, - "real_time": 1.1464892982610090e+05, - "cpu_time": 1.1429455557398924e+05, + "iterations": 5865, + "real_time": 1.1911438107141195e+05, + "cpu_time": 1.1872463614663183e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3593,9 +3593,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 6028, - "real_time": 1.1432597097089760e+05, - "cpu_time": 1.1395518596549467e+05, + "iterations": 5865, + "real_time": 1.1790412719713211e+05, + "cpu_time": 1.1742106581415146e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3613,8 +3613,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1416043087858647e+05, - "cpu_time": 1.1379008753594417e+05, + "real_time": 1.1907713458301408e+05, + "cpu_time": 1.1863055777209399e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3632,8 +3632,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1432597097089760e+05, - "cpu_time": 1.1395518596549467e+05, + "real_time": 1.1911438107141195e+05, + "cpu_time": 1.1872463614663183e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3651,8 +3651,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8898294096836742e+02, - "cpu_time": 6.0417909074353395e+02, + "real_time": 1.1548347164198301e+03, + "cpu_time": 1.1653044664218460e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3670,8 +3670,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.1592564642189455e-03, - "cpu_time": 5.3095933382833983e-03, + "real_time": 9.6982071366080967e-03, + "cpu_time": 9.8229704749476093e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3687,9 +3687,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2607, - "real_time": 2.6669830187803652e+05, - "cpu_time": 2.6590613387034764e+05, + "iterations": 2528, + "real_time": 2.8028744342423760e+05, + "cpu_time": 2.7898451700949541e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3705,9 +3705,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2607, - "real_time": 2.6632751169879566e+05, - "cpu_time": 2.6547897084771446e+05, + "iterations": 2528, + "real_time": 2.7554704232713871e+05, + "cpu_time": 2.7442686550632969e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3723,9 +3723,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2607, - "real_time": 2.6775933601627342e+05, - "cpu_time": 2.6685591407748120e+05, + "iterations": 2528, + "real_time": 2.7304122824394261e+05, + "cpu_time": 2.7199893710443040e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3743,8 +3743,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6692838319770189e+05, - "cpu_time": 2.6608033959851443e+05, + "real_time": 2.7629190466510627e+05, + "cpu_time": 2.7513677320675185e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3762,8 +3762,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6669830187803652e+05, - "cpu_time": 2.6590613387034764e+05, + "real_time": 2.7554704232713871e+05, + "cpu_time": 2.7442686550632969e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3781,8 +3781,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4312399991635641e+02, - "cpu_time": 7.0480769810513505e+02, + "real_time": 3.6800847186847791e+03, + "cpu_time": 3.5464853531104641e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3800,8 +3800,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.7839826960850316e-03, - "cpu_time": 2.6488529711312433e-03, + "real_time": 1.3319553184684921e-02, + "cpu_time": 1.2889899491717358e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3817,9 +3817,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1152, - "real_time": 5.9576780382839288e+05, - "cpu_time": 5.9355672743055539e+05, + "iterations": 1078, + "real_time": 6.1954984601551632e+05, + "cpu_time": 6.1700765120593796e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3835,9 +3835,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1152, - "real_time": 6.0084273609896225e+05, - "cpu_time": 5.9806915538195160e+05, + "iterations": 1078, + "real_time": 6.4335297401679121e+05, + "cpu_time": 6.4031718089053920e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3853,9 +3853,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1152, - "real_time": 6.0341087239774223e+05, - "cpu_time": 6.0068853993054817e+05, + "iterations": 1078, + "real_time": 6.0898216974429949e+05, + "cpu_time": 6.0668400278294017e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3873,8 +3873,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0000713744169904e+05, - "cpu_time": 5.9743814091435156e+05, + "real_time": 6.2396166325886897e+05, + "cpu_time": 6.2133627829313907e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3892,8 +3892,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0084273609896225e+05, - "cpu_time": 5.9806915538195160e+05, + "real_time": 6.1954984601551632e+05, + "cpu_time": 6.1700765120593796e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3911,8 +3911,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8894463778379418e+03, - "cpu_time": 3.6075368089105755e+03, + "real_time": 1.7605003411703383e+04, + "cpu_time": 1.7229347832970187e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3930,8 +3930,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.4823335176006436e-03, - "cpu_time": 6.0383436574528134e-03, + "real_time": 2.8214879933095228e-02, + "cpu_time": 2.7729505639523571e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3947,9 +3947,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 521, - "real_time": 1.3522237620067080e+06, - "cpu_time": 1.3461664817658223e+06, + "iterations": 486, + "real_time": 1.3865247675301048e+06, + "cpu_time": 1.3793727798353981e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -3965,9 +3965,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 521, - "real_time": 1.3507929174859619e+06, - "cpu_time": 1.3444507408829364e+06, + "iterations": 486, + "real_time": 1.3822861172813624e+06, + "cpu_time": 1.3755845164608986e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -3983,9 +3983,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 521, - "real_time": 1.3568369097893275e+06, - "cpu_time": 1.3512398905950070e+06, + "iterations": 486, + "real_time": 1.3951749382531003e+06, + "cpu_time": 1.3878457427983482e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -4003,8 +4003,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3532845297606660e+06, - "cpu_time": 1.3472857044145886e+06, + "real_time": 1.3879952743548555e+06, + "cpu_time": 1.3809343463648816e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -4022,8 +4022,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3522237620067080e+06, - "cpu_time": 1.3461664817658225e+06, + "real_time": 1.3865247675301046e+06, + "cpu_time": 1.3793727798353978e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -4041,8 +4041,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1585411049450613e+03, - "cpu_time": 3.5302454527982595e+03, + "real_time": 6.5690348797831539e+03, + "cpu_time": 6.2780001070338121e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4060,8 +4060,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3339815356521244e-03, - "cpu_time": 2.6202649083493334e-03, + "real_time": 4.7327501765713591e-03, + "cpu_time": 4.5461973797376962e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4077,9 +4077,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 213, - "real_time": 3.4479459952901909e+06, - "cpu_time": 3.4295087887324127e+06, + "iterations": 223, + "real_time": 3.1400983946945001e+06, + "cpu_time": 3.1244889417040586e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4095,9 +4095,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 213, - "real_time": 3.2806659108186318e+06, - "cpu_time": 3.2638859014084539e+06, + "iterations": 223, + "real_time": 3.1220474663595650e+06, + "cpu_time": 3.1057233139013238e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4113,9 +4113,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 213, - "real_time": 3.2618859202241381e+06, - "cpu_time": 3.2469741643192377e+06, + "iterations": 223, + "real_time": 3.1206518833968169e+06, + "cpu_time": 3.1032628295964142e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4133,8 +4133,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3301659421109874e+06, - "cpu_time": 3.3134562848200351e+06, + "real_time": 3.1275992481502942e+06, + "cpu_time": 3.1111583617339320e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4152,8 +4152,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.2806659108186313e+06, - "cpu_time": 3.2638859014084544e+06, + "real_time": 3.1220474663595650e+06, + "cpu_time": 3.1057233139013243e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4171,8 +4171,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0243181979663535e+05, - "cpu_time": 1.0085950357350880e+05, + "real_time": 1.0847046197162557e+04, + "cpu_time": 1.1609985680904889e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4190,8 +4190,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.0758773459710530e-02, - "cpu_time": 3.0439364489453891e-02, + "real_time": 3.4681700999824876e-03, + "cpu_time": 3.7317244354075031e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4208,8 +4208,8 @@ "repetition_index": 0, "threads": 1, "iterations": 84, - "real_time": 8.3151214047185406e+06, - "cpu_time": 8.2699810476190643e+06, + "real_time": 8.4118565712179542e+06, + "cpu_time": 8.3578090238095541e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4226,8 +4226,8 @@ "repetition_index": 1, "threads": 1, "iterations": 84, - "real_time": 8.3280912379753618e+06, - "cpu_time": 8.2805903452379452e+06, + "real_time": 8.9663329882092681e+06, + "cpu_time": 8.9157921547619402e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4244,8 +4244,8 @@ "repetition_index": 2, "threads": 1, "iterations": 84, - "real_time": 8.3322243928185860e+06, - "cpu_time": 8.2800271785714580e+06, + "real_time": 8.3241173096688557e+06, + "cpu_time": 8.2769622023808975e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4263,8 +4263,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.3251456785041615e+06, - "cpu_time": 8.2768661904761540e+06, + "real_time": 8.5674356230320241e+06, + "cpu_time": 8.5168544603174627e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4282,8 +4282,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.3280912379753618e+06, - "cpu_time": 8.2800271785714589e+06, + "real_time": 8.4118565712179542e+06, + "cpu_time": 8.3578090238095531e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4301,8 +4301,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.9238607658521032e+03, - "cpu_time": 5.9693536753735389e+03, + "real_time": 3.4822963036378776e+05, + "cpu_time": 3.4784697090858850e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4320,8 +4320,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0719164697494540e-03, - "cpu_time": 7.2120939713175814e-04, + "real_time": 4.0645724775291499e-02, + "cpu_time": 4.0842187984931548e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4337,9 +4337,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 32, - "real_time": 2.1748032593677636e+07, - "cpu_time": 2.1608460312499743e+07, + "iterations": 33, + "real_time": 2.1202786454302967e+07, + "cpu_time": 2.1049975939394187e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4355,9 +4355,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 32, - "real_time": 2.4151544531378023e+07, - "cpu_time": 2.3988753593749747e+07, + "iterations": 33, + "real_time": 2.1158117817707755e+07, + "cpu_time": 2.1025956454545368e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4373,9 +4373,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 32, - "real_time": 2.1731705531237822e+07, - "cpu_time": 2.1602373593749836e+07, + "iterations": 33, + "real_time": 2.1253784606056854e+07, + "cpu_time": 2.1093920454545543e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4393,8 +4393,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2543760885431159e+07, - "cpu_time": 2.2399862499999776e+07, + "real_time": 2.1204896292689189e+07, + "cpu_time": 2.1056617616161700e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4412,8 +4412,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1748032593677636e+07, - "cpu_time": 2.1608460312499743e+07, + "real_time": 2.1202786454302967e+07, + "cpu_time": 2.1049975939394191e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4431,8 +4431,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3924054123610866e+06, - "cpu_time": 1.3760234165466379e+06, + "real_time": 4.7868279285973877e+04, + "cpu_time": 3.4465348202141817e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4450,8 +4450,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.1764557361896281e-02, - "cpu_time": 6.1429993891554104e-02, + "real_time": 2.2574163356072351e-03, + "cpu_time": 1.6367941342909907e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4467,9 +4467,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9, - "real_time": 6.2867419556520566e+07, - "cpu_time": 6.2387320888889685e+07, + "iterations": 11, + "real_time": 6.1432414180175826e+07, + "cpu_time": 6.0889678727273181e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4485,9 +4485,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9, - "real_time": 6.4554803666800991e+07, - "cpu_time": 6.4029209333333544e+07, + "iterations": 11, + "real_time": 6.1025747727729723e+07, + "cpu_time": 6.0603653181818694e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4503,9 +4503,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9, - "real_time": 6.2269070554369435e+07, - "cpu_time": 6.1768817111112326e+07, + "iterations": 11, + "real_time": 6.0803445908029310e+07, + "cpu_time": 6.0364405636363477e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4523,8 +4523,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.3230431259230316e+07, - "cpu_time": 6.2728449111111842e+07, + "real_time": 6.1087202605311602e+07, + "cpu_time": 6.0619245848485112e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4542,8 +4542,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2867419556520574e+07, - "cpu_time": 6.2387320888889670e+07, + "real_time": 6.1025747727729708e+07, + "cpu_time": 6.0603653181818686e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4561,8 +4561,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1853172940385167e+06, - "cpu_time": 1.1681693359981047e+06, + "real_time": 3.1895579368725367e+05, + "cpu_time": 2.6298346611344855e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4580,8 +4580,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8745994142899115e-02, - "cpu_time": 1.8622640166488236e-02, + "real_time": 5.2213193612424495e-03, + "cpu_time": 4.3382833691260874e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4598,8 +4598,8 @@ "repetition_index": 0, "threads": 1, "iterations": 4, - "real_time": 1.8396407225009170e+08, - "cpu_time": 1.8265281450000259e+08, + "real_time": 1.8493113650038141e+08, + "cpu_time": 1.8345952199999970e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4616,8 +4616,8 @@ "repetition_index": 1, "threads": 1, "iterations": 4, - "real_time": 1.7066075975162676e+08, - "cpu_time": 1.6965518974999937e+08, + "real_time": 1.7545055224763927e+08, + "cpu_time": 1.7413243025000113e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4634,8 +4634,8 @@ "repetition_index": 2, "threads": 1, "iterations": 4, - "real_time": 1.7532372624918935e+08, - "cpu_time": 1.7414484524999806e+08, + "real_time": 1.7636709049838829e+08, + "cpu_time": 1.7498345849999809e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4653,8 +4653,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7664951941696927e+08, - "cpu_time": 1.7548428316666669e+08, + "real_time": 1.7891625974880299e+08, + "cpu_time": 1.7752513691666630e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4672,8 +4672,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7532372624918935e+08, - "cpu_time": 1.7414484524999806e+08, + "real_time": 1.7636709049838826e+08, + "cpu_time": 1.7498345849999806e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4691,8 +4691,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7500241851975797e+06, - "cpu_time": 6.6015250310010808e+06, + "real_time": 5.2291555096189724e+06, + "cpu_time": 5.1569135157117592e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4710,8 +4710,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.8211392861276929e-02, - "cpu_time": 3.7618896187593419e-02, + "real_time": 2.9226832245211616e-02, + "cpu_time": 2.9048920086919932e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4727,9 +4727,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2553, - "real_time": 2.7610328006356570e+05, - "cpu_time": 2.7519259851155733e+05, + "iterations": 2445, + "real_time": 2.8716317914352054e+05, + "cpu_time": 2.8604619795501052e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4745,9 +4745,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2553, - "real_time": 2.7262658205952554e+05, - "cpu_time": 2.7173017234625900e+05, + "iterations": 2445, + "real_time": 2.8396120695121097e+05, + "cpu_time": 2.8304634928425285e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4763,9 +4763,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2553, - "real_time": 2.7537817547831591e+05, - "cpu_time": 2.7442027692910330e+05, + "iterations": 2445, + "real_time": 2.8444466093966475e+05, + "cpu_time": 2.8348736768915888e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4783,8 +4783,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7470267920046899e+05, - "cpu_time": 2.7378101592897315e+05, + "real_time": 2.8518968234479876e+05, + "cpu_time": 2.8419330497614073e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4802,8 +4802,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7537817547831585e+05, - "cpu_time": 2.7442027692910325e+05, + "real_time": 2.8444466093966475e+05, + "cpu_time": 2.8348736768915888e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4821,8 +4821,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8341424887022206e+03, - "cpu_time": 1.8175779783163516e+03, + "real_time": 1.7261080935726416e+03, + "cpu_time": 1.6197325710522116e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4840,8 +4840,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.6768278126756956e-03, - "cpu_time": 6.6388020811051583e-03, + "real_time": 6.0524913783022152e-03, + "cpu_time": 5.6994043937389563e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4857,9 +4857,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1309, - "real_time": 5.6441479526498239e+05, - "cpu_time": 5.6197730252100108e+05, + "iterations": 1222, + "real_time": 5.5389552700688445e+05, + "cpu_time": 5.5189120949262660e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4875,9 +4875,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1309, - "real_time": 5.4224300917248311e+05, - "cpu_time": 5.3978409702062292e+05, + "iterations": 1222, + "real_time": 5.5435413666471152e+05, + "cpu_time": 5.5191627414075134e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4893,9 +4893,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1309, - "real_time": 5.3507712069984933e+05, - "cpu_time": 5.3296460656990192e+05, + "iterations": 1222, + "real_time": 5.5669726266692590e+05, + "cpu_time": 5.5466473240589036e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4913,8 +4913,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.4724497504577169e+05, - "cpu_time": 5.4490866870384198e+05, + "real_time": 5.5498230877950729e+05, + "cpu_time": 5.5282407201308932e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4932,8 +4932,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.4224300917248323e+05, - "cpu_time": 5.3978409702062304e+05, + "real_time": 5.5435413666471152e+05, + "cpu_time": 5.5191627414075134e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4951,8 +4951,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5295082025622289e+04, - "cpu_time": 1.5170038160467988e+04, + "real_time": 1.5027910139513822e+03, + "cpu_time": 1.5941079230850594e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4970,8 +4970,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.7949241606728334e-02, - "cpu_time": 2.7839597774343555e-02, + "real_time": 2.7078178712691839e-03, + "cpu_time": 2.8835718337665212e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4987,9 +4987,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 624, - "real_time": 1.1554927099356204e+06, - "cpu_time": 1.1490566618589582e+06, + "iterations": 557, + "real_time": 1.1613928707470347e+06, + "cpu_time": 1.1547358491920976e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5005,9 +5005,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 624, - "real_time": 1.1243593188947460e+06, - "cpu_time": 1.1191240721153861e+06, + "iterations": 557, + "real_time": 1.2472090125857238e+06, + "cpu_time": 1.2394349030520557e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5023,9 +5023,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 624, - "real_time": 1.1438810528815314e+06, - "cpu_time": 1.1382519214743744e+06, + "iterations": 557, + "real_time": 1.1505794434375975e+06, + "cpu_time": 1.1448588132854577e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5043,8 +5043,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1412443605706326e+06, - "cpu_time": 1.1354775518162397e+06, + "real_time": 1.1863937755901187e+06, + "cpu_time": 1.1796765218432036e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5062,8 +5062,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1438810528815317e+06, - "cpu_time": 1.1382519214743746e+06, + "real_time": 1.1613928707470344e+06, + "cpu_time": 1.1547358491920976e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5081,8 +5081,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5733280623661807e+04, - "cpu_time": 1.5157929523495872e+04, + "real_time": 5.2944332469752291e+04, + "cpu_time": 5.1987373977748939e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5100,8 +5100,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3786075241410196e-02, - "cpu_time": 1.3349387224124499e-02, + "real_time": 4.4626272961873471e-02, + "cpu_time": 4.4069177452578670e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5117,9 +5117,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 289, - "real_time": 2.3844723079545312e+06, - "cpu_time": 2.3722216193771535e+06, + "iterations": 283, + "real_time": 2.4422395089147580e+06, + "cpu_time": 2.4291331908127326e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5135,9 +5135,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 289, - "real_time": 2.4226861937913341e+06, - "cpu_time": 2.4111745121107069e+06, + "iterations": 283, + "real_time": 2.4492209505737354e+06, + "cpu_time": 2.4365019363957406e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5153,9 +5153,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 289, - "real_time": 2.4716337058861549e+06, - "cpu_time": 2.4597143321799492e+06, + "iterations": 283, + "real_time": 2.4070393357034312e+06, + "cpu_time": 2.3969821272084555e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5173,8 +5173,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4262640692106732e+06, - "cpu_time": 2.4143701545559363e+06, + "real_time": 2.4328332650639750e+06, + "cpu_time": 2.4208724181389767e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5192,8 +5192,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4226861937913341e+06, - "cpu_time": 2.4111745121107069e+06, + "real_time": 2.4422395089147580e+06, + "cpu_time": 2.4291331908127326e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5211,8 +5211,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3690710874705655e+04, - "cpu_time": 4.3833808828086476e+04, + "real_time": 2.2609295119535480e+04, + "cpu_time": 2.1015092277346706e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5230,8 +5230,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8007401349729987e-02, - "cpu_time": 1.8155380501772570e-02, + "real_time": 9.2934010086963090e-03, + "cpu_time": 8.6807929735933254e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5248,8 +5248,8 @@ "repetition_index": 0, "threads": 1, "iterations": 115, - "real_time": 5.9126056608004989e+06, - "cpu_time": 5.8719608000000995e+06, + "real_time": 5.8015779738881337e+06, + "cpu_time": 5.7644407304347502e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5266,8 +5266,8 @@ "repetition_index": 1, "threads": 1, "iterations": 115, - "real_time": 5.8262068087376812e+06, - "cpu_time": 5.7936811130435010e+06, + "real_time": 5.9679846782945907e+06, + "cpu_time": 5.9246701478260970e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5284,8 +5284,8 @@ "repetition_index": 2, "threads": 1, "iterations": 115, - "real_time": 5.6979218607960753e+06, - "cpu_time": 5.6638630260869646e+06, + "real_time": 5.7739583216101415e+06, + "cpu_time": 5.7303521043478344e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5303,8 +5303,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8122447767780842e+06, - "cpu_time": 5.7765016463768547e+06, + "real_time": 5.8478403245976204e+06, + "cpu_time": 5.8064876608695602e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5322,8 +5322,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8262068087376812e+06, - "cpu_time": 5.7936811130434992e+06, + "real_time": 5.8015779738881337e+06, + "cpu_time": 5.7644407304347502e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5341,8 +5341,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0802077230060748e+05, - "cpu_time": 1.0510719020649804e+05, + "real_time": 1.0496051920575833e+05, + "cpu_time": 1.0375853591175134e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5360,8 +5360,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8585034947631179e-02, - "cpu_time": 1.8195647926876904e-02, + "real_time": 1.7948595272730957e-02, + "cpu_time": 1.7869414691258093e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5378,8 +5378,8 @@ "repetition_index": 0, "threads": 1, "iterations": 42, - "real_time": 1.6630917809379753e+07, - "cpu_time": 1.6511792023809422e+07, + "real_time": 1.7012846880658928e+07, + "cpu_time": 1.6855069785714179e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5396,8 +5396,8 @@ "repetition_index": 1, "threads": 1, "iterations": 42, - "real_time": 1.7047736643040221e+07, - "cpu_time": 1.6938945928571466e+07, + "real_time": 1.6986629000582200e+07, + "cpu_time": 1.6833719857143052e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5414,8 +5414,8 @@ "repetition_index": 2, "threads": 1, "iterations": 42, - "real_time": 1.6628109761984976e+07, - "cpu_time": 1.6514790285714502e+07, + "real_time": 1.6635681499749247e+07, + "cpu_time": 1.6495768880952189e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5433,8 +5433,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6768921404801646e+07, - "cpu_time": 1.6655176079365127e+07, + "real_time": 1.6878385793663453e+07, + "cpu_time": 1.6728186174603136e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5452,8 +5452,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6630917809379751e+07, - "cpu_time": 1.6514790285714500e+07, + "real_time": 1.6986629000582200e+07, + "cpu_time": 1.6833719857143048e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5471,8 +5471,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4146516123056287e+05, - "cpu_time": 2.4575647068308786e+05, + "real_time": 2.1059647438222493e+05, + "cpu_time": 2.0156215828749255e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5490,8 +5490,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.4399564253513722e-02, - "cpu_time": 1.4755561244865312e-02, + "real_time": 1.2477287636196098e-02, + "cpu_time": 1.2049253647924229e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5508,8 +5508,8 @@ "repetition_index": 0, "threads": 1, "iterations": 13, - "real_time": 5.2315635230535500e+07, - "cpu_time": 5.1975855846154019e+07, + "real_time": 5.1109755846062817e+07, + "cpu_time": 5.0738633000000052e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5526,8 +5526,8 @@ "repetition_index": 1, "threads": 1, "iterations": 13, - "real_time": 5.5533956769907556e+07, - "cpu_time": 5.5089881538460888e+07, + "real_time": 5.1282450847793370e+07, + "cpu_time": 5.0872196230769232e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5544,8 +5544,8 @@ "repetition_index": 2, "threads": 1, "iterations": 13, - "real_time": 5.0026816537585825e+07, - "cpu_time": 4.9747664692308016e+07, + "real_time": 5.8745214153672211e+07, + "cpu_time": 5.8188656615384430e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5563,8 +5563,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2625469512676299e+07, - "cpu_time": 5.2271134025640965e+07, + "real_time": 5.3712473615842797e+07, + "cpu_time": 5.3266495282051243e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5582,8 +5582,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2315635230535500e+07, - "cpu_time": 5.1975855846154027e+07, + "real_time": 5.1282450847793370e+07, + "cpu_time": 5.0872196230769239e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5601,8 +5601,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7666127930027535e+06, - "cpu_time": 2.6833210971278613e+06, + "real_time": 4.3593364038278963e+06, + "cpu_time": 4.2632398393327799e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5620,8 +5620,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.2571745556328736e-02, - "cpu_time": 5.1334663904777547e-02, + "real_time": 8.1160596605666005e-02, + "cpu_time": 8.0036049241807877e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5638,8 +5638,8 @@ "repetition_index": 0, "threads": 1, "iterations": 5, - "real_time": 1.3354533899982925e+08, - "cpu_time": 1.3265030139999965e+08, + "real_time": 1.3178888880065641e+08, + "cpu_time": 1.3092776940000021e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5656,8 +5656,8 @@ "repetition_index": 1, "threads": 1, "iterations": 5, - "real_time": 1.2846571620029862e+08, - "cpu_time": 1.2765321899999833e+08, + "real_time": 1.3267040840000847e+08, + "cpu_time": 1.3176093659999993e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5674,8 +5674,8 @@ "repetition_index": 2, "threads": 1, "iterations": 5, - "real_time": 1.2707989579939750e+08, - "cpu_time": 1.2627956600000231e+08, + "real_time": 1.3268610880477354e+08, + "cpu_time": 1.3163007140000217e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5693,8 +5693,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2969698366650845e+08, - "cpu_time": 1.2886102880000009e+08, + "real_time": 1.3238180200181280e+08, + "cpu_time": 1.3143959246666741e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5712,8 +5712,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2846571620029862e+08, - "cpu_time": 1.2765321899999832e+08, + "real_time": 1.3267040840000845e+08, + "cpu_time": 1.3163007140000218e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5731,8 +5731,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4040422477560900e+06, - "cpu_time": 3.3527109581545237e+06, + "real_time": 5.1353789904819598e+05, + "cpu_time": 4.4805531335165881e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5750,8 +5750,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6246117307623346e-02, - "cpu_time": 2.6018036557492717e-02, + "real_time": 3.8792182254866409e-03, + "cpu_time": 3.4088306646666141e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5768,8 +5768,8 @@ "repetition_index": 0, "threads": 1, "iterations": 2, - "real_time": 3.1222568250086623e+08, - "cpu_time": 3.1020289050000113e+08, + "real_time": 3.3422313000482970e+08, + "cpu_time": 3.3189806649999553e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5786,8 +5786,8 @@ "repetition_index": 1, "threads": 1, "iterations": 2, - "real_time": 2.8997987250477308e+08, - "cpu_time": 2.8838330399999988e+08, + "real_time": 3.1261445800191724e+08, + "cpu_time": 3.1048276749999815e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5804,8 +5804,8 @@ "repetition_index": 2, "threads": 1, "iterations": 2, - "real_time": 2.9867749900586206e+08, - "cpu_time": 2.9702155799999732e+08, + "real_time": 2.9147989700140899e+08, + "cpu_time": 2.8986815599999714e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5823,8 +5823,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0029435133716708e+08, - "cpu_time": 2.9853591749999940e+08, + "real_time": 3.1277249500271863e+08, + "cpu_time": 3.1074966333333027e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5842,8 +5842,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9867749900586206e+08, - "cpu_time": 2.9702155799999732e+08, + "real_time": 3.1261445800191724e+08, + "cpu_time": 3.1048276749999815e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5861,8 +5861,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1210694634656617e+07, - "cpu_time": 1.0988337102548443e+07, + "real_time": 2.1372054736650109e+07, + "cpu_time": 2.1016226331073124e+07, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5880,8 +5880,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.7332352689076649e-02, - "cpu_time": 3.6807420676771549e-02, + "real_time": 6.8330991625284498e-02, + "cpu_time": 6.7630729203814965e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5897,9 +5897,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 4595, - "real_time": 1.5387689967495840e+05, - "cpu_time": 1.5341619695321005e+05, + "iterations": 4351, + "real_time": 1.5961242932483804e+05, + "cpu_time": 1.5903337991266395e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5916,9 +5916,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 4595, - "real_time": 1.5607431381918039e+05, - "cpu_time": 1.5553370359086202e+05, + "iterations": 4351, + "real_time": 1.6147040611531536e+05, + "cpu_time": 1.6097874235807825e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5935,9 +5935,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 4595, - "real_time": 1.5534168661352131e+05, - "cpu_time": 1.5474480087051066e+05, + "iterations": 4351, + "real_time": 1.6108330728386005e+05, + "cpu_time": 1.6054411238795571e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5956,8 +5956,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5509763336922001e+05, - "cpu_time": 1.5456490047152757e+05, + "real_time": 1.6072204757467113e+05, + "cpu_time": 1.6018541155289928e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5976,8 +5976,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5534168661352128e+05, - "cpu_time": 1.5474480087051066e+05, + "real_time": 1.6108330728386005e+05, + "cpu_time": 1.6054411238795568e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5996,8 +5996,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1188515182333529e+03, - "cpu_time": 1.0701549912465023e+03, + "real_time": 9.8025551342853771e+02, + "cpu_time": 1.0210820132656331e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6016,8 +6016,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.2138529384897440e-03, - "cpu_time": 6.9236611156983600e-03, + "real_time": 6.0990730781544647e-03, + "cpu_time": 6.3743758146691974e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6034,9 +6034,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2348, - "real_time": 3.0235873679778207e+05, - "cpu_time": 3.0108759497444675e+05, + "iterations": 2275, + "real_time": 3.0990704790443426e+05, + "cpu_time": 3.0870987472527445e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6053,9 +6053,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2348, - "real_time": 3.0332614863656298e+05, - "cpu_time": 3.0183868398636742e+05, + "iterations": 2275, + "real_time": 3.1020442197856668e+05, + "cpu_time": 3.0886639120879053e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6072,9 +6072,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2348, - "real_time": 2.9839076746278559e+05, - "cpu_time": 2.9719685689948377e+05, + "iterations": 2275, + "real_time": 3.0921882154051581e+05, + "cpu_time": 3.0789497934066091e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6093,8 +6093,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0135855096571019e+05, - "cpu_time": 3.0004104528676596e+05, + "real_time": 3.0977676380783890e+05, + "cpu_time": 3.0849041509157530e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6113,8 +6113,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0235873679778207e+05, - "cpu_time": 3.0108759497444675e+05, + "real_time": 3.0990704790443432e+05, + "cpu_time": 3.0870987472527445e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6133,8 +6133,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6152964663007283e+03, - "cpu_time": 2.4916037732215941e+03, + "real_time": 5.0555169393950047e+02, + "cpu_time": 5.2156701630933912e+02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6153,8 +6153,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.6783549294352277e-03, - "cpu_time": 8.3042097485036739e-03, + "real_time": 1.6319871372053746e-03, + "cpu_time": 1.6907073633211978e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6171,9 +6171,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1167, - "real_time": 5.9918259553447273e+05, - "cpu_time": 5.9631605569836881e+05, + "iterations": 1107, + "real_time": 6.0545254290287313e+05, + "cpu_time": 6.0233885636857350e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6190,9 +6190,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1167, - "real_time": 5.9671369666052493e+05, - "cpu_time": 5.9318504113110597e+05, + "iterations": 1107, + "real_time": 6.1251096297669632e+05, + "cpu_time": 6.0918010930443439e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6209,9 +6209,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1167, - "real_time": 6.0188306169145461e+05, - "cpu_time": 5.9878753641816787e+05, + "iterations": 1107, + "real_time": 6.0889281392120186e+05, + "cpu_time": 6.0564358988256357e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6230,8 +6230,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.9925978462881746e+05, - "cpu_time": 5.9609621108254755e+05, + "real_time": 6.0895210660025710e+05, + "cpu_time": 6.0572085185185703e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6250,8 +6250,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.9918259553447273e+05, - "cpu_time": 5.9631605569836881e+05, + "real_time": 6.0889281392120186e+05, + "cpu_time": 6.0564358988256357e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6270,8 +6270,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5855468131494076e+03, - "cpu_time": 2.8077102951815864e+03, + "real_time": 3.5295835733039253e+03, + "cpu_time": 3.4212808262568647e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6290,8 +6290,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.3145675372674962e-03, - "cpu_time": 4.7101629619195375e-03, + "real_time": 5.7961595584411019e-03, + "cpu_time": 5.6482797575765440e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6308,9 +6308,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 571, - "real_time": 1.2343947267950464e+06, - "cpu_time": 1.2260335183887968e+06, + "iterations": 563, + "real_time": 1.2587571154153356e+06, + "cpu_time": 1.2507559644760210e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6327,9 +6327,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 571, - "real_time": 1.3653719702161825e+06, - "cpu_time": 1.3552850385289055e+06, + "iterations": 563, + "real_time": 1.3778503037382043e+06, + "cpu_time": 1.3689160248667910e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6346,9 +6346,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 571, - "real_time": 1.2238798563883619e+06, - "cpu_time": 1.2180373730297685e+06, + "iterations": 563, + "real_time": 1.3166045062148820e+06, + "cpu_time": 1.3087839129662502e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6367,8 +6367,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2745488511331968e+06, - "cpu_time": 1.2664519766491568e+06, + "real_time": 1.3177373084561408e+06, + "cpu_time": 1.3094853007696874e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6387,8 +6387,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2343947267950466e+06, - "cpu_time": 1.2260335183887968e+06, + "real_time": 1.3166045062148820e+06, + "cpu_time": 1.3087839129662500e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6407,8 +6407,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.8830640266894989e+04, - "cpu_time": 7.7035506406780900e+04, + "real_time": 5.9554674937527881e+04, + "cpu_time": 5.9083152645452144e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6427,8 +6427,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.1849838236335102e-02, - "cpu_time": 6.0827814893230581e-02, + "real_time": 4.5194648854028470e-02, + "cpu_time": 4.5119370649463822e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6445,9 +6445,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 245, - "real_time": 2.9110377183426362e+06, - "cpu_time": 2.8893036653061341e+06, + "iterations": 239, + "real_time": 2.9683592216604659e+06, + "cpu_time": 2.9436807782426812e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6464,9 +6464,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 245, - "real_time": 3.0184472081303708e+06, - "cpu_time": 2.9960085020408714e+06, + "iterations": 239, + "real_time": 2.9391373807728039e+06, + "cpu_time": 2.9150854393304875e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6483,9 +6483,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 245, - "real_time": 2.8937891387613490e+06, - "cpu_time": 2.8721630530612296e+06, + "iterations": 239, + "real_time": 2.9765875355163240e+06, + "cpu_time": 2.9521477949791085e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6504,8 +6504,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9410913550781184e+06, - "cpu_time": 2.9191584068027455e+06, + "real_time": 2.9613613793165311e+06, + "cpu_time": 2.9369713375174254e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6524,8 +6524,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9110377183426358e+06, - "cpu_time": 2.8893036653061341e+06, + "real_time": 2.9683592216604655e+06, + "cpu_time": 2.9436807782426812e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6544,8 +6544,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7544980386957672e+04, - "cpu_time": 6.7103673525487204e+04, + "real_time": 1.9681358456234837e+04, + "cpu_time": 1.9420787772128646e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6564,8 +6564,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.2965957949702520e-02, - "cpu_time": 2.2987335448843824e-02, + "real_time": 6.6460508986502702e-03, + "cpu_time": 6.6125220644967959e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6582,9 +6582,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 96, - "real_time": 7.0209723021434909e+06, - "cpu_time": 6.9715293124999655e+06, + "iterations": 89, + "real_time": 7.0090569438690096e+06, + "cpu_time": 6.9495575842696512e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6601,9 +6601,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 96, - "real_time": 6.9082949791360684e+06, - "cpu_time": 6.8592047291666046e+06, + "iterations": 89, + "real_time": 7.0018265955542540e+06, + "cpu_time": 6.9391039213483091e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6620,9 +6620,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 96, - "real_time": 6.8923519479540111e+06, - "cpu_time": 6.8369164583333610e+06, + "iterations": 89, + "real_time": 7.1400920896440372e+06, + "cpu_time": 7.0809575168538187e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6641,8 +6641,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9405397430778565e+06, - "cpu_time": 6.8892168333333097e+06, + "real_time": 7.0503252096890993e+06, + "cpu_time": 6.9898730074905930e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6661,8 +6661,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9082949791360684e+06, - "cpu_time": 6.8592047291666046e+06, + "real_time": 7.0090569438690096e+06, + "cpu_time": 6.9495575842696512e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6681,8 +6681,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0111286389714558e+04, - "cpu_time": 7.2150536547591357e+04, + "real_time": 7.7824411573982274e+04, + "cpu_time": 7.9054479010299154e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6701,8 +6701,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0101705196579273e-02, - "cpu_time": 1.0472966418837730e-02, + "real_time": 1.1038414436121326e-02, + "cpu_time": 1.1309859124133102e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6720,8 +6720,8 @@ "repetition_index": 0, "threads": 1, "iterations": 45, - "real_time": 1.5705191377977220e+07, - "cpu_time": 1.5604051044444291e+07, + "real_time": 1.5253418999620609e+07, + "cpu_time": 1.5129156622222379e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6739,8 +6739,8 @@ "repetition_index": 1, "threads": 1, "iterations": 45, - "real_time": 1.6109410555671072e+07, - "cpu_time": 1.5980047333333246e+07, + "real_time": 1.6748759844469735e+07, + "cpu_time": 1.6605307111111263e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6758,8 +6758,8 @@ "repetition_index": 2, "threads": 1, "iterations": 45, - "real_time": 1.5683112288954565e+07, - "cpu_time": 1.5545816355555706e+07, + "real_time": 1.5615015200132295e+07, + "cpu_time": 1.5477257888888907e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6778,8 +6778,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5832571407534286e+07, - "cpu_time": 1.5709971577777749e+07, + "real_time": 1.5872398014740877e+07, + "cpu_time": 1.5737240540740849e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6798,8 +6798,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5705191377977220e+07, - "cpu_time": 1.5604051044444293e+07, + "real_time": 1.5615015200132297e+07, + "cpu_time": 1.5477257888888909e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6818,8 +6818,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4000376455143033e+05, - "cpu_time": 2.3569791057976629e+05, + "real_time": 7.8018939720458270e+05, + "cpu_time": 7.7165296663051203e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6838,8 +6838,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.5158861967122985e-02, - "cpu_time": 1.5003076830079598e-02, + "real_time": 4.9153845340824488e-02, + "cpu_time": 4.9033562436365065e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6856,9 +6856,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2101, - "real_time": 3.3416093574730022e+05, - "cpu_time": 3.3247805854354991e+05, + "iterations": 2007, + "real_time": 3.5332630642905080e+05, + "cpu_time": 3.5090977927254490e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6875,9 +6875,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2101, - "real_time": 3.4085701189594774e+05, - "cpu_time": 3.3887609090908937e+05, + "iterations": 2007, + "real_time": 3.5303784105100768e+05, + "cpu_time": 3.5091627653213579e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6894,9 +6894,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2101, - "real_time": 3.4887860399466543e+05, - "cpu_time": 3.4683483246073226e+05, + "iterations": 2007, + "real_time": 3.6101995267618523e+05, + "cpu_time": 3.5862274389636359e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6915,8 +6915,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4129885054597113e+05, - "cpu_time": 3.3939632730445714e+05, + "real_time": 3.5579470005208114e+05, + "cpu_time": 3.5348293323368143e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6935,8 +6935,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4085701189594774e+05, - "cpu_time": 3.3887609090908937e+05, + "real_time": 3.5332630642905080e+05, + "cpu_time": 3.5091627653213585e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6955,8 +6955,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.3687757262902078e+03, - "cpu_time": 7.1925116445922822e+03, + "real_time": 4.5274995094299020e+03, + "cpu_time": 4.4512077900018876e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6975,8 +6975,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.1590391278794165e-02, - "cpu_time": 2.1192072706609475e-02, + "real_time": 1.2725033590346249e-02, + "cpu_time": 1.2592426314000486e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6993,9 +6993,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 638, - "real_time": 1.0822456614302287e+06, - "cpu_time": 1.0770881990595572e+06, + "iterations": 602, + "real_time": 1.1431282674127948e+06, + "cpu_time": 1.1358687159468476e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7012,9 +7012,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 638, - "real_time": 1.0697958761887101e+06, - "cpu_time": 1.0647440956112917e+06, + "iterations": 602, + "real_time": 1.1155049069927684e+06, + "cpu_time": 1.1096449867109756e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7031,9 +7031,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 638, - "real_time": 1.0666206363569596e+06, - "cpu_time": 1.0614965830721152e+06, + "iterations": 602, + "real_time": 1.0905021494985451e+06, + "cpu_time": 1.0857482823920376e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7052,8 +7052,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0728873913252994e+06, - "cpu_time": 1.0677762925809880e+06, + "real_time": 1.1163784413013693e+06, + "cpu_time": 1.1104206616832868e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7072,8 +7072,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0697958761887101e+06, - "cpu_time": 1.0647440956112919e+06, + "real_time": 1.1155049069927682e+06, + "cpu_time": 1.1096449867109756e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7092,8 +7092,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.2585380979169531e+03, - "cpu_time": 8.2261951181809727e+03, + "real_time": 2.6323931475417834e+04, + "cpu_time": 2.5069218549400928e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7112,8 +7112,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.6974882589639490e-03, - "cpu_time": 7.7040436047675562e-03, + "real_time": 2.3579756202324959e-02, + "cpu_time": 2.2576325724521819e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7130,9 +7130,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 183, - "real_time": 3.8669555846543200e+06, - "cpu_time": 3.8495006338798408e+06, + "iterations": 174, + "real_time": 4.0130024195793243e+06, + "cpu_time": 3.9946379310344514e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7149,9 +7149,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 183, - "real_time": 3.8868669891072172e+06, - "cpu_time": 3.8704164426229158e+06, + "iterations": 174, + "real_time": 3.9745058967054808e+06, + "cpu_time": 3.9582554597700764e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7168,9 +7168,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 183, - "real_time": 4.0759262131066490e+06, - "cpu_time": 4.0526571639344068e+06, + "iterations": 174, + "real_time": 3.9275639885153365e+06, + "cpu_time": 3.9129024655173044e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7189,8 +7189,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9432495956227290e+06, - "cpu_time": 3.9241914134790543e+06, + "real_time": 3.9716907682667132e+06, + "cpu_time": 3.9552652854406107e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7209,8 +7209,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8868669891072172e+06, - "cpu_time": 3.8704164426229154e+06, + "real_time": 3.9745058967054808e+06, + "cpu_time": 3.9582554597700764e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7229,8 +7229,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1533182399950705e+05, - "cpu_time": 1.1174504259200160e+05, + "real_time": 4.2788726164343469e+04, + "cpu_time": 4.0949693988036655e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7249,8 +7249,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9247913732758153e-02, - "cpu_time": 2.8475940854508993e-02, + "real_time": 1.0773428411451303e-02, + "cpu_time": 1.0353210475861904e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7267,9 +7267,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 47, - "real_time": 1.5065864680899663e+07, - "cpu_time": 1.5009377021276264e+07, + "iterations": 45, + "real_time": 1.5283883489125099e+07, + "cpu_time": 1.5218577688888976e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7286,9 +7286,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 47, - "real_time": 1.5020642595853597e+07, - "cpu_time": 1.4962434297872351e+07, + "iterations": 45, + "real_time": 1.5933800866413448e+07, + "cpu_time": 1.5861916844444420e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7305,9 +7305,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 47, - "real_time": 1.4809973680964135e+07, - "cpu_time": 1.4757937468084734e+07, + "iterations": 45, + "real_time": 1.5210718466227667e+07, + "cpu_time": 1.5150257066666959e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7326,8 +7326,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4965493652572462e+07, - "cpu_time": 1.4909916262411112e+07, + "real_time": 1.5476134273922071e+07, + "cpu_time": 1.5410250533333451e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7346,8 +7346,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5020642595853597e+07, - "cpu_time": 1.4962434297872350e+07, + "real_time": 1.5283883489125097e+07, + "cpu_time": 1.5218577688888974e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7366,8 +7366,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3656905001064815e+05, - "cpu_time": 1.3369394250985849e+05, + "real_time": 3.9803556694830203e+05, + "cpu_time": 3.9264331052454625e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7386,8 +7386,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.1255960666003742e-03, - "cpu_time": 8.9667802391962294e-03, + "real_time": 2.5719314649460524e-02, + "cpu_time": 2.5479359318346658e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7405,8 +7405,8 @@ "repetition_index": 0, "threads": 1, "iterations": 12, - "real_time": 5.7287003583041944e+07, - "cpu_time": 5.7123170416666366e+07, + "real_time": 5.8646104082678594e+07, + "cpu_time": 5.8442293750000358e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7424,8 +7424,8 @@ "repetition_index": 1, "threads": 1, "iterations": 12, - "real_time": 5.7607890082484424e+07, - "cpu_time": 5.7430033666664809e+07, + "real_time": 5.8599149750079960e+07, + "cpu_time": 5.8381791666666538e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7443,8 +7443,8 @@ "repetition_index": 2, "threads": 1, "iterations": 12, - "real_time": 5.8178159334299080e+07, - "cpu_time": 5.7757600499999262e+07, + "real_time": 5.8865837333238840e+07, + "cpu_time": 5.8643922416666307e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7463,8 +7463,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.7691017666608483e+07, - "cpu_time": 5.7436934861110143e+07, + "real_time": 5.8703697055332460e+07, + "cpu_time": 5.8489335944444396e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7483,8 +7483,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.7607890082484424e+07, - "cpu_time": 5.7430033666664809e+07, + "real_time": 5.8646104082678594e+07, + "cpu_time": 5.8442293750000358e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7503,8 +7503,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5135605643520114e+05, - "cpu_time": 3.1727133895765297e+05, + "real_time": 1.4236670828581837e+05, + "cpu_time": 1.3725107856626957e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7523,8 +7523,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.8236799191782284e-03, - "cpu_time": 5.5238208606510023e-03, + "real_time": 2.4251744852053780e-03, + "cpu_time": 2.3466000485393838e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7542,8 +7542,8 @@ "repetition_index": 0, "threads": 1, "iterations": 3, - "real_time": 2.2982852066343185e+08, - "cpu_time": 2.2906543199999872e+08, + "real_time": 2.3236395166410756e+08, + "cpu_time": 2.3157243633334208e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7561,8 +7561,8 @@ "repetition_index": 1, "threads": 1, "iterations": 3, - "real_time": 2.2727892999925339e+08, - "cpu_time": 2.2636837700000000e+08, + "real_time": 2.3338789967237973e+08, + "cpu_time": 2.3263515900000206e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7580,8 +7580,8 @@ "repetition_index": 2, "threads": 1, "iterations": 3, - "real_time": 2.3285727399828222e+08, - "cpu_time": 2.3186330033333507e+08, + "real_time": 2.3317426699213684e+08, + "cpu_time": 2.3234727733333215e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7600,8 +7600,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2998824155365583e+08, - "cpu_time": 2.2909903644444457e+08, + "real_time": 2.3297537277620801e+08, + "cpu_time": 2.3218495755555877e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7620,8 +7620,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2982852066343185e+08, - "cpu_time": 2.2906543199999872e+08, + "real_time": 2.3317426699213684e+08, + "cpu_time": 2.3234727733333215e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7640,8 +7640,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7925997770830602e+06, - "cpu_time": 2.7476157944364916e+06, + "real_time": 5.4017271567849617e+05, + "cpu_time": 5.4964138241714903e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7660,8 +7660,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2142358923299790e-02, - "cpu_time": 1.1993135532469928e-02, + "real_time": 2.3185829010235193e-03, + "cpu_time": 2.3672566397227833e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7678,9 +7678,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 5194, - "real_time": 1.3266751886856742e+05, - "cpu_time": 1.3154591259145027e+05, + "iterations": 5331, + "real_time": 1.2478490208398430e+05, + "cpu_time": 1.2380987919714779e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7697,9 +7697,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 5194, - "real_time": 1.3130809915363468e+05, - "cpu_time": 1.3010532345013291e+05, + "iterations": 5331, + "real_time": 1.3249372256814223e+05, + "cpu_time": 1.3128989307821999e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7716,9 +7716,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 5194, - "real_time": 1.2884908432706572e+05, - "cpu_time": 1.2773638679244889e+05, + "iterations": 5331, + "real_time": 1.2903942881183306e+05, + "cpu_time": 1.2802380322640981e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7737,8 +7737,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3094156744975592e+05, - "cpu_time": 1.2979587427801067e+05, + "real_time": 1.2877268448798654e+05, + "cpu_time": 1.2770785850059253e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7757,8 +7757,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3130809915363471e+05, - "cpu_time": 1.3010532345013291e+05, + "real_time": 1.2903942881183304e+05, + "cpu_time": 1.2802380322640981e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7777,8 +7777,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9354249415575671e+03, - "cpu_time": 1.9235230167356876e+03, + "real_time": 3.8613265486061105e+03, + "cpu_time": 3.7500023623445318e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7797,8 +7797,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.4780829183980987e-02, - "cpu_time": 1.4819600603141516e-02, + "real_time": 2.9985602645150582e-02, + "cpu_time": 2.9363912341597465e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7815,9 +7815,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2334, - "real_time": 2.9188688646077440e+05, - "cpu_time": 2.8995876820908487e+05, + "iterations": 2348, + "real_time": 2.9703217803590238e+05, + "cpu_time": 2.9170850255535840e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7834,9 +7834,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2334, - "real_time": 2.8548519793790526e+05, - "cpu_time": 2.8361743359040294e+05, + "iterations": 2348, + "real_time": 3.0098525041786104e+05, + "cpu_time": 2.9877492376489966e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7853,9 +7853,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2334, - "real_time": 2.8854454884625017e+05, - "cpu_time": 2.8670788217651437e+05, + "iterations": 2348, + "real_time": 3.0608955578903510e+05, + "cpu_time": 3.0404613032367971e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7874,8 +7874,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8863887774830993e+05, - "cpu_time": 2.8676136132533400e+05, + "real_time": 3.0136899474759947e+05, + "cpu_time": 2.9817651888131257e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7894,8 +7894,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8854454884625011e+05, - "cpu_time": 2.8670788217651437e+05, + "real_time": 3.0098525041786098e+05, + "cpu_time": 2.9877492376489966e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7914,8 +7914,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.2018865442581614e+03, - "cpu_time": 3.1710055504633001e+03, + "real_time": 4.5408664067224045e+03, + "cpu_time": 6.1905436789447258e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7934,8 +7934,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1093053608149672e-02, - "cpu_time": 1.1057994479478561e-02, + "real_time": 1.5067463759918104e-02, + "cpu_time": 2.0761338626428986e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7952,9 +7952,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 796, - "real_time": 8.8112485174870060e+05, - "cpu_time": 8.7488517964825244e+05, + "iterations": 721, + "real_time": 9.5932074615327525e+05, + "cpu_time": 9.5193887933424360e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -7971,9 +7971,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 796, - "real_time": 8.5841894094790122e+05, - "cpu_time": 8.5318432914572989e+05, + "iterations": 721, + "real_time": 9.7721735229127982e+05, + "cpu_time": 9.6936163938975334e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -7990,9 +7990,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 796, - "real_time": 9.5851955778578564e+05, - "cpu_time": 9.5112967964822904e+05, + "iterations": 721, + "real_time": 9.4006388486445660e+05, + "cpu_time": 9.3281144521494245e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -8011,8 +8011,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.9935445016079571e+05, - "cpu_time": 8.9306639614740352e+05, + "real_time": 9.5886732776967064e+05, + "cpu_time": 9.5137065464631317e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -8031,8 +8031,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.8112485174870060e+05, - "cpu_time": 8.7488517964825255e+05, + "real_time": 9.5932074615327513e+05, + "cpu_time": 9.5193887933424360e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -8051,8 +8051,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2481159157654816e+04, - "cpu_time": 5.1441621244921822e+04, + "real_time": 1.8580883365218095e+04, + "cpu_time": 1.8281721281819497e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8071,8 +8071,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.8354255264174981e-02, - "cpu_time": 5.7601116184458033e-02, + "real_time": 1.9377950240975786e-02, + "cpu_time": 1.9216192125051421e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8089,9 +8089,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 116, - "real_time": 5.0812632845040280e+06, - "cpu_time": 5.0276586034481227e+06, + "iterations": 109, + "real_time": 5.6205549447716074e+06, + "cpu_time": 5.5457994587156754e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8108,9 +8108,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 116, - "real_time": 4.9862488448180277e+06, - "cpu_time": 4.9387460517241396e+06, + "iterations": 109, + "real_time": 5.9907739541980382e+06, + "cpu_time": 5.9113671743118977e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8127,9 +8127,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 116, - "real_time": 5.0431421034867028e+06, - "cpu_time": 4.9845031724138493e+06, + "iterations": 109, + "real_time": 5.0800898349459432e+06, + "cpu_time": 5.0185620366970822e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8148,8 +8148,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.0368847442695852e+06, - "cpu_time": 4.9836359425287042e+06, + "real_time": 5.5638062446385296e+06, + "cpu_time": 5.4919095565748857e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8168,8 +8168,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.0431421034867028e+06, - "cpu_time": 4.9845031724138493e+06, + "real_time": 5.6205549447716065e+06, + "cpu_time": 5.5457994587156763e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8188,8 +8188,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.7815288825736119e+04, - "cpu_time": 4.4462619460212882e+04, + "real_time": 4.5798657457352517e+05, + "cpu_time": 4.4883554293573764e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8208,8 +8208,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.4930281817814290e-03, - "cpu_time": 8.9217230096571790e-03, + "real_time": 8.2315334940870108e-02, + "cpu_time": 8.1726681459710862e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8226,9 +8226,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 28, - "real_time": 2.5102633143043410e+07, - "cpu_time": 2.4885775642856751e+07, + "iterations": 26, + "real_time": 2.6842513768665060e+07, + "cpu_time": 2.6538571653845750e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8245,9 +8245,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 28, - "real_time": 2.5126405178265747e+07, - "cpu_time": 2.4882487535715014e+07, + "iterations": 26, + "real_time": 2.6442388577449422e+07, + "cpu_time": 2.6176888538461622e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8264,9 +8264,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 28, - "real_time": 2.5236648392560061e+07, - "cpu_time": 2.4974445571428660e+07, + "iterations": 26, + "real_time": 2.6032183076425169e+07, + "cpu_time": 2.5784397423077639e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8285,8 +8285,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5155228904623073e+07, - "cpu_time": 2.4914236250000145e+07, + "real_time": 2.6439028474179883e+07, + "cpu_time": 2.6166619205128338e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8305,8 +8305,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5126405178265747e+07, - "cpu_time": 2.4885775642856747e+07, + "real_time": 2.6442388577449422e+07, + "cpu_time": 2.6176888538461622e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8325,8 +8325,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1506133838634225e+04, - "cpu_time": 5.2168713826543702e+04, + "real_time": 4.0517579569474870e+05, + "cpu_time": 3.7719197631191387e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8345,8 +8345,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.8425952357560421e-03, - "cpu_time": 2.0939318911107861e-03, + "real_time": 1.5324912414631259e-02, + "cpu_time": 1.4415006132622164e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8364,8 +8364,8 @@ "repetition_index": 0, "threads": 1, "iterations": 5, - "real_time": 1.2901079159928486e+08, - "cpu_time": 1.2789042899999571e+08, + "real_time": 1.2198015240137465e+08, + "cpu_time": 1.2094263579999733e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8383,8 +8383,8 @@ "repetition_index": 1, "threads": 1, "iterations": 5, - "real_time": 1.2328294980106875e+08, - "cpu_time": 1.2223155800000426e+08, + "real_time": 1.2660427120281383e+08, + "cpu_time": 1.2563009380000381e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8402,8 +8402,8 @@ "repetition_index": 2, "threads": 1, "iterations": 5, - "real_time": 1.2491676739882679e+08, - "cpu_time": 1.2392164259999844e+08, + "real_time": 1.2643557180417702e+08, + "cpu_time": 1.2531702260000089e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8422,8 +8422,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2573683626639344e+08, - "cpu_time": 1.2468120986666612e+08, + "real_time": 1.2500666513612181e+08, + "cpu_time": 1.2396325073333400e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8442,8 +8442,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2491676739882678e+08, - "cpu_time": 1.2392164259999843e+08, + "real_time": 1.2643557180417700e+08, + "cpu_time": 1.2531702260000087e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8462,8 +8462,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9506656243997463e+06, - "cpu_time": 2.9048945029181428e+06, + "real_time": 2.6223938247274985e+06, + "cpu_time": 2.6206085792593178e+06, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8482,8 +8482,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3466994335282088e-02, - "cpu_time": 2.3298574869658646e-02, + "real_time": 2.0978032026307807e-02, + "cpu_time": 2.1140205373419027e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, diff --git a/research/benchmark-results/query.json b/research/benchmark-results/query.json index bc4cee9..2fe2b6b 100644 --- a/research/benchmark-results/query.json +++ b/research/benchmark-results/query.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-02T01:16:13+03:00", + "date": "2026-06-09T23:45:24+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [0.375977,0.381836,0.45752], + "load_avg": [0.406738,0.518066,0.863281], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,9 +47,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 34521, - "real_time": 2.0956768459664425e+04, - "cpu_time": 2.0850844152834507e+04, + "iterations": 35883, + "real_time": 1.9347125825426523e+04, + "cpu_time": 1.9274702784048157e+04, "time_unit": "ns" }, { @@ -61,9 +61,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 34521, - "real_time": 2.4071903450188511e+04, - "cpu_time": 2.3901399727701977e+04, + "iterations": 35883, + "real_time": 1.9958099769192188e+04, + "cpu_time": 1.9870254744586575e+04, "time_unit": "ns" }, { @@ -75,9 +75,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 34521, - "real_time": 2.2447170504518679e+04, - "cpu_time": 2.2296074881955916e+04, + "iterations": 35883, + "real_time": 1.9839301117551120e+04, + "cpu_time": 1.9744612713541232e+04, "time_unit": "ns" }, { @@ -91,8 +91,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2491947471457202e+04, - "cpu_time": 2.2349439587497462e+04, + "real_time": 1.9714842237389941e+04, + "cpu_time": 1.9629856747391983e+04, "time_unit": "ns" }, { @@ -106,8 +106,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2447170504518683e+04, - "cpu_time": 2.2296074881955912e+04, + "real_time": 1.9839301117551116e+04, + "cpu_time": 1.9744612713541228e+04, "time_unit": "ns" }, { @@ -121,8 +121,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5580501387545544e+03, - "cpu_time": 1.5259777759478854e+03, + "real_time": 3.2394413041203410e+02, + "cpu_time": 3.1392233633584686e+02, "time_unit": "ns" }, { @@ -136,8 +136,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.9271464408840328e-02, - "cpu_time": 6.8278122588878470e-02, + "real_time": 1.6431484792592550e-02, + "cpu_time": 1.5992084933454977e-02, "time_unit": "ns" }, { @@ -149,9 +149,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 34621, - "real_time": 2.1451438086390688e+04, - "cpu_time": 2.1330684237890302e+04, + "iterations": 35706, + "real_time": 1.9395967988571840e+04, + "cpu_time": 1.9322896347952723e+04, "time_unit": "ns" }, { @@ -163,9 +163,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 34621, - "real_time": 2.0835122295628222e+04, - "cpu_time": 2.0741762340775836e+04, + "iterations": 35706, + "real_time": 1.9952500560384295e+04, + "cpu_time": 1.9850908390746659e+04, "time_unit": "ns" }, { @@ -177,9 +177,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 34621, - "real_time": 1.9800852661814268e+04, - "cpu_time": 1.9729751278125987e+04, + "iterations": 35706, + "real_time": 1.9349337225960488e+04, + "cpu_time": 1.9260752674620504e+04, "time_unit": "ns" }, { @@ -193,8 +193,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0695804347944391e+04, - "cpu_time": 2.0600732618930710e+04, + "real_time": 1.9565935258305544e+04, + "cpu_time": 1.9478185804439960e+04, "time_unit": "ns" }, { @@ -208,8 +208,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0835122295628222e+04, - "cpu_time": 2.0741762340775840e+04, + "real_time": 1.9395967988571840e+04, + "cpu_time": 1.9322896347952723e+04, "time_unit": "ns" }, { @@ -223,8 +223,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.3406545238738693e+02, - "cpu_time": 8.0973058621220582e+02, + "real_time": 3.3558628783648948e+02, + "cpu_time": 3.2427928362951928e+02, "time_unit": "ns" }, { @@ -238,8 +238,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.0301185610610510e-02, - "cpu_time": 3.9305912133829508e-02, + "real_time": 1.7151558737476476e-02, + "cpu_time": 1.6648330952649670e-02, "time_unit": "ns" }, { @@ -251,9 +251,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 34006, - "real_time": 1.9905235928914706e+04, - "cpu_time": 1.9806883432335464e+04, + "iterations": 35747, + "real_time": 1.9461075754495792e+04, + "cpu_time": 1.9392605757126468e+04, "time_unit": "ns" }, { @@ -265,9 +265,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 34006, - "real_time": 2.0232451567379769e+04, - "cpu_time": 2.0150346409457165e+04, + "iterations": 35747, + "real_time": 2.0039857134594396e+04, + "cpu_time": 1.9956820963996979e+04, "time_unit": "ns" }, { @@ -279,9 +279,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 34006, - "real_time": 1.9979601540792919e+04, - "cpu_time": 1.9905176204199270e+04, + "iterations": 35747, + "real_time": 1.9761389738938429e+04, + "cpu_time": 1.9648120653481416e+04, "time_unit": "ns" }, { @@ -295,8 +295,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0039096345695798e+04, - "cpu_time": 1.9954135348663967e+04, + "real_time": 1.9754107542676207e+04, + "cpu_time": 1.9665849124868284e+04, "time_unit": "ns" }, { @@ -310,8 +310,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9979601540792919e+04, - "cpu_time": 1.9905176204199270e+04, + "real_time": 1.9761389738938433e+04, + "cpu_time": 1.9648120653481416e+04, "time_unit": "ns" }, { @@ -325,8 +325,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7152912980545207e+02, - "cpu_time": 1.7688824871481089e+02, + "real_time": 2.8945940004436528e+02, + "cpu_time": 2.8252508550457100e+02, "time_unit": "ns" }, { @@ -340,8 +340,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.5597237942465817e-03, - "cpu_time": 8.8647413492990296e-03, + "real_time": 1.4653124643521634e-02, + "cpu_time": 1.4366279518910081e-02, "time_unit": "ns" }, { @@ -353,9 +353,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 34063, - "real_time": 1.9751227049826088e+04, - "cpu_time": 1.9676696679681751e+04, + "iterations": 34985, + "real_time": 1.9576876347119727e+04, + "cpu_time": 1.9499444018865241e+04, "time_unit": "ns" }, { @@ -367,9 +367,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 34063, - "real_time": 1.9815156415895137e+04, - "cpu_time": 1.9738392008924649e+04, + "iterations": 34985, + "real_time": 2.0412169873552859e+04, + "cpu_time": 2.0322958525082195e+04, "time_unit": "ns" }, { @@ -381,9 +381,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 34063, - "real_time": 1.9429818571364620e+04, - "cpu_time": 1.9358088336317978e+04, + "iterations": 34985, + "real_time": 1.9421935715485401e+04, + "cpu_time": 1.9353340631699339e+04, "time_unit": "ns" }, { @@ -397,8 +397,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9665400679028615e+04, - "cpu_time": 1.9591059008308122e+04, + "real_time": 1.9803660645385997e+04, + "cpu_time": 1.9725247725215591e+04, "time_unit": "ns" }, { @@ -412,8 +412,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9751227049826088e+04, - "cpu_time": 1.9676696679681751e+04, + "real_time": 1.9576876347119727e+04, + "cpu_time": 1.9499444018865244e+04, "time_unit": "ns" }, { @@ -427,8 +427,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0650892971011589e+02, - "cpu_time": 2.0410310854664775e+02, + "real_time": 5.3264834591507758e+02, + "cpu_time": 5.2276208751519619e+02, "time_unit": "ns" }, { @@ -442,8 +442,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0501130034453817e-02, - "cpu_time": 1.0418176396696689e-02, + "real_time": 2.6896458965488181e-02, + "cpu_time": 2.6502181102999685e-02, "time_unit": "ns" }, { @@ -455,9 +455,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9523, - "real_time": 6.7734826314987717e+04, - "cpu_time": 6.6976087892470867e+04, + "iterations": 9891, + "real_time": 6.9485813061832043e+04, + "cpu_time": 6.8783745020725837e+04, "time_unit": "ns" }, { @@ -469,9 +469,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9523, - "real_time": 7.4560993069410833e+04, - "cpu_time": 7.3580527459834018e+04, + "iterations": 9891, + "real_time": 6.9380505410659636e+04, + "cpu_time": 6.8705246486705015e+04, "time_unit": "ns" }, { @@ -483,9 +483,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9523, - "real_time": 7.2185913472089000e+04, - "cpu_time": 7.1298075606426384e+04, + "iterations": 9891, + "real_time": 7.2888390554632861e+04, + "cpu_time": 7.0598849358002219e+04, "time_unit": "ns" }, { @@ -499,8 +499,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1493910952162521e+04, - "cpu_time": 7.0618230319577080e+04, + "real_time": 7.0584903009041518e+04, + "cpu_time": 6.9362613621811019e+04, "time_unit": "ns" }, { @@ -514,8 +514,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2185913472089000e+04, - "cpu_time": 7.1298075606426384e+04, + "real_time": 6.9485813061832057e+04, + "cpu_time": 6.8783745020725837e+04, "time_unit": "ns" }, { @@ -529,8 +529,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4652977874184539e+03, - "cpu_time": 3.3542954118975481e+03, + "real_time": 1.9955734964841440e+03, + "cpu_time": 1.0713307619682653e+03, "time_unit": "ns" }, { @@ -544,8 +544,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.8469831084455968e-02, - "cpu_time": 4.7499001273721468e-02, + "real_time": 2.8271959178416985e-02, + "cpu_time": 1.5445363229960325e-02, "time_unit": "ns" }, { @@ -557,9 +557,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 8590, - "real_time": 7.2206211525310428e+04, - "cpu_time": 7.1370953317811305e+04, + "iterations": 16294, + "real_time": 4.5328077084222074e+04, + "cpu_time": 4.5118617589296737e+04, "time_unit": "ns" }, { @@ -571,9 +571,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 8590, - "real_time": 7.1837302561354969e+04, - "cpu_time": 7.0986034225844036e+04, + "iterations": 16294, + "real_time": 4.2265272677276589e+04, + "cpu_time": 4.2094951086289366e+04, "time_unit": "ns" }, { @@ -585,9 +585,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 8590, - "real_time": 6.9535109429968230e+04, - "cpu_time": 6.8780370430733412e+04, + "iterations": 16294, + "real_time": 4.1824865902154910e+04, + "cpu_time": 4.1692916656437970e+04, "time_unit": "ns" }, { @@ -601,8 +601,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1192874505544547e+04, - "cpu_time": 7.0379119324796251e+04, + "real_time": 4.3139405221217858e+04, + "cpu_time": 4.2968828444008017e+04, "time_unit": "ns" }, { @@ -616,8 +616,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1837302561354954e+04, - "cpu_time": 7.0986034225844036e+04, + "real_time": 4.2265272677276589e+04, + "cpu_time": 4.2094951086289366e+04, "time_unit": "ns" }, { @@ -631,8 +631,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4474675264996595e+03, - "cpu_time": 1.3978695205702243e+03, + "real_time": 1.9081936287554665e+03, + "cpu_time": 1.8725925738392880e+03, "time_unit": "ns" }, { @@ -646,8 +646,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.0331634823748123e-02, - "cpu_time": 1.9861992221288299e-02, + "real_time": 4.4233192807603502e-02, + "cpu_time": 4.3580256703517832e-02, "time_unit": "ns" }, { @@ -659,9 +659,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9950, - "real_time": 7.1095941407224585e+04, - "cpu_time": 7.0266699899497558e+04, + "iterations": 10101, + "real_time": 6.7519916445501847e+04, + "cpu_time": 6.6872900306900425e+04, "time_unit": "ns" }, { @@ -673,9 +673,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9950, - "real_time": 7.4232385930226155e+04, - "cpu_time": 7.3228391859296491e+04, + "iterations": 10101, + "real_time": 6.7762344916422226e+04, + "cpu_time": 6.7088890208890210e+04, "time_unit": "ns" }, { @@ -687,9 +687,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9950, - "real_time": 7.8242160603649754e+04, - "cpu_time": 7.7059992261306659e+04, + "iterations": 10101, + "real_time": 7.1656405504046284e+04, + "cpu_time": 7.0902481140481046e+04, "time_unit": "ns" }, { @@ -703,8 +703,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4523495980366817e+04, - "cpu_time": 7.3518361340033574e+04, + "real_time": 6.8979555621990105e+04, + "cpu_time": 6.8288090552090536e+04, "time_unit": "ns" }, { @@ -718,8 +718,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4232385930226155e+04, - "cpu_time": 7.3228391859296491e+04, + "real_time": 6.7762344916422226e+04, + "cpu_time": 6.7088890208890210e+04, "time_unit": "ns" }, { @@ -733,8 +733,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5819926014453490e+03, - "cpu_time": 3.4059164703608490e+03, + "real_time": 2.3213868396231469e+03, + "cpu_time": 2.2667027861942097e+03, "time_unit": "ns" }, { @@ -748,8 +748,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.8065278665791834e-02, - "cpu_time": 4.6327426350105498e-02, + "real_time": 3.3653258834319140e-02, + "cpu_time": 3.3193237178965433e-02, "time_unit": "ns" }, { @@ -761,9 +761,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9612, - "real_time": 7.8121309405331005e+04, - "cpu_time": 7.6963363503953427e+04, + "iterations": 16451, + "real_time": 4.3826071910359613e+04, + "cpu_time": 4.3656422588292517e+04, "time_unit": "ns" }, { @@ -775,9 +775,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9612, - "real_time": 6.8386549001906576e+04, - "cpu_time": 6.7663309821056770e+04, + "iterations": 16451, + "real_time": 4.5471952586603991e+04, + "cpu_time": 4.5253403805239861e+04, "time_unit": "ns" }, { @@ -789,9 +789,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9612, - "real_time": 6.5304516334599408e+04, - "cpu_time": 6.4723655326674838e+04, + "iterations": 16451, + "real_time": 4.3340157679465607e+04, + "cpu_time": 4.3146676615403223e+04, "time_unit": "ns" }, { @@ -805,8 +805,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0604124913945663e+04, - "cpu_time": 6.9783442883894997e+04, + "real_time": 4.4212727392143075e+04, + "cpu_time": 4.4018834336311869e+04, "time_unit": "ns" }, { @@ -820,8 +820,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8386549001906576e+04, - "cpu_time": 6.7663309821056770e+04, + "real_time": 4.3826071910359613e+04, + "cpu_time": 4.3656422588292531e+04, "time_unit": "ns" }, { @@ -835,8 +835,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6899759602507065e+03, - "cpu_time": 6.3893534273306313e+03, + "real_time": 1.1172574581177582e+03, + "cpu_time": 1.0991276401882440e+03, "time_unit": "ns" }, { @@ -850,8 +850,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.4753330182969372e-02, - "cpu_time": 9.1559733416437653e-02, + "real_time": 2.5270041547274080e-02, + "cpu_time": 2.4969485375071716e-02, "time_unit": "ns" }, { @@ -863,9 +863,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 8005, - "real_time": 8.7787281075910752e+04, - "cpu_time": 8.6833757276702265e+04, + "iterations": 7826, + "real_time": 8.9939901991683058e+04, + "cpu_time": 8.8865522616917951e+04, "time_unit": "ns" }, { @@ -877,9 +877,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 8005, - "real_time": 9.4056740163364142e+04, - "cpu_time": 9.2897929419112756e+04, + "iterations": 7826, + "real_time": 9.3378252363479318e+04, + "cpu_time": 9.2188841809353500e+04, "time_unit": "ns" }, { @@ -891,9 +891,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 8005, - "real_time": 8.4392947408685955e+04, - "cpu_time": 8.3606973141786482e+04, + "iterations": 7826, + "real_time": 8.7275915154285205e+04, + "cpu_time": 8.6283555839509107e+04, "time_unit": "ns" }, { @@ -907,8 +907,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.8745656215986950e+04, - "cpu_time": 8.7779553279200496e+04, + "real_time": 9.0198023169815875e+04, + "cpu_time": 8.9112640088593515e+04, "time_unit": "ns" }, { @@ -922,8 +922,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.7787281075910738e+04, - "cpu_time": 8.6833757276702279e+04, + "real_time": 8.9939901991683058e+04, + "cpu_time": 8.8865522616917951e+04, "time_unit": "ns" }, { @@ -937,8 +937,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9026609900321755e+03, - "cpu_time": 4.7171352212497422e+03, + "real_time": 3.0593462962911394e+03, + "cpu_time": 2.9603886366515130e+03, "time_unit": "ns" }, { @@ -952,8 +952,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.5243954454516651e-02, - "cpu_time": 5.3738428199172378e-02, + "real_time": 3.3918108055775310e-02, + "cpu_time": 3.3220748860188297e-02, "time_unit": "ns" }, { @@ -965,9 +965,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 8132, - "real_time": 8.8670200074989538e+04, - "cpu_time": 8.7742495450073635e+04, + "iterations": 8124, + "real_time": 9.1373874814580195e+04, + "cpu_time": 9.0240014524864659e+04, "time_unit": "ns" }, { @@ -979,9 +979,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 8132, - "real_time": 9.5884095057348080e+04, - "cpu_time": 9.4661022503689237e+04, + "iterations": 8124, + "real_time": 1.0381180330036678e+05, + "cpu_time": 1.0038200763170891e+05, "time_unit": "ns" }, { @@ -993,9 +993,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 8132, - "real_time": 9.4811416625880011e+04, - "cpu_time": 9.3695866945401081e+04, + "iterations": 8124, + "real_time": 9.5242334689878713e+04, + "cpu_time": 9.3994281265386206e+04, "time_unit": "ns" }, { @@ -1009,8 +1009,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.3121903919405871e+04, - "cpu_time": 9.2033128299721327e+04, + "real_time": 9.6809337601608553e+04, + "cpu_time": 9.4872101140653249e+04, "time_unit": "ns" }, { @@ -1024,8 +1024,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.4811416625880011e+04, - "cpu_time": 9.3695866945401067e+04, + "real_time": 9.5242334689878728e+04, + "cpu_time": 9.3994281265386206e+04, "time_unit": "ns" }, { @@ -1039,8 +1039,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8924169988747799e+03, - "cpu_time": 3.7470026689048532e+03, + "real_time": 6.3653075219044285e+03, + "cpu_time": 5.1276633903641432e+03, "time_unit": "ns" }, { @@ -1054,8 +1054,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.1799156106640034e-02, - "cpu_time": 4.0713629299898517e-02, + "real_time": 6.5750966586498608e-02, + "cpu_time": 5.4048169363953388e-02, "time_unit": "ns" }, { @@ -1067,9 +1067,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 8535, - "real_time": 8.7415463152392287e+04, - "cpu_time": 8.6224500761569769e+04, + "iterations": 6458, + "real_time": 1.0016481913773292e+05, + "cpu_time": 9.8046890987921797e+04, "time_unit": "ns" }, { @@ -1081,9 +1081,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 8535, - "real_time": 8.5500912711091936e+04, - "cpu_time": 8.4545625659050886e+04, + "iterations": 6458, + "real_time": 1.0063212589107969e+05, + "cpu_time": 9.9071416382781026e+04, "time_unit": "ns" }, { @@ -1095,9 +1095,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 8535, - "real_time": 8.0450461627986442e+04, - "cpu_time": 7.9660843819566682e+04, + "iterations": 6458, + "real_time": 8.5858419942888766e+04, + "cpu_time": 8.4224828120161445e+04, "time_unit": "ns" }, { @@ -1111,8 +1111,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.4455612497156879e+04, - "cpu_time": 8.3476990080062445e+04, + "real_time": 9.5551788323900444e+04, + "cpu_time": 9.3781045163621427e+04, "time_unit": "ns" }, { @@ -1126,8 +1126,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.5500912711091936e+04, - "cpu_time": 8.4545625659050871e+04, + "real_time": 1.0016481913773289e+05, + "cpu_time": 9.8046890987921797e+04, "time_unit": "ns" }, { @@ -1141,8 +1141,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5982358124065668e+03, - "cpu_time": 3.4098217861917587e+03, + "real_time": 8.3979543239963441e+03, + "cpu_time": 8.2917655663595015e+03, "time_unit": "ns" }, { @@ -1156,8 +1156,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.2605052595263558e-02, - "cpu_time": 4.0847445301051367e-02, + "real_time": 8.7889033489661622e-02, + "cpu_time": 8.8416220483496566e-02, "time_unit": "ns" }, { @@ -1169,9 +1169,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 8615, - "real_time": 7.9806666743270805e+04, - "cpu_time": 7.9028190133488184e+04, + "iterations": 6858, + "real_time": 9.3030761591598537e+04, + "cpu_time": 9.1602852435112174e+04, "time_unit": "ns" }, { @@ -1183,9 +1183,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 8615, - "real_time": 8.0841487405394131e+04, - "cpu_time": 8.0040353105049435e+04, + "iterations": 6858, + "real_time": 8.6511492128064332e+04, + "cpu_time": 8.5318596821230691e+04, "time_unit": "ns" }, { @@ -1197,9 +1197,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 8615, - "real_time": 8.0566300986022805e+04, - "cpu_time": 7.9794792571096725e+04, + "iterations": 6858, + "real_time": 8.4088126856397226e+04, + "cpu_time": 8.2806301691455490e+04, "time_unit": "ns" }, { @@ -1213,8 +1213,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.0404818378229247e+04, - "cpu_time": 7.9621111936544781e+04, + "real_time": 8.7876793525353365e+04, + "cpu_time": 8.6575916982599461e+04, "time_unit": "ns" }, { @@ -1228,8 +1228,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.0566300986022805e+04, - "cpu_time": 7.9794792571096739e+04, + "real_time": 8.6511492128064347e+04, + "cpu_time": 8.5318596821230705e+04, "time_unit": "ns" }, { @@ -1243,8 +1243,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3597660877733244e+02, - "cpu_time": 5.2796040795162992e+02, + "real_time": 4.6250097222475179e+03, + "cpu_time": 4.5310558082604975e+03, "time_unit": "ns" }, { @@ -1258,8 +1258,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.6659762385889018e-03, - "cpu_time": 6.6309097563520070e-03, + "real_time": 5.2630615395783127e-02, + "cpu_time": 5.2336215037389389e-02, "time_unit": "ns" } ] diff --git a/research/benchmark-results/ssb-sf001.json b/research/benchmark-results/ssb-sf001.json index 46f78a1..20ab4e5 100644 --- a/research/benchmark-results/ssb-sf001.json +++ b/research/benchmark-results/ssb-sf001.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-02T01:16:41+03:00", + "date": "2026-06-09T23:45:52+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [0.800293,0.489258,0.491211], + "load_avg": [1.00439,0.640625,0.89502], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,11 +47,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 74, - "real_time": 9.5399927162656542e+06, - "cpu_time": 9.4592325405405406e+06, + "iterations": 76, + "real_time": 9.9512121447141413e+06, + "cpu_time": 9.8711035526315793e+06, "time_unit": "ns", - "execution_us": 9.5399293783783778e+03, + "execution_us": 9.9511413026315786e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -63,11 +63,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 74, - "real_time": 9.5605493782361895e+06, - "cpu_time": 9.4841847567567565e+06, + "iterations": 76, + "real_time": 1.0357855052509541e+07, + "cpu_time": 1.0266127460526315e+07, "time_unit": "ns", - "execution_us": 9.5604816216216223e+03, + "execution_us": 1.0357739236842106e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -79,11 +79,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 74, - "real_time": 9.5072076622494254e+06, - "cpu_time": 9.4303343648648672e+06, + "iterations": 76, + "real_time": 1.1278557158029320e+07, + "cpu_time": 1.1154365052631577e+07, "time_unit": "ns", - "execution_us": 9.5070937837837828e+03, + "execution_us": 1.1278490815789473e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -97,10 +97,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5359165855837557e+06, - "cpu_time": 9.4579172207207214e+06, + "real_time": 1.0529208118417667e+07, + "cpu_time": 1.0430532021929821e+07, "time_unit": "ns", - "execution_us": 9.5358349279279282e+03, + "execution_us": 1.0529123785087719e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -114,10 +114,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5399927162656542e+06, - "cpu_time": 9.4592325405405406e+06, + "real_time": 1.0357855052509541e+07, + "cpu_time": 1.0266127460526315e+07, "time_unit": "ns", - "execution_us": 9.5399293783783778e+03, + "execution_us": 1.0357739236842106e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -131,10 +131,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6903453256290217e+04, - "cpu_time": 2.6949280628643854e+04, + "real_time": 6.8006073331009818e+05, + "cpu_time": 6.5723790533056122e+05, "time_unit": "ns", - "execution_us": 2.6928399517925090e+01, + "execution_us": 6.8006887890355438e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -148,10 +148,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.8212760687276171e-03, - "cpu_time": 2.8493885069751368e-03, + "real_time": 6.4588022732738795e-02, + "cpu_time": 6.3010966645684230e-02, "time_unit": "ns", - "execution_us": 2.8239162822606082e-03, + "execution_us": 6.4589313677433285e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -163,14 +163,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 54, - "real_time": 1.0037977036888523e+07, - "cpu_time": 9.9676256296296343e+06, + "iterations": 72, + "real_time": 1.1711527986335568e+07, + "cpu_time": 1.1595316222222218e+07, "time_unit": "ns", - "execution_us": 1.0037876462962964e+04, + "execution_us": 1.1711456208333333e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.7225999999999999e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.3586760000000004e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.1/Interpreted/Optimized/real_time", @@ -181,14 +181,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 54, - "real_time": 9.9924028518553637e+06, - "cpu_time": 9.9165896666666660e+06, + "iterations": 72, + "real_time": 1.1374830111081893e+07, + "cpu_time": 1.1181104888888886e+07, "time_unit": "ns", - "execution_us": 9.9923292222222226e+03, + "execution_us": 1.1374768583333333e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.8481600000000003e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.5903590000000004e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.1/Interpreted/Optimized/real_time", @@ -199,14 +199,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 54, - "real_time": 1.0025189036915198e+07, - "cpu_time": 9.9565894629629608e+06, + "iterations": 72, + "real_time": 1.0174952805553202e+07, + "cpu_time": 1.0039267958333332e+07, "time_unit": "ns", - "execution_us": 1.0025109962962963e+04, + "execution_us": 1.0174888694444446e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.9701099999999997e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.6177420000000002e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.1/Interpreted/Optimized/real_time_mean", @@ -219,13 +219,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0018522975219695e+07, - "cpu_time": 9.9469349197530858e+06, + "real_time": 1.1087103634323554e+07, + "cpu_time": 1.0938563023148144e+07, "time_unit": "ns", - "execution_us": 1.0018438549382716e+04, + "execution_us": 1.1087037828703704e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.1802900000000000e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.5222590000000000e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.1/Interpreted/Optimized/real_time_median", @@ -238,13 +238,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0025189036915200e+07, - "cpu_time": 9.9565894629629608e+06, + "real_time": 1.1374830111081891e+07, + "cpu_time": 1.1181104888888886e+07, "time_unit": "ns", - "execution_us": 1.0025109962962963e+04, + "execution_us": 1.1374768583333333e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.9701099999999997e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.5903590000000004e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.1/Interpreted/Optimized/real_time_stddev", @@ -257,12 +257,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3506996177584002e+04, - "cpu_time": 2.6852840303399800e+04, + "real_time": 8.0768540634329349e+05, + "cpu_time": 8.0587931315157900e+05, "time_unit": "ns", - "execution_us": 2.3495076168409312e+01, + "execution_us": 8.0768290284891270e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.7359587487644710e+01, + "optimizer_us": 1.4232710770968617e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -276,12 +276,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3463534730346343e-03, - "cpu_time": 2.6996095299743222e-03, + "real_time": 7.2849089625432378e-02, + "cpu_time": 7.3673233993000756e-02, "time_unit": "ns", - "execution_us": 2.3451834387761910e-03, + "execution_us": 7.2849296207673081e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 5.7894753716120954e-02, + "optimizer_us": 2.5773348861342103e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -293,11 +293,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 76, - "real_time": 8.7039228421513382e+06, - "cpu_time": 8.6439320526315812e+06, + "iterations": 83, + "real_time": 8.2656341567719691e+06, + "cpu_time": 8.2090268915662710e+06, "time_unit": "ns", - "execution_us": 8.7038643815789474e+03, + "execution_us": 8.2655834216867461e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -309,11 +309,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 76, - "real_time": 8.6583044605121315e+06, - "cpu_time": 8.5988706052631680e+06, + "iterations": 83, + "real_time": 8.4240290358051080e+06, + "cpu_time": 8.3510533855421618e+06, "time_unit": "ns", - "execution_us": 8.6582170526315804e+03, + "execution_us": 8.4239712409638560e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -325,11 +325,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 76, - "real_time": 9.3222038947140779e+06, - "cpu_time": 9.2485660657894760e+06, + "iterations": 83, + "real_time": 9.4000963734025247e+06, + "cpu_time": 9.3164692771084346e+06, "time_unit": "ns", - "execution_us": 9.3221419999999998e+03, + "execution_us": 9.4000337831325305e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -343,10 +343,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.8948103991258480e+06, - "cpu_time": 8.8304562412280738e+06, + "real_time": 8.6965865219931994e+06, + "cpu_time": 8.6255165180722866e+06, "time_unit": "ns", - "execution_us": 8.8947411447368431e+03, + "execution_us": 8.6965294819277115e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -360,10 +360,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.7039228421513382e+06, - "cpu_time": 8.6439320526315812e+06, + "real_time": 8.4240290358051080e+06, + "cpu_time": 8.3510533855421608e+06, "time_unit": "ns", - "execution_us": 8.7038643815789474e+03, + "execution_us": 8.4239712409638560e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -377,10 +377,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7083575776777492e+05, - "cpu_time": 3.6279402221624833e+05, + "real_time": 6.1438328240477492e+05, + "cpu_time": 6.0258166887363710e+05, "time_unit": "ns", - "execution_us": 3.7084300987039086e+02, + "execution_us": 6.1437806087464617e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -394,10 +394,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.1691249293432882e-02, - "cpu_time": 4.1084402923873581e-02, + "real_time": 7.0646486509509512e-02, + "cpu_time": 6.9860357650594090e-02, "time_unit": "ns", - "execution_us": 4.1692389225944419e-02, + "execution_us": 7.0646349460596600e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -409,13 +409,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 82, - "real_time": 7.6156441585825216e+06, - "cpu_time": 7.5675113902438954e+06, + "iterations": 86, + "real_time": 8.4306501974974386e+06, + "cpu_time": 8.1951028139534937e+06, "time_unit": "ns", - "execution_us": 7.6155775121951219e+03, + "execution_us": 8.4305877558139546e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.6565400000000000e+02, + "optimizer_us": 4.6332799999999997e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -427,13 +427,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 82, - "real_time": 7.1717341218950097e+06, - "cpu_time": 7.1357460243902411e+06, + "iterations": 86, + "real_time": 8.9168745464629084e+06, + "cpu_time": 8.8365529767442029e+06, "time_unit": "ns", - "execution_us": 7.1716639268292683e+03, + "execution_us": 8.9168142441860473e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.8833100000000002e+02, + "optimizer_us": 4.5955599999999998e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -445,13 +445,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 82, - "real_time": 6.8620688536789315e+06, - "cpu_time": 6.8320234878048692e+06, + "iterations": 86, + "real_time": 8.0954919303198848e+06, + "cpu_time": 8.0364193023255942e+06, "time_unit": "ns", - "execution_us": 6.8619944512195125e+03, + "execution_us": 8.0954257441860454e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.0497500000000002e+02, + "optimizer_us": 4.6979100000000000e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -465,12 +465,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2164823780521527e+06, - "cpu_time": 7.1784269674796686e+06, + "real_time": 8.4810055580934100e+06, + "cpu_time": 8.3560250310077630e+06, "time_unit": "ns", - "execution_us": 7.2164119634146336e+03, + "execution_us": 8.4809425813953494e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.1965333333333331e+02, + "optimizer_us": 4.6422499999999997e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -484,12 +484,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1717341218950078e+06, - "cpu_time": 7.1357460243902421e+06, + "real_time": 8.4306501974974386e+06, + "cpu_time": 8.1951028139534937e+06, "time_unit": "ns", - "execution_us": 7.1716639268292683e+03, + "execution_us": 8.4305877558139546e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.0497500000000002e+02, + "optimizer_us": 4.6332799999999997e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -503,12 +503,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7877531580342352e+05, - "cpu_time": 3.6959688964571577e+05, + "real_time": 4.1300011777364131e+05, + "cpu_time": 4.2364542271917086e+05, "time_unit": "ns", - "execution_us": 3.7877915403441733e+02, + "execution_us": 4.1300299433239582e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.0697686473967188e+01, + "optimizer_us": 5.1761243223115141e+00, "plan_cost": 0.0000000000000000e+00 }, { @@ -522,12 +522,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.2487527296596996e-02, - "cpu_time": 5.1487170005364069e-02, + "real_time": 4.8697069580330127e-02, + "cpu_time": 5.0699396082119902e-02, "time_unit": "ns", - "execution_us": 5.2488571322525782e-02, + "execution_us": 4.8697770367930659e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 9.6979299915725334e-02, + "optimizer_us": 1.1150033544749883e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -539,11 +539,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 78, - "real_time": 9.1113512307623383e+06, - "cpu_time": 9.0432772435897458e+06, + "iterations": 81, + "real_time": 9.6963825308643058e+06, + "cpu_time": 9.6079864320987780e+06, "time_unit": "ns", - "execution_us": 9.1112552948717948e+03, + "execution_us": 9.6963178024691351e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -555,11 +555,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 78, - "real_time": 8.6346743462341595e+06, - "cpu_time": 8.5800766153846048e+06, + "iterations": 81, + "real_time": 1.0967921753080539e+07, + "cpu_time": 1.0832180358024685e+07, "time_unit": "ns", - "execution_us": 8.6344918846153851e+03, + "execution_us": 1.0967784012345679e+04, "includes_order_by": 0.0000000000000000e+00 }, { @@ -571,11 +571,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 78, - "real_time": 8.5204761793974247e+06, - "cpu_time": 8.4644627435897533e+06, + "iterations": 81, + "real_time": 1.1111089444495048e+07, + "cpu_time": 1.0970931839506162e+07, "time_unit": "ns", - "execution_us": 8.5202679230769245e+03, + "execution_us": 1.1110996444444445e+04, "includes_order_by": 0.0000000000000000e+00 }, { @@ -589,10 +589,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.7555005854646415e+06, - "cpu_time": 8.6959388675213698e+06, + "real_time": 1.0591797909479963e+07, + "cpu_time": 1.0470366209876541e+07, "time_unit": "ns", - "execution_us": 8.7553383675213681e+03, + "execution_us": 1.0591699419753086e+04, "includes_order_by": 0.0000000000000000e+00 }, { @@ -606,10 +606,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.6346743462341595e+06, - "cpu_time": 8.5800766153846048e+06, + "real_time": 1.0967921753080538e+07, + "cpu_time": 1.0832180358024683e+07, "time_unit": "ns", - "execution_us": 8.6344918846153851e+03, + "execution_us": 1.0967784012345679e+04, "includes_order_by": 0.0000000000000000e+00 }, { @@ -623,10 +623,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1342075018464419e+05, - "cpu_time": 3.0630801892083330e+05, + "real_time": 7.7874949255990016e+05, + "cpu_time": 7.5005810057844629e+05, "time_unit": "ns", - "execution_us": 3.1347954116386535e+02, + "execution_us": 7.7872243489220114e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -640,10 +640,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.5797010933328766e-02, - "cpu_time": 3.5224260840295132e-02, + "real_time": 7.3523824681633793e-02, + "cpu_time": 7.1636281438840946e-02, "time_unit": "ns", - "execution_us": 3.5804389048713747e-02, + "execution_us": 7.3521953751813959e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -655,13 +655,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 100, - "real_time": 6.8578639200131865e+06, - "cpu_time": 6.8280424500000151e+06, + "iterations": 86, + "real_time": 8.7900363256732468e+06, + "cpu_time": 8.7090346976744235e+06, "time_unit": "ns", - "execution_us": 6.8578044700000000e+03, + "execution_us": 8.7899619534883714e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.2579700000000000e+02, + "optimizer_us": 4.3574500000000000e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -673,13 +673,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 100, - "real_time": 6.7883046199858654e+06, - "cpu_time": 6.7604466500000097e+06, + "iterations": 86, + "real_time": 7.9751125232960898e+06, + "cpu_time": 7.9195813488372285e+06, "time_unit": "ns", - "execution_us": 6.7882362399999993e+03, + "execution_us": 7.9750475581395349e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.2811300000000000e+02, + "optimizer_us": 3.5972199999999998e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -691,13 +691,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 100, - "real_time": 6.8803217500681058e+06, - "cpu_time": 6.8523420499999868e+06, + "iterations": 86, + "real_time": 7.3623308139652833e+06, + "cpu_time": 7.2926978837209251e+06, "time_unit": "ns", - "execution_us": 6.8802654000000002e+03, + "execution_us": 7.3622627558139529e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.2294300000000001e+02, + "optimizer_us": 3.7393599999999998e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -711,12 +711,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8421634300223850e+06, - "cpu_time": 6.8136103833333375e+06, + "real_time": 8.0424932209782070e+06, + "cpu_time": 7.9737713100775257e+06, "time_unit": "ns", - "execution_us": 6.8421020366666653e+03, + "execution_us": 8.0424240891472855e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.2561766666666665e+02, + "optimizer_us": 3.8980099999999999e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -730,12 +730,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8578639200131865e+06, - "cpu_time": 6.8280424500000151e+06, + "real_time": 7.9751125232960908e+06, + "cpu_time": 7.9195813488372276e+06, "time_unit": "ns", - "execution_us": 6.8578044700000000e+03, + "execution_us": 7.9750475581395349e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.2579700000000000e+02, + "optimizer_us": 3.7393599999999998e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -749,12 +749,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.7975692768569374e+04, - "cpu_time": 4.7617271514498192e+04, + "real_time": 7.1623381367779430e+05, + "cpu_time": 7.0972171064749407e+05, "time_unit": "ns", - "execution_us": 4.7981938081231597e+01, + "execution_us": 7.1623037317476178e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.5896612391110088e+00, + "optimizer_us": 4.0418409184429620e+01, "plan_cost": 0.0000000000000000e+00 }, { @@ -768,12 +768,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.0117724107640056e-03, - "cpu_time": 6.9885521530514911e-03, + "real_time": 8.9056191158427722e-02, + "cpu_time": 8.9007031058255137e-02, "time_unit": "ns", - "execution_us": 7.0127481034479621e-03, + "execution_us": 8.9056528881791608e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.1478096008044622e-02, + "optimizer_us": 1.0368985503995531e-01, "plan_cost": 0.0000000000000000e+00 }, { @@ -786,10 +786,10 @@ "repetition_index": 0, "threads": 1, "iterations": 18, - "real_time": 3.8937311166793935e+07, - "cpu_time": 3.8712069666666716e+07, + "real_time": 4.1251744555969097e+07, + "cpu_time": 4.0951560777777731e+07, "time_unit": "ns", - "execution_us": 3.8937161388888890e+04, + "execution_us": 4.1251586388888893e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -802,10 +802,10 @@ "repetition_index": 1, "threads": 1, "iterations": 18, - "real_time": 3.9064163278251521e+07, - "cpu_time": 3.8822397722222254e+07, + "real_time": 4.2759174220716685e+07, + "cpu_time": 4.2333107500000089e+07, "time_unit": "ns", - "execution_us": 3.9063921277777779e+04, + "execution_us": 4.2758950833333336e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -818,10 +818,10 @@ "repetition_index": 2, "threads": 1, "iterations": 18, - "real_time": 3.8310177499725901e+07, - "cpu_time": 3.8103214999999970e+07, + "real_time": 3.9226483723420344e+07, + "cpu_time": 3.8872807888888985e+07, "time_unit": "ns", - "execution_us": 3.8310018666666670e+04, + "execution_us": 3.9225965277777781e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -835,10 +835,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8770550648257114e+07, - "cpu_time": 3.8545894129629649e+07, + "real_time": 4.1079134166702040e+07, + "cpu_time": 4.0719158722222261e+07, "time_unit": "ns", - "execution_us": 3.8770367111111111e+04, + "execution_us": 4.1078834166666667e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -852,10 +852,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8937311166793935e+07, - "cpu_time": 3.8712069666666709e+07, + "real_time": 4.1251744555969097e+07, + "cpu_time": 4.0951560777777731e+07, "time_unit": "ns", - "execution_us": 3.8937161388888890e+04, + "execution_us": 4.1251586388888893e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -869,10 +869,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0370836189274536e+05, - "cpu_time": 3.8731986628299789e+05, + "real_time": 1.7726593855798303e+06, + "cpu_time": 1.7418169783977650e+06, "time_unit": "ns", - "execution_us": 4.0367999093955950e+02, + "execution_us": 1.7728167507255828e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -886,10 +886,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0412758012011717e-02, - "cpu_time": 1.0048278163698658e-02, + "real_time": 4.3152306433389104e-02, + "cpu_time": 4.2776349832767485e-02, "time_unit": "ns", - "execution_us": 1.0412075536521546e-02, + "execution_us": 4.3156452384525826e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -901,14 +901,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 110, - "real_time": 6.2202605272018854e+06, - "cpu_time": 6.1849632818181701e+06, + "iterations": 86, + "real_time": 6.2249071045296788e+06, + "cpu_time": 6.1874011511627994e+06, "time_unit": "ns", - "execution_us": 6.2202009818181823e+03, + "execution_us": 6.2248486511627916e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.9295580000000000e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 1.0054064400000000e+05, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.3/Interpreted/Optimized/real_time", @@ -919,14 +919,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 110, - "real_time": 6.0389436180809168e+06, - "cpu_time": 6.0085279818181582e+06, + "iterations": 86, + "real_time": 6.1594512209372036e+06, + "cpu_time": 6.1196382906976361e+06, "time_unit": "ns", - "execution_us": 6.0388967363636357e+03, + "execution_us": 6.1593888372093015e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.8750630000000001e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 9.6677005999999994e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.3/Interpreted/Optimized/real_time", @@ -937,14 +937,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 110, - "real_time": 6.2369481182858264e+06, - "cpu_time": 6.2012304999999981e+06, + "iterations": 86, + "real_time": 6.1697281858488526e+06, + "cpu_time": 6.1054220697674267e+06, "time_unit": "ns", - "execution_us": 6.2368883272727271e+03, + "execution_us": 6.1696627209302324e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 2.1177420000000002e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 9.5469535999999993e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.3/Interpreted/Optimized/real_time_mean", @@ -957,13 +957,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1653840878562098e+06, - "cpu_time": 6.1315739212121079e+06, + "real_time": 6.1846955037719114e+06, + "cpu_time": 6.1374871705426201e+06, "time_unit": "ns", - "execution_us": 6.1653286818181814e+03, + "execution_us": 6.1846334031007755e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.9741210000000001e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 9.7562395333333319e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.3/Interpreted/Optimized/real_time_median", @@ -976,13 +976,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2202605272018863e+06, - "cpu_time": 6.1849632818181692e+06, + "real_time": 6.1697281858488536e+06, + "cpu_time": 6.1196382906976370e+06, "time_unit": "ns", - "execution_us": 6.2202009818181823e+03, + "execution_us": 6.1696627209302324e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.9295580000000000e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 9.6677005999999994e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.3/Interpreted/Optimized/real_time_stddev", @@ -995,12 +995,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0981809150501342e+05, - "cpu_time": 1.0687087067044435e+05, + "real_time": 3.5201329926092862e+04, + "cpu_time": 4.3807297684436846e+04, "time_unit": "ns", - "execution_us": 1.0981072123498265e+02, + "execution_us": 3.5204229918961289e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.2732898329523852e+02, + "optimizer_us": 2.6489563587574880e+03, "plan_cost": 0.0000000000000000e+00 }, { @@ -1014,12 +1014,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7812043814321183e-02, - "cpu_time": 1.7429598345169717e-02, + "real_time": 5.6916835929310241e-03, + "cpu_time": 7.1376601640315640e-03, "time_unit": "ns", - "execution_us": 1.7811008447744105e-02, + "execution_us": 5.6922096467853737e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 6.4499077460418344e-02, + "optimizer_us": 2.7151407565456129e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1032,10 +1032,10 @@ "repetition_index": 0, "threads": 1, "iterations": 18, - "real_time": 3.9345425389506601e+07, - "cpu_time": 3.9083877999999970e+07, + "real_time": 4.1033127055723324e+07, + "cpu_time": 4.0584454111111037e+07, "time_unit": "ns", - "execution_us": 3.9345259055555551e+04, + "execution_us": 4.1032914388888894e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1048,10 +1048,10 @@ "repetition_index": 1, "threads": 1, "iterations": 18, - "real_time": 3.7325661277767114e+07, - "cpu_time": 3.7112491444444530e+07, + "real_time": 3.9289269444351599e+07, + "cpu_time": 3.8939515833333343e+07, "time_unit": "ns", - "execution_us": 3.7325462888888891e+04, + "execution_us": 3.9288995277777780e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1064,10 +1064,10 @@ "repetition_index": 2, "threads": 1, "iterations": 18, - "real_time": 3.7373497555866688e+07, - "cpu_time": 3.7160567166666701e+07, + "real_time": 3.8855656611202806e+07, + "cpu_time": 3.8583163833333209e+07, "time_unit": "ns", - "execution_us": 3.7373306833333336e+04, + "execution_us": 3.8855447666666667e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1081,10 +1081,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8014861407713458e+07, - "cpu_time": 3.7785645537037067e+07, + "real_time": 3.9726017703759238e+07, + "cpu_time": 3.9369044592592523e+07, "time_unit": "ns", - "execution_us": 3.8014676259259257e+04, + "execution_us": 3.9725785777777783e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1098,10 +1098,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7373497555866681e+07, - "cpu_time": 3.7160567166666701e+07, + "real_time": 3.9289269444351599e+07, + "cpu_time": 3.8939515833333336e+07, "time_unit": "ns", - "execution_us": 3.7373306833333336e+04, + "execution_us": 3.9288995277777780e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1115,10 +1115,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1525504152139013e+06, - "cpu_time": 1.1245592312922264e+06, + "real_time": 1.1525650375410754e+06, + "cpu_time": 1.0675494884335794e+06, "time_unit": "ns", - "execution_us": 1.1525667850952459e+03, + "execution_us": 1.1525752848571897e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1132,10 +1132,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.0318416864727582e-02, - "cpu_time": 2.9761546092680780e-02, + "real_time": 2.9012851127839304e-02, + "cpu_time": 2.7116469283952196e-02, "time_unit": "ns", - "execution_us": 3.0318995148998922e-02, + "execution_us": 2.9013278461113009e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1147,14 +1147,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 112, - "real_time": 6.9647932320679370e+06, - "cpu_time": 6.8685307321428703e+06, + "iterations": 114, + "real_time": 6.1569213244263418e+06, + "cpu_time": 6.1190685350877037e+06, "time_unit": "ns", - "execution_us": 6.9647337946428579e+03, + "execution_us": 6.1568678157894738e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7715730000000001e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 4.6719088000000003e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.4/Interpreted/Optimized/real_time", @@ -1165,14 +1165,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 112, - "real_time": 6.7527474464960899e+06, - "cpu_time": 6.7025273303571437e+06, + "iterations": 114, + "real_time": 6.3057996053350763e+06, + "cpu_time": 6.2677459824561384e+06, "time_unit": "ns", - "execution_us": 6.7526715267857144e+03, + "execution_us": 6.3057347368421051e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7676240000000000e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 4.6200525999999998e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.4/Interpreted/Optimized/real_time", @@ -1183,14 +1183,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 112, - "real_time": 5.9284909910794729e+06, - "cpu_time": 5.9033411696428452e+06, + "iterations": 114, + "real_time": 6.2175831140178302e+06, + "cpu_time": 6.1819850263158157e+06, "time_unit": "ns", - "execution_us": 5.9284348482142859e+03, + "execution_us": 6.2175010526315791e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.6728640000000000e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 4.7193237000000001e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.4/Interpreted/Optimized/real_time_mean", @@ -1203,13 +1203,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5486772232144997e+06, - "cpu_time": 6.4914664107142864e+06, + "real_time": 6.2267680145930825e+06, + "cpu_time": 6.1895998479532190e+06, "time_unit": "ns", - "execution_us": 6.5486133898809530e+03, + "execution_us": 6.2267012017543857e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7373536666666664e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 4.6704283666666663e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.4/Interpreted/Optimized/real_time_median", @@ -1222,13 +1222,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7527474464960890e+06, - "cpu_time": 6.7025273303571446e+06, + "real_time": 6.2175831140178293e+06, + "cpu_time": 6.1819850263158148e+06, "time_unit": "ns", - "execution_us": 6.7526715267857144e+03, + "execution_us": 6.2175010526315791e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7676240000000000e+03, - "plan_cost": 8.1708300000000000e+05 + "optimizer_us": 4.6719088000000003e+04, + "plan_cost": 8.1671400000000000e+05 }, { "name": "SSB/q3.4/Interpreted/Optimized/real_time_stddev", @@ -1241,12 +1241,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.4746148329547106e+05, - "cpu_time": 5.1605014944297587e+05, + "real_time": 7.4862924271785974e+04, + "cpu_time": 7.4630657041381040e+04, "time_unit": "ns", - "execution_us": 5.4745654532576668e+02, + "execution_us": 7.4858680885055293e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 5.5884581776498678e+01, + "optimizer_us": 4.9652105554005288e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1260,12 +1260,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.3598788676706656e-02, - "cpu_time": 7.9496698710668140e-02, + "real_time": 1.2022757889219074e-02, + "cpu_time": 1.2057428408083595e-02, "time_unit": "ns", - "execution_us": 8.3598849517014906e-02, + "execution_us": 1.2022205411745743e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.2166497155251265e-02, + "optimizer_us": 1.0631167348241018e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1277,11 +1277,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 72, - "real_time": 9.8714068056627475e+06, - "cpu_time": 9.8088458194443993e+06, + "iterations": 69, + "real_time": 9.8831544059119523e+06, + "cpu_time": 9.8030000579710361e+06, "time_unit": "ns", - "execution_us": 9.8713369444444452e+03, + "execution_us": 9.8830822028985513e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1293,11 +1293,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 72, - "real_time": 9.8148878751089796e+06, - "cpu_time": 9.7541922638888992e+06, + "iterations": 69, + "real_time": 1.0546723652320603e+07, + "cpu_time": 1.0457263376811618e+07, "time_unit": "ns", - "execution_us": 9.8148010694444456e+03, + "execution_us": 1.0546601478260869e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1309,11 +1309,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 72, - "real_time": 9.8309506667849049e+06, - "cpu_time": 9.7578262638888806e+06, + "iterations": 69, + "real_time": 1.0047676724607827e+07, + "cpu_time": 9.9773581739130300e+06, "time_unit": "ns", - "execution_us": 9.8308839166666658e+03, + "execution_us": 1.0047607507246375e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1327,10 +1327,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8390817825188767e+06, - "cpu_time": 9.7736214490740579e+06, + "real_time": 1.0159184927613461e+07, + "cpu_time": 1.0079207202898560e+07, "time_unit": "ns", - "execution_us": 9.8390073101851849e+03, + "execution_us": 1.0159097062801931e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1344,10 +1344,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8309506667849030e+06, - "cpu_time": 9.7578262638888806e+06, + "real_time": 1.0047676724607827e+07, + "cpu_time": 9.9773581739130300e+06, "time_unit": "ns", - "execution_us": 9.8308839166666658e+03, + "execution_us": 1.0047607507246375e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1361,10 +1361,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9123592842815324e+04, - "cpu_time": 3.0559265206945231e+04, + "real_time": 3.4555259469142632e+05, + "cpu_time": 3.3881416901313176e+05, "time_unit": "ns", - "execution_us": 2.9130197943231966e+01, + "execution_us": 3.4552409169667351e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1378,10 +1378,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9599909307146217e-03, - "cpu_time": 3.1267084945100238e-03, + "real_time": 3.4013810867069394e-02, + "cpu_time": 3.3615160616570737e-02, "time_unit": "ns", - "execution_us": 2.9606846529198982e-03, + "execution_us": 3.4011299386224804e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1393,14 +1393,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 97, - "real_time": 6.7420687009496419e+06, - "cpu_time": 6.6998269278350407e+06, + "iterations": 102, + "real_time": 6.8782520687034093e+06, + "cpu_time": 6.8369275588235613e+06, "time_unit": "ns", - "execution_us": 6.7420070206185565e+03, + "execution_us": 6.8781914509803928e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.8372300000000000e+03, - "plan_cost": 8.4173300000000000e+05 + "optimizer_us": 6.0046502300000004e+05, + "plan_cost": 8.4135300000000000e+05 }, { "name": "SSB/q4.3/Interpreted/Optimized/real_time", @@ -1411,14 +1411,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 97, - "real_time": 6.7336789587963866e+06, - "cpu_time": 6.6964097628865652e+06, + "iterations": 102, + "real_time": 6.9017441764670229e+06, + "cpu_time": 6.8558411372549133e+06, "time_unit": "ns", - "execution_us": 6.7335818453608244e+03, + "execution_us": 6.9016527549019611e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.7550090000000000e+03, - "plan_cost": 8.4173300000000000e+05 + "optimizer_us": 5.8291862100000004e+05, + "plan_cost": 8.4135300000000000e+05 }, { "name": "SSB/q4.3/Interpreted/Optimized/real_time", @@ -1429,14 +1429,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 97, - "real_time": 6.7037841133814128e+06, - "cpu_time": 6.6609851855669953e+06, + "iterations": 102, + "real_time": 6.8780697648774143e+06, + "cpu_time": 6.8365134215685958e+06, "time_unit": "ns", - "execution_us": 6.7037164226804125e+03, + "execution_us": 6.8780114117647054e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.6368679999999999e+03, - "plan_cost": 8.4173300000000000e+05 + "optimizer_us": 5.9432770499999996e+05, + "plan_cost": 8.4135300000000000e+05 }, { "name": "SSB/q4.3/Interpreted/Optimized/real_time_mean", @@ -1449,13 +1449,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7265105910424804e+06, - "cpu_time": 6.6857406254295334e+06, + "real_time": 6.8860220033492818e+06, + "cpu_time": 6.8430940392156886e+06, "time_unit": "ns", - "execution_us": 6.7264350962199314e+03, + "execution_us": 6.8859518725490198e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.7430356666666667e+03, - "plan_cost": 8.4173300000000000e+05 + "optimizer_us": 5.9257044966666657e+05, + "plan_cost": 8.4135300000000000e+05 }, { "name": "SSB/q4.3/Interpreted/Optimized/real_time_median", @@ -1468,13 +1468,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7336789587963866e+06, - "cpu_time": 6.6964097628865642e+06, + "real_time": 6.8782520687034102e+06, + "cpu_time": 6.8369275588235604e+06, "time_unit": "ns", - "execution_us": 6.7335818453608244e+03, + "execution_us": 6.8781914509803928e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.7550090000000000e+03, - "plan_cost": 8.4173300000000000e+05 + "optimizer_us": 5.9432770499999996e+05, + "plan_cost": 8.4135300000000000e+05 }, { "name": "SSB/q4.3/Interpreted/Optimized/real_time_stddev", @@ -1487,12 +1487,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0123780299044145e+04, - "cpu_time": 2.1506815342452126e+04, + "real_time": 1.3616106430417216e+04, + "cpu_time": 1.1041252589429097e+04, "time_unit": "ns", - "execution_us": 2.0120872000614874e+01, + "execution_us": 1.3597660957687383e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.0071620174695735e+02, + "optimizer_us": 8.9042133575335829e+03, "plan_cost": 0.0000000000000000e+00 }, { @@ -1506,12 +1506,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9917116797292288e-03, - "cpu_time": 3.2168186813365043e-03, + "real_time": 1.9773544760377615e-03, + "cpu_time": 1.6134883615737323e-03, "time_unit": "ns", - "execution_us": 2.9913128890401756e-03, + "execution_us": 1.9746959039743978e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.6907625445271120e-02, + "optimizer_us": 1.5026421520921929e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1523,11 +1523,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 82, - "real_time": 8.3701032438889015e+06, - "cpu_time": 8.3232259512195010e+06, + "iterations": 77, + "real_time": 8.3788510260033095e+06, + "cpu_time": 8.3200509740259629e+06, "time_unit": "ns", - "execution_us": 8.3700274512195119e+03, + "execution_us": 8.3787966493506483e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1539,11 +1539,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 82, - "real_time": 8.3095583047507694e+06, - "cpu_time": 8.2580036951219542e+06, + "iterations": 77, + "real_time": 8.8281584412234463e+06, + "cpu_time": 8.7636285974026620e+06, "time_unit": "ns", - "execution_us": 8.3095001707317060e+03, + "execution_us": 8.8279837402597404e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1555,11 +1555,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 82, - "real_time": 8.3321985732210325e+06, - "cpu_time": 8.2793346707317252e+06, + "iterations": 77, + "real_time": 8.4744980131644849e+06, + "cpu_time": 8.4218129350649528e+06, "time_unit": "ns", - "execution_us": 8.3321304878048777e+03, + "execution_us": 8.4744425584415585e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1573,10 +1573,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.3372867072868990e+06, - "cpu_time": 8.2868547723577246e+06, + "real_time": 8.5605024934637472e+06, + "cpu_time": 8.5018308354978580e+06, "time_unit": "ns", - "execution_us": 8.3372193699186973e+03, + "execution_us": 8.5604076493506473e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1590,10 +1590,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.3321985732210316e+06, - "cpu_time": 8.2793346707317242e+06, + "real_time": 8.4744980131644849e+06, + "cpu_time": 8.4218129350649528e+06, "time_unit": "ns", - "execution_us": 8.3321304878048777e+03, + "execution_us": 8.4744425584415585e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1607,10 +1607,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0591489748300475e+04, - "cpu_time": 3.3255069071954960e+04, + "real_time": 2.3667882523919325e+05, + "cpu_time": 2.3236270200357368e+05, "time_unit": "ns", - "execution_us": 3.0582845873257334e+01, + "execution_us": 2.3661098516580211e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1624,10 +1624,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6692380653724076e-03, - "cpu_time": 4.0129904512002717e-03, + "real_time": 2.7647772478298568e-02, + "cpu_time": 2.7330901602203750e-02, "time_unit": "ns", - "execution_us": 3.6682309192441905e-03, + "execution_us": 2.7640153933995226e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1640,12 +1640,12 @@ "repetition_index": 0, "threads": 1, "iterations": 96, - "real_time": 7.0156404894987643e+06, - "cpu_time": 6.9773537500000075e+06, + "real_time": 7.0580967394562326e+06, + "cpu_time": 7.0143080833333647e+06, "time_unit": "ns", - "execution_us": 7.0155440833333332e+03, + "execution_us": 7.0580443958333335e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.0377199999999999e+02, + "optimizer_us": 2.7497100000000000e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1658,12 +1658,12 @@ "repetition_index": 1, "threads": 1, "iterations": 96, - "real_time": 7.0003509583026851e+06, - "cpu_time": 6.9640076458333442e+06, + "real_time": 7.4431579687370686e+06, + "cpu_time": 7.3959720104166409e+06, "time_unit": "ns", - "execution_us": 7.0002539895833334e+03, + "execution_us": 7.4431111249999994e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.1572300000000001e+02, + "optimizer_us": 6.0533000000000004e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1676,12 +1676,12 @@ "repetition_index": 2, "threads": 1, "iterations": 96, - "real_time": 7.0112785000067865e+06, - "cpu_time": 6.9756842395833535e+06, + "real_time": 7.0655000311793024e+06, + "cpu_time": 7.0253008229167098e+06, "time_unit": "ns", - "execution_us": 7.0112306874999995e+03, + "execution_us": 7.0654420520833337e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.8978700000000001e+02, + "optimizer_us": 2.7840600000000001e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1695,12 +1695,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0090899826027453e+06, - "cpu_time": 6.9723485451389020e+06, + "real_time": 7.1889182464575348e+06, + "cpu_time": 7.1451936388889039e+06, "time_unit": "ns", - "execution_us": 7.0090095868055550e+03, + "execution_us": 7.1888658576388889e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.0309399999999999e+02, + "optimizer_us": 3.8623566666666670e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1714,12 +1714,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0112785000067865e+06, - "cpu_time": 6.9756842395833535e+06, + "real_time": 7.0655000311793024e+06, + "cpu_time": 7.0253008229167098e+06, "time_unit": "ns", - "execution_us": 7.0112306874999995e+03, + "execution_us": 7.0654420520833337e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.0377199999999999e+02, + "optimizer_us": 2.7840600000000001e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1733,12 +1733,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.8762076766789150e+03, - "cpu_time": 7.2715037772238584e+03, + "real_time": 2.2020917208568883e+05, + "cpu_time": 2.1724997997805654e+05, "time_unit": "ns", - "execution_us": 7.8833183330908740e+00, + "execution_us": 2.2021392624253255e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.2981286030281781e+01, + "optimizer_us": 1.8974903156625930e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1752,12 +1752,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1237133060395062e-03, - "cpu_time": 1.0429059491429938e-03, + "real_time": 3.0631753559612503e-02, + "cpu_time": 3.0405051417450382e-02, "time_unit": "ns", - "execution_us": 1.1247406977344136e-03, + "execution_us": 3.0632638110576683e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 6.3917624500387904e-02, + "optimizer_us": 4.9127785945780761e-01, "plan_cost": 0.0000000000000000e+00 }, { @@ -1770,10 +1770,10 @@ "repetition_index": 0, "threads": 1, "iterations": 19, - "real_time": 3.9211451842627294e+07, - "cpu_time": 3.8979828157894909e+07, + "real_time": 3.7909600683059052e+07, + "cpu_time": 3.7677969894736625e+07, "time_unit": "ns", - "execution_us": 3.9211177105263159e+04, + "execution_us": 3.7909416842105267e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1786,10 +1786,10 @@ "repetition_index": 1, "threads": 1, "iterations": 19, - "real_time": 4.4341554473871119e+07, - "cpu_time": 4.3979117894737087e+07, + "real_time": 3.9494915421145335e+07, + "cpu_time": 3.9245121894736789e+07, "time_unit": "ns", - "execution_us": 4.4341388578947372e+04, + "execution_us": 3.9494756578947367e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1802,10 +1802,10 @@ "repetition_index": 2, "threads": 1, "iterations": 19, - "real_time": 3.9951646631571315e+07, - "cpu_time": 3.9624417210526310e+07, + "real_time": 3.8800745209875077e+07, + "cpu_time": 3.8599088842105582e+07, "time_unit": "ns", - "execution_us": 3.9951415210526313e+04, + "execution_us": 3.8800563421052626e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1819,10 +1819,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1168217649356566e+07, - "cpu_time": 4.0861121087719433e+07, + "real_time": 3.8735087104693152e+07, + "cpu_time": 3.8507393543859661e+07, "time_unit": "ns", - "execution_us": 4.1167993631578953e+04, + "execution_us": 3.8734912280701748e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1836,10 +1836,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9951646631571315e+07, - "cpu_time": 3.9624417210526310e+07, + "real_time": 3.8800745209875070e+07, + "cpu_time": 3.8599088842105575e+07, "time_unit": "ns", - "execution_us": 3.9951415210526313e+04, + "execution_us": 3.8800563421052626e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1853,10 +1853,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7729987437357800e+06, - "cpu_time": 2.7194304234752706e+06, + "real_time": 7.9469424609725969e+05, + "cpu_time": 7.8758959399346344e+05, "time_unit": "ns", - "execution_us": 2.7730515199158563e+03, + "execution_us": 7.9470628188998705e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1870,10 +1870,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.7357755619986623e-02, - "cpu_time": 6.6553005671021084e-02, + "real_time": 2.0516134220877339e-02, + "cpu_time": 2.0452944785691717e-02, "time_unit": "ns", - "execution_us": 6.7359404121864142e-02, + "execution_us": 2.0516537539338131e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1885,14 +1885,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 104, - "real_time": 6.8156256249774462e+06, - "cpu_time": 6.7677546346154129e+06, + "iterations": 107, + "real_time": 6.5093752242642166e+06, + "cpu_time": 6.4705198785046889e+06, "time_unit": "ns", - "execution_us": 6.8155434519230766e+03, + "execution_us": 6.5093192897196259e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.3639480000000001e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.3311070000000000e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.2/Interpreted/Optimized/real_time", @@ -1903,14 +1903,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 104, - "real_time": 7.9270326922806604e+06, - "cpu_time": 7.8430371923076874e+06, + "iterations": 107, + "real_time": 6.9532377572477767e+06, + "cpu_time": 6.9063119065420460e+06, "time_unit": "ns", - "execution_us": 7.9269643942307694e+03, + "execution_us": 6.9531818224299059e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 2.5024209999999998e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.4958305000000000e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.2/Interpreted/Optimized/real_time", @@ -1921,14 +1921,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 104, - "real_time": 7.2504763558334578e+06, - "cpu_time": 7.1795292692307970e+06, + "iterations": 107, + "real_time": 6.6912628410527669e+06, + "cpu_time": 6.6498554112149999e+06, "time_unit": "ns", - "execution_us": 7.2504182500000006e+03, + "execution_us": 6.6912169065420567e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.4591250000000000e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.6059125999999997e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.2/Interpreted/Optimized/real_time_mean", @@ -1941,13 +1941,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.3310448910305211e+06, - "cpu_time": 7.2634403653846337e+06, + "real_time": 6.7179586075215871e+06, + "cpu_time": 6.6755623987539113e+06, "time_unit": "ns", - "execution_us": 7.3309753653846146e+03, + "execution_us": 6.7179060062305289e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7751646666666666e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.4776166999999994e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.2/Interpreted/Optimized/real_time_median", @@ -1960,13 +1960,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2504763558334587e+06, - "cpu_time": 7.1795292692307970e+06, + "real_time": 6.6912628410527678e+06, + "cpu_time": 6.6498554112149999e+06, "time_unit": "ns", - "execution_us": 7.2504182500000006e+03, + "execution_us": 6.6912169065420567e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.4591250000000000e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.4958305000000000e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.2/Interpreted/Optimized/real_time_stddev", @@ -1979,12 +1979,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.6006685668833507e+05, - "cpu_time": 5.4253013627135591e+05, + "real_time": 2.2313221418513797e+05, + "cpu_time": 2.1903038563513034e+05, "time_unit": "ns", - "execution_us": 5.6007250814457188e+02, + "execution_us": 2.2313161590784301e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 6.3161776108049196e+02, + "optimizer_us": 1.3830522886237848e+03, "plan_cost": 0.0000000000000000e+00 }, { @@ -1998,12 +1998,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.6396593529739890e-02, - "cpu_time": 7.4693273294689805e-02, + "real_time": 3.3214288330879832e-02, + "cpu_time": 3.2810776463720194e-02, "time_unit": "ns", - "execution_us": 7.6398088962230201e-02, + "execution_us": 3.3214459342077632e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.5580798386806484e-01, + "optimizer_us": 3.0888134945177084e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2015,11 +2015,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 64, - "real_time": 1.1331777671784949e+07, - "cpu_time": 1.1222810328125000e+07, + "iterations": 66, + "real_time": 9.3179495452204719e+06, + "cpu_time": 9.2642430303029995e+06, "time_unit": "ns", - "execution_us": 1.1331710281250000e+04, + "execution_us": 9.3178409848484844e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2031,11 +2031,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 64, - "real_time": 1.0571693093652356e+07, - "cpu_time": 1.0485617125000069e+07, + "iterations": 66, + "real_time": 9.3632982426435873e+06, + "cpu_time": 9.3043281666667294e+06, "time_unit": "ns", - "execution_us": 1.0571592640625000e+04, + "execution_us": 9.3632396969696965e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2047,11 +2047,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 64, - "real_time": 9.9321193904415853e+06, - "cpu_time": 9.8627125781249888e+06, + "iterations": 66, + "real_time": 9.2753472726502810e+06, + "cpu_time": 9.2177051969697662e+06, "time_unit": "ns", - "execution_us": 9.9319845156249994e+03, + "execution_us": 9.2752774242424257e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2065,10 +2065,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0611863385292964e+07, - "cpu_time": 1.0523713343750019e+07, + "real_time": 9.3188650201714467e+06, + "cpu_time": 9.2620921313131638e+06, "time_unit": "ns", - "execution_us": 1.0611762479166668e+04, + "execution_us": 9.3187860353535361e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2082,10 +2082,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0571693093652356e+07, - "cpu_time": 1.0485617125000069e+07, + "real_time": 9.3179495452204719e+06, + "cpu_time": 9.2642430303029995e+06, "time_unit": "ns", - "execution_us": 1.0571592640625000e+04, + "execution_us": 9.3178409848484844e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2099,10 +2099,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0069327482225641e+05, - "cpu_time": 6.8084870845222904e+05, + "real_time": 4.3982631247938174e+04, + "cpu_time": 4.3351522402878734e+04, "time_unit": "ns", - "execution_us": 7.0072695587149144e+02, + "execution_us": 4.3988750790961880e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2116,10 +2116,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.6029240047827120e-02, - "cpu_time": 6.4696622400550435e-02, + "real_time": 4.7197412080477790e-03, + "cpu_time": 4.6805324097691121e-03, "time_unit": "ns", - "execution_us": 6.6033041848343271e-02, + "execution_us": 4.7204379008250336e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2131,14 +2131,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 99, - "real_time": 8.4135951312621031e+06, - "cpu_time": 8.3329886666666716e+06, + "iterations": 102, + "real_time": 6.5654401568120671e+06, + "cpu_time": 6.5274613137255525e+06, "time_unit": "ns", - "execution_us": 8.4135333232323228e+03, + "execution_us": 6.5653815490196075e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.0316160000000000e+03, - "plan_cost": 8.4170300000000000e+05 + "optimizer_us": 1.2866576999999999e+04, + "plan_cost": 8.4132300000000000e+05 }, { "name": "SSB/q2.2/Interpreted/Optimized/real_time", @@ -2149,14 +2149,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 99, - "real_time": 7.9685093636854999e+06, - "cpu_time": 7.9010814444444580e+06, + "iterations": 102, + "real_time": 6.8956978137458796e+06, + "cpu_time": 6.8524312254901631e+06, "time_unit": "ns", - "execution_us": 7.9684414141414136e+03, + "execution_us": 6.8956396470588234e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.8065950000000000e+03, - "plan_cost": 8.4170300000000000e+05 + "optimizer_us": 1.3972527000000000e+04, + "plan_cost": 8.4132300000000000e+05 }, { "name": "SSB/q2.2/Interpreted/Optimized/real_time", @@ -2167,14 +2167,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 99, - "real_time": 7.5900591414532335e+06, - "cpu_time": 7.5348109191919388e+06, + "iterations": 102, + "real_time": 6.6110592058120184e+06, + "cpu_time": 6.5736407254901808e+06, "time_unit": "ns", - "execution_us": 7.5899939898989905e+03, + "execution_us": 6.6110030490196077e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.0731710000000000e+03, - "plan_cost": 8.4170300000000000e+05 + "optimizer_us": 1.2957645000000000e+04, + "plan_cost": 8.4132300000000000e+05 }, { "name": "SSB/q2.2/Interpreted/Optimized/real_time_mean", @@ -2187,13 +2187,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9907212121336116e+06, - "cpu_time": 7.9229603434343562e+06, + "real_time": 6.6907323921233220e+06, + "cpu_time": 6.6511777549019651e+06, "time_unit": "ns", - "execution_us": 7.9906562424242420e+03, + "execution_us": 6.6906747483660120e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.3037940000000001e+03, - "plan_cost": 8.4170300000000000e+05 + "optimizer_us": 1.3265582999999999e+04, + "plan_cost": 8.4132300000000000e+05 }, { "name": "SSB/q2.2/Interpreted/Optimized/real_time_median", @@ -2206,13 +2206,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9685093636854999e+06, - "cpu_time": 7.9010814444444580e+06, + "real_time": 6.6110592058120184e+06, + "cpu_time": 6.5736407254901817e+06, "time_unit": "ns", - "execution_us": 7.9684414141414136e+03, + "execution_us": 6.6110030490196077e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.0731710000000000e+03, - "plan_cost": 8.4170300000000000e+05 + "optimizer_us": 1.2957645000000000e+04, + "plan_cost": 8.4132300000000000e+05 }, { "name": "SSB/q2.2/Interpreted/Optimized/real_time_stddev", @@ -2225,12 +2225,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1221706209984189e+05, - "cpu_time": 3.9953841343068337e+05, + "real_time": 1.7896477992501413e+05, + "cpu_time": 1.7581340701320700e+05, "time_unit": "ns", - "execution_us": 4.1221885247221934e+02, + "execution_us": 1.7896448694560124e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.3593386964882581e+02, + "optimizer_us": 6.1392239697539685e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2244,12 +2244,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.1586965826552131e-02, - "cpu_time": 5.0427920387330377e-02, + "real_time": 2.6748159907830239e-02, + "cpu_time": 2.6433424799635119e-02, "time_unit": "ns", - "execution_us": 5.1587609323456331e-02, + "execution_us": 2.6748346568379777e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.3435793511001416e-01, + "optimizer_us": 4.6279337815412783e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2261,11 +2261,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 18, - "real_time": 4.0607061499839701e+07, - "cpu_time": 4.0351481166666761e+07, + "iterations": 19, + "real_time": 3.7398959894505285e+07, + "cpu_time": 3.7196774157894716e+07, "time_unit": "ns", - "execution_us": 4.0606629222222226e+04, + "execution_us": 3.7398766473684205e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2277,11 +2277,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 18, - "real_time": 4.2216152555839568e+07, - "cpu_time": 4.1927299333333209e+07, + "iterations": 19, + "real_time": 3.8067251420886211e+07, + "cpu_time": 3.7869327842105128e+07, "time_unit": "ns", - "execution_us": 4.2215964611111114e+04, + "execution_us": 3.8067074052631579e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2293,11 +2293,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 18, - "real_time": 4.0317931277968451e+07, - "cpu_time": 4.0051651055555403e+07, + "iterations": 19, + "real_time": 3.8827530158941001e+07, + "cpu_time": 3.8608999368420884e+07, "time_unit": "ns", - "execution_us": 4.0317765944444443e+04, + "execution_us": 3.8827290789473685e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2311,10 +2311,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1047048444549240e+07, - "cpu_time": 4.0776810518518455e+07, + "real_time": 3.8097913824777491e+07, + "cpu_time": 3.7891700456140235e+07, "time_unit": "ns", - "execution_us": 4.1046786592592594e+04, + "execution_us": 3.8097710438596492e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2328,10 +2328,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0607061499839701e+07, - "cpu_time": 4.0351481166666754e+07, + "real_time": 3.8067251420886211e+07, + "cpu_time": 3.7869327842105120e+07, "time_unit": "ns", - "execution_us": 4.0606629222222226e+04, + "execution_us": 3.8067074052631579e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2345,10 +2345,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0227425817755453e+06, - "cpu_time": 1.0075678183839857e+06, + "real_time": 7.1477855827294791e+05, + "cpu_time": 7.0637837715073663e+05, "time_unit": "ns", - "execution_us": 1.0227870880844279e+03, + "execution_us": 7.1475476305421307e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2362,10 +2362,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.4916348934495878e-02, - "cpu_time": 2.4709333701477390e-02, + "real_time": 1.8761619377911501e-02, + "cpu_time": 1.8642034235659910e-02, "time_unit": "ns", - "execution_us": 2.4917592167105294e-02, + "execution_us": 1.8761094953624841e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2377,14 +2377,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 102, - "real_time": 7.6368030000309115e+06, - "cpu_time": 7.5570298725490328e+06, + "iterations": 108, + "real_time": 6.4433846111771548e+06, + "cpu_time": 6.4086453518518452e+06, "time_unit": "ns", - "execution_us": 7.6367491764705883e+03, + "execution_us": 6.4433291574074074e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.6016930000000000e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.4948385999999999e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.1/Interpreted/Optimized/real_time", @@ -2395,14 +2395,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 102, - "real_time": 6.9085890196113130e+06, - "cpu_time": 6.8497502745098546e+06, + "iterations": 108, + "real_time": 6.7454733240689766e+06, + "cpu_time": 6.7074569629629441e+06, "time_unit": "ns", - "execution_us": 6.9085281372549016e+03, + "execution_us": 6.7454215092592594e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.3022220000000000e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.3795580999999998e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.1/Interpreted/Optimized/real_time", @@ -2413,14 +2413,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 102, - "real_time": 7.4443227746158699e+06, - "cpu_time": 7.3763595294117853e+06, + "iterations": 108, + "real_time": 6.3975821203375403e+06, + "cpu_time": 6.3593784629630046e+06, "time_unit": "ns", - "execution_us": 7.4442646764705878e+03, + "execution_us": 6.3975007222222221e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7854520000000000e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.3479989999999998e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.1/Interpreted/Optimized/real_time_mean", @@ -2433,13 +2433,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.3299049314193651e+06, - "cpu_time": 7.2610465588235566e+06, + "real_time": 6.5288133518612236e+06, + "cpu_time": 6.4918269259259319e+06, "time_unit": "ns", - "execution_us": 7.3298473300653586e+03, + "execution_us": 6.5287504629629630e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.5631223333333332e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.4074652333333332e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.1/Interpreted/Optimized/real_time_median", @@ -2452,13 +2452,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4443227746158689e+06, - "cpu_time": 7.3763595294117853e+06, + "real_time": 6.4433846111771539e+06, + "cpu_time": 6.4086453518518442e+06, "time_unit": "ns", - "execution_us": 7.4442646764705878e+03, + "execution_us": 6.4433291574074074e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.6016930000000000e+03, - "plan_cost": 8.1674300000000000e+05 + "optimizer_us": 4.3795580999999998e+04, + "plan_cost": 8.1637400000000000e+05 }, { "name": "SSB/q3.1/Interpreted/Optimized/real_time_stddev", @@ -2471,12 +2471,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7734928441820020e+05, - "cpu_time": 3.6746961553308601e+05, + "real_time": 1.8902546047977512e+05, + "cpu_time": 1.8835880982746891e+05, "time_unit": "ns", - "execution_us": 3.7735257698592523e+02, + "execution_us": 1.8903655227287305e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.4391305924516035e+02, + "optimizer_us": 7.7295362734161870e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2490,12 +2490,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.1480788352480059e-02, - "cpu_time": 5.0608354120321719e-02, + "real_time": 2.8952498760879426e-02, + "cpu_time": 2.9014761480352199e-02, "time_unit": "ns", - "execution_us": 5.1481642112532304e-02, + "execution_us": 2.8954476564123727e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.5604220734599811e-01, + "optimizer_us": 1.7537373216147633e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2507,11 +2507,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 63, - "real_time": 1.1912171571609741e+07, - "cpu_time": 1.1778481253968276e+07, + "iterations": 69, + "real_time": 9.8277976233647149e+06, + "cpu_time": 9.7621290000000037e+06, "time_unit": "ns", - "execution_us": 1.1912071285714286e+04, + "execution_us": 9.8277216956521734e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2523,11 +2523,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 63, - "real_time": 1.1182683618879685e+07, - "cpu_time": 1.1075830492063552e+07, + "iterations": 69, + "real_time": 9.8669190867466554e+06, + "cpu_time": 9.8087898405797295e+06, "time_unit": "ns", - "execution_us": 1.1182583476190475e+04, + "execution_us": 9.8668331014492760e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2539,11 +2539,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 63, - "real_time": 1.1056025269984579e+07, - "cpu_time": 1.0965050603174526e+07, + "iterations": 69, + "real_time": 1.0489353260946581e+07, + "cpu_time": 1.0391958608695602e+07, "time_unit": "ns", - "execution_us": 1.1055877841269841e+04, + "execution_us": 1.0489292014492754e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2557,10 +2557,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1383626820157999e+07, - "cpu_time": 1.1273120783068784e+07, + "real_time": 1.0061356657019317e+07, + "cpu_time": 9.9876258164251093e+06, "time_unit": "ns", - "execution_us": 1.1383510867724868e+04, + "execution_us": 1.0061282270531399e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2574,10 +2574,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1182683618879685e+07, - "cpu_time": 1.1075830492063550e+07, + "real_time": 9.8669190867466554e+06, + "cpu_time": 9.8087898405797295e+06, "time_unit": "ns", - "execution_us": 1.1182583476190475e+04, + "execution_us": 9.8668331014492760e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2591,10 +2591,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.6209333478380990e+05, - "cpu_time": 4.4114617770796997e+05, + "real_time": 3.7117171491677378e+05, + "cpu_time": 3.5093883183518582e+05, "time_unit": "ns", - "execution_us": 4.6211001512515378e+02, + "execution_us": 3.7118281373241041e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2608,10 +2608,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.0592804216450611e-02, - "cpu_time": 3.9132569072668148e-02, + "real_time": 3.6890821741998918e-02, + "cpu_time": 3.5137362801282643e-02, "time_unit": "ns", - "execution_us": 4.0594683002003584e-02, + "execution_us": 3.6892197609798887e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2623,14 +2623,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 43, - "real_time": 1.3773635348581253e+07, - "cpu_time": 1.3660822558139587e+07, + "iterations": 59, + "real_time": 1.2170481762919828e+07, + "cpu_time": 1.2093918372881362e+07, "time_unit": "ns", - "execution_us": 1.3773483767441861e+04, + "execution_us": 1.2170416067796610e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.6575780000000004e+03, - "plan_cost": 8.4320300000000000e+05 + "optimizer_us": 1.6894990649999999e+06, + "plan_cost": 8.4282300000000000e+05 }, { "name": "SSB/q4.2/Interpreted/Optimized/real_time", @@ -2641,14 +2641,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 43, - "real_time": 1.5205280976789612e+07, - "cpu_time": 1.5054663325581398e+07, + "iterations": 59, + "real_time": 1.2032078118833035e+07, + "cpu_time": 1.1957276084745813e+07, "time_unit": "ns", - "execution_us": 1.5205187930232558e+04, + "execution_us": 1.2032003779661018e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 6.0114719999999998e+03, - "plan_cost": 8.4320300000000000e+05 + "optimizer_us": 1.7099911180000000e+06, + "plan_cost": 8.4282300000000000e+05 }, { "name": "SSB/q4.2/Interpreted/Optimized/real_time", @@ -2659,14 +2659,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 43, - "real_time": 1.2281950813959092e+07, - "cpu_time": 1.2207621767441912e+07, + "iterations": 59, + "real_time": 1.1475812000029135e+07, + "cpu_time": 1.1419816338983040e+07, "time_unit": "ns", - "execution_us": 1.2281651488372092e+04, + "execution_us": 1.1475746593220339e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 6.4066629999999996e+03, - "plan_cost": 8.4320300000000000e+05 + "optimizer_us": 1.7165718210000000e+06, + "plan_cost": 8.4282300000000000e+05 }, { "name": "SSB/q4.2/Interpreted/Optimized/real_time_mean", @@ -2679,13 +2679,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3753622379776651e+07, - "cpu_time": 1.3641035883720964e+07, + "real_time": 1.1892790627260664e+07, + "cpu_time": 1.1823670265536739e+07, "time_unit": "ns", - "execution_us": 1.3753441062015505e+04, + "execution_us": 1.1892722146892655e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 6.6919043333333329e+03, - "plan_cost": 8.4320300000000000e+05 + "optimizer_us": 1.7053540013333336e+06, + "plan_cost": 8.4282300000000000e+05 }, { "name": "SSB/q4.2/Interpreted/Optimized/real_time_median", @@ -2698,13 +2698,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3773635348581254e+07, - "cpu_time": 1.3660822558139585e+07, + "real_time": 1.2032078118833035e+07, + "cpu_time": 1.1957276084745815e+07, "time_unit": "ns", - "execution_us": 1.3773483767441861e+04, + "execution_us": 1.2032003779661018e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 6.4066629999999996e+03, - "plan_cost": 8.4320300000000000e+05 + "optimizer_us": 1.7099911180000000e+06, + "plan_cost": 8.4282300000000000e+05 }, { "name": "SSB/q4.2/Interpreted/Optimized/real_time_stddev", @@ -2717,12 +2717,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4617678336244028e+06, - "cpu_time": 1.4236239119959881e+06, + "real_time": 3.6768501988806593e+05, + "cpu_time": 3.5635835085120163e+05, "time_unit": "ns", - "execution_us": 1.4618712714367416e+03, + "execution_us": 3.6768321915338271e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 8.5932427202444433e+02, + "optimizer_us": 1.4119513716582927e+04, "plan_cost": 0.0000000000000000e+00 }, { @@ -2736,12 +2736,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0628238825095185e-01, - "cpu_time": 1.0436332871867321e-01, + "real_time": 3.0916631042444992e-02, + "cpu_time": 3.0139401966401556e-02, "time_unit": "ns", - "execution_us": 1.0629131028700617e-01, + "execution_us": 3.0916657650952643e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.2841251596261280e-01, + "optimizer_us": 8.2795206775505645e-03, "plan_cost": 0.0000000000000000e+00 }, { @@ -2753,11 +2753,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 66, - "real_time": 9.9791058486461584e+06, - "cpu_time": 9.9133320757576339e+06, + "iterations": 70, + "real_time": 9.6278379717010204e+06, + "cpu_time": 9.5697546142856386e+06, "time_unit": "ns", - "execution_us": 9.9790416818181820e+03, + "execution_us": 9.6277589142857141e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2769,11 +2769,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 66, - "real_time": 9.7421464090461303e+06, - "cpu_time": 9.6840114545454606e+06, + "iterations": 70, + "real_time": 9.4915599429181647e+06, + "cpu_time": 9.4258588000000399e+06, "time_unit": "ns", - "execution_us": 9.7420595606060597e+03, + "execution_us": 9.4914928571428572e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2785,11 +2785,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 66, - "real_time": 9.9354656971020941e+06, - "cpu_time": 9.8686349090908114e+06, + "iterations": 70, + "real_time": 9.5405256712443326e+06, + "cpu_time": 9.4795176000001132e+06, "time_unit": "ns", - "execution_us": 9.9353701515151515e+03, + "execution_us": 9.5404531571428579e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2803,10 +2803,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8855726515981276e+06, - "cpu_time": 9.8219928131313007e+06, + "real_time": 9.5533078619545065e+06, + "cpu_time": 9.4917103380952645e+06, "time_unit": "ns", - "execution_us": 9.8854904646464638e+03, + "execution_us": 9.5532349761904770e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2820,10 +2820,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.9354656971020941e+06, - "cpu_time": 9.8686349090908114e+06, + "real_time": 9.5405256712443326e+06, + "cpu_time": 9.4795176000001151e+06, "time_unit": "ns", - "execution_us": 9.9353701515151515e+03, + "execution_us": 9.5404531571428579e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2837,10 +2837,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2611277094789948e+05, - "cpu_time": 1.2156726806552755e+05, + "real_time": 6.9032337217831679e+04, + "cpu_time": 7.2718625460879979e+04, "time_unit": "ns", - "execution_us": 1.2611946247567755e+02, + "execution_us": 6.9026377247445780e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2854,10 +2854,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2757254980824176e-02, - "cpu_time": 1.2377047140881716e-02, + "real_time": 7.2260140901298647e-03, + "cpu_time": 7.6612773536737207e-03, "time_unit": "ns", - "execution_us": 1.2758037947304618e-02, + "execution_us": 7.2254453511800126e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2869,14 +2869,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 50, - "real_time": 1.3572907519992443e+07, - "cpu_time": 1.3484294879999936e+07, + "iterations": 54, + "real_time": 1.2863843851610674e+07, + "cpu_time": 1.2800047574074034e+07, "time_unit": "ns", - "execution_us": 1.3572817620000002e+04, + "execution_us": 1.2863761981481481e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.9196149999999998e+03, - "plan_cost": 8.4317300000000000e+05 + "optimizer_us": 7.3953727099999995e+05, + "plan_cost": 8.4279300000000000e+05 }, { "name": "SSB/q4.1/Interpreted/Optimized/real_time", @@ -2887,14 +2887,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 50, - "real_time": 1.3961699460051022e+07, - "cpu_time": 1.3863721519999929e+07, + "iterations": 54, + "real_time": 1.3123589462742934e+07, + "cpu_time": 1.3043514370370386e+07, "time_unit": "ns", - "execution_us": 1.3961627600000000e+04, + "execution_us": 1.3123442092592593e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.8879760000000001e+03, - "plan_cost": 8.4317300000000000e+05 + "optimizer_us": 7.4747992000000004e+05, + "plan_cost": 8.4279300000000000e+05 }, { "name": "SSB/q4.1/Interpreted/Optimized/real_time", @@ -2905,14 +2905,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 50, - "real_time": 1.3328604919952340e+07, - "cpu_time": 1.3238763319999976e+07, + "iterations": 54, + "real_time": 1.3179273685198966e+07, + "cpu_time": 1.3086517425925855e+07, "time_unit": "ns", - "execution_us": 1.3328537479999999e+04, + "execution_us": 1.3179186222222223e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.1023909999999996e+03, - "plan_cost": 8.4317300000000000e+05 + "optimizer_us": 7.1924559499999997e+05, + "plan_cost": 8.4279300000000000e+05 }, { "name": "SSB/q4.1/Interpreted/Optimized/real_time_mean", @@ -2925,13 +2925,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3621070633331932e+07, - "cpu_time": 1.3528926573333280e+07, + "real_time": 1.3055568999850856e+07, + "cpu_time": 1.2976693123456756e+07, "time_unit": "ns", - "execution_us": 1.3620994233333333e+04, + "execution_us": 1.3055463432098764e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.9699939999999997e+03, - "plan_cost": 8.4317300000000000e+05 + "optimizer_us": 7.3542092866666673e+05, + "plan_cost": 8.4279300000000000e+05 }, { "name": "SSB/q4.1/Interpreted/Optimized/real_time_median", @@ -2944,13 +2944,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3572907519992441e+07, - "cpu_time": 1.3484294879999936e+07, + "real_time": 1.3123589462742932e+07, + "cpu_time": 1.3043514370370382e+07, "time_unit": "ns", - "execution_us": 1.3572817620000002e+04, + "execution_us": 1.3123442092592593e+04, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 3.9196149999999998e+03, - "plan_cost": 8.4317300000000000e+05 + "optimizer_us": 7.3953727099999995e+05, + "plan_cost": 8.4279300000000000e+05 }, { "name": "SSB/q4.1/Interpreted/Optimized/real_time_stddev", @@ -2963,12 +2963,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1928347638208332e+05, - "cpu_time": 3.1486057068819489e+05, + "real_time": 1.6835700908612020e+05, + "cpu_time": 1.5448318123455989e+05, "time_unit": "ns", - "execution_us": 3.1928281282363724e+02, + "execution_us": 1.6834172573571180e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.1574532727933205e+02, + "optimizer_us": 1.4560305034755940e+04, "plan_cost": 0.0000000000000000e+00 }, { @@ -2982,12 +2982,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3440409713519083e-02, - "cpu_time": 2.3273137671455262e-02, + "real_time": 1.2895417203803484e-02, + "cpu_time": 1.1904664752787831e-02, "time_unit": "ns", - "execution_us": 2.3440492474645316e-02, + "execution_us": 1.2894350829539998e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.9155038339940074e-02, + "optimizer_us": 1.9798600321524806e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2999,11 +2999,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 73, - "real_time": 9.4941860821962431e+06, - "cpu_time": 9.4339479178081937e+06, + "iterations": 64, + "real_time": 9.6015775779960677e+06, + "cpu_time": 9.4240870624999758e+06, "time_unit": "ns", - "execution_us": 9.4941211917808214e+03, + "execution_us": 9.6015101718749993e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3015,11 +3015,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 73, - "real_time": 9.5839359040439054e+06, - "cpu_time": 9.5257411917808335e+06, + "iterations": 64, + "real_time": 9.4633789062754661e+06, + "cpu_time": 9.4057306249999423e+06, "time_unit": "ns", - "execution_us": 9.5838616438356166e+03, + "execution_us": 9.4633035624999993e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3031,11 +3031,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 73, - "real_time": 9.4410957671280894e+06, - "cpu_time": 9.3849140273972545e+06, + "iterations": 64, + "real_time": 9.4466778596142828e+06, + "cpu_time": 9.3827825468750801e+06, "time_unit": "ns", - "execution_us": 9.4410327945205481e+03, + "execution_us": 9.4466047187500008e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3049,10 +3049,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5064059177894127e+06, - "cpu_time": 9.4482010456620920e+06, + "real_time": 9.5038781146286055e+06, + "cpu_time": 9.4042000781249981e+06, "time_unit": "ns", - "execution_us": 9.5063385433789954e+03, + "execution_us": 9.5038061510416665e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3066,10 +3066,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.4941860821962412e+06, - "cpu_time": 9.4339479178081919e+06, + "real_time": 9.4633789062754661e+06, + "cpu_time": 9.4057306249999423e+06, "time_unit": "ns", - "execution_us": 9.4941211917808214e+03, + "execution_us": 9.4633035624999993e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3083,10 +3083,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2199857790542941e+04, - "cpu_time": 7.1487315639248089e+04, + "real_time": 8.5021292019139873e+04, + "cpu_time": 2.0694750133421130e+04, "time_unit": "ns", - "execution_us": 7.2193959645042938e+01, + "execution_us": 8.5025111648877925e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -3100,10 +3100,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.5948637597553856e-03, - "cpu_time": 7.5662356562649271e-03, + "real_time": 8.9459577441626682e-03, + "cpu_time": 2.2005859043300185e-03, "time_unit": "ns", - "execution_us": 7.5942971434911511e-03, + "execution_us": 8.9464273889423487e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -3115,14 +3115,14 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 105, - "real_time": 6.6341793333690260e+06, - "cpu_time": 6.5972472380952323e+06, + "iterations": 106, + "real_time": 6.2337937923521679e+06, + "cpu_time": 6.1994316603774205e+06, "time_unit": "ns", - "execution_us": 6.6341253999999999e+03, + "execution_us": 6.2337179245283014e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.7711900000000003e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.2146959999999999e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.3/Interpreted/Optimized/real_time", @@ -3133,14 +3133,14 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 105, - "real_time": 7.0254607809363818e+06, - "cpu_time": 6.9796631619047793e+06, + "iterations": 106, + "real_time": 6.4182148961886270e+06, + "cpu_time": 6.3774029433961688e+06, "time_unit": "ns", - "execution_us": 7.0253927428571433e+03, + "execution_us": 6.4181481415094340e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.4759100000000001e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.6024849999999997e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.3/Interpreted/Optimized/real_time", @@ -3151,14 +3151,14 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 105, - "real_time": 6.8238354951886106e+06, - "cpu_time": 6.7844589619047903e+06, + "iterations": 106, + "real_time": 6.2254421887392141e+06, + "cpu_time": 6.1920818396226596e+06, "time_unit": "ns", - "execution_us": 6.8237815047619042e+03, + "execution_us": 6.2253759528301889e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.3170299999999997e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.3557669999999998e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.3/Interpreted/Optimized/real_time_mean", @@ -3171,13 +3171,13 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8278252031646715e+06, - "cpu_time": 6.7871231206349349e+06, + "real_time": 6.2924836257600030e+06, + "cpu_time": 6.2563054811320826e+06, "time_unit": "ns", - "execution_us": 6.8277665492063479e+03, + "execution_us": 6.2924140062893075e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.5213766666666663e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.3909826666666668e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.3/Interpreted/Optimized/real_time_median", @@ -3190,13 +3190,13 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8238354951886097e+06, - "cpu_time": 6.7844589619047912e+06, + "real_time": 6.2337937923521670e+06, + "cpu_time": 6.1994316603774205e+06, "time_unit": "ns", - "execution_us": 6.8237815047619042e+03, + "execution_us": 6.2337179245283014e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 8.4759100000000001e+02, - "plan_cost": 8.3660300000000000e+05 + "optimizer_us": 5.3557669999999998e+03, + "plan_cost": 8.3622300000000000e+05 }, { "name": "SSB/q2.3/Interpreted/Optimized/real_time_stddev", @@ -3209,12 +3209,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9567123224914467e+05, - "cpu_time": 1.9122188159851517e+05, + "real_time": 1.0896651592772501e+05, + "cpu_time": 1.0493784584879056e+05, "time_unit": "ns", - "execution_us": 1.9566410971631640e+02, + "execution_us": 1.0896881064158120e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.3046852221800975e+01, + "optimizer_us": 1.9627833429681101e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -3228,12 +3228,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.8657914698585391e-02, - "cpu_time": 2.8174217293501287e-02, + "real_time": 1.7316932773832061e-02, + "cpu_time": 1.6773133307710859e-02, "time_unit": "ns", - "execution_us": 2.8657117712828098e-02, + "execution_us": 1.7317489048347134e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.7045925938180931e-02, + "optimizer_us": 3.6408637614517340e-02, "plan_cost": 0.0000000000000000e+00 } ] diff --git a/research/benchmarks.ipynb b/research/benchmarks.ipynb index f475c98..4eeae6b 100644 --- a/research/benchmarks.ipynb +++ b/research/benchmarks.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "b5291871", "metadata": {}, "outputs": [ @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-06-02T01:16:13+03:00\n", + "2026-06-09T23:45:24+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -18,59 +18,59 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 0.38, 0.38, 0.46\n", + "Load Average: 0.41, 0.52, 0.86\n", "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", "----------------------------------------------------------------------------------------------------------------------------------------------------\n", "Benchmark Time CPU Iterations\n", "----------------------------------------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 22492 ns 22349 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 22447 ns 22296 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1558 ns 1526 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 6.93 % 6.83 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 20696 ns 20601 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 20835 ns 20742 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 834 ns 810 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.03 % 3.93 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 20039 ns 19954 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19980 ns 19905 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 172 ns 177 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.89 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19665 ns 19591 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19751 ns 19677 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 207 ns 204 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.05 % 1.04 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 71494 ns 70618 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 72186 ns 71298 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3465 ns 3354 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.85 % 4.75 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 71193 ns 70379 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 71837 ns 70986 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1447 ns 1398 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.03 % 1.99 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 74523 ns 73518 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 74232 ns 73228 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3582 ns 3406 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.81 % 4.63 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 70604 ns 69783 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 68387 ns 67663 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 6690 ns 6389 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 9.48 % 9.16 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 88746 ns 87780 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 87787 ns 86834 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 4903 ns 4717 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 5.52 % 5.37 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 93122 ns 92033 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 94811 ns 93696 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3892 ns 3747 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.18 % 4.07 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 84456 ns 83477 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 85501 ns 84546 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3598 ns 3410 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.26 % 4.08 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 80405 ns 79621 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 80566 ns 79795 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 536 ns 528 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19715 ns 19630 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19839 ns 19745 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 324 ns 314 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.64 % 1.60 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19566 ns 19478 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19396 ns 19323 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 336 ns 324 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.72 % 1.66 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19754 ns 19666 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19761 ns 19648 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 289 ns 283 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.47 % 1.44 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19804 ns 19725 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19577 ns 19499 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 533 ns 523 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.69 % 2.65 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 70585 ns 69363 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 69486 ns 68784 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1996 ns 1071 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.83 % 1.54 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 43139 ns 42969 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 42265 ns 42095 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1908 ns 1873 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.42 % 4.36 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 68980 ns 68288 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 67762 ns 67089 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 2321 ns 2267 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 3.37 % 3.32 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 44213 ns 44019 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 43826 ns 43656 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1117 ns 1099 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.53 % 2.50 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 90198 ns 89113 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 89940 ns 88866 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3059 ns 2960 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 3.39 % 3.32 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 96809 ns 94872 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 95242 ns 93994 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 6365 ns 5128 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 6.58 % 5.40 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 95552 ns 93781 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 100165 ns 98047 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 8398 ns 8292 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 8.79 % 8.84 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 87877 ns 86576 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 86511 ns 85319 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 4625 ns 4531 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 5.26 % 5.23 % \u001b[m\u001b[0;36m 3\u001b[m\n", "\u001b[m" ] } @@ -82,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "94b2cd75", "metadata": {}, "outputs": [ @@ -90,7 +90,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-06-02T01:16:41+03:00\n", + "2026-06-09T23:45:52+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -98,115 +98,115 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 0.80, 0.49, 0.49\n", + "Load Average: 1.00, 0.64, 0.90\n", "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", "----------------------------------------------------------------------------------------------------------\n", "Benchmark Time CPU Iterations UserCounters...\n", "----------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9535917 ns 9457917 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.53583k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9539993 ns 9459233 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.53993k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 26903 ns 26949 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=26.9284\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.28 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.28%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 10018523 ns 9946935 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0184k\u001b[m includes_order_by=1\u001b[m optimizer_us=818.029\u001b[m plan_cost=836.603k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 10025189 ns 9956589 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0251k\u001b[m includes_order_by=1\u001b[m optimizer_us=797.011\u001b[m plan_cost=836.603k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 23507 ns 26853 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=23.4951\u001b[m includes_order_by=0\u001b[m optimizer_us=47.3596\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.27 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.23%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=5.79%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8894810 ns 8830456 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.89474k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8703923 ns 8643932 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.70386k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 370836 ns 362794 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=370.843\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.17 % 4.11 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.17%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7216482 ns 7178427 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.21641k\u001b[m includes_order_by=0\u001b[m optimizer_us=419.653\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7171734 ns 7135746 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.17166k\u001b[m includes_order_by=0\u001b[m optimizer_us=404.975\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 378775 ns 369597 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=378.779\u001b[m includes_order_by=0\u001b[m optimizer_us=40.6977\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 5.25 % 5.15 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.25%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=9.70%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8755501 ns 8695939 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.75534k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8634674 ns 8580077 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.63449k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 313421 ns 306308 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=313.48\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.58 % 3.52 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.58%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6842163 ns 6813610 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.8421k\u001b[m includes_order_by=0\u001b[m optimizer_us=225.618\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6857864 ns 6828042 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.8578k\u001b[m includes_order_by=0\u001b[m optimizer_us=225.797\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 47976 ns 47617 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=47.9819\u001b[m includes_order_by=0\u001b[m optimizer_us=2.58966\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.70 % 0.70 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.70%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.15%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38770551 ns 38545894 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.7704k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 38937311 ns 38712070 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.9372k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 403708 ns 387320 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=403.68\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.04 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.04%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6165384 ns 6131574 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.16533k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.97412k\u001b[m plan_cost=817.083k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6220261 ns 6184963 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2202k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.92956k\u001b[m plan_cost=817.083k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 109818 ns 106871 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=109.811\u001b[m includes_order_by=0\u001b[m optimizer_us=127.329\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.78 % 1.74 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.78%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=6.45%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38014861 ns 37785646 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.0147k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 37373498 ns 37160567 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=37.3733k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1152550 ns 1124559 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.15257k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.03 % 2.98 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.03%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6548677 ns 6491466 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.54861k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.73735k\u001b[m plan_cost=817.083k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6752747 ns 6702527 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.75267k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.76762k\u001b[m plan_cost=817.083k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 547461 ns 516050 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=547.457\u001b[m includes_order_by=0\u001b[m optimizer_us=55.8846\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 8.36 % 7.95 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.36%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.22%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9839082 ns 9773621 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.83901k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9830951 ns 9757826 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.83088k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 29124 ns 30559 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=29.1302\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.31 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.30%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6726511 ns 6685741 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.72644k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.74304k\u001b[m plan_cost=841.733k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6733679 ns 6696410 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.73358k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.75501k\u001b[m plan_cost=841.733k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 20124 ns 21507 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=20.1209\u001b[m includes_order_by=0\u001b[m optimizer_us=100.716\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.32 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.30%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.69%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8337287 ns 8286855 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.33722k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8332199 ns 8279335 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.33213k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 30591 ns 33255 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=30.5828\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.37 % 0.40 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.37%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7009090 ns 6972349 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.00901k\u001b[m includes_order_by=0\u001b[m optimizer_us=203.094\u001b[m plan_cost=705.057k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7011279 ns 6975684 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.01123k\u001b[m includes_order_by=0\u001b[m optimizer_us=203.772\u001b[m plan_cost=705.057k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 7876 ns 7272 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.88332\u001b[m includes_order_by=0\u001b[m optimizer_us=12.9813\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.11 % 0.10 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.11%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=6.39%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 41168218 ns 40861121 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.168k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 39951647 ns 39624417 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=39.9514k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 2772999 ns 2719430 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.77305k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 6.74 % 6.66 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.74%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7331045 ns 7263440 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.33098k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.77516k\u001b[m plan_cost=816.743k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7250476 ns 7179529 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.25042k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.45913k\u001b[m plan_cost=816.743k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 560067 ns 542530 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=560.073\u001b[m includes_order_by=0\u001b[m optimizer_us=631.618\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 7.64 % 7.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.64%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=35.58%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10611863 ns 10523713 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.6118k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10571693 ns 10485617 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.5716k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 700693 ns 680849 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=700.727\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 6.60 % 6.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.60%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7990721 ns 7922960 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.99066k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.30379k\u001b[m plan_cost=841.703k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7968509 ns 7901081 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.96844k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.07317k\u001b[m plan_cost=841.703k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 412217 ns 399538 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=412.219\u001b[m includes_order_by=0\u001b[m optimizer_us=435.934\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 5.16 % 5.04 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.16%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=33.44%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 41047048 ns 40776811 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.0468k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 40607061 ns 40351481 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=40.6066k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1022743 ns 1007568 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.02279k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.49 % 2.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.49%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7329905 ns 7261047 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.32985k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.56312k\u001b[m plan_cost=816.743k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7444323 ns 7376360 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.44426k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.60169k\u001b[m plan_cost=816.743k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 377349 ns 367470 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=377.353\u001b[m includes_order_by=0\u001b[m optimizer_us=243.913\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 5.15 % 5.06 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.15%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=15.60%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 11383627 ns 11273121 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.3835k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 11182684 ns 11075830 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.1826k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 462093 ns 441146 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=462.11\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.06 % 3.91 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.06%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 13753622 ns 13641036 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.7534k\u001b[m includes_order_by=1\u001b[m optimizer_us=6.6919k\u001b[m plan_cost=843.203k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 13773635 ns 13660823 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.7735k\u001b[m includes_order_by=1\u001b[m optimizer_us=6.40666k\u001b[m plan_cost=843.203k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 1461768 ns 1423624 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.46187k\u001b[m includes_order_by=0\u001b[m optimizer_us=859.324\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 10.63 % 10.44 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.63%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=12.84%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9885573 ns 9821993 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.88549k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9935466 ns 9868635 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.93537k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 126113 ns 121567 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=126.119\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.28 % 1.24 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.28%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 13621071 ns 13528927 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.621k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.96999k\u001b[m plan_cost=843.173k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 13572908 ns 13484295 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.5728k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.91961k\u001b[m plan_cost=843.173k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 319283 ns 314861 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=319.283\u001b[m includes_order_by=0\u001b[m optimizer_us=115.745\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.34 % 2.33 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.34%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.92%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9506406 ns 9448201 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.50634k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9494186 ns 9433948 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.49412k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 72200 ns 71487 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=72.194\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.76 % 0.76 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.76%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6827825 ns 6787123 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.82777k\u001b[m includes_order_by=1\u001b[m optimizer_us=852.138\u001b[m plan_cost=836.603k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6823835 ns 6784459 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.82378k\u001b[m includes_order_by=1\u001b[m optimizer_us=847.591\u001b[m plan_cost=836.603k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 195671 ns 191222 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=195.664\u001b[m includes_order_by=0\u001b[m optimizer_us=23.0469\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.87 % 2.82 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.87%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.70%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10529208 ns 10430532 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.5291k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10357855 ns 10266127 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.3577k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 680061 ns 657238 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=680.069\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 6.46 % 6.30 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.46%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 11087104 ns 10938563 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.087k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.52226k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 11374830 ns 11181105 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.3748k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.59036k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 807685 ns 805879 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=807.683\u001b[m includes_order_by=0\u001b[m optimizer_us=142.327\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 7.28 % 7.37 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.28%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.58%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8696587 ns 8625517 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.69653k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8424029 ns 8351053 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.42397k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 614383 ns 602582 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=614.378\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 7.06 % 6.99 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.06%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 8481006 ns 8356025 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.48094k\u001b[m includes_order_by=0\u001b[m optimizer_us=464.225\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 8430650 ns 8195103 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.43059k\u001b[m includes_order_by=0\u001b[m optimizer_us=463.328\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 413000 ns 423645 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=413.003\u001b[m includes_order_by=0\u001b[m optimizer_us=5.17612\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 4.87 % 5.07 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.87%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.12%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10591798 ns 10470366 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.5917k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10967922 ns 10832180 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.9678k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 778749 ns 750058 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=778.722\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 7.35 % 7.16 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.35%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 8042493 ns 7973771 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.04242k\u001b[m includes_order_by=0\u001b[m optimizer_us=389.801\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7975113 ns 7919581 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.97505k\u001b[m includes_order_by=0\u001b[m optimizer_us=373.936\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 716234 ns 709722 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=716.23\u001b[m includes_order_by=0\u001b[m optimizer_us=40.4184\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 8.91 % 8.90 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.91%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=10.37%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 41079134 ns 40719159 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.0788k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 41251745 ns 40951561 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.2516k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1772659 ns 1741817 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.77282k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.32 % 4.28 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.32%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6184696 ns 6137487 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.18463k\u001b[m includes_order_by=1\u001b[m optimizer_us=97.5624k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6169728 ns 6119638 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.16966k\u001b[m includes_order_by=1\u001b[m optimizer_us=96.677k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 35201 ns 43807 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=35.2042\u001b[m includes_order_by=0\u001b[m optimizer_us=2.64896k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.57 % 0.71 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.57%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.72%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 39726018 ns 39369045 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=39.7258k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 39289269 ns 38939516 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=39.289k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1152565 ns 1067549 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.15258k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.71 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.90%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6226768 ns 6189600 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2267k\u001b[m includes_order_by=1\u001b[m optimizer_us=46.7043k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6217583 ns 6181985 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2175k\u001b[m includes_order_by=1\u001b[m optimizer_us=46.7191k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 74863 ns 74631 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=74.8587\u001b[m includes_order_by=0\u001b[m optimizer_us=496.521\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.20 % 1.21 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.20%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.06%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10159185 ns 10079207 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.1591k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10047677 ns 9977358 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0476k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 345553 ns 338814 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=345.524\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.40 % 3.36 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.40%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6886022 ns 6843094 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.88595k\u001b[m includes_order_by=1\u001b[m optimizer_us=592.57k\u001b[m plan_cost=841.353k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6878252 ns 6836928 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.87819k\u001b[m includes_order_by=1\u001b[m optimizer_us=594.328k\u001b[m plan_cost=841.353k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 13616 ns 11041 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.5977\u001b[m includes_order_by=0\u001b[m optimizer_us=8.90421k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.20 % 0.16 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.20%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.50%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8560502 ns 8501831 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.56041k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8474498 ns 8421813 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.47444k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 236679 ns 232363 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=236.611\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.76 % 2.73 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.76%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7188918 ns 7145194 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.18887k\u001b[m includes_order_by=0\u001b[m optimizer_us=386.236\u001b[m plan_cost=705.057k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7065500 ns 7025301 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.06544k\u001b[m includes_order_by=0\u001b[m optimizer_us=278.406\u001b[m plan_cost=705.057k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 220209 ns 217250 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=220.214\u001b[m includes_order_by=0\u001b[m optimizer_us=189.749\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.06 % 3.04 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.06%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=49.13%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38735087 ns 38507394 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.7349k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 38800745 ns 38599089 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.8006k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 794694 ns 787590 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=794.706\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.05 % 2.05 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.05%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6717959 ns 6675562 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.71791k\u001b[m includes_order_by=1\u001b[m optimizer_us=44.7762k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6691263 ns 6649855 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.69122k\u001b[m includes_order_by=1\u001b[m optimizer_us=44.9583k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 223132 ns 219030 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=223.132\u001b[m includes_order_by=0\u001b[m optimizer_us=1.38305k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.32 % 3.28 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.32%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.09%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9318865 ns 9262092 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.31879k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9317950 ns 9264243 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.31784k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 43983 ns 43352 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=43.9888\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.47%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6690732 ns 6651178 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.69067k\u001b[m includes_order_by=1\u001b[m optimizer_us=13.2656k\u001b[m plan_cost=841.323k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6611059 ns 6573641 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.611k\u001b[m includes_order_by=1\u001b[m optimizer_us=12.9576k\u001b[m plan_cost=841.323k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 178965 ns 175813 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=178.964\u001b[m includes_order_by=0\u001b[m optimizer_us=613.922\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.67 % 2.64 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.67%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=4.63%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38097914 ns 37891700 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.0977k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 38067251 ns 37869328 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.0671k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 714779 ns 706378 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=714.755\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.88 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.88%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6528813 ns 6491827 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.52875k\u001b[m includes_order_by=1\u001b[m optimizer_us=44.0747k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6443385 ns 6408645 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.44333k\u001b[m includes_order_by=1\u001b[m optimizer_us=43.7956k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 189025 ns 188359 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=189.037\u001b[m includes_order_by=0\u001b[m optimizer_us=772.954\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.90 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.90%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.75%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10061357 ns 9987626 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0613k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9866919 ns 9808790 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.86683k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 371172 ns 350939 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=371.183\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.69 % 3.51 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.69%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 11892791 ns 11823670 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.8927k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.70535M\u001b[m plan_cost=842.823k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 12032078 ns 11957276 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=12.032k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.70999M\u001b[m plan_cost=842.823k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 367685 ns 356358 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=367.683\u001b[m includes_order_by=0\u001b[m optimizer_us=14.1195k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.09 % 3.01 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.09%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=0.83%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9553308 ns 9491710 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.55323k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9540526 ns 9479518 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.54045k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 69032 ns 72719 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=69.0264\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.77 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.72%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 13055569 ns 12976693 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.0555k\u001b[m includes_order_by=1\u001b[m optimizer_us=735.421k\u001b[m plan_cost=842.793k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 13123589 ns 13043514 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.1234k\u001b[m includes_order_by=1\u001b[m optimizer_us=739.537k\u001b[m plan_cost=842.793k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 168357 ns 154483 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=168.342\u001b[m includes_order_by=0\u001b[m optimizer_us=14.5603k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.29 % 1.19 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.29%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.98%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9503878 ns 9404200 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.50381k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9463379 ns 9405731 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.4633k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 85021 ns 20695 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=85.0251\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.89 % 0.22 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.89%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6292484 ns 6256305 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.29241k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.39098k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6233794 ns 6199432 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.23372k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.35577k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 108967 ns 104938 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=108.969\u001b[m includes_order_by=0\u001b[m optimizer_us=196.278\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.73 % 1.68 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.73%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.64%\u001b[m plan_cost=0.00%\u001b[m\n", "\u001b[m" ] } @@ -217,7 +217,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "6f8e3873", "metadata": {}, "outputs": [ @@ -225,7 +225,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-06-02T01:17:41+03:00\n", + "2026-06-09T23:47:09+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -233,267 +233,267 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 1.43, 0.74, 0.58\n", + "Load Average: 1.62, 0.92, 0.97\n", "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", "----------------------------------------------------------------------------------------------------------------------\n", "Benchmark Time CPU Iterations UserCounters...\n", "----------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCost/SeqScan/1024/real_time_mean \u001b[m\u001b[0;33m 38473 ns 38210 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_median \u001b[m\u001b[0;33m 38428 ns 38240 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_stddev \u001b[m\u001b[0;33m 753 ns 851 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_cv \u001b[m\u001b[0;33m 1.96 % 2.23 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_mean \u001b[m\u001b[0;33m 69707 ns 69380 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_median \u001b[m\u001b[0;33m 69583 ns 69238 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_stddev \u001b[m\u001b[0;33m 909 ns 889 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_cv \u001b[m\u001b[0;33m 1.30 % 1.28 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_mean \u001b[m\u001b[0;33m 154163 ns 152385 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_median \u001b[m\u001b[0;33m 153859 ns 152316 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_stddev \u001b[m\u001b[0;33m 901 ns 563 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_cv \u001b[m\u001b[0;33m 0.58 % 0.37 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_mean \u001b[m\u001b[0;33m 390148 ns 385602 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_median \u001b[m\u001b[0;33m 399998 ns 395298 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_stddev \u001b[m\u001b[0;33m 30561 ns 29527 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_cv \u001b[m\u001b[0;33m 7.83 % 7.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_mean \u001b[m\u001b[0;33m 924368 ns 914961 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_median \u001b[m\u001b[0;33m 931261 ns 921625 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_stddev \u001b[m\u001b[0;33m 17627 ns 17412 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_cv \u001b[m\u001b[0;33m 1.91 % 1.90 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_mean \u001b[m\u001b[0;33m 1901611 ns 1885331 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_median \u001b[m\u001b[0;33m 1933730 ns 1916091 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_stddev \u001b[m\u001b[0;33m 90232 ns 87205 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_cv \u001b[m\u001b[0;33m 4.75 % 4.63 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_mean \u001b[m\u001b[0;33m 4965998 ns 4909459 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_median \u001b[m\u001b[0;33m 4998141 ns 4946201 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_stddev \u001b[m\u001b[0;33m 155421 ns 163668 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_cv \u001b[m\u001b[0;33m 3.13 % 3.33 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_mean \u001b[m\u001b[0;33m 12138600 ns 11998804 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_median \u001b[m\u001b[0;33m 11162739 ns 11038913 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_stddev \u001b[m\u001b[0;33m 1830952 ns 1805064 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_cv \u001b[m\u001b[0;33m 15.08 % 15.04 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_mean \u001b[m\u001b[0;33m 25644707 ns 25374424 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_median \u001b[m\u001b[0;33m 23244999 ns 23024292 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_stddev \u001b[m\u001b[0;33m 4388803 ns 4299232 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_cv \u001b[m\u001b[0;33m 17.11 % 16.94 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_mean \u001b[m\u001b[0;33m 70425 ns 70146 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_median \u001b[m\u001b[0;33m 70365 ns 70086 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_stddev \u001b[m\u001b[0;33m 535 ns 551 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_cv \u001b[m\u001b[0;33m 0.76 % 0.79 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_mean \u001b[m\u001b[0;33m 125482 ns 125054 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_median \u001b[m\u001b[0;33m 125359 ns 124936 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_stddev \u001b[m\u001b[0;33m 329 ns 322 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_cv \u001b[m\u001b[0;33m 0.26 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_mean \u001b[m\u001b[0;33m 244461 ns 243272 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_median \u001b[m\u001b[0;33m 244237 ns 242959 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_stddev \u001b[m\u001b[0;33m 1017 ns 1018 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_cv \u001b[m\u001b[0;33m 0.42 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_mean \u001b[m\u001b[0;33m 479696 ns 477349 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_median \u001b[m\u001b[0;33m 477488 ns 475398 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_stddev \u001b[m\u001b[0;33m 6388 ns 6050 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_cv \u001b[m\u001b[0;33m 1.33 % 1.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_mean \u001b[m\u001b[0;33m 993383 ns 988008 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_median \u001b[m\u001b[0;33m 990927 ns 985217 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_stddev \u001b[m\u001b[0;33m 5275 ns 5696 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_cv \u001b[m\u001b[0;33m 0.53 % 0.58 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_mean \u001b[m\u001b[0;33m 2178959 ns 2166464 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_median \u001b[m\u001b[0;33m 2129820 ns 2118195 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_stddev \u001b[m\u001b[0;33m 101295 ns 99833 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_cv \u001b[m\u001b[0;33m 4.65 % 4.61 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_mean \u001b[m\u001b[0;33m 4436384 ns 4413484 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_median \u001b[m\u001b[0;33m 4473698 ns 4450082 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_stddev \u001b[m\u001b[0;33m 137556 ns 135091 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_cv \u001b[m\u001b[0;33m 3.10 % 3.06 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_mean \u001b[m\u001b[0;33m 9775161 ns 9717069 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_median \u001b[m\u001b[0;33m 9723418 ns 9663916 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_stddev \u001b[m\u001b[0;33m 113812 ns 109969 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_mean \u001b[m\u001b[0;33m 20011648 ns 19895345 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_median \u001b[m\u001b[0;33m 20028071 ns 19914759 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_stddev \u001b[m\u001b[0;33m 218024 ns 212289 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_cv \u001b[m\u001b[0;33m 1.09 % 1.07 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_mean \u001b[m\u001b[0;33m 94356 ns 94028 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_median \u001b[m\u001b[0;33m 94592 ns 94279 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_stddev \u001b[m\u001b[0;33m 520 ns 549 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_cv \u001b[m\u001b[0;33m 0.55 % 0.58 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_mean \u001b[m\u001b[0;33m 176410 ns 175840 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_median \u001b[m\u001b[0;33m 176334 ns 175777 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_stddev \u001b[m\u001b[0;33m 553 ns 490 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_cv \u001b[m\u001b[0;33m 0.31 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_mean \u001b[m\u001b[0;33m 351209 ns 349742 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_median \u001b[m\u001b[0;33m 350576 ns 349336 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_stddev \u001b[m\u001b[0;33m 6628 ns 6489 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_cv \u001b[m\u001b[0;33m 1.89 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_mean \u001b[m\u001b[0;33m 688010 ns 684898 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_median \u001b[m\u001b[0;33m 687349 ns 684331 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_stddev \u001b[m\u001b[0;33m 6078 ns 6140 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_cv \u001b[m\u001b[0;33m 0.88 % 0.90 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_mean \u001b[m\u001b[0;33m 1408705 ns 1401811 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_median \u001b[m\u001b[0;33m 1405017 ns 1397537 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_stddev \u001b[m\u001b[0;33m 8952 ns 8860 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_cv \u001b[m\u001b[0;33m 0.64 % 0.63 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_mean \u001b[m\u001b[0;33m 3063583 ns 3046674 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_median \u001b[m\u001b[0;33m 3021017 ns 3006734 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_stddev \u001b[m\u001b[0;33m 134698 ns 132627 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_cv \u001b[m\u001b[0;33m 4.40 % 4.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_mean \u001b[m\u001b[0;33m 6409382 ns 6374643 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_median \u001b[m\u001b[0;33m 6414271 ns 6383091 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_stddev \u001b[m\u001b[0;33m 25434 ns 28186 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_cv \u001b[m\u001b[0;33m 0.40 % 0.44 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_mean \u001b[m\u001b[0;33m 13727593 ns 13637236 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_median \u001b[m\u001b[0;33m 13847824 ns 13759305 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_stddev \u001b[m\u001b[0;33m 291770 ns 293141 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_cv \u001b[m\u001b[0;33m 2.13 % 2.15 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_mean \u001b[m\u001b[0;33m 33247794 ns 33037538 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_median \u001b[m\u001b[0;33m 33275241 ns 33069358 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_stddev \u001b[m\u001b[0;33m 180580 ns 170487 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_cv \u001b[m\u001b[0;33m 0.54 % 0.52 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_mean \u001b[m\u001b[0;33m 114160 ns 113790 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_median \u001b[m\u001b[0;33m 114326 ns 113955 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_stddev \u001b[m\u001b[0;33m 589 ns 604 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_cv \u001b[m\u001b[0;33m 0.52 % 0.53 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_mean \u001b[m\u001b[0;33m 266928 ns 266080 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_median \u001b[m\u001b[0;33m 266698 ns 265906 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_stddev \u001b[m\u001b[0;33m 743 ns 705 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_cv \u001b[m\u001b[0;33m 0.28 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_mean \u001b[m\u001b[0;33m 600007 ns 597438 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_median \u001b[m\u001b[0;33m 600843 ns 598069 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_stddev \u001b[m\u001b[0;33m 3889 ns 3608 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_cv \u001b[m\u001b[0;33m 0.65 % 0.60 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_mean \u001b[m\u001b[0;33m 1353285 ns 1347286 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_median \u001b[m\u001b[0;33m 1352224 ns 1346166 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_stddev \u001b[m\u001b[0;33m 3159 ns 3530 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_mean \u001b[m\u001b[0;33m 3330166 ns 3313456 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_median \u001b[m\u001b[0;33m 3280666 ns 3263886 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_stddev \u001b[m\u001b[0;33m 102432 ns 100860 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_cv \u001b[m\u001b[0;33m 3.08 % 3.04 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_mean \u001b[m\u001b[0;33m 8325146 ns 8276866 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_median \u001b[m\u001b[0;33m 8328091 ns 8280027 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_stddev \u001b[m\u001b[0;33m 8924 ns 5969 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_cv \u001b[m\u001b[0;33m 0.11 % 0.07 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 22543761 ns 22399862 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_median \u001b[m\u001b[0;33m 21748033 ns 21608460 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 1392405 ns 1376023 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 6.18 % 6.14 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_mean \u001b[m\u001b[0;33m 63230431 ns 62728449 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_median \u001b[m\u001b[0;33m 62867420 ns 62387321 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_stddev \u001b[m\u001b[0;33m 1185317 ns 1168169 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_cv \u001b[m\u001b[0;33m 1.87 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_mean \u001b[m\u001b[0;33m 176649519 ns 175484283 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_median \u001b[m\u001b[0;33m 175323726 ns 174144845 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_stddev \u001b[m\u001b[0;33m 6750024 ns 6601525 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_cv \u001b[m\u001b[0;33m 3.82 % 3.76 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_mean \u001b[m\u001b[0;33m 274703 ns 273781 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_median \u001b[m\u001b[0;33m 275378 ns 274420 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_stddev \u001b[m\u001b[0;33m 1834 ns 1818 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_mean \u001b[m\u001b[0;33m 547245 ns 544909 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_median \u001b[m\u001b[0;33m 542243 ns 539784 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_stddev \u001b[m\u001b[0;33m 15295 ns 15170 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_cv \u001b[m\u001b[0;33m 2.79 % 2.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_mean \u001b[m\u001b[0;33m 1141244 ns 1135478 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_median \u001b[m\u001b[0;33m 1143881 ns 1138252 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_stddev \u001b[m\u001b[0;33m 15733 ns 15158 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_cv \u001b[m\u001b[0;33m 1.38 % 1.33 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_mean \u001b[m\u001b[0;33m 2426264 ns 2414370 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_median \u001b[m\u001b[0;33m 2422686 ns 2411175 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_stddev \u001b[m\u001b[0;33m 43691 ns 43834 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_cv \u001b[m\u001b[0;33m 1.80 % 1.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_mean \u001b[m\u001b[0;33m 5812245 ns 5776502 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_median \u001b[m\u001b[0;33m 5826207 ns 5793681 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_stddev \u001b[m\u001b[0;33m 108021 ns 105107 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_cv \u001b[m\u001b[0;33m 1.86 % 1.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_mean \u001b[m\u001b[0;33m 16768921 ns 16655176 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_median \u001b[m\u001b[0;33m 16630918 ns 16514790 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_stddev \u001b[m\u001b[0;33m 241465 ns 245756 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_cv \u001b[m\u001b[0;33m 1.44 % 1.48 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_mean \u001b[m\u001b[0;33m 52625470 ns 52271134 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_median \u001b[m\u001b[0;33m 52315635 ns 51975856 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_stddev \u001b[m\u001b[0;33m 2766613 ns 2683321 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_cv \u001b[m\u001b[0;33m 5.26 % 5.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_mean \u001b[m\u001b[0;33m 129696984 ns 128861029 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_median \u001b[m\u001b[0;33m 128465716 ns 127653219 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_stddev \u001b[m\u001b[0;33m 3404042 ns 3352711 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_cv \u001b[m\u001b[0;33m 2.62 % 2.60 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_mean \u001b[m\u001b[0;33m 300294351 ns 298535917 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_median \u001b[m\u001b[0;33m 298677499 ns 297021558 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_stddev \u001b[m\u001b[0;33m 11210695 ns 10988337 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_cv \u001b[m\u001b[0;33m 3.73 % 3.68 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 155098 ns 154565 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 155342 ns 154745 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 1119 ns 1070 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.69 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 301359 ns 300041 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 302359 ns 301088 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 2615 ns 2492 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.87 % 0.83 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_mean \u001b[m\u001b[0;33m 599260 ns 596096 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_median \u001b[m\u001b[0;33m 599183 ns 596316 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_stddev \u001b[m\u001b[0;33m 2586 ns 2808 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_cv \u001b[m\u001b[0;33m 0.43 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_mean \u001b[m\u001b[0;33m 1274549 ns 1266452 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_median \u001b[m\u001b[0;33m 1234395 ns 1226034 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_stddev \u001b[m\u001b[0;33m 78831 ns 77036 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_cv \u001b[m\u001b[0;33m 6.18 % 6.08 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_mean \u001b[m\u001b[0;33m 2941091 ns 2919158 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_median \u001b[m\u001b[0;33m 2911038 ns 2889304 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_stddev \u001b[m\u001b[0;33m 67545 ns 67104 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_cv \u001b[m\u001b[0;33m 2.30 % 2.30 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_mean \u001b[m\u001b[0;33m 6940540 ns 6889217 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_median \u001b[m\u001b[0;33m 6908295 ns 6859205 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_stddev \u001b[m\u001b[0;33m 70111 ns 72151 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_cv \u001b[m\u001b[0;33m 1.01 % 1.05 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_mean \u001b[m\u001b[0;33m 15832571 ns 15709972 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_median \u001b[m\u001b[0;33m 15705191 ns 15604051 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_stddev \u001b[m\u001b[0;33m 240004 ns 235698 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_cv \u001b[m\u001b[0;33m 1.52 % 1.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 341299 ns 339396 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_median \u001b[m\u001b[0;33m 340857 ns 338876 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 7369 ns 7193 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 2.16 % 2.12 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 1072887 ns 1067776 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_median \u001b[m\u001b[0;33m 1069796 ns 1064744 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 8259 ns 8226 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 0.77 % 0.77 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 3943250 ns 3924191 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_median \u001b[m\u001b[0;33m 3886867 ns 3870416 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 115332 ns 111745 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 2.92 % 2.85 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 14965494 ns 14909916 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_median \u001b[m\u001b[0;33m 15020643 ns 14962434 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 136569 ns 133694 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 0.91 % 0.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 57691018 ns 57436935 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 57607890 ns 57430034 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 451356 ns 317271 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.78 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 229988242 ns 229099036 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 229828521 ns 229065432 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 2792600 ns 2747616 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 1.21 % 1.20 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_mean \u001b[m\u001b[0;33m 130942 ns 129796 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_median \u001b[m\u001b[0;33m 131308 ns 130105 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_stddev \u001b[m\u001b[0;33m 1935 ns 1924 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_cv \u001b[m\u001b[0;33m 1.48 % 1.48 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 288639 ns 286761 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_median \u001b[m\u001b[0;33m 288545 ns 286708 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 3202 ns 3171 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 1.11 % 1.11 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 899354 ns 893066 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_median \u001b[m\u001b[0;33m 881125 ns 874885 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 52481 ns 51442 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 5.84 % 5.76 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 5036885 ns 4983636 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_median \u001b[m\u001b[0;33m 5043142 ns 4984503 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 47815 ns 44463 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 0.95 % 0.89 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 25155229 ns 24914236 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_median \u001b[m\u001b[0;33m 25126405 ns 24885776 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 71506 ns 52169 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 0.28 % 0.21 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 125736836 ns 124681210 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 124916767 ns 123921643 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 2950666 ns 2904895 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 2.35 % 2.33 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[0;32mOperatorCost/SeqScan/1024/real_time_mean \u001b[m\u001b[0;33m 39153 ns 39016 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_median \u001b[m\u001b[0;33m 39303 ns 39169 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_stddev \u001b[m\u001b[0;33m 267 ns 265 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_cv \u001b[m\u001b[0;33m 0.68 % 0.68 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_mean \u001b[m\u001b[0;33m 72348 ns 72079 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_median \u001b[m\u001b[0;33m 71402 ns 71146 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_stddev \u001b[m\u001b[0;33m 1791 ns 1734 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_cv \u001b[m\u001b[0;33m 2.48 % 2.41 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_mean \u001b[m\u001b[0;33m 158147 ns 156559 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_median \u001b[m\u001b[0;33m 157558 ns 155985 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_stddev \u001b[m\u001b[0;33m 2396 ns 2315 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_cv \u001b[m\u001b[0;33m 1.51 % 1.48 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_mean \u001b[m\u001b[0;33m 358960 ns 356073 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_median \u001b[m\u001b[0;33m 357023 ns 354120 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_stddev \u001b[m\u001b[0;33m 4165 ns 4140 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.16 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_mean \u001b[m\u001b[0;33m 797004 ns 790772 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_median \u001b[m\u001b[0;33m 796509 ns 790000 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_stddev \u001b[m\u001b[0;33m 5029 ns 5064 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_cv \u001b[m\u001b[0;33m 0.63 % 0.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_mean \u001b[m\u001b[0;33m 1990887 ns 1971823 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_median \u001b[m\u001b[0;33m 1989976 ns 1972159 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_stddev \u001b[m\u001b[0;33m 26044 ns 24709 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_cv \u001b[m\u001b[0;33m 1.31 % 1.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_mean \u001b[m\u001b[0;33m 4947678 ns 4898438 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_median \u001b[m\u001b[0;33m 4843216 ns 4796793 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_stddev \u001b[m\u001b[0;33m 274098 ns 266515 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_cv \u001b[m\u001b[0;33m 5.54 % 5.44 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_mean \u001b[m\u001b[0;33m 10909127 ns 10799682 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_median \u001b[m\u001b[0;33m 10878576 ns 10770947 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_stddev \u001b[m\u001b[0;33m 76933 ns 76956 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.71 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_mean \u001b[m\u001b[0;33m 22613130 ns 22403648 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_median \u001b[m\u001b[0;33m 22384763 ns 22194274 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_stddev \u001b[m\u001b[0;33m 664045 ns 632355 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_cv \u001b[m\u001b[0;33m 2.94 % 2.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_mean \u001b[m\u001b[0;33m 74024 ns 73756 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_median \u001b[m\u001b[0;33m 74202 ns 73951 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_stddev \u001b[m\u001b[0;33m 359 ns 404 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_cv \u001b[m\u001b[0;33m 0.49 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_mean \u001b[m\u001b[0;33m 137533 ns 136994 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_median \u001b[m\u001b[0;33m 139308 ns 138685 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_stddev \u001b[m\u001b[0;33m 3697 ns 3617 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_cv \u001b[m\u001b[0;33m 2.69 % 2.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_mean \u001b[m\u001b[0;33m 261600 ns 260569 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_median \u001b[m\u001b[0;33m 260040 ns 259070 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_stddev \u001b[m\u001b[0;33m 3351 ns 3281 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_cv \u001b[m\u001b[0;33m 1.28 % 1.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_mean \u001b[m\u001b[0;33m 513833 ns 511511 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_median \u001b[m\u001b[0;33m 516091 ns 513709 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_stddev \u001b[m\u001b[0;33m 4408 ns 4202 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_mean \u001b[m\u001b[0;33m 1066718 ns 1061351 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_median \u001b[m\u001b[0;33m 1050933 ns 1045549 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_stddev \u001b[m\u001b[0;33m 34164 ns 33246 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_cv \u001b[m\u001b[0;33m 3.20 % 3.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_mean \u001b[m\u001b[0;33m 2189729 ns 2178064 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_median \u001b[m\u001b[0;33m 2177674 ns 2166723 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_stddev \u001b[m\u001b[0;33m 40807 ns 39296 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_cv \u001b[m\u001b[0;33m 1.86 % 1.80 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_mean \u001b[m\u001b[0;33m 4602133 ns 4576376 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_median \u001b[m\u001b[0;33m 4612541 ns 4587562 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_stddev \u001b[m\u001b[0;33m 53265 ns 54115 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.18 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_mean \u001b[m\u001b[0;33m 9965140 ns 9905109 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_median \u001b[m\u001b[0;33m 9961682 ns 9898928 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_stddev \u001b[m\u001b[0;33m 367014 ns 358618 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_cv \u001b[m\u001b[0;33m 3.68 % 3.62 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_mean \u001b[m\u001b[0;33m 20746154 ns 20612936 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_median \u001b[m\u001b[0;33m 20609234 ns 20480861 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_stddev \u001b[m\u001b[0;33m 432544 ns 413377 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_cv \u001b[m\u001b[0;33m 2.08 % 2.01 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_mean \u001b[m\u001b[0;33m 102501 ns 102103 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_median \u001b[m\u001b[0;33m 102476 ns 102063 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_stddev \u001b[m\u001b[0;33m 1037 ns 1019 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_cv \u001b[m\u001b[0;33m 1.01 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_mean \u001b[m\u001b[0;33m 192335 ns 191492 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_median \u001b[m\u001b[0;33m 191735 ns 190906 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_stddev \u001b[m\u001b[0;33m 6489 ns 6398 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_cv \u001b[m\u001b[0;33m 3.37 % 3.34 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_mean \u001b[m\u001b[0;33m 358122 ns 356961 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_median \u001b[m\u001b[0;33m 357740 ns 356476 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_stddev \u001b[m\u001b[0;33m 1726 ns 1799 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_cv \u001b[m\u001b[0;33m 0.48 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_mean \u001b[m\u001b[0;33m 730814 ns 727359 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_median \u001b[m\u001b[0;33m 730561 ns 727062 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_stddev \u001b[m\u001b[0;33m 2539 ns 2763 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_cv \u001b[m\u001b[0;33m 0.35 % 0.38 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_mean \u001b[m\u001b[0;33m 1526678 ns 1518388 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_median \u001b[m\u001b[0;33m 1514234 ns 1505967 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_stddev \u001b[m\u001b[0;33m 66490 ns 65574 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_cv \u001b[m\u001b[0;33m 4.36 % 4.32 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_mean \u001b[m\u001b[0;33m 3121936 ns 3104686 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_median \u001b[m\u001b[0;33m 3144138 ns 3126492 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_stddev \u001b[m\u001b[0;33m 42438 ns 41442 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_cv \u001b[m\u001b[0;33m 1.36 % 1.33 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_mean \u001b[m\u001b[0;33m 6595264 ns 6544746 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_median \u001b[m\u001b[0;33m 6608749 ns 6555081 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_stddev \u001b[m\u001b[0;33m 58317 ns 53393 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_cv \u001b[m\u001b[0;33m 0.88 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_mean \u001b[m\u001b[0;33m 14333160 ns 14219076 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_median \u001b[m\u001b[0;33m 14192064 ns 14077398 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_stddev \u001b[m\u001b[0;33m 467177 ns 461157 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_cv \u001b[m\u001b[0;33m 3.26 % 3.24 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_mean \u001b[m\u001b[0;33m 33368177 ns 33128753 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_median \u001b[m\u001b[0;33m 33354850 ns 33124116 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_stddev \u001b[m\u001b[0;33m 57832 ns 25519 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_cv \u001b[m\u001b[0;33m 0.17 % 0.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_mean \u001b[m\u001b[0;33m 119077 ns 118631 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_median \u001b[m\u001b[0;33m 119114 ns 118725 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_stddev \u001b[m\u001b[0;33m 1155 ns 1165 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_cv \u001b[m\u001b[0;33m 0.97 % 0.98 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_mean \u001b[m\u001b[0;33m 276292 ns 275137 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_median \u001b[m\u001b[0;33m 275547 ns 274427 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_stddev \u001b[m\u001b[0;33m 3680 ns 3546 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_cv \u001b[m\u001b[0;33m 1.33 % 1.29 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_mean \u001b[m\u001b[0;33m 623962 ns 621336 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_median \u001b[m\u001b[0;33m 619550 ns 617008 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_stddev \u001b[m\u001b[0;33m 17605 ns 17229 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_cv \u001b[m\u001b[0;33m 2.82 % 2.77 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_mean \u001b[m\u001b[0;33m 1387995 ns 1380934 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_median \u001b[m\u001b[0;33m 1386525 ns 1379373 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_stddev \u001b[m\u001b[0;33m 6569 ns 6278 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.45 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_mean \u001b[m\u001b[0;33m 3127599 ns 3111158 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_median \u001b[m\u001b[0;33m 3122047 ns 3105723 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_stddev \u001b[m\u001b[0;33m 10847 ns 11610 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_cv \u001b[m\u001b[0;33m 0.35 % 0.37 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_mean \u001b[m\u001b[0;33m 8567436 ns 8516854 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_median \u001b[m\u001b[0;33m 8411857 ns 8357809 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_stddev \u001b[m\u001b[0;33m 348230 ns 347847 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_cv \u001b[m\u001b[0;33m 4.06 % 4.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 21204896 ns 21056618 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_median \u001b[m\u001b[0;33m 21202786 ns 21049976 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 47868 ns 34465 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.16 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_mean \u001b[m\u001b[0;33m 61087203 ns 60619246 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_median \u001b[m\u001b[0;33m 61025748 ns 60603653 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_stddev \u001b[m\u001b[0;33m 318956 ns 262983 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_cv \u001b[m\u001b[0;33m 0.52 % 0.43 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_mean \u001b[m\u001b[0;33m 178916260 ns 177525137 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_median \u001b[m\u001b[0;33m 176367090 ns 174983458 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_stddev \u001b[m\u001b[0;33m 5229156 ns 5156914 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_cv \u001b[m\u001b[0;33m 2.92 % 2.90 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_mean \u001b[m\u001b[0;33m 285190 ns 284193 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_median \u001b[m\u001b[0;33m 284445 ns 283487 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_stddev \u001b[m\u001b[0;33m 1726 ns 1620 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.57 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_mean \u001b[m\u001b[0;33m 554982 ns 552824 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_median \u001b[m\u001b[0;33m 554354 ns 551916 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_stddev \u001b[m\u001b[0;33m 1503 ns 1594 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_cv \u001b[m\u001b[0;33m 0.27 % 0.29 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_mean \u001b[m\u001b[0;33m 1186394 ns 1179677 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_median \u001b[m\u001b[0;33m 1161393 ns 1154736 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_stddev \u001b[m\u001b[0;33m 52944 ns 51987 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_cv \u001b[m\u001b[0;33m 4.46 % 4.41 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_mean \u001b[m\u001b[0;33m 2432833 ns 2420872 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_median \u001b[m\u001b[0;33m 2442240 ns 2429133 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_stddev \u001b[m\u001b[0;33m 22609 ns 21015 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_cv \u001b[m\u001b[0;33m 0.93 % 0.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_mean \u001b[m\u001b[0;33m 5847840 ns 5806488 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_median \u001b[m\u001b[0;33m 5801578 ns 5764441 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_stddev \u001b[m\u001b[0;33m 104961 ns 103759 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_cv \u001b[m\u001b[0;33m 1.79 % 1.79 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_mean \u001b[m\u001b[0;33m 16878386 ns 16728186 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_median \u001b[m\u001b[0;33m 16986629 ns 16833720 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_stddev \u001b[m\u001b[0;33m 210596 ns 201562 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_cv \u001b[m\u001b[0;33m 1.25 % 1.20 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_mean \u001b[m\u001b[0;33m 53712474 ns 53266495 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_median \u001b[m\u001b[0;33m 51282451 ns 50872196 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_stddev \u001b[m\u001b[0;33m 4359336 ns 4263240 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_cv \u001b[m\u001b[0;33m 8.12 % 8.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_mean \u001b[m\u001b[0;33m 132381802 ns 131439592 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_median \u001b[m\u001b[0;33m 132670408 ns 131630071 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_stddev \u001b[m\u001b[0;33m 513538 ns 448055 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_cv \u001b[m\u001b[0;33m 0.39 % 0.34 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_mean \u001b[m\u001b[0;33m 312772495 ns 310749663 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_median \u001b[m\u001b[0;33m 312614458 ns 310482767 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_stddev \u001b[m\u001b[0;33m 21372055 ns 21016226 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_cv \u001b[m\u001b[0;33m 6.83 % 6.76 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 160722 ns 160185 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 161083 ns 160544 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 980 ns 1021 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.64 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 309777 ns 308490 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 309907 ns 308710 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 506 ns 522 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.16 % 0.17 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_mean \u001b[m\u001b[0;33m 608952 ns 605721 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_median \u001b[m\u001b[0;33m 608893 ns 605644 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_stddev \u001b[m\u001b[0;33m 3530 ns 3421 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_cv \u001b[m\u001b[0;33m 0.58 % 0.56 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_mean \u001b[m\u001b[0;33m 1317737 ns 1309485 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_median \u001b[m\u001b[0;33m 1316605 ns 1308784 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_stddev \u001b[m\u001b[0;33m 59555 ns 59083 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_cv \u001b[m\u001b[0;33m 4.52 % 4.51 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_mean \u001b[m\u001b[0;33m 2961361 ns 2936971 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_median \u001b[m\u001b[0;33m 2968359 ns 2943681 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_stddev \u001b[m\u001b[0;33m 19681 ns 19421 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_cv \u001b[m\u001b[0;33m 0.66 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_mean \u001b[m\u001b[0;33m 7050325 ns 6989873 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_median \u001b[m\u001b[0;33m 7009057 ns 6949558 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_stddev \u001b[m\u001b[0;33m 77824 ns 79054 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_cv \u001b[m\u001b[0;33m 1.10 % 1.13 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_mean \u001b[m\u001b[0;33m 15872398 ns 15737241 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_median \u001b[m\u001b[0;33m 15615015 ns 15477258 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_stddev \u001b[m\u001b[0;33m 780189 ns 771653 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_cv \u001b[m\u001b[0;33m 4.92 % 4.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 355795 ns 353483 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_median \u001b[m\u001b[0;33m 353326 ns 350916 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 4527 ns 4451 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.26 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 1116378 ns 1110421 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_median \u001b[m\u001b[0;33m 1115505 ns 1109645 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 26324 ns 25069 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 2.36 % 2.26 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 3971691 ns 3955265 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_median \u001b[m\u001b[0;33m 3974506 ns 3958255 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 42789 ns 40950 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 1.08 % 1.04 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 15476134 ns 15410251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_median \u001b[m\u001b[0;33m 15283883 ns 15218578 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 398036 ns 392643 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 2.57 % 2.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 58703697 ns 58489336 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 58646104 ns 58442294 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 142367 ns 137251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.24 % 0.23 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 232975373 ns 232184958 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 233174267 ns 232347277 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 540173 ns 549641 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.24 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_mean \u001b[m\u001b[0;33m 128773 ns 127708 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_median \u001b[m\u001b[0;33m 129039 ns 128024 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_stddev \u001b[m\u001b[0;33m 3861 ns 3750 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_cv \u001b[m\u001b[0;33m 3.00 % 2.94 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 301369 ns 298177 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_median \u001b[m\u001b[0;33m 300985 ns 298775 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 4541 ns 6191 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 1.51 % 2.08 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 958867 ns 951371 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_median \u001b[m\u001b[0;33m 959321 ns 951939 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 18581 ns 18282 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 1.94 % 1.92 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 5563806 ns 5491910 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_median \u001b[m\u001b[0;33m 5620555 ns 5545799 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 457987 ns 448836 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 8.23 % 8.17 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 26439028 ns 26166619 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_median \u001b[m\u001b[0;33m 26442389 ns 26176889 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 405176 ns 377192 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 1.53 % 1.44 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 125006665 ns 123963251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 126435572 ns 125317023 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 2622394 ns 2620609 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 2.10 % 2.11 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", "\u001b[m" ] } @@ -504,7 +504,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "bcfd11fc", "metadata": {}, "outputs": [ @@ -512,7 +512,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-06-02T01:20:14+03:00\n", + "2026-06-09T23:49:41+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -520,203 +520,203 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 1.60, 1.07, 0.73\n", + "Load Average: 2.21, 1.41, 1.15\n", "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", "------------------------------------------------------------------------------------------------------------------------------------------------\n", "Benchmark Time CPU Iterations UserCounters...\n", "------------------------------------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_mean \u001b[m\u001b[0;33m 320159 ns 317346 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_median \u001b[m\u001b[0;33m 319599 ns 316785 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_stddev \u001b[m\u001b[0;33m 1160 ns 1115 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_cv \u001b[m\u001b[0;33m 0.36 % 0.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_mean \u001b[m\u001b[0;33m 409248 ns 407255 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_median \u001b[m\u001b[0;33m 399719 ns 397882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_stddev \u001b[m\u001b[0;33m 18699 ns 18531 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_cv \u001b[m\u001b[0;33m 4.57 % 4.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_mean \u001b[m\u001b[0;33m 3097292 ns 3075629 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_median \u001b[m\u001b[0;33m 3113549 ns 3091459 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_stddev \u001b[m\u001b[0;33m 46014 ns 45803 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_cv \u001b[m\u001b[0;33m 1.49 % 1.49 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_mean \u001b[m\u001b[0;33m 714273 ns 707808 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_median \u001b[m\u001b[0;33m 704145 ns 697639 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_stddev \u001b[m\u001b[0;33m 21201 ns 20423 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_cv \u001b[m\u001b[0;33m 2.97 % 2.89 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_mean \u001b[m\u001b[0;33m 353749 ns 351405 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_median \u001b[m\u001b[0;33m 352784 ns 350809 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_stddev \u001b[m\u001b[0;33m 1705 ns 2169 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_cv \u001b[m\u001b[0;33m 0.48 % 0.62 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_mean \u001b[m\u001b[0;33m 251418 ns 250042 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_median \u001b[m\u001b[0;33m 250657 ns 249485 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_stddev \u001b[m\u001b[0;33m 1990 ns 1973 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_cv \u001b[m\u001b[0;33m 0.79 % 0.79 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_mean \u001b[m\u001b[0;33m 676351 ns 670795 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_median \u001b[m\u001b[0;33m 675430 ns 670332 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_stddev \u001b[m\u001b[0;33m 2046 ns 2832 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_mean \u001b[m\u001b[0;33m 398744 ns 394565 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_median \u001b[m\u001b[0;33m 399361 ns 393912 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_stddev \u001b[m\u001b[0;33m 3592 ns 3590 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_cv \u001b[m\u001b[0;33m 0.90 % 0.91 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_mean \u001b[m\u001b[0;33m 352346 ns 350260 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_median \u001b[m\u001b[0;33m 349456 ns 347781 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_stddev \u001b[m\u001b[0;33m 6767 ns 6945 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_cv \u001b[m\u001b[0;33m 1.92 % 1.98 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_mean \u001b[m\u001b[0;33m 664349 ns 660903 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_median \u001b[m\u001b[0;33m 655750 ns 652271 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_stddev \u001b[m\u001b[0;33m 24445 ns 24189 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_cv \u001b[m\u001b[0;33m 3.68 % 3.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_mean \u001b[m\u001b[0;33m 5560017 ns 5518016 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_median \u001b[m\u001b[0;33m 5563214 ns 5519348 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_stddev \u001b[m\u001b[0;33m 17569 ns 19382 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_cv \u001b[m\u001b[0;33m 0.32 % 0.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_mean \u001b[m\u001b[0;33m 1181814 ns 1176185 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_median \u001b[m\u001b[0;33m 1183289 ns 1177677 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_stddev \u001b[m\u001b[0;33m 7241 ns 6718 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.57 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_mean \u001b[m\u001b[0;33m 540896 ns 538945 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_median \u001b[m\u001b[0;33m 539330 ns 537405 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_stddev \u001b[m\u001b[0;33m 3827 ns 3777 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.70 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_mean \u001b[m\u001b[0;33m 408221 ns 406089 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_median \u001b[m\u001b[0;33m 413762 ns 411413 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_stddev \u001b[m\u001b[0;33m 10162 ns 9830 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_cv \u001b[m\u001b[0;33m 2.49 % 2.42 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_mean \u001b[m\u001b[0;33m 1006221 ns 997401 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_median \u001b[m\u001b[0;33m 1002051 ns 996991 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_stddev \u001b[m\u001b[0;33m 7815 ns 1517 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_cv \u001b[m\u001b[0;33m 0.78 % 0.15 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_mean \u001b[m\u001b[0;33m 600207 ns 596002 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_median \u001b[m\u001b[0;33m 600347 ns 596164 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_stddev \u001b[m\u001b[0;33m 1109 ns 1109 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_cv \u001b[m\u001b[0;33m 0.18 % 0.19 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_mean \u001b[m\u001b[0;33m 1284652 ns 1276040 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_median \u001b[m\u001b[0;33m 1257372 ns 1248532 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_stddev \u001b[m\u001b[0;33m 75695 ns 74938 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_cv \u001b[m\u001b[0;33m 5.89 % 5.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_mean \u001b[m\u001b[0;33m 2176167 ns 2165969 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_median \u001b[m\u001b[0;33m 2159127 ns 2150028 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_stddev \u001b[m\u001b[0;33m 45990 ns 44955 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_cv \u001b[m\u001b[0;33m 2.11 % 2.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_mean \u001b[m\u001b[0;33m 20058836 ns 19892307 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_median \u001b[m\u001b[0;33m 19959603 ns 19781221 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_stddev \u001b[m\u001b[0;33m 272114 ns 258775 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_cv \u001b[m\u001b[0;33m 1.36 % 1.30 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_mean \u001b[m\u001b[0;33m 4184701 ns 4161788 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_median \u001b[m\u001b[0;33m 4182936 ns 4160248 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_stddev \u001b[m\u001b[0;33m 21162 ns 17617 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_cv \u001b[m\u001b[0;33m 0.51 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_mean \u001b[m\u001b[0;33m 1881536 ns 1872941 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_median \u001b[m\u001b[0;33m 1876677 ns 1867856 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_stddev \u001b[m\u001b[0;33m 19364 ns 18755 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_cv \u001b[m\u001b[0;33m 1.03 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_mean \u001b[m\u001b[0;33m 1306558 ns 1298432 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_median \u001b[m\u001b[0;33m 1306181 ns 1297919 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_stddev \u001b[m\u001b[0;33m 1248 ns 1251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_cv \u001b[m\u001b[0;33m 0.10 % 0.10 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_mean \u001b[m\u001b[0;33m 2883331 ns 2862880 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_median \u001b[m\u001b[0;33m 2883138 ns 2870337 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_stddev \u001b[m\u001b[0;33m 25044 ns 36841 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_cv \u001b[m\u001b[0;33m 0.87 % 1.29 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_mean \u001b[m\u001b[0;33m 1967699 ns 1948450 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_median \u001b[m\u001b[0;33m 1961065 ns 1941733 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_stddev \u001b[m\u001b[0;33m 26641 ns 26322 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_cv \u001b[m\u001b[0;33m 1.35 % 1.35 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_mean \u001b[m\u001b[0;33m 3804148 ns 3769127 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_median \u001b[m\u001b[0;33m 3743306 ns 3710163 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_stddev \u001b[m\u001b[0;33m 161694 ns 156528 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_cv \u001b[m\u001b[0;33m 4.25 % 4.15 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_mean \u001b[m\u001b[0;33m 4921571 ns 4893957 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_median \u001b[m\u001b[0;33m 4900259 ns 4872979 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_stddev \u001b[m\u001b[0;33m 133893 ns 133878 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_cv \u001b[m\u001b[0;33m 2.72 % 2.74 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_mean \u001b[m\u001b[0;33m 41998731 ns 41673692 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_median \u001b[m\u001b[0;33m 41714916 ns 41392995 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_stddev \u001b[m\u001b[0;33m 535414 ns 528570 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_mean \u001b[m\u001b[0;33m 10271929 ns 10215490 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_median \u001b[m\u001b[0;33m 10293266 ns 10238813 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_stddev \u001b[m\u001b[0;33m 86829 ns 86031 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_cv \u001b[m\u001b[0;33m 0.85 % 0.84 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_mean \u001b[m\u001b[0;33m 4438157 ns 4412963 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_median \u001b[m\u001b[0;33m 4443256 ns 4415243 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_stddev \u001b[m\u001b[0;33m 14085 ns 12792 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_cv \u001b[m\u001b[0;33m 0.32 % 0.29 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_mean \u001b[m\u001b[0;33m 3043218 ns 3022074 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_median \u001b[m\u001b[0;33m 3034737 ns 3013058 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_stddev \u001b[m\u001b[0;33m 25639 ns 24888 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_cv \u001b[m\u001b[0;33m 0.84 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_mean \u001b[m\u001b[0;33m 5812015 ns 5788677 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_median \u001b[m\u001b[0;33m 5776632 ns 5752852 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_stddev \u001b[m\u001b[0;33m 65428 ns 65349 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_cv \u001b[m\u001b[0;33m 1.13 % 1.13 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_mean \u001b[m\u001b[0;33m 5684609 ns 5595092 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_median \u001b[m\u001b[0;33m 5585757 ns 5512270 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_stddev \u001b[m\u001b[0;33m 283233 ns 295277 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_cv \u001b[m\u001b[0;33m 4.98 % 5.28 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_mean \u001b[m\u001b[0;33m 7200013 ns 7134821 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_median \u001b[m\u001b[0;33m 7204414 ns 7137446 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_stddev \u001b[m\u001b[0;33m 91581 ns 86674 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.21 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_mean \u001b[m\u001b[0;33m 9183200 ns 9123227 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_median \u001b[m\u001b[0;33m 9274288 ns 9209433 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_stddev \u001b[m\u001b[0;33m 246032 ns 243070 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_cv \u001b[m\u001b[0;33m 2.68 % 2.66 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_mean \u001b[m\u001b[0;33m 76154538 ns 75642732 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_median \u001b[m\u001b[0;33m 76053968 ns 75558307 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_stddev \u001b[m\u001b[0;33m 1296686 ns 1279602 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_cv \u001b[m\u001b[0;33m 1.70 % 1.69 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 21631748 ns 21479851 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_median \u001b[m\u001b[0;33m 21592685 ns 21449075 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 209379 ns 211435 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 0.97 % 0.98 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_mean \u001b[m\u001b[0;33m 10929372 ns 10855646 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_median \u001b[m\u001b[0;33m 11005949 ns 10931545 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_stddev \u001b[m\u001b[0;33m 184863 ns 178071 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_cv \u001b[m\u001b[0;33m 1.69 % 1.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_mean \u001b[m\u001b[0;33m 6579551 ns 6525622 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_median \u001b[m\u001b[0;33m 6319543 ns 6271821 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_stddev \u001b[m\u001b[0;33m 521111 ns 515812 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_cv \u001b[m\u001b[0;33m 7.92 % 7.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_mean \u001b[m\u001b[0;33m 10203401 ns 10165100 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_median \u001b[m\u001b[0;33m 10207017 ns 10169491 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_stddev \u001b[m\u001b[0;33m 25817 ns 28217 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_cv \u001b[m\u001b[0;33m 0.25 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_mean \u001b[m\u001b[0;33m 11246723 ns 11120161 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_median \u001b[m\u001b[0;33m 11156642 ns 11021816 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_stddev \u001b[m\u001b[0;33m 358953 ns 352800 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_cv \u001b[m\u001b[0;33m 3.19 % 3.17 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_mean \u001b[m\u001b[0;33m 17194941 ns 17060021 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_median \u001b[m\u001b[0;33m 17199810 ns 17065589 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_stddev \u001b[m\u001b[0;33m 69765 ns 71670 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_cv \u001b[m\u001b[0;33m 0.41 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_mean \u001b[m\u001b[0;33m 20268578 ns 20143106 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_median \u001b[m\u001b[0;33m 20226671 ns 20105167 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_stddev \u001b[m\u001b[0;33m 948813 ns 923956 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_cv \u001b[m\u001b[0;33m 4.68 % 4.59 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_mean \u001b[m\u001b[0;33m 158375198 ns 157223598 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_median \u001b[m\u001b[0;33m 158155639 ns 157165675 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_stddev \u001b[m\u001b[0;33m 1530329 ns 1447113 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_cv \u001b[m\u001b[0;33m 0.97 % 0.92 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_mean \u001b[m\u001b[0;33m 66118518 ns 65605278 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_median \u001b[m\u001b[0;33m 65766383 ns 65262983 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_stddev \u001b[m\u001b[0;33m 1233820 ns 1224222 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_cv \u001b[m\u001b[0;33m 1.87 % 1.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_mean \u001b[m\u001b[0;33m 36824897 ns 36546612 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_median \u001b[m\u001b[0;33m 37531672 ns 37260669 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_stddev \u001b[m\u001b[0;33m 1680229 ns 1661849 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_cv \u001b[m\u001b[0;33m 4.56 % 4.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_mean \u001b[m\u001b[0;33m 15544874 ns 15433459 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_median \u001b[m\u001b[0;33m 15391909 ns 15276462 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_stddev \u001b[m\u001b[0;33m 395978 ns 386476 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_cv \u001b[m\u001b[0;33m 2.55 % 2.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_mean \u001b[m\u001b[0;33m 21482184 ns 21403674 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_median \u001b[m\u001b[0;33m 21404013 ns 21323764 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_stddev \u001b[m\u001b[0;33m 178260 ns 184469 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_cv \u001b[m\u001b[0;33m 0.83 % 0.86 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_mean \u001b[m\u001b[0;33m 24928068 ns 24677118 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_median \u001b[m\u001b[0;33m 24799747 ns 24566264 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_stddev \u001b[m\u001b[0;33m 300738 ns 283592 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_cv \u001b[m\u001b[0;33m 1.21 % 1.15 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_mean \u001b[m\u001b[0;33m 316342 ns 313634 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_median \u001b[m\u001b[0;33m 317098 ns 314269 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_stddev \u001b[m\u001b[0;33m 2952 ns 3126 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_cv \u001b[m\u001b[0;33m 0.93 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_mean \u001b[m\u001b[0;33m 410811 ns 409047 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_median \u001b[m\u001b[0;33m 402156 ns 400612 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_stddev \u001b[m\u001b[0;33m 15061 ns 14626 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_cv \u001b[m\u001b[0;33m 3.67 % 3.58 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_mean \u001b[m\u001b[0;33m 3125994 ns 3104770 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_median \u001b[m\u001b[0;33m 3137797 ns 3116535 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_stddev \u001b[m\u001b[0;33m 26115 ns 26160 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_cv \u001b[m\u001b[0;33m 0.84 % 0.84 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_mean \u001b[m\u001b[0;33m 701764 ns 698672 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_median \u001b[m\u001b[0;33m 699974 ns 696724 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_stddev \u001b[m\u001b[0;33m 3525 ns 3485 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_cv \u001b[m\u001b[0;33m 0.50 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_mean \u001b[m\u001b[0;33m 349396 ns 348160 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_median \u001b[m\u001b[0;33m 351086 ns 349758 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_stddev \u001b[m\u001b[0;33m 3908 ns 3846 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_cv \u001b[m\u001b[0;33m 1.12 % 1.10 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_mean \u001b[m\u001b[0;33m 250126 ns 249104 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_median \u001b[m\u001b[0;33m 249492 ns 248365 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_stddev \u001b[m\u001b[0;33m 2392 ns 2313 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_cv \u001b[m\u001b[0;33m 0.96 % 0.93 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_mean \u001b[m\u001b[0;33m 668448 ns 665227 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_median \u001b[m\u001b[0;33m 666944 ns 663827 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_stddev \u001b[m\u001b[0;33m 3379 ns 3351 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_cv \u001b[m\u001b[0;33m 0.51 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_mean \u001b[m\u001b[0;33m 401858 ns 399119 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_median \u001b[m\u001b[0;33m 396831 ns 394275 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_stddev \u001b[m\u001b[0;33m 9520 ns 9122 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_cv \u001b[m\u001b[0;33m 2.37 % 2.29 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_mean \u001b[m\u001b[0;33m 344957 ns 343365 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_median \u001b[m\u001b[0;33m 344845 ns 343551 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_stddev \u001b[m\u001b[0;33m 627 ns 873 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_cv \u001b[m\u001b[0;33m 0.18 % 0.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_mean \u001b[m\u001b[0;33m 639288 ns 636139 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_median \u001b[m\u001b[0;33m 641247 ns 638152 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_stddev \u001b[m\u001b[0;33m 5981 ns 5665 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_cv \u001b[m\u001b[0;33m 0.94 % 0.89 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_mean \u001b[m\u001b[0;33m 4977023 ns 4946997 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_median \u001b[m\u001b[0;33m 4972650 ns 4944757 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_stddev \u001b[m\u001b[0;33m 23603 ns 25476 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.51 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_mean \u001b[m\u001b[0;33m 1141130 ns 1136359 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_median \u001b[m\u001b[0;33m 1136818 ns 1132508 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_stddev \u001b[m\u001b[0;33m 9853 ns 9369 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_mean \u001b[m\u001b[0;33m 528994 ns 527024 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_median \u001b[m\u001b[0;33m 529591 ns 527675 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_stddev \u001b[m\u001b[0;33m 2349 ns 2195 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_cv \u001b[m\u001b[0;33m 0.44 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_mean \u001b[m\u001b[0;33m 398480 ns 396620 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_median \u001b[m\u001b[0;33m 393039 ns 391403 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_stddev \u001b[m\u001b[0;33m 14227 ns 13787 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_cv \u001b[m\u001b[0;33m 3.57 % 3.48 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_mean \u001b[m\u001b[0;33m 988039 ns 983092 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_median \u001b[m\u001b[0;33m 984337 ns 979219 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_stddev \u001b[m\u001b[0;33m 18469 ns 18091 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_cv \u001b[m\u001b[0;33m 1.87 % 1.84 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_mean \u001b[m\u001b[0;33m 576046 ns 572361 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_median \u001b[m\u001b[0;33m 575840 ns 571979 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_stddev \u001b[m\u001b[0;33m 1501 ns 1458 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_cv \u001b[m\u001b[0;33m 0.26 % 0.25 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_mean \u001b[m\u001b[0;33m 1237620 ns 1228930 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_median \u001b[m\u001b[0;33m 1199173 ns 1191634 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_stddev \u001b[m\u001b[0;33m 78181 ns 76723 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_cv \u001b[m\u001b[0;33m 6.32 % 6.24 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_mean \u001b[m\u001b[0;33m 2123351 ns 2112531 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_median \u001b[m\u001b[0;33m 2125920 ns 2114863 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_stddev \u001b[m\u001b[0;33m 18255 ns 16526 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_mean \u001b[m\u001b[0;33m 19539424 ns 19390815 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_median \u001b[m\u001b[0;33m 19513198 ns 19372676 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_stddev \u001b[m\u001b[0;33m 443369 ns 422122 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_cv \u001b[m\u001b[0;33m 2.27 % 2.18 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_mean \u001b[m\u001b[0;33m 4003506 ns 3985189 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_median \u001b[m\u001b[0;33m 3993834 ns 3973445 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_stddev \u001b[m\u001b[0;33m 36678 ns 37672 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_cv \u001b[m\u001b[0;33m 0.92 % 0.95 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_mean \u001b[m\u001b[0;33m 1891951 ns 1881946 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_median \u001b[m\u001b[0;33m 1864059 ns 1855129 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_stddev \u001b[m\u001b[0;33m 79166 ns 76712 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_cv \u001b[m\u001b[0;33m 4.18 % 4.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_mean \u001b[m\u001b[0;33m 1296747 ns 1289704 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_median \u001b[m\u001b[0;33m 1290494 ns 1283508 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_stddev \u001b[m\u001b[0;33m 15252 ns 15284 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_cv \u001b[m\u001b[0;33m 1.18 % 1.19 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_mean \u001b[m\u001b[0;33m 3015413 ns 2998763 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_median \u001b[m\u001b[0;33m 2948122 ns 2933215 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_stddev \u001b[m\u001b[0;33m 134096 ns 129989 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_cv \u001b[m\u001b[0;33m 4.45 % 4.33 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_mean \u001b[m\u001b[0;33m 1969269 ns 1950102 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_median \u001b[m\u001b[0;33m 1974125 ns 1956105 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_stddev \u001b[m\u001b[0;33m 10036 ns 10656 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_cv \u001b[m\u001b[0;33m 0.51 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_mean \u001b[m\u001b[0;33m 3823546 ns 3788256 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_median \u001b[m\u001b[0;33m 3771835 ns 3738111 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_stddev \u001b[m\u001b[0;33m 138085 ns 136090 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_cv \u001b[m\u001b[0;33m 3.61 % 3.59 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_mean \u001b[m\u001b[0;33m 5038810 ns 5006184 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_median \u001b[m\u001b[0;33m 4977493 ns 4945750 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_stddev \u001b[m\u001b[0;33m 229683 ns 228503 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_cv \u001b[m\u001b[0;33m 4.56 % 4.56 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_mean \u001b[m\u001b[0;33m 40927066 ns 40634020 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_median \u001b[m\u001b[0;33m 40860570 ns 40567388 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_stddev \u001b[m\u001b[0;33m 758964 ns 753831 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_cv \u001b[m\u001b[0;33m 1.85 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_mean \u001b[m\u001b[0;33m 10002418 ns 9938893 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_median \u001b[m\u001b[0;33m 9986793 ns 9928882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_stddev \u001b[m\u001b[0;33m 184919 ns 176850 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_cv \u001b[m\u001b[0;33m 1.85 % 1.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_mean \u001b[m\u001b[0;33m 4512331 ns 4483187 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_median \u001b[m\u001b[0;33m 4517228 ns 4488908 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_stddev \u001b[m\u001b[0;33m 242531 ns 238082 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_cv \u001b[m\u001b[0;33m 5.37 % 5.31 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_mean \u001b[m\u001b[0;33m 3195742 ns 3168838 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_median \u001b[m\u001b[0;33m 3199407 ns 3171066 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_stddev \u001b[m\u001b[0;33m 92711 ns 91091 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.87 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_mean \u001b[m\u001b[0;33m 6023061 ns 5995465 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_median \u001b[m\u001b[0;33m 6061931 ns 6032607 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_stddev \u001b[m\u001b[0;33m 129421 ns 129301 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_cv \u001b[m\u001b[0;33m 2.15 % 2.16 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_mean \u001b[m\u001b[0;33m 5240152 ns 5179676 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_median \u001b[m\u001b[0;33m 5243997 ns 5177842 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_stddev \u001b[m\u001b[0;33m 364980 ns 356835 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_cv \u001b[m\u001b[0;33m 6.97 % 6.89 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_mean \u001b[m\u001b[0;33m 6678741 ns 6612679 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_median \u001b[m\u001b[0;33m 6699675 ns 6627888 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_stddev \u001b[m\u001b[0;33m 65692 ns 66168 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_cv \u001b[m\u001b[0;33m 0.98 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_mean \u001b[m\u001b[0;33m 9281903 ns 9218854 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_median \u001b[m\u001b[0;33m 9174524 ns 9110491 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_stddev \u001b[m\u001b[0;33m 215303 ns 216576 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_cv \u001b[m\u001b[0;33m 2.32 % 2.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_mean \u001b[m\u001b[0;33m 74886058 ns 74388591 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_median \u001b[m\u001b[0;33m 74916742 ns 74404628 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_stddev \u001b[m\u001b[0;33m 68523 ns 73385 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_cv \u001b[m\u001b[0;33m 0.09 % 0.10 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 20096736 ns 19977034 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_median \u001b[m\u001b[0;33m 19966628 ns 19853229 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 455925 ns 435200 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 2.27 % 2.18 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_mean \u001b[m\u001b[0;33m 10384281 ns 10310905 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_median \u001b[m\u001b[0;33m 10051196 ns 9984556 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_stddev \u001b[m\u001b[0;33m 594931 ns 586651 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_cv \u001b[m\u001b[0;33m 5.73 % 5.69 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_mean \u001b[m\u001b[0;33m 6415603 ns 6363475 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_median \u001b[m\u001b[0;33m 6434016 ns 6382291 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_stddev \u001b[m\u001b[0;33m 66815 ns 64167 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_cv \u001b[m\u001b[0;33m 1.04 % 1.01 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_mean \u001b[m\u001b[0;33m 10091080 ns 10051311 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_median \u001b[m\u001b[0;33m 10123201 ns 10083856 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_stddev \u001b[m\u001b[0;33m 65437 ns 68353 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_cv \u001b[m\u001b[0;33m 0.65 % 0.68 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_mean \u001b[m\u001b[0;33m 10794051 ns 10661406 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_median \u001b[m\u001b[0;33m 10805562 ns 10678400 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_stddev \u001b[m\u001b[0;33m 58571 ns 53030 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_cv \u001b[m\u001b[0;33m 0.54 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_mean \u001b[m\u001b[0;33m 17073667 ns 16907574 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_median \u001b[m\u001b[0;33m 16767850 ns 16581281 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_stddev \u001b[m\u001b[0;33m 1427241 ns 1398924 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_cv \u001b[m\u001b[0;33m 8.36 % 8.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_mean \u001b[m\u001b[0;33m 19234040 ns 19127109 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_median \u001b[m\u001b[0;33m 19265841 ns 19167215 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_stddev \u001b[m\u001b[0;33m 128928 ns 127286 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.67 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_mean \u001b[m\u001b[0;33m 157051171 ns 155918245 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_median \u001b[m\u001b[0;33m 156611403 ns 155561846 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_stddev \u001b[m\u001b[0;33m 1135507 ns 1133326 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.73 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_mean \u001b[m\u001b[0;33m 60817722 ns 60398176 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_median \u001b[m\u001b[0;33m 61052310 ns 60624938 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_stddev \u001b[m\u001b[0;33m 1963798 ns 1937882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_cv \u001b[m\u001b[0;33m 3.23 % 3.21 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_mean \u001b[m\u001b[0;33m 35574296 ns 35336538 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_median \u001b[m\u001b[0;33m 34202010 ns 33985413 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_stddev \u001b[m\u001b[0;33m 2962023 ns 2918702 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_cv \u001b[m\u001b[0;33m 8.33 % 8.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_mean \u001b[m\u001b[0;33m 16676661 ns 16546743 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_median \u001b[m\u001b[0;33m 16172905 ns 16059889 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_stddev \u001b[m\u001b[0;33m 875878 ns 864388 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_cv \u001b[m\u001b[0;33m 5.25 % 5.22 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_mean \u001b[m\u001b[0;33m 21875298 ns 21785712 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_median \u001b[m\u001b[0;33m 21873879 ns 21796083 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_stddev \u001b[m\u001b[0;33m 190499 ns 184831 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_cv \u001b[m\u001b[0;33m 0.87 % 0.85 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_mean \u001b[m\u001b[0;33m 23857713 ns 23609004 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_median \u001b[m\u001b[0;33m 23866731 ns 23617933 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_stddev \u001b[m\u001b[0;33m 168299 ns 160750 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.68 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", "\u001b[m" ] } @@ -727,7 +727,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "b16b9fb4", "metadata": {}, "outputs": [], @@ -752,7 +752,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "d3172304", "metadata": {}, "outputs": [ @@ -774,48 +774,48 @@ " 11 CachedJitCompiledExpressionExecutor kComplex5 Optimized \n", " \n", " time_ms \n", - " 0 0.022492 \n", - " 1 0.020696 \n", - " 2 0.020039 \n", - " 3 0.019665 \n", - " 4 0.071494 \n", - " 5 0.071193 \n", - " 6 0.074523 \n", - " 7 0.070604 \n", - " 8 0.088746 \n", - " 9 0.093122 \n", - " 10 0.084456 \n", - " 11 0.080405 ,\n", + " 0 0.019715 \n", + " 1 0.019566 \n", + " 2 0.019754 \n", + " 3 0.019804 \n", + " 4 0.070585 \n", + " 5 0.043139 \n", + " 6 0.068980 \n", + " 7 0.044213 \n", + " 8 0.090198 \n", + " 9 0.096809 \n", + " 10 0.095552 \n", + " 11 0.087877 ,\n", " query executor mode time_ms\n", - " 0 q2.1 Interpreted Naive 9.535917\n", - " 1 q2.1 Interpreted Optimized 10.018523\n", - " 2 q1.3 Interpreted Naive 8.894810\n", - " 3 q1.3 Interpreted Optimized 7.216482\n", - " 4 q1.2 Interpreted Naive 8.755501\n", - " 5 q1.2 Interpreted Optimized 6.842163\n", - " 6 q3.3 Interpreted Naive 38.770551\n", - " 7 q3.3 Interpreted Optimized 6.165384\n", - " 8 q3.4 Interpreted Naive 38.014861\n", - " 9 q3.4 Interpreted Optimized 6.548677\n", - " 10 q4.3 Interpreted Naive 9.839082\n", - " 11 q4.3 Interpreted Optimized 6.726511\n", - " 12 q1.1 Interpreted Naive 8.337287\n", - " 13 q1.1 Interpreted Optimized 7.009090\n", - " 14 q3.2 Interpreted Naive 41.168218\n", - " 15 q3.2 Interpreted Optimized 7.331045\n", - " 16 q2.2 Interpreted Naive 10.611863\n", - " 17 q2.2 Interpreted Optimized 7.990721\n", - " 18 q3.1 Interpreted Naive 41.047048\n", - " 19 q3.1 Interpreted Optimized 7.329905\n", - " 20 q4.2 Interpreted Naive 11.383627\n", - " 21 q4.2 Interpreted Optimized 13.753622\n", - " 22 q4.1 Interpreted Naive 9.885573\n", - " 23 q4.1 Interpreted Optimized 13.621071\n", - " 24 q2.3 Interpreted Naive 9.506406\n", - " 25 q2.3 Interpreted Optimized 6.827825)" + " 0 q2.1 Interpreted Naive 10.529208\n", + " 1 q2.1 Interpreted Optimized 11.087104\n", + " 2 q1.3 Interpreted Naive 8.696587\n", + " 3 q1.3 Interpreted Optimized 8.481006\n", + " 4 q1.2 Interpreted Naive 10.591798\n", + " 5 q1.2 Interpreted Optimized 8.042493\n", + " 6 q3.3 Interpreted Naive 41.079134\n", + " 7 q3.3 Interpreted Optimized 6.184696\n", + " 8 q3.4 Interpreted Naive 39.726018\n", + " 9 q3.4 Interpreted Optimized 6.226768\n", + " 10 q4.3 Interpreted Naive 10.159185\n", + " 11 q4.3 Interpreted Optimized 6.886022\n", + " 12 q1.1 Interpreted Naive 8.560502\n", + " 13 q1.1 Interpreted Optimized 7.188918\n", + " 14 q3.2 Interpreted Naive 38.735087\n", + " 15 q3.2 Interpreted Optimized 6.717959\n", + " 16 q2.2 Interpreted Naive 9.318865\n", + " 17 q2.2 Interpreted Optimized 6.690732\n", + " 18 q3.1 Interpreted Naive 38.097914\n", + " 19 q3.1 Interpreted Optimized 6.528813\n", + " 20 q4.2 Interpreted Naive 10.061357\n", + " 21 q4.2 Interpreted Optimized 11.892791\n", + " 22 q4.1 Interpreted Naive 9.553308\n", + " 23 q4.1 Interpreted Optimized 13.055569\n", + " 24 q2.3 Interpreted Naive 9.503878\n", + " 25 q2.3 Interpreted Optimized 6.292484)" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -841,7 +841,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "f4e060f2", "metadata": {}, "outputs": [ @@ -849,71 +849,71 @@ "data": { "text/plain": [ "( operator input_rows model_cost time_ms\n", - " 0 SeqScan 1024 102400.0 0.038473\n", - " 1 SeqScan 2048 204800.0 0.069707\n", - " 2 SeqScan 4096 409600.0 0.154163\n", - " 3 SeqScan 8192 819200.0 0.390148\n", - " 4 SeqScan 16384 1638400.0 0.924368\n", + " 0 SeqScan 1024 102400.0 0.039153\n", + " 1 SeqScan 2048 204800.0 0.072348\n", + " 2 SeqScan 4096 409600.0 0.158147\n", + " 3 SeqScan 8192 819200.0 0.358960\n", + " 4 SeqScan 16384 1638400.0 0.797004\n", " .. ... ... ... ...\n", - " 59 NestedLoopCrossJoin 64 425984.0 0.288639\n", - " 60 NestedLoopCrossJoin 128 1703936.0 0.899354\n", - " 61 NestedLoopCrossJoin 256 6815744.0 5.036885\n", - " 62 NestedLoopCrossJoin 512 27262976.0 25.155229\n", - " 63 NestedLoopCrossJoin 1024 109051904.0 125.736836\n", + " 59 NestedLoopCrossJoin 64 425984.0 0.301369\n", + " 60 NestedLoopCrossJoin 128 1703936.0 0.958867\n", + " 61 NestedLoopCrossJoin 256 6815744.0 5.563806\n", + " 62 NestedLoopCrossJoin 512 27262976.0 26.439028\n", + " 63 NestedLoopCrossJoin 1024 109051904.0 125.006665\n", " \n", " [64 rows x 4 columns],\n", " target_cost operator input_rows model_cost time_ms\n", - " 0 640000 SeqScan 6400 640000.0 0.320159\n", - " 1 640000 Filter 6400 640000.0 0.409248\n", - " 2 640000 Projection 29091 640002.0 3.097292\n", - " 3 640000 Sort 4476 640068.0 0.714273\n", - " 4 640000 Aggregation 1255 640050.0 0.353749\n", - " 5 640000 HashJoin 1620 639900.0 0.251418\n", - " 6 640000 NestedLoopJoin 96 645120.0 0.676351\n", - " 7 640000 NestedLoopCrossJoin 78 632736.0 0.398744\n", - " 8 1000000 SeqScan 10000 1000000.0 0.352346\n", - " 9 1000000 Filter 10000 1000000.0 0.664349\n", - " 10 1000000 Projection 45455 1000010.0 5.560017\n", - " 11 1000000 Sort 6993 999999.0 1.181814\n", - " 12 1000000 Aggregation 1961 1000110.0 0.540896\n", - " 13 1000000 HashJoin 2532 1000140.0 0.408221\n", - " 14 1000000 NestedLoopJoin 120 1008000.0 1.006221\n", - " 15 1000000 NestedLoopCrossJoin 98 998816.0 0.600207\n", - " 16 3240000 SeqScan 32400 3240000.0 1.284652\n", - " 17 3240000 Filter 32400 3240000.0 2.176167\n", - " 18 3240000 Projection 147273 3240006.0 20.058836\n", - " 19 3240000 Sort 19636 3239940.0 4.184701\n", - " 20 3240000 Aggregation 6353 3240030.0 1.881536\n", - " 21 3240000 HashJoin 8203 3240185.0 1.306558\n", - " 22 3240000 NestedLoopJoin 215 3235750.0 2.883331\n", - " 23 3240000 NestedLoopCrossJoin 177 3258216.0 1.967699\n", - " 24 6760000 SeqScan 67600 6760000.0 3.804148\n", - " 25 6760000 Filter 67600 6760000.0 4.921571\n", - " 26 6760000 Projection 307273 6760006.0 41.998731\n", - " 27 6760000 Sort 38409 6759984.0 10.271929\n", - " 28 6760000 Aggregation 13255 6760050.0 4.438157\n", - " 29 6760000 HashJoin 17114 6760030.0 3.043218\n", - " 30 6760000 NestedLoopJoin 311 6770470.0 5.812015\n", - " 31 6760000 NestedLoopCrossJoin 255 6762600.0 5.684609\n", - " 32 12250000 SeqScan 122500 12250000.0 7.200013\n", - " 33 12250000 Filter 122500 12250000.0 9.183200\n", - " 34 12250000 Projection 556818 12249996.0 76.154538\n", - " 35 12250000 Sort 65536 12255232.0 21.631748\n", - " 36 12250000 Aggregation 24020 12250200.0 10.929372\n", - " 37 12250000 HashJoin 31013 12250135.0 6.579551\n", - " 38 12250000 NestedLoopJoin 418 12230680.0 10.203401\n", - " 39 12250000 NestedLoopCrossJoin 343 12235496.0 11.246723\n", - " 40 26010000 SeqScan 260100 26010000.0 17.194941\n", - " 41 26010000 Filter 260100 26010000.0 20.268578\n", - " 42 26010000 Projection 1182273 26010006.0 158.375198\n", - " 43 26010000 Sort 131364 26010072.0 66.118518\n", - " 44 26010000 Aggregation 51000 26010000.0 36.824897\n", - " 45 26010000 HashJoin 65848 26009960.0 15.544874\n", - " 46 26010000 NestedLoopJoin 610 26047000.0 21.482184\n", - " 47 26010000 NestedLoopCrossJoin 500 26000000.0 24.928068)" + " 0 640000 SeqScan 6400 640000.0 0.316342\n", + " 1 640000 Filter 6400 640000.0 0.410811\n", + " 2 640000 Projection 29091 640002.0 3.125994\n", + " 3 640000 Sort 4476 640068.0 0.701764\n", + " 4 640000 Aggregation 1255 640050.0 0.349396\n", + " 5 640000 HashJoin 1620 639900.0 0.250126\n", + " 6 640000 NestedLoopJoin 96 645120.0 0.668448\n", + " 7 640000 NestedLoopCrossJoin 78 632736.0 0.401858\n", + " 8 1000000 SeqScan 10000 1000000.0 0.344957\n", + " 9 1000000 Filter 10000 1000000.0 0.639288\n", + " 10 1000000 Projection 45455 1000010.0 4.977023\n", + " 11 1000000 Sort 6993 999999.0 1.141130\n", + " 12 1000000 Aggregation 1961 1000110.0 0.528994\n", + " 13 1000000 HashJoin 2532 1000140.0 0.398480\n", + " 14 1000000 NestedLoopJoin 120 1008000.0 0.988039\n", + " 15 1000000 NestedLoopCrossJoin 98 998816.0 0.576046\n", + " 16 3240000 SeqScan 32400 3240000.0 1.237620\n", + " 17 3240000 Filter 32400 3240000.0 2.123351\n", + " 18 3240000 Projection 147273 3240006.0 19.539424\n", + " 19 3240000 Sort 19636 3239940.0 4.003506\n", + " 20 3240000 Aggregation 6353 3240030.0 1.891951\n", + " 21 3240000 HashJoin 8203 3240185.0 1.296747\n", + " 22 3240000 NestedLoopJoin 215 3235750.0 3.015413\n", + " 23 3240000 NestedLoopCrossJoin 177 3258216.0 1.969269\n", + " 24 6760000 SeqScan 67600 6760000.0 3.823546\n", + " 25 6760000 Filter 67600 6760000.0 5.038810\n", + " 26 6760000 Projection 307273 6760006.0 40.927066\n", + " 27 6760000 Sort 38409 6759984.0 10.002418\n", + " 28 6760000 Aggregation 13255 6760050.0 4.512331\n", + " 29 6760000 HashJoin 17114 6760030.0 3.195742\n", + " 30 6760000 NestedLoopJoin 311 6770470.0 6.023061\n", + " 31 6760000 NestedLoopCrossJoin 255 6762600.0 5.240152\n", + " 32 12250000 SeqScan 122500 12250000.0 6.678741\n", + " 33 12250000 Filter 122500 12250000.0 9.281903\n", + " 34 12250000 Projection 556818 12249996.0 74.886058\n", + " 35 12250000 Sort 65536 12255232.0 20.096736\n", + " 36 12250000 Aggregation 24020 12250200.0 10.384281\n", + " 37 12250000 HashJoin 31013 12250135.0 6.415603\n", + " 38 12250000 NestedLoopJoin 418 12230680.0 10.091080\n", + " 39 12250000 NestedLoopCrossJoin 343 12235496.0 10.794051\n", + " 40 26010000 SeqScan 260100 26010000.0 17.073667\n", + " 41 26010000 Filter 260100 26010000.0 19.234040\n", + " 42 26010000 Projection 1182273 26010006.0 157.051171\n", + " 43 26010000 Sort 131364 26010072.0 60.817722\n", + " 44 26010000 Aggregation 51000 26010000.0 35.574296\n", + " 45 26010000 HashJoin 65848 26009960.0 16.676661\n", + " 46 26010000 NestedLoopJoin 610 26047000.0 21.875298\n", + " 47 26010000 NestedLoopCrossJoin 500 26000000.0 23.857713)" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -947,13 +947,13 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 8, "id": "2075a20f", "metadata": {}, "outputs": [ { "data": { - "image/png": "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0dixY/XVV18pNDRUnTt31ldffSVJeuSRRzR+/HhJ1wP0bdu2adu2bTZBYnaWLVummTNnauLEiZo/f74uXLigRx55REOGDNGWLVs0ffp0ffTRR/rtt9/02GOPZQks//2eZV438/HKK69IkqpWrSrJvj7eyfubafr06Vq1apWmTp2qzz//XG5uboqKirJZ8zTTY489pvDwcC1atEjDhg3TvHnzNHjwYOv+gQMH6o8//sgS+q5cuVKHDh3Siy++KElasGCB+vXrpyZNmmjJkiVaunSpBg8enCXI/LfVq1erUaNGOnLkiKZMmaKVK1fqtdde08mTJ63HHD9+XAEBAZo4caJWrVql9957T/ny5VO9evX0xx9/5Ph9+bcRI0bozz//1MyZMzVz5kwdP35cERER+vPPP2/6vAMHDqh169b65JNPtGrVKg0aNEhffPGFzSzTTFevXlXbtm318MMP6+uvv1bv3r319ttva9KkSdZjbve9k6Tly5ercePGNuFq0aJFVb58eb3//vuaMmWKfv/99xv+DGcuqdC9e3ctXbrUGuLeTHp6uq5du6arV6/q6NGjGjRokC5evJjtbNqIiAht2bJF586du+V5AQCAiRkAAABOEhsba0gy4uLijNTUVKNs2bJGnTp1jIyMDMMwDKNJkyZG1apVb/j89PR04+rVq8acOXMMd3d348yZM9Z9PXr0MEJDQ63bp06dMjw9PY0RI0bYnOPJJ580AgMDjatXrxqGYRjz5883JBmLFi2yOS4uLs6QZLz//vt2vcZr164ZKSkpRoECBYxp06Zlee39+vWzOX7y5MmGJOPEiROGYRjGvn37DEnG4MGDbY6bO3euIcno0aPHTa//wQcfGJKML774wmZ80qRJhiRjzZo11jFJho+Pj5GYmGhTf6VKlYzy5ctbx7788ktDkrF+/fos1/v3+5553qCgICMlJcU6tnTpUkOSUbNmTWu/DcMwpk6dakgy9u7de9Nz/tP3339veHt7G127drWeK6d9vNP3Nz4+3pBkhISEGJcvX7aOJycnG0WKFDGaN29uHRs9erQhyZg8ebLNOfr162d4e3tba09PTzfKli1rtGvXzua4qKgoo1y5ctbjXnrpJaNQoUI3rW/9+vVZelWuXDmjXLlyNvXeyrVr14y0tDSjQoUKNu9V5uuPjY3NUR21atWy6ffhw4cNDw8P45lnnrGOZb5PN5KRkWFcvXrV2LhxoyHJ+Omnn6z7evToke3Pe+vWrY2KFStat3Py3mXn5MmThiRj4sSJWfb98MMPRunSpQ1JhiTDz8/PePTRR405c+bYvGbDMIyxY8canp6e1mPDwsKMvn372rwWw/jffeLfDy8vrxvei9auXWtIMlauXGn36wMAAObBTFsAAGAKnp6eeuONN7Rz50598cUXNzxu9+7datu2rQICAuTu7i4PDw91795d6enp2r9//w2fFxAQoDZt2mj27NnWNSPPnj2rr7/+Wt27d1e+fNeX+l+2bJkKFSqkNm3a6Nq1a9ZHzZo1FRQUlOVj5v+WkpKiV199VeXLl1e+fPmUL18++fr66uLFi9q3b1+W49u2bWuzXaNGDUmyLqewfv16SVLXrl1tjnvyySetNd/Md999pwIFCujxxx+3Gc9cRuDfszkffvhhBQYGWrfd3d3VqVMnHTx4UEePHr3l9W6kadOmKlCggHW7cuXKkqSoqChZLJYs4/9eTuJG9u3bp7Zt26phw4b69NNPrefKaR/v9P3N1LFjR3l7e1u3/fz81KZNG23atEnp6ek2x2bX8ytXrigpKUnS9Y/Hv/TSS1q2bJmOHDki6foM81WrVqlfv37W1/jAAw/o3Llz6ty5s77++utsZ3L/2/79+3Xo0CH16dPHpt5/u3btmsaPH68qVarI09NT+fLlk6enpw4cOJDtz3FOdenSxabfoaGhatiwobUPN/Lnn3+qS5cuCgoKsv69b9KkiSRlqcdisWSZgVujRg2bn6nbee8kWZcuKV68eJZ9devW1cGDB7Vq1SqNGDFCDRo00Lp169S9e3e1bdvWZubtqFGjdOTIEX366ad6/vnn5evrqw8++EC1a9fW/Pnzs5x7zpw5iouLU1xcnFauXKkePXroxRdf1PTp07Mcm1nbsWPHcvSaAACAORHaAgAA03jqqadUq1YtjRw5MssatZJ05MgRNWrUSMeOHdO0adP0/fffKy4uTu+9954k3XLpgt69e+vYsWNau3atJGn+/PlKTU21WQf15MmTOnfunHW9yH8+EhMTbxnudOnSRdOnT9czzzyj1atX64cfflBcXJyKFSuWbX0BAQE2215eXjavJfOj00FBQTbH5cuXL8tzs3P69GkFBQXZBGXS9WAnX758WT6a/e/r/HMsJx/jvpEiRYrY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dNPrFilSRO+8847c3NxUsWJFTZ48WZcuXdKIESMkScOHD9fEiRO1ZcsWPfXUU1me7+/vL3//6+sFL168WB988IG+/fZbBQUF6dChQ5o/f76OHj2qkJAQSdfX1V21apViY2M1fvx4TZs2TS1btrR5LVu3btWqVavsfQvtwkxbAAAAAAAAAHckc4atxWKRJDVo0MBmf4MGDbRv3z67z1u1alW5uf0vwgwMDFT16tWt2+7u7goICFBSUtJNz7N79251795d7733nh566CFJ0o8//ijDMBQeHi5fX1/rY+PGjTp06JAkad++fdm+Fkdjpi0AAAAAAACAmypfvrwsFot+++03tW/fPsv+33//XYULF1bRokVveI7MQNceHh4eWc6R3VhGRsYNz5GYmKi2bduqT58+6tOnj3U8IyND7u7u2rVrl9zd3W2e4+vrK+l/YXReY6YtAAAAAAAAgJsKCAhQZGSk3n//fV2+fNlmX2JioubOnatOnTpZg9nt27fbHLN9+3brOrLS9TA2PT3d4XVfuXJF7dq1U6VKlTRlyhSbfffff7/S09OVlJSk8uXL2zwyl22oUqVKtq/F0QhtAQAAAAAAANzS9OnTlZqaqpYtW2rTpk1KSEjQqlWrFBkZqRIlSmjcuHHWY7ds2aLJkydr//79eu+99/Tll19q4MCB1v1lypTRunXrlJiYqLNnzzqs5ueff14JCQl655139PfffysxMVGJiYlKS0tTeHi4unbtqu7du2vx4sWKj49XXFycJk2apBUrVkiSBgwYoFWrVllfy/Tp0x2+nq1EaAsAAAAAAAAgBypUqKCdO3eqXLly6tSpk8qVK6fnnntOTZs21bZt21SkSBHrsUOGDNGuXbt0//336/XXX9dbb72lli1bWve/9dZbWrt2rUqVKqX777/fYTVv3LhRJ06cUJUqVRQcHGx9bN26VZIUGxur7t27a8iQIapYsaLatm2rHTt2qFSpUpKk+vXra+bMmXr33XdVs2ZNrVmzRq+99prD6s1kMZy1MEMeSU5Olr+/v86fP6+CBQs6uxwAAAA4QJlhy/PkOocnPpIn17lX5EVf6In96Iv5cA8DXMuVK1cUHx+vsLAweXt7O7schyhTpowGDRqkQYMGObsUp7hZj3OaVTLTFgAAAAAAAABMhNAWAAAAAAAAAEwkn7MLAAAAAAAAAHDvOHz4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unXl5+en4sWLq3379vrjjz9sjunZs6csFovNo379+vaWDQAAAAAAAAB3BbtD2+HDh+unn37Shg0b5O3tbR1v3ry5Fi5caNe5Nm7cqBdffFHbt2/X2rVrde3aNbVo0UIXL160Oa5Vq1Y6ceKE9bFixQp7ywYAAAAAAACAu4Lda9ouXbpUCxcuVP369WWxWKzjVapU0aFDh+w616pVq2y2Y2NjVbx4ce3atcvmy8y8vLwUFBRkb6kAAAAAAAAAcNexe6bt33//reLFi2cZv3jxok2IezvOnz8vSSpSpIjN+IYNG1S8eHGFh4fr2WefVVJS0h1dBwAAAAAAAADMyu7Qtm7dulq+fLl1OzOo/fjjj9WgQYPbLsQwDEVHR+uhhx5StWrVrONRUVGaO3euvvvuO7311luKi4tTs2bNlJqamu15UlNTlZycbPMAAAAAAAAAgLuF3csjTJgwQa1atdJvv/2ma9euadq0afr111+1bds2bdy48bYLeemll7R3715t3rzZZrxTp07WP1erVk116tRRaGioli9fro4dO2Zb35gxY267DgAAAAAAAABwJrtn2jZs2FBbtmzRpUuXVK5cOa1Zs0aBgYHatm2bateufVtF9O/fX998843Wr1+vkiVL3vTY4OBghYaG6sCBA9nuHz58uM6fP299JCQk3FZNAAAAAAAAAOAMds+0laTq1atr9uzZd3xxwzDUv39/LVmyRBs2bFBYWNgtn3P69GklJCQoODg42/1eXl7y8vK649oAAAAAAAAAwBluK7SVpKSkJCUlJSkjI8NmvEaNGjk+x4svvqh58+bp66+/lp+fnxITEyVJ/v7+8vHxUUpKimJiYvTYY48pODhYhw8f1ogRI1S0aFF16NDhdksHAAAAAAAAANOyO7TdtWuXevTooX379skwDJt9FotF6enpOT7XjBkzJEkRERE247GxserZs6fc3d31888/a86cOTp37pyCg4PVtGlTLVy4UH5+fvaWDgAAAAAAAACmZ3do26tXL4WHh+uTTz5RYGCgLBbLbV/836Hvv/n4+Gj16tW3fX4AAAAAAAAAuNvYHdrGx8dr8eLFKl++vCPqAQAAAAAAAACX5mbvEx5++GH99NNPjqgFAAAAAAAAAFye3TNtZ86cqR49euiXX35RtWrV5OHhYbO/bdu2uVYcAAAAAAAAALgau0PbrVu3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", + "image/png": "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G88++6x1LPN9upmMjAzj6tWrRkxMjCHJ+Pnnn637evbsecOf9zZt2hgVK1a0bmfnvbuRU6dOGZKMCRMmZNn3ww8/GKVLlzYkGZIMX19f47HHHjPmzZtn85oNwzDGjBljeHh4WI8NCQkx+vXrZ/NaDON/94l/Pzw9PW96L1q/fr0hyVi9erXdrw8AAJgHM20BAIApeHh46O2339auXbv0xRdf3PS4PXv2qF27dvL395erq6vc3d3Vo0cPpaena//+/Td9nr+/v9q2bau5c+da14xMSkrS119/rR49esjN7fpS/ytWrFDBggXVtm1bXbt2zfqoVauWAgMDs/ya+b+lpKTotddeU/ny5eXm5iY3Nzf5+Pjo4sWL2rdvX5bj27VrZ7Ndo0YNSbIup7Bx40ZJUrdu3WyOe+qpp6w138p3332n/Pnz64knnrAZz1xG4N+zOR955BEFBARYt11dXdW5c2cdPHhQx44du+31bqZZs2bKnz+/dbty5cqSpIiICFkslizj/15O4mb27dundu3aqVGjRvr000+t58puH+/2/c3UqVMneXl5Wbd9fX3Vtm1bbd68Wenp6TbH3qjnV65cUWJioqTrvx7/8ssva8WKFTp69Kik6zPM16xZo/79+1tf44MPPqhz586pS5cu+vrrr284k/vf9u/fr0OHDqlv37429f7btWvXNG7cOFWpUkUeHh5yc3OTh4eHDhw4cMOf4+zq2rWrTb+Dg4PVqFEjax9u5q+//lLXrl0VGBho/XvftGlTScpSj8ViyTIDt0aNGjY/U3fy3kmyLl1SrFixLPvq1aungwcPas2aNRoxYoQaNmyoDRs2qEePHmrXrp3NzNs333xTR48e1aeffqoXXnhBPj4++vDDD1WnTh0tXLgwy7nnzZun2NhYxcbGavXq1erZs6deeuklTZ8+PcuxmbUdP348W68JAACYE6EtAAAwjaefflq1a9fWyJEjs6xRK0lHjx5V48aNdfz4cU2bNk3ff/+9YmNjNWPGDEm67dIFffr00fHjx7V+/XpJ0sKFC5WammqzDuqpU6d07tw563qR/3wkJCTcNtzp2rWrpk+frmeffVZr167VDz/8oNjYWBUtWvSG9fn7+9tse3p62ryWzF+dDgwMtDnOzc0ty3Nv5MyZMwoMDLQJyqTrwY6bm1uWX83+93X+OZadX+O+mcKFC9tse3h43HL8ypUrtz3niRMn1Lp1a5UsWVJLly61PlfKfh/v9v3NdLP3LS0tTSkpKTbjt+u5dP1n1dvb27o26YwZM+Tt7a0+ffpYj+nevbs+/fRTHTlyRI8//riKFSum+vXrW3++byRzPd+SJUve8vVERkbqzTffVIcOHfTf//5XO3fuVGxsrGrWrHnbv2e3crP36VY/WykpKWrcuLF27typt99+W5s2bVJsbKyWLl0qKevf+3z58mUJpD09PW1+pu7kvfvntW4WeLu7u6tVq1YaO3as1q5dq/j4eIWFhWnFihVavXq1zbEBAQHq3bu3PvzwQ+3du1cxMTHy8PDQoEGDspy3cuXKqlu3rurWravWrVvro48+UsuWLTVs2LAsyyBk1nY3fQIAAI6X/ekDAAAAucxisWjixIkKDw/P8g3skrR8+XJdvHhRS5cuVXBwsHX8p59+ytb5W7VqpeLFiys6OlqtWrVSdHS06tevrypVqliPyfxCsH9+M/w/+fr63vT858+f14oVKzRq1Ci9/vrr1vHU1FSdPXs2WzX+W2bAl5CQoBIlSljHr127lq0Q1d/fXzt37pRhGDbBbWJioq5du6YiRYrYHJ+QkJDlHJlj9oSYuS05OVlt2rRRRkaGVq1aJT8/P5v92e3j3b6/mW72vnl4eMjHxyfb58nk5+ennj17avbs2XrllVcUHR2trl27qmDBgjbH9e7dW71799bFixe1efNmjRo1So899pj2799v83ckU9GiRSXptrOmP//8c/Xo0cO6fnGm06dPZ6nBHjd7n271s/Xdd9/pxIkT2rRpk3V2raS7XrPV3vdOkvXvS3b/Pvv7+2vw4MHatGmTfv31V7Vp0+amxzZp0kQtW7bU8uXLlZiYeMPZvP9Uo0YNrV27Vvv379eDDz5oHc+s7d9/twEAwL2FmbYAAMBUWrRoofDwcI0ZMybLDMXM0DFzZqIkGYahjz/+OFvndnV1Vffu3bV8+XJ9//332rVrl83MRUl67LHHdObMGaWnp1tntv3zUbFixZue32KxyDAMm/okafbs2Vl+RT67wsLCJEnz58+3Gf/iiy907dq12z7/kUceUUpKipYvX24zPm/ePOv+f9qwYYPNF1Klp6dr8eLFKleunHV25o1mhualtLQ0dezYUYcPH9bq1atvOGs0u3282/c309KlS21mcl64cEH//e9/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0aOSpIEDB2rChAl2nWv8+PGqV6+efH19VaxYMXXo0EF//vmnzTG9evWSxWKxeTRo0MDesgEAAAAAAADgnmB3aDt8+HD9/PPP2rRpk7y8vKzjLVq00OLFi+06V0xMjF566SXt2LFD69ev17Vr19SyZUtdvHjR5rjWrVvr5MmT1seqVavsLRsAAAAAAAAA7gl2r2m7fPlyLV68WA0aNJDFYrGOV6lSRYcOHbLrXGvWrLHZjo6OVrFixbR7926bLzPz9PRUYGCgvaUCAAAAAAAAwD3H7pm2f//9t4oVK5Zl/OLFizYh7p04f/68JKlw4cI245s2bVKxYsUUGhqq5557TomJiTc9R2pqqpKTk20eAAAAAAAAAHCvsDu0rVevnlauXGndzgxqP/74YzVs2PCOCzEMQ5GRkXr44YdVrVo163hERITmz5+v7777TpMnT1ZsbKyaN2+u1NTUG55n/Pjx8vPzsz5KlSp1xzUBAAAAAAAAQF6ze3mE8ePHq3Xr1vr999917do1TZs2Tb/99pu2b9+umJiYOy7k5Zdf1t69e7Vlyxab8c6dO1v/XK1aNdWtW1fBwcFauXKlOnXqlOU8w4cPV2RkpHU7OTmZ4BYAAAAAAADAPcPumbaNGjXS1q1bdenSJZUrV07r1q1TQECAtm/frjp16txREQMGDNA333yjjRs3qmTJkrc8NigoSMHBwTpw4MAN93t6eqpAgQI2DwAAAAAAAAC4V9g901aSqlevrrlz5971xQ3D0IABA7Rs2TJt2rRJISEht33OmTNnFB8fr6CgoLu+PgAAAAAAAACYzR2FtpKUmJioxMREZWRk2IzXqFEj2+d46aWXtGDBAn399dfy9fVVQkKCJMnPz0/e3t5KSUlRVFSUHn/8cQUFBenw4cMaMWKEihQpoo4dO95p6QAAAAAAAABgWnaHtrt371bPnj21b98+GYZhs89isSg9PT3b55o5c6YkKSwszGY8OjpavXr1kqurq3755RfNmzdP586dU1BQkJo1a6bFixfL19fX3tIBAAAAAAAAwPTsDm179+6t0NBQffLJJwoICJDFYrnji/879P03b29vrV279o7PDwAAAAAAAAD3GrtD27i4OC1dulTly5fPjXoAAAAAAAAAwKm52PuERx55RD///HNu1AIAAAAAAAAATs/umbazZ89Wz5499euvv6patWpy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", "text/plain": [ "
" ] @@ -975,13 +975,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "c36bdd23", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAGGCAYAAAAAW6PhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbopJREFUeJzt3XmcTvX///HnNfvOWMaesWTLbuyFQdmyRFSKZPm0UkmhsiZLZG0R+tiSSEipqOwhRUwhW2MsGSNi7MvM+f3Rz/X9TGOZy7zHmTPzuN9uc7vN9T5nzvWc58016eXM+3JZlmUJAAAAAAAAAJApeN3KF508eVLTpk3Tq6++qhMnTkiStmzZosOHDxsNBwAAAAAAAADZjY+nXxATE6PGjRsrR44c2r9/v7p3765cuXJp0aJFiouL06xZszIiJwAAAAAAAABkCx7fadu7d2916dJFe/bsUUBAgHu9WbNmWrNmjdFwAAAAAAAAAJDdeDy0/emnn/Tkk0+mWi9UqJDi4+ONhAIAAAAAAACA7MrjoW1AQIASExNTre/atUt58+Y1EgoAAAAAAAAAsiuPh7atW7fW0KFDdfnyZUmSy+XSgQMH1K9fP7Vr1854QAAAAAAAAADITlyWZVmefEFiYqKaN2+u7du36/Tp0ypYsKDi4+NVu3ZtffXVVwoODs6orAAAAAAAAACQ5Xk8tL1qxYoV2rJli5KTk1W1alU1btzYdDYAAAAAAAAAyHY8HtoeOHBA+fLlk7+/f4p1y7J08OBB3XHHHUYDAgAAAAAAAEB24vGetpGRkapatar27duXYj0hIUHFihUzFgwAAABmbdy4Ue3bt1eBAgXk5+en/Pnz68EHH9SGDRvSdd333ntPM2bMSLW+f/9+uVyuax67VRlxzexoxowZcrlc2r9/v91RAAAAcA0eD20lqWzZsqpRo4a+//77FOu3uNMCAAAAMtikSZNUt25dHTp0SG+99Za+++47jRkzRocPH9bdd9+td95555avfb2hbYECBbRhwwa1aNEiHckz/poAAABAZuPj6Re4XC699957mjNnjlq0aKG33npLvXr1ch8DAABA5vLDDz/ohRdeUPPmzbVo0SL5+PzfXwEffvhhPfDAA3r++edVpUoV1a1b19jz+vv7q1atWsaul1HXvJnz588rICCAv+sCAADgtvH4Tturd9O++OKLWrRokQYOHKju3bvr4sWLxsMBAAAg/UaMGCGXy6X3338/xcBWknx8fPTee+/J5XJp5MiR7vXBgwfL5XLpl19+Udu2bRUWFqYcOXLoscce07Fjx9znRUZGavv27Vq9erVcLpdcLpciIyMlXXsrg6vXjYmJUfv27ZUjRw7lypVLvXv31pUrV7Rr1y41bdpUoaGhioyM1FtvvZUi77WuefV5r/Xxv7/+//PPP6tVq1bKlSuXAgICVKVKFc2fPz/F9a9uG7B8+XJ17dpVefPmVVBQ0HX/rpucnKxhw4apdOnSCgwMVM6cOVWxYkVNmDDB4y6vmjdvnmrXrq3g4GCFhISoSZMm+uWXX1Kdl5bvR/pnW4y6desqICBABQsWVP/+/XX58uVU57lcLg0ePDjVemRkpLp06ZKqo2+//VZPPPGEcuXKpeDgYLVs2VJ//PHHNXsCAACAZ25pe4SrmjVrpvXr12vVqlW6//77TWUCAACAIUlJSVq5cqWioqJUuHDha55TpEgRVatWTStWrFBSUlKKYw888IBKliypBQsWaPDgwVq8eLGaNGniHvotWrRIxYsXV5UqVbRhwwZt2LBBixYtummuDh06qFKlSvrss8/Uo0cPjRs3Ti+++KLatGmjFi1aaNGiRWrYsKH69u2rhQsX3vBaV5/36seKFStUqFAh5c+fX7ly5ZIkrVy5UnXr1tXJkyc1efJkff7556pcubIeeuiha27t0LVrV/n6+mr27NlasGCBfH19r/ncb731lgYPHqxHHnlES5cu1bx589StWzedPHky1bk361KShg8frkceeUTlypXT/PnzNXv2bJ0+fVr33HOPduzY4T4vrd/Pjh071KhRI508eVIzZszQ5MmT9csvv2jYsGE37DQtunXrJi8vL3388ccaP368Nm3apAYNGlzzewcAAICHLA81aNDA+vvvv1OsHT9+3KpXr57lcrk8vRwAAAAyUHx8vCXJevjhh2943kMPPWRJso4ePWpZlmUNGjTIkmS9+OKLKc6bM2eOJcn66KOP3Gt33XWXVb9+/VTXjI2NtSRZ06dPd69dve7bb7+d4tzKlStbkqyFCxe61y5fvmzlzZvXatu27Q2v+b+uXLlitW7d2goJCbE2b97sXi9TpoxVpUoV6/LlyynOv//++60CBQpYSUlJlmVZ1vTp0y1JVufOna95/X+7//77rcqVK9/wnLR2eeDAAcvHx8fq2bNnivNOnz5t5c+f3+rQoYPH389DDz1kBQYGWvHx8e5zrly5YpUpU8aSZMXGxrrXJVmDBg1Klb9o0aLW448/7n58taMHHnggxXk//PCDJckaNmzYDfsAAADAzXl8p+3KlSuVM2fOFGu5cuXS6tWrlZycfMvDYwAAANjH+v9bYP1739ZHH300xeMOHTrIx8dHK1euTNfz/fu3tMqWLSuXy6VmzZq513x8fFSyZEnFxcWl+brPPfecli5dqk8//VRVq1aVJO3du1e///67+3u5cuWK+6N58+Y6cuSIdu3aleI67dq1S9Pz1ahRQ9u2bdMzzzyjZcuWKTEx8brn3qzLZcuW6cqVK+rcuXOKjAEBAapfv75WrVrl8fezcuVKNWrUSPny5XM/r7e3tx566KE0fX838u/vp06dOipatGi6/2wAAAAgjW9ElpiYqLCwMPfnN3L1PAAAANgvT548CgoKUmxs7A3P279/v4KCgtzbCVyVP3/+FI99fHyUO3duHT9+PF25/v08fn5+CgoKUkBAQKr1m/3986phw4Zp8uTJ+vDDD9W0aVP3+tGjRyVJffr0UZ8+fa75tX/99VeKxwUKFEjTc/bv31/BwcH66KOPNHnyZHl7e6tevXoaNWqUoqKiUpx7sy6v5qxevfo1n8vLy8vj7+f48eOpnvdaWW7F9a6b3j8bAAAASOPQNjw8XEeOHFFERIRy5sx5zXfOtSxLLpcr1T5oAAAAsI+3t7eio6P1zTff6NChQ9fc1/bQoUPavHmzmjVrJm9v7xTH4uPjVahQIffjK1eu6Pjx48qdO3eGZ/fEjBkzNGDAAA0ePFhdu3ZNcSxPnjyS/hmwtm3b9ppfX7p06RSPr/X33Wvx8fFR79691bt3b508eVLfffedXn31VTVp0kQHDx5UUFCQ+9ybdXk154IFC1S0aNHrPqcn30/u3LkVHx+f6vi11vz9/a/5hmvXG8Je77olS5a8bnYAAACkTZqGtitWrEjxJg4AAABwjv79++vrr7/WM888o0WLFqUYzCYlJenpp5+WZVnq379/qq+dM2eOqlWr5n48f/58XblyRQ0aNHCv+fv76/z58xn6PdzIN998ox49eqhr164aNGhQquOlS5fWnXfeqW3btmn48OEZliNnzpx68MEHdfjwYb3wwgvav3+/ypUr5z5+sy6bNGkiHx8f7du374bbM3jy/URHR2vJkiU6evSoe4uEpKQkzZs3L9W5kZGRiomJSbG2YsUKnTlz5prXnjNnToqc69evV1xcnLp3737DTAAAALi5NA1t69evf83PAQAAkPnVrVtX48eP1wsvvKC7775bzz33nO644w4dOHBA7777rn788UeNHz9ederUSfW1CxculI+Pj+69915t375dAwYMUKVKldShQwf3ORUqVNAnn3yiefPmqXjx4goICFCFChVuy/cWGxur9u3bq3jx4nriiSe0cePGFMerVKkif39/ffDBB2rWrJmaNGmiLl26qFChQjpx4oR27typLVu26NNPP72l52/ZsqXKly+vqKgo5c2bV3FxcRo/fryKFi2qO++8M8W5N+syMjJSQ4cO1WuvvaY//vhDTZs2VXh4uI4ePapNmzYpODhYQ4YMkaQ0fz+vv/66lixZooYNG2rgwIEKCgrSu+++q7Nnz6b6Xjp16qQBAwZo4MCBql+/vnbs2KF33nlHOXLkuOb3/vPPP6t79+5q3769Dh48qNdee02FChXSM888c0tdAgAA4P+kaWj7bxcuXFBMTIwSEhJSvflYq1atjAQDAACAOT179lT16tX19ttv66WXXtLx48eVK1cu3X333Vq3bp1q1659za9buHChBg8erPfff18ul0stW7bU+PHj5efn5z5nyJAhOnLkiHr06KHTp0+raNGi2r9//235vuLi4nTmzBnt3r1b99xzT6rjsbGxioyMVHR0tDZt2qQ333xTL7zwgv7++2/lzp1b5cqVSzGA9lR0dLQ+++wzTZs2TYmJicqfP7/uvfdeDRgwQL6+vinOTUuX/fv3V7ly5TRhwgTNnTtXFy9eVP78+VW9enU99dRTKZ43Ld9P+fLl9d133+mll17S448/rvDwcHXq1Ent2rXTf/7znxT5Xn75ZSUmJmrGjBkaM2aMatSoofnz56t169bX/N4//PBDzZ49Ww8//LAuXryo6OhoTZgwIdV+xQAAAPCcy7r6VsFp9M0336hz586p3qxBEnvaAgAAZBGDBw/WkCFDdOzYMfceqrg1Wa3LGTNm6IknntBPP/2U6s3WAAAAYIaXp1/w3HPPqX379jpy5IiSk5NTfDCwBQAAAAAAAID08Xhom5CQoN69e7vfyAAAAAAAAAAAYI7H2yN07dpVdevW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AAAAAACAbC/NQ9u5c+cqMjJSNWvW1PDhw7V9+/aMzAUAAAAAAAAA2VKah7YrV67UkSNH1LNnT23dulV16tRRiRIl1Lt3b61atUrJyckZmRMAAAAAAAAAsgWP9rQNDw/XY489pvnz5+vYsWN69913deHCBXXq1El58+ZV586dtWDBAp09ezaj8gIAAAAAAABAlnbLb0Tm5+enpk2b6r333tPBgwe1bNkyRUZG6o033tDYsWM9vt6IESPkcrn0wgsv3GokAAAAAAAAAHA8H1MXioqKUlRUlIYOHarLly979LU//fSTpkyZoooVK5qKAwAAAAAAAACOdMt32t6Ir69vms89c+aMHn30UU2dOlXh4eEZEQcAAAAAAAAAHCNDhraeePbZZ9WiRQs1btzY7igAAAAAAAAAYDtj2yPcik8++URbtmzRTz/9lKbzL168qIsXL7ofJyYmZlQ0AAAAAAAAALCFbXfaHjx4UM8//7w++ugjBQQEpOlrRowYoRw5crg/ihQpksEpAQAAAAAAAOD2uqWh7dq1a/XYY4+pdu3aOnz4sCRp9uzZWrduXZqvsXnzZiUkJKhatWry8fGRj4+PVq9erYkTJ8rHx0dJSUmpvqZ///46deqU++PgwYO3Eh8AAAAAAAAAMi2Ph7afffaZmjRposDAQP3yyy/u7QpOnz6t4cOHp/k6jRo10q+//qqtW7e6P6KiovToo49q69at8vb2TvU1/v7+CgsLS/EBAAAAAAAAAFmJx0PbYcOGafLkyZo6dap8fX3d63Xq1NGWLVvSfJ3Q0FCVL18+xUdwcLBy586t8uXLexoLAAAAAAAAALIEj4e2u3btUr169VKth4WF6eTJkyYyAQAAAAAAAEC25ePpFxQoUEB79+5VZGRkivV169apePHi6QqzatWqdH09AAAAAAAAADidx3faPvnkk3r++ef1448/yuVy6c8//9ScOXPUp08fPfPMMxmREQAAAAAAAACyDY/vtH3llVd06tQpRUdH68KFC6pXr578/f3Vp08fPffccxmREQAAAAAAAACyDY+HtpL05ptv6rXXXtOOHTuUnJyscuXKKSQkxHQ2AAAAAAAAAMh2PN4eYebMmTp79qyCgoIUFRWlGjVqMLAFAAAAAAAAAEM8Htr26dNHERERevjhh/Xll1/qypUrGZELAAAAAAAAALIlj4e2R44c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UlxcnM3p0oehLQAAAAAAAADHKVmypBYvXqyDBw9q2bJluu+++yRJCQkJCgsLszld+jC0BQAAAAAAAOA4AwcOVJ8+fRQZGamaNWuqdu3akv6567ZKlSo2p0sf3ogMAAAAAAAAgCPFx8fryJEjqlSpkry8/rk/ddOmTQoLC1OZMmVsTnfrGNoCAAAAAAAAQCbC9ggAAAAAAAAAkIkwtAUAAAAAAACATIShLQAAAAAAAABkIgxtAQAAAAAAACATYWgLAAAAAAAAAJkIQ1sAAABkKQcPHlS3bt1UsGBB+fn5qWjRonr++ed1/Phxu6MBAAAAacLQFgAAAFnGH3/8oaioKO3evVtz587V3r17NXnyZH3//feqXbu2Tpw4kWHPfenSpQy7NgAAALIXhrYAAADIMp599ln5+flp+fLlql+/vu644w41a9ZM3333nQ4fPqzXXntNkuRyubR48eIUX5szZ07NmDHD/fjw4cN66KGHFB4erty5c6t169bav3+/+3iXLl3Upk0bjRgxQgULFlSpUqU0dOhQVahQIVWuatWqaeDAgRnxLQMAACALYmgLAACALOHEiRNatmyZnnnmGQUGBqY4lj9/fj366KOaN2+eLMu66bXOnTun6OhohYSEaM2aNVq3bp1CQkLUtGnTFHfUfv/999q5c6e+/fZbffnll+ratat27Nihn376yX1OTEyMfvnlF3Xp0sXY9woAAICszcfuAAAAAIAJe/bskWVZKlu27DWPly1bVn///beOHTt202t98skn8vLy0rRp0+RyuSRJ06dPV86cObVq1Srdd999kqTg4GBNmzZNfn5+7q9t0qSJpk+frurVq7u/rn79+ipevHh6v0UAAABkE9xpCwAAgGzh6h22/ztgvZ7Nmzdr7969Cg0NVUhIiEJCQpQrVy5duHBB+/btc59XoUKFVNfr0aOH5s6dqwsXLujy5cuaM2eOunbtavabAQAAQJbGnbYAAADIEkqWLCmXy6UdO3aoTZs2qY7//vvvyps3r3LmzCmXy5Vqm4TLly+7P09OTla1atU0Z86cVNfJmzev+/Pg4OBUx1u2bCl/f38tWrRI/v7+unjxotq1a5eO7wwAAADZDUNbAAAAZAm5c+fWvffeq/fee08vvvhiin1t4+PjNWfOHD377LOS/hm8HjlyxH18z549OnfunPtx1apVNW/ePEVERCgsLMyjHD4+Pnr88cc1ffp0+fv76+GHH1ZQUFA6vzsAAABkJ2yPAAAAgCzjnXfe0cWLF9WkSROtWbNGBw8e1DfffKN7771XpUqV0sCBAyVJDRs21DvvvKMtW7bo559/1lNPPSVfX1/3dR599FHlyZNHrVu31tq1axUbG6vVq1fr+eef16FDh26ao3v37lqxYoW+/vprtkYAAACAxxjaAgAAIMu488479dNPP6l48eLq0KGDihYtqmbNmqlUqVL64YcfFBISIkl6++23VaRIEdWrV08dO3ZUnz59UtwNGxQUpDVr1uiOO+5Q27ZtVbZsWXXt2lXnz59P0523d955p+rUqaPSpUurZs2aGfb9AgAAIGtyWf/ezAsAAADIQgYNGqSxY8dq+fLlql279m15TsuyVKZMGT355JPq3bv3bXlOAAAAZB3saQsAAIAsbciQIYqMjNSPP/6omjVryssrY3/ZLCEhQbNnz9bhw4f1xBNPZOhzAQAAIGviTlsAAADAIJfLpTx58mjChAnq2LGj3XEAAADgQNxpCwAAABjEPREAAABIL96IDAAAAAAAAAAyEYa2AAAAAAAAAJCJMLQFAAAAAAAAgEyEoS0AAAAAAAAAZCIMbQEAAAAAAAAgE2FoCwAAAAAAAACZCENbAAAAAAAAAMhEGNoCAAAAAAAAQCbC0BYAAAAAAAAAMpH/B/rEaQ0o4+pSAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAGGCAYAAAAAW6PhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQqJJREFUeJzt3XeYVOXZP/DvALKIFMEOImhMFOyKBRtioohdI5bYW4r6WohR0Sgl9iT2gEYTNVZsJL76RmPvFbDEXlAQQWPFipT5/eHPTTag7uCuc2Q+n+va69rznDPnfGduPZPcPvucUrlcLgcAAAAAgEJoUe0AAAAAAAD8m6YtAAAAAECBaNoCAAAAABSIpi0AAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBaNoCAAAAABSIpi0AQI148MEHM3DgwCyxxBJp3bp1Fl988eywww554IEHvtF5R4wYkYsuumi28VdeeSWlUmmO++ZWc5yzFl100UUplUp55ZVXqh0FAIA50LQFAKgBZ599dtZbb7289tprOfXUU3Prrbfmd7/7XSZNmpT1118/55xzzlyf+8uatksssUQeeOCBbLHFFt8gefOfEwAAiqZVtQMAANC87rvvvhx66KHZfPPNM3r06LRq9e//Cbjzzjtnu+22yyGHHJLVVlst6623XpNdt66uLuuss06Tna+5zvl1Pvnkk7Rp0yalUulbvS4AALXLTFsAgHncSSedlFKplJEjRzZo2CZJq1atMmLEiJRKpZx88sn140OHDk2pVMq4ceOy/fbbp0OHDunYsWN22223/Otf/6o/rkePHnnqqady1113pVQqpVQqpUePHknmvJTBF+d94oknMnDgwHTs2DGdO3fOoEGDMmPGjDz33HPZbLPN0r59+/To0SOnnnpqg7xzOucX153Tz3/++f+jjz6arbfeOp07d06bNm2y2mqr5aqrrmpw/i+WDfjHP/6RffbZJ4ssskjatm2badOmzfGznTVrVo4//vgst9xymX/++bPgggtm5ZVXzplnnlnxZ/mFUaNGpU+fPllggQXSrl279O/fP+PGjZvtuMa8n+TzZTHWW2+9tGnTJl26dMngwYMzffr02Y4rlUoZOnTobOM9evTIXnvtNdtndMstt2TvvfdO586ds8ACC2SrrbbKyy+/PMfPCQCAymjaAgDMw2bOnJk77rgjvXv3zpJLLjnHY7p165Y11lgjt99+e2bOnNlg33bbbZdll10211xzTYYOHZq//vWv6d+/f33Tb/To0VlmmWWy2mqr5YEHHsgDDzyQ0aNHf22uHXfcMausskquvfba7L///jn99NNz2GGHZdttt80WW2yR0aNHZ+ONN86RRx6Z66677ivP9cV1v/i5/fbb07Vr1yy++OLp3LlzkuSOO+7Ieuutl/feey/nnntu/va3v2XVVVfNTjvtNMelHfbZZ5/MN998ueSSS3LNNddkvvnmm+O1Tz311AwdOjS77LJLbrzxxowaNSr77rtv3nvvvdmO/brPMklOPPHE7LLLLunVq1euuuqqXHLJJfnggw+ywQYb5Omnn64/rrHv5+mnn84Pf/jDvPfee7noooty7rnnZty4cTn++OO/8jNtjH333TctWrTI5ZdfnjPOOCMPP/xwNtpoozm+dwAAKlQGAGCeNWXKlHKS8s477/yVx+20007lJOU33nijXC6Xy0OGDCknKR922GENjrvsssvKScqXXnpp/dgKK6xQ7tu372znHD9+fDlJ+cILL6wf++K8v//97xscu+qqq5aTlK+77rr6senTp5cXWWSR8vbbb/+V5/xPM2bMKG+zzTbldu3alceMGVM/vvzyy5dXW2218vTp0xscv+WWW5aXWGKJ8syZM8vlcrl84YUXlpOU99hjjzme/79tueWW5VVXXfUrj2nsZzlhwoRyq1atyv/zP//T4LgPPvigvPjii5d33HHHit/PTjvtVJ5//vnLU6ZMqT9mxowZ5eWXX76cpDx+/Pj68STlIUOGzJa/e/fu5T333LN++4vPaLvttmtw3H333VdOUj7++OO/8vMAAODrmWkLAEDK5XKSzLZu66677tpge8cdd0yrVq1yxx13fKPrbbnllg22e/bsmVKplAEDBtSPtWrVKssuu2xeffXVRp/3oIMOyo033pirr746q6++epLkxRdfzLPPPlv/XmbMmFH/s/nmm2fy5Ml57rnnGpznxz/+caOut9Zaa+Xxxx/PAQcckJtvvjlTp0790mO/7rO8+eabM2PGjOyxxx4NMrZp0yZ9+/bNnXfeWfH7ueOOO/LDH/4wiy22WP11W7ZsmZ122qlR7++r/Pf7WXfdddO9e/dv/M8GAAAeRAYAME9beOGF07Zt24wfP/4rj3vllVfStm3b+uUEvrD44os32G7VqlUWWmihvP32298o139fp3Xr1mnbtm3atGkz2/hXNUL/0/HHH59zzz03f/rTn7LZZpvVj7/xxhtJksMPPzyHH374HF/71ltvNdheYoklGnXNwYMHZ4EFFsill16ac889Ny1btsyGG26YU045Jb17925w7Nd9ll/kXHPNNed4rRYtWlT8ft5+++3ZrjunLHPjy877Tf/ZAABA0xYAYJ7WsmXL9OvXLzfddFNee+21Oa5r+9prr2XMmDEZMGBAWrZs2WDflClT0rVr1/rtGTNm5O23385CCy3U7NkrcdFFF+XYY4/N0KFDs88++zTYt/DCCyf5vMG6/fbbz/H1yy23XIPt/55x/GVatWqVQYMGZdCgQXnvvfdy66235uijj07//v0zceLEtG3btv7Yr/ssv8h5zTXXpHv37l96zUrez0ILLZQpU6bMtn9OY3V1dXN84NqXNWG/7LzLLrvsl2YHAKBxNG0BAOZxgwcPzt///vcccMABGT16dIPG7MyZM/OLX/wi5XI5gwcPnu21l112WdZYY4367auuuiozZszIRhttVD9WV1eXTz75pFnfw1e56aabsv/++2efffbJkCFDZtu/3HLL5fvf/34ef/zxnHjiic2WY8EFF8wOO+yQSZMm5dBDD80rr7ySXr161e//us+yf//+adWqVV566aWvXJ6hkvfTr1+/XH/99XnjjTfql0iYOXNmRo0aNduxPXr0yBNPPNFg7Pbbb8+HH344x3NfdtllDXLef//9efXVV7Pffvt9ZSYAAL6epi0AwDxuvfXWyxlnnJFDDz0066+/fg466KAstdRSmTBhQv7whz/koYceyhlnnJF11113ttded911adWqVTbZZJM89dRTOfbYY7PKKqtkxx13rD9mpZVWypVXXplRo0ZlmWWWSZs2bbLSSit9K+9t/PjxGThwYJZZZpnsvffeefDBBxvsX2211VJXV5fzzjsvAwYMSP/+/bPXXnula9eueeedd/LMM89k7Nixufrqq+fq+ltttVVWXHHF9O7dO4ssskheffXVnHHGGenevXu+//3vNzj26z7LHj16ZPjw4TnmmGPy8ssvZ7PNNkunTp3yxhtv5OGHH84CCyyQYcOGJUmj38+vf/3rXH/99dl4441z3HHHpW3btvnDH/6Qjz76aLb3svvuu+fYY4/Ncccdl759++bpp5/OOeeck44dO87xvT/66KPZb7/9MnDgwEycODHHHHNMunbtmgMOOGCuPksAAP5N0xYAoAb8z//8T9Zcc838/ve/zy9/+cu8/fbb6dy5c9Zff/3ce++96dOnzxxfd91112Xo0KEZOXJkSqVSttpqq5xxxhlp3bp1/THDhg3L5MmTs//+++eDDz5I9+7d88orr3wr7+vVV1/Nhx9+mOeffz4bbLDBbPvHjx+fHj16pF+/fnn44Ydzwgkn5NBDD827776bhRZaKL169WrQgK5Uv379cu211+aCCy7I1KlTs/jii2eTTTbJsccem/nmm6/BsY35LAcPHpxevXrlzDPPzBVXXJFp06Zl8cUXz5prrpmf//znDa7bmPez4oor5tZbb80vf/nL7LnnnunUqVN23333/PjHP85Pf/rTBvl+9atfZerUqbnooovyu9/9LmuttVauuuqqbLPNNnN873/6059yySWXZOedd860adPSr1+/nHnmmbOtVwwAQOVK5S8eFQwAAP/f0KFDM2zYsPzrX/+qX0OVuTOvfZYXXXRR9t577zzyyCOzPWwNAICm0aLaAQAAAAAA+DdNWwAAAACAArE8AgAAAABAgZhpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgraod4JuYNWtWXn/99bRv3z6lUqnacQAAAAAAvlS5XM4HH3yQLl26pEWLL59P+51u2r7++uvp1q1btWMAAAAAADTaxIkTs+SSS37p/u9007Z9+/ZJPn+THTp0qHIaAAAAAIAvN3Xq1HTr1q2+r/llvtNN2y+WROjQoYOmLQAAAADwnfB1S716EBkAAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBaNoCAAAAABSIpi0AAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBtKp2AAAAAJpPj6NurHaEJvXKyVtUOwIANDszbQEAAAAACkTTFgAAAACgQDRtAQAAAAAKRNMWAAAAAKBANG0BAAAAAApE0xYAAAAAoEA0bQEAAAAACkTTFgAAAACgQDRtAQAAAAAKRNMWAAAAAKBAWlU7AAAAANSiHkfdWO0ITeaVk7eodgSAeYqZtgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgVW/aTpo0KbvttlsWWmihtG3bNquuumrGjBlT7VgAAAAAAFXRqpoXf/fdd7PeeuulX79++fvf/55FF100L730UhZccMFqxgIAAAAAqJqqNm1POeWUdOvWLRdeeGH9WI8ePaoXCAAAAACgyqq6PML111+f3r17Z+DAgVl00UWz2mqr5fzzz69mJAAAAACAqqpq0/bll1/OyJEj8/3vfz8333xzfv7zn+fggw/OX/7ylzkeP23atEydOrXBDwAAAADAvKSqyyPMmjUrvXv3zoknnpgkWW211fLUU09l5MiR2WOPPWY7/qSTTsqwYcO+7ZgAAAAAAN+aqs60XWKJJdKrV68GYz179syECRPmePzgwYPz/vvv1/9MnDjx24gJAAAAAPCtqepM2/XWWy/PPfdcg7Hnn38+3bt3n+PxdXV1qaur+zaiAQAAAABURVVn2h522GF58MEHc+KJJ+bFF1/M5Zdfnj/+8Y858MADqxkLAAAAAKBqqtq0XXPNNTN69OhcccUVWXHFFfOb3/wmZ5xxRnbddddqxgIAAAAAqJqqLo+QJFtuuWW23HLLascAAAAAACiEqs60BQAAAACgoarPtAUAgEr0OOrGakdoUq+cvEW1IwAAUDBm2gIAAAAAFEijZtquttpqKZVKjTrh2LFjv1EgAADgu2lemgVtBjQAUE2Natpuu+229b9/+umnGTFiRHr16pU+ffokSR588ME89dRTOeCAA5olJAAAAABArWhU03bIkCH1v++33345+OCD85vf/Ga2YyZOnNi06QAAAAAAakzFa9peffXV2WOPPWYb32233XLttdc2SSgAAAAAgFpVcdN2/vnnz7333jvb+L333ps2bdo0SSgAAAAAgFrVqOUR/tOhhx6aX/ziFxkzZkzWWWedJJ+vafvnP/85xx13XJMHBAAAAACoJRU3bY866qgss8wyOfPMM3P55ZcnSXr27JmLLrooO+64Y5MHBAAAAACoJRU3bZNkxx131KAFAAAAAGgGFa9pmyTvvfdeLrjgghx99NF55513kiRjx47NpEmTmjQcAAAAAECtqXim7RNPPJEf/ehH6dixY1555ZXst99+6dy5c0aPHp1XX301f/nLX5ojJwAAAABATah4pu2gQYOy11575YUXXkibNm3qxwcMGJC77767ScMBAAAAANSaipu2jzzySH72s5/NNt61a9dMmTKlSUIBAAAAANSqipu2bdq0ydSpU2cbf+6557LIIos0SSgAAAAAgFpVcdN2m222yfDhwzN9+vQkSalUyoQJE3LUUUflxz/+cZMHBAAAAACoJRU3bX/3u9/lX//6VxZddNF88skn6du3b5Zddtm0b98+J5xwQnNkBAAAAACoGa0qfUGHDh1y77335vbbb8/YsWMza9asrL766vnRj37UHPkAAAAAAGpKxU3bCRMmZLHFFsvGG2+cjTfeuH68XC5n4sSJWWqppZo0IAAAAABALal4eYQePXpk9dVXz0svvdRg/M0338zSSy/dZMEAAAAAAGpRxU3bJOnZs2fWWmut3HbbbQ3Gy+Vyk4QCAAAAAKhVFTdtS6VSRowYkV//+tfZYostctZZZzXYBwAAAADA3Kt4TdsvZtMedthhWX755bPLLrvkiSeeyHHHHdfk4QAAAAAAak3FTdv/NGDAgNx///3Zeuut8/DDDzdVJgAAAACAmlXx8gh9+/ZN69at67d79eqVhx9+OJ06dbKmLQAAAADAN1TxTNs77rhjtrHOnTvnrrvuapJAAAAAAAC1rFFN26lTp6ZDhw71v3+VL44DAAAAAKByjWradurUKZMnT86iiy6aBRdcMKVSabZjyuVySqVSZs6c2eQhAQAAAABqRaOatrfffns6d+6cZM7LIwAAAAAA0DQa1bTt27fvHH8HAAAAAKBpVfwgsiT59NNP88QTT+TNN9/MrFmzGuzbeuutG32eoUOHZtiwYQ3GFltssUyZMmVuYgEAAAAAfOdV3LS96aabsscee+Stt96abd/crGm7wgor5NZbb63fbtmyZaWRAAAAAADmGS0qfcFBBx2UgQMHZvLkyZk1a1aDn7l5CFmrVq2y+OKL1/8sssgiFZ8DAAAAAGBeUXHT9s0338ygQYOy2GKLNUmAF154IV26dMnSSy+dnXfeOS+//PKXHjtt2rRMnTq1wQ8AAAAAwLyk4qbtDjvskDvvvLNJLr722mvnL3/5S26++eacf/75mTJlStZdd928/fbbczz+pJNOSseOHet/unXr1iQ5AAAAAACKouI1bc8555wMHDgw99xzT1ZaaaXMN998DfYffPDBjT7XgAED6n9faaWV0qdPn3zve9/LxRdfnEGDBs12/ODBgxuMT506VeMWAAAAAJinVNy0vfzyy3PzzTdn/vnnz5133plSqVS/r1QqVdS0/W8LLLBAVlpppbzwwgtz3F9XV5e6urq5Pj8AAAAAQNFV3LT99a9/neHDh+eoo45KixYVr67wlaZNm5ZnnnkmG2ywQZOeFwAAAADgu6Lirutnn32WnXbaqUkatocffnjuuuuujB8/Pg899FB22GGHTJ06NXvuuec3PjcAAAAAwHdRxZ3XPffcM6NGjWqSi7/22mvZZZddstxyy2X77bdP69at8+CDD6Z79+5Ncn4AAAAAgO+aipdHmDlzZk499dTcfPPNWXnllWd7ENlpp53W6HNdeeWVlV4eAAAAAGCeVnHT9sknn8xqq62WJPnnP//ZYN9/PpQMAAAAAIDKVdy0veOOO5ojBwAAAAAAmYs1bQEAAAAAaD6Nmmm7/fbb56KLLkqHDh2y/fbbf+Wx1113XZMEAwAAAACoRY1q2nbs2LF+vdoOHTpYuxYAAAAAoJk0qml74YUX1v9+0UUXNVcWAAAAAICaV/GathtvvHHee++92canTp2ajTfeuCkyAQAAAADUrIqbtnfeeWc+++yz2cY//fTT3HPPPU0SCgAAAACgVjVqeYQkeeKJJ+p/f/rppzNlypT67ZkzZ+amm25K165dmzYdAAAAAECNaXTTdtVVV02pVEqpVJrjMgjzzz9/zj777CYNBwAAAABQaxrdtB0/fnzK5XKWWWaZPPzww1lkkUXq97Vu3TqLLrpoWrZs2SwhAQAAAABqRaObtt27d0+SzJo1q9nCAAAAAADUukY3bf/Tc889l7PPPjvPPPNMSqVSll9++Rx00EFZfvnlmzofAAAAAEBNaVHpC6655pqsuOKKGTNmTFZZZZWsvPLKGTt2bFZaaaVcffXVzZERAAAAAKBmVDzT9ogjjsjgwYMzfPjwBuNDhgzJkUcemYEDBzZZOAAAAACAWlPxTNspU6Zkjz32mG18t912y5QpU5okFAAAAABAraq4abvRRhvlnnvumW383nvvzQYbbNAkoQAAAAAAalXFyyNsvfXWOfLIIzNmzJiss846SZIHH3wwV199dYYNG5brr7++wbEAAAAAADRexU3bAw44IEkyYsSIjBgxYo77kqRUKmXmzJnfMB4AAAAAQG2puGk7a9as5sgBAAAAAEDmYk1bAAAAAACaT0VN2xkzZuS3v/1tVl999bRr1y7t27fP6quvnt/97neZPn16c2UEAAAAAKgZjV4e4ZNPPskmm2ySBx54ID/60Y+y4YYbplwu59lnn82RRx6Z66+/Pv/4xz/Spk2b5swLAAAAADBPa3TT9qSTTsrEiRMzbty4rLzyyg32Pf7449l6661z8sknZ+jQoU2dEQAAAACgZjR6eYQrr7wyp5122mwN2yRZZZVV8rvf/S6XX355k4YDAAAAAKg1jW7aTpgwIWuttdaX7l9nnXUyYcKEJgkFAAAAAFCrGt207dChQ958880v3T9lypR06NChSUIBAAAAANSqRjdt+/XrlxNPPPFL95988snZaKONmiITAAAAAEDNavSDyIYMGZK1114766yzTgYNGpTll18+SfL000/n9NNPz9NPP50HH3yw2YICAAAAANSCRjdte/XqlVtuuSX77rtvdt5555RKpSRJuVzO8ssvn5tvvjkrrLBCswUFAAAAAKgFjV4eIfn8YWNPPfVUxo4dmyuuuCJXXHFFxo4dm6effjrrrrvuNwpy0kknpVQq5dBDD/1G5wEAAAAA+C5r9Ezb/7Tqqqtm1VVXbbIQjzzySP74xz9m5ZVXbrJzAgAAAAB8F1U007Y5fPjhh9l1111z/vnnp1OnTtWOAwAAAABQVVVv2h544IHZYost8qMf/ajaUQAAAAAAqm6ulkdoKldeeWXGjh2bRx55pFHHT5s2LdOmTavfnjp1anNFAwAAAACoikbPtP3jH/+YKVOmNNmFJ06cmEMOOSSXXnpp2rRp06jXnHTSSenYsWP9T7du3ZosDwAAAABAETS6aXvFFVekR48eWXvttXPiiSfmqaee+kYXHjNmTN58882sscYaadWqVVq1apW77rorZ511Vlq1apWZM2fO9prBgwfn/fffr/+ZOHHiN8oAAAAAAFA0jV4e4Y477si7776bG2+8Mddff31OOeWULLzwwtlmm22y9dZbZ8MNN0yLFo1fIveHP/xhnnzyyQZje++9d5ZffvkceeSRadmy5WyvqaurS11dXaOvAQAAAADwXVPRmradOnXKbrvtlt122y2fffZZbr/99lx//fXZfffd8/HHH2eLLbbI1ltvnQEDBmSBBRb4ynO1b98+K664YoOxBRZYIAsttNBs4wAAAAAAtaLxU2P/S+vWrbPZZptlxIgRmThxYm6++eb06NEjv/nNb3Laaac1ZUYAAAAAgJpR0Uzbr9K7d+/07t07w4cPz/Tp0+fqHHfeeWdTxQEAAAAA+E6a65m2X2W++eZrjtMCAAAAAMzzmqVpCwAAAADA3NG0BQAAAAAoEE1bAAAAAIACmaum7T333JPddtstffr0yaRJk5Ikl1xySe69994mDQcAAAAAUGsqbtpee+216d+/f+aff/6MGzcu06ZNS5J88MEHOfHEE5s8IAAAAABALam4aXv88cfn3HPPzfnnn5/55puvfnzdddfN2LFjmzQcAAAAAECtqbhp+9xzz2XDDTecbbxDhw557733miITAAAAAEDNqrhpu8QSS+TFF1+cbfzee+/NMsss0yShAAAAAABqVcVN25/97Gc55JBD8tBDD6VUKuX111/PZZddlsMPPzwHHHBAc2QEAAAAAKgZrSp9wRFHHJH3338//fr1y6effpoNN9wwdXV1Ofzww3PQQQc1R0YAAAAAgJpRcdM2SU444YQcc8wxefrppzNr1qz06tUr7dq1a+psAAAAAAA1p+LlES6++OJ89NFHadu2bXr37p211lpLwxYAAAAAoIlU3LQ9/PDDs+iii2bnnXfODTfckBkzZjRHLgAAAACAmlRx03by5MkZNWpUWrZsmZ133jlLLLFEDjjggNx///3NkQ8AAAAAoKZU3LRt1apVttxyy1x22WV58803c8YZZ+TVV19Nv3798r3vfa85MgIAAAAA1Iy5ehDZF9q2bZv+/fvn3XffzauvvppnnnmmqXIBAAAAANSkimfaJsnHH3+cyy67LJtvvnm6dOmS008/Pdtuu23++c9/NnU+AAAAAICaUvFM21122SX/+7//m7Zt22bgwIG58847s+666zZHNgAAAACAmlNx07ZUKmXUqFHp379/WrX6RqsrAAAAAADwXyruul5++eXNkQMAAAAAgDSyaXvWWWflpz/9adq0aZOzzjrrK489+OCDmyQYAAAAAEAtalTT9vTTT8+uu+6aNm3a5PTTT//S40qlkqYtAAAAAMA30Kim7fjx4+f4OwAAAAAATatFtQMAAAAAAPBvFT+ILElee+21XH/99ZkwYUI+++yzBvtOO+20JgkGAAAAAFCLKm7a3nbbbdl6662z9NJL57nnnsuKK66YV155JeVyOauvvnpzZAQAAAAAqBkVL48wePDg/PKXv8w///nPtGnTJtdee20mTpyYvn37ZuDAgc2REQAAAACgZlTctH3mmWey5557JklatWqVTz75JO3atcvw4cNzyimnNHlAAAAAAIBaUnHTdoEFFsi0adOSJF26dMlLL71Uv++tt95qumQAAAAAADWo4jVt11lnndx3333p1atXtthii/zyl7/Mk08+meuuuy7rrLNOc2QEAAAAAKgZFc+0Pe2007L22msnSYYOHZpNNtkko0aNSvfu3fOnP/2ponONHDkyK6+8cjp06JAOHTqkT58++fvf/15pJAAAAACAeUbFM22XWWaZ+t/btm2bESNGzPXFl1xyyZx88slZdtllkyQXX3xxttlmm4wbNy4rrLDCXJ8XAAAAAOC7quKmbVPaaqutGmyfcMIJGTlyZB588EFNWwAAAACgJjW6abv00kunVCp95TGlUqnBg8kqMXPmzFx99dX56KOP0qdPnzkeM23atPqHoCXJ1KlT5+paAAAAAABF1eim7aGHHvql+1555ZWcd955DRqqjfXkk0+mT58++fTTT9OuXbuMHj06vXr1muOxJ510UoYNG1bxNQAAAAAAvisa3bQ95JBDZht755138pvf/CYjR47M2muvnVNOOaXiAMstt1wee+yxvPfee7n22muz55575q677ppj43bw4MEZNGhQ/fbUqVPTrVu3iq8JAAAAAFBUc7Wm7SeffJLTTjstv/3tb9OjR49cd9112XzzzecqQOvWresfRNa7d+888sgjOfPMM3PeeefNdmxdXV3q6urm6joAAAAAAN8FFTVtZ86cmfPPPz/Dhg1LmzZtcvbZZ2e33Xb72rVuK1Eul+dqmQUAAAAAgHlBo5u2V111VX7961/n/fffz9FHH51f/OIXad269Te6+NFHH50BAwakW7du+eCDD3LllVfmzjvvzE033fSNzgsAAAAA8F3V6KbtzjvvnPnnnz+77LJLXn311Rx11FFzPO60005r9MXfeOON7L777pk8eXI6duyYlVdeOTfddFM22WSTRp8DAAAAAGBe0uim7YYbbphSqZSXXnrpS4+pdJmEP/3pTxUdDwAAAAAwr2t00/bOO+9sxhgAAAAAACRJi2oHAAAAAADg3zRtAQAAAAAKRNMWAAAAAKBANG0BAAAAAApE0xYAAAAAoECatGk7YcKEzJw5sylPCQAAAABQU5q0adujR4/06tUr1113XVOeFgAAAACgZrRqypPdcccdGT9+fK655ppsv/32TXlqAAAAAICa0KRN2759+6Zv377Za6+9mvK0AAAAAAA1Y66btm+++Waee+65lEql/OAHP8iiiy7alLkAAAAAAGpSxWvaTp06Nbvvvnu6du2avn37ZsMNN0zXrl2z22675f3332+OjAAAAAAANaPipu1+++2Xhx56KDfccEPee++9vP/++7nhhhvy6KOPZv/992+OjAAAAAAANaPi5RFuvPHG3HzzzVl//fXrx/r375/zzz8/m222WZOGAwAAAACoNRXPtF1ooYXSsWPH2cY7duyYTp06NUkoAAAAAIBaVXHT9te//nUGDRqUyZMn149NmTIlv/rVr3Lsscc2aTgAAAAAgFpT8fIII0eOzIsvvpju3btnqaWWSpJMmDAhdXV1+de//pXzzjuv/tixY8c2XVIAAAAAgBpQcdN22223bYYYAAAAAAAkc9G0HTJkSHPkAAAAAAAgc7GmLQAAAAAAzafimbYtWrRIqVT60v0zZ878RoEAAAAAAGpZxU3b0aNHN9iePn16xo0bl4svvjjDhg1rsmAAAAAAALWo4qbtNttsM9vYDjvskBVWWCGjRo3Kvvvu2yTBAAAAAABqUZOtabv22mvn1ltvbarTAQAAAADUpCZp2n7yySc5++yzs+SSSzbF6QAAAAAAalbFyyN06tSpwYPIyuVyPvjgg7Rt2zaXXnppk4YDAAAAAKg1FTdtTz/99AZN2xYtWmSRRRbJ2muvnU6dOjVpOAAAAACAWlNx03avvfZqhhgAAAAAACSNbNo+8cQTjT7hyiuvPNdhAAAAAABqXaOatquuumpKpVLK5XKSNFge4b/NnDmzaZIBAAAAANSgFo05aPz48Xn55Zczfvz4XHfddVl66aUzYsSIjBs3LuPGjcuIESPyve99L9dee21FFz/ppJOy5pprpn379ll00UWz7bbb5rnnnpurNwIAAAAAMC9o1Ezb7t271/8+cODAnHXWWdl8883rx1ZeeeV069Ytxx57bLbddttGX/yuu+7KgQcemDXXXDMzZszIMccck0033TRPP/10Flhggca/CwAAAACAeUTFDyJ78skns/TSS882vvTSS+fpp5+u6Fw33XRTg+0LL7wwiy66aMaMGZMNN9yw0mgAAAAAAN95jVoe4T/17Nkzxx9/fD799NP6sWnTpuX4449Pz549v1GY999/P0nSuXPnb3QeAAAAAIDvqopn2p577rnZaqut0q1bt6yyyipJkscffzylUik33HDDXAcpl8sZNGhQ1l9//ay44opzPGbatGmZNm1a/fbUqVPn+noAAAAAAEVUcdN2rbXWyvjx43PppZfm2WefTblczk477ZSf/OQn32gd2oMOOihPPPFE7r333i895qSTTsqwYcPm+hoAAAAAAEVXcdM2Sdq2bZuf/vSnTRbif/7nf3L99dfn7rvvzpJLLvmlxw0ePDiDBg2q3546dWq6devWZDkAAAAAAKqt4jVtk+SSSy7J+uuvny5duuTVV19Nkpx++un529/+VtF5yuVyDjrooFx33XW5/fbb5/iAs/9UV1eXDh06NPgBAAAAAJiXVNy0HTlyZAYNGpQBAwbk3XffzcyZM5MknTp1yhlnnFHRuQ488MBceumlufzyy9O+fftMmTIlU6ZMySeffFJpLAAAAACAeULFTduzzz47559/fo455pi0avXv1RV69+6dJ598sqJzjRw5Mu+//3422mijLLHEEvU/o0aNqjQWAAAAAMA8oeI1bcePH5/VVltttvG6urp89NFHFZ2rXC5XenkAAAAAgHlaxTNtl1566Tz22GOzjf/9739Pr169miITAAAAAEDNqnim7a9+9asceOCB+fTTT1Mul/Pwww/niiuuyEknnZQLLrigOTICAAAAANSMipu2e++9d2bMmJEjjjgiH3/8cX7yk5+ka9euOfPMM7Pzzjs3R0YAAAAAgJpRcdM2Sfbff//sv//+eeuttzJr1qwsuuiiTZ0LAAAAAKAmVbymbZLMmDEjt956a6699trMP//8SZLXX389H374YZOGAwAAAACoNRXPtH311Vez2WabZcKECZk2bVo22WSTtG/fPqeeemo+/fTTnHvuuc2REwAAAACgJlQ80/aQQw5J79698+6779bPsk2S7bbbLrfddluThgMAAAAAqDUVz7S99957c99996V169YNxrt3755JkyY1WTAAAAAAgFpU8UzbWbNmZebMmbONv/baa2nfvn2ThAIAAAAAqFUVN2032WSTnHHGGfXbpVIpH374YYYMGZLNN9+8KbMBAAAAANScipdHOP3009OvX7/06tUrn376aX7yk5/khRdeyMILL5wrrriiOTICAAAAANSMipu2Xbp0yWOPPZYrrrgiY8eOzaxZs7Lvvvtm1113bfBgMgAAAAAAKldx0zZJ5p9//uyzzz7ZZ599mjoPAAAAAEBNm6um7XPPPZezzz47zzzzTEqlUpZffvkcdNBBWX755Zs6HwAAAABATam4aXvNNddkl112Se/evdOnT58kyYMPPpiVVlopl19+eQYOHNjkIQEAqqHHUTdWO0KTeeXkLaodAQAAaKSKm7ZHHHFEBg8enOHDhzcYHzJkSI488khNWwAAAACAb6Dipu2UKVOyxx57zDa+22675be//W2ThAIAAAAAis9fpzWPFpW+YKONNso999wz2/i9996bDTbYoElCAQAAAADUqopn2m699dY58sgjM2bMmKyzzjpJPl/T9uqrr86wYcNy/fXXNzgWAAAAAIDGq7hpe8ABByRJRowYkREjRsxxX5KUSqXMnDnzG8YDgNrgT4oAAAD4QsVN21mzZjVHDgAAAAAAMhdr2gIAAAAA0HwaPdP2oYceyjvvvJMBAwbUj/3lL3/JkCFD8tFHH2XbbbfN2Wefnbq6umYJCnPiz4kBAAAAmNc0eqbt0KFD88QTT9RvP/nkk9l3333zox/9KEcddVT+93//NyeddFKzhAQAAAAAqBWNbto+9thj+eEPf1i/feWVV2bttdfO+eefn0GDBuWss87KVVdd1SwhAQAAAABqRaObtu+++24WW2yx+u277rorm222Wf32mmuumYkTJzZtOgAAAACAGtPopu1iiy2W8ePHJ0k+++yzjB07Nn369Knf/8EHH2S++eZr+oQAAAAAADWk0Q8i22yzzXLUUUfllFNOyV//+te0bds2G2ywQf3+J554It/73veaJWQReOAVAAAAAPBtaHTT9vjjj8/222+fvn37pl27drn44ovTunXr+v1//vOfs+mmmzZLSAAAAACAWtHopu0iiyySe+65J++//37atWuXli1bNth/9dVXp127dk0eEAAAAACgljS6afuFjh07znG8c+fO3zgMAAAAAECta/SDyJrD3Xffna222ipdunRJqVTKX//612rGAQAAAACouqo2bT/66KOsssoqOeecc6oZAwAAAACgMCpeHqEpDRgwIAMGDKhmBAAAAACAQqlq07ZS06ZNy7Rp0+q3p06dmiR57LHHmv0haNOmvNis5/82jR07ttoRmoy6FNcWZ91T7QhN5saDN6h2BGqA+1kxqUsxzUt1SdSmqNSluNSmmOalugCVcS+rzIcfftio40rlcrnczFkapVQqZfTo0dl2222/9JihQ4dm2LBh314oAAAAAIAm9v7776dDhw5fuv871bSd00zbbt265a677mr2mbZmDRaTuhSX2kBl/DtTTOpSTPNSXRK1KSp1KS61KaZ5qS5AZdzLKvPhhx+mb9++X9u0/U4tj1BXV5e6urrZxlddddWvfJNNcu3FJzfr+b9Nq6++erUjNBl1KS61KaYeR91Y7QhN5pWTt6h2hCbl35liUpdimpfqkqhNUalLcalNMc1LdQEq415WmS+We/06LZo5BwAAAAAAFajqTNsPP/wwL77478WKx48fn8ceeyydO3fOUkstVcVkAAAAAADVUdWm7aOPPpp+/frVbw8aNChJsueee+aiiy6qUioAAAAAgOqpatN2o402SkGegwYAAAAAUAjfqQeRAQAAAFCbPFiZWuJBZAAAAAAABaJpCwAAAABQIJq2AAAAAAAFYk1bAAAAgP/PuqlAEZhpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIFVv2o4YMSJLL7102rRpkzXWWCP33HNPtSMBAAAAAFRNVZu2o0aNyqGHHppjjjkm48aNywYbbJABAwZkwoQJ1YwFAAAAAFA1VW3annbaadl3332z3377pWfPnjnjjDPSrVu3jBw5spqxAAAAAACqpmpN288++yxjxozJpptu2mB80003zf3331+lVAAAAAAA1dWqWhd+6623MnPmzCy22GINxhdbbLFMmTJljq+ZNm1apk2bVr/9/vvvJ0mmTp3afEH/v1nTPm72a3xbvo3P69uiLsWlNsWkLsWlNsWkLsU0L9UlUZuiUpfiUptiUpdimpfqkqhNUanL3F2jXC5/5XGl8tcd0Uxef/31dO3aNffff3/69OlTP37CCSfkkksuybPPPjvba4YOHZphw4Z9mzEBAAAAAJrUxIkTs+SSS37p/qrNtF144YXTsmXL2WbVvvnmm7PNvv3C4MGDM2jQoPrtWbNm5Z133slCCy2UUqnUrHmb29SpU9OtW7dMnDgxHTp0qHYc/oPaFJO6FJfaFJO6FJfaFJO6FJfaFJO6FJO6FJfaFJO6FNe8VJtyuZwPPvggXbp0+crjqta0bd26ddZYY43ccsst2W677erHb7nllmyzzTZzfE1dXV3q6uoajC244ILNGfNb16FDh+/8P3zzKrUpJnUpLrUpJnUpLrUpJnUpLrUpJnUpJnUpLrUpJnUprnmlNh07dvzaY6rWtE2SQYMGZffdd0/v3r3Tp0+f/PGPf8yECRPy85//vJqxAAAAAACqpqpN25122ilvv/12hg8fnsmTJ2fFFVfM//3f/6V79+7VjAUAAAAAUDVVbdomyQEHHJADDjig2jGqrq6uLkOGDJlt+QeqT22KSV2KS22KSV2KS22KSV2KS22KSV2KSV2KS22KSV2KqxZrUyqXy+VqhwAAAAAA4HMtqh0AAAAAAIB/07QFAAAAACgQTVsAAAAAgALRtAUAAAAAKBBNWwAAAJhHjR8/PjNmzKh2DAAqpGlbQC+99FI23njjaseoWZMnT86ll16a//u//8tnn33WYN9HH32U4cOHVylZbbvlllsyZMiQ3H777UmSu+++OwMGDMjGG2+cCy+8sMrpmBP3supyLysm97LvJvez6nEvKy73s++O5ZZbLi+88EK1Y/AVfM9Uj++Z4vI9k5TK5XK52iFo6PHHH8/qq6+emTNnVjtKzXnkkUey6aabZtasWZk+fXqWXHLJjB49OiussEKS5I033kiXLl3U5lt26aWXZu+9987KK6+c559/PmeffXYOO+yw7LDDDimXy7nkkkty2WWXZYcddqh2VP6De1n1uJcVk3vZd5f7WXW4lxWX+1kxbb/99nMc/9vf/paNN9447du3T5Jcd91132YsGsH3THX4niku3zOfa1XtALXorLPO+sr9kyZN+paS8N+OPvrobL/99jn//PPz0Ucf5aijjkrfvn1zyy23ZLXVVqt2vJr1+9//Pr///e9z8MEH57bbbstWW22VE044IYcddliSpFevXjnjjDPm+Rt20biXFZd7WTG5lxWX+1kxuZcVl/tZMf31r3/NhhtumKWXXnq2fe3atUvHjh2rkIrE90xR+Z4pLt8znzPTtgpatGiRJZZYIq1bt57j/s8++yxTpkzxX3OqoHPnznnwwQfzgx/8oH7s1FNPzcknn5ybb745Sy21lP/SVgXt2rXLk08+Wf8/QFu3bp1HH300K6+8cpLkueeey3rrrZe33nqrmjFrjntZcbmXFZN7WXG5nxWTe1lxuZ8V05VXXplf/epXGT58ePbee+/68fnmmy+PP/54evXqVcV0tc33TDH5niku3zOfM9O2Crp3755TTjklO+644xz3P/bYY1ljjTW+5VR84dNPP22wfcQRR6RFixbZdNNN8+c//7lKqWrbfPPN12B9obq6urRr165+u3Xr1vnkk0+qEa2muZcVm3tZ8biXFZf7WXG5lxWT+1kx7bzzzunTp09222233HDDDbngggvSqVOnascivmeKzPdMMfme+ZwHkVXBGmuskTFjxnzp/lKpFBOgq2PFFVfM/fffP9v44YcfnqOPPjq77LJLFVKx7LLL5tlnn63fnjRpUoM/+3rppZey5JJLViNaTXMvKy73smJyLysu97Nici8rLvez4urevXvuuuuurLjiillllVVy8803p1QqVTtWzfM9U0y+Z4rL98znzLStguHDh+fjjz/+0v29evXK+PHjv8VEfGGPPfbIXXfdlZ///Oez7fvVr36VcrmckSNHViFZbTv66KMbzBLo0KFDg/2PPvrol/5Xa5qPe1lxuZcVk3tZcbmfFZN7WXG5nxVbixYtMmzYsGy66abZfffd/Wl3AfieKSbfM8Xle+Zz1rQFAACAedCHH36Yl156KT179vzS9VQBKCZNWwAAAACAArGmbQEdffTR2WeffaodgzlQm2JSl2JSl+JSm2JSl+JSm2JSl+JSm2JSl+JSm2JSl+KqldpY07aAJk2alIkTJ1Y7BnOgNsWkLsWkLsWlNsWkLsWlNsWkLsWlNsWkLsWlNsWkLsVVK7WxPAIAAAAAQIFYHgEAAAAAoEA0bQvojTfeyPDhw6sdgzlQm2JSl+p67bXX8uGHH842Pn369Nx9991VSMQX1KaY1KWY3n777dxxxx155513kiRvvfVWTjnllAwfPjzPPPNMldPVLnUpLrUpJnX5bllmmWXywgsvVDsG/0VdiqvWamN5hAJ6/PHHs/rqq2fmzJnVjsJ/UZtiUpfqmDx5crbZZpuMGTMmpVIpu+66a/7whz+kXbt2ST5vpnfp0kVdqkBtikldiuvhhx/OpptumqlTp2bBBRfMLbfckoEDB6ZVq1Ypl8uZNGlS7r333qy++urVjlpT1KW41KaY1KW4zjrrrDmODxo0KEcccUQWX3zxJMnBBx/8bcaqeepSXGrzOU3bKnjiiSe+cv+zzz6bXXbZxf9pqwK1KSZ1KaY999wzzz//fM4+++y89957GTx4cMrlcm655ZZ06tQpb7zxRpZYYonMmjWr2lFrjtoUk7oU1yabbJIePXrktNNOy3nnnZczzzwzm222Wc4///wkyX777Ze33347o0ePrnLS2qIuxaU2xaQuxdWiRYt07do1rVo1fBb8q6++mi5dumS++eZLqVTKyy+/XKWEtUldikttPqdpWwUtWrRIqVTKnD76L8ZLpZIGVBWoTTGpSzF17do1o0ePzlprrZUkmTZtWnbaaae8+uqrue222zJ9+nSzBqtEbYpJXYqrc+fOue+++9KzZ89Mnz49bdq0yQMPPFBfq3HjxmWrrbbKa6+9VuWktUVdikttikldiutnP/tZHn744Vx++eXp2bNn/fh8882Xxx9/PL169apiutqlLsWlNp+zpm0VLLTQQjn//PMzfvz42X5efvnl3HDDDdWOWLPUppjUpZjef//9dOrUqX67rq4u11xzTXr06JF+/frlzTffrGK62qY2xaQuxfXZZ59l/vnnT/L5/xlo27ZtFl544fr9Cy20UN5+++1qxatZ6lJcalNM6lJc5513XoYMGZL+/fvnnHPOqXYc/j91KS61+ZymbRWsscYaef3119O9e/c5/nTt2nWOMwppfmpTTOpSTMsss8xsS1e0atUqV199dZZZZplsueWWVUqG2hSTuhRXt27dGvx53ZVXXpkllliifnvy5MkNGh98O9SluNSmmNSl2Lbddts88MADGT16dAYMGJApU6ZUOxJRlyJTG03bqvjZz36WHj16fOn+pZZaKhdeeOG3F4h6alNM6lJMAwYMyB//+MfZxr9oQq266qqa6VWiNsWkLsW18847N5jpvMUWW9TPVkuS66+/vv7Pi/n2qEtxqU0xqUvxde3aNbfeems23HDDrLbaar73C0JdiqvWa2NNWwDmyowZM/Lxxx+nQ4cOc9w/c+bMvPbaa+nevfu3nAy1KSZ1+e76+OOP07Jly9TV1VU7Cv9BXYpLbYpJXYpl7Nixueeee7LHHns0WD6J6lKX4qrF2mjaVtGgQYMafexpp53WjEn4b2pTTOpSTOpSXGpTTOpSXGpTTOpSXGpTTOpSXGpTTOpSXLVem1bVDlDLxo0bl7Fjx2bGjBlZbrnlkiTPP/98WrZsmdVXX73+uFKpVK2INUttikldikldikttikldikttikldikttikldikttikldiqvWa6NpW0VbbbVV2rdvn4svvrh+ave7776bvffeOxtssEF++ctfVjlh7VKbYlKXYlKX4lKbYlKX4lKbYlKX4lKbYlKX4lKbYlKX4qr52pSpmi5dupT/+c9/zjb+5JNPlpdYYokqJOILalNM6lJM6lJcalNM6lJcalNM6lJcalNM6lJcalNM6lJctV6bFtVuGteyqVOn5o033pht/M0338wHH3xQhUR8QW2KSV2KSV2KS22KSV2KS22KSV2KS22KSV2KS22KSV2Kq9Zro2lbRdttt1323nvvXHPNNXnttdfy2muv5Zprrsm+++6b7bffvtrxapraFJO6FJO6FJfaFJO6FJfaFJO6FJfaFJO6FJfaFJO6FFfN16baU31r2UcffVT+xS9+Ua6rqyu3aNGi3KJFi3Lr1q3Lv/jFL8offvhhtePVNLUpJnUpJnUpLrUpJnUpLrUpJnUpLrUpJnUpLrUpJnUprlqvTalcLper3TiudR999FFeeumllMvlLLvssllggQWqHYn/T22KSV2KSV2KS22KSV2KS22KSV2KS22KSV2KS22KSV2Kq1Zro2kLAAAAAFAg1rQFAAAAACgQTVsAAAAAgALRtAUAAAAAKBBNWwAAAACAAtG0BQAAAAAoEE1bAADmKRMnTsy+++6bLl26pHXr1unevXsOOeSQvP3229WOBgAAjaJpCwDAPOPll19O79698/zzz+eKK67Iiy++mHPPPTe33XZb+vTpk3feeafZrv3ZZ58127kBAKgtmrYAAMwzDjzwwLRu3Tr/+Mc/0rdv3yy11FIZMGBAbr311kyaNCnHHHNMkqRUKuWvf/1rg9cuuOCCueiii+q3J02alJ122imdOnXKQgstlG222SavvPJK/f699tor2267bU466aR06dIlP/jBDzJ8+PCstNJKs+VaY401ctxxxzXHWwYAYB6kaQsAwDzhnXfeyc0335wDDjgg888/f4N9iy++eHbdddeMGjUq5XL5a8/18ccfp1+/fmnXrl3uvvvu3HvvvWnXrl0222yzBjNqb7vttjzzzDO55ZZbcsMNN2SfffbJ008/nUceeaT+mCeeeCLjxo3LXnvt1WTvFQCAeVuragcAAICm8MILL6RcLqdnz55z3N+zZ8+8++67+de//vW157ryyivTokWLXHDBBSmVSkmSCy+8MAsuuGDuvPPObLrppkmSBRZYIBdccEFat25d/9r+/fvnwgsvzJprrln/ur59+2aZZZb5pm8RAIAaYaYtAAA14YsZtv/ZYP0yY8aMyYsvvpj27dunXbt2adeuXTp37pxPP/00L730Uv1xK6200mzn23///XPFFVfk008/zfTp03PZZZdln332ado3AwDAPM1MWwAA5gnLLrtsSqVSnn766Wy77baz7X/22WezyCKLZMEFF0ypVJptmYTp06fX/z5r1qysscYaueyyy2Y7zyKLLFL/+wILLDDb/q222ip1dXUZPXp06urqMm3atPz4xz/+Bu8MAIBao2kLAMA8YaGFFsomm2ySESNG5LDDDmuwru2UKVNy2WWX5cADD0zyeeN18uTJ9ftfeOGFfPzxx/Xbq6++ekaNGpVFF100HTp0qChHq1atsueee+bCCy9MXV1ddt5557Rt2/YbvjsAAGqJ5REAAJhnnHPOOZk2bVr69++fu+++OxMnTsxNN92UTTbZJD/4wQ9y3HHHJUk23njjnHPOORk7dmweffTR/PznP898881Xf55dd901Cy+8cLbZZpvcc889GT9+fO66664ccsghee211742x3777Zfbb789f//73y2NAABAxTRtAQCYZ3z/+9/PI488kmWWWSY77rhjunfvngEDBuQHP/hB7rvvvrRr1y5J8vvf/z7dunXLhhtumJ/85Cc5/PDDG8yGbdu2be6+++4stdRS2X777dOzZ8/ss88++eSTTxo18/b73/9+1l133Sy33HJZe+21m+39AgAwbyqV/3sxLwAAmIcMGTIkp512Wv7xj3+kT58+38o1y+Vyll9++fzsZz/LoEGDvpVrAgAw77CmLQAA87Rhw4alR48eeeihh7L22munRYvm/WOzN998M5dcckkmTZqUvffeu1mvBQDAvMlMWwAAaEKlUikLL7xwzjzzzPzkJz+pdhwAAL6DzLQFAIAmZE4EAADflAeRAQAAAAAUiKYtAAAAAECBaNoCAAAAABSIpi0AAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBaNoCAAAAABTI/wNLhnrjaNi6TQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -1002,13 +1002,13 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "4ee5fc7c", "metadata": {}, "outputs": [ { "data": { - "image/png": "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n332mY4eParRo0frt99+y9oPxIasLvLeeOMN9e/fX/Pnz9eePXt04MABix8AAAAA/z0BAQHau3evGjZsqDfffFOVKlVSaGio1q9fb17gpFq1apo6daree+89VapUSQsXLtTEiRMtxilbtqzWrl2r/fv3q2bNmgoJCdH333+vfPkyNwnRZDIpMjJS9erVU48ePVS2bFm99NJLOnXqlAoXLizp71X+R40apbfffltBQUE6ffq0+vbt+8Bx700HzWwOW7J6dc37HzQu/f1B5qWFV1hdMzVW1/wfVte8D6trAgCQpR60uiJsZ8eOHQoJCdHFixdVqFChbHsfm6yuefLkSeuTAgAAAEAulJSUpFOnTun9999X1apVs7XAyypWF3n3HlQOAAAAAHndwYMHVbt2bVWrVk0LFiywdZxMyfkTSgEAAADARqpVq6bbt2/bOoZVrF54BQAAAACQc3ElDwCA7DbG09YJchYWbAKAbEWRBwDIFqzK+z+nWBwPAPAIMV0TAAAAAPKQLC3yAgIC1LNnT507dy4rhwUAAAAAZFKWFnldu3ZVSkqK6tWrl5XDAgAAAAAyKUvvyRszZkxWDgcAAAAAecr8+fM1YMAAXbt2Ldve46GLvDt37ujkyZMqVaqU8uVj/RYAAAAgWz3qlXofYiXcbt266dq1a/ruu+8y1d9kMunbb79VmzZtrH6vR+lRFGZZyerpmrdv31bPnj3l4uKixx9/XDExMZKksLAwTZo0KcsDAgAAAMCD3L1796H2S05OVkpKShansT2ri7yhQ4dq//792rhxo5yc/rcm9DPPPKOlS5dmaTgAAAAAuVODBg0UFhamwYMHq2DBgvLz87O4vatkyZKSpLZt28pkMplfS9KKFSsUFBQkJycnBQYGauzYsUpKSjJvN5lMmjVrllq3bi1XV1e988472rhxo0wmk1atWqWqVavKyclJtWrV0q+//mreb/78+fLy8tLKlStVsWJFOTo66vTp07pz544GDx6sYsWKydXVVbVq1dLGjRslSRs3blT37t11/fp1mUwmmUwm83E8aL9/vmeJEiXk4uKitm3b6vLly1n5MafJ6iLvu+++0/Tp0/XUU0/JZDKZ2ytWrKg//vgjS8MBAAAAyL0+//xzubq6aufOnZo8ebLGjRundevWSZJ27dolSZo3b55iY2PNr9esWaNOnTopLCxMhw4d0ieffKL58+drwoQJFmOPHj1arVu31q+//qoePXqY29966y1NmTJFu3btkq+vr1q1amVxpe/27duaOHGi5syZo99++02+vr7q3r27tm7dqiVLlujAgQN64YUX1LRpUx07dky1a9dWRESEPDw8FBsbq9jYWA0aNEiSHrifJO3cuVM9evRQv379tG/fPjVs2FDvvPNO9n3g/5/VN9NdvHhRvr6+qdpv3bplUfQBAAAA+G+rUqWKRo8eLUkqU6aMpk+frvXr1ys0NFQ+Pj6SJC8vL/n5+Zn3mTBhgoYMGaKuXbtKkgIDAzV+/HgNHjzYPJYkdejQwaK4O3nypKS/i7/Q0FBJfxeZjz32mL799lu9+OKLkv6e2jljxgxVrVpVkvTHH39o8eLFOnv2rIoWLSpJGjRokFavXq158+bp3Xfflaenp0wmk0XOzOz30UcfqUmTJhoyZIgkqWzZstq2bZtWr16dVR9xmqwu8p544gmtWrVKb7zxhiSZC7tPP/1UISEhWZsOAAAAQK5VpUoVi9dFihTRhQsXHrjPnj17tGvXLosrd8nJyUpISNDt27fl4uIiSQoODk5z/3/WJAULFlS5cuV0+PBhc5uDg4NFrr1798owDJUtW9ZinMTERHl7e6ebMzP7HT58WG3btk2VL8cVeRMnTlTTpk116NAhJSUl6aOPPtJvv/2m7du3a9OmTdmREQAAAEAulD9/fovXJpMpw4VOUlJSNHbsWLVr1y7Vtn+uCeLq6prpHP+ccejs7GzxOiUlRfb29tqzZ4/s7e0t9nNzc3tgzoz2Mwwj0xmzktVFXu3atbV161ZNmTJFpUqV0tq1a1WjRg1t375dlStXzo6MAAAAAPKg/PnzKzk52aKtRo0aOnLkiEqXLv1QY+7YsUMlSpSQJF29elVHjx5V+fLl0+1fvXp1JScn68KFC6pbt26afRwcHFLlzMx+FStW1I4dO1Lly24P9YC7ypUr6/PPP8/qLAAAAAD+Q0qWLKn169erTp06cnR0VIECBTRq1Ci1aNFCxYsX1wsvvCA7OzsdOHBAv/76a6YWLRk3bpy8vb1VuHBhDR8+XIUKFXrgc/jKli2rjh07qkuXLvrggw9UvXp1Xbp0SRs2bFDlypXVvHlzlSxZUjdv3tT69etVtWpVubi4ZGq/sLAw1a5dW5MnT1abNm20du3abJ+qKT3E6pr3XLhwQQcPHtSBAwcsfgAAAAAgMz744AOtW7dOxYsXV/Xq1SVJTZo00cqVK7Vu3To98cQTevLJJzV16lT5+/tnasxJkyapf//+CgoKUmxsrH744Qc5ODg8cJ958+apS5cuevPNN1WuXDm1atVKO3fuVPHixSX9PZuxT58+at++vXx8fDR58uRM7ffkk09qzpw5+r//+z9Vq1ZNa9eu1YgRIx7248o0k2HlRNE9e/aoa9euOnz4cKo5piaTKdVlzNwoPj5enp6eun79ujw8PGwdJ0coOWSVrSPkGKecOtg6Qs4y5rqtEyCH4rzxP5w37sN5A3ighIQEnTx5UgEBARb3oOHBNm7cqIYNG+rq1avy8vKydZyH9qA//8zWKVZfyevevbt56c8TJ07o5MmT5p8TJ05YfRAzZswwH0BQUJA2b978wP6bNm2yeDDirFmzUvW5du2aXnvtNRUpUkROTk6qUKGCIiMjrc4GAAAAALmN1ffknTx5UsuXL3/oGyH/aenSpRowYIBmzJihOnXq6JNPPlGzZs106NAh882S97938+bN1bt3b3355ZfaunWr+vXrJx8fHz333HOS/n7qfGhoqHx9ffXNN9/oscce05kzZ+Tu7v6v8wIAAABATmd1kff0009r//79WVLkTZ06VT179lSvXr0kSREREVqzZo1mzpypiRMnpuo/a9YslShRQhEREZKkChUqaPfu3ZoyZYq5yPvss8905coVbdu2zbxka2bn7wIAAADInRo0aGCzRxbkNFYXeXPmzFHXrl118OBBVapUKdWzL1q1apWpce7cuaM9e/aYn/5+T+PGjbVt27Y099m+fbsaN25s0dakSRPNnTtXd+/eVf78+fXDDz8oJCREr732mr7//nv5+PioQ4cOevvtt1M9v+KexMREJSYmml/Hx8dn6hgAAAAAIKexusjbtm2btmzZoh9//DHVNmsWXrl06ZKSk5NVuHBhi/bChQsrLi4uzX3i4uLS7J+UlKRLly6pSJEiOnHihDZs2KCOHTsqMjJSx44d02uvvaakpCSNGjUqzXEnTpyosWPHZio3AAAAAORkVi+8EhYWps6dOys2NlYpKSkWPw+zsuY/nzYv/f1U+PvbMur/z/aUlBT5+vpq9uzZCgoK0ksvvaThw4dr5syZ6Y45dOhQXb9+3fxz5swZq48DAAAAyEopKSm2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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAGGCAYAAADGq0gwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZp9JREFUeJzt3XdcV+X///HnW2TLUGSIKYJ7L9LAnOVMzWxY7llqhUpm7pkjNSM/hlbuhlpp5iCVXLlzm2luxQG5xZEocH5/9PP97S0gvBV9Az3ut9u53TrXuc51XufNmxMvr+tcl8kwDEMAAAAAgBwhl60DAAAAAABkHpI8AAAAAMhBSPIAAAAAIAchyQMAAACAHIQkDwAAAAByEJI8AAAAAMhBSPIAAAAAIAchyQMAAACAHIQkDwAAAAByEJI8ANnK7NmzZTKZ0tzWrVtn6xAfu5MnT8pkMmn27Nm2DuWJeVL3/O233yoiIiLVYyaTScOHD3+s10/LggULVLZsWTk7O8tkMmnPnj02ieNhRUVFpfnZFSlSRB07dszU6z2ONtPzOL6jHTt2VJEiRTKtPQD/HbltHQAAPIxZs2apVKlSKcrLlCljg2ierAIFCmjLli0qWrSorUPJcb799lvt379fvXv3TnFsy5Yteuqpp554TBcuXFC7du3UqFEjRUZGytHRUSVKlHjicTyKqKgoffbZZ6kmej/++KPc3d0z9XqPo00AyE5I8gBkS+XKlVNwcLCtw9CtW7fk4uLyRK/p6OioZ5555oleE7LZZ3748GHdvXtXbdu2Ve3atTOlTVt8b9NSuXLlbNEmAGQnDNcEkCPNnz9fJpNJU6ZMsSgfNmyY7OzsFB0dLen/hliNHz9eo0ePVuHCheXk5KTg4GCtXr3a4tzhw4fLZDJp165deuWVV5Q3b15zb5phGIqMjFSlSpXk7OysvHnz6pVXXtHx48ct2ti9e7eaNm0qHx8fOTo6yt/fXy+88ILOnDljrvP999+revXq8vDwkIuLi4KCgtS5c2fz8bSGhW3cuFHPPfec3Nzc5OLiotDQUC1fvtyizr3hrmvXrlWPHj2UP39+eXl5qWXLljp37lyGPtsdO3aoefPmypcvn5ycnFS5cmV999135uN79+6VyWTSjBkzUpz7888/y2QyacmSJZKko0ePqlOnTipevLhcXFxUsGBBNWvWTL///nu6caQ1lO3ez+nfPvvsM9WqVUs+Pj5ydXVV+fLlNX78eN29e9dcp06dOlq+fLlOnTplMQT4ntSGa+7fv18vvvii8ubNKycnJ1WqVElz5syxqLNu3TqZTCbNmzdPgwYNkr+/v9zd3fX888/r0KFD6d7js88+K0lq1aqVTCaT6tSpYz6+ZMkShYSEyMXFRW5ubqpfv762bNmS6ueR2vc2Ldbc19dff63w8HD5+fnJ2dlZtWvX1u7duy3u4bPPPjN/hve2kydPSko5tPJeu99++60++OADFShQQHny5FGzZs30119/6fr163rzzTeVP39+5c+fX506ddKNGzcsYru/zTp16qQ5xPvfv0dxcXF666239NRTT8nBwUGBgYEaMWKEEhMTLdo/d+6cXnvtNbm5ucnDw0OtWrVSXFzcAz/Te+79DkZHR6tTp07Kly+fXF1d1axZsxTPi9Rk5Lt8757LlSun7du3q2bNmuZnybhx45ScnGyul5ycrA8//FAlS5aUs7OzPD09VaFCBX366acZuh8AWRM9eQCypaSkpBR/eJlMJtnZ2UmSXn/9da1fv17vvfeennnmGQUHB2vNmjX68MMPNXDgQNWvX9/i3ClTpiggIEARERFKTk7W+PHj1bhxY61fv14hISEWdVu2bKnXX39d3bt3182bNyVJb731lmbPnq2wsDB99NFHunz5skaOHKnQ0FDt3btXvr6+unnzpurXr6/AwEB99tln8vX1VVxcnNauXavr169L+mdIYKtWrdSqVSsNHz5cTk5OOnXqlNasWfPAz2P9+vWqX7++KlSooBkzZsjR0VGRkZFq1qyZ5s2bp1atWlnU79q1q1544QV9++23On36tN5//321bds23eusXbtWjRo1UvXq1TVt2jR5eHho/vz5atWqlW7duqWOHTuqYsWKqly5smbNmqUuXbpYnD979mz5+PioSZMmkv75Y9nLy0vjxo2Tt7e3Ll++rDlz5qh69eravXu3SpYs+cB4MurYsWNq3bq1AgMD5eDgoL1792r06NH6888/NXPmTElSZGSk3nzzTR07dkw//vhjum0eOnRIoaGh8vHx0eTJk+Xl5aWvv/5aHTt21F9//aV+/fpZ1B84cKBq1Kih6dOnKz4+Xh988IGaNWumgwcPmr+39xsyZIiqVaumt99+W2PGjFHdunXNwxC//fZbtWnT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unfvrlGjRilfvnzauHGjunTpYn79ytnZOd3r3T+a0GQymWf9T05OVoECBbRu3boU5/172GhOZnWSt3//fu3evVslS5Z8pAs7ODioatWqio6O1ksvvWQuj46O1osvvpjqOSEhIVq6dKlF2apVqxQcHGz+Qd+6dStFImdnZyfDMMz/wgAAAAAg8+TLl08NGzbUZ599prCwsBTv5V29elWenp7asWOHEhMT9fHHH5v/Zv/uu+8s6laoUEGrV69+6NepqlSpori4OOXOnTvNJQtKly6trVu3qn379uayrVu3PtT1siKrh2sGBwdn2nDG8PBwTZ8+XTNnztTBgwfVp08fxcTEmKcfHTBggMUH3717d506dUrh4eE6ePCgZs6cqRkzZqhv377mOs2aNdPUqVM1f/58nThxQtHR0RoyZIiaN28uOzu7TIkbAAAAgKXIyEglJSWpWrVqWrhwoY4cOaKDBw9q8uTJ5qGQRYsWVWJiov73v//p+PHj+uqrrzRt2jSLdgYMGKDt27erZ8+e2rdvn/78809NnTpVFy9ezFAczz//vEJCQtSiRQutXLlSJ0+e1ObNmzV48GDt2LFDktSrVy/NnDlTM2fO1OHDhzVs2DD98ccfmfuB2JDVPXnvvvuuevXqpffff1/ly5dP0VV6//jYB2nVqpUuXbqkkSNHKjY2VuXKlVNUVJQCAgIkSbGxsYqJiTHXDwwMVFRUlPr06aPPPvtM/v7+mjx5snn5BEkaPHiwTCaTBg8erLNnz8rb21vNmjXT6NGjrb1VAAAAABkUGBioXbt2afTo0XrvvfcUGxsrb29vVa1aVVOnTpUkVapUSZMmTdJHH32kAQMGqFatWho7dqxFx06JEiW0atUqDRw4UNWqVZOzs7OqV6+uN954I0NxmEwmRUVFadCgQercubMuXLggPz8/1apVy/xaWKtWrXTs2DF98MEHun37tl5++WX16NFDK1euTLPde8NBc+e2OoV64kyGlWMYU3unzWQymSdM+ffUptlVfHy8PDw8dO3atQzPFprTFem/3NYhZBknnVrbOoSsZfg1W0cAAECOcvv2bZ04cUKBgYFycnKydTj4/7Zu3aqQkBBduHBB+fPnf2zXedDPP6N5itVp6IkTJ6yPFAAAAACyocTERJ08eVITJkxQxYoVH2uCl1msTvLuDaUEAAAAgJxu//79Cg0N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", "text/plain": [ "
" ] @@ -1032,13 +1032,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "bbe140d5", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAHpCAYAAAA/CfW/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdYlMcWwOHf0nsVARUBUUHsvfeGvUajiSWJmthNYqLRG2tij7HEllxbjClWosYQe++9gAXFjoL0Xna/+wdxryuIoOCCnvc+PDf77ezM2ZWyZ2fmjEpRFAUhhBBCCCGEEG8EA30HIIQQQgghhBAi70iSJ4QQQgghhBBvEEnyhBBCCCGEEOINIkmeEEIIIYQQQrxBJMkTQgghhBBCiDeIJHlCCCGEEEII8QaRJE8IIYQQQggh3iCS5AkhhBBCCCHEG0SSPCGEEEIIIYR4g0iSJ4QQb5BVq1ahUqm0X0ZGRpQoUYIPPviA+/fvZ2p36tSp1xbbrVu3UKlUrFq1Kt/GUKlUTJo0Kd/6LyimTZuGv7+/vsPIVx4eHvTv3197+3V8/wghxJvCSN8BCCGEyHsrV67Ex8eHpKQkDhw4wPTp09m/fz8XL17E0tJSLzG5urpy9OhRvLy89DL+m2TatGl0796dzp076zuU10a+f4QQIuckyRNCiDdQhQoVqFGjBgBNmzZFrVYzdepU/P39ee+99/QSk6mpKXXq1NHL2AWZWq0mPT0dU1NTvcaRlpamnf0tiOT7Rwghck6WawohxFvgyZvj27dv61yPi4tj8ODBFClSBEdHR7p27cqDBw+093/00Uc4ODiQmJiYqc9mzZpRvnx57e3169dTu3ZtbG1tsbCwoFSpUnz44Yfa+5+33O7KlSv06tULZ2dnTE1NKVmyJH379iUlJQWA8PBwhgwZgq+vL1ZWVhQtWpRmzZpx8ODBl349IiMjGTJkCMWLF8fExIRSpUoxfvx47ZhPqFQqhg0bxrJlyyhbtiympqb4+vry+++/Z+rz4cOHfPzxx5QoUQITExM8PT2ZPHky6enpmV6DWbNm8c033+Dp6YmpqSl79+4lOTmZzz//nCpVqmBra4uDgwN169blzz//zBRTQkICq1ev1i7LbdKkifb+S5cu0alTJ+zt7TEzM6NKlSqsXr1ap499+/ahUqlYs2YNn3/+OcWLF8fU1JTg4ODnvmZLliyhcuXKWFlZYW1tjY+PD+PGjdNpc//+fQYNGoSbmxsmJiYUK1aM7t278+jRI4AcP8esZPX9M2nSJFQqFZcvX6ZXr17Y2tri7OzMhx9+SExMjM7jo6Ojtd/PVlZWtGvXjps3b741S3yFEG+XgvlxnRBCiDz15M27k5OTzvUBAwbQrl07fv31V+7evcsXX3zB+++/z549ewAYOXIkK1as4Ndff2XAgAHaxwUGBrJ3714WLVoEwNGjR+nZsyc9e/Zk0qRJmJmZcfv2bW0/z3P+/HkaNGhAkSJFmDJlCmXKlCE0NJQtW7aQmpqKqakpkZGRAEycOBEXFxfi4+PZvHkzTZo0Yffu3ToJTk4kJyfTtGlTbty4weTJk6lUqRIHDx5k+vTpnDt3jr/++kun/ZYtW9i7dy9TpkzB0tKSxYsX06tXL4yMjOjevTuQkeDVqlULAwMDJkyYgJeXF0ePHuWbb77h1q1brFy5UqfPBQsWULZsWebMmYONjQ1lypQhJSWFyMhIRo8eTfHixUlNTWXXrl107dqVlStX0rdvX+1r3axZM5o2bcrXX38NgI2NDQBXr16lXr16FC1alAULFuDo6Mgvv/xC//79efToEV9++aVOHF999RV169Zl6dKlGBgYULRo0Sxfs99//50hQ4YwfPhw5syZg4GBAcHBwQQGBmrb3L9/n5o1a5KWlsa4ceOoVKkSERER/PPPP0RFReHs7Jzj55hb3bp1o2fPnnz00UdcvHiRr776CoAVK1YAoNFo6NChA6dOnWLSpElUq1aNo0eP4ufn91LjCSFEgacIIYR4Y6xcuVIBlGPHjilpaWlKXFycsm3bNsXJyUmxtrZWHj58qNNuyJAhOo+fNWuWAiihoaHaa40bN1aqVKmi027w4MGKjY2NEhcXpyiKosyZM0cBlOjo6OfGFhISogDKypUrtdeaNWum2NnZKWFhYTl+junp6UpaWprSvHlzpUuXLjr3AcrEiROzffzSpUsVQFm3bp3O9ZkzZyqAsmPHDp3+zM3Nta/bk/F9fHyU0qVLa699/PHHipWVlXL79m2dPp+8LpcvX1YU5f+vgZeXl5Kampqj5/nRRx8pVatW1bnP0tJS6devX6bHvPvuu4qpqaly584dnett2rRRLCwstP8+e/fuVQClUaNG2cbwxLBhwxQ7O7ts23z44YeKsbGxEhgYmKM+FSX75+ju7q7zHLP6/pk4caICKLNmzdJ57JAhQxQzMzNFo9EoiqIof/31lwIoS5Ys0Wk3ffr0HH3PCCFEYSPLNYUQ4g1Up04djI2Nsba2pn379ri4uPD333/j7Oys065jx446tytVqgToLuscOXIk586d4/DhwwDExsayZs0a+vXrh5WVFQA1a9YEoEePHqxbt06nkufzJCYmsn//fnr06JFphvFZS5cupVq1apiZmWFkZISxsTG7d+8mKCjoheM8a8+ePVhaWmpn4Z54Uslx9+7dOtebN2+u87oZGhrSs2dPgoODuXfvHgDbtm2jadOmFCtWjPT0dO1XmzZtANi/f79Onx07dsTY2DhTbOvXr6d+/fpYWVlpn+fy5ctz/Dz37NlD8+bNcXNzy/TcEhMTOXr0qM71bt265ajfWrVqER0dTa9evfjzzz95/PhxpjZ///03TZs2pVy5ctn29arPMStZfR8nJycTFhYG/P/179Gjh067Xr16vfSYQghRkEmSJ4QQb6Cff/6ZkydPcvbsWR48eMCFCxeoX79+pnaOjo46t58U/0hKStJe69SpEx4eHtqlmatWrSIhIYGhQ4dq2zRq1Ah/f3/S09Pp27cvJUqUoEKFCvz222/PjTEqKgq1Wk2JEiWyfS5z585l8ODB1K5dm40bN3Ls2DFOnjyJn5+fTpw5FRERgYuLCyqVSud60aJFMTIyIiIiQue6i4tLpj6eXHvS9tGjR2zduhVjY2Odryd7Fp9NilxdXTP1uWnTJnr06EHx4sX55ZdfOHr0KCdPnuTDDz8kOTk5x88tq76LFSumE292cWSlT58+rFixgtu3b9OtWzeKFi1K7dq12blzp7ZNeHj4C/8t8+I5ZuVF38cREREYGRnh4OCg0+7ZDz2EEOJNIXvyhBDiDVSuXDltdc1XZWBgwNChQxk3bhzfffcdixcvpnnz5nh7e+u069SpE506dSIlJYVjx44xffp0evfujYeHB3Xr1s3Ur4ODA4aGhtrZsOf55ZdfaNKkCUuWLNG5HhcX91LPx9HRkePHj6Moik6iFxYWRnp6OkWKFNFp//Dhw0x9PLn2JLkoUqQIlSpV4ttvv81yzCdJ1hPPJpiQ8Tw9PT35448/dO5/thhMdhwdHQkNDc10/UkxnWefW1ZxPM8HH3zABx98QEJCAgcOHGDixIm0b9+ea9eu4e7ujpOTU47+LV/1Ob4MR0dH0tPTiYyM1En0svq3FUKIN4HM5AkhhHihAQMGYGJiwnvvvcfVq1cZNmzYc9uamprSuHFjZs6cCcDZs2ezbGdubk7jxo1Zv359lsv/nlCpVJmOF7hw4UKmpYc51bx5c+Lj4zMdJv7zzz9r73/a7t27tdUhIePIgz/++AMvLy/tzFX79u25dOkSXl5e1KhRI9PXs0leVlQqFSYmJjrJz8OHD7OsPGlqaprlLGbz5s3Zs2ePToXUJ8/NwsIiT44gsLS0pE2bNowfP57U1FQuX74MQJs2bdi7dy9Xr1597mNz8xzzUuPGjQH4448/dK5nVSVVCCHeBDKTJ4QQ4oXs7Ozo27cvS5Yswd3dnQ4dOujcP2HCBO7du0fz5s0pUaIE0dHRzJ8/H2NjY+0b7KzMnTuXBg0aULt2bcaOHUvp0qV59OgRW7ZsYdmyZdo9hVOnTmXixIk0btyYq1evMmXKFDw9PXWOJ8ipvn37smjRIvr168etW7eoWLEihw4dYtq0abRt25YWLVrotC9SpAjNmjXj66+/1lbXvHLlik6CMGXKFHbu3Em9evUYMWIE3t7eJCcnc+vWLbZv387SpUtfuJSxffv2bNq0iSFDhtC9e3fu3r3L1KlTcXV15fr16zptK1asyL59+9i6dSuurq5YW1vj7e3NxIkTtfsDJ0yYgIODA2vXruWvv/5i1qxZ2Nra5vr1Ahg4cCDm5ubUr18fV1dXHj58yPTp07G1tdXux5wyZQp///03jRo1Yty4cVSsWJHo6GgCAgL47LPP8PHxydVzzEt+fn7Ur1+fzz//nNjYWKpXr87Ro0e1ib2BgXzmLYR4s0iSJ4QQIkd69uzJkiVLGDx4cKY3xbVr1+bUqVOMGTOG8PBw7OzsqFGjBnv27NE5S+9ZlStX5sSJE0ycOJGvvvqKuLg4XFxcaNasGSYmJgCMHz+exMREli9fzqxZs/D19WXp0qVs3ryZffv25fp5mJmZsXfvXsaPH8/s2bMJDw+nePHijB49mokTJ2Zq37FjR8qXL89//vMf7ty5g5eXF2vXrqVnz57aNq6urpw6dYqpU6cye/Zs7t27h7W1NZ6envj5+WFvb//CuD744APCwsJYunQpK1asoFSpUowdO5Z79+4xefJknbbz589n6NChvPvuuyQmJtK4cWP27duHt7c3R44cYdy4cQwdOpSkpCTKlSvHypUrtYVlXkbDhg1ZtWoV69atIyoqiiJFitCgQQN+/vlnbdGc4sWLa/8tZ8yYQUREBE5OTjRo0EC7RDI3zzEvGRgYsHXrVj7//HNmzJhBamoq9evX55dffqFOnTrY2dnl29hCCKEPKkVRFH0HIYQQouD7/PPPWbJkCXfv3s1U6OJNpVKpGDp0KD/88IO+QxH54Ndff+W9997j8OHD1KtXT9/hCCFEnpGZPCGEENk6duwY165dY/HixXz88cdvTYIn3iy//fYb9+/fp2LFihgYGHDs2DFmz55No0aNJMETQrxxJMkTQgiRrbp162JhYUH79u355ptv9B2OEC/F2tqa33//nW+++YaEhARcXV3p37+/fE8LId5IslxTCCGEEEIIId4gUk5KCCGEEEIIId4gkuQJIYQQQgghxBtE9uRlQ6PR8ODBA6ytrXUObhVCCCGEEEKI101RFOLi4ihWrFi2Z3xKkpeNBw8e4Obmpu8whBBCCCGEEELr7t27lChR4rn3S5KXDWtrayDjRbSxsdFzNEIIIYQQQoi3WWxsLG5ubto85XkkycvGkyWaNjY2kuQJIYQQQgghCoQXbSWTwitCCCGEEEII8QaRJE8IIYQQQggh3iCS5AkhhBBCCCHEG0T25OUBtVpNWlqavsMQQi+MjY0xNDTUdxhCCCGEEOJfkuRlYdGiRSxatAi1Wp1tO0VRePjwIdHR0a8nMCEKKDs7O1xcXOQ8SSGEEEKIAkClKIqi7yAKqtjYWGxtbYmJicmyumZoaCjR0dEULVoUCwsLeYMr3jqKopCYmEhYWBh2dna4urrqOyQhhBBCiDfWi/KTJ2Qm7yWp1Wptgufo6KjvcITQG3NzcwDCwsIoWrSoLN0UQgghhNAzKbzykp7swbOwsNBzJELo35OfA9mbKoQQQgihf5LkvSJZoimE/BwIIYQQQhQkkuQJIYQQQgghxBtEkjwhhBBCCCGEeINIklcAqDUKR29E8Oe5+xy9EYFaIwVP88ukSZOoUqWKvsMQQgghhBAFWGF/fy7VNfUs4FIok7cGEhqTrL3mamvGxA6++FXI33L0R44coWHDhrRs2ZKAgIB8HUsfVCoVmzdvpnPnztpro0ePZvjw4foLSgghhBBCFGj6fH+eV2QmT48CLoUy+JczOt9AAA9jkhn8yxkCLoXm6/grVqxg+PDhHDp0iDt37uTrWFAwKi9aWVnJkRdCCCGEECJL+n5/nlckyctDiqKQmJqeo6+45DQmbrlMVhO/T65N2hJIXHJajvrL7Zn2CQkJrFu3jsGDB9O+fXtWrVqlc/+WLVsoU6YM5ubmNG3alNWrV6NSqYiOjta2+emnn3Bzc8PCwoIuXbowd+5c7OzstPc/WRq5YsUKSpUqhampKYqiEBMTw6BBgyhatCg2NjY0a9aM8+fP64z/zTffULRoUaytrRkwYABjx47VWWZ58uRJWrZsSZEiRbC1taVx48acOXNGe7+HhwcAXbp0QaVSaW8/u1xTo9EwZcoUSpQogampKVWqVNGZ1bx16xYqlYpNmzbRtGlTLCwsqFy5MkePHs3V6y2EEEIIIQo2tUZh8tbAbN+fT94aWCiWbspyzTyUlKbGd8I/edKXAjyMTabipB05ah84pTUWJjn/5/zjjz/w9vbG29ub999/n+HDh/P111+jUqm4desW3bt3Z+TIkQwYMICzZ88yevRonccfPnyYTz75hJkzZ9KxY0d27drF119/nWmc4OBg1q1bx8aNG7WHZLdr1w4HBwe2b9+Ora0ty5Yto3nz5ly7dg0HBwfWrl3Lt99+y+LFi6lfvz6///473333HZ6entp+4+Li6NevHwsWLADgu+++o23btly/fh1ra2tOnjxJ0aJFWblyJX5+fs89oHv+/Pl89913LFu2jKpVq7JixQo6duzI5cuXKVOmjLbd+PHjmTNnDmXKlGH8+PH06tWL4OBgjIzkR0gIIYQQ4k1wIiQy0wze0xQgNCaZEyGR1PUq2CvD5B1qFhYtWsSiRYtQq9X6DiXfLF++nPfffx8APz8/4uPj2b17Ny1atGDp0qV4e3sze/ZsALy9vbl06RLffvut9vELFy6kTZs22uSvbNmyHDlyhG3btumMk5qaypo1a3BycgJgz549XLx4kbCwMExNTQGYM2cO/v7+bNiwgUGDBrFw4UI++ugjPvjgAwAmTJjAjh07iI+P1/bbrFkznXGWLVuGvb09+/fvp3379trx7OzscHFxee7rMGfOHMaMGcO7774LwMyZM9m7dy/z5s1j0aJF2najR4+mXbt2AEyePJny5csTHByMj49Pjl5vIYQQQghRsIXFPj/B02kXl7N2+iRJXhaGDh3K0KFDiY2NxdbWNsePMzc2JHBK6xy1PRESSf+VJ1/YbtUHNanl6ZCjsXPq6tWrnDhxgk2bNgFgZGREz549WbFiBS1atODq1avUrFlT5zG1atXK1EeXLl0ytXk2yXN3d9cmXACnT58mPj4+0764pKQkbty4oe17yJAhmfres2eP9nZYWBgTJkxgz549PHr0CLVaTWJiYq72FsbGxvLgwQPq16+vc71+/fqZlo9WqlRJ+9+urq7aGCTJE0IIIYQo/EIeJ/DfQzdz1LaotVk+R/PqJMnLQyqVKsdLJhuWccLV1oyHMclZrvtVAS62ZjQs44ShgSpP41y+fDnp6ekUL15ce01RFIyNjYmKikJRFFQq3TGf3fOXkzYAlpaWOrc1Gg2urq7s27cvU9un9/O9qO/+/fsTHh7OvHnzcHd3x9TUlLp165Kampr5Cb9AVmM9e83Y2DhTe41Gk+uxhBBCCCFEwZGUqmbxvmCW7b9Jqjr793ZP3p/nZAJG36Twip4YGqiY2MEXyPiGedqT2xM7+OZ5gpeens7PP//Md999x7lz57Rf58+fx93dnbVr1+Lj48PJk7qzjKdOndK57ePjw4kTJ7Jtk5Vq1arx8OFDjIyMKF26tM5XkSJFgIzloS/q++DBg4wYMYK2bdtSvnx5TE1Nefz4sU4bY2PjbJfc2tjYUKxYMQ4dOqRz/ciRI5QrV+6Fz0UIIYQQQhReuwIf0fL7/SzcE0yqWkOjsk5M7lgeFa/3/Xl+kJk8PfKr4MqS96tlOofDJR/P4di2bRtRUVF89NFHmZaidu/eneXLl7Np0ybmzp3LmDFj+Oijjzh37py2+uaTWazhw4fTqFEj5s6dS4cOHdizZw9///13phmwZ7Vo0YK6devSuXNnZs6cibe3Nw8ePGD79u107tyZGjVqMHz4cAYOHEiNGjWoV68ef/zxBxcuXKBUqVLafkqXLs2aNWuoUaMGsbGxfPHFF5ibm+uM5eHhwe7du6lfvz6mpqbY29tniueLL75g4sSJeHl5UaVKFVauXMm5c+dYu3bty7y8QgghhBCigLsbmcjkrZfZFRQGZJyBN6G9L34VXFCpVDjbmL7W9+f5QZI8PfOr4EpLXxdOhEQSFpdMUeuMKeD8+oRg+fLltGjRIsu9ht26dWPatGlERUWxYcMGPv/8c+bPn0/dunUZP348gwcP1hZLqV+/PkuXLmXy5Mn85z//oXXr1nz66af88MMP2Y6vUqnYvn0748eP58MPPyQ8PBwXFxcaNWqEs7MzAO+99x43b95k9OjRJCcn06NHD/r3768zu7dixQoGDRpE1apVKVmyJNOmTctUAfS7777js88+46effqJ48eLcunUrUzwjRowgNjaWzz//nLCwMHx9fbXHRwgh3kwajULo9WgSYlOwtDHFtYwdBoXgU1khhBCvJiVdzU8HbrJwTzAp6RqMDFR81MCTEc3LYGn6/7Todb8/zw8qJbcHrL1FnhReiYmJwcbGRue+5ORkQkJC8PT0xMys4G++fFXffvstS5cu5e7du89tM3DgQK5cucLBgwfzfPyWLVvi4uLCmjVr8rxv8eretp8HUXjdOBvGwT+ukxCdor1maWdKw55l8KpaVI+RCSGEyE8Hr4cz8c/L3HycAEBtTwemdq5AWWdrPUeWO9nlJ0+TmTyRpcWLF1OzZk0cHR05fPgws2fPZtiwYTpt5syZQ8uWLbG0tOTvv/9m9erVLF68+JXHTkxMZOnSpbRu3RpDQ0N+++03du3axc6dO1+5byHE2+vG2TACll3KdD0hOoWAZZfw+7iCJHpCCPGGCY1J4pttQfx1MRSAIlam/KddOTpVKfbCbUaFmSR5IkvXr1/nm2++ITIykpIlS/L555/z1Vdf6bQ5ceIEs2bNIi4ujlKlSrFgwQIGDBjwymM/WdL5zTffkJKSgre3Nxs3bqRFixav3LcQ4u2k0Sgc/ON6tm0OrbuOZ2UnWbophBBvgDS1hpWHQ5i36zqJqWoMVNC3rgeftSqLjZnxizso5CTJE1n6/vvv+f7777Nts27dunwZ29zcnF27duVL30KIt1Po9WidJZpZiY9KIfR6NMW9MxdpEkIIUXgcvxnB139e4tqjeACqlbRjaucKlC+W8/OvCztJ8oQQQrzxEmKzT/By204IIUTBExaXzPTtV9h89j4A9hbGjG3jwzvV3d66VRqS5AkhhHjjWdqY5mk7IYQQBYdao/DLsdvM+ecqcSnpqFTwbs2SfNnaG3tLE32HpxeS5AkhhHjjuZS2xdjMkLRk9XPbWNlnHKcghBCi8DhzJ4qv/S9x+UEsABWK2/BN54pUcbPTb2B6JkmeEEKIN5qiKJzcGpJtggfQoEeZt245jxBCFFZRCanMDLjC7yczjveyNjPiy9be9K7tXqjOs8svkuQJIYR4YymKwvE/b3I64DYAPnVduRsUqVOExcrelAY95Jw8IYQoDDQahXWn7jIj4ArRiWkAdKtWgq/a+lDESpbcPyFJnhBCiDeSoigc+/MmZ/5N8Bq8U4bKzd3QaJSMapuxKVjaZCzRlBk8IYQo+C7dj+HrPy9x9k40AN7O1kztXIFang76DawAkiQvC4sWLWLRokWo1dkv7ckzGjXcPgLxj8DKGdzrgYHh6xn7KU2aNKFKlSrMmzcPAA8PD0aNGsWoUaNeeyxCCPEqnpfgARgYqOSYBCGEKERiktKYu+Mqa47dRqOApYkhn7YsS796HhgbGuTLmBqNhtu3bxMfH4+VlRXu7u4YGOTPWPlBkrwsDB06lKFDhxIbG4utbT6fpxG4BQLGQOyD/1+zKQZ+M8G3Y74M2b9/f1avXp3p+vHjxylXrtxzH6dSqdi8eTOdO3fOl7iEECIvKIrCMf+bnPnn3wSvRxkqN3PTc1RCCCFyS1EUNp+9z7TtV3gcn7HMvn0lV/7TzhcXW7N8GzcwMJCAgABiY2O112xsbPDz88PX1zffxs1LkuTpU+AWWNcXUHSvx4ZmXO/xc74len5+fqxcuVLnmpOTE4aG+T+DmJaWhrGxcb6PI4R4+0iCJ4QQb4arD+P4+s9LnAiJBKCUkyVTOlagQZki+TpuYGAg69aty3Q9NjaWdevW0aNHj0KR6BWeOcfCQFEgNSFnX8mx8PeXZErwMjrK+L+AMRntctKfklU/z2dqaoqLi4vOV/PmzZ+7NNPDwwOALl26oFKptLcBtm7dSvXq1TEzM6NUqVJMnjyZ9PR07f0qlYqlS5fSqVMnLC0t+eabb3IVqxBC5ERGgndDm+A17CkJnhBCFDbxKel8+1cg7RYc5ERIJGbGBnzR2pu/RzbM9wRPo9EQEBCQbZuAgAA0Gk2+xpEXZCYvL6UlwrRiedSZkrGEc0YO36CMewAmlnk0dmYnT56kaNGirFy5Ej8/P+2M3z///MP777/PggULaNiwITdu3GDQoEEATJw4Ufv4iRMnMn36dL7//vvXMlsohHi7/D/BuwNkJHiVmkqCJ4QQhYWiKGy/+JCp2wJ5GJsMQCtfZ75u74ubg8VrieH27ds6SzSzEhsby+3bt/H09HwtMb0sSfLeUtu2bcPKykp7u02bNtm2d3JyAsDOzg4XFxft9W+//ZaxY8fSr18/AEqVKsXUqVP58ssvdZK83r178+GHH+blUxBCCCDjjcHRzTc4u+NJgleWSk1L6DkqIYQQOXUzPJ6JWy5z8PpjANwczJncsTzNfJxfaxzx8fF52k6fJMnLS8YWGTNqOXH7CKzt/uJ2723IqLaZk7FzoWnTpixZskR729LSkl69euWqD4DTp09z8uRJvv32W+01tVpNcnIyiYmJWFhkxFWjRo1c9y2EEC8iCZ4QQhReSalqFu0N5scDN0lVazAxMuCTxl4MaeKFmfHrX/n19ARIXrTTJ0ny8pJKlfMlk17NMqpoxoaS9b48Vcb9Xs3y5TgFS0tLSpcu/cr9aDQaJk+eTNeuXTPdZ2b2/6pHlpb5t5RUCPF2UhSFo5tucHZnRoLX6N2yVGwiCZ4QQhQGOwMfMXnrZe5FJQHQuKwTkzuWx6OIft4zqtVqgoODX9jOxsYGd3f31xDRq5EkT18MDDOOSVjXF1Chm+j9eyiv3wy9nJf3PMbGxpnODqxWrRpXr17Nk4RRCCFyShI8IYQonO5GJjJpy2V2XwkDoJitGRM6+NK6vAsqlUovMUVHR7Nx40bu3r37wrZ+fn6F4rw8SfL0ybdjxjEJWZ6TNyPfjk94WR4eHuzevZv69etjamqKvb09EyZMoH379ri5ufHOO+9gYGDAhQsXuHjxolTRFELkC0VROLLpBuckwRNCiEIjJV3Nj/tv8sPeYFLSNRgZqBjQsBQjmpfGwkR/KcmVK1fw9/cnOTkZU1NTOnbsiEqlknPyxCvy7Qg+7TL26MU/AivnjD14BWgG74nvvvuOzz77jJ9++onixYtz69YtWrduzbZt25gyZQqzZs3C2NgYHx8fBgwYoO9whRBvIEnwhBCi8DlwLZyJWy4T8jgBgLqlHJnauTyli1rrLab09HR27tzJ8ePHAShWrBjdu3fHwcEBAB8fH27fvk18fDxWVla4u7sXihm8J1SKkssD1t4isbGx2NraEhMTg42Njc59ycnJhISE4OnpqbP3TIi3kfw8iNdBURSObAzm3K6M5TSS4AkhRMEWGpPE1G2BbL/4EAAna1P+064cHSsX09vSTIDIyEjWr19PaGgoAHXr1qV58+YYGRX8+a/s8pOnFfxnIoQQ4q33bILXuFdZKjSWBE8IIQqiNLWGFYdCmL/7OompagxU0K+eB5+2LIuNmbFeY7t06RJbtmwhNTUVc3NzOnfujLe3t15jyg+S5AkhhCjQFEXh8MZgzkuCJ4QQBYZao3AiJJKwuGSKWptRy9MBQwMVx25G8LX/Ja6HZZwlV93dnqmdKuBb7PmzTq9DWloaAQEBnD59GoCSJUvSrVs3bG1t9RpXfpEkTwghhA5FrSbx1GnSw8MxcnLCokZ1VIb62SecKcHr7U2FRsX1EosQQogMAZdCmbw1kNCYZO21otameBSx5ERIJAAOliaMbeND92olMDDQ39JMgPDwcNavX09YWEZFz4YNG9KkSRMM9fS37XWQJE8IIYRW7I4dPJo2nfSHD7XXjFxccB73FTatWr3WWBRF4fCGYM7vlgRPCCEKioBLoQz+5UymU57D4lIIi0sB4L3aJfmitTd2FiavP8BnnDt3jr/++ou0tDQsLS3p2rUrXl5e+g4r30mSJ4QQAshI8O6PHAXP1ONKf/Qo4/r8ea8t0ZMETwghCh61RmHy1sBMCd7TiliZMKVTBQz1PHuXkpLC9u3bOX/+PACenp507doVa2v9VfR8nSTJE0IIgaJW82ja9EwJXsadCqhUPJo2HevmzfN96aaiKBxeH8z5PZLgCSFEQXIiJFJniWZWHsenciIkkrpejq8pqswePnzI+vXriYiIQKVS0bRpUxo0aFCojkB4VZLkCSGEyNiD99QSzUwUhfSHD0k8dRrL2rXyLY5nE7wm73lTvqEkeEIIURCExWWf4OW2XV5TFIVTp04REBCAWq3G2tqabt264eHhoZd49EmSPCGEEKSHh+dpu5ehKAqH1l/nwp57gCR4QghRkMQkprHxzL0ctS1q/frPzE1OTmbLli0EBgYCUKZMGTp37oylpeVrj6UgkCRPCCEERk5OedoutyTBE0KIgivgUihf/3mZ8H8LqzyPCnCxzThO4XW6f/8+GzZsICoqCgMDA1q0aEGdOnXequWZz3p7n3kBotaoOfnwJNtvbufkw5OoNWp9h/TK+vfvT+fOnfO0z1WrVmFnZ5enfQohMph4lYLs9tqpVBi5uGBRo3qejy0JnhBCFEzhcSkMWXuaT345Q3hcCqWcLBndqiwqMhK6pz25PbGD72sruqIoCkePHmX58uVERUVhZ2fHhx9+SL169d7qBA9kJk/vdt3exYwTM3iU+Eh7zdnCmbG1xtLCvUW+jNm/f3+io6Px9/fXub5v3z6aNm2q/SHJb02aNKFKlSrMmzcvR+179uxJ27Zt8zcoId5CmpQU7g8fAernfMCkyvhj7TzuqzwvuqIoCofWXefCXknwhBCioFAUhU1n7jNlWyAxSWkYGqj4pHEphjcrg5mxIaWLWmU6J8/F1oyJHXzxq+D6WmJMTEzE39+fa9euAVCuXDk6duyIubn5axm/oHvjk7y7d+/Sp08fwsLCMDIy4uuvv+add97Rd1hARoL32b7PUJ4pRBuWGMZn+z5jbpO5+ZboFUbm5ubygytEHlM0GkK/+oqks2cxsLbGafhwIlas0D0nz9k5X87JkwRPCCEKnvvRSYzbdJH91zL2YPu62jCreyUqFLfVtvGr4EpLXxdOhEQSFpdMUeuMJZqvawbvzp07bNiwgdjYWAwNDWndujU1a9ZEpdLvsQ0FyRs/j2lkZMS8efMIDAxk165dfPrppyQkJOTLWIqikJiWmKOvuJQ4pp+YninBA1D+/d+MEzOIS4nLUX9KVmXPX0FERAS9evWiRIkSWFhYULFiRX777TedNhs2bKBixYqYm5vj6OhIixYtMr22c+bMwdXVFUdHR4YOHUpaWtpzx4yKiqJv377Y29tjYWFBmzZtuH79uvb+Z5drTpo0iSpVqrBmzRo8PDywtbXl3XffJS4uLm9eBCHeAuHzFxC7/W8wMqLEwgU49O1D6d27KLl6NcXmzKHk6tWU3r0rXxK8g08leE3f95EETwgh9EijUVhz9Bat5u5n/7VwTIwM+KK1N38Oq6+T4D1haKCirpcjnaoUp66X42tJ8DQaDQcPHmTlypXExsbi4ODAgAEDqFWrliR4z3jjZ/JcXV1xdc2YNi5atCgODg5ERkbmS6WdpPQkav9aO8/6e5T4iHq/18tR2+O9j2NhbJFnYycnJ1O9enXGjBmDjY0Nf/31F3369KFUqVLUrl2b0NBQevXqxaxZs+jSpQtxcXEcPHhQJ9ncu3cvrq6u7N27l+DgYHr27EmVKlUYOHBglmP279+f69evs2XLFmxsbBgzZgxt27YlMDAQY2PjLB9z48YN/P392bZtG1FRUfTo0YMZM2bw7bff5tlrIcSbKnrjRiKWLQPAdcoULOvUAUBlaJjvxyQcXHedi08leL4NiuXbeEIIIbIX8jiBMRsvcCIkEoDq7vbM7FaJ0kWt9BzZ/8XHx7N582Zu3LgBQMWKFWnfvj2mpqZ6jqxgKvBJ3oEDB5g9ezanT58mNDSUzZs3ZyrosXjxYmbPnk1oaCjly5dn3rx5NGzYMFNfp06dQqPR4Obm9pqiL7i2bduGlZXuD676qf04xYsXZ/To0drbw4cPJyAggPXr12uTvPT0dLp27Yq7uzuQ8cP2NHt7e3744QcMDQ3x8fGhXbt27N69O8sk70lyd/jwYerVy0hs165di5ubG/7+/s9dYqvRaFi1ahXW1tYA9OnTh927d0uSJ8QLJBw9SujESQA4Dv4Eu65dXsu4iqJw8I/rXNz3b4LXxwff+pLgCSGEPqSrNfz3UAjf77xGSroGCxNDvmztTd+6Hhi8pqWXOXHz5k02bdpEfHw8RkZGtGvXjipVqsjsXTYKfJKXkJBA5cqV+eCDD+jWrVum+//44w9GjRrF4sWLqV+/PsuWLaNNmzYEBgZSsmRJbbuIiAj69u3Lf//73+eOlZKSQkrK/0vDxsbG5ipWcyNzjvc+nqO2px+dZsjuIS9st7j5Yqo7v7ianblR7vaqNW3alCVLluhcO378OO+//z6QkfDNmDGDP/74g/v372tfmyczoJUrV6Z58+ZUrFiR1q1b06pVK7p37469vb22v/Lly2P4VJEGV1dXLl68mGU8QUFBGBkZUbv2/2dCHR0d8fb2Jigo6LnPw8PDQ5vgPRkjLCwsF6+EEG+flOBg7o0YCenp2LRvj9OIEa9lXJ0ET/XvDJ4keEIIoRdBobF8ueECF+/HANCwTBGmdamIm0PerQx7VWq1mv3793PgwAEAnJyceOeddyhatKieIyv4CnyS16ZNG9q0afPc++fOnctHH33EgAEDAJg3bx7//PMPS5YsYfr06UBG8talSxe++uor7SxRVqZPn87kyZNfOlaVSpXjJZP1itXD2cKZsMSwLPflqVDhbOFMvWL1MDTI22p2AJaWlpQuXVrn2r17/z/g8rvvvuP7779n3rx5VKxYEUtLS0aNGkVqaioAhoaG7Ny5kyNHjrBjxw4WLlzI+PHjOX78OJ6engCZlliqVCo0Gk2W8TxvT6GiKNl+SpObMYQQkP74MXcHfYwmLg7z6tVxnfbta/kkVFEUDv5+jYv770uCJ4QQepSSrmbRnmAW77tBukbBxsyI/7T35Z3qJQrUzFhsbCwbN27k9u3bAFSrVg0/Pz9MTEz0HFnhUKgLr6SmpnL69GlaPVMQoFWrVhw5cgTIeGPRv39/mjVrRp8+fbLt76uvviImJkb7dffu3XyL3dDAkLG1xgIZCd3TntweU2tMviR4OXHw4EE6derE+++/T+XKlSlVqpROERTISKjq16/P5MmTOXv2LCYmJmzevPmlxvP19SU9PZ3jx/8/ExoREcG1a9coV67cKz0XIUQGTVISdwcPIe3BA0zc3Snxw0IMXsMfS0nwhBCiYDhzJ4r2Cw6xYE8w6RqFVr7O7PqsMT1quBWoBO/atWssXbqU27dvY2JiQteuXenYsaMkeLlQ4GfysvP48WPUajXOzs46152dnXn4b/nvw4cP88cff1CpUiXtuXBr1qzJtH8MwNTU9LVu3mzh3oK5TeZmeU7emFpj9Hp8QunSpdm4cSNHjhzB3t6euXPn8vDhQ23Cdfz4cXbv3k2rVq0oWrQox48fJzw8/KUTsjJlytCpUycGDhzIsmXLsLa2ZuzYsRQvXpxOnTrl5VMT4q2kaDQ8+PJLki9exNDODrdlSzF6anl1vo2rKBz4/RqXJMETQgi9SUxN57sd11hxOARFgSJWJkzuWIG2FV0KVHKnVqvZvXu3drLGxcWFd955B0dHRz1HVvgU6iTviWe/OZ9e4tegQYMCvXyvhXsLmro15UzYGcITw3GycKJa0Wp6m8F74uuvvyYkJITWrVtjYWHBoEGD6Ny5MzExGeu2bWxsOHDgAPPmzSM2NhZ3d3e+++67bJfWPkuj0WBk9P9vwZUrVzJy5Ejat29PamoqjRo1Yvv27c+trCmEyLmw2XOI27kLlbExJRb9gImHR76P+WyC16yPD+XqSYInhBCv05Hgx4zddJE7kYkAdK1anK/b+2JvWbBmxaKiotiwYQP3798HoFatWrRq1UrnvaLIOZWS1wes5SOVSqVTXTM1NRULCwvWr19Ply7/rww3cuRIzp07x/79+19pvNjYWGxtbYmJicHGxkbnvuTkZEJCQvD09MTMzOyVxnlb+fj4MGDAAJ0qnqJwkp+Hgi3qt994OHkKAMXmzMG2fbt8H1NRFA78do1LByTBE0IIfYhNTmP69iB+O5Gx/cjV1oxpXSrS1KfgFS0JDAxky5YtJCcnY2ZmRqdOnWS7znNkl588rVCnxiYmJlSvXp2dO3fqJHk7d+58pSV+ixYtYtGiRTpHCoi8ExYWxt9//83Vq1dp3ry5vsMR4o0Wf+AAD6d+A4DTyBGvJ8HT/DuDp03wylGunmu+jyuEECLDrsBHjPe/yKPYjKrx79cpyRg/H6zNCtbqqLS0NHbu3MmJEyeAjCO8nq3WLl5OgU/y4uPjCQ4O1t4OCQnh3LlzODg4ULJkST777DP69OlDjRo1qFu3Lj/++CN37tzhk08+eekxhw4dytChQ7WZsshbfn5+REVFsWDBAqpWrarvcIR4YyVfucL9UZ+CRoNtly44vsLvxZySBE8IIfQnIj6FyVsD2XL+AQAejhbM7FaJ2qUK3p62iIgI1q9fr62jUb9+fZo1a6Zz/JZ4eQU+yTt16hRNmzbV3v7ss88A6NevH6tWraJnz55EREQwZcoUQkNDqVChAtu3b9ce0C0KnjNnzug7BCHeeGmPHnH340/QJCZiUacOrpMn5fvmekWjsP/3a1z+N8Fr3rccPnUlwRNCiPymKApbzj9g8tZAIhNSMVDBwIal+LRlWcyMC17SdOHCBbZt26bdetWlSxfKlCmj77DeKAU+yWvSpMlzz1B7YsiQIQwZ8uKDxYUQ4m2gSUjg7uDBpD96hImXFyUWzEeVz2WnJcETQgj9eBiTzH/8L7IrKAwAHxdrZnarRGU3O/0GloXU1FT+/vtvzp49C4C7uzvdunXLdm+ZeDkFPskTQgiRc4pazf3PPiclMAhDR0fcli3FMJ//eCoahf2/XeXywQeS4AkhxGuiKAq/n7zLtL+CiEtJx9hQxbCmZRjcxAsTo4J3FHZYWBjr168nPDwcgMaNG9OoUSNZnplPJMnLghReEUIURoqi8GjadOL370dlaorb4kWYlCiRv2M+m+D1K4dPHUnwhBAiP92OSGDsxoscvRkBQGU3O2Z3r0RZZ2s9R5aZoiicPXuW7du3k56ejpWVFV27dqVUqVL6Du2NJkleFqTwihCiMIpas4aotWtBpaLYrFmYV66cr+MpGoV9v10lUBI8IYR4LdQahZWHQ5iz4yrJaRrMjA0Y3cqbD+p7YmhQcA41fyIlJYVt27Zx8eJFALy8vOjSpQtWVlZ6juzNJ0meEEK8AeJ27+bR9BkAFB09GpvWrfJ1vGcTvBb9yuEtCZ4QQuSb64/i+HLjBc7eiQagbilHZnSriLujpX4De47Q0FDWr19PZGQkKpWKZs2aUb9+fQwMCt5S0jeRJHlCCFHIJV28xP3RX4CiYNezJw4ffpCv4ykahX2/XiXwkCR4QgiR31LTNSzdf4Mf9gSTqtZgbWrEuHbleLemW75XTX4ZiqJw8uRJ/vnnH9RqNTY2NnTv3p2SJUvqO7S3iiR5BYCiVpN46jTp4eEYOTlhUaM6KtmEqtWkSROqVKnCvHnz9B3KG0mlUrF582Y6d+6s71DES0i7f5+7QwajJCVh2aABLl//J1//6GdK8Pr74l3bJd/GE0KIt9mFe9F8ueECVx7GAdDcpyjfdKmAq625niMDjUbD7du3iY+Px8rKCnd3d1JSUtiyZQtBQUEAeHt706lTJywsLPQc7dtHkrwsvM7CK7E7dvBo2nTS/z0IEsDIxQXncV9h0yp/llv179+f1atXM336dMaOHau97u/vT5cuXV54ZEVO5GdiVlCSvtTUVObNm8fatWu5fv06FhYWeHt7M2DAAN5//32MjY1fe0yrVq1i1KhRREdH5/gxoaGh2Nvb519QIt+o4+K4+8lg1OGPMS1bluLzvkdllH+/1hWNwr61Vwg8HIpKBc0lwRNCiHyRnKbm+13X+OnATTQK2FsYM6ljeTpWLlYgZu8CAwMJCAggNjZWe83S0hJFUUhMTMTAwIBWrVpRu3btAhHv20iSvCy8rsIrsTt2cH/kKHgmqUp/9Cjj+vx5+ZbomZmZMXPmTD7++GN5g/8SUlNTad26NefPn2fq1KnUr18fGxsbjh07xpw5c6hatSpVqlTJ8nEm+XxeWW65uMib9MJISUvj/shRpFy/jpGTU8ZRCfm4kV0SPCGEeD1OhEQyZuMFQh4nANChcjEmdfDF0cpUz5FlCAwMZN26dZmuJyRkxGtpaUnv3r0pXrz46w5NPEV2PuYhRVHQJCbm6EsdF8ejb77NlOD92xGg8Ojbaajj4nLUX25n31q0aIGLiwvTp09/bpsjR47QqFEjzM3NcXNzY8SIEdofYIDFixdTpkwZzMzMcHZ2pnv37kDGTOH+/fuZP38+KpUKlUrFrVu3gIxfDG3btsXKygpnZ2f69OnD48ePtX0mJCTQt29frKyscHV15bvvvsvV8wLYuHEj5cuXx9TUFA8Pj0x9REVF0bdvX+zt7bGwsKBNmzZcv35de/+qVauws7PD39+fsmXLYmZmRsuWLbl79662zbx58zhw4AC7d+9m6NChVKlShVKlStG7d2+OHz9OmTJlgIxZx2HDhvHZZ59RpEgRWrZsCcD+/fupVasWpqamuLq6MnbsWNLT07X9b9iwgYoVK2Jubo6joyMtWrTQvvb79u2jVq1aWFpaYmdnR/369bl9+/ZzX48lS5bg5eWFiYkJ3t7erFmzRud+lUqFv78/ALdu3UKlUrFp0yaaNm2KhYUFlStX5ujRo7n+dxD5R1EUHk6ZSsKRI6jMzSmxdAnGrvm3J04SPCGEyH/xKel87X+JHsuOEvI4AWcbU37qW4OFvaoWmARPo9EQEBCQbRsDAwNc8/FvksgZmcnLQ0pSElerVc+jzjJm9K7VrJWj5t5nTqPKxXpnQ0NDpk2bRu/evRkxYgQlnjlL6+LFi7Ru3ZqpU6eyfPlywsPDGTZsGMOGDWPlypWcOnWKESNGsGbNGurVq0dkZCQHDx4EYP78+Vy7do0KFSowZcoUAJycnAgNDaVx48YMHDiQuXPnkpSUxJgxY+jRowd79uwB4IsvvmDv3r1s3rwZFxcXxo0bx+nTp7OcFcvK6dOn6dGjB5MmTaJnz54cOXKEIUOG4OjoSP/+/YGMJPT69ets2bIFGxsbxowZQ9u2bQkMDNQusUxMTOTbb79l9erVmJiYMGTIEN59910OHz4MwNq1a2nRogVVq1bNFIOxsbHOUs3Vq1czePBgDh8+jKIo3L9/n7Zt29K/f39+/vlnrly5wsCBAzEzM2PSpEmEhobSq1cvZs2aRZcuXYiLi+PgwYMoikJ6ejqdO3dm4MCB/Pbbb6SmpnLixInnLoXYvHkzI0eOZN68ebRo0YJt27bxwQcfUKJECZo2bfrc13H8+PHMmTOHMmXKMH78eHr16kVwcDBG+bgUUORc5PLlRK9fDwYGFP/uO8zLl8/T/jUahdDr0STEpmBhbcK1Ew8JOvJQEjwhhMgn+66GMW7TRR7EJAPwbk03vmpbDlvz17/1Izu3b9/WWaKZlbi4OG7fvo2np+drikpkRd6xvcW6dOlClSpVmDhxIsuXL9e5b/bs2fTu3ZtRo0YBUKZMGRYsWEDjxo1ZsmQJd+7cwdLSkvbt22NtbY27u7s24bG1tcXExAQLCwudpYBLliyhWrVqTJs2TXttxYoVuLm5ce3aNYoVK8by5cv5+eeftTNeq1evzpSAZmfu3Lk0b96cr7/+GoCyZcsSGBjI7NmzdZK7w4cPU69ePSAjYXNzc8Pf35933nkHgLS0NH744Qdq166tjaNcuXKcOHGCWrVqcf36dZo0aZKjmEqXLs2sWbO0t8ePH4+bmxs//PADKpUKHx8fHjx4wJgxY5gwYQKhoaGkp6fTtWtX3N3dAahYsSIAkZGRxMTE0L59e7y8vAAoV67cc8eeM2cO/fv3Z8iQIQB89tln2iWl2SV5o0ePpl27dgBMnjyZ8uXLExwcjI+PT46es8g/sQEBhM3JmJ12/uorrJs9/9/xZdw4G8bBP66TEJ2S6b4WH/hStpYkeEIIkVeiE1OZsi2QTWfuA+DmYM6MrpWoX7qIniPLWnx8fJ62E/lHkrw8pDI3x/vM6Ry1TTx1iruDPn5hO7cfl2FRo0aOxn4ZM2fOpFmzZnz++ec610+fPk1wcDBr167VXlMUBY1GQ0hICC1btsTd3Z1SpUrh5+eHn58fXbp0ybZ60unTp9m7d2+WB2DeuHGDpKQkUlNTqVu3rva6g4MD3t7eOX4+QUFBdOrUSeda/fr1mTdvHmq1mqCgIIyMjLTJG4CjoyPe3t7aSlAARkZG1Hjqdffx8cHOzo6goCBq1aqFoig53khc45l/v6CgIOrWravz+Pr16xMfH8+9e/eoXLkyzZs3p2LFirRu3ZpWrVrRvXt37O3tcXBwoH///rRu3ZqWLVvSokULevTo8dxlEUFBQQwaNCjT6zF//vxsY65UqZL2v5/0HRYWJkmeniWePcuDL8cAYN+nDw593s/T/m+cDSNg2aXn3m9oLCv8hRAir2y/GMqEPy/xOD4VlQo+qOfJ6NZlsTApuG/PDXNY/V0OO9c/+YudhUWLFuHr60vNmjVz9TiVSoWBhUWOvizr18fIxQWelyioVBi5uGBZv36O+nvZykWNGjWidevWjBs3Tue6RqPh448/5ty5c9qv8+fPc/36dby8vLC2tubMmTP89ttvuLq6MmHCBCpXrpxtVUeNRkOHDh10+jx37hzXr1+nUaNGeVLVM6vk6+l+nzdGVo/L6jV9cq1s2bI6SWF2LC11DynNLkaVSoWhoSE7d+7k77//xtfXl4ULF+Lt7U1ISAgAK1eu5OjRo9SrV48//viDsmXLcuzYseeOn9VYL/p+eXq56ZO2Go3mBc9U5KfUu3e5N3QYSmoqVk2b4jx2TJ72r9EoHPzjerZtDq27jkbz6j+nQgjxNguLTeaTNacZsvYMj+NTKV3Uio2D6zGhg2+BTvBu3rzJtm3bXtjOxsZGuxJJ6I8keVkYOnQogYGBnDx5Mt/GUBka4jzuq39vPPOG+9/bzuO+ei3n5c2YMYOtW7dy5MgR7bVq1apx+fJlSpcunenrSXVIIyMjWrRowaxZs7hw4QK3bt3S7q0zMTHJdATFkz49PDwy9WlpaUnp0qUxNjbWSViioqK4du1ajp+Lr68vhw4d0rl25MgRypYti6GhIb6+vqSnp3P8+HHt/REREVy7dk1n2WN6ejqnTp3S3r569SrR0dHamazevXuza9cuzp49mymG9PR0nQI1WcV45MgRnYTzyJEjWFtbaytRqVQq6tevz+TJkzl79iwmJiZs3rxZ275q1ap89dVXHDlyhAoVKvDrr79mOVa5cuWyfD2yW+IpCh51TAx3B32MOjISM19fis+Znee/G0KvR2e5RPNp8VEphF6PztNxhRDiTaTWKBy9EcGf5+5z9EYEao2CoiisP3WXFnP3E3D5IUYGKkY0K81fIxpQrWTBrXSu0WjYu3cvP//8M4mJidjY2GTb3s/PDwMDSTH0reB+XPAWsGnVCubPy3xOnrNzvp6T96yKFSvy3nvvsXDhQu21MWPGUKdOHYYOHcrAgQOxtLQkKCiInTt3snDhQrZt28bNmzdp1KgR9vb2bN++HY1Go11a6eHhwfHjx7l16xZWVlY4ODgwdOhQfvrpJ3r16sUXX3xBkSJFCA4O5vfff+enn37CysqKjz76iC+++AJHR0ecnZ0ZP358lr8owsPDOXfunM41FxcXPv/8c2rWrMnUqVPp2bMnR48e5YcffmDx4sVAxt7CTp06MXDgQJYtW4a1tTVjx46lePHiOss8jY2NGT58OAsWLMDY2Jhhw4ZRp04datXKKIQzatQo/vrrL5o3b87UqVNp0KAB1tbWnDp1ipkzZ7J8+fLnFosZMmQI8+bNY/jw4QwbNoyrV68yceJEPvvsMwwMDDh+/Di7d++mVatWFC1alOPHjxMeHk65cuUICQnhxx9/pGPHjhQrVoyrV69y7do1+vbtm+VYX3zxBT169KBatWo0b96crVu3smnTJnbt2pXj7w+hX0pqKveGjyA1JAQjV1dKLFmCwTOzw3khITb7BC+37YQQ4m0VcCmUyVsDCf23iAqAk7UpTlamBIZmFC2pWNyWmd0q4Vss+4RJ32JjY9m4caO2ine1atXw8/MjODg40zl5NjY2+Pn54evrq69wxVMkydMzm1atsG7enMRTp0kPD8fIyQmLGtVfywze06ZOnapz5kmlSpXYv38/48ePp2HDhiiKgpeXFz179gTAzs6OTZs2MWnSJJKTkylTpgy//fYb5f+t8jd69Gj69euHr68vSUlJhISE4OHhweHDhxkzZgytW7cmJSUFd3d3nU98Zs+eTXx8PB07dsTa2prPP/+cmJiYTPH++uuvmWavJk6cyKRJk1i3bh0TJkxg6tSpuLq6MmXKFG1lTchY7jhy5Ejat29PamoqjRo1Yvv27TpLFC0sLBgzZgy9e/fm3r17NGjQgBUrVmjvNzU1ZefOnXz//fcsW7aM0aNHY2FhQbly5RgxYgQVKlR47mtdvHhxtm/fzhdffEHlypVxcHDgo48+4j//+Q+Q8UvywIEDzJs3j9jYWNzd3fnuu+9o06YNjx494sqVK6xevZqIiAhcXV0ZNmwYH3+csb9To9HoVMDs3Lkz8+fPZ/bs2YwYMQJPT09WrlyZ46IxQr8URSH06wkknjiBgaUlbkuXYOxcNF/GMrPKWQU3S5uCUcZbCCEKooBLoQz+5QzPLmwPj0shPC4FIwMVo1t7M6CBJ0aGBXu26/r162zevJnExERMTExo3769ds++r68vPj4+3L59m/j4eKysrHB3d5cZvAJEpeTFRqg31JPD0GNiYjJNTScnJxMSEoKnpydmZmZ6ilDkh1WrVjFq1Khs9xcWVDNmzOCXX37h0qXnF8/ID/LzkD/CFy/m8YKFYGiI29KlWDVskC/jqNM0BPx0kVsXIrJtZ2VvSp9v62Fg8HJ7gIUQ4k2m1ig0mLlHZwbvWU7Wphz7qjmGBfj3qFqtZu/evdrtHi4uLnTv3p0iRQpmxc+3TXb5ydNkJk+IN0BiYiJXrlxh5cqVtGnTRt/hiDwQs3VrRoIHuEyYkG8JXnqamoBll7h9KQIDA1W2hVUa9CgjCZ4QQjzHiZDIbBM8yJjROxESSV0vx9cUVe7ExMSwYcMG7t69C0DNmjVp1aqVzmonUThIkifEG+DHH39kypQptGjRggkTJug7HPGKEk+eJHTceAAcPvoQ+5498mWctFQ12xdf4N6VKIyMDWg7pBKpyemZzsmzsjelQY8yeFXNn6WiQgjxJgiLyz7By2271+3q1av4+/uTlJSEqakpHTt21G7DEYWPJHlCPKN///46e/gKg1GjRmkPrheFW0pICPeGDUdJS8O6VSuKPnOGZV5JTU5n++IL3L8WjZGpIe2HVqJ42Yzqbp6VnTKqbcamYGljimsZO5nBE0KIF3CwMMlRu6LWBWtbQ3p6Ort37+bo0aMAFCtWjO7du+Pg4KDnyMSrkCQvC4sWLWLRokWZjgAQQoj8lB4Vxd2PP0EdE4NZ5UoUmzUTVT5sYk9NSmfbD+cJvRGDsZkhHYZVxrW0nfZ+AwMVxb0LbjlvIYQoaCLiU1iwJ/uzRlWAi60ZtTwLTvIUFRXFhg0buH//PgB16tShRYsWOkXcROEk/4JZGDp0KEOHDtVubBRCiPymSUnh3pChpN25g3Hx4rgtXoxBPhSxSU5IY+vC84TdisXUwogOw6vg7FmwS3gLIURBduVhLANWn+JeVBJmRgYkp2tQgU6FzSdrISZ28C0wRVcCAwP5888/SUlJwczMjM6dO2vPAxaFnyR5QgihZ4pGQ+hXX5F09iwG1ta4/bgMI8e835SfHJ/Gn/PP8vhuPKaWRnQaWRWnktZ5Po4QQrwtdlx+yKd/nCMhVY27owXL+9UgOCw+0zl5LrZmTOzgi18FVz1GmyE9PZ0dO3Zw4sQJAEqUKEH37t2xs7PTb2AiT0mSJ4QQeha+YAGx2/8GIyNKLFyAqZdXno+RGJvKlvlnibifgLm1MR1HVqVICas8H0cIId4GiqKweN8N5uy4iqJA/dKOLOpdDTsLE0oXtaalrwsnQiIJi0umqHXGEs2CMIMXERHBhg0bCA0NBaB+/fo0a9YMw9d8PrPIf5LkCSGEHkVv3EjE0mUAuE6ZgmWdOnk+RkJMCn9+f5aoh4lY2JjQaVRVHIpZ5vk4QgjxNkhOUzNm4wX+PPcAgL513fm6vS/GTx1ubmigKnDHJFy6dIktW7aQmpqKubk5Xbp0oWzZsvoOS+QTSfKEEEJPEo4eJXTiJAAcB3+CXdcueT5GfFQKf847S/SjRCztTOn8aVXsnC3yfBwhhHgbPIpNZtDPpzh/LwYjAxWTO5Xnvdru+g4rW2lpaQQEBHD69GkASpYsSbdu3aTuxBtOkrwCQKNRpFx5Npo0aUKVKlWYN2+evkN5JSqVis2bN9O5c2d9hyIKgJTgYO6NGAnp6di0b4/TiBF5PkZsRBJ/fn+W2MfJWDlkJHi2TpLgCSHEyzh/N5pBa07xKDYFewtjFr9XvcDN1j0rPDyc9evXExYWBkCjRo1o3LixLM98C+R9bW6RKzfOhvHzuCP4f3+WncsD8f/+LD+PO8KNs2H5Nmb//v1RqVTMmDFD57q/vz8qVd4kl02aNMm3c9vys++cWrVqVa43KIeGhtKmTZv8CUgUKumPH3N30Mdo4uIwr14d12nf5tnP3hMx4Uls/u4MsY+TsSliRpfPq0mCJ4QQL+nPc/d5Z9lRHsWmUNbZij+HNijwCd758+f58ccfCQsLw9LSkj59+sj+u7eIJHl6dONsGAHLLpEQnaJzPSE6hYBll/I10TMzM2PmzJlERUXl2xhCl4uLC6ampvoOQ+iZJimJu4OHkPbgASbu7pT4YSEGJjk7QDenoh8lsvm7M8RHpmDnbEGXz6th42iep2MIIcTbQKNRmBVwhZG/nyM1XUOLckXZOLgeJR0L7odmqamp+Pv7s3nzZtLS0vD09OSTTz7BKx+KeomCS5K8LCxatAhfX19q1qyZq8cpikJaijpHXylJ6Rz841q2/R384zopSek56k9RlGz7elaLFi1wcXFh+vTpz21z5MgRGjVqhLm5OW5ubowYMYKEhATt/YsXL6ZMmTKYmZnh7OxM9+7dgYyZwv379zN//nxUKhUqlYpbt24BGWeytG3bFisrK5ydnenTpw+PHz/W9pmQkEDfvn2xsrLC1dWV7777LlfPC2Djxo2UL18eU1NTPDw8MvURFRVF3759sbe3x8LCgjZt2nD9+v8PMH0yS+fv70/ZsmUxMzOjZcuW3L17N9txlyxZgpeXFyYmJnh7e7NmzRqd+1UqFf7+/gDcunULlUrFpk2baNq0KRYWFlSuXJmjR4/m+vmKwkPRaHjw5ZckX7yIoa0tbsuWYmSft4eORz5IYPN3Z0iITsHe1ZLOn1XFyj7vz9sTQog3XXxKOh//cprF+24AMLiJF8v61MDazFjPkT1fWFgYP/30E+fOnUOlUtGkSRP69OmDtbUcl/O2kT15WXjZw9DTUzX8OHJ/nsWREJ3Cfz89kKO2g+Y3xtg059PvhoaGTJs2jd69ezNixAhKlCihc//Fixdp3bo1U6dOZfny5YSHhzNs2DCGDRvGypUrOXXqFCNGjGDNmjXUq1ePyMhIDh48CMD8+fO5du0aFSpUYMqUKQA4OTkRGhpK48aNGThwIHPnziUpKYkxY8bQo0cP9uzZA8AXX3zB3r172bx5My4uLowbN47Tp09TpUqVHD2v06dP06NHDyZNmkTPnj05cuQIQ4YMwdHRkf79+wMZSej169fZsmULNjY2jBkzhrZt2xIYGIixccYv7sTERL799ltWr16NiYkJQ4YM4d133+Xw4cNZjrt582ZGjhzJvHnzaNGiBdu2beODDz6gRIkSNG3a9Lnxjh8/njlz5lCmTBnGjx9Pr169CA4OxshIfjTfRGGz5xC3cxcqY2NKLF6EiYdHnvb/+F48W+afJSkuDcfilnQcWRULm7ydJRRCiLfB3chEBqw+xdVHcZgYGTCzW0W6VC3x4gfqiaIonD17lu3bt5Oeno6VlRXdunXD09NT36EJPZF3km+xLl26UKVKFSZOnMjy5ct17ps9eza9e/fW7n0rU6YMCxYsoHHjxixZsoQ7d+5gaWlJ+/btsba2xt3dnapVqwJga2uLiYkJFhYWuLi4aPtcsmQJ1apVY9q0adprK1aswM3NjWvXrlGsWDGWL1/Ozz//TMuWLQFYvXp1pgQ0O3PnzqV58+Z8/fXXAJQtW5bAwEBmz56tk9wdPnyYevXqAbB27Vrc3Nzw9/fnnXfeATIqUf3www/Url1bG0e5cuU4ceIEtWrVyjTunDlz6N+/P0OGDAHgs88+49ixY8yZMyfbJG/06NG0a9cOgMmTJ1O+fHmCg4Px8fHJ8XMWhUPUb78RuXIlAK7Tp2NRvXqe9h9+J44/558lJSEdp5LWdBxRBTOrgvtpsxBCFFTHb0YweO0ZIhNScbI25cc+1alaMm9XXeSllJQUtm3bxsWLFwHw8vKiS5cuWFnJWaivQqNRcz/oMvHRUVjZ2VO8XHkMDArPfkZJ8vKQkYkBg+Y3zlHbB9ej2fbD+Re2az+sMsXK2OVo7Jcxc+ZMmjVrxueff65z/fTp0wQHB7N27VrtNUVR0Gg0hISE0LJlS9zd3SlVqhR+fn74+fnRpUsXLCyev0b99OnT7N27N8tfOjdu3CApKYnU1FTq1q2rve7g4IC3t3eOn09QUBCdOnXSuVa/fn3mzZuHWq0mKCgIIyMjbfIG4OjoiLe3N0FBQdprRkZG1KhRQ3vbx8cHOzs7goKCskzygoKCGDRoUKZx58+fn228lSpV0v63q6srkLHUQpK8N0v8gQM8nPoNAE4jR2Dbvl2e9v8oJJatC8+RkphOUQ8bOo6ojKmFJHhCCJFbv524w9f+l0jXKFQsbsuPfavjaltw9zSHhoayYcMGIiIiUKlUNGvWjPr162NgIDuyXsX140fYs+pH4iP/v6XIyqEIzfoPokztenqMLOckyctDKpUqx0sm3XwdsLQzzVR05WlW9qa4+Trk63EKjRo1onXr1owbN067nBFAo9Hw8ccfMyKLsu4lS5bExMSEM2fOsG/fPnbs2MGECROYNGkSJ0+efG7VSY1GQ4cOHZg5c2am+1xdXXX2xb0sRVEyVSl8er/i8/YuZvW4rKodZlcBMatxX1Qx8cny0Kcfr9Fosn2MKFySr1zh/qhPQaPBtksXHD/5JE/7D70Rw9aF50hLVuNSypYOwytjYi6/2oUQIjfS1Rq++SuIVUduAdChcjFmd6+EmXHBnLlRFIVTp04REBCAWq3GxsaG7t27U7JkSX2HVuhdP36ELXOnZboeH/mYLXOn0fGzcYUi0ZM0X08MDFQ07Fkm2zYNepR5LeflzZgxg61bt3LkyBHttWrVqnH58mVKly6d6cvk30qARkZGtGjRglmzZnHhwgVu3bql3VtnYmKCWq3WGedJnx4eHpn6tLS0pHTp0hgbG3Ps2DHtY6Kiorh2LfsCNU/z9fXl0KFDOteOHDlC2bJlMTQ0xNfXl/T0dI4fP669PyIigmvXrlGuXDnttfT0dE6dOqW9ffXqVaKjo587w1auXLksx326T/H2SXv0iLsff4ImMRGLOnVwnTwpT49KuH8tii0LMhK8YmXs6DBCEjwhhMitmMQ0+q88qU3wRrcqy4J3qxTYBC85OZn169fz119/oVarKVu2LJ988okkeHlAo1GzZ9WP2bbZu/pHNBp1tm0KAnk3oEdeVYvi93EFDv5xXWdGz8relAY9yuBVtehriaNixYq89957LFy4UHttzJgx1KlTh6FDhzJw4EAsLS0JCgpi586dLFy4kG3btnHz5k0aNWqEvb0927dvR6PRaJdWenh4cPz4cW7duoWVlRUODg4MHTqUn376iV69evHFF19QpEgRgoOD+f333/npp5+wsrLio48+4osvvsDR0RFnZ2fGjx+f5ZKD8PBwzp07p3PNxcWFzz//nJo1azJ16lR69uzJ0aNH+eGHH1i8eDGQsbewU6dODBw4kGXLlmFtbc3YsWMpXry4zjJPY2Njhg8fzoIFCzA2NmbYsGHUqVMny6WakFEwpkePHlSrVo3mzZuzdetWNm3axK5du171n0cUUpqEBO4OHkz6o0eYeHlRYsF8VHl4VMLdoEi2L75AepqGEj72tB1SCWOTgvmGRAghCqrgsHgG/nyKkMcJWJgYMrdHFfwquLz4gXpy//59NmzYQFRUFAYGBrRo0YK6devm+Vmrb6v7QZd1lmhmJS7iMfeDLuNWvlK27fRNkjw986paFM/KToRejyYhNgVLG1Ncy9i9lhm8p02dOpV169Zpb1eqVIn9+/czfvx4GjZsiKIoeHl50bNnTwDs7OzYtGkTkyZNIjk5mTJlyvDbb79Rvnx5IKOgSL9+/fD19SUpKYmQkBA8PDw4fPgwY8aMoXXr1qSkpODu7o6fn582kZs9ezbx8fF07NgRa2trPv/8c2JiYjLF++uvv/Lrr7/qXJs4cSKTJk1i3bp1TJgwgalTp+Lq6sqUKVN0lqKuXLmSkSNH0r59e1JTU2nUqBHbt2/XWTppYWHBmDFj6N27N/fu3aNBgwasWLFCe79Go9GpgNm5c2fmz5/P7NmzGTFiBJ6enqxcuZImTZq8/D+KKLQUtZr7n31OSmAQho6OuC1biqGNTZ71f/tSBH8vvYg6XUPJ8o60+aQCRgX0E2chhCio9l0NY/hvZ4lLTqe4nTn/7VeDcq5597s6LymKwvHjx9mxYwcajQY7Ozu6d++eq+J04sXio3N2fnRO2+mTSsntAWtvkSdHKMTExGDzzBu05ORkQkJC8PT0xMxMzqB6k6xatYpRo0YRHR393DYzZszgl19+4dKlS68vsAJMfh7+T1EUHn3zLVFr16IyNcX959WYV66cZ/2HnA8n4KdLaNIVPCsXofWAChgay8p7IYTIKUVRWH4ohGnbg9AoUNPDniXvV6eIlam+Q8tSYmIif/75J1evXgUytoh07NgRc/OCWxCmsAo5f5pN0ya+sF2PCdP0NpOXXX7yNJnJEyIXEhMTuXLlCitXrqRNmzb6DkcUQFFr1hD1b1XaYrNm5WmCF3w6jJ3LL6PRKHhVc6LlR+UxNJQETwghciolXc1/Nl9i/el7APSs4cbUzhUwMSqYv0vv3r3Lhg0biImJwdDQkFatWlGrVi1ZnpkP7lw6z+7/LnlhO2vHIhQvV/41RPRqJMkTIhd+/PFHpkyZQosWLZgwYYK+wxEFTNzu3TyaPgOAol+MxqZ1qzzr+9qJh+xaFYSiUShT05kW/cthIAmeEELkWHhcCp/8cprTt6MwUMF/2vnyQX2PApkwaTQajh49yu7du9FoNNjb2/POO+9QrFgxfYf2xkmKj2P/muVc3pdRR8HMyork+Pjntm/ab1ChOC9PlmtmYdGiRSxatAi1Ws21a9dkuaYQLyA/D5B08RK3+/ZFSUrCrmdPXCZNzLM3DleOhrLn5yAUBXzqutC0T7nXvm9XCCEKs8sPYhi4+hQPYpKxNjNiUe9qNCrrpO+wspSQkIC/v7/2aKny5cvToUOHt/bva35RFIWrRw+yd9WPJMZEA1C5VTsa9urHnYvnMp2TZ+1YhKb99H9OXk6Xa0qSlw3ZkydEzrztPw9pDx4Q0rMn6vDHWDZogNvSJaiM8mahROChB+xdewUU8G1YjCa9vFFJgieEEDkWcCmUT/84T1KamlJFLPmpXw28nKz0HVaWbt++zYYNG4iLi8PQ0JA2bdpQvXr1AjnbWJjFPg5j9/Il3DxzEgCH4m60GjSc4j6+2jYajTqj2mZ0FFZ29hQvV75AzODJnjwhhHgN1HFx3P34E9ThjzEtW5bi877PswTv4r57HPg945zIik1K0LBnGflDL4QQOaQoCgv3BDN3Z8bv0YZlivBDr2rYWhi/4JGvn0aj4dChQ+zduxdFUXB0dOSdd97BxaXgHudQGGk0as79s51Dv/9MWnISBoZG1O7Sg1qd38HIWPf7QoUBTmYlcbR0wcDMBFUhO15ckjwhhMgFRa0m8dRp0sPDMXSwJ+Kn/5Jy/TpGTk4ZRyVY5c2nw+d23eHwhmAAKrdwo3630pLgCSFEDiWlqhm94Tx/XQgF4MP6noxr64NRAdzLHB8fz6ZNm7h58yaQcYxVu3btMDUtmNU+C6vHd26x48eFhF7PqFJarGw5Wn08HMcSmQ+RT7r0mOitN1DHpGqvGdqaYNfBC/MKRV5bzK9CkjwhhMih2B07eDRtOukPH+reYWJCiaVLMHZ1zZNxTgfc4ph/xh/7an7u1OlUShI8IYTIoQfRSQxac4pL92MxNlTxTecK9KyZ+Y18QXDz5k02bdpEfHw8RkZGtGvXjipVqsjv/DyUnprKcf91nPDfgEadjom5OQ179adyyzaoDDIn/UmXHhPxS1Cm6+qYVCJ+CcLx/XKFItGTJE8IIXIgdscO7o8cBVltY05NJe3+fczLv1pJZUVROLX9Fie2hgBQs70nNdsVzMpvQghREJ25E8Wgn0/zOD4FR0sTlrxfnVqeDvoOKxONRsP+/fvZv38/AE5OTrzzzjsULVpUz5G9We4FXWLHjz8Q9SDjyAyvGrVp/uFgrB2zTtIUjUL01hvZ9hm99SZmvo4Ffn+8JHlCCPECilrNo2nTs07wAFQqHk2bjnXz5qgMX25TtqIoHP/zJqcDbgNQp3Mpqvt5vGTEQgjx9tl4+h5fbbpIqlqDj4s1/+1XgxL2FvoOK5PY2Fg2bdrErVu3AKhatSpt2rTBxMREv4G9QVISEziwdiUXdgUAYGlnT7MPPqZM7frZfnCaEhKjs0QzK+qYFFJCYjDzssvLkPOcJHkFQEGt3pMbq1atYtSoUURHR+frOB4eHowaNYpRo0bl6zhCPC3x1OnMSzSfpiikP3xI4qnTWNaulev+FUXhyMZgzu26C0D97qWp0qJgLi0SQoiCRq1RmBVwhWUHMpa5t/J15vueVbA01d/bXI1Gw+3bt4mPj8fKygp3d3cMDAwIDg5m06ZNJCYmYmxsTIcOHahUqZLe4nwTXT9xhN0rlpIQFQlAxWataPTeh5jlYM+8Ji77BC+37fRJkjw9u378SKZzOKwcitCsf/6dw9G/f39Wr14NgJGREW5ubnTt2pXJkydjaWn5Un327NmTtm3b5lmMz0saT548+dIxCvGy0sPD87Td0xRF4eC661zcm7GUpGHPslRqWiLX/QghxNsoLjmNkb+fY8+VMACGNyvNpy3K6vUs0cDAQAICAoiNjdVes7a2pnjx4ly5cgUAZ2dn3nnnHYoUKfh7uwqL+MgIdq9YSvDJowDYuxaj5cBhuJXPWRKdei+OuAP3ctTWwLrgz7pKkqdH148fYcvcaZmux0c+ZsvcaXT8bFy+JXp+fn6sXLmStLQ0Dh48yIABA0hISGDJkiU67dLS0jA2fnGpYXNzc8zNzfMl1qc5ORXMg0vFm80oh993OW33hKJR2P/bVS4ffAAqaNLbm/INi79MiEII8da5HZHAgNWnuB4Wj6mRAbPfqUzHysX0GlNgYCDr1q3LdD0uLk6b4NWoUYPWrVvn6P2VeDFFo+HC7n84sHYlqUmJGBgaUrNjN2p37YmxyYsrlKZHJBGz4zZJ53P2Qa2hrSmmnravGna+K3h1ZAsxRVFIS07O0VdKYgJ7Vi7Ltr89q5aRkpiQo/5ye6a9qakpLi4uuLm50bt3b9577z38/f2ZNGkSVapUYcWKFZQqVQpTU1MUReHOnTt06tQJKysrbGxs6NGjB48ePdL2t2rVKuzs7HTG2Lp1K9WrV8fMzIxSpUoxefJk0tPTtfdHR0czaNAgnJ2dMTMzo0KFCmzbto19+/bxwQcfEBMTg0qlQqVSMWnSJCBjuea8efO0fbworifPZ82aNXh4eGBra8u7775LXFxcrl4v8XYzr1QRVXZ7JVQqjFxcsKhRPcd9ajQKe365ok3wmvUpJwmeEELk0JHgx3RadJjrYfE425iy/pO6ek/wNBoNAQEB2bYxNzenbdu2kuDlkYj7d/lj8lfs+u8iUpMScfEqw/vT59Hg3b4vTPDU8alEb7nBw7mntQmeRRUn7Dp7Zfs4uw6lCnzRFZCZvDyVnpLCgn7d86y/+MgIfvigZ47ajli9AWMzs5cey9zcnLS0NACCg4NZt24dGzduxPDfIhKdO3fG0tKS/fv3k56ezpAhQ+jZsyf79u3Lsr9//vmH999/nwULFtCwYUNu3LjBoEGDAJg4cSIajYY2bdoQFxfHL7/8gpeXF4GBgRgaGlKvXj3mzZvHhAkTuHo14ywTqyzWUSuKkqO4bty4gb+/P9u2bSMqKooePXowY8YMvv3225d+vcTbQ1EUHk6ajJL6nPX3/27gdh73VY6LrmjUGnavDuLaiUeoVNDiA1/K1pIDb4UQIifWHL3FpK2BqDUKld3s+KlPdYravPx7oLxy+/ZtnSWaWUlKSuL27dt4enq+pqjeTOr0NE78uYHjm/5AnZ6OsakZ9Xv2oWqb9i+sa6FJURN/8B5xB+6jpKoBMC1rj21rD0yKZ7zfNLQyyeKcPFPsOpQqFMcngCR5Ajhx4gS//vorzZs3ByA1NZU1a9Zol0bu3LmTCxcuEBISgpubGwBr1qyhfPnynDx5kpo1a2bq89tvv2Xs2LH069cPgFKlSjF16lS+/PJLJk6cyK5duzhx4gRBQUGULVtW2+YJW1tbVCoVLi7Pf+O7a9euHMWl0WhYtWoV1tbWAPTp04fdu3dLkidy5PHixcT8+ScYGuI4aBAxmzfrFGExcnbGedxX2LRqlaP+1GoNO5cHcuNMGAYGKlp+VJ7S1aVkthBCvEiaWsPkrZf55dgdALpULc70rhUxMy4Yxeri4+PztJ3I2oNrV9ixbAER9zK+DzyrVKfFgKHYOGX/t1RRa0g48ZDY3XfQxGdMbBgXt8K2jQdmpe112ppXKIKZjx0px4+iiYzBwMEW09rVUBkVntSp8ERaCBiZmjJi9YYctb0XdIlNMya9sF3XsZMoUa5CjsbOjW3btmFlZUV6ejppaWl06tSJhQsXsnjxYtzd3XX2vgUFBeHm5qZNpAB8fX2xs7MjKCgoyyTv9OnTnDx5UieRUqvVJCcnk5iYyLlz5yhRooQ2wXsZOY3Lw8NDm+ABuLq6EhYW9tLjirdHzJYtPF74AwAuEyZg37MHTsOGZlTbDA/HyMkJixrVczyDp07T8M9/LxFy/jEGhipaD6xAqSqyz1QIIV4kKiGVIWvPcPRmBCoVfNnah08alypQ54hmteroVdoJXalJiRz6fQ1n/9kGioK5tQ1N+w/Cp37jbL8PFEUh6eJjYv+5RXpEMgCGDmbYtvbAvGKRrJdeBm5BFTAGs9gH/792vBj4zQTfjnn91PKFJHl5SKVS5XjJpHvlqlg5FNGpqvksa8ciuFeumi/HKTRt2pQlS5ZgbGxMsWLFdNaGP1u9UlGULH94nncdMmbPJk+eTNeuXTPdZ2ZmlidFWnIa17Pr3lUqFRqN5pXHF2+2xJMneTD+PwA4DvgI+549AFAZGr7UMQnpaWoCll3i9qUIDI0M8Pu4Ah4VC8eSDyGE0Kfrj+L4aPUp7kQmYmliyPx3q9LC11nfYelITEzk+PHjL2xnY2ODu7v7a4jozXLj9Al2L19CXETG3jnfRs1o3OcjLGyyL4CSfCOamL9DSLuXMXtqYGmMTYuSWNZ0QWX0nNIkgVtgXV/gmXoXsaEZ13v8XCgSPUny9MTAwJBm/QdlWV3ziab9BuXbeXmWlpaULl06R219fX25c+cOd+/e1c6aBQYGEhMTQ7ly5bJ8TLVq1bh69epzx6hUqRL37t3j2rVrWc7mmZiYoFar8zwuIXIi5WYId4cNh7Q0rFu3xumzz16pv7RUNX8vucDdoCiMjA1oO7gSbr4OeRStEEK8ufZcecSI384Rn5KOm4M5/+1bE28X6xc/8DUKCQlh06ZNxMXFoVKpsi2G5+fnh4GB1D3MqYToKPau+pGrRw8CYFvUmRYDh+FRqWq2j0t9EE9MwC1SrkUBoDIxwKphCawbFccgu/MTNWoIGEOmBA/+vaaCgLHg0w4K+JnWkuTpUZna9ej42bhM5+RZOxahab/8Oycvt1q0aEGlSpV47733mDdvnrbASePGjalRo0aWj5kwYQLt27fHzc2Nd955BwMDAy5cuMDFixf55ptvaNy4MY0aNaJbt27MnTuX0qVLc+XKFVQqFX5+fnh4eBAfH8/u3bupXLkyFhYWWFhYvHJcQrxIemQkdz/+GE1MDGaVK1Fs5gxUr/AHOTU5ne2LL3D/WjRGpoa0H1KJ4t72L36gEEK8xRRFYdmBm8wMuIKiQG1PB5a8Xx0Hy4JzPplarWbfvn0cPJiRgDg6OtKtWzeio6MznZNnY2ODn58fvr6++gq3UFEUhcv7drF/zXKSE+JRqQyo3r4z9br3znbVXHpkMrE7b5N4LiwjJzNQYVnbBZtmJTHMydl2t4/A00s0M0cGsfcz2nk2zPXzep0kycvCokWLWLRo0QtnkvJCmdr18KpZm/tBl4mPjsLKzp7i5crn2wzey1CpVPj7+zN8+HAaNWqEgYEBfn5+LFy48LmPad26Ndu2bWPKlCnMmjULY2NjfHx8GDBggLbNxo0bGT16NL169SIhIYHSpUszY8YMAOrVq8cnn3xCz549iYiIYOLEidpjFF4lLiGyo0lJ4d7QYaTdvYtxiRK4LV6MwStUrU1NSmfbovOEBsdgbGZIh2GVcS1tl3cBCyHEGyg5Tc24TRfZdPY+AL1rl2RSh/KYPG95nR5ERkayceNG7t/PiLFq1ar4+flhampKsWLF8PHx4fbt28THx2NlZYW7u7vM4OVQ1MMH7PrpB+5cugBAUQ8vWn08HOdSz1+Bpk5II27vXeKPPgB1xiyceaUi2LbywKhILrYIxT96cZvctNMjlZLbA9beIrGxsdja2hITE4ONjY3OfcnJyYSEhODp6YnZK7wJfFMsW7aMqVOncu/ePX2HIvTgTfh5UDQaHoweTez2vzGwscHjt18x9cr+rJzspCSmsXXheR6FxGJibkSHEZVxKQSHpwohhD6FxSYzaM1pzt2NxtBAxaQOvvSp66HvsHScP3+ev/76i9TUVMzMzOjQoQPly5fXd1iFnjo9ndN/+XN0/a+kp6ViZGxCvR7vUb1dZwyeU+BMk6om/vB94vbdQ0n59zgEL1ts23hiUiKXy3rvn4a/RsODMy9u22+b3mbysstPniYzeeKV3b17l+3bt8svOFGohc+bT+z2v8HYmBILFrxSgpeckMaW+ecIvxOHqaURnUZWxalkwdpDIoQQ+qTWKJwIiSQsLpmi1mbU8nQg8EEsA38+xcPYZGzNjVn8XjXqly44BaqSk5P566+/uHjxIgAlS5aka9eu2NnZ6TewN8Cjm8H8s2wB4bduAlCyQmVaDhyGnYtrlu0VtULC6YfE7ryDJi7jLDtjV0ts23hiWsYud1VXH12GPd/C1b9y0FgFNsXAvWBsqcqOJHnilVWrVo3ixYuzatUqfYcixEuJWr+eiB9/BMB1yhQs69R+6b6S4lL5c945Iu7HY2ZlTKdRVSlSQsplCyHEEwGXQpm8NZDQmGTtNTsLYxJS0klTK3g5WbK8X008ilhm08vrdffuXTZu3Eh0dDQqlYomTZrQsGFDWYL5itKSkzm87hfObN+Comgws7Sicd8BlG/c/LkV1JMvRxDzzy3Sw5MAMLQ3xbaVB+aVnbI+DuF5HgfDvmlwaROggMoAKvWE4tVh+xdPRnzqAf/27TejwBddAUnyRB4IDw/XdwhCvLT4w4d5OGkyAEWGDMGuS+eX7ishJoU/550jKjQBcxsTOo2qgmMxSfCEEOKJgEuhDP7lTKbahdGJGYdTly9mw2+D6mBjZpz5wXqg0Wg4ePAg+/btQ1EU7Ozs6Natm84ZveLl3Dp/hp0/LSI2PGN/m0/9xjTtNxALW7ss26eExBDzdwipd+IAMLAwwrpZSazquD7/OISsRN2G/bPg/K+g/Huklm9naDoOnLwzbls5Z1TZfLoIi02xjASvEByfAJLkCSHeYsnXrnF/5ChQq7Hp0IEiw4e9dF/xUSn8Oe8s0Y8SsbQ1odOnVbF3KTifQgshhL6pNQqTtwZmWZz+iciEVCxNCsbb0+joaDZt2sSdO3cAqFixIu3atcvR3nO1Rs2ZsDOEJ4bjZOFEtaLVMCwEsz+vQ2JsDPt//i+BB/cCYO3oRIuBQyhVtWaW7dMeJRATcIvkoEgAVMYGWDUojnXjEhiY5eJ7JTYUDs6B06tBk/GhAmX9oOl4cK2k29a3Y8YxCbePZBRZsXLOWKJZiP4NC8ZPkRBCvGbp4eHc/eQTNPHxmNeojuu33+RuDf9T4iKT8f/+LLHhSVg5mNL506rYOlm8+IFCCPEWORESqbNEMyuhMcmcCImkrpfja4oqa5cvX2br1q0kJydjYmJCu3btqFy5co4eu+v2LmacmMGjxP9XYHS2cGZsrbG0cG+RXyEXeIqicOXQPvau/omkuFhQqajq154GPftgYp75b2Z6dErGcQhnHv17HAJY1nTBpnlJDG1Mcz5wwmM49D2c/C+k//v9V6oJNP0PuGWdWAIZCV0BPyYhO5LkCSHeOprERO4OHkL6g1BM3N0psXAhBiY5O3tJo1EIvR5NQmwKljamWNqbsmXeOeIik7EpYkanT6ti45iLcs1CCPGWCIvLPsHLbbv8kJKSQkBAAGfPngWgePHidOvWDQcHhxw9ftftXXy27zOUZ+YrwxLD+GzfZ8xtMvetTPRiwh6x67+LuHU+o3JlETd3Wn08Atcy3pnaahLTiN13j/gj9yH93+MQyjti09oD46K5+AA1KRqOLIRjSyAtIeOaWx1o9p9CnbzlVK6TvLt376JSqShRogQAJ06c4Ndff8XX15dBgwbleYBCCJGXFLWa+198SfKlSxja2eH24zKM7HN2OPmNs2Ec/OM6CdEp2msqFSgK2BY1p/OnVbGyL5xHSAghRH5zzOFB5kWt9fN79MGDB2zcuJGIiAgAGjZsSJMmTTB8Tvn+Z6k1amacmJEpwQNQUFChYuaJmTR1a/rWLN3UaNSc/Xsrh/5YQ3pKCobGxtTp+i41O3bF0Eh336WSpib+SCixe++iJKcDYOJhg21bT0xLPv+ogExS4uH4kowELzkm45prFWj2NZRunvGH+y2Q6ySvd+/eDBo0iD59+vDw4UNatmxJ+fLl+eWXX3j48CETJkzIjziFECJPhM2aTfzu3ahMTCixeBEm7u45etyNs2EELLuU6fqTk0artXaXBE8IIZ7jYUwy3++8lm0bFeBim3Gcwuuk0Wg4evQou3fvRqPRYGNjQ5cuXfD09MxVP2fCzugs0XyWgsLDxIecCTtDTZdslgm+IcJu3WTHsoU8unkdgBLlKtBy0DAcipXQaadoFBLPPCJ2523UMRnHIRg5W2DbxhMzb/ucb6VIS4KTy+HQXEjMSNRxKgfNxoNP+7cmuXsi10nepUuXqFWrFgDr1q2jQoUKHD58mB07dvDJJ59IkieEKLAi164lcvVqAFynT8OiWrUcPU6jUTj4x/Vs25zcFoJPXVcMclO+WQgh3gKHrj9m5O9niUhIxczIgOR0DSqyLE7PxA6+GL7G36NxcXFs3ryZmzczzmcrV64cHTp0wMIi9/uqHyU8P8F7Wnjim1GVXKNRcz/oMvHRUVjZ2VO8XHkMDAxJS03h2IbfOLl1E4pGg6mFJY3e/4CKTVuheurICUVRSA6KzDgO4VEiAIa2Jti09MCiWtGcH4eQngpnf4YDcyAuNOOaQyloMg4qdC1UxVLyUq6TvLS0NExNMzY77tq1i44dM8qI+vj4EBoamrfRvSUUjUJKSAyauFQMrE0w9bTN3TkfLyEsLIyvv/6av//+m0ePHmFvb0/lypWZNGkSdevWzZMxEhISmDJlCuvXr+fBgwdYW1tTvnx5Ro8eTfv27fNkDCFyKm7fPh59Ow0Ap1GjsG3XLsePDb0erbNEMyvxUSmEXo+muHfOln4KIcSbTqNR+GFvMN/vuoaigK+rDYvfq8aVh7GZzslzsTVjYgdf/Cpkffh1frh69Sp//vkniYmJGBsb4+fnR7Vq1V6qCNeF8Assu7AsR22dLJxy3X9Bc/34Efas+pH4yMfaa1YORajYrBVBh/YS/TAjJyhTux7NPvgEK3vd2dmU27EZxyHcigVAZW6ETVM3rOq6ojLOYVKmTocLf8D+GRCdUQEVWzdoPAYq9wLDt7v0SK6fffny5Vm6dCnt2rVj586dTJ06FchYx+zoqN9KSIVR0qXHRG+9oZ2ehoxPMew6eGFeoUi+jdutWzfS0tJYvXo1pUqV4tGjR+zevZvIyMg8G+OTTz7hxIkT/PDDD/j6+hIREcGRI0e0a92FeF2SAwO5/9nnoNFg270bjh/nbv9wQmz2CV5u2wkhxJsuMiGVT/84x/5rGbNW79Z0Y1LH8pgZG+JRxJKWvi6cCIkkLC6ZotYZSzRf1wxeWloaO3bs4OTJkwC4uLjQrVs3nJxyn3xFJkcy7/Q8NgdvBkCFKss9eU/uc7ZwplrRnK0iKaiuHz/ClrnTMl2Pj3zM0Q2/AmBl70CzjwZTpqbuxEFaWCIx/9wi+fK/7wWNDLCuXyzjOASLHJ6NqNHA5U2wbzpEBGdcs3KGRl9Atb5glIvKm2+wXCd5M2fOpEuXLsyePZt+/fppy8lu2bJFu4xT5EzSpcdE/BKU6bo6JpWIX4JwfL9cviR60dHRHDp0iH379tG4cWMA3N3ddf79YmJi+OKLL/D39yc5OZkaNWrw/fff65QPnjFjBt9//z2JiYn06NEDJycnAgICOHfuHABbt25l/vz5tG3bFgAPDw+qV6+uE0tKSgpff/01v/32G2FhYZQsWZKxY8fy0UcfoVarGTRoEHv27OHhw4eULFmSIUOGMHLkSO3j+/fvT3R0NA0aNOC7774jNTWVd999l3nz5mFsXDAOUhX6lfbwIXc/GYySmIhF3Tq4TpyY609pLXNYqjmn7YQQ4k125k4Uw9ae4UFMMmbGBnzTuSLdq+vuwzI0UOnlmIRHjx6xYcMGwsMzks+6devSvHlzjIxy95Y4XZPOuqvr+OHcD8SlZhzO3cmrE9WcqzHpyCQAnWRP9e+C1DG1xhTqoisajZo9q37Mto2xqRl95yzC3Mpae00dm0LsrjsknHoIGkAFFtWdsWnhjpFdDv92Kgpc3Q57voWwyxnXzB2gwadQcwCYyNFFT8t1ktekSRMeP35MbGws9k9VpBs0aNBLrV9+kyiKgpKmyVlbjULUlhvZtonacgOT0nY5WrqpMjbI8RtXKysrrKys8Pf3p06dOtrlt9rYFIV27drh4ODA9u3bsbW1ZdmyZTRv3pxr167h4ODAunXrmDhxIosWLaJhw4asWbOGBQsWUKpUKW0/Li4ubN++na5du2Jtbf1sGAD07duXo0ePsmDBAipXrkxISAiPH2dM/Ws0GkqUKMG6desoUqQIR44cYdCgQbi6utKjRw9tH3v37sXV1ZW9e/cSHBxMz549qVKlCgMHDszR6yHeXOr4BO5+Mpj0sDBMSntRYv58VC+R/KenqV/YxsreFNcydi8RpRBCvBkURWHVkVtM2x5EmlrBs4glS96vho9LLioj5mNsJ06cYMeOHajVaiwtLenSpQulS5fOdV+nH51m2vFpXIvKKCRTzqEc42qPo0rRKgDYmNhkeU7emFpjCv3xCfeDLuss0cxKWkoyj2+H4Fa+EprkdOL23yP+0H3te2Szcg7Y+nlg7GyZs0EVBW7shj3fwIOMoy0wtYF6w6HOYDDN+j3m206lKErWc8qC2NhYbG1tiYmJwcZG9xdUcnIyISEheHp6YmaWUVFPk6rmwYQj+giVYlPqYWCS80+GNm7cyMCBA0lKSqJatWo0btyYd999l0qVKrFnzx66dOlCWFiYTgJYunRpvvzySwYNGkS9evWoXLkyS5Ys0d5fp04dkpOTtTN5Bw4c4L333uPRo0dUrlyZBg0a0L17d+rXrw/AtWvX8Pb2ZufOnbRokbNfekOHDtV+CgcZM3n79u3jxo0b2hLHPXr0wMDAgN9//z3Hr4d4NVn9POibkp7O3SFDSDhwEMMiRfD4/XdMShTPdT8hFx4T8ONFNOnZ/6r0+7gCXlWLvmy4QghRqMUlpzF240X+upixF6tdRVdmdKuItZn+V9UkJCTw559/cu1aRlJWpkwZOnXqhJWVVa76CU8MZ+7puWy7uQ3ISOZGVhtJtzLdMs3OqTVqzoSdITwxHCcLJ6oVrVaoZ/CeCDq8n+0LZgMZs5NFzEpgbmhFkjqex8n3tLOXbYd+QQlVaeL23kGT+O9xCO422LbxwNTDNucD3jqckdzd+ff9tbEF1P4kI8GzeL1VWAuK7PKTp+V6Ji8iIoIJEyawd+9ewsLC0Gh0Z67yck+XyD/dunWjXbt2HDx4kKNHjxIQEMCsWbP473//S3h4OPHx8Zn2WCYlJXHjRsbsY1BQEJ988onO/XXr1mXv3r3a240aNeLmzZscO3aMw4cPs2fPHubPn8/kyZP5+uuvOXfuHIaGhtolo1lZunQp//3vf7l9+zZJSUmkpqZSpUoVnTbly5fXOcPG1dWVixcvvuxLI94AiqLw8NtvSThwEJWZGW5LFr9Ughd8Ooydyy+j0Sh4VXXCq3pRDm8I1inCYmVvSoMeZSTBE0K8ta48jGXIL2e4+TgBY0MV49qWo389j5cqYJLXgoOD8ff3Jz4+HkNDQ1q1akWtWrVyFVuaJo1fg35lyfklJKQloEJFt7LdGFF1BPZmWRfbMjQwfOOOSUhLSebOxfMAFLcoSzXH5lgY/T/JSEyP5UzEboxURljtNyQmIaNiqZGTObZ+Hpj5Oub8db93GvZ+Azf2ZNw2NM1YktngU7Aq/IVrXodcJ3nvv/8+N27c4KOPPsLZ2blA/AAXFCpjA4pNqZejtikhMUSsvPzCdo4flMfU88WfeKiMDV7Y5llmZma0bNmSli1bMmHCBAYMGMDEiRMZMmQIrq6u7Nu3L9Nj7OzscjWGsbExDRs2pGHDhowdO5ZvvvmGKVOmMGbMGMzNzbN97Lp16/j000/57rvvqFu3LtbW1syePZvjx49nGuNpKpUq04cP4u0SuWo10b/9DioVxWbPwrxixVz3cfVYKLtXB6EoUKamMy36l8PA0ACvakUzqm3GpmBpk7FEU45NEEK8rTacvsd//C+SnKahmK0ZP7xXjWol9V9lOD09nd27d3P06FEAnJyc6NatGy4uLrnq53jocaYdn8bNmIyEpWKRioyrPY4KRSrkecwFlUajJnD/Hg6v+4X4yAiKW5SlftHOmdqZG1pTv2jnjNwgQcHAxgTbFu5YVHdGZZjDv5MPL8HebzP23gEYGGUUU2n0BdgUy7sn9RbIdZJ36NAhDh06pFOAQ2RQqVSocrhk0qyMPYa2JjpVNZ9laGuKWRn7fD9O4QlfX1/8/f2pVq0aDx8+xMjICA8PjyzblitXjmPHjtG3b1/ttWPHjuVojPT0dJKTk6lYsSIajYb9+/dnuVzz4MGD1KtXjyFDhmivPZlJFOJ5YnfuJGzWLACKfvklNi1b5rqPywfvs+/Xq6BAufquNHnPR5vIGRio5JgEIcRbLzlNzaQtl/n95F0AGpV1Yl7PKjhYmug5Mnj8+DEbNmzg4cOHANSsWZNWrVrlqiDbw4SHzDk1h39u/QOAvak9n1b/lE6lO2Ggyv0H64WRoijcOn+GA2tX8vjOLQBsnJypbdce0sg00fPktgLYtHLHukHxnG8lenwd9k7LqJoJoDKASu9CkzFg75E3T+gtk+skz8fHh6SkpPyI5a2iMlBh18Ery+qaT9h1KJUvCV5ERATvvPMOH374IZUqVcLa2ppTp04xa9YsOnXqRIsWLahbty6dO3dm5syZeHt78+DBA7Zv307nzp2pUaMGI0eOpF+/ftSoUYMGDRqwdu1aLl++rFN4pUmTJvTq1YsaNWrg6OhIYGAg48aNo2nTptjY2GBjY0O/fv348MMPtYVXbt++TVhYGD169KB06dL8/PPP/PPPP3h6erJmzRpOnjyJp6dnnr8m4s2QdOECD774EhQF+969cOjfL9d9nN99l0PrMw4+r9ikBA17lHltH7QIIURhcDsigcG/nCEwNBaVCj5tUZZhTUvrfVWDoiicOXOGgIAA0tLSMDc3p1OnTvj4+OS4j1R1Kj8H/syPF34kKT0JA5UBPb17MrTKUGxNc7GXrJALu3WT/b+s4M7FcwCYWlpSu0tPfMs2Impl0P9Pr8+CCjB1t8lZghd1C/bPgvO/gfLvKqzyXaHJV+BU9lWfxlst10ne4sWLGTt2LBMmTKBChQqZPhXJbgOg0GVeoQiO75fL4pw8U+w6lMq3c/KsrKyoXbs233//PTdu3CAtLQ03NzcGDhzIuHHjUKlUbN++nfHjx/Phhx8SHh6Oi4sLjRo1wtnZGYCePXty48YNxowZQ3JyMt26dWPw4MH8888/2nFat27N6tWrGTduHImJiRQrVoz27dszYcIEbZslS5Ywbtw4hgwZQkREBCVLlmTcuHFAxjl7586do2fPnqhUKnr16sWQIUP4+++/8+V1EYVb6r373B08BCU5GcvGjXD+93s5N04H3OKYf8aSnKotS1K3q5csSRdCiKcEXHrIF+vPE5eSjqOlCfPfrUqDMvl3rm9OJSYmsnXrVoKCMj489/T0pEuXLrl6X3ro/iFmnJjB7djbAFQrWo1xtcfh7eCdLzEXRLGPwzj8+xoCD+0DRcHQyIgqrdtTu2tPzK2sSTwXlqN+NHHPX6mWMdADODAHzvwMmrSMa95toek4cMn9FguRWa6ra16/fp1evXpx9uxZneuKoqBSqVCrX1xqvLDIbXXNl6VoFFJCYtDEpWJgbYKpp22hnDmYNGkS/v7+2uqa4u2h7+qa6thYbvXqTeqNG5j6+OD+yy8YWuWwNDP/ltbeFsKpv24BULOdBzXbe0qCJ4QQ/0pTa5gVcIWfDoYAUMPdnh96V8PFVv8VlW/dusWmTZuIjY3FwMCA5s2bU7duXQwMcras8l7cPWadnMXeuxnF44qYF+Gz6p/RvlT7t+bvQEpiAsf913Nm+5+o0zKSLp/6jWnwbh9si/5/H2PCmUdErbv2wv6KDKyImZdd5jviw+HwPDj5X0hPzrhWqik0+xpKVM/cXmSSb9U133vvPUxMTPj111+l8EoeURmosv5BEEK8kJKayr0RI0m9cQOjokVxW7ok1wne0U03OLvzDgB1u3hRrbV7foUrhBCFzsOYZIb9eoZTt6MAGNjQky/9fDA21O/eNLVazf79+zlw4AAADg4OdOvWjeLFc1ZNOTk9mZWXVrL80nJS1CkYqgx5r9x7DK48GCuT3B2vUFip09M4v2M7Rzf9QXJcLAAlfCvQ+L0PcSn9/+WSiloh/tA9YnbcfmGfhrammYsGJkXBkYVwbCmkJWRcK1kXmv0HPBrk2fMR/5frJO/SpUucPXsWb+/CM3XdpUsX9u3bR/PmzbXnqwkhCj9FUQidNJnEY8cwsLDAbdlSjHNROU3RKBz84xoX998HoEGPMlRu5pZf4QohRKFz6PpjRv5+loiEVKxNjZj9TmX8KuSuQmV+iIyMZNOmTdy7dw+AqlWr4ufnp3O+7/MoisK+u/uYeXIm9+Mzfv/XcqnFV7W+orR97g9HL4wUReHascMc+m010Y8yzjZ0KO5Go/c+oFS1mjqTOKkP4onaeJ20+/EAGLlYkP4w8bl969SUSInLSOyOLISUmIxrxapmJHdezUEmi/JNrpO8GjVqcPfu3UKV5I0YMYIPP/yQ1atX6zuUN9qkSZOYNGmSvsMQb5GIZT8Ss2kTGBhQ/Pu5mJUrl+PHajQK+9ZeIehwKKigyf/Yu+/wqKr0gePf6ZPeO0kISSgJCb333puoWFDsqyLqsvbeYdVV1AXr2v0pFqQTei+hE0KAJJBCeu+ZZGbu/f1xIRhpCaTC+TzPPuvcOXPnHSCZ+95zzvve0YHwQfXvpScIgnA9kiSZ/25O5MMN8cgyhPk4sujO7rR1r/tKicYSExPDypUrqa6uxmAwMGnSJDp3rltLg5SSFObvnc+O9B0AeNl68VSvpxgTOOaGWZ2WduIY2374mszEkwDYOjkz4NaZdB42CvVf+g7LZomSjamUbjsDEqiMWpwnBmHbwwvTsXyKlp/CWvLXmhJ6nCcFKzUlzJWw90vY8SFUnu2h7RkGw16EjhNEctcE6p3kzZkzhyeeeIKnn36aiIiICwqvREZGNlhwDWXYsGEX7fkmCELrVbxyFbkLFgDg9dKL2A8ZUufXSlaJDd8eJ2FfNioVjJjViQ59fRopUkEQhNaloLyaJxcfZlt8LgC39fLntcnhGHV1LIffSEwmE6tXryYmJgaAgIAAbrrppjr18K0wV/DV0a/49ti3mCUzWrWWe8Lv4cGIB7HV2TZy5C1DQUYa2//vWxL3KS2vdAYjPSfdRM9J09Aba/curjpdTOGSBCx5SkV9mwh3nCcHo3FQWmTYqHdhNDxHlc4VCRfUFGLQF6DiTdhboBRVKVNaWOAWolTLDL8J6rhPUrh29U7yZsyYAcB9991Xc0ylUjVa4ZVt27bx3nvvceDAATIzM/nzzz+ZOnVqrTGLFi3ivffeIzMzk/DwcBYsWMCgQYMaNA5BEFqOigMHyHz+eQBc77kH1zvuqPNrrRaJdf87xulDuajVKkbdH05ID8/GClUQBKFVOZhayGM/HSSj2IRRp+atqRHc3KNNc4fFmTNn+OOPPygqKkKlUjF06FAGDhyIRnP5xFOWZdalrOO9fe+RXZENwADfATzX+znaOrVtgsibX3lRIbt//5mYjVHIkoRKpSZi+Gj63XIH9i6utcZKJgvFa5Ioj1YSNLWDHpcpwbUrvscth1/vRoWMUZN+/ngp8Pv5/ACnAKXPXeRtoKl3yiFco3r/iSclJTVGHJdUXl5Oly5duPfee5k+ffoFzy9evJgnn3ySRYsWMWDAAD7//HPGjRtHXFwcAQEB9Xqvqqoqqqqqah6XlJRcc/yCIDSs6uRk0mY/hmw24zBqJJ5PP1Xn11rMVqI+jyUlNh+1VsXYhyIIimz+0t+CIAjNTZZlvt2VzDurj2O2ygS52/HpzO509G7e1liSJLFjxw42b96MLMs4Oztz00031eka73TRad7Z+w7RmdEA+Nn78UyvZxjmP+yGWJppNpk4sGope5f/gdmkzMi169GbwXfci1ubC/efV8blU7Q0sWYJpl0vb5zGB6G2+Uu6IFkh6lmUlueXoFLD2PnQ417Q6hvyIwn1UO8kLzCwaavOjRs3jnHjxl3y+Q8++ID777+fBx54AIAFCxawdu1aPv30U+bNm1ev95o3bx6vv/76NcUrCELjsRQWcuYfD2MtKsIYEYHvu++iusJd3HPMVVZWfxpD2olCtDo14x+JxD/M9covFARBuM6Vmsw898dRVh1VCnBMiPBh/vQIHIy6K7yycRUXF7NkyRJSUpSKjp07d2bixIlXbNVTbi7nsyOf8WPcj1hkC3q1nvsj7ue+zvdh1DZ/y4fGJklWjm3ZyK5ff6SsUNkP59UulCF33Yd/2IU96Kxl1RQtP0VlTB4AGjcjLjeFXrzye8oupcfd5ciSsv9OJHjNqlXPnVZXV3PgwAGee+65WsdHjx7Nrl276n2+559/nrlz59Y8Likpwd9fVNoThJZAqq4m7bE5VKekoPP1xX/RQtQ2Nld+IVBdaWHlwiNkJhajM2iYMDsSv/YujRyxIAhCy3ciq4RHfjxIUl45Oo2KF8Z34p7+bZt9puvYsWOsWLECk8mEXq9n/PjxdOnS5bJxybLMqqRVfLD/A3Irlf2EQ/2H8kyvZ/B3uP6v52RZJvnwAbb99A15Z5TE2NHDi0G3302HfoNQ/W0/nCzLVBzKoXjlaaQKC6jAflAbHEcGoNZf4gZqWXbdgqnrOKHRtOokLy8vD6vVipeXV63jXl5eZGVl1TweM2YMBw8epLy8nDZt2vDnn3/Sq1evC85nMBjqVHpXEISmJcsymS+8SOWBA6jt7fH//DO0Hh51eq2p3MyKjw+Tk1KK3kbLpDld8G7ndOUXCoIgXOd+P5DGS0uPYjJL+DoZ+e+d3eke0Lw3wKqrq4mKiuLgwYMA+Pr6Mn36dNzc3C77upMFJ3kn+h0O5iiv83fw57nezzG4zeBGj7klyD6dyLafviY1VilKY7Szp89NM+g6ZiJa3YUzspZCE4V/JlIVr/Q+1PnY4TI9FH0bh0u/SWWhsh+vLuy9rjxGaFStOsk75+93dc4VgTln7dq1TR2SIAgNKO+TTyhZuRK0Wtp8/BGG0NA6va6ytJplHx0mP60Mo52OyU90xSPgMl9ggiAINwCT2cpry4/xy74zAAxu78GCGV1xtWu65XWSJJGSkkJZWRn29vYEBgaSlZXFH3/8QX5+PgADBw5k2LBhly2uUlJdwqLDi/jlxC9YZStGjZGHIh/i7vC7MWiu/xv3Jbk57Fj8A8e3bwZAo9XSbdxk+ky9FaP9hQ3dZUmmbHcGJWuTkasl0KpwHBGAw+A2qC7V3N5qgQPfwOa3lUTvslTg6AuB/a/xkwnXqlUnee7u7mg0mlqzdgA5OTkXzO61ZBf7Radu5BKzOTk5vPzyy6xZs4bs7GxcXFzo0qULr732Gv369bvq8w4dOpSuXbuy4Gxpe0G4VkVL/iRv0acA+Lz+Gnb96/bFUV5cxbIPD1GYVYGNo54pT3TFze/CLzxBEIQbSUp+OY/8eJC4zBJUKvjnyPY8NiwEtbrplmfGxcURFRVVq8CdwWCguroaWZZxcHDgpptuIigo6JLnkGSJZYnLWHBwAQUmZd/ZqMBRPN3zaXzsr/+WOKayMqKX/sqhqBVYzWYAOg4YwsDb7sbJ8+LXwObscgr/SKA6tRQAfVtHXKaHovO4TAuJxA2w9kXIPaE89ugEnSbBtvfODvhrAZaz/4bGzgd187bbEFp5kqfX6+nRowfr169n2rRpNcfXr1/PlClTrvq8CxcuZOHChQ3eDuJiLvaLztHRkbFjxxIWFtZo7zt9+nTMZjPfffcd7dq1Izs7m40bN1JQUHBV5zObzRf0TBSEa1W+Zw+Zr7wCgNs//oHzRSrsXkxpgYllHx6iOLcSexcDU57shrPXjdEHSRAE4VKiYrN4+rcjlFZZcLPT89Ft3RgY2rQVhuPi4vj1118vOH6uurmfnx933nkntraX/p19LP8Y70S/Q0yusjQxyCmI53s/Tz/fq79J3VpYzGaOrFvFniWLMZUpyZp/eCRDZt6HV7uQi75GtkiUbjlDyeYzYJVRGTQ4jWuLXW8fVJdK7nPjYd2LkLBOeWzrpjQy7z5LaYfgHaFU2fxrERZHXyXBC5vckB9ZuEoqWZYvUwO1foKCghg+fDhvvPEGfn5+DXLOsrIyEhMTAejWrRsffPABw4YNw9XVlYCAABYvXsxdd93FZ599Rr9+/fjiiy/48ssvOXbs2DVXAi0pKcHJyYni4mIcHWuXEDaZTCQlJREUFHTFKk+XcqlfdOfceuutjZLoFRUV4eLiwpYtWxhyiQbSqampzJkzh40bN6JWqxk7diyffPJJzQzpa6+9xtKlS3n88cd56623SE5O5q677uL777+vdZ6kpCTatm3b4J9BaFka4ufh76pOnSL5ttuRSktxHD8O3/ffv2DT+MUU51aw7MPDlBaYcHAzMvWf3XB0r1uBFkEQhOuR2SrxbtQJvtyutMHqGejCf+/ojrdT01aalCSJBQsWXLZFlaOjI08++eRFVzQVmYr4+NDH/B7/OzIytlpbHunyCHd2uhOd5vq+0SzLMid3b2fHz99RnKMUNXFrE8DgO+8lqFvPSxakqUotofCPBCzZFQAYO7riPDUErfMllrJWFMDWf8PeL0G2gloHff4Bg58GG+faYyWrUm2zLFvZgxfYX8zgNYHL5Sd/1aAzebNmzSIlJYXBgwdz6tSpBjnn/v37GTZsWM3jc9UvZ82axbfffsuMGTPIz8/njTfeIDMzk86dO7N69eomb/UAyg+g+eyU+ZVIksSaNWsuOyYqKop27drVaemmTqercyUse3t77O3tWbp0KX379r2g2Iwsy0ydOhU7Ozu2bt2KxWLh0UcfZcaMGWzZsqVmXGJiIr/++it//PEHGo2GwMBAEhIS6Ny5M2+88QYAHnUsjiEIf2XJy+PMQ/9AKi3Fpls3fObNq1OCV5hVzrIPD1FeXI2zly1TnuyKvcv1Xy5bEAThUrKKTTz2fwfZn6LspXpwUBDPjO2I7lL7rxpRSkrKFXsQl5SUkJKSUmupplWy8kfCH3x86GOKq4oBGB80nn/1/Beetp6NGnNLkBYXy9Yf/0fWqQQA7Fxc6X/LnXQeOhL1JfYrStVWStYmU7YrA2RQ2+lwntwOm0iPi18vWs2w/2vY/A6YipRjHSbA6DfBLfjigak1EDSoAT6h0BgaNMl77bXXGvJ0gLLH60qTjY8++iiPPvpog793fZnNZt55550GO19JSQnz58+v09gXXngBvb5uG6a1Wi3ffvstDz74IJ999hndu3dnyJAh3HbbbURGRrJhwwZiYmJISkqqaSHxww8/EB4ezr59+2oqk1ZXV/PDDz/USuT0ej22trZ4e3vX89MKgkKqrOTMo7Mxp6ejCwigzaKFqOtQ9TYvrYzlHx2istSMq68dk5/oip3T9b/pXhAE4VJ2JOTxxC+HyC+vxsGg5b1bujC2c/N9P5eVldV73JHcI7wT/Q5x+XEAhLqE8kLvF+jp3bNRYmxJ8tPOsP3nbzm1X2nmrjMY6TVlOj0nTEN3mVUzpoRCCpckYC1UlsDadvPEaWI7NHaXmO1MWA9rX4C8eOWxZziMfQfaDW3IjyM0satO8qqrq0lKSiI4OBittlVv7btAU+7Jay7Tp09nwoQJbN++nd27dxMVFcW7777LV199VdMf8K89AsPCwnB2dub48eM1SV5gYKCYqRMalCxJZDz7HKaYGNROTkqrBJcrl/POSSlh+ceHqSq34O5vz+QnumJjL5qwCoJwY5Ikmf9uTuTDDfHIMoT5OLLozu60dbdrtpgqKio4dOhQncba29uTX5nPgoMLWJq4FAAHnQOzu81mRocZaNXX13Xn35UXFbLrt584umkdsiShUquJHDGGfjffgZ3zpb8TpQozRStPU3EwBwCNswGXaSEYO7he/AU5J5Tk7tRG5bGtOwx/CbrfLZZdXgfq/VNSUVHBnDlz+O677wCIj4+nXbt2PP744/j6+l7QmLw1mj17NrNnz65Z81pXOp2OF154oU5jU1JS+Omnn6447s4776zT0tOrKXpiNBoZNWoUo0aN4pVXXuGBBx7g1VdfZe7cuRedyv97awo7u+b7shCuTzn/+Q+l69ah0unw/+8nGC5TWe2czFPFrPzkMNUmK15Bjkya0wWD7fW9N0MQBOFSCsqreXLxYbbFK83Ab+vlz2uTwzHqmu+i/fjx46xcuZLy8vIrjnV0dGRnxU4W/bmIUrNSWGRqyFSe6P4E7jZNWySmqZlNJvav/JN9y//AXGUCILhnXwbdMQs3v0s3c5dlmcqjeRQtP4VUZlaamvfzxXFMIGrDRS71y/Nhyzxleea5fXd9H4HBT4FR9JG9XtQ7yXv++ec5cuQIW7ZsYezYsTXHR44cyauvvnpdJHlXS6VS1XnJZHBwMI6OjlfcfBwcHNzo7RTOCQsLY+nSpYSFhZGamsqZM2dqZvPi4uIoLi6mU6dOlz2HXq+/rmdAhcZT+MtiCv73NQA+77yN7dkZ48tJO1nIqkUxWKqs+IY6M2F2JHrj9X2HVxAE4VIOphYy+6eDZBabMOrUvDU1gpt7tGm2eMrLy1mzZg2xsbGA0vqqS5cubNy4ERkZFedvHJ97HOMWw4H9BwDo5NqJF/u+SBePLs0Sf1ORrFZit6xn168/UV6k7J30DmnPkDvvo01Y58u+1lpcReGyU5jilN6CWk8bXKa3xxB4kYIclmrY9xVsnQ8mZW8jHSfCqDcuve9OaLXqfTW0dOlSFi9eTN++fWvN6oSFhTVYsZUbwbmKlZerrjl27NhGSfDy8/O55ZZbuO+++4iMjMTBwYH9+/fz7rvvMmXKFEaOHElkZCR33nknCxYsqCm8MmTIEHr2vPwa+LZt2xIdHU1ycjL29va4uro2WZIqtF5l27eT9eabALjPeQynSZOu+JqUY/ms+ewoVrOEfycXxj0SiU4vlpcIgnDjkWWZb3cl887q45itMu3c7Vg0szsdvS9dea+xHTt2jFWrVlFRUYFKpWLAgAEMGTKErRlb2eO5h8j8SGyt59skVGoqOeJ2hAwycDI48Xi3x5keOh3NdbxsUJZlTh/cx/b/+5b8tFQAnLy8GXT7LNr3HXjZgnqyJFO+L4vi1UnIVVbQqHAY6o/jMH9U2r9dd8kyxK9VWiLkKxXr8YpQ9t0FDW6sjyc0s3onebm5uXh6XljJqLy8vM7VHQVFWFgYt956a5P3ybO3t6dPnz58+OGHnDp1CrPZjL+/Pw8++CAvvPACKpWKpUuXMmfOHAYPHlyrhcKVPPXUU8yaNYuwsDAqKytFCwXhikwnT5L+5D/BasVp6lTc61BE6fThXNZ+GYtklWkb6c6YB8PRNuNSJEEQhOZSajLz3B9HWXU0E4AJET7Mnx6Bg7F5lq2XlZWxevVq4uKUQimenp5MmTIFPz8/rJKV+Xvnk22XTbptOu4md4xWIyaNiTxjHqjARmvDssnLcLN1a5b4G4okWUk/foyyokLsnV3w6xSO+i8Ja/bpRLb+8D/OxB0FwGjvQN+bbqPL6PFor7AFx5xXqTQ1T1Jm43T+DrhOD0XnfZFtNNlxyr6705uVx3YeMPxl6DZT7Lu7ztW7T96QIUO4+eabmTNnDg4ODsTExBAUFMRjjz1GYmIiUVFRjRVrk2vsPnnnSJJESkoKZWVl2NvbExgYKGa/hFblan8ezNk5JM+YgSUrC9vevQn46ktUV1jynLA/m/VfxyFLMsHdPRl1Xxiav9+1FARBuAGcyCrhkR8PkpRXjk6j4oXxnbinf9tmuekuyzKxsbGsXr2ayspKVCoVgwYNYvDgwTUF+vZl7eO+tfdd8Vxfj/maXt5XXrLfUiVE72LTt19QVpBXc8ze1Z3h9zyEZ1AwO375nhM7twKg0enoPm4yvafegtHO/rLnla0ypdvTKNmQChYJlU6N4+i22A/wvbCpeXme0g7hwDcgS6DRQ99HYdC/wNh8M7zCtWu0Pnnz5s1j7NixxMXFYbFY+Oijjzh27Bi7d+9m69at1xR0S9HU1TXVanWtfjCCcCOQyss588jDWLKy0LdrR5tPPr5ignd8VyabfziOLEOHPt4Mv7sj6mbo9SQIgtDcfj+QxktLj2IyS/g6Gfnvnd3pHnDlasSNobS0lFWrVnHixAkAvLy8mDp1Kj4+PrXG5Vbk1ul8dR3XEiVE72L5Bxe20yoryGP5B++gVquRJAmAsEHDGDDjLhw9rtzrrzq9jMI/4jFnKMVrDCHOuNwUitb1bzdWLdWw93PY+h6c7SlIp8nKvjtXca15I6l3kte/f3927tzJ+++/T3BwMOvWraN79+7s3r2biIiIxoixyV1tdU1BEOpGtlpJ/9dTVMUdR+Pqiv/nn6G5ws9a7NY0tv6s9PAJG+TL0Ns7XHjnUhAE4TpnMlt5bfkxftl3BoDB7T1YMKMrrnZN3zZGlmViYmJYs2YNJpMJtVrN4MGDGThw4AXttSRZ4kTBiTqd18O2dbZnkiQrm7794gpjJPzDIxly1/14BV252IlstlKyMZXSbWkggcpGi/OEdtj28Kw9YyvLcHI1rHsJCk4rx7wjYew8aDvwWj6W0EpdVRm6iIiImhYKgiAI9ZU9bz5lW7agMhjwX7QQvf+lS0MDHN6Qys7flc3ikcPaMPDWULEHWBCE65ZVktmbVEBOqQlPByO9g1zRqFWk5JfzyI8HicssQaWCuSPbM3tYCOpmuOFVUlLCypUriY9Xbr75+PgwZcoUvL0vbLaeWJjIm3ve5GDOwcueU4UKL1svunt2b5SYG1v68WO1lmheSt+bbqtTgld1upjCJQlY8ioBsIlwx3lyMBqHvyX0WbGw9nlI2qY8tvOEEa9A1zvEvrsb2FXXGs/JySEnJ6dmyvmcyMjIaw5KEITrV8H331P4448A+P7739h07XrZ8ftXJxO9XLkr2X1MIH2nthMJniAI162o2ExeXxFHZrGp5piPk5HJXXz5v+hUSqssuNnp+ei2bgwMbfq+cbIsc/jwYaKioqiqqkKj0TBkyBAGDBiARlM7oai0VPJFzBd8G/stFtmCjdaGUQGjWHF6hXIuzpeFONdO4dnez7baipplZ9sfXEl58eXHSSYLxWuSKI/OAkDtqMdlSgg24X8rRlOWC5vfgoPfn913Z4B+s2HQXDA4XNVnEK4f9U7yDhw4wKxZszh+/Dh/r9miUqluuB5p9axbIwjXpbr+HJRu3Ej2vPkAeD71LxzHjrnsOaOXneZAVAoAvScF0XN88xQUEARBaApRsZk88uNB/v4bNbPYxOfblJtdPQNd+O8d3fF2uraib1ejuLiYFStWkJiorKzw9fVl6tSpF626vj1tO29Hv016WToAQ/2H8kLvF/Cx92FYwDClymZFds14L1svnu39LCMDRzbNh2kElaWldRpn73zpvZOVcfkULU3EWlINgF1vb5zGBaG2+cslu6UKoj+Dbe9D1dnq7OHTYOTr4BJ41fEL15d6J3n33nsv7du353//+x9eXl437AWX7mx524qKCmxsbJo5GkFoXhUVFcD5n4uLqYw9RvpTT4Ms43zrrbjef/8lx8qyzM7fEzmyUdlz0v+mELqNDmjYoAVBEFoQqyTz+oq4CxK8v7IzaPjxgT4Ym7hljCzLHDx4kLVr11JdXY1Go2HYsGH069fvgtm7nIoc/r3336xLWQeAt503z/d+nuEBw2vGjAwcyTD/YRzMOUhuRS4eth509+zeamfw8s6ksOOX7zm1P/qKYx3c3PHrFH7BcWtpNUUrTlEZoyz31LoZcb4pFGOw8/lBsgwnVir77gqTlWM+XZV9d4H9r/2DCNeVeid5SUlJLFmyhJCQkMaIp0WoS3VNjUaDs7MzOTk5ANja2t6wCa9w45JlmYqKCnJycnB2dr7gy/4cc3o6Zx55GLmyErsBA/B++aVL/rzIkszWX+I5tk25+zv4tvZEDG3TaJ9BEAShJdibVFBriebFlFdZOZRaRL/gpushV1RUxPLlyzl9WplJbNOmDVOmTMHDo3ZxFKtk5ZeTv/DJoU8oN5ejUWm4s9OdzO46G1ud7QXn1ag1rbpNAkBJbg67fvuJY9s2gSyjUqlpEx7Bmdgjl3zNsFkP1eqXJ8syFQdzKF51GqnCAmqwH9QGp5EBqP6azGfGKP3ukrcrj+29YeSrEHkbiLZbwkXUO8kbMWIER44cua6TvLpW1zy3ufhcoicINypnZ+eLbrYHsJaWcubhR7Dm5mFo3x6/jxagusSMnyTJbP7+OCf2ZIEKhs3sSNgA38YMXRAEoUXIKb18glffcddKkiQOHDjA+vXrqa6uRqvVMnz4cPr27XtBL99j+cd4Y/cbxOUrDdAj3SN5ud/LdHTt2CSxNrWKkmKi//yVI+tWYbVYAAjt058BM+7Czc//on3yHNzcGTbrIUL7nJ9xsxSYKPwzgaqEIgB0Pna43Nwevd9f+uWV5cCmN+HgD4AMWiP0nwMDngTD5fvqCTe2eid5X331FbNmzSI2NpbOnTtfsDxr8uTJDRZcS6dSqfDx8cHT0xOz2dzc4QhCs9DpdLVm8GSrlYr9B7Dk5qJxdSH/y6+oSkhA4+GO/2eforG/+JeS1Sqx4Zs4EvfnoFKrGHlvJ9r3unjiKAiCcL3xsDfUaZynQ+PvxSsoKGD58uUkJycDEBAQwOTJk3F3r13opay6jP8e/i8/n/gZSZZw0DnwRPcnuLn9za126eXlVFdWcGDVMvavXEJ1pVLx0j88kkF3zMInpEPNuNA+/Qnu1UeptllUiL2zC36dwmtm8GRJpmxXBiXrkpGrJdCqcBwZiMMgP1Tner+aTRD9KWz7D1Sf3evXeTqMfA2cxfYF4crqneTt2rWLHTt2sGbNmgueuxELr4CydPNSy9QE4UZSsm4d2e/Mw5KVVfsJvR7/Tz9D53vxWTmrWWLtV7EkHclDrVEx+oFwgrtduTmsIAjC9SA+u5T315287BgV4O2ktFNoLJIksW/fPjZs2IDZbEan0zFixAh69+5da/ZOlmXWp6zn33v/TU6lspppXNA4nun1DO42TV/xs7FZzGZiNqxhz5LFVJYoDcY9g4IZdMc9BEZ0vej2AxVqPIwBuNl5ozbqUaH8+Zmzyyn8PYHqM0ripg9yxOWmUHQeZ5e0yjIcXw7rXoYipfAYvt2VfXcBfRv/wwrXjXoneY8//jh33XUXL7/8Ml5eXo0RkyAIrVDJunWkP/Gk8gX1d9XVmDPSsel84WZzc7WVqM+OkhpXgEarZuw/OtM24vq7SBAEQfg7k9nKfzcl8vm2U5itMgatmiqLhApqFWA5l0K8OikMTSP1xMvPz2fZsmWkpqYC0LZtWyZPnoyra+2kMq00jXei32F7urI3zN/Bn5f6vER/v+uv8IckWTmxYys7f/2JklylEqiztw8Db7ub9n0GoLrEXrjK2DyKVpzCWlxdc0ztqMfQ1pHKY/lglVEZNDiND8Kulzeqc3+nGYeVfXcpO5XHDj7KzF3ErWLfnVBvKrmePQAcHBw4fPgwwcFXbuLY2p3bk1dcXIyjo2NzhyMILZZstZI4YuSFM3jnqFRovbwI2bgB1V9mvatNFlYviiE9vgitXs34RyPx79h4d6kFQRBail2Jebzw51GS85XqxCM7efHGlHBi0oou2ifv1UlhjO3s0+BxSJJEdHQ0GzduxGKxoNPpGDVqFD179qw1e2eWzHx37Ds+P/I5JqsJrVrL/Z3v54GIBzBqm76dQ2OSZZnTB/ex45fvyUtNBsDOxZV+02+n87BRaLSXniOpjM0j/8fjlz2/sZMrzlND0DqdXaJbmqXsuzv0EzX77gY8ofxPb9dAn0q4XtQ1P6n3TN5NN93E5s2bb4gkTxCEuqnYf+DSCR6ALGPJyqJi/wHs+vQGoKrSwspPDpN1ugSdUcPEx7rgG+LcNAELgiA0k4Lyat5edZw/DqYB4Olg4I0p4YwJ90alUuHrbMOoMG/2JhWQU2rC00FZotkYM3h5eXksXbqUtDQllqCgICZPnoyLS+0+bgezD/LmnjdJLFL64/Xy7sVLfV+inVO7Bo+puaWdOMaOn78j/YRSRMZga0evKTfTfdwkdIbLJ7OyJFO04tRlx6hstbjO7IRao1b23e1ZCNs/gOoyZUDELTDiVXD2b5DPI9y46p3ktW/fnueff54dO3YQERFxQeGVxx9/vMGCay51aaEgCMJ5ltzceo0zlZlZ/vFhclNLMdhqmfR4V7zaitlyQRCuX7Is8+ehdN5adZyC8mpUKpjZJ5Cnx3bA0Vj7WkqjVjVqmwRJkti9ezebNm3CarWi1+sZPXo0PXr0qLW/rMhUxIcHP2RJwhIAXAwuPNXrKSa1m3TdtY3KTU1mx8/fcfrgPgC0Oj3dxk+m1+Tp2Ng71OkcVUnFtZZoXoxcYaE6uRijaQusewWKleWx+PVU9t35976WjyEINeq9XDMoKOjSJ1OpavqoXA/Eck1BqJvy6L2kzpp1xXEB332HqlNXln90iPz0coz2OqY82RX3NnX7AhUEQWiNUvLLefHPWHYkKiX1O3g58M5NEfQIdLnCKxteTk4Oy5YtIz1d6UUaHBzMpEmTcHZ2rhkjyzLLTy3nP/v/Q2FVIQDTQ6fzzx7/xMlw6dZSrVFxTha7fv2JuB1blF53ajURw0bT9+bbcHCt3/7wisM5FPxy+QI6AK7ef2Jb9D/lgaOfsu+u881i351QJ422XDMpKemaAhME4fpj06M7Khsb5LMlpS9wdk+eFNKZ5f85SFF2BbaOeqY82Q1XX7HfQBCE65PZKvHFttN8vDGBKouEXqvmiRGhPDioHXpt017QW61Wdu7cydatW7FarRgMBsaMGUO3bt1qzcqdLj7Nm7vfZH/2fgBCnEN4pd8rdPPs1qTxNraK4iL2/LmYI+vWIFmVXnft+w5kwIyZuPq2uapzyhapTuPU+XvBaKv0uus/B/QXNosXhGtV7yRPEATh74p///2yCR6A3ZPPs/TDw5TkmbB3MTDlyW44e4kvNkEQrk8HUwt5YclRTmQppfIHhLjx9tQI2ro3/Y2trKwsli1bRmZmJgChoaFMmjSp1iyAyWLiy6Nf8nXs11gkC0aNkYe7PMzd4XejU+sudepWp6qiggOr/mT/yqWYTcr3VkBEVwbdPgvv4NCrOqcsyZTtzKA46txqNpnzNVH/SkJDPoYuYTBqMTj5XdX7CUJd1CnJmzt3Lm+++SZ2dnbMnTv3smM/+OCDBglMEITWoeLAAbLeehsAx0mTqNi3r1YRFq2XFzaPP8/6aDvKCk04uhuZ8mQ3HN1tmitkQRCERlNqMvPe2pP8sCcFWQYXWx0vTQjjpu5+Tb6PzWq1sn37drZt24YkSRiNRsaNG0dkZGStWHal7+Kt6Lc4U3oGgEF+g3ihzwu0cbi6Ga2WyGI2c2TdaqL/XExlaQkAXu1CGXT7LAIju179eYtMFP4aT9VppX+eTpWIWQ4GJOCvs7USoMJZ9wWqHi+KBE9odHVK8g4dOoTZbK75b0EQBABzVhZpTzwJFgsOY8fi++6/kSxWklbtpSy7BHsvR5y6h7Ny4VEqiqtw9rJlypPdsHcxNHfogiAIDS4qNotXl8eSXVIFwE3d/XhpQhiudvomjyUzM5OlS5eSna30d+vQoQMTJ07EweH8Hui8yjze3fsua5LXAOBp48lzfZ5jZMDI66awiiRZOb59Czt//ZHSPKX4l4uPHwNvu4vQPgOu+nPKskzFoRyKlp1CrrKi0qlx6laE3ZEnMUn9KDI/hBWPmvEa8nHWfYGNZjeUZTfERxOEy6pTkrd58+aL/rcgCDcuqaqKtDmPY83Lw9C+Pb7vvM3pw7lsX5xAeVEVoAdMsPYAyODmZ8fkJ7ph69j0FzuCIAiNKbO4kleWHWN9nHLx3tbNlrenRTAgpH6FOxqCxWJh27Zt7NixA0mSsLGxYfz48XTu3LkmobFKVn6L/42PD35MqbkUtUrNHR3vYHbX2djr7Zs85sYgyzKnDuxlx8/fkZ+mVLC0d3Gl3y130HnoKNR/6dlaX9ZyM0VLE6k8qhTS0Qc44HJLe3Rx/wUV2Gh2Y1RHUyWFI+GCmkIM6mOoVGf37Nl7XfPnE4QrqfeevPvuu4+PPvqo1p0ggPLycubMmcPXX3/dYMEJgtAyybJM1quvYTp6FI2TE20W/pekk2VEfR57kcHK/3UdGSASPEEQritWSeaH3cm8t/Yk5dVWtGoV/xjSjjnDQzHqrj6JuFoZGRksXbqUnJwcADp16sSECROwtz+fuB3PP86be97kaN5RAMLdwnm538uEu4U3ebyNJe14LNv/7zsy4pWm5EY7e3pPvYWuYyei01/bSpLKkwUU/h6PVGoGtQrHkQE4+J1EteQJyDxcM06lkjBqjv7t1Spw9IXA/tcUgyDURb1bKGg0GjIzM/H09Kx1PC8vD29vbywWS4MG2JxECwVBuLiCH34k++23Qa0m4Ksvsenbj+9f2HV2Bu/i7F0M3PV2f9SN0NBXEAShqcVllPD8n0c5cqYIgO4Bzsy7KZIO3k3fEsZisbBlyxZ27tyJLMvY2toyYcIEwsPPJ27l5nIWHl7IT8d/QpIl7HR2PN7tcWZ0mIFG3fQJaWPITUli+8/fkXRIqQyq1RvofrbXndHu2mYopWorxatOUx6t7DnXetrgOqAc/dG3IG2vMkhnByEj4PiKs6/66yX22e++W7+HsMnXFItwY2vwFgolJSXIsowsy5SWlmI0Gmues1qtrF69+oLETxCE60959F6y588HwPPpp7Hr35/0k4WXTfAAygqryEwowq9D0/eFEgRBaCiV1VYWbIznq+1JWCUZB4OWZ8Z15M7eAc1yEystLY2lS5eSl6csHQwPD2f8+PHY2SlVPGVZZlPqJubtnUd2hbKcdEzbMTzT6xk8ba+P67ai7Cx2/fojx3durel1FzliDH1vug1712tvKl+VWkLh4pNY8k0A2EeqcDK9hWrN2S1MWiP0flBpiWDnDnHLIepZKMk4fxJHXxg7XyR4QpOpc5Ln7OyMSqVCpVLRvn37C55XqVS8/vrrDRpcc1m4cCELFy7EarU2dyiC0KKY09NJf/JJsFpxnDQJ13uUBujlJZdP8M6p6zhBEISWaGt8Li8tPcqZAqX0/rjO3rw2ORwvR+MVXtnwzGYzmzdvZvfu3ciyjJ2dHRMmTCAsLKxmTEZZBvOi57ElbQsAfvZ+vNT3JQb6DWzyeBtDeVEhe5b8QsyGtTW97jr0G8SAGTNx8bn26pWyVaJkYyqlm8+ADBp7FS5uv2GM/1YZoNFDj3th0Fxw8D7/wrDJ0HECpOxSiqzYeylLNK+TGVOhdahzkrd582ZkWWb48OH88ccfuLq61jyn1+sJDAzE19e3UYJsarNnz2b27Nk106GCIIBUWcmZOXOwFhZiDAvD5803ajbx2znWbY9DXccJgiC0JHllVby5Mo5lh5WZGR8nI29M6cyosOYpoJGamsqyZcvIz88HICIignHjxmFrq/QeNUtmfoz7kU+PfEqlpRKtWsu94ffyYOSD2Ghbf/uaqopy9q9YwoFVyzBXKbNrbbt0Z+Btd+PVLqRB3sOcXU7Br/GY08sAsHU+iXPlK6izy0GthW4zYfDT4HSJNhNqDQQNapBYBOFq1DnJGzJkCABJSUkEBARcN6V1BUG4MlmWyXz5FarijqNxdaXNfz9B/Zcl23lpZVc8h72LAZ9Q50aMUhAEoWHJssxv+9N4e/VxiivNqFUwq39b/jW6A/aGeteuqzNJkkhJSaGsrAx7e3sCAwNRq9VUV1ezadMm9uzZA4C9vT0TJ06kY8eONa89nHOYN/a8QUJhAgDdPbvzSr9XCHYObrR4m4qluprD61YRvfQ3TGd73XmHtGfQ7fcQ0DmyQd5DlmTKdmVQHJUEFhm1xoSz+kNsTTtBrYbIO2DIM+Aa1CDvJwiNpd6/oQIDAxsjDkEQWrCCb76lZOVK0GjwW/AhurOz9rIsc2BNCtHLT1/xHANvDRVFVwRBaDVO5ZbxwpKjRCcVABDm48j86RFEtnFu1PeNi4sjKiqKkpKSmmOOjo706NGDI0eOUFCgxNO1a1fGjBmDjY0yM1dcVcyCgwv4Pf53AJwNzsztMZepIVNb/Y15yWolbtsmdv32f5TmK73uXH3bMPC2uwnp3a/BPp+lqIrC3+OpSiwCwKA+gKv2IzSqQug8HYY+D+6hDfJegtDYGu82lCAI14XyXbvIef99ALyeew673r0BJcHbveQUh9Yr/Yd6TWiLq589O35NqFWExd7FwMBbQwnudn1s8BcE4fpWZbHy2ZbTLNycSLVVwkan4Z+jQrlvQBBajbpR3zsuLo5ff/31guMlJSU1fYodHByYPHkyoaFKsiHLMitPr+T9/e9TYFISwKkhU5nbYy4uxtZd6EqWZRL372HHz99TkH4GAHs3d/rfcgfhg0dcU6+7v79PxeFcipbGI1fJqDDhpP0fdpo1qMImwdAXwCvsyicShBZEJHmCIFxS9ZkzpP9zLkgSTtOm4TLzTgAkSWbrzyeJ267sTxlwcwhdRwYA0K6rB5kJRZSXVGHnqCzRFDN4giC0BnuTCnh+SQyncssBGNLeg7emdsbf1bbR31uSJKKioi47RqfT8cgjj9TsvUsuTuatPW8RnRUNQDundrzc92V6evds9HivlSRZST9+jLKiQuydXfDrFI76L4VJzhyLYfv/fUdm4kkAjPYO9Jl6C13GTLjmXnd/ZS03U/TbUSpPKH/netUJXHQfoOsQAcO2gm/XBnsvQWhKIskTBOGipIoK0mY/hrW4GGNEBN6vvYpKpcJqldj4TRwJ+3NQqWDozI6EDThfdEmtVok2CYIgtCrFFWbmRx3n573KbJG7vZ5XJoUzKdKnyZY6pqSk1FqieTFms5ns7Gx8A3z539H/8dXRrzBLZgwaA/+I/Af3hN+DTqNrknivRUL0LjZ9+wVlBXk1x+xd3Rl+z0M4enqx45fvST58AACtwUCP8VPpNfkmDLZ2DRqH6fBpCpacQqo2AhYctb/gEJqNavj34N+rQd9LEJqaSPIEQbiALMtkvPAiVfHxaNzdafPJx6gNBizVVqK+jCXlaD5qjYpR94UT0kMswxQEoXWSZZmVMZm8viKOvDJlmfltvfx5blxHnG31TRpLWdmVC1gBHEo7xJzDc0gpSQFggO8AXuzzIv6O/o0ZXoNJiN7F8g/eueB4WUFereNqjYaIEWPpN/027Jwb9sahVJhL8Y/rKU/3B4xoVWdw9V+PfvwD0HZAg76XIDSXeid52dnZPPXUU2zcuJGcnBxkWa71vOgtJwitX/6XX1EaFQU6HW0+/gidtzfVlRZWLYohI6EIrU7N2H9EENj52pvMCoIgNIczBRW8vCyWLSeVQh7tPOyYNy2CPu2a5/eaVlu3S7JPjn1Cnk0e7jbuPNv7WcYEjmk1hVUkycqmb7+44rgO/QczcMZdOHv7NGwAlUVUrfmOwv0+WCQlKbZ32oPTTT1Qtf8aWsmfoyDURb2TvHvuuYfU1FRefvllfHyabhmDIAhNo2zbNnI//BAA7xdfxLZ7d0xlZlZ8cpiclFJ0Rg0TZ3fBV7RDEAShFbJYJb7ZmcwH6+OpNFvRa9Q8OiyYR4YGY9A2fbNqWZaJjY1l9erVymNkVFx4bSUjU6mpJN+Yz+0db2dOtzk46B2aOtxrkn78WK0lmpfSZeTYhk3wqkqRd31OyZZ0SqumABo0miJcRhoxDn1KJHfCdaneSd6OHTvYvn07Xbt2bYRwBEFoTtXJyaT/6ymQZZxvvRWX22ZQXlTFso8OU5hZjtFex6Q5XfAMdGzuUAVBEOrtaFoxzy2J4ViGsvetd5Ar70yLIMTTvlniKSkpYdWqVZw8qRQXMWlNGCyGCxI9GWXVVKx7LD9O+JFIj4bpCdfUyooKG3TcFVWXw94vMW/7jYLS+zHLfQCwCarC5a6xqG1b/v5FQbha9U7y/P39L1iieb1ZuHAhCxcuFEtPhRuKtaycM7MfQyotxaZbN7xeepHi3EqWf3SIkjwTdk56Jj/ZDVefht34LgiC0NjKqyz8Z1083+5KQpLB0ajlxQmduKWHf7NU/5VlmYMHD7Ju3TqqqqpQq9WEdA9hft58fCp86JLfBVvr+YqelZpKjrgdIcM2gypr1WXO3LKV5uXWaZz9te7BM5vgwDfI2z6krKQ3xZbXAQMqvYTLTR2x7ep1becXhFag3kneggULeO655/j8889p27ZtI4TU/GbPns3s2bMpKSnBycmpucMRhEYnSxIZzz1L9alTaD098ftoAUV5ZpZ/dIjy4mocPWyY8kRXHN1tmjtUQRCEetl4PJtXlh0jvagSgMldfHl5YhgeDg1Xhr8+CgoKWL58OcnJyQD4+fkxefJkDpQfQN4uk2GXQYZtBu4md4xWIyaNiTxjHucm9nIr6pYotSR5qcls/fFrko8cvOJYBzd3/DqFX90bWarh0A+w7X0sJVUUmp+kSuoGgCHECddbOqBxap6/d0FoavVO8mbMmEFFRQXBwcHY2tqi09We6i4oKGiw4ARBaBp5n31G2YaNqHQ62nzyMYWVRlZ8fBBTuRlXXzsmP9EVO/HFKAhCK5JTYuL1FXGsOpoJQBsXG96a2pmhHZqnIrAkSURHR7Nx40YsFgtarZbhw4fTt29f1Go15kTz+cEqyLO5+N41D1uPJor42pUXFbLr1584umkdsiyh1mhp26U7pw/uveRrhs16qFa/vDqxWuDIz7DtXShKpcI6mELLbGTZDpVOjdP4IOz6ijoSwo3lqmbyBEG4fpRu2kTex58A4P3aqxTYBLDqw0OYTVY82zoy6bEuGO3FvgVBEFoHSZL5v72p/DvqBKUmCxq1ivsHBvHkyFBs9c3TOSonJ4dly5aRnp4OQNu2bZk8eTKurq5UmCv4/NDnfHfsu8ueQ4UKL1svunt2b4qQr4m5uoqDq5YRvfQ3zCZlBjW0T38G33Evzt4+F+2T5+DmzrBZDxHap3/d30iyQuwfsGU+FJxCku0plF+h0twbAF0be1xndEDn0fjN7AWhpVHJ1/sGu2twbrlmcXExjo6i0IRw/ak6fZrkW25FKi/H5Y47ME17hKgvYrGaJfzaOzP+0Uj0RtFOUxCElsUqyexNKiCn1ISng5HeQa5o1Cris0t5fslRDqQohTsi2zgx76YIwn2bZ+uFxWJhx44dbNu2DUmSMBgMjB49mu7dlURtQ+oG3t33LlnlWQCEuYURlx+HClVNsRWgpgjLB0M/YGTgyKb/IHUkSxIndm5l+8/fU5qvLCv1Dg5lyF3306ZT51pjJcmqVNssKsTe2QW/TuF1n8GTJDi+HLbMg9wTAJi0QyiwPIFk0oMaHIcH4DDMH5VG3aCfURCaW13zk6u6erNarSxdupTjx4+jUqkICwtj8uTJaDRNX3pYEISrYy0tJe3R2Ujl5dj27EnJ6PvZ+OlRJEmmbaQ7Yx4IR6sXP9OCILQsUbFK8/LMYlPNMW9HA90CXNhwPBuzVcZWr+Gp0R2Y1b8tmmYorAKQnp7OsmXLyMnJAaB9+/ZMnDgRR0dHUkpSmBc9j50ZOwHwtfPlud7PMSxgGBtSNjB/73yyK7JrzuVl68WzvZ9t0Qle2oljbP3+K7JOJQDg4ObBoNvvpuOAIajUFyZaarUG//B6VgmVZYiPgk1vQ/ZRACSDB8XO8yhP8QZA62GD660d0Pu3rvYSgtDQ6j2Tl5iYyPjx40lPT6dDhw7Iskx8fDz+/v6sWrWK4ODgxoq1yYmZPOF6JUsSaY88StnWrWi9vTE99znblqWBDKG9vBhxTyc04u6nIAgtTFRsJo/8eJDLXbiM7OTJ61M64+fcPIWiqqur2bJlC7t370aWZWxtbRk3bhydO3fGZDXx1dGv+Cb2G8ySGZ1ax32d7+P+iPux0Z6P1ypZOZhzkNyKXDxsPeju2R1NffepNZGirEy2/d83JETvAkBntKHP1FvoPmEKOn0D7eWWZTi1ETa/A+kHlGN6B6o7PUNBYh8s+dUA2PXzwWlcEGpxg1K4jtU1P6l3kjd+/HhkWeann37C1dUVgPz8fGbOnIlarWbVqlXXFnkLIpI84XqV89FH5H/6GSqDgZKnvmDfzjIAwgf7Mfi29s1SUlwQBOFyrJLMwH9vqjWD93cutjr2vTgSbTPdpEpKSmLFihU1RegiIiIYO3YsdnZ2bE7dzL/3/Zv0MmVf3gDfATzf53kCHQObJdZrZSorY8+SXzgUtRLJakGlUhMxfDT9b70Tu2ttgfBXSdth89uQult5rLNF7vkPSqy3UbojFyRQO+pxvaU9xtAGfF9BaKEabbnm1q1b2bNnT02CB+Dm5sb8+fMZMGDA1UUrCEKTKVm7jvxPP0MGcmbOI/ZsgtdtdAD9pgWL6mOCILRIe5MKLpvgARRWmNmXXEi/YLcmikphMplYv349Bw4os0wODg5MnDiRDh06cKb0DM9ufJataVsB8Lbz5tlezzIiYESr/H1rtVg4sn41u3//GVNZKQBtu3RnyMz7cA9oW/cTSVZI2QVl2WDvBYH94a+zlanRsPktSNqmPNYYoNcDmDs9SsGKXMxpyp4/my4euEwJFo3NBeFv6p3kGQwGSktLLzheVlaGXq9vkKAEQWgcpvh4Mp5/HhkVZya9ROIpZSlN36nt6DG2bfMGJwiCcBnZJZdP8M7JKa3buIYSHx/PihUraq6NevTowahRo1DpVHx6+FO+OvoV1VI1WrWWWWGzeCjyIWx1ra/aoyzLnNofzbafvqYwMwMAtzYBDLnrfoK69qjfyeKWQ9SzUJJx/pijL4z9Nzj7K3vuEtcrx9U66DELeeBcyo+pKP4qCdksoTJqcZkWjG2X5mmJIQgtXb2TvIkTJ/LQQw/xv//9j969lRK10dHRPPzww0yePLnBAxQEoWFYi4tJe2wO1koTiYP+SVqpskl98G3tiRjappmjEwRBuLSdiXks2Bhfp7GeDsZGjkZRXl5OVFQUR48qBUBcXFyYPHkyQUFBbEvbxrzoeaSVpQHQx7sPL/R9gXZO7ZoktoaWfTqRLT98RVpcLAC2Ts4MuHUmnYeNQl3fontxy+HXu+HvOytLMuDXu84/Vmmg6x0w+Gmsam8Kfo+nKqEIAEOoMy43t0cr+rcKwiXVO8n7+OOPmTVrFv369atphG6xWJg8eTIfffRRgwcoCMK1k61W0v/1FFVnMojr8Rg5mmBUahUjZnWiQx/v5g5PEAThouIySpgfdYJt8crSPBUXpAY1VIC3k9JOoTHJskxsbCxr1qyhoqIClUpFv379GDp0KHnVeTyx6Qk2ndkEgKeNJ0/3fpoxgWNa5dLM0oI8dv7yA8e2bQJZRqPT0WPCVHpPuQWD7VXMRkpWZQbvsqVzgIhbYOjz4BZMxZEcCpceRK60gFaN87nG5mLvuCBcVr2TPGdnZ5YtW0ZCQgInTpxAlmXCwsIICQlpjPgEQWgAuQsWULJrL0e7PEqBfQfUWhVjHuhMu64ezR2aIAjCBdKLKvnPupP8eSgdWQatWsXMvoGE+zryzO8xQO004dzl/quTwhq1ZUJJSQkrV64kPl6ZVfT09GTKlCl4eHvw3bHv+CLmC0xWE1qVlplhM3m4y8PY6ewaLZ7GUm2qZN/yJexfsQRLdRUAHQcMYdDts3D0uIblkSm7ai/RvJTus5BsAij8+QSVR5QEX9fGHtdbO6DzbH1LXQWhOVx1l+PQ0FBCQ0MbMhZBEBpByerVZH3zEzFdHqPYKRitQcP4RyLw79i4d7sFQRDqq7jCzMItiXy7K5lqiwTAhEgfnh7dgbbuSrLkYNRe2CfPycirk8IY29mnUeKSZZmDBw+ybt06qqqqUKvVDB48mIEDB7I3Zy8PL3+Y5JJkAHp69eTFPi8S4tL6bn5LkpVjWzeyc/GPlBcqFUJ9O4Qx9O778QnpcO1vUJZ95TGAKaGQwp8PYi2pBjU4DAvAcbhobC4I9VGnJG/u3Lm8+eab2NnZMXfu3MuO/eCDDxokMEEQrp3pxAmSX5nHoa5PUmbfBoOtlomPdcG7nVNzhyYIglDDZLby/e5kFm4+RXGlGYC+7Vx5flwnuvg71xo7trMPo8K82ZtUQE6pCU8HZYlmY83gFRQUsHz5cpKTkwHw8/NjypQpSHYSz+54lnUp6wBwM7rxVK+nmBA0oVUuzUw5epit339FbmoyAE5e3gy+815Ce/dvmM8jSZAVW/NQltVUSeFIuKCmEIP6GDI6SiyzKNvkAlSjdbfBdYZobC4IV6NOSd6hQ4cwm801/y0IQstnKSwk4YkXOBD2KBW2Xtg46Jj8RDfc29g3d2iCIAgASJLM0sPp/GddPOlFlQC097Ln+XGdGNrB45LJhUatavQ2CZIksWfPHjZt2oTFYkGr1TJixAi69+zOTyd/4rMjn1FpqUStUnNHxzt4tOujOOhbXzKSn36GbT9+zemD+wAw2NrRd/ptdB0zEa2ugdoSpOyCqOch8zAAldZ+FJkfwsr5LQNqCgErEu6AaGwuCNeq3s3QbySiGbrQWskWC3EPzmW3PJgqoyv2znqm/LM7zl5iL4MgCC3Dtvhc5q05wfHMEgC8HY3MHd2e6d3bNOq+urrIzs5m+fLlpKcrjcuDgoKYNGkSiVWJvB39NqeLTwPQzbMbL/Z5kQ6uDbCUsYlVlBSz67f/I2bDGmRJQq3R0GX0ePpNvx0bhwa65ilIgvWvwPHlymO9A5We/yA/ccjZAX/9e5YBFSq9hNvMSIztRWNzQbiYRmuGft999/HRRx/h4FD7blV5eTlz5szh66+/rn+0LczChQtZuHAhVqu1uUMRhKsS//ZCdqqGYzY44uSiZcrTPXFwbZqy4oIgCJcTm17M/DUn2JGYB4CDQcsjw4K5t38QNs08a2OxWNixYwfbtm1DkiQMBgOjR4+mTcc2zD8wnzVJawBwNboyt8dcJgVPQq1qXfvELNXVHIpawZ4li6murAAguGdfBt95L66+fg3zJqZi2P4f2PMpWKtBpYbudyMPeYGihclAFbUTPDhXO1VlNGIIcW6YOAThBlbvmTyNRkNmZiaenrWrK+Xl5eHt7Y3FYmnQAJuTmMkTWqPEb1ewcbsKi84WFyeZqS8OwtZR39xhCYJwgztTUMF/1p1k6WGluqJOo+Lufm15bFgILnbN/zsqPT2dZcuWkZOTA0CHDh0YPW40q9JXsejIIsrN5ahVam5tfyuPdXsMJ0Pr2tssyzInd29n+/99R0muUgDFs20wQ+66n4DOkQ3zJlYLHPpeaWZeoSTxtBsKY94Br3BMp4rI+/LoFU/j/mAExmDnholJEK4zDT6TV1JSgizLyLJMaWkpRuP5WQGr1crq1asvSPwEQWhaiWsOsn6nFklnwM2mnGmvjsVg20B7KgRBEK5CYXk1/92cyA+7U6i2KhUzp3T15anRHfB3bf4l5NXV1WzevJk9e/YgyzK2traMHz8ek7uJB7c9SEJhAgCR7pG82PdFwtzCmjni+suIP8GWH74iM/4EAPYurgy8fRZhg4ahUjfQTOSpTbD2RciJUx67hcDot6H9GDi7t9KSX1mnU0ml1Q0TkyDcwOqc5Dk7O6NSqVCpVLRv3/6C51UqFa+//nqDBicIQt0lbD/N+j/zkDUGPMhi6ju3oLcRCZ4gCM3DZLbyzc5kFm1JpNSkrPIZEOLGc2M7EdGmZcyCJSUlsXz5cgoLCwGIjIyk15BefBr3KSsOrADA2eDMk92fZFrotFa3NLM4J5vt//ctJ3dvB0BrMNB78s30nDgNnbGBlvDnxsO6lyBhrfLY6Kw0Mu91P2iU7yCpykrZznRKNp+p0ynVDs0/sysIrV2dk7zNmzcjyzLDhw/njz/+wNX1fI8tvV5PYGAgvr6+jRKkIAiXd2JnGpt+PI2s1uJVHs/kj28XCZ4gCM3CKsksOZjGB+vja3rZdfR24PnxnRgc6t4i2guYTCbWr1/PgQMHAHB0dGTc+HEclA9y69pbKTOXoULF9PbTeaLbEzgbnZs34HqqqigneulvHFy9DKvZDCoVnYeOZMCtM7F3baCqpBUFsGU+7P8fSBZQa6HXgzDkGbBVrhFls0RZdCalm88glStV2lGrQLr0TiGNkwFDUMu4CSAIrVmdk7whQ5RKSElJSQQEBLSIX9KCIMDRLWls+yUeVGp8cvcx7t83o3cRX5CCIDQtWZbZEp/Lv9ec4ERWKQC+Tkb+NboDU7v5NXvFzHNOnjzJypUrKS1VYuzZsydeXb145dArnChQljOGuYXxUp+XiPCIaM5Q602yWonZEMWu336islSpWhrQOZIhdz2AZ9t2DfMmVjPs+0pJ8ExFyrH2Y2H0W+AeCoBslSg/kE3pxlSsxcrSS62bEcdRgaBWUfB/Jy55eudJ7VC1kH8rgtCa1bu6ZkpKCikpKZd8fvDgwdcUkCAIdSPLMgeiUoheppTybpO2mWH/HIZNSHAzRyYIwo0mJq2IeatPsPt0PgCORi2zh4Uwq39bjLqW0eesvLycNWvWEBurNOR2dXVl6Nih/J77O39u/BMAR70jT3R/gumh09GoW0bcdSHLMkmH9rP1x68pSFeWRLr4tmHIzPto171Xw9yYl2WIj1KWZuYnKsc8w2HM2xA8TBkiyVQeyaV4QwrWfGUWV+Okx3FEILY9PFFplOWuKrWKohWnahJAZZwB50ntsOnsfu2xCoJQ/yRv6NChFxz76y8P0XZAEBqfLMvsXnKKQ+tTAWibvJpeE4NwHDG8mSMTBOFGkppfwXvrTrLiiFIxU69Rc8+Atjw6NBhn25axr0qWZWJjY1mzZg0VFRWoVCr69utLoV8hjxx4hJJqZcZrWsg0nuzxJK5G1yucsWXJTUliyw//I/XoYQCMDo70v+UOIkeMRaOt92XexWXFwtoXIGmr8tjOA4a9CN3vBrUGWZYxHcuneH0KlmylLYPaXofDUH/s+/ig0tXey2jT2R1jmBtVScVIpdWoHfQYgpzEDJ4gNKB6//Sf25x8jtls5tChQ7z88su8/fbbDRaYIAgXJ0kyW38+Sdx25aIqJPEPwjqq8Hj0kWaOTBCEG0VBeTUfb0zgp+gUzFYZlQqmdfVj7uj2tHFp/oqZ55SUlLBy5Uri4+MB8PT0pPOQzixKWsSx/ccA6OjakRf7vEhXz67NGGn9lRUWsHPxj8RuWQ+yjEarpdu4yfSZditGO/sGepMc2PQWHPoBZAk0euj7KAz6FxgdkWWZqvhCitclY04rA0Bl1OIwpA32/X1RGy49G6pSq0SbBEFoRPVO8pycLtzrM2rUKAwGA//85z9rNjELgtDwrFaJjd/EkbA/B2SZjid/oq19Dr7zFzdcGWxBEIRLqKy28vXOJD7bcorSKqVi5uD2Hjw3tiNhvi2nn6wsyxw8eJB169ZRVVWFRqOhd//e7Dbu5rH9jyEj46Bz4LFuj3Frh1vRqhtoxquBSJKV9OPHKCsqxN7ZBb9O4ajPLh81V5nYv/JP9i37A3OVsiSyfb9BDL5jFk6e3g0TgNkE0Z/Ctv9AtbJ3kbCpMOp1cGkLQFVyMcVrk6lOUmZCVXo19gP8cBjcBrVNy/rzFIQbUYP9FHp4eHDy5MmGOp0gCH9jqbYS9WUsKUfzUSERFvcNPqYE/L/9FY29XXOHJwjCdcxilfjjbMXM7JIqAMJ9HXl+XCcGhrasPVQFBQUsX76c5ORkAPza+GHbxZa3Tr1FUVURAJPaTWJuz7m427Ss2AESonex6dsvKCvIqzlm7+rOsFkPYK6qYscv31NWoOx99AnpwJC7H8CvQ6eGeXNZhrilsP4VKFK2A+DTFcbOg8D+AFSnl1GyLhnTybMru7Qq7Pv64jC0DRr7lrFEVxCEq0jyYmJiaj2WZZnMzEzmz59Ply5dGiwwQRDOq660sGpRDBkJRWjUMp0Pf4pb4XH8Pv8Mfdu2zR2eIAjXKVmW2XQih/lrTpCQoyzHa+Niw1OjOzC5iy/qZtpDJUkSKSkplJWVYW9vT2BgIAB79uxh06ZNWCwWdDod4X3D+a3yN2LilGuXEOcQXuzzIj29ezZL3FeSEL2L5R+8c8HxsoI8Vnw4v+axo4cng26fRYf+gxuu2nn6QWXfXepu5bGDD4x4FSJngFqNObuckvUpVMYqCSZqFXY9vXAYEYDWydAwMQiC0GDqneR17doVlUqFLNfucdK3b1++/vrrBgtMEASFqczMik8Ok5NSik4HnQ9+gkvBSTzmzsVeVLMVBKGRHEotZN6aE+xNKgDA2VbHY8NCuKtfIAZt81WejIuLIyoqipKSkppjdnZ2GAwGCgqUWP3b+pMZkMmraa8iyRK2Wltmd53N7Z1uR6dumT1EJcnKpm+/uOK4gbfdTY8JU9HqG2jWrDgdNr4BMb8oj7U2MOAJGPA46O2w5FdSsjGVikM5IAMqsO3qiePIALRuNg0TgyAIDa7eSV5SUlKtx2q1Gg8PD4xGY4MFJQiCoryoimUfHaYwsxyDrYauMQuxyz+Jw9ixuD34QHOHJwjCdSgpr5z31p5g9dEsAAxaNfcOCOKRocE42TRvghQXF8evv/56wfHy8nLKy8vRarX49vTlu6LvKDijJHzjgsbxVM+n8LT1bOpw6yX9+LFaSzQvxbd9x4ZJ8KrLYdcnsGMBWCqVY5G3wYhXwMkPa0kVJasTKd+bVdO83BjuhtOoQHTeYouAILR09U7yzi2JEAShcZXkVbJswSFK8kzYOenpnvIDurSjGNq3x/edtxtuiY4gCAKQV1bFxxsT+L/oVCySUjFzevc2zB3VHl/n5p+xkSSJqKioy44xqUx8mPUhqKCdUzte7PMivX16N1GE16asqPDKg+ox7pIkCY7+Chteh1KlSjP+fWHMO9CmB9ZyM6WrTlO2OxMsEgCGUGecRrdF7+9wbe8tCEKTqXeS9/jjjxMSEsLjjz9e6/h///tfEhMTWbBgQUPFJgg3rIKMcpZ/dIjy4moc3Y30rd6A5fA2NE5OtFn4X9S2LadEuSAIrVtFtYWvtifx+dZTlFcrvW6HdfDg2XEd6ejdcipmpqSk1FqieTFasxY/sx+39ruVuzrdhU7TMpdm/p2pvIykQ/vrNNbe2eXq3yh1D0Q9BxmHlMfOATDydQifhlRlpXR9CmXb05HP/jvQt3XEaXRbDO0urKwuCELLVu8k748//mD58uUXHO/fvz/z588XSZ4gXKOclBJWfHwEU7kZV187Brc5Tcm7P4Najd+HH6D392/uEAVBuA5YrBK/7k/jww3x5JYqFTMj2zjx3LiO9A9ueVUni4uL6zTu+a7PM6TzkEaOpmFUmyo5tGYF+1b8QVV5+RXHO7i549cpvP5vVJgM619VKmcC6B1g0Fzo+yiSrKNsaxqlW9OQK5W2GDo/e5xGB2Jo7yJWjQhCK1XvJC8/P/+ivfIcHR3Jy7vyWnJBEC4tI6GQlQtjMJuseAY6MLy/RM6jbwPg+dRT2PXv38wRCoLQ2smyzLq4bN6NOsGpXCWxCHC15ekxHZgQ4dNsFTMv5/Tp00RtuPxSzXMq1ZWNHM21M1dXEbN+DdFLf6OyREle3doEENStJ/tXLLnk64bNeqimX16dmEpgxwewexFYq0Clhm53wfCXkI3ulO/NomRTKlKZGQCtpw2Oo9pi09lNJHeC0MrVO8kLCQkhKiqKxx57rNbxNWvW0K5duwYLTBBuNMlH84j6IharWcKvvTOjpnmQfscMsFpxnDgR13vvae4QBUFoBaySzN6kAnJKTXg6GOkd5IrmbOJ2IKWQeauPsz9F2dflaqdnzvAQ7uwTiF6rbs6wL6qoqIh169YRFxcHgIxSAETFhQmIjEylphKrk7VJY6wPq8XM0U3riV7yC2WFZ6uWevnQ/5Y76DBgMGq1Bt/Qjhf0yXNwc2fYrIcI7VPHG32SFQ79AJvegvJc5VjQEBjzDrJHOBUHsynZuB9rkTKDq3E14jgiANtunqhaYJIvCEL91TvJmzt3Lo899hi5ubkMHz4cgI0bN/Kf//xHLNUUhKuUsD+bDV/HIUkybSPcGDUzmLR778ZaWIghrBM+b74h7qoKgnBFUbGZvL4ijsxiU80xHycj/xjSjj2nCog6plTMNOrU3D8wiH8MCcbR2PL2rZnNZnbu3MmOHTuwWCyoVCpMviZiqmLomdcTGblWoncu+TvidoRb7G9prrAvSbJaidu+md2//0xJbjYADm4e9J1+G+FDRqDRnr8cC+3Tn+BefZRqm0WF2Du74NcpvO4zeKe3wNoXITtWeewWAqPfQg4ZQ2VsPiU/HsCSp8x2qh31OA4PwK6nF6oWmOQLgnD1VPLfG97Vwaeffsrbb79NRoZSlalt27a89tpr3H333Q0eYHMqKSnBycmJ4uJiHB1bzuZzofWSJJnMhCLKS6qwczTgE+rMiV2ZbP7pBMgQ2suL4bM6kv3885SsWIHGxYWg339D5+fX3KELgtDCRcVm8siPB7ncl7paBbf29OfJke3xdmp5rY9kWeb48eOsXbu2Zg+e3l3PJrtNZKuV5Mi33Jcu+V2wtZ4vQFWhqSDGLQarh5Wo6VFo6rOksRHJksTJPTvY9dv/UZiRBoCdswt9pt1KxIixaHUNmGDnJcK6lyB+jfLY6ARDnkPueT+mhDJK1qdgzlSW56pttTgM88e+rw8qXcv4sxIEoW7qmp9cVZJ3Tm5uLjY2Ntjb21/tKVo0keQJDenUoRy2L06g/OzyGAC9jYbqSmVpUfggXwbf3oHC778jZ/6/QaMh4OuvsevTOsp/C4LQfKySzMB/b6o1g/d3Bq2aZbMH0NGnZX6f5eTksGbNmpp+vDpbHTGuMcRp40AFnVw7MdR/KJ8d+QxkcDO5YbQaMWlM5BvzQQUfDP2AkYEjm/mTKMnqqQN72bX4B3JTkwEw2jvQe8rNdB0zAZ2hARPsigLY+i7s+xIkC6g00OsBGPocpgw1JeuSqU4tBUBl0OAwuA32A31RG+q9mEsQhBagrvnJVf2EWywWtmzZwqlTp7jjjjsAyMjIwNHR8bpN+AThWpw6lEPU57EXHD+X4AV1cWfIHR2o2L2bnHffA8DruedEgicIQp3sTSq4bIIHUGWRKKwwN1FEdVdZWcnWrVuJjo5GlmXUGjUZ7hnsMe7BqrbiZ+/HnG5zGBc0DrVKTXuX9szfO59sVXbNObxtvXm297PNnuDJskzK0cPsXPwDWYnxAOhtbOk5cRrdx0/B0JDtb6xm2P81bJkHlWd754WOgdFvUVXpTclPyVSdUmZDVTo19v19cRjSBrVty1ueKwhCw6t3kpeSksLYsWNJTU2lqqqKUaNG4eDgwLvvvovJZOKzzz5rjDiv2sqVK/nXv/6FJEk8++yzPPDAA80dknCDkSSZ7YsTLjsmN7WUqjNppP9zLkgSTtOm4TLzziaKUBCE1i6r5PIJ3jk5pXUb1xQkSeLw4cNs2LCBiooKAMpdytlmt40KXQVOBiceiniI2zrehl6jr3ndyMCRDPMfxsGcg+RW5OJh60F3z+7NvkQz7XgsOxf/SNpx5Yae1mCg+9hJ9Jw8HRv7ejYRl6yQsgvKssHeCwL7w7nPJ8uQsE5ZmpmnJJJ4hsGYt6m26U3J6hRMx48oxzUq7Pv44DDMH42D/uLvJQjCdaneSd4TTzxBz549OXLkCG5ubjXHp02b1uISKIvFwty5c9m8eTOOjo50796dm266CVdX1+YOTbiBZCYU1VqieTFlhVUc/dd87IuLMUZE4P3aq6LQiiAIVyTLMuvjsnl/7Yk6jfd0aBn78M6cOcOaNWtq9vZbba3sctxFjk0OBo2B+zvdz30R9+Gov/hSJI1aQy/vXk0Z8iVlJcaz89cfST5yEACNTkeXUePpPeVm7K6mcXnccoh6Fkoyzh9z9IWx/1aKqKx9AU5vVo7busPwFzG3uYWSTWlUxpxtcq4C2x5eOI4IQOvSMv7OBUFoWvVO8nbs2MHOnTvR62vfEQoMDCQ9Pb3BAmsIe/fuJTw8HL+zRSvGjx/P2rVruf3225s5MuFGUl5y+QTvnLLsYpzc3WnzyceoDYZGjkoQhNZu96l83l17gkOpRQCo4JJFV1SAt5PSTqE5lZaWsmHDBo4cOTvTpIWjTkdJcEgAFUwNmcrsrrPxtvNu1jjrIjc1mZ2Lf+TU/j0AqDUaOg8bRZ9pM3B097i6k8Yth1/v5oK/yZJM+PUuav6WNXro8zCWyMcp2VFIxR+Ha15i08UDx5EB6DwacGmoIAitTr2TPEmSsFov7EGTlpaGg0M9lyNcwbZt23jvvfc4cOAAmZmZ/Pnnn0ydOrXWmEWLFvHee++RmZlJeHg4CxYsYNCgQYCyT9DvL1UJ27Rp0+ISUeH6Z+dYt4TNYC2nzccL0Hm3/IsbQRCaT2x6Me+uPcm2eKX/mY1Ow/0DgwjysOOpX5Xk6a8pwrk1Aa9OCqvpl9fULBYL0dHRbN26lerqagDOOJ7hiPMRqjRVDPIbxJM9nqS9S/tmia8+CjLS2fXbT5zcvR1kGZVKTadBQ+l38x04e13D72/JqszgISPLaqqkcCRcUFOIQX0MlUoGZOg4CWv/1yg5BOWfnASr8rdt7OSK46hA9L6iNoIgCFeR5I0aNYoFCxbwxRdfAKBSqSgrK+PVV19l/PjxDRpceXk5Xbp04d5772X69OkXPL948WKefPJJFi1axIABA/j8888ZN24ccXFxBAQEcLHCoZdbAldVVUVV1flZl5KSkob5IMINrbKs+vIDZBlDVSEdHpuBbY8eTROUIAitTlJeOf9Zd5KVMZkAaNUq7ugTwGPDQ2qWYdrpNRf0yfN2MvLqpDDGdvZplrgTExNZs2YN+fn5AJQYS9jvup9CQyHhbuHM7TGX3j4tv8hUcU42u//4mbitm5BlCYD2/QbR/+Y7cGvjf+1vkLILSjKotPajyPwQVs7PBmrIxVn3BQb1UUr5B2VfZiOblRgMIc44jg7EENAyq6YKgtA86p3kffjhhwwbNoywsDBMJhN33HEHCQkJuLu78/PPPzdocOPGjWPcuHGXfP6DDz7g/vvvr9kLuGDBAtauXcunn37KvHnz8PPzqzVzl5aWRp8+fS55vnnz5vH666833AcQbmiyLLN/dTJ7VySdO6LcXv/rjYazNyK6embgetucJo9REISWL6vYxEcbE/h1/xmskoxKBVO6+DJ3VAcC3GovyRvb2YdRYd7sTSogp9SEp4OyRLM5ZvAKCgpYu3YtJ0+eBMCsNXPE+Qgp9in4OfjxQvcXGN12NGpVy27CXVaQz54/f+XoxrVIVgsA7Xr0ZsCtM/Fs264B3yibSms/8s0vXPCUFbezx6vgMICEPsABx9FtMYY4N1wMgiBcN66qT15lZSW//PILBw4cQJIkunfvzp133omNjU1jxAgoM3B/Xa5ZXV2Nra0tv/32G9OmTasZ98QTT3D48GG2bt2KxWKhU6dObNmypabwyp49e2oVjPmri83k+fv7iz55Qr2Zq61s+v44iftzAOgYLKFZ/jWJwdOpMp7fiG8wFRCa+DtdX7gbpwaeCRcEoXUrqqjm062n+HZnMlUWZdZmREdPnhrTgU4ttNcdKN/P27dvZ9euXVitVmSVTIJDAsddjmNvY8/DXR7m1va3otO07FL+FSXF7F32O0fWrsJiVlZkBER0ZcCtM/Ft37HB30/e/RlZyzyx4s75RbYX0rqA0+QwjB1dRYEuQbgBNVqfvOzsbLy8vLj33nu59957az0XExNDZGRk/aO9Cnl5eVitVry8vGod9/LyIisrCwCtVst//vMfhg0bhiRJPPPMM5dM8AAMBgMGUfBCuEZlhSZWf3qU3NRS1BoVg2eEon/lLiy5WXjmHqbIOYQqvSOG6hKcixJRIZPz7ns4jhmDStO8JcAFQWh+FdUWvtmZzGdbT1FqUmaOerV14ZmxHenVtuVWh5ZlmdjYWNavX1+z3SHbmM0RtyOYbczcG3Yv93a+Fwd9w+7fb2im8jL2r/iTg6uXYa5Slr36dghj4IyZ+Ic3wjVOxmHY9CZVJ7OxMu+Kw52nhWFsf+lrGUEQBLiKJC8iIoKvvvqKyZMn1zr+/vvv8/LLL1NZWdlgwdXF3+9iybJc69jkyZMviFUQGktWUjFrPj1KRUk1Rnsd4/7RGaeCBFLP3nhQIeNSdGHPPEtWFhX7D4jm54JwA6u2SCzel8pHGxPJK1NWlXT0duDZsR0Z2sGjRc/aZGVlsWbNGlJSUgAo15YT4xpDll0WU0On8miXR/Gy87rCWZpXtamSg6uXs3/lEqrKywHwahfCgBl30bZL94b/889LgE1vQdxSACTVsDq9TKq4sPidIAjC39U7yXv22WeZMWMGs2bN4sMPP6SgoIC77rqLY8eOsXjx4saI8aLc3d3RaDQ1s3bn5OTkXDC7V18LFy5k4cKFF60iKgiXcjI6i80/nMBqkXD1tWPCo5E4uttQvDK3Tq+35NZtnCAI1xdJkll+JIMP1seTWqA0BQ9wteVfo9szKdIXdTNVxKyLiooKNm/ezP79+5FlGavKygmnE8Q7xTMoYBALuy8kxCWkucO8LHN1FUfWrWbv0t+oLFVmIN3aBDBgxkxCevVr+OSu6AxsnQ+H/w9kCVBBxC2o2/4Tfsu/4svVoqm5IAh1UO8k71//+hcjR45k5syZREZGUlBQQN++fYmJibnm5Ko+9Ho9PXr0YP369bX25K1fv54pU6Zc07lnz57N7Nmza9a8CsLlyJLMnmWnObhWuYPdNtKdUfeFoTcqP15aj7r1S6rrOEEQrg+yLLP5ZA7vRp3kRFYpAO72Bp4YEcKMXgHotS23IIkkSRw4cIBNmzbVrOA5Y3eGo65HCfYK5queX7WYZuWXYrWYObppPdFLfqGssAAAZ28f+t9yJx36D0KtbuDl82W5sP0/sP9/YD1bdbnDBBj+IqZSPwr/vHCVx99pnAwYgsR1iSAIV1bvJA+gXbt2hIeH88cffwBw6623NkqCV1ZWRmJiYs3jpKQkDh8+jKurKwEBAcydO5e77rqLnj170q9fP7744gtSU1N5+OGHGzwWQbiYapOF9V/HkRyTB0D3sYH0ndwO1V/uvKttbUCtBkm6+ElUKrReXtj2FO0TBOFGsS+5gHejTrAvuRAAB6OWh4cEc++Attjqr+qrucmkpKSwevVqsrOzASjWFXPY7TA2nja82f1NRgeObtFLSyWrlbjtm9n9+8+U5CqfwcHdg34330744BGoG3pvtKkYdn0CuxeBWVkGSttBMOJVrC5dKF6VRMWhowCojBpk06VXETlPqv39IgiCcCn1/ibZuXMnM2fOxM3NjZiYGHbu3MmcOXNYtWoVn3/+OS4uLlc+SR3t37+fYcPOr1GfO3cuALNmzeLbb79lxowZ5Ofn88Ybb5CZmUnnzp1ZvXo1gYGBDRaDIFxKSV4lqxbFUJBRjkarZvjdHWnfu3Yj3JKoKDKee/6yCR6A1wvPi6IrgnADOJ5ZwntrT7LphFJ516BVc8+AtjwyJBhn25a9DK+kpIR169YRGxsLQLW6mmMuxyhyL+IfXf/BLe1vadEVM2VJ4uTu7ez67f8ozFTaK9k5u9DnphlEDB+DVtfAsVdXwN4vYMeHYCpSjvl2hxGvILcdQsXBHIq+PoBcaQEV2PX1wWlMW6oSiyhacQpr8fkeqxonA86T2mHT2b1hYxQE4bpV7xYKBoOBf/7zn7z55pvozv5CPHXqFHfddRepqamkpaU1SqDNoa4lSoUbT3p8IVGfx2IqN2PrpGf8w5F4BZ3/NyJLEnn//S95iz4FwG7QIBwnTiD3wwVY/rKPVOvtjdcLz+M4enSTfwZBEJpOan4FH6w/ybIjGcgyaNQqZvTy5/HhoXg7GZs7vMuyWCzs3r2brdu2YjFbkJFJckjilMcpbou4jXvD78Veb9/cYV6SLMuc2h/Nzl9/JC81GQCjgyO9p9xM19Hj0Rka+M/fUg2Hvoet70HZ2d/3Hh1h+EvQcSLmnAoK/0ykOlnZ/6fzscPlplD0/uerjsqSTFVSMVJpNWoHPYYgJzGDJwgC0IgtFNatW8eQIUNqHQsODmbHjh28/fbb9Y+0BRKFV4TLObY9nW0/xyNJMp6BDox7OBJ7l/OtN6xl5WQ89yxlGzYC4HrffXj+ay4qjQaniROp2H8AS24uWg8PbHv2EDN4gnAdyyk18cnGRH7em4pFUu6pToz0Ye6o9rTzaLmJESjJUXx8PKvWrKKkSElI8gx5xLjHMDx8OO93fR9PW89mjvLSZFkmJeYQOxf/QNYpZb+b3saWnpOm0WP8FPQ2tlc4Qz1JVjj6O2x5BwqTlWPOATD0BYi8FdkKJetSKN2aBpKMSq/GcVQg9v39UGlqJ3AqtQpjsHPDxicIwg3lqpqh3yjETJ7wV5JVYsfviRzdrMxWh/b0ZPjdndDqzydp1WlppD3yKFUJCah0OrzffAPnqVObKWJBEJpLcaWZL7ad4usdyVSalRuGg9t78MyYDnT2a/mFM/Ly8li1ehVJp5MAqNRUKkVVOgbzZI8nCXYObtb4JMlK+vFjlBUVYu/sgl+n8FqFUtKOx7Ljlx9IP3EMAK3BQPdxk+k56SZs7Bu4T58sw8nVSjuEnDjlmJ0nDHkGus8CrR5TfCGFSxOxFih994ydXHGeEozWuWXP4gqC0PI0+Eze+PHj+fnnn2uqTb799tvMnj0bZ2dnAPLz8xk0aBBxcXHXFrkgtECmcjNrv4wl7YRSJKHP5Hb0GBdYq7hAefRe0p94AmtRERoPd/w/+QSbrl2bKWJBEJqDyWzlu13JLNpyiuJKMwDdApx5ZkxH+gW3/AbWJpOJLVu3sCd6D0ggIRHvFI82WMubfd6kh1fzF4hKiN7Fpm+/oKwgr+aYvas7w+95CAc3d3Ys/oGUmEMAaHQ6uo4eT+8pt2Dr5NzwwZzeChvfgPT9ymOjEwx4Evr8A/R2WEurKVp5gsojSoscjaMe5ynB2ISLvXWCIDSuOs/kaTQaMjMz8fRUlmY4Ojpy+PBh2rVrB0B2dja+vr7X1RJHMZMnABRmlbNqUQzFOZVoDRpG3RNGu2612x0U/vwzWW+/AxYLxs6dabPwv+iasKWIIAjNy2yV+G1/Gh9tjCe7RGlkHuppz9NjOjAqzKtFV5sEpSVCTEwMq9auwnw2Oc20ySQvMI+H+z3MyICRLeIzJETvYvkH71xxnFqjIWL4aPpMm4GDWyMkVGkHYNMbcHqL8lhnC30fgf5zwMYFWZIp35tJcVSyUi1TBfb9fXEcHYja0LKrpwqC0LI1+Eze33NBscpTuBGkHstn7VfHqK60YO9qYMKjkbi3+cvmeLOZrLffpuiXxQA4TpyIz1tvojaKJTiCcCOQJJlVRzP5YH08SXlKeXw/Zxv+Oao907r5oWkFxTIyMjL4bdlvFGYrKxVKtaWc9jnNjAEzmN5+Ojp1y6iYKUlWNn37xRXHhQ0eTr+b78DZy/uKY+st57iyLPPESuWxWgc974PBT4G9chO8OrOcoj8TqE5Veh/q2tjjMi0UvV/L3oMpCML1RdxOEoSLkGWZmE1p7Pw9AVkGn2Anxv4jAlvH8yXOLYWFpD/+BBX79oFKhcfcf+L2wAMt4m63IAiNS5ZltiXk8W7UCY5lKEVJ3Oz0PDY8hDv6BGDQtvyCSuXl5fy55k8SYhNQocKsMnPK9RQD+w/kjcg3sNPZNXeItaQfP1ZriealdB46suETvMJk2DwPYhYDMqjU0OV2GPIsuChtm6RqKyUbUinbkQYSqAwanEYHYtfPV1TGFAShydU5yVOpVBdcvF6vF7OiuuaNzWqR2PrzSY7vzASgY38fht7eAY1OXTPGdPIkaY/OxpyejtrODt/338PhLz0dBUG4fh1MLeTdqBPsOV0AgL1By4OD2nH/oCDsW8FSPKvVyuZdm9mxdQdYQIWKM/ZnCOgRwCd9PsHD1uPKJ2kGZUWFDTquTkqzYNv7cOBbkJRlrHSaDMNeBM+ONcMqj+dTtOwU1iJlqa5NZzecJwWjcTJc5KSCIAiNr17LNe+55x4MBuUXlslk4uGHH8bOTrnTV1VV1TgRNoPZs2cze/bsmjWvwo2joqSaqC+OkplYjEoF/aeH0GWEf60bGqUbNpD+zLPIFRXoAgLwX7QQQ0hIM0YtCEJTiM8u5b21J1kflw2AXqPmrn6BPDo0GDf7lnMxb7aY2XhkI7lFuXg4ezCiywh0WmXJZVx8HH+s+ANrqXITs1BfiKaThheHv0g7p3bNGfZlZZ9O5Mi61XUaa+/scu1vWFEAuz6GPZ+BpVI5Fjwchr8Mft1rhlmLqyhacYrK2HwANM4GpbBKp5ZfZEcQhOtbnZO8WbNm1Xo8c+bMC8bcfffd1x6RIDSTvLQyVi+KobTAhN6oYfSDnQkMP/9FLcsyeZ9+St7HnwBg268vbT78EM3ZCrOCIFyfzhRUsGBDAksOpSHLoFbBzT3a8MTI9vg52zR3eLX8svUXjmw/gsGiJJ2nOMXWNVvp2LMjuWm5lKWVAVClrqI4oJgHxj5Ad+/ulztls8qIP86eJYtJOrS/TuMd3Nzx6xR+9W9YVQbRn8LOT6CqWDnWpjeMeAWCBtUMkyWZst0ZlKxLQa6yghrsB7bBcWQAan3LX6orCML1r85J3jfffNOYcQhCszp9OJf138RhqbLi5GHDhNmRuHif348iVVSQ8cKLlEZFAeBy1114PfsMKm3LX5olCMLVySurYuHmRH7ak0q1VQJgbLg3T41pT4hnA/daawC/bP2F45uPo0df67jeouf0ntOoUCEjk+uey+TRkxkTOqZFbruQZZm0uKPsWbKY1NgjAKhUajoOGIx3cCibv/vykq8dNuuhWv3y6sxSBfu/ge3vQ7nS7gDPcBjxMrQfC3/5c6pOL6PwzwTMZxNmfYADztNC0fu0rD2MgiDc2MQVqnBDk2WZA1EpRC87DUCbji6MebAzRrvz1eTMGRmcmf0YVcePg06H9ysv43LLLc0VsiAIjazUZObL7Un8b/tpyquVZY39g914ZmxHuvo7N29wl2C2mDmy/Qh69Kj42/75s4+tWGk3ph0v93kZrbrlff3LskzykYPsWbKYjJNKz121RkPY4BH0nnozLt6+ADi4eVzQJ8/BzZ1hsx4itE//+r2p1aIUU9kyH4pTlWMuQcqeu87TQX1+L7ZUZaFkXQpluzKU2itGDU5jg7Dr7S0KqwiC0OK0vN/ygtBELNVWNv1wgoR9yv6aiKFtGHBLCBrN+S/1igMHSJvzONaCAjSurrT55GNsezR/M2BBEK6eVZLZm1RATqkJTwcjvYNc0ahVmMxWftyTwsLNiRRWKEU2IvyceHZsRwaGtuzm1RuPbKxZonkpGjT46H1aXIInSxKnDuxlz5LFZJ9OAJQm5p2Hjab35Ok4enjWGh/apz/Bvfoo1TaLCrF3dsGvU3j9ZvBkGeKWwea3IS9eOebgo1TL7DYTNLXbRlQey6No+SmsxdUA2HTxwHliOzQO+r+fWRAEoUVoWb/pWwhRXfP6V15UxepPY8hJKUWtVjHotvZ0HuxXa0zR77+T+fobYDZj6NQJ/4X/Refr20wRC4LQEKJiM3l9RRyZxaaaY96ORkaFebHxeDYZZ4+3c7fjqTEdGNfZu0Uuafy73KLcBh3XFCTJSvyenUT/+St5qckAaA0GuowcR8+J07B3vXTxErVag394ZP3fVJbh1EbY+CZkHlaO2bjCoLnQ6wHQ1d5jaSkyUbTsFKbjSiVVjasRl6khGNs3QHEXQRCERqSSRVfzS6prR3mhdclOLmHNpzGUF1djsNMy7qEI/Dqc/8KWLRay//0uhT/8AIDDmDH4znsHta1tc4UsCEIDiIrN5JEfD3K5Lz0fJyNPjgxlevc2aP8yq9+S7c3Yy/dLv8c958qzjX0n9WVsj7FNENWlWS0WTuzcSvTS3yjMSANAb2ND1zET6TFhKraOjVTVOjUaNr4BKTuUx3p76Dcb+j0Gxtrf8bJVpmxnOiUbUpCrJdCocBjcBsfh/qh0orCKIAjNp675iZjJE24o8fuy2PT9CaxmCVdfO8Y/EomTx/k7t9aiItLnzqV8124A3B+fg/sjj7SKO/mCIFyaVZJ5fUXcZRM8R6OWDXOHYNcKet3Jssy+rH18veNrDAkG3KuVBE9GvmBP3rnj1dpqRnQZ0dSh1rCYzcRt3cjeZb9RnKMskzfa2dN9/BS6jZ2E0d6+cd446yhsegvilcJZaAzQ+0EY+E+wuzAxrj5TSuGSBMyZ5QDo2zriMi0EnZcorCIIQuvR8r/JBKEByJJM9PLTHIhKAaBthBuj7gtHb3P+R6AqMZEzj87GnJqKytYW33/Px3HUqOYKWRCEBrQ3qaDWEs2LKTFZiEkrpl9wy+1xJssy0VnRfLH3C4iHgPIA5QktOPs7U5hUeEGiJ59NbbsM6lLTL68pmaurOLpxHftW/EFZvlIsxcbRiZ4Tp9F19Hj0No20SiL/FGx+B2J/Vx6rNMp+uyHPgFObC4ZLJgvFa5Mp35OpFFax0eI8PgjbHl6isIogCK2OSPKE6161ycKGb+JIOqJcXHQfE0CfKcGo//KlXbp5MxlPPY1UXo7Oz482ixZh7NC+uUIWBKEBybLMtvi67UXLKb18IthcZFlmd+ZuPj/0OeWJ5XQs6ohWVr7CO0V2YuKYidjZ2V3QJw+gWltNl0FduG3IbU0ac3VlBUfWr2H/yj+pKC4CwN7FlV6TpxMxYgw6g/HqTy5ZIWUXlGWDvRcE9odzhVeK02Hbu3DwB5DP7q3vPB2GvgDuIRecSpZlKo/mUbTiNFKpUljFtpsnThOC0NiLwiqCILROIskTrmsleZWs/vQo+ellqLUqhs/sSIe+PjXPy7JM/ldfkfvBhyDL2Pbqhd/HH6F1EZvqBaG1k2WZbQl5fLQhnoOpRXV6jafDNSQejUCWZXZl7OLTw5+Sk5JDZEEkQZYgALx9vZk8cTK+fykIdduQ25g+YDobj2wktygXD2cPRnQZ0aQzeKbyMg5FreDg6uWYykoBcPTwpPeUmwkfOgqt7hpjiVsOUc9CScb5Y46+MOwlyImDvV+CtUo5Hjoahr8MPhcv0mIpMFG4NJGq+EIAtO42OE8NwRjifG0xCoIgNDOR5AnXrYyEItZ8fhRTmRkbRz3jH47Au935Df2SyUTmSy9TsnIlAM63zcD7xRdRXesFiCAIzUqWZbbG57JgQwKHzxQBoNeo0GrUVFRfvGqyCvB2UtoptASyLLMjfQefHfmMpIwkuhR0IaRSmYWys7djzOgxREREXHS/sE6ra5biKhUlxRxcvZxDUSuorqwAwMXHl95Tb6XTwKFotA1wyRG3HH69G/6+u7IkA5Y9ev5xQH8Y8QoE9rvoaWSrROn2dEo3piKblcIqjsP8cRjij0rXOgruCIIgXI5I8i5CtFBo/eJ2ZrD1/04iWWXc/e0Z/0gkDq7n79Cbs7NJm/0YpthY0GrxfvEFXG6/vRkjFgThWsmyzJaTuSzYmMCRs8mdQavmzj6BPDykHQdTC3nkx4PK2L+87lya9OqkMDTNvPdKlmW2p2/n08OfciL3BGGFYYwsGYkaNWqNmv79+jNo0CAMhsv3xGtKZYUF7F/5J0fWr8ZSpcygubUJoO9NM2jfb2D9+tddjmRVZvAuVz5HrYMZP0H70XCJgllVKSUULknAkq0kooZ2TjhPC0HnISooC4Jw/RAtFC5DtFBofSSrxK4/TnFk0xkAgrt7MmJWJ3SG8xcZlUeOcOaxx7Dm5qFxdsZvwQLs+vZprpAFQbhGsiyz+WQOH21I4EhaMQBGnZqZfQJ5aEi7WkswL9Ynz8fJyKuTwhjb2eeCczcVWZbZmraVz458xrG8YwSWBRJRGIHBqiRzHTp0YPTo0bi5tZyiMCV5uexb/gdHN63Falaax3sGBdP3phmE9OyLSt3AM2JJ2+G7iVceN2slBA264LBUYaY4KpnyvVkAqO20OI1vh213T1FBWRCEVkO0UBBuOFUVZtZ9dYzUOKVpbe9JQfQc37bWl3fR0qVkvfIqcnU1htBQ2ixaiN7fv7lCFgThGsiyzKYTOXy0MYGYvyR3d/UN5KHBwXg4XDjbNbazD6PCvNmbVEBOqQlPB2WJZnPN4MmyzOYzm/nsyGccLziOq8mVEQUjcK5yBsDNzY2xY8cSGhraLPFdTFFWJnuX/caxrZuQrBYAfNp3pN9Nt9G2a4/GS5gKk+s2riy71kNZlqk8nEvRytNI5UoyatvTC6dxQWjsxPJ8QRCuTyLJE64LRdkVrFoUQ1F2BVq9mpH3hBHc3bPmedlqJef9/1DwzTcA2I8Yge+//43GXvQ9EoTWRpZlNhzP4eONCRxNV5I7G52Gu/oF8uCgdhdN7v5Ko1Y1e5sESZbYnLqZz2I+40TBCYwWI32K+tCmVCntr9frGTp0KL1790bbEHvZGkB+2hn2Lv2V4zu3IksSAP7hkfS9aQb+4ZGNl9xVFsHeL2DnR3Ubb+9V85/mvEqKliZSlVgEgNbTBpepoRjaNVLDdUEQhBaiZXxzCMI1OBNXwNqvYqmqsGDvYmD8I5F4BDjUPG8tKSH9X09Rvn07AG6PPIzHnDkNv5RIEIRGJcsy6+Oy+WhjAscySgAlubu7v5Lcudu3nH1qlyLJEhtTN/LZkc+IL4xHLasJLw2nY1FHOLsNvFu3bowYMQL7xmoOXk85yaeJ/vNX4qN3wtkdHkFde9Bn2gz8OoY13huX58OeRUqCV6X8faPWKHvzLkqlVNkM7I9skSjdmkbJ5lSwyKBV4zjCH4dBbVBpxe9+QRCufyLJE1otWZY5uiWNHb8lIksy3u0cGfuPCOyczl/oVZ1OIu3RR6lOTkZlNOI77x0cx41rxqgFQagvWZZZF5fNRxsSiMtULvZt9Rru7teWBwcF4dZKkrv1Kev57MhnJBYlAhBYFUjv4t5I5cqsmJ+fH+PGjaNNmwsbdTeHzMSTRP/5K6f2R9ccC+nVlz7TZuAd3IjLR0uzYfcnsO9rMJcrxzw6weCnQK2F3+5BltVUSWFIuKCmEIM6DpVKgrHzqUoupfDPRCy5lQAYQp1xmRqC1s2m8WIWBEFoYUSSJ7RKVovEtl/iiduh9Enq2NeboXd2RPOX0tdl23eQPncuUmkpWh8f/Bf+F2NYI951FgShQUmSzLq4LD7amMjxs8mdnV7D3f3b8uCgdrjatfxG1VbJyvqU9Xwe83lNcucpezK8cjjmbDMSEvb29owcOZLIyEjULWCFQdrxWPYsWUxKzCHlgEpFh36D6DPtVjwC2jbeGxenw66P4cC3YDlbGMc7EoY8Ax0mwNk/m8rUnynaXo1VOt/uQqMuwKGvgepj7ag4cBQAtb0O54ntsOniIQqrCIJwwxFJntDqVJZVE/V5LBkJRaCC/tNC6DrKv+ZLXJZlCr79jpz33gNJwqZbN9p88jFad/fmDVwQhDqRJJm1x7L4aGMCJ7KUZtp2eg33DGjLAwPb4dJKkru1yWv5POZzThefBsBZ48wk1SRMp0yYJTNqtZq+ffsyePBgjMbmbcIuyzKpR4+wZ8kvpB2PBUClVhM2aBi9p96Cq28jzi4WJsOOD+HQTyAphVFo0wsGPwOho2q1QqiMzSN/64XLWK2SK0W7AJSiK3Z9vHEa0xa1rSisIgjCjUkkeUKrkp9exqpFMZTmm9AZNYy+P5y2EeeTN6mqiqxXX6N46VIAnKbfhPerr6LWt/yLQkG40UmSTNSxLD7+S3Jnb9ByT/+23D8wqFUkdxbJQlRyFF/EfEFScRIADjoHbra/GetJK+XlyvLDkJAQxo4di3sz33ySZZnTB/cRvWQxmYknAVBrtHQeNpLeU27GydO78d48LxF2fABHfgH57D67wIEw5GkIGnJBnztZkilacery51SrcH8wAmOQKKwiCMKNTSR5FyGaobdMSUdyWf91HOYqK44eNkx4JBJX3/PVMc05OaTPeZzKI0dArcbruedwuWumWKYjCC2cJMmsiVWSu5PZSnLnYNByzwAluXO2bR3J3eqk1XwR8wUpJSkAOOoduc3nNvTxejLjMwFwdXVl7NixtG/fvjnDRZYkEvbtZs+SxeQmKzONWp2eiJFj6DVpOg5ujZh8ZsfB9v/AsSUgK/sRCR4Og5+GwP6XfFlVUjHW4urLn1uSlf8JgiDc4ESSdxGzZ89m9uzZNc0GheYlyzIH16awZ9lpkMGvgzNjH4zAaH9+GU7l0VjSHnsMS3Y2akdH/D78APsBA5oxakEQrsQqyaw+msknmxKIzy4DlOTu3oFB3D8gCKdWsNTOIllYeXolX8Z8SWppKgBOBidmtpuJe7o7sVuUpY96vZ7BgwfTt2/fRm+JIElW0o8fo6yoEHtnF/w6haNWa5TnrFZO7tpG9NLfyE9T4tUZjHQdM4EeE6Zi5+zSeIFlHoFt78HxFeePtR+nFFRp0/OKL5dKr5Dg1XOcIAjC9UwkeUKLIkkymQlFlJdUYedowKOtA1t/Okn8XmWfRefBfgycEYpGc744QfHKVWS++CJyVRX6du3wX7QQfdu2zfQJBEG4Eqsks+poJh9vTCAx52xyZ9Ry34Ag7mslyZ1ZMrPy1Eq+iPmCtLI0AJwNztzd6W5CS0PZvXE3WVVZAERGRjJy5EgcHR0bPa6E6F1s+vYLygryao7Zu7oz9O77qDaZ2Lv0N4qylFlFg60d3cZNovu4ydg4NGJsZ/YpyV3C2rMHVBA2GQY9BT6RdT5NXffXqR1a/syvIAhCYxNJntBinDqUw/bFCZQXVdUcU2tUSFYZlVrFoFtDiRh6fvO/LEnkLviI/C++AMBuyGD83n8fjYPDBecWBKH5WSWZlTEZfLwxgVO5yt40R6OW+wYGce+AIJxsWkdytzxxOV8e/ZL0snQAXAwu3NP5Hvpo+7B5w2a25G0BwMfHh/Hjx+Pv798ksSVE72L5B+9ccLysII+VC96teWx0cKTnhKl0HTMBg63dBeMbTPIOJbk7vUV5rFJD55th0L/As2O9TlWdUUbR6tNXHKdxMmAQ+/EEQRBEkie0DKcO5RD1eewFxyWrsrei5/jAWgmetayMjKefoWzzZgDcHrgfj3/+E5VG0zQBC4JQZ1ZJZsWRDD7ZVDu5e2BQO+4Z0BZHYytI7qxmlp5aylcxX5FRrrRucTW6cm/4vYzyHMW2jdv47eRvANja2jJy5Ei6du3aZC0RJMnKpm+/uOwYlUrFoDvuocvo8eiNjdQzTpbh9GbY+h6k7lKOqbXQ5TYYOBfcgut3OqtE6eYzlGw6A5KMSq9GrpYuOd55UjtUarEPWxAEQSR5QrOTJJntixMuO+b4zkx6jg9CrVZRnZrKmUcfpTrxFCq9Hp+33sRp8uQmilYQhLqyWCVWxGTwycZETucpyZ2TjY4HBgYxq5Ukd9XWapYmLuWro1+RWa4sc3QzunFv53uZGjSVfbv28fWfX2O1WlGr1fTu3ZshQ4ZgY9O0jbfTjx+rtUTzYm3ybSAAADsvSURBVGRZxjs4tHESPFmG+LXKzF36fuWYRg/dZsKAJ8ElsN6nNGeVU/DrScwZyr8dY7gbLlNDqE4poWjF/7d35+FRlvf+x98zk2SyT/awhRB2wiokYCKrKIuAG7jWtWJrq7Uea6u21znW9vzq0p7WVtEerVarPYpLQWQVxSCCSkhAWWULOySBLJN1kpl5fn88IZASICSTTEg+r+vq1c6d+3meb8LdTL7zvZc9DTZhsTnsRM3qTcgQHZUjIgJK8qQdOLqrpMEUzcaUF7s4uquEqKIdHHroP/CWlhKQkECPeS8QMnRoG0UqIk3h9nhZ9M0Rnl+1m7y65C4qtC65y+xFxEWS3P1r1794dcurHKsw19bFhcTx/SHfZ3a/2ezevpu/vfQ3ysrM3UD79OnDtGnTiI+P90u8pQX5TepXXlLs2wd7vbDjIzO5O2YeQk5ACKTdDZk/gchuF3xLw2NQtvogzk8PgMfAGhpA1NV96g81DxkSR3BqLK68UrxlNVgjgrCnOFTBExE5jZI88bsK57kTvJPyl67C+bcnwOMheNgwejz/PIGJCa0cnYg0ldvjZeGmI7ywahf7TlQCZnJ377je3JnZi3B7+3jL8Xg95BbkUlhZSHxoPCMTRmKr233S5XHxwc4PeHXLqxRUFgAQHxLPPUPvYXa/2RQVFPH2P97m4MGDAERHRzN16lQGDBjgl+Naaqoq2bhiCesXvtek/uG+2j3T44atC2DNH6Bwh9kWFA7p90DGAxDevN/NtccqKHpvJ7WHzQ15glNjib6uL7Z/20zFYrUQ3CeqJd+BiEiH1j7ecaVTC4u0N6lf9fw3CPF4cFxzNV1+8xus9qZdJyKty+3xsmDjYV74bDf765K76NBA7h3fmzsy2k9yB/DJ/k94ev3T5Feeqnwlhiby8KiHKXYV89rm1yioMpO7hNAE7hlyD7P7z8Zd7ebjpR+Tm5sLQGBgIOPGjSMjI4PAwLavTLoqK9m0YjEbliykuswJgMVqxfCefb1aRGwc3QcNbtmDPbXw7XzznLuiuo1Q7A4Y80O49EcQGtOs2xoeg7LPD+H8ZD94DCwhZvUudES8zjoVEWmG9vPOK51W135RhEXZzz5l0zCwu4qJKt1Dws9/Tsz379abvkg7UHsyuVu1mwNFZnIXExbEveN6c0dGMmHtKLkDM8F7OOthDBoelp1fmc+jax6tf50YmsjcoXO5rt91BBBAdnY2n332GS6X+Ttq6NChXHHFFX45R9VVWcnG5R+Rs2Qh1eXmVNHort249PqbsQUGsfi5p8967aQ7f1B/Xt4Fc7tg41vwxXNQap6vR0gMZPwYRv8Agpv/s6jNr6veHaqr3g2MIfr6vtia+AGgiIicqX29A0unZLVaGHdTP5b/72YwgNMTOMP8Y2zAocX0/OuLhE+Y4J8gRaRercfLv3IP8cJnuzlYVAWYyd0Pxvfm9kvbX3IH5hTNp9c/fUaCdzqrxcrjox/n+n7XE2QLYs+ePSxfvpzCwkIAunTpwvTp00lOvvBNRFrKVVlB7rJF5C75kOoKMxmK7tqdS2ffzMDM8Vjrdha2Wn95xjl5EbFxTLrzB/Qbk3nhD66phNw3YO2foczceIawBHO9Xdr3wR7e7O/J8BiUrTmEc2Vd9S7YRtSsPoSOTNAHeSIiLdT+3omlU4ov3MSQrX9nV585uIJPrRmxu4rpt/t9Bv9whhI8kTbi8RqszyuioKyahIhgRqfEYLNaqHGfSu4OFZvJXVy4mdzddmkyoUHt9y0ltyC3wRTNxngNL32i+lDhrGDBxwvYvn07ACEhIUyePJmRI0e22ZEIJ1VXlLNx2UfkLF2Iq8LcxCa6Ww8yZt/MgMxxZ1Tm+o3JpE/6GHO3zZJiwqOi6T5o8IVX8FxlkP0qfPkCVJhJLhHdYOxDMPIOCGzZDp21BZUUv7eTmoNmNTJ4QDTR1/fD5lD1TkTEF9rvO7IfzZs3j3nz5uHxePwdSqdgeDzk/+4pEgqPEV/4DSVRfXEFRWKvcRJVshsLBidezSf61lt1Dp5IK1u+5ShPfrSNo6XV9W1dIoOZPCiBrO8KOVxyKrn74fg+fO/Snu06uTtpX+m+Uy8MiKuOI9gTTLWtmuPBx8ECNq+Njes2smLbCtxuNxaLhfT0dCZNmtTmRyJUV5STu/RDcpcuwlVpJncx3ZO4dPbNDMgYe86kzWq1kTR4WPMeXFUC61+Gr16EqrqdOKN6mmfcjbgVAlqWhBleg/IvDlP68T5wG1jsNqJm9SZ0VKKqdyIiPmQxDOPsc1c6OafTicPhoLS0lMjISH+H02FVfL2eA3feed5+Pd94g7Axo9sgIpHOafmWo/zordxzTGiEuHA7903ozffGJBMS1P4/dCmoLOCNrW/wzo53qPHW0K2iG8NPDCfUE1rfp9JWyaGwQ/So6FHfnpKSwrRp00hMTGzTeKvLy8lZ+iEbl51K7mJ79OTS2TfT/9LLmr+m7nwqTpiJ3fqXwWVu5EJsXxj3Mxh6A9havrlMbWFd9e6AWb2z9zerdwFRqt6JiDRVU/OT9v/xq3R41Tu2N6mfu25djIj4nsdr8ORH286Z4EUGB5D1yETCg9v/W8ehskO8tuU1Fu5eSK23FoCkyiTSC9LP6BviCaG/sz8ADoeDqVOnMmjQoDatLFWVl5G7ZCG5yz6ipsrcxCa2R08y5txC/zGXYWmtaaJl+fDl85D9GtSaSSXxg2D8IzD4OvBBUml4DcrXHqF0xT5we83q3YzehKareici0lra/zu1dFie8nKOv/QSRa+/0aT+AX46ZFikM1ifV9RgimZjnNVuNh8uJaNPbBtFdeH2lOzh1c2vsjRvKR7DnHJ/ScIlzB08ly/e+QIXLiw0TCwsWDAwCAgM4Mc//jH2NjyeparMSc6SD9m4fBE1VXVTYXv2ImP2zfQbndl6yV3pYXMzldw3wF33795lGIz/OQycCT56bu3xKrN6t9+sDtr7RhE9px8BUcE+ub+IiDROSZ60OcPjoeSDDyj881/wnDgBgCUoCKOmpvELLBYCEhMJTRvVhlGKdC4FZedO8C60X1vbemIrf/v2b3x64NP6HTQzu2Vy79B7SeuSRl5eHjWVNWckeCdZsOCp9XDkyBFSUlJaPd5KZyk5SxaycfliaqvN5C6+Zy8y5txK3/RLW5bceT2wfx2U50N4IiRnnqrIFe+DL/4EG/8JdRVOeqTD+F9Avysb7m7cAobXoHzdEZwr9mHUerEE2XDMSCFsdBdV70RE2oCSPGlTFV99Rf5TT+P67jsAgnr1IuGxRzFcNRx+6CGz0+nLROv+GEj85ePadEWkFSVENK2y0tR+bSUnP4dXvn2FtUfW1rdN7jmZuUPnMiRuSH1beXl5k+7X1H7NVeksJWfxAjauWHIquevVm4zZN9M3rYXJHcC2RbD8UXAeOdUW2Q0u+w84ugm+eQfqKpwkj4UJP4eUCT5L7gDcJ6ooen8nNXl11bs+DqJn9ycgpn2NHRGRjkxJnrSJmn37yP/9Hyj/9FMArJGRxD9wP9E334wlKMjs9OfnyP/dU7iPHau/LiAxkcRfPk7klCn+CFuk0xidEkNXRzDHSqsbXZdnAbo4zOMU/M0wDNYdWcfL375MbkEuYJ5xNz1lOnOHzKVvdN8G/V0uV/1xCOcTHt78c9/OpdJZyoaP/sWmFUuodZnV0IRefciYcwt90sb4prq1bRG8ewf8+7+g8wgs+/mp130uN6dlJjfj3LxzMLwGFV8dpXRZXl31zorjqhTCRnfFYlX1TkSkLSnJk1blKSvj+Et/pejNN6G2Fmw2om++mbgH7icgOrpB38gpU4iYPJnKDTm4CwsJiI8nNG2UKngibcBmtfDErFR+9FYuFhqmCSf/PH9iVio2P/6x7jW8rDqwilc2v8K2E9sACLQGck3fa/j+4O+TFJnUoL9hGGzfvp1ly5ZRVlZ23vtHRkb6/KDzytISsj/6F5s+XoLb5QIgIaUPGXNupc+o0b6buuj1mBW8c22dExAMdyyCnmN888zTuIuqKX5/J669pQDYezuInqPqnYiIvyjJk1ZhuN2UvP8BhX/5C56iIgDCxo4l8bFHsffte9brLDabjkkQ8ZNpQ7ry0m0jzzwnzxHME7NSmTakq1/icnvdLMtbxqubX2VP6R4Agm3BzOk/h7sG30Vi2JnHHBQVFbF06VJ2794NQHR0NEOGDGHNmjVnfc60adN8dth5RUkx2R/9i29WLq1P7hJ79yVjzq30Hpnu+3Vp+9c1nKLZGHc1eM6y9rmZDK9BxfqjlC7Nw6jxYgm04pieQtilqt6JiPiTkjzxuYovvzTX3e3cCUBQSgqJjz1K2PjxWnAv0s5NG9KVK1O7sD6viIKyahIizCma/qjg1XhqWLh7Ia9teY3D5YcBCA8M55aBt3Bb6m3EBJ85ddTtdrN27VrWrFmD2+3GarUyduxYxo0bR2BgIF27dmX58uU4nc76ayIjI5k2bRqpqaktjrmipJjsRe/zzcrluGvM5K5Ln35kzLmVlEvSWud3oGHAnlVN61ue77PHuouqKf5gJ649ZvUuKCWSmDn9CYht24PjRUTkTEryxGdq9u0j/9nfU77K/GPD6nAQf//9RN9yM5bAlh+kKyJtw2a1+PWYhMraSt7b+R7/2PoPCqoKAIi2R3N76u3cPPBmIoIiGr1u7969LFmyhBN1u/ampKQwY8YM4uLi6vukpqYycOBA9u/fT3l5OeHh4SQnJ7e4gldeXET2og/4duUy3LVmtaxr3wFkzLmFXiNGtU5y5/XCzuWw5g9wOKdp14S3/HB3wzCoWH+M0iV5GDUeLIFWIqf1Ijyjm6p3IiLthJI8aTGP08nxF1+i6J//PLXu7tZbib//x9iiovwdnohcJJw1Tt7e/jZvbX+LElcJAAmhCdw9+G5m959NSEDjFaKysjJWrFjBli1bAHPzlKlTpzJkyJBGkyur1eqzYxLKi06wftH7bP5kxankrt8AMufcSvLwka2U3Hlg6wJY80co2Gq22YLBZoOaShpfl2cxd9ls4WYr7pJqij/YhWtXCQBBveqqd3Gq3omItCdK8qTZDLebkvfeo/Avz+MpLgYgbMJ4En/xC+x9+vg5OhG5WJyoOsGb297kne/eoaK2AoAe4T24Z+g9XN3naoJsQY1e5/V6yc7OZtWqVbjq1r2NHj2ayy+/nODg1t3wo6zoONkffsC3ny7HU2ueN9et/yAy5txC8rBLWie5c9fAt/PNc+6KzLWJBEXA6Llw6f1w4Mu63TXPsnXOtKdPnZd3gQzDoDI7n5IlezFcHgiw4pjWi/BMVe9ERNojJXnSLOVr11Lw9NO4dpmbGgT16UPiY48SPm6cnyMTkYvFsYpjvL71dT7Y+QHVHnOjl75RfZk7dC5Te00lwHr2t6jDhw+zePFijh49CkC3bt2YOXMm3bp1a9WYy04cZ/2H77F51cenkrsBqWTOuZWeQ4e3TnJXWwUb34K1f4bSg2ZbSDSM+RGM+YH5vwFSr4Yb/9H4OXnTnja/3gzuUpdZvdtpfpgXlBxJ9Jx+BMaHtuS7EhGRVqQkTy6Ia28eBc8+S3lWFgA2h4O4n/yE6Jtu1Lo7EWmSA84DvLblNT7c8yFurxuAIbFDuHfYvUxMmojVcvb1cVVVVaxatYrs7GwA7HY7kydPJi0tzWc7YzbGebyQ9R++z5ZVK/C4zZi7DxxMxpxb6DmklZI7VxlseA3WvQAV5tpEwhIg8yeQdjfYG1mbmHo1DJxh7rZZnm+uwUvObFYFzzAMKnPyKfnoZPXOgmNKL8LHdlf1TkSknVOSJ03iKS09te7O7YaAAKJvvYX4H2vdnYg0za7iXbyy+RVW7FuB1/ACkJaYxr3D7iWja8Y5EyXDMNi8eTMrVqygosKc0jl06FCmTJlCRETjG7H4gvN4AesXvs+Wzz6uT+56DBpCxpxbSRo8tHWSu6pi+Ppl+OpFqC4x2xxJcNlP4ZLbIPA869+sNkhp2awKT6mL4n/tovq7uupdUgTRN/QnMEHVOxGRi4GSPDknw+2meP58jj//Ap6SEgDCJ0wg4dFfYO/d27/BichFYXPhZl7Z/AqfHfysvm1c93HcO+xeLkm45LzXFxYWsnTpUvLy8gCIjY1lxowZ9G7F30HOwgK+XvguWz77BK/HTO6SUoeSMecWkgYPa52HlhfCly9A9qtQU3d4e0wfGPcwDL0RAhpfm+hLhmFQmVtAyUd7MKrrqndXJhM+roeqdyIiFxEleY2YN28e8+bNw+Px+DsUvypf8wX5zzxNzW5zgX9Q3z4kPvoY4ePG+jkyEWnvDMNgQ/4GXv72Zb46+hUAFixckXwF9w69l0Gxg857j5qaGtasWcPatWvxer0EBAQwfvx4MjMzCQho/tuX1+vh8PatlJcUEx4VTfdBg7HWTWcsLcjn64XvsjXr0/rkrueQYWTMvpUeqUOa/cxzKj0M6/4COW+Au8psSxgM438Gqdc2e7OUC+Vxuij+126qdxQBENgjnJgb+hOYGNYmzxcREd+xGIbR2F7LAjidThwOB6WlpURGRvo7nDbj2ruX/GeeoWL15wDYoqKIe/AnRN94I5YW/GElIh2fYRisObyGV759hU2FmwCwWWzM6D2De4beQ29H06pvO3fuZOnSpZTUzSDo168f06dPJybmzAPQL8Sur9ex6vWXKS86Xt8WHhPHmOtuoCBvD1tXf4q37gO+nkOGkzHnFnoMaqXkrmivuVPmprfBa27iQvdRMO4R6D8NWnGN4ekMw6ByUyEli/ZgVLnBZiHyymQixvXAYlP1TkSkPWlqfqK/2KWep6SEwhdfpPj/3q5fdxfzve8R9+MfYXM4/B2eiLRjHq+HTw58wt82/40dRTsACLIGcV2/67h7yN10D+/epPuUlpaybNkyduww7xEZGcn06dMZOHBgi9e/7fp6HYv++Lsz2suLjvPpqy/Vv04edgkZs2+h+8DUFj3vrAq2w5r/gS0fQN3aRHqNg3E/g94ToTXW+Z2Fp6zGXHu3va56172uetdF1TsRkYuZkjzBqK2leP67HH/+eTylpQCET5pEwi9+jt1HBwaLSMdU661lyd4lvLr5VfY59wEQGhDKTQNu4vbU24kPjW/SfTweD1999RVZWVnU1tZisVjIyMhgwoQJ2O32Fsfp9XpY9frL5+xjCwxk9q/+m6RBg1v8vEYd2Qif/wF2LD7V1vdKGP8I9Ly0dZ55FoZhUPWNWb3zVtZV7yb3JGJCDyy2tqkgiohI61GS18mVr1lD/tPPULPHXHdn79ePhMceJfyyy/wcmYi0Z9XuahbuXsjft/ydIxXmmWyRQZF8b9D3+N6g7+GwN736f+DAARYvXkxBgXlMQFJSEjNnziQxMdFn8R7evrXBFM3GeGprwdsKa7H3rzOTuz2f1jVYYNAss3LXbYTvn3cenrIaihfupnrrCQACu4URfcMAgrqqeici0lEoyeukXHv2mOvuPl8DgC06mvifPkjUnDladyfSyXm8HnILcimsLCQ+NJ6RCSOx1W3+UVFbwbvfvcsbW9/gRLWZJMQGx3Ln4Du5ccCNhAU2PVGoqKjgk08+YePGjQCEhIRw5ZVXMmLECJ+eeef1eti94esm9S0vKfbNQw0D9qwyp2XuX2u2WWwwdA6MfRgSBvrmOY092mvgyivFW1aDNSIIe4oDi9ViVu++PU7Jh7vN6p3VQuTlSURMSlL1TkSkg9Ff852Mu7iY4/NepPjtt8HjgcBAYm67jbgf3YetE20uIyKN+2T/Jzy9/mnyK/Pr2xJDE3nwkgc5XH6Yt7a/hbPGCUDXsK7cPeRurut7HcEBwU1+htfrZdOmTaxcuZKqKnM3yUsuuYQrr7yS0FDfncNW66pma9an5CxdSMmxo026JjwqumUP9Xrhu6Ww5g/m9EwAWxCMuBUuewhiWncKfNWW45R8tAdPaU19m80RRMSVybh2FFG1pa561zWM6Bv6E9QtvFXjERER/1CS10kYtbUUv/0OhfPm4T257m7yZBJ//ghBvXr5NzgRaRc+2f8JD2c9jEHDTZfzK/P51dpf1b/uFdmLe4bew4zeMwi0Bl7QM44dO8aSJUs4ePAgAAkJCcycOZOePXu2/BuoU1FSzKYVi9m0chnVZWZCag8Nw/B6qamuOut1EbFxdG/uejyvB7YuMCt3BdvMtoAQSLsbMn8Ckd2ad98LULXlOCfe2n5Gu6e0hpL3d5kvrBYiJiUROSkJS4CqdyIiHZWSvE6gfPVqc91d3UHC9v79SXz8McIyMvwcmYi0Fx6vh6fXP31Ggne6AEsA/2/c/2Nq8tT66ZtN5XK5yMrK4quvvsIwDAIDA5k0aRJjxozBZvPNOXAnDh1gw+KFbP/iM3N9HeBI7MKoq65hyMQr2fdNbqO7a5406c4f1J+X12TuGvj2HfMohKK9Zps9EtLnwqU/hvCmbTzTUobXoOSjPefuZLUQ/6Ph2JMi2iQmERHxHyV5HZhr927yn36Gii++AMAWE0P8T39K1JzZWHz0R5WIdAy5BbkNpmg2xm24iQ+Jv6AEzzAMtm/fzrJlyygrKwNg0KBBTJs2DYcPjmYxDIODWzeTs2QBe3Oz69u79htA2qzr6Zt+aX3i1m9MJlc//MszzsmLiI1j0p0/oN+YzKY/uLYKcv8Ba/8CzkNmW0iMmdiNvhdColr8vV0IV15pgymajfIaGDWtsLGMiIi0O0ryOiB3cTHHn3+B4vnzT627u+N24u67D1uEPsEVkTMVVhb6tB9AUVERy5YtY9cuc6pgVFQUV111Ff37929WjKfzuN3s/OoLNixeQEFeXQXLYqFv2qWkzbqe7gMGNXpdvzGZ9EkfY+62WVJMeFQ03QcNbnoFz1UG2a/Cly9ARd3PIjwRMh+EUXeB3T9r3Lxl50nwLrCfiIhc3JTkdSBGTQ3Fb79N4bwX8TrNdSgRV15BwiOPEJSc7OfoRKQ9a+p5dk3p53a7Wbt2LWvWrMHtdmO1Whk7dizjxo0jMPDC1vD9O1dlJZtXrSB36SLKTphJVkCQncETr2DUVVcT3fX8h65brTaSBg+7sAdXFsHX/wtf/xWqS8w2R08Y+1MYcRsENn3jmdZgWJt2gLo1IqiVIxERkfZASd5FxPB4qNyQg7uwkID4eELTRmGx2TAMg/LVqyl4+hlq9u0DwD5wIImPPUbYpWP8G7SIXBRGJowkMTSRgsqCRtflWbCQGJrIyISR57zP3r17WbJkCSdOmLs4pqSkMGPGDOLi4loUn/N4IRuXf8S3nyynpqoSgFBHFJdMncmwK6cTGtnyqZ+NKi8wq3bZr0JNudkW29c8BmHYjWBrWdLaUt4aD+WfH8KZdfC8fW0OO/aUVvo5iYhIu6Ik7yLh/Phj8n/3FO5jx+rbArp0Ifbuuyj/fA0Va81zmGyxscQ/9FOirr9e6+5EpMlsVhuPjX6Mh7MexoKlQaJnwawSPTr60bOuxysrK+Pjjz9m8+bNAISFhTF16lSGDh2KxdK0KlNj8vP2kLN4Ad99uQavx1xPFtM9ibSZ1zFo7EQCglqpMlVyENb9xVx356422xKHmAeYp14DF7pBi48ZhkHVN4WULsurX4sXEB+Cu/Dsu4dGzeqNpYkVPxERubhZDMM4+1ZqnZzT6cThcFBaWkqkH8+Qc378MYd/+pB5uO5ZWAIDibnrTmJ/+ENs4Tr3SESap7Fz8rqEduHR0Y9yRfIVZ/T3er1s2LCBTz/9FJfLBUB6ejqXX345ISEhzYrBMAz2bcphw+J/cWDLt/XtSYOHkTbzOlJGjMLSksPSvR7Yvw7K8831dMmZp5K2E3vMnTK/eQe85g6ddE+D8T+H/lOhBQmrr9QcLKPkoz3UHDA3srFF2XFclULI0Diqt55o5Jw8O1GzehMypGXVVBER8b+m5idK8s6hPSR5hsfD7slXNKjg/TuL3U7Khwux67w7EfEBj9dDbkEuhZWFxIfGMzJhZKMVvMOHD7N48WKOHjUPGu/atSszZ86ke/fzr4trjLu2lu1ffEbO4oWcOHQAAIvVyoCMcaTNvI7E3n2b/02dtG0RLH8UnEdOtUV2g4yfwOEc2PovMLxme69xMP4RSJnQLpI7T6mL0uX7qNxYAIAlyErExCQixnXHEnjq38fwGrjySvGW1WCNCMKe4lAFT0Skg2hqfqLpmu1c5YaccyZ4AIbLhTu/QEmeiPiEzWojvUv6Wb9eVVXFqlWryM42jyyw2+1MnjyZtLQ0rM2osFWVOflm5TI2rVhMRUkxAEEhIQy9fCojr7qayLiE5n0j/27bInj3Dvj3NYfOI7Di8VOv+001k7uk0b55bgsZtR7KPj9MWdZBjFozAQ0dmYBjWi9skfYz+lusFoL7RLVxlCIi0p4oyWvn3IVN2668qf1ERJrLMAw2b97MihUrqKioAGDo0KFMmTKFiGYcz1Jy7Cg5Sz9kS9ZK3HVTPcNj4xg5/WqGTZ6KPTTMd8F7PWYF7xyHvRMQAncvhe7n3lymrRiGQdW3x811dyXmzycoOZKomb0J0oHmIiJyDkry2rmA+KZta97UfiIi5+P1etm/fz/l5eWEh4eTnJzMiRMnWLp0KXl5eQDExsYyY8YMevfufcH3P7JzOxsWL2DX+i/r1xrH9+pN+szr6J8xDltAK7w17V/XcIpmY9xVUFPh+2c3Q82hMko+2kvNfvM4HJvDjmN6L0KGx7doIxsREekclOS1c6Fpowjo0gV3fn7jG69YLAQkJhKaNqrtgxORDmfbtm0sX74cZ91ZmwBBQUHU1tZiGAYBAQGMHz+ezMxMAi4gGfN6PezJ/poNixdwZOf2+vaUEaNIm3U9SYOHtV7yUrAD1vxP0/qW55+/TyvyOF2UrthPZY4ZhyXQSsSEHoSP74E1SDsmi4hI0yjJa+csNhuJv3zc3F3TYmmY6NX9QZT4y8d1XIKItNi2bdt49913z2ivqTF3auzatSs33HADMTExTb5nrauarVmfkrNkISX55gYttoAABo2bxKgZ1xKXlOyb4P+dpxZ2LIHsv8G+NU2/LjyxdeI5D6PWS9kXhyj77CBGTd26u0sSiJzWiwDHmevuREREzkVJ3kUgcsoU+PNzZ56Tl5hI4i8fN78uItICXq+X5cuXn7NPRUUFUVFRTbpfRUkxm1YsZtPHS6kuN7f6Dw4LZ/iUGVwybSZhUdEtDblxZccg5w3I+TuUmUklFiv0nw4Hv4LKIhpfl2cxd9lMzmyduM7CMAyqthyndGkenuK6dXdJEThm9cbe039H94iIyMVNSd5FInLKFCImTzZ32ywsJCA+ntC0UargiYhP7N+/v8EUzcY4nU72799PSkrKWfucOHSADYsXsn3NKjxuNwCOxC6Muuoahky8ksDgYJ/GDZgzHPavNat22z8Cr/lcwuJh5J2Qdjc4epy2u6aFhole3TTRaU+36SHnNYfLKVm8h5q8unV3kUE4pqeY6+505IGIiLRAp0jyrrvuOrKyspg8eTLvv/++v8NpNovNRtiY9rGlt4h0LOXl5c3uZxgGB7duJmfJAvbmZte3d+03gLRZ19M3/VKsrZE8ucrg2/mQ/SoUbDvVnnQpjL4XBl0NAUGn2lOvhhv/0fg5edOeNr/eBjxlNZSu2GeuuzPMdXfh43sQMUHr7kRExDc6RZL34IMP8v3vf5833njD36GIiLRL4eHhF9zP43az86sv2LB4AQV5e8xGi4W+aZeSNut6ug8Y1BqhmhupZP8NvnkHasypoASGwrAbIX0udBl69mtTr4aBM8zdNsvzzTV4yZltUsEzar2UrT1srrtzeQAIGRGPY1oKAVFadyciIr7TKZK8SZMmkZWV5e8wRETareTkZCIjI885ZTMyMpLk5GRclZVsXrWC3KWLKDthntEZEGRn8MQrGDXjGqK7dPN9gJ5a+G4prH+l4UYqsX3NxG74LRAS1bR7WW2QMs73MZ6FYRhUbz1BydI8PEXVAAT2CCdqVh/syVp3JyIivuf3JO/zzz/n97//PTk5ORw9epQFCxZw7bXXNujz4osv8vvf/56jR48yePBgnnvuOcaNa7s3aBGRjs5qtTJt2jRzd03DqN+9F6h/PeGyTNb83+t8+8lyaqoqAQh1RHHJ1JkMn3IVIRGtkLCcbSOVAVeZyV3KBLBaff9cH6k5Uk7p4r249pYCYI0MwjGtF6EjErTuTkREWo3fk7yKigqGDx/O3XffzezZs8/4+vz583nooYd48cUXueyyy/jf//1fpk+fzrZt2+jZsycAo0aNwuVynXHtxx9/TLduTf9E2eVyNbjP+TYhEBHpSALLSgg+tBtXYk+MwFNr2SzuGuz5B1n93O8wvOb2/jHdk0ibeR2Dxk4kICjobLdsHsMwp1Nm/w22LzpzI5VRd0FUkm+f6WOeshqcK/dTkX3M3OMlwErE+O5ETEjCate6OxERaV1+T/KmT5/O9OnTz/r1P/7xj9xzzz3MnTsXgOeee44VK1bw0ksv8dRTTwGQk5Pjk1ieeuopnnzySZ/cS0TkYuL1elj1+ssElpUQUFaCJzQCIyAQi7sWW2VZ/X6UPVKHkn719aQMH4XF1xU0V/lpG6lsPdWeNAbS7zXX0wW077VrhttL+dojOFcdOLXublgcjukpBES3ws6iIiIijfB7kncuNTU15OTk8NhjjzVonzJlCuvWrfP58x5//HEefvjh+tdOp5OkpPb9abGIiC8c3r6V8qLjgHmgQEBlWaP9MufcQtLgYb59eOF3ZtVu09sNN1IZeoM5JbOrj5/XCgzDoHpb3bq7E3Xr7rqHEzWrN/ZeDj9HJyIinU27TvKOHz+Ox+MhMTGxQXtiYiLHTjsU/HymTp1Kbm4uFRUV9OjRgwULFpCenn5GP7vdjt3evj8lFhFpDeUlxT7td14eN3y3xEzu8j4/1R7Tx0zsRtza9I1U/Kz2WAUli/fi2l0CgDUiEMfUFEJHat2diIj4R7tO8k6yWBq+SRqGcUbbuaxYscLXIYmIdCjhUdE+7XdWZfmQ+wZs+DuU1Z1VZ7FC/+kwei6kTGzXG6mczlNet+5u/cl1dxYixvUgYmIPrPaL4u1VREQ6qHb9LhQXF4fNZjujaldQUHBGdc+X5s2bx7x58/B4PK32DBGR9qT7oMGEx8TVT9lsTERsHN0HDb7wmxsGHPjSPP7g9I1UQuNg1J0w6u52v5HK6Qy3l/Ivj+D89ABGdd26u6F16+5itO5ORET8r10neUFBQYwaNYqVK1dy3XXX1bevXLmSa665ptWee//993P//ffjdDpxOLSWQkQ6PqvVxuV3/YBFf/zdWftMuvMHWC/k0HBXOWx+F9b/rZGNVOZC6jXtfiOV0xmGQfX2IkqX5uE+XgVAYLcwomb2wd5b7xUiItJ++D3JKy8vZ/fu3fWv8/Ly2LRpEzExMfTs2ZOHH36Y22+/nbS0NDIyMnj55Zc5cOAA9913nx+jFhHpePqNyeTqh3/JqtdfblDRi4iNY9KdP6DfmMym3ahwp7nW7pu3wVV3FE1ACAw7uZHK8FaIvnXVHqugZMleXLtKALCGB+KY2ovQUYladyciIu2OxTAMw58BZGVlMWnSpDPa77zzTl5//XXAPAz92Wef5ejRowwZMoQ//elPjB8/vtVjO1nJKy0tJTKyFQ75FRFph7xej7nbZkkx4VHRdB80+PwVPI8bvltat5HK6lPt9Rup3AIhLVzP5weeilpz3d3XR811dzYLEWO7EzEpCWuw3z8nFRGRTqap+Ynfk7z2TEmeiMh5lOVD7j8g5+/gPGy2XaQbqZzO8Hgp//Iozk8OYFSbawhDBsfiuCqFgNgQP0cnIiKdVVPzE30M2QhtvCIinZrXA/vXQXk+hCdCciacXskzDDjwFWS/AtsWgbfWbA+Ng5F3QNrdENXTP7G3kGEYVH9XTOmSvbgL69bddQ3DMbM3wX2i/BuciIhIE6mSdw6q5IlIp7NtESx/FJxHTrVFdoNpz0Cfy82NVLJfhfwtp77eYzSMvvei2UjF8Bq48krxltVgjQjCnuLAYrVQm19ByZI8XDvNswCtYYFETk0mLK2L1t2JiEi7oEqeiIhcmG2L4N07MBefncZ5BN693dw8xW1Wty7WjVSqthyn5KM9eEpr6tuskUEEdQ2jelcxeAGbhfDLuhN5udbdiYjIxUnvXiIiYk7RXP4oZyR4p3NXQXSKWbUbcetFt5FK1ZbjnHhr+xntXmcN1U4z6QtOjSXqqhQC4rTuTkRELl5K8kRExFyDd/oUzbOZ9Rfo3fq7G/ua4TUo+WjPOftYwwKJvW2QpmaKiMhF7+Lb8qwNzJs3j9TUVNLT0/0diohI2yjPb1q/ioLWjaOVuPJKG0zRbIy3ohZXXmkbRSQiItJ6lOQ14v7772fbtm1kZ2f7OxQRkbYRnujbfu1IbWElZVkHm9TXW3buRFBERORioOmaIiJiHpMQ2Q2cR2l8XZ7F/HpyZltH1iyG18C1q5jydUeo/q64yddZI4JaMSoREZG2oSRPRETMc/CmPVO3u6aFhole3Rq1aU83PC+vHfJWu6nMyaf8y6O4j9ftBGoB+4Boag+W4a1wn/Vam8OOPcXRRpGKiIi0HiV5IiJiSr0abvzHWc7Je9r8ejtVe7yKinVHqMjJx3B5ALDYbYSldyE8oysBsSFn3V3zpKhZvbXpioiIdAg6DP0cdBi6iHRKXo+522Z5vrkGLzmzXVbwzjYlMyA+hPDMboSOTMRqbxh3Y+fk2Rx2omb1JmRIXJvFLiIi0hw6DF1ERJrHaoOUcf6O4qy8LjeVOQWUrzvSYEpm8IAYwjO7Ye8bddaKXMiQOIJTY3HlleItq8EaEYQ9xaEKnoiIdChK8hoxb9485s2bh8fj8XcoIiJSx328ivIvj1Cx4d+mZKYlEp7RrckHmFusFoL7RLVipCIiIv6l6ZrnoOmaIiL+ZXgNXLtLKF97mOqdxfX7wZyakpmA1a7PK0VEpHPQdE0REbloeV1uKnPrpmQWVtW3Bw88/5RMERGRzk5JnoiItBvnmpIZltGNwCZOyRQREenMlOSJiIhf1U/JXHeE6u+KNCVTRESkhfSuKSIifnHWKZkDogm/rLumZIqIiDSTkjwREWlTmpIpIiLSupTkNUJHKIiI+JZhGLh2NTIlM65uSuYoTckUERHxFR2hcA46QkFEpGW8Lg+VufmNT8nM7Ia9X7SmZIqIiDSRjlAQERG/cZ+oonxdI1MyRyUSltGVwPhQP0coIiLScSnJExERnzCMkweXNzIlM6MroaMSsQbrbUdERKS16d1WRERapH5K5pdHcBdoSqaIiIi/KckTEZFmcZ+oovzLo1RsOIZRXTclM+jkLpmakikiIuIvSvJERKQBw2vgyivFW1aDNSIIe4qjvhJXPyVz3RGqd2hKpoiISHukd2IREalXteU4JR/twVNaU99mcwQROS0Fw+U2d8k8bUqmvX804Zd1I1hTMkVERNoNJXkiIgKYCd6Jt7af0e4praF4/nf1rzUlU0REpH1TktcIHYYuIp2N4TUo+WjPuTtZIfKqFMLTumhKpoiISDtm9XcA7dH999/Ptm3byM7O9ncoIiJtwpVX2mCKZqO8ENQ1XAmeiIhIO6ckT0RE8JadJ8G7wH4iIiLiP0ryREQEa0SQT/uJiIiI/yjJExER7CkObI5zJ3A2hx17iqONIhIREZHmUpInIiJYrBaiZvU5Z5+oWb11TIKIiMhFQEmeiIgAEDIkjtjbBp1R0bM57MTeNoiQIXF+ikxEREQuhLZIExGReiFD4ghOjcWVV4q3rAZrRBD2FIcqeCIiIhcRJXkiItKAxWohuE+Uv8MQERGRZtJ0TRERERERkQ5ESZ6IiIiIiEgHoiRPRERERESkA1GS14h58+aRmppKenq6v0MRERERERG5IBbDMAx/B9FeOZ1OHA4HpaWlREZG+jscERERERHpxJqan6iSJyIiIiIi0oEoyRMREREREelAlOSJiIiIiIh0IEryREREREREOhAleSIiIiIiIh1IgL8DaM9ObjzqdDr9HImIiIiIiHR2J/OS8x2QoCTvHMrKygBISkrycyQiIiIiIiKmsrIyHA7HWb+uc/LOwev1cuTIESIiIrBYLH6JIT09nezs7HZ/7+beqznXXcg1Tel7vj5Op5OkpCQOHjzYYc9LbM1x1l7i8NW9W3Kf1hzvvuqn8d4xYrgYx7uvf7efr19nGOvQ8cf7xTjWL/Qa/S3TNB19rJ+8//r16ykrK6Nbt25YrWdfeadK3jlYrVZ69Ojh1xhsNlur/Z/Rl/du7r2ac92FXNOUvk29X2RkZIf9xdia46y9xOGre7fkPq053n3dT+P94o7hYhzvvv7d3tR+HXmsQ8cf7xfjWL/Qa/S3TNN09LF+8v4Oh+OcFbyTtPFKO3f//fdfFPdu7r2ac92FXNOUvq35M75YtJefwcUw3ltyn9Yc777u15G1h59Ba8dwMY53X/9ub04MHVF7+Bnod3vLrtHfMk3THn4G7el3u6ZripyH0+nE4XBQWlrq90+IRFqbxrt0Fhrr0plovHc+quSJnIfdbueJJ57Abrf7OxSRVqfxLp2Fxrp0JhrvnY8qeSIiIiIiIh2IKnkiIiIiIiIdiJI8ERERERGRDkRJnoiIiIiISAeiJE9ERERERKQDUZInIiIiIiLSgSjJE2mmgwcPMnHiRFJTUxk2bBjvvfeev0MSaTVlZWWkp6czYsQIhg4dyiuvvOLvkERaXWVlJcnJyTzyyCP+DkWk1QQEBDBixAhGjBjB3Llz/R2O+IiOUBBppqNHj5Kfn8+IESMoKChg5MiRfPfdd4SFhfk7NBGf83g8uFwuQkNDqaysZMiQIWRnZxMbG+vv0ERaza9+9St27dpFz549+cMf/uDvcERaRVxcHMePH/d3GOJjquSJNFPXrl0ZMWIEAAkJCcTExFBUVOTfoERaic1mIzQ0FIDq6mo8Hg/6jFA6sl27drFjxw6uuuoqf4ciInLBlORJp/X5558za9YsunXrhsViYeHChWf0efHFF0lJSSE4OJhRo0axZs2aRu+1YcMGvF4vSUlJrRy1SPP4YryXlJQwfPhwevTowS9+8Qvi4uLaKHqRC+OL8f7II4/w1FNPtVHEIs3ji7HudDoZNWoUY8eOZfXq1W0UubQ2JXnSaVVUVDB8+HBeeOGFRr8+f/58HnroIX71q1+xceNGxo0bx/Tp0zlw4ECDfidOnOCOO+7g5ZdfbouwRZrFF+M9KiqKb775hry8PP7v//6P/Pz8tgpf5IK0dLx/+OGH9O/fn/79+7dl2CIXzBe/2/ft20dOTg5//etfueOOO3A6nW0VvrQmQ0QMwFiwYEGDttGjRxv33Xdfg7aBAwcajz32WP3r6upqY9y4ccY//vGPtghTxCeaO95Pd9999xnvvvtua4Uo4jPNGe+PPfaY0aNHDyM5OdmIjY01IiMjjSeffLKtQhZpFl/8bp82bZqRnZ3dWiFKG1IlT6QRNTU15OTkMGXKlAbtU6ZMYd26dQAYhsFdd93F5Zdfzu233+6PMEV8oinjPT8/v/7TXafTyeeff86AAQPaPFaRlmrKeH/qqac4ePAg+/bt4w9/+AP33nsv//Vf/+WPcEWarSljvbi4GJfLBcChQ4fYtm0bvXv3bvNYxfcC/B2ASHt0/PhxPB4PiYmJDdoTExM5duwYAGvXrmX+/PkMGzasfg78m2++ydChQ9s6XJEWacp4P3ToEPfccw+GYWAYBg888ADDhg3zR7giLdKU8S7SETRlrG/fvp0f/vCHWK1WLBYLf/7zn4mJifFHuOJjSvJEzsFisTR4bRhGfdvYsWPxer3+CEukVZxrvI8aNYpNmzb5ISqR1nGu8X66u+66q40iEmkd5xrrmZmZbN682R9hSSvTdE2RRsTFxWGz2c74VLegoOCMT8RELnYa79KZaLxLZ6Gx3rkpyRNpRFBQEKNGjWLlypUN2leuXElmZqafohJpHRrv0plovEtnobHeuWm6pnRa5eXl7N69u/51Xl4emzZtIiYmhp49e/Lwww9z++23k5aWRkZGBi+//DIHDhzgvvvu82PUIs2j8S6dica7dBYa63JWftzZU8SvPvvsMwM44z933nlnfZ958+YZycnJRlBQkDFy5Ehj9erV/gtYpAU03qUz0XiXzkJjXc7GYhiG0bZppYiIiIiIiLQWrckTERERERHpQJTkiYiIiIiIdCBK8kRERERERDoQJXkiIiIiIiIdiJI8ERERERGRDkRJnoiIiIiISAeiJE9ERERERKQDUZInIiIiIiLSgSjJExERERER6UCU5ImIiIiIiHQgSvJERKTDuuuuu7j22mvb/Lmvv/46UVFRbf5cERERUJInIiLSbtTW1vo7BBER6QCU5ImISKcxceJEHnzwQX7xi18QExNDly5d+PWvf92gj8Vi4aWXXmL69OmEhISQkpLCe++9V//1rKwsLBYLJSUl9W2bNm3CYrGwb98+srKyuPvuuyktLcVisWCxWM54xkm//vWvGTFiBK+99hq9e/fGbrdjGAYHDhzgmmuuITw8nMjISG688Uby8/MBKC0txWazkZOTA4BhGMTExJCenl5/37fffpuuXbsCUFNTwwMPPEDXrl0JDg6mV69ePPXUUz74aYqISHulJE9ERDqVN954g7CwML7++mueffZZfvOb37By5coGff7zP/+T2bNn880333Dbbbdxyy23sH379ibdPzMzk+eee47IyEiOHj3K0aNHeeSRR87af/fu3bz77rt88MEHbNq0CYBrr72WoqIiVq9ezcqVK9mzZw833XQTAA6HgxEjRpCVlQXAt99+W//fTqcTMBPRCRMmAPCXv/yFRYsW8e677/Ldd9/x1ltv0atXr6b+uERE5CIU4O8ARERE2tKwYcN44oknAOjXrx8vvPACn376KVdeeWV9nxtuuIG5c+cC8Nvf/paVK1fy/PPP8+KLL573/kFBQTgcDiwWC126dDlv/5qaGt58803i4+MBWLlyJd9++y15eXkkJSUB8OabbzJ48GCys7NJT09n4sSJZGVl8bOf/YysrCwmT57M3r17+eKLL7jqqqvIysriP/7jPwA4cOAA/fr1Y+zYsVgsFpKTky/sByYiIhcdVfJERKRTGTZsWIPXXbt2paCgoEFbRkbGGa+bWsm7UMnJyfUJHsD27dtJSkqqT/AAUlNTiYqKqo9h4sSJrFmzBq/Xy+rVq5k4cSITJ05k9erVHDt2jJ07d9ZX8u666y42bdrEgAEDePDBB/n4449b5fsQEZH2Q0meiIh0KoGBgQ1eWywWvF7vea+zWCwAWK3mW6dhGPVfa8mGKWFhYQ1eG4ZR/6yztY8fP56ysjJyc3NZs2YNEydOZMKECaxevZrPPvuMhIQEBg0aBMDIkSPJy8vjt7/9LVVVVdx4443MmTOn2fGKiEj7pyRPRETk33z11VdnvB44cCBAfdXt6NGj9V8/uZbupKCgIDweT7OenZqayoEDBzh48GB927Zt2ygtLa1P3E6uy3vhhRewWCykpqYybtw4Nm7cyOLFi+ureCdFRkZy00038corrzB//nw++OADioqKmhWfiIi0f0ryRERE/s17773Ha6+9xs6dO3niiSdYv349DzzwAAB9+/YlKSmJX//61+zcuZMlS5bwP//zPw2u79WrF+Xl5Xz66accP36cysrKJj/7iiuuYNiwYXzve98jNzeX9evXc8cddzBhwgTS0tLq+02cOJG33nqLCRMmYLFYiI6OJjU1lfnz5zNx4sT6fn/6059455132LFjBzt37uS9996jS5cuOsdPRKQDU5InIiLyb5588kneeecdhg0bxhtvvME///lPUlNTAXO659tvv82OHTsYPnw4zzzzDP/93//d4PrMzEzuu+8+brrpJuLj43n22Web/GyLxcLChQuJjo5m/PjxXHHFFfTu3Zv58+c36Ddp0iQ8Hk+DhG7ChAl4PJ4Glbzw8HCeeeYZ0tLSSE9PZ9++fSxdurR+2qmIiHQ8FuP0RQUiIiKdnMViYcGCBVx77bX+DkVERKRZ9DGeiIiIiIhIB6IkT0REREREpAPRYegiIiKn0SoGERG52KmSJyIiIiIi0oEoyRMREREREelAlOSJiIiIiIh0IEryREREREREOhAleSIiIiIiIh2IkjwREREREZEOREmeiIiIiIhIB6IkT0REREREpAP5/7dSMsNt2IhtAAAAAElFTkSuQmCC", + "image/png": "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drudLVu2AGCaJpGRkaSmplZe9x//+AdxcXEAlJWVcd999xEXF0dQUBBdu3Zl/vz5DfDbFBGR5kpJnoiItClvvPEGoaGhfP755zz77LM89dRTrFy5ssoxP//5z7n11lvZsWMHt99+O9/5znfYs2dPra6flpbGc889h8Ph4MSJE5w4cYKHH374sscfPHiQt99+m3//+99s374dgOnTp3P27FlWr17NypUrOXToEDNnzgTA6XQyYMAAMjIyAPjiiy8q/9ftdgNWIjpixAgA/vCHP/D+++/z9ttvs2/fPhYuXEjXrl1r++sSEZEWyM/XAYiIiDSlfv36MW/ePAC6d+/OCy+8wMcff8y4ceMqj/n2t7/NnDlzAHj66adZuXIlf/zjH3nxxReveP2AgACcTieGYRAbG3vF48vKynjrrbdo3749ACtXruSLL74gMzOTLl26APDWW2/Ru3dvNm3aRGpqKiNHjiQjI4Of/OQnZGRkMGbMGL766ivWrl3LpEmTyMjI4MEHHwQgKyuL7t27M2zYMAzDICEhoW6/MBERaXE0kyciIm1Kv379qryOi4vj1KlTVcaGDh16yevazuTVVUJCQmWCB7Bnzx66dOlSmeABJCcnExERURnDyJEj+fTTT/F6vaxevZqRI0cycuRIVq9ezcmTJ9m/f3/lTN6sWbPYvn07PXr04P7772fFihWN8nOIiEjzoSRPRETaFH9//yqvDcPA6/Ve8TzDMACw2aw/naZpVr53NQVTQkNDq7w2TbPyXpcbv/HGG8nPz2fr1q18+umnjBw5khEjRrB69Wo++eQTOnToQK9evQAYOHAgmZmZPP300xQXF3PbbbfxrW99q97xiohI86ckT0RE5Bs+++yzS1737NkToHLW7cSJE5XvX9hLd0FAQAAej6de905OTiYrK4ujR49Wju3evRuXy1WZuF3Yl/fCCy9gGAbJyckMHz6cbdu2sWTJkspZvAscDgczZ87klVdeYdGiRfz73//m7Nmz9YpPRESaPyV5IiIi3/DOO+/w2muvsX//fubNm8fGjRu57777ALjmmmvo0qULTzzxBPv37yc9PZ3//d//rXJ+165dKSgo4OOPPyY3N5eioqJa33vs2LH069eP733ve2zdupWNGzdy5513MmLECAYNGlR53MiRI1m4cCEjRozAMAzatWtHcnIyixYtYuTIkZXH/f73v+ef//wne/fuZf/+/bzzzjvExsaqj5+ISCumJE9EROQbnnzySf75z3/Sr18/3njjDf72t7+RnJwMWMs9//GPf7B371769+/Pr3/9a375y19WOT8tLY17772XmTNn0r59e5599tla39swDN59913atWvHjTfeyNixY0lKSmLRokVVjhs1ahQej6dKQjdixAg8Hk+VmbywsDB+/etfM2jQIFJTUzl8+DBLly6tXHYqIiKtj2F+fVOBiIhIG2cYBosXL2b69Om+DkVERKRe9DWeiIiIiIhIK6IkT0REREREpBVRM3QREZGv0S4GERFp6TSTJyIiIiIi0oooyRMREREREWlFlOSJiIiIiIi0IkryREREREREWhEleSIiIiIiIq2IkjwREREREZFWREmeiIiIiIhIK6IkT0REREREpBX5/yMZFPnOrm8ZAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -1063,13 +1063,13 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "cde81524", "metadata": {}, "outputs": [ { "data": { - "image/png": "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bHnMarp58yb69esHuVyO5ORkdOrUCcnJyXBzc8Pvv/8OD4/a9Q+vWq2Go6MjcnJyoFQqTZ0OERE9QBSl0tU21YWwV5ZO0eQIHhER1VfVrV30LvIA4P79+/jhhx9w8uRJiKKIoKAgvPzyy7C1tX2ipE2BRR4REREREdUGRivybt26BU9PzwrPnT17Fm3b1q7FQljkERERERFRbVDd2kXvZ/LatGmD7du3l2v/+OOP0bVrV30vR0RERERERAakd5E3e/ZsjB49Gq+//jru37+PGzduoH///vjoo4+wdetWY+RIRERERERE1aR3kffOO+/g6NGjOHz4MNq2bYu2bdvC1tYWZ8+exbBhw4yRIxEREREREVWT3kUeADRp0gSBgYG4evUq1Go1Ro0aVelzekRERI9N1AApB4FzP5b+Vyy/TysRERHp0nsz9MOHD2Ps2LFwdXXF2bNncfjwYUydOhX//e9/sWHDBjg7OxsjTyIiqm8StwMxswH1zb/blA2A0BWAijNHiIiIKqP3SF7//v0xevRoHDlyBAEBAXjttddw+vRp/PXXX2jTpo0xciQiovomcTsQNV63wAMAdVppe2L5BcCIiIiolN4jebt370afPn102po2bYpDhw5hyZIlBkuMiIjqKVFTOoKHinb4kQAIQMwcoNXTgExew8kRERGZP71H8h4u8LQXksnw/vvvP3FCRERUz6XGlR/B0yEB6hulcURERFROtYu8IUOGICcnR3u8ZMkSZGdna4+zsrKgUqkMmhwREdVDubd0DiURyLtlhZxUW+TdsoIkVhxHREREpao9XfPXX39FYWGh9njFihUYM2YMnJycAAAlJSW4ePGiwRMkIqJ6RvH3as3q6za4dcoRJff/npZpYauBZ1AOlAqu6kxERFSRao/kSZJU5TEREZFB+PUAlA2gvm6LG4edUXJf95+qkvsy3DjsAvWlPBMlSEREZN4ea588IiIio5HJIYUsw61Tyv81CA8FlB7fWrYCkob75hERET2s2kWeIAgQBKFcW20VEREBlUqFzp07mzoVIiJ6SH5+g/9N0az835mS9HTknzhZc0kRERHVEtV+Jk+SJISHh8Pa2hoAUFBQgNdffx329vYAoPO8Xm0wZcoUTJkyBWq1Go6OjqZOh4iIHnDy9CW4VyOuJDPT6LkQERHVNtUu8sLCwnSOx44dWy5m/Pjx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", + "image/png": "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nJys2WXxboIgIDg4GJ999hkcHR1x9uxZTV9dMyw9evTQ+qptduZBVOd3b/7bt29HSUmJpr96d8fvv/9eKy46OrrGjplPPfUULl68CH9//xp59+jRQ+cib9iwYSgrK0NUVFSdMdXFzt27oUqShK+++kqnse71ww8/aC2NzcjIQHx8fIMOJ68tJwDYuHFjjdjqmIbMrg0ZMgTFxcWIiYnRav/22281/URE1HCcySMiagH69OmD9evX44033kD37t3x+uuvIygoCHfu3MG5c+ewadMmdOrUCSNGjECHDh0wdepUfPHFF5DJZBg2bJhmd00fHx/84x//AFD1nNq6deswevRotG3bFpIkYceOHSgsLERYWJhm7M6dOyMuLg67du2Cl5cX7Ozs0KFDB4O917CwMAwdOhRz586FSqVCv379NLtrduvWDRMmTABQ9Szf+PHjsWbNGpibmyM0NBQXL17EJ598UmOZ4gcffIB9+/ahb9++mDlzJjp06ICysjKkp6djz5492LBhw31nSO82btw4bN68Ga+99houX76MQYMGQRRFnDx5EoGBgXjhhRcQFhYGCwsLjBs3Du+++y7Kysqwfv16FBQUPNTnk5OTg6effhpTpkxBUVERFi1aBCsrK8yfP/++r+3YsSP8/f0xb948SJIEZ2dn7Nq1C/v27asR27lzZwDA2rVrMWnSJJibm6NDhw5az9JVmzhxIiIjIzFp0iSkp6ejc+fOOHr0KJYvX47hw4cjNDT0od4zEVGLY7QtX4iIqNElJiZKkyZNklq3bi1ZWFhItra2Urdu3aSFCxdKOTk5mji1Wi2tXLlSat++vWRubi65urpK48ePl65fv66J+f3336Vx48ZJ/v7+krW1teTg4CD16tVLioqKqjFmv379JBsbGwmA1q6KtaneBfK///2vVvvmzZslANKpU6e02hctWiQBkHJzczVtt2/flubOnSv5+vpK5ubmkpeXl/T6669LBQUFWq8tLy+X3n77bcnd3V2ysrKSHn30Uen48eM1dqaUJEnKzc2VZs6cKfn5+Unm5uaSs7Oz1L17d+m9996TiouLNXFowO6a1TkuXLhQCggIkCwsLCQXFxdp8ODBUnx8vCZm165dUnBwsGRlZSV5e3tL77zzjvTzzz9LAKRDhw5p4nTZXXPr1q3SzJkzJTc3N8nS0lJ6/PHHpdOnT2u9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smQJEhMTNV+//fYbUlJSYGVlpTUeEREREREZn9Fn8kpKShAcHIyXX34Zzz77bI3+bdu2YdasWVi3bh369euHjRs3YtiwYUhKSkLr1q01cTdv3sTEiRPxr3/9q97xysvLUV5errlWqVT6ezN38+1btYumKhO1P5cnVPX79jXM+A/A3NwcarX2M4IhISG4fPky2rVrZ6SsiIiIiIhIF0afyRs2bBg+/PBDPPPMM7X2r169Gq+88gpeffVVBAYGYs2aNfDx8dFailheXo6nn34a8+fPR9++9RdNH330ERwcHDRfBpv1k8mrjkkAAAj3dP59Hb6iKs5EtGnTBgcOHEBWVhYKCgoAAAsXLsS3336LxYsX49KlS0hOTsa2bdvwz3/+08jZEhERERFRbYxe5NWnoqICZ86cwRNPPKHV/sQTTyA+Ph4AIEkSIiIiMHjwYEyYMOG+95w/fz6Kioo0X9evXzdI7gCqzsEb8y1gf89SSftWVe0GPCfvQXz66afYt28ffHx80K1bNwDA0KFDsXv3buzbtw89e/bEo48+itWrV8PX19fI2RIRERERUW2MvlyzPnl5eVCr1fDw0H5uzcPDA1lZWQCAY8eOYdu2bejSpYvmeb6tW7eic+fOtd7T0tISlpaWBs1bi3Ik0PHJql00i7OrnsHz7WvQGbyoqKha2+Pi4rSu09PTta5HjBiBESNG1Hjd0KFDMXTo0DrHk6TalqMSEREREZExmHSRV00QtJc7SpKkaXvssccgiqIx0mo4mdwgxyQQERERERHdy6SXa7q6ukIul2tm7arl5OTUmN0jIiIiIiIiEy/yLCws0L17d+zbt0+rfd++fffdYIWIiIiIiKglMvpyzeLiYly9elVznZaWhsTERDg7O6N169aYPXs2JkyYgB49eqBPnz7YtGkTrl27htdee+2hxo2MjERkZGSNIwOIiIiIiIiaMkEy8q4ZcXFxGDRoUI32SZMmaTYQWbduHVatWoXMzEx06tQJn332Gfr376+X8VUqFRwcHFBUVAR7e3utvrKyMqSlpWkOYidqqfi9QERERGR89dUudzP6TN7AgQPvuzvjG2+8gTfeeKORMiIiIiIiImq6TPqZPCIiIiIiItINizwiIiIiIqJmhEUeERERERFRM8Iijx5IREQERo8erdd7RkVFwdHRUa/3JCIiouZNFNW4fukCko8d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", "text/plain": [ "
" ] @@ -1093,7 +1093,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "7b508249", "metadata": {}, "outputs": [ @@ -1202,7 +1202,7 @@ "9 HashJoin output row * width 10" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/research/cost-on-random.ipynb b/research/cost-on-random.ipynb index 65f1656..837c3ca 100644 --- a/research/cost-on-random.ipynb +++ b/research/cost-on-random.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 4, "id": "aed19ec2", "metadata": { "execution": { @@ -20,18 +20,22 @@ "collected=25 attempted=25 skipped=0\n", "collected=50 attempted=50 skipped=0\n", "collected=75 attempted=75 skipped=0\n", + "collected=99 attempted=100 skipped=0\n", "collected=100 attempted=100 skipped=0\n", "collected=125 attempted=125 skipped=0\n", "collected=150 attempted=150 skipped=0\n", "collected=175 attempted=175 skipped=0\n", + "collected=199 attempted=200 skipped=0\n", "collected=200 attempted=200 skipped=0\n", "collected=225 attempted=225 skipped=0\n", "collected=250 attempted=250 skipped=0\n", "collected=275 attempted=275 skipped=0\n", + "collected=299 attempted=300 skipped=0\n", "collected=300 attempted=300 skipped=0\n", "collected=325 attempted=325 skipped=0\n", "collected=350 attempted=350 skipped=0\n", "collected=375 attempted=375 skipped=0\n", + "collected=399 attempted=400 skipped=0\n", "collected=400 attempted=400 skipped=0\n", "done: collected=400 attempted=400 skipped=0 -> research/cost-stats.csv\n" ] @@ -47,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "id": "c50c4c78", "metadata": { "execution": { @@ -98,56 +102,56 @@ " 400.000000\n", " 4.000000e+02\n", " 4.000000e+02\n", - " 400.00000\n", + " 4.000000e+02\n", " \n", " \n", " mean\n", " 199.500000\n", - " 3.293322e+07\n", - " 3.063712e+04\n", - " 3446.78750\n", + " 8.429012e+06\n", + " 4.220586e+07\n", + " 1.402288e+04\n", " \n", " \n", " std\n", " 115.614301\n", - " 2.369086e+08\n", - " 2.124881e+05\n", - " 24278.01832\n", + " 7.494437e+07\n", + " 2.657503e+08\n", + " 1.405880e+05\n", " \n", " \n", " min\n", " 0.000000\n", " 3.660000e+02\n", - " 1.220000e+02\n", - " 0.00000\n", + " 3.660000e+02\n", + " 1.110000e+02\n", " \n", " \n", " 25%\n", " 99.750000\n", - " 2.987250e+03\n", - " 1.787500e+02\n", - " 2.00000\n", + " 2.425500e+03\n", + " 2.930000e+03\n", + " 1.927500e+02\n", " \n", " \n", " 50%\n", " 199.500000\n", - " 4.735800e+04\n", - " 3.300000e+02\n", - " 5.00000\n", + " 3.615500e+04\n", + " 5.414800e+04\n", + " 3.265000e+02\n", " \n", " \n", " 75%\n", " 299.250000\n", - " 6.809730e+05\n", - " 1.214250e+03\n", - " 30.00000\n", + " 6.801598e+05\n", + " 1.550466e+06\n", + " 1.315500e+03\n", " \n", " \n", " max\n", " 399.000000\n", + " 1.196362e+09\n", " 2.984422e+09\n", - " 2.956573e+06\n", - " 384231.00000\n", + " 2.615226e+06\n", " \n", " \n", "\n", @@ -155,17 +159,17 @@ ], "text/plain": [ " seed plan_cost exec_us rows\n", - "count 400.000000 4.000000e+02 4.000000e+02 400.00000\n", - "mean 199.500000 3.293322e+07 3.063712e+04 3446.78750\n", - "std 115.614301 2.369086e+08 2.124881e+05 24278.01832\n", - "min 0.000000 3.660000e+02 1.220000e+02 0.00000\n", - "25% 99.750000 2.987250e+03 1.787500e+02 2.00000\n", - "50% 199.500000 4.735800e+04 3.300000e+02 5.00000\n", - "75% 299.250000 6.809730e+05 1.214250e+03 30.00000\n", - "max 399.000000 2.984422e+09 2.956573e+06 384231.00000" + "count 400.000000 4.000000e+02 4.000000e+02 4.000000e+02\n", + "mean 199.500000 8.429012e+06 4.220586e+07 1.402288e+04\n", + "std 115.614301 7.494437e+07 2.657503e+08 1.405880e+05\n", + "min 0.000000 3.660000e+02 3.660000e+02 1.110000e+02\n", + "25% 99.750000 2.425500e+03 2.930000e+03 1.927500e+02\n", + "50% 199.500000 3.615500e+04 5.414800e+04 3.265000e+02\n", + "75% 299.250000 6.801598e+05 1.550466e+06 1.315500e+03\n", + "max 399.000000 1.196362e+09 2.984422e+09 2.615226e+06" ] }, - "execution_count": 2, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -183,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "id": "49d0ecdc", "metadata": { "execution": { @@ -196,7 +200,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAJOCAYAAAAqFJGJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAApJRJREFUeJzs3Xd4U3X///FnutK9N7MMEWWIgixlKFMBB4qKICAqKrLLVJYi3GwRBRUZMhS9FdxWURk3slEEHKgIymihe8/k/P7gR77WQmlpSxr6elxXLs3JJ+e8T95JyStnmQzDMBARERERESkDJ3sXICIiIiIijk/BQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQkREREREykzBQuQqtGrVKkwmk+3m4uJC9erVGTRoEKdOnbKN27JlCyaTiS1bttiv2Cvk888/Z9q0afYuo9KYNm0aJpPpkuOKe91q167NwIEDy7ewKyglJYXg4GDWr19vm3b+dTl/c3NzIyoqihEjRpCSkmK/YgWA77//nk6dOuHt7Y2/vz/33nsvf/75Z4mem5eXx5QpU4iKisLNzY1atWoxceJEsrOzLzj+8OHD3H///YSEhGA2m6lduzZPP/10oTG1a9cu9H75583d3d02Ljk5GX9/fz788MPLXncRR+Bi7wJEpOKsXLmSa6+9luzsbLZt28asWbPYunUrhw4dwsvLy97lXVGff/45r776qsJFKRX3um3cuBFfX98rX1Q5mT59OpGRkTzwwANFHouJicHPz4/09HQ+//xzFi1axJ49e9ixY0eJApmUv19//ZUOHTpwww038N5775GTk8OUKVO49dZbOXDgACEhIcU+/6GHHuLzzz9nypQptGjRgp07dzJjxgx++uknPv7440JjN2/ezJ133smtt97Ka6+9RnBwMH///Tc//PBDoXEbN24kNze30LS///6bBx54gHvuucc2LSAggFGjRjF27FjuuOMO3NzcyvhqiFROChYiV7FGjRrRvHlzADp27IjFYuGFF17gww8/5OGHH7ZzdVISWVlZeHp62ruMC2rWrJm9S7hsSUlJvP766yxcuPCCQeGmm24iODgYgM6dO5OYmMiaNWvYsWMHbdu2vSI1Vuben2exWCgoKMBsNlf4sqZM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bl0jLy+v2LHntW/f3gAuefvn++hCvvvuOwMw3nnnnSKPzZw50wCM06dPX/T5H374oQEYa9asKTR9+fLlBmBcc801tmldu3Y1AMPf398YN26c8e233xqvvfaaERQUZNSrV8/IzMy86HIeeOABw9nZ2Th58uQFH9+0aZMBGF988UWx6yviqLQrlMhVrFWrVri6uuLj40OPHj0IDw/niy++KPZX34yMDMaPH0+9evVwcXHBxcUFb29vMjMz+eWXX4qM79WrV6H7539RLG53q99++42jR48yePDgi/7CmJmZye7du7nvvvvw9va2TXd2dqZ///6cPHmSI0eOAHDzzTfzxRdfMGHCBLZs2XLRs7yUxqBBg9ixY4dtGXDuYPgWLVrQqFEjAG644Qbc3Nx44okneOutt8ptd53evXsXuv/pp5/i7+9Pz549KSgosN1uuOEGwsPDC53V688//6Rv376Eh4fj7OyMq6sr7du3B7hg/yrC+d1LzmvYsCEAd955Z5HpSUlJtt2hPv30U0wmE/369Su0nuHh4TRt2rTczl6WkpJCVlYWoaGhFx0THh6Oq6srAQEB9OvXjxtvvJGYmBjc3d0rtB//7n29evUICAhg/PjxvPbaa/z8889FnnN+y8e/z9B1//334+XlxTfffFNo+g033EDNmjVt993d3bnmmmuK/cz+U69evXB1dS3R2Ndff529e/de8lbSkyoUt2tScY91796devXqMX78eDZt2kRKSgoxMTFMmjQJZ2fnQltLrFYrcG63x9mzZ9OxY0eGDBnC8uXL+eOPP3j77bcvuIykpCQ+/PBDunXrRrVq1S445vx77p9n5xO5mmhXKJGr2OrVq2nYsCEuLi6EhYVdchcWgL59+/LNN98wefJkWrRoga+vLyaTiTvuuOOCX9iDgoIK3T+/a0FxX+7P74devXr1i45JTk7GMIwL1nx+V4Tzuzq9/PLLVK9enXfffZfZs2fj7u5O165dmTt3brG7aRTn4YcfJjo6mlWrVjFr1ix+/vln9u7dy5IlS2xj6taty9dff82cOXMYOnQomZmZ1KlTh+HDhzNixIjLWq6np2eRMy2dOXOGlJSUi55JJiEhATgXCm+99Vbc3d2ZMWMG11xzDZ6enpw4cYJ77723XAJXSQQGBha6f77ui03PycnB29ubM2fOYBjGRYNvnTp1yqW+86/D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bEi3bt14/PHHef311wF44okn6NGjR5EvguXF5OlO1PGvynWehmFQYCnAxdml+C9PniVPlSX1711yTCbTBaed3wfParXi7OzM/v37bVtAzvvnF8d/6969O//73/+KrSUjI+OC07Ozs5k0aRIbN27kzjvPbS1q0qQJBw4cYN68eRcNFhEREbi6uhaqs2HDhsTFxZGXl4ebmxt169Zl69atZGZmkpaWRkREBA888ABRUVEXXF/DMCgoKMDFxcX2Rf7AgQO2+Z/f4hUeHl7kOJ+zZ8/i4uJS5Jf/rKws1q9fz/PPP1/s63NeaXvm4+PD999/z5YtW/jqq6+YMmUK06ZNY+/evfj7+19wGVarle+++w5nZ2d+//33Yuvx8Ch+K1pxuyaen75y5UqGDx9OTEwM7777Ls899xybNm2iVatWxc5bRETEkZ1Nz8HZZCLIu+gP3pWNXYPFmTNn6N+/P7Gxsfj5+dGkSRNiYmLo3LkzcG73mezsbJ5++mmSk5Np2bIlX331VaFfXRcuXIiLiwt9+vQhOzub22+/nVWrVhX6orhu3TqGDx9uO3tUr169eOWVVypsvUwmE6YS7I5UGoZh4FRQgJNL8cGiNNzc3Apd76O8NGvWDIvFwtmzZ7n11ltL/LyS7Ap1Mfn5+eTn5xdJ1c7OzsUedNS2bVvefvttrFar7bm//fYbERERuLm5FRrr5eWFl5cXycnJfPnll7atYv9e338Gi/O9+ufWg/Nat27NJ598UmjaV199RfPmzYuEgPfee4/c3Fz69etXwlek9FxcXOjUqROdOnVi6tSp+Pv78+2333LvvfdecPzcuXP55Zdf2Lp1K127dmXlypUMGjTogmPr16+Ph4cH33zzDY899liRx6+77jreeustMjMzbbtCfffddzg5OXHNNdfYxjVr1oxmzZoxceJEWrduzdtvv02rVq0q7L0sIiJiL7kFFj764TSnUs59N6ob6k336y++G39lYNdgsXz58mIfN5lMTJs2jWnTpl10jLu7O4sXL2bx4sUXHRMYGMjatWsvt8yrVu3atdm9ezfHjx/H29ubwMDAcpnvNddcw8MPP8wjjzzC/PnzadasGQkJCXz77bc0btyYO+6444LP++cpXkvL19eX9u3bM3bsWDw8PKhVqxZbt25l9erVLFiwwDbukUceoVq1asyaNQuAp556isWLFzNixAiGDRvG77//zsyZMxk+fLjtOV9++aVtV6c//viDsWPH0qBBA9uX6H+v7w033MCZM2fYunUrTZo0uej6Pvnkk7zyyiuMHj2axx9/nJ07d7J8+XLeeeedImOXL1/O3XfffdFjGMrq008/5c8//6Rdu3YEBATw+eefY7VaL7pV78CBA0yZMoX333+ftm3bsmjRIkaMGEH79u2pU6dOkfHu7u6MHz+ecePG4ebmRtu2bYmPj+enn35i8ODBPPzww0ydOpUBAwYwbdo04uPjGTZsGP379ycsLIxjx47xxhtv0KtXLyIjIzly5Ai//fYbjzzyCHDuvXzs2DEOHDhA9erV8fHxueCujCIiIo7ixxOptlABcPRsBr+HeBJYifdWq3THWMiVEx0dzYABA7juuuvIzs7m2LFj5TbvlStXMmPGDMaMGcOpU6cICgqidevWF/2SXR7Wr1/PxIkTefjhh0lKSqJWrVq8+OKLPPnkk7Yxf//9d6GtGjVq1OCrr75i1KhRNGnShGrVqjFixAjbyQMAUlNTmThxIidPniQwMJDevXvz4osvFtqqcLH1Pb9b1oVERUXx+eefM2rUKF599VUiIyN5+eWX6d27d6Fxv/32G9u3b+err8p397p/8vf3Z8OGDUybNo2cnBzq16/PO++8w/XXX19kbE5ODg8//DADBw6kZ8+eAAwePJjPPvuM/v37s23btiK7wAFMnjwZFxcXpkyZwunTp4mIiLD1xtPTky+//JIRI0bQokULPD096d27ty0Uenp68uuvv/LWW2+RmJhIREQEzzzzDEOGDAHOHZy+YcMGOnbsSEpKCitXrmTgwIEV9GqJiIhUvKTMvAtMyyfQ5wKDKwmTcf7iCFKstLQ0/Pz8SE1NveBZoY4dO0ZUVFSpjpwvjQvtXiOVk3pVOV3sc2q1Wjl79iyhoaE6aLGSU68ch3rlWNSvyunXuDS+OFT4WMz7m1fDJTf9ivaquO/A/6YtFiIiIiIilcy14b6k5xTw44kUnJ1MtKgdSKSfB2fPlvy6EleagoWIiIiISCXUonYgLWr/3zGwpbkKtj1oe5eIiIiIiJSZgoWIiIiIiJSZgoWIiIiIiJSZgkU5quz7vYlUZToBnoiISMXSwdvlwM3NDScnJ06fPk1ISAhubm7lfppRncLUcahXlY9hGMTHx2MymYpc1VxERETKh4JFOXByciIqKorY2FhOnz5dIcswDAOr1YqTk5O+rFZy6lXlZDKZqF69+gUv3iciIiJlp2BRTtzc3KhZsyYFBQVYLJZyn7/VaiUxMZGgoCBdvKaSU68qJ1dXV4UKERGRCqRgUY7O72ZREbtaWK1WXF1dcXd315fVSk69EhERkapI33pERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERKTMFCxERERERCqpgrgEcg78au8ySkTBQkRERESkkjGsVlJXbuREm36ceXQy1sxse5d0SS72LkBERERERP5P7i9/Ej9mLrl7DwPgWq8mlqRUnKuF2rmy4ilYiIiIiIhUAtbsXJIXvEXKK29DgQWTlwdBzz6B76P3YHJ2xmq12rvEYilYiIiIiIjYWda2fSREzyf/2EkAPLvfQsiskbhUC7NzZSWnYCEiIiIiYieWhGQSpr5KxntfAuAcHkzwf0bhfWc7O1dWegoWIiIiIiJXmGEYpL8bQ+LUV7EmpYLJhO+j9xD07BM4+XjZu7zLomAhIiIiInIF5R09QcLYeWT/73sA3K6rQ8j8cbg3v97OlZWNgoWIiIiIyBVg5OWT8so7JC94CyM3D5O7GwFjH8X/qQcwuTr+13LHXwMRERERkUoue/dB4qPnkf/rMQA8OrQgZM4YXKOq2bmy8qNgISIiIiJSQSyp6STNeJ20VR8B4BTsT/ALw/Du3RmTyWTn6sqXgoWIiIiISDkz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FkREREREZDcGCyIiIiIishuDBRERERER2Y3BgoiIiIiI7MZgQUREREREdmOwICIiIiIiuzFYEBERERGR3RgsiIiIiIjIbgwWRERERERkNwYLIiIiIiKyG4MFERERERHZjcGCiIiIiIjspnB0Aa5CCAEAKC4udsj2LRYLSkpKoNFoIJMxDzoz9sq1sF+ug71yHeyVa2G/XIcjelX93bf6u/DNMFjUU0lJCQAgLCzMwZUQERERETWtkpISeHl53XQeSdQnfhAsFguuXLkCDw8PSJLU5NsvLi5GWFgYLl68CE9PzybfPtUfe+Va2C/XwV65DvbKtbBfrsMRvRJCoKSkBCEhIbfcS8I9FvUkk8kQGhrq6DLg6enJQe8i2CvXwn65DvbKdbBXroX9ch1N3atb7amoxgPpiIiIiIjIbgwWRERERERkNwYLF6FWqzF//nyo1WpHl0K3wF65FvbLdbBXroO9ci3sl+tw9l7x5G0iIiIiIrIb91gQEREREZHdGCyIiIiIiMhuDBZERERERGQ3BgsnsmrVKkRGRkKj0aBr167Yt2/fTeffs2cPunbtCo1Gg5YtW+Ljjz9uokqpIb1KSkqCJEm1HqdOnWrCipunvXv34rHHHkNISAgkScKXX355y2U4rhynof3i2HKMuLg4dO/eHR4eHggICMDIkSORmpp6y+U4thyjMf3i2HKMjz76CB07drTeoyI2NhbffffdTZdxtnHFYOEkNm/ejKlTp+KNN95ASkoK+vbti6FDh+LChQs2509PT8cjjzyCvn37IiUlBa+//jpeffVVJCQkNHHlzU9De1UtNTUVmZmZ1kebNm2aqOLmq6ysDJ06dcKHH35Yr/k5rhyrof2qxrHVtPbs2YNXXnkFP//8MxITE2EymTBo0CCUlZXVuQzHluM0pl/VOLaaVmhoKBYtWoTk5GQkJydjwIABGDFiBP744w+b8zvluBLkFHr06CEmTJhQY1q7du3EnDlzbM4/a9Ys0a5duxrT/ud//kf07NnzjtVI1zS0V7t37xYAREFBQRNUR3UBILZv337TeTiunEd9+sWx5Ryys7MFALFnz5465+HYch716RfHlvPw8fERn332mc3XnHFccY+FEzAajThy5AgGDRpUY/qgQYNw4MABm8scPHiw1vyDBw9GcnIyqqqq7litzV1jelUtJiYGwcHBGDhwIHbv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", + "image/png": "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apS6d++umTNnKiIiQq+99prGjx+vefPmeb4UTp48WW+//baefvpp9erVS06nU999950OHz4sSXr88cfldDr1wQcfaOXKlZ77b9KkSbm1/f73v9fLL7+s//znP7rllls8y48dO6b//e9/uvPOOxUWFqZdu3bpkksu0ZAhQ/TWW2+pXr162rdvn5KTk1VQUCC73X7G16A8BQUFuvTSS3Xbbbdp6tSpKioqktvt1mWXXably5frwQcf1ODBg/XLL7/oySef1PDhw7VmzRrZbDZJ0vbt2zV27FhPOPrhhx/07LPP6ttvvz1rT37N19et1COPPKIRI0Zo9uzZ2rVrl6ZMmaLrrrtOoaGh6tGjh+bNm6f169frkUceUd26dfXKK694tr3ttts0e/Zs3XPPPXr22Wd15MgR/elPf9LgwYO1ceNGxcbG+vQcTufzzz9Xr169VK9evQqtf+pnp6r6UV7vnU6nRo0apTZt2ujVV19VbGysMjIytGTJEuXk5EgqCWOXX365vvrqKz388MMaMmSINm3apCeffFIrV67UypUrFRER4XmcjRs36v/+7/80depUxcbG6t///rduvvlmtW/fXkOHDj3ra/HKK6+oQ4cOeuGFFxQVFaULLrjgtOsWFxdX6PAxq9Uqq/X0v2nu2LFDubm56t69e5mx7t27a9GiRcrLy1NkZORZH+tUpT3o0qWLZ1lBQYEaNGhQZt3S13DTpk0aOHCgcnNztWPHDl1xxRXl1pSbm6uff/5ZHTp08CwfPny4Hn74YR07dqzC7z3gvBDgPSYA/FB6KNQ333xjCgsLTU5Ojvnss89MTEyMqVu3rsnIyDDGVOxQqKKiInP8+HHjcDjMyy+/XOYx7rjjDq/1n3vuOSPJpKenn7HGdu3amXbt2pnc3NzTrjNw4EDTuHFjk5OT41VP165dTfPmzY3b7TbGGNO1a1dz+eWXn/HxfD2kp3fv3mbw4MFey1577TUjyWzevNkYY8wHH3xgJJkNGzZU+H7PZOLEiUaSeeutt7yWz5s3z0gy8+fP91q+evVqI8m89tpr5d6f2+02hYWFZtmyZUaS2bhxo2esMg6FatWqlZk4caLndun7afz48V7r3XfffUaSueeee7yWX3755aZBgwae2ytXrjSSzIsvvui13p49e4zNZjvr4S6+sNvt5vbbby+zvPR1ycjIMIWFhebo0aNm7ty5xmazmRYtWpjc3Nwq6cfper9mzRojyXz88cenfS7JyclGknnuuee8lr///vtGknnzzTc9y1q1amUiIyPNL7/84lmWm5trGjRoYG677bbTPoYxxuzcudNIMu3atTMFBQVnXLfUsGHDjKSz/p36PipPWlqakWTmzZtXZuyZZ54xksz+/fsrVFOpjRs3GpvNZq644gqv5ZdffrmpV6+e1787xhgzZMgQI8k888wzxhhj9u3bZySZ6dOnl7nvd99910gyK1as8Fq+aNEiI8l88cUXPtUKBLtafSjU119/rfHjx6tp06ayWCznNIuDMUYvvPCCOnTooIiICLVo0ULPPPNM5RcLnMHAgQMVFhamunXraty4cYqLi9MXX3xxxl99jx8/roceekjt27dXaGioQkNDVadOHTmdTn3//fdl1r/00ku9bpf+onimw61+/PFH7dixQzfffPNpf2F0Op1atWqVrrrqKtWpU8ezPCQkRDfccIP27t3rOTmyf//++uKLLzR16lQtXbpUubm5p39RKmjSpElasWKF1wmYs2bNUr9+/dS1a1dJUs+ePRUeHq4//OEP+n//7/9V2uE6EyZM8Lr92WefqV69eho/fryKioo8fz179lRcXJzXrF4///yzfvvb3youLk4hISEKCwvTsGHDJKnc/lWFcePGed3u1KmTJOmSSy4ps/zIkSOew6E+++wzWSwWXX/99V7PMy4uTj169Ki02cuOHTsml8ulxo0bn3aduLg4hYWFqX79+rr++uvVu3dvJScnKzIyskr78evet2/fXvXr19dDDz2kN954Q1u3bi2zTemv7r+eoevqq6+Ww+HQV1995bW8Z8+eatmyped2ZGSkOnTocMbP7KkuvfRShYWFVWjdf/7zn1q9evVZ/yo6Y9uZZjKryCxnpXbt2qVx48apRYsW+ve//+01dtdddykrK0s33nijfv75Zx04cECPP/64VqxYIUll9qz4UlPpe+7U2fmA2qBWHwrldDrVo0cPTZo0qcw/8hV17733auHChXrhhRfUrVs3ZWVl6dChQ5VcKXBmc+bMUadOnRQaGqrY2NizHsIiSb/97W/11Vdf6fHHH1e/fv0UFRUli8WisWPHlvuFvWHDhl63Sw8XONOX+9Lj0Js3b37adY4ePSpjTLk1N23aVJI8hzq98sorat68ud5//309++yzioyMVGJiop5//vkzHqZxJr/73e80ZcoUzZ49W9OnT9fWrVu1evVqvfbaa5512rVrpy+//FLPPfec7rzzTjmdTrVt21b33HOP7r333nN6XLvd7nUMuSQdOHBAx44dU3h4eLnblP7bcvz4cQ0ZMkSRkZF6+umn1aFDB9ntdu3Zs0dXXnllpQSuivj1YSSldZ9ueV5enurUqaMDBw7IGHPa4Nu2bdtKqa/0dTjTYTNffvmloqOjFRYWpubNm3u9z6uqH+X1Pjo6WsuWLdNf/vIXPfLIIzp69KiaNGmiW2+9VY899pjCwsJ0+PBhhYaGljnE0WKxKC4uzvM5KfXrz6xU8rmt6PujIv+OlGrfvn2FD4U6k9Kaf/1cJOnIkSOyWCwVPrTol19+0YgRIxQaGqqvvvqqzPty5MiRmjVrlv7v//5P7dq1kyR17txZf/7zn/XII494zr2oX7++LBbLaWuSyr7nS99z1fVZBGqKWh0sxowZozFjxpx2vKCgQI899pjeeecdHTt2TF27dtWzzz6r4cOHSyr5Fer111/Xd999pwsvvLCaqgbK6tSpk/r27Vvh9bOysvTZZ5/pySef1NSpUz3L8/PzPf+hrAylX4BOPfn01+rXry+r1ar09PQyY6Unh5ee7+FwODRt2jRNmzZNBw4c8Oy9GD9+vH744YdzqrF+/fq67LLLNGfOHD399NOaNWuWIiMjdd1113mtN2TIEA0ZMkTFxcVas2aN/v73v+u+++5TbGysrr32Wp8ft7xfP0tPjE9OTi53m7p160oq+eV6//79Wrp0qedXcUlBc/2FRo0ayWKxaPny5V7nBJQqb9m5KP2Seqb3dI8ePcqcT3RqnVXRj9P98t2tWze99957MsZo06ZNmj17tv70pz/JZrNp6tSpatiwoYqKinTw4EGvcGGMUUZGhvr163fa53kufNkzMHLkSC1btuys602cOFGzZ88+7Xi7du1ks9m0efPmMmObN29W+/btK3R+xS+//KLhw4fLGKOlS5ee9seNiRMn6ne/+522b9+usLAwtW/fXtOnT5fFYtGQIUMkSTabTe3btz9tTTabrUwYLn3Pne69BZyvavWhUGczadIkpaWl6b333tOmTZt09dVXKykpSdu3b5ckffrpp2rbtq0+++wztWnTRq1bt9Ytt9xSqV/MgKpgsVhkjCnzBe7f//63iouLK+1xOnTooHbt2umtt95Sfn5+ues4HA4NGDBAH374odeve263W3PnzlXz5s29ToosFRsbq5tuuknXXXedtm3b5pmdqSJ7Un5t0qRJ2r9/vxYsWKC5c+fqiiuuOO2voiEhIRowYIBnFqVfXyDLH+PGjdPhw4dVXFysvn37lvkr/QGj9Avfr/v3z3/+85wf+1xet3NVej2Bffv2lfs8u3XrVimPEx4errZt22rHjh3nXGcg+mGxWNSjRw/97W9/U7169TzvsdLZo+bOneu1/vz58+V0Oj3jgVBZh0KFhoZq/Pjx+vDDDz0nrUsl16dYsmSJrrzyyrPWsnv3bg0fPlzFxcVavHix10xOp3vMTp06qX379srKytKbb76pyy67zGu7K664QosXL/aaVSonJ0cffvihLr30UoWGev9OW3q4ZOfOnc9aL3A+qdV7LM5kx44dmjdvnvbu3es5HGPKlClKTk7WrFmz9Mwzz+jnn3/WL7/8ov/+97+aM2eOiouLdf/99+uqq67yeVYWoDpFRUVp6NChev7559WoUSO1bt1ay5Yt08yZMyt9BpNXX31V48eP18CBA3X//ferZcuW2r17t1JSUvTOO+9IkqZPn65Ro0ZpxIgRmjJlisLDw/Xaa6/pu+++07x58zxf3AYMGKBx48ape/fuql+/vr7//nu9/fbbGjRokGdmptIvpc8++6zGjBmjkJAQde/e/bSHs0jS6NGj1bx5c91xxx3KyMjQpEmTvMbfeOMNLV68WJdccolatmypvLw8z7SdF198sWe99u3bSzo5s5Cvrr32Wr3zzjsaO3as7r33XvXv319hYWHau3evlixZossuu0xXXHGFBg8erPr16+v222/Xk08+qbCwML3zzjvauHHjOT2udG6v27mKj4/XH/7wB02aNElr1qzR0KFD5XA4lJ6ertTUVHXr1k1//OMfK+Wxhg8fri+++OKctq3Ofnz22Wd67bXXdPnll6tt27YyxujDDz/UsWPHNGrUKEnSqFGjlJiYqIceekjZ2dmKj4/3zArVq1cv3XDDDef0PCtDZe61nzZtmvr166dx48Zp6tSpysvL0xNPPKFGjRrp//7v/7zWDQ0N1bBhwzznl2RmZmrEiBFKT0/XzJkzlZmZqczMTM/6zZs39+y9yMzM1Isvvqj4+HjVrVtXP/zwg5577jlZrVbPDwelpkyZorfffluXXHKJ/vSnPykiIkJ//etflZeXV25Y+uabb9SwYcNKC8lA0AjUWeM1jSTz0UcfeW7/5z//MZKMw+Hw+gsNDfVcDOfWW281ksy2bds8261du9ZIMj/88EN1PwXUQqe7QN6vlTcr1N69e82ECRNM/fr1Td26dU1SUpL57rvvyswAdLrH8OWieytXrjRjxowx0dHRJiIiwrRr187cf//9XussX77cXHTRRcbhcBibzWYGDhxoPv30U691pk6davr27Wvq169vIiIiTNu2bc39999vDh065FknPz/f3HLLLSYmJsZYLBYjyezcufOsNT7yyCNGUpkLY5XWf8UVV5hWrVqZiIgI07BhQzNs2DDzySefeK3XqlUr06pVq7M+1sSJE43D4Sh3rLCw0LzwwgumR48eJjIy0tSpU8d07NjR3HbbbWb79u2e9VasWGEGDRpk7Ha7iYmJMbfccotZt26dkWRmzZrlWa+is0Kd6XU73axQ//3vf73u43TvldNdjO6tt94yAwYM8PS8Xbt25sYbbzRr1qw5a70V9dVXXxlJ5ttvv61QTb9W2f04Xe9/+OEHc91115l27doZm81moqOjTf/+/c3s2bO91svNzTUPPfSQadWqlQkLCzNNmjQxf/zjH83Ro0e91mvVqpW55JJLyjzOsGHDzLBhw874nEtnhXr++efPuF5VWrNmjRk5cqSx2+0mKirKXH755eann34qs54kr+dT+t483d+TTz7pWffw4cNm9OjRJiYmxoSFhZmWLVuau++++7TviZ9++slcfvnlJioqytjtdjNy5Eizdu3aMuu53W7TqlUrc/fdd/v9OgDBxmJMBc62qgUsFos++ugjXX755ZJKLnb0u9/9Tlu2bFFISIjXunXq1FFcXJyefPJJPfPMM54LaEklhxHY7XYtXLjQ8ysTACBwunfvrvj4eL3++uuBLgW1wFdffaXRo0dry5Yt6tixY6DLAaoV51icRq9evVRcXKzMzEy1b9/e6y8uLk5Sye78oqIir+N3f/zxR0k66zGdAIDq8dxzz2n27NlnnEQAqCxPP/20fv/73xMqUCvV6j0Wx48f9xwL3atXL7300ksaMWKEGjRooJYtW+r6669XWlqaXnzxRfXq1UuHDh3S4sWL1a1bN40dO1Zut1v9+vVTnTp1NGPGDLndbt15552KioryuqowACCw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p44aNGjg2cNQ+lxKn/+pz8tqtcpisZRZZrVaFRoaqs6dO+t3v/udfv/73+uFF15Qr169dOjQIS1evFjdunXT2LFjy63n1OPoz8U999yj5557Th07dtQFF1yg6dOny2636/rrr/fUOnHiRDVt2lTTp0+XVDIF7LBhw/Tiiy/qsssu0//+9z999dVXWr58uWebyZMn68Ybb1S/fv00aNAgvfnmm9qzZ4/uuOMOzzpHjhzR7t27tX//fknSjh07FBoaqri4OMXFxalhw4b6/e9/r4ceekiNGzdWgwYN9MADD6hbt25KTExUSEiIEhISVL9+fd1yyy16/PHHZbPZ9K9//Uu7du3S+PHjz/jeKn3tTxUSEuJZdur/hoaG6r777tOYMWPUoUMHHT161PMD+Oke4+6771aLFi30xBNPqKCgQH369NHUqVP16quvnrYXr732mm644QZNnTpV0dHR+uabb9S/f39deOGFmjJlip566im1bdtWffr00axZs7Rx40a98847Cg0N1d/+9jc1adJEPXv2lNVq1Ycffqi4uDg1atRIVqtVrVu31tKlSzV06FBFRESUOXel9LlarVY1bNhQkZHe3y1/fftMatwn2hjjdejSqQYNGqRPP/3Ua9nChQvVt2/f055fERERoYiIiDLLSz/UgWKxWHyq4WhuofSrvTJH84oUW4//8FYXX3uGwKNnwYm+BR9felb6Rbv0L1g88MADmjhxorp06aLc3Fzt3LnTU/+vn8+pz6u8Zb8emzVrlp5++mlNmTJF+/btU8OGDTVo0CBdcsklVfIaGWM0ZcoU5efn684779TRo0c1YMAALVy40OtH1927d3v6JZUc1//ee+/pscce0xNPPKF27drp/fff18CBAz3bXHvttTpy5Ij+/Oc/Kz09XV27dtWCBQs8sxRJ0qeffqpJkyZ5bl933XWSpCeffFJPPfWUJGnGjBkKCwvTNddco9zcXI0cOVKzZ8/2fJmPiYlRcnKyHn30UY0cOVKFhYXq0qWL/ve//6lnz55nfP7lvffK61/pMrfbrbvuukt79+5VVFSUkpKS9Le//a3c3syZM0cLFizQ+vXrFRYWprCwML3zzjsaPHiwxo0bV25QbNSokRYvXqwHHnhAw4cPV0hIiHr27Ok5Gfvee+9Vdna2HnroIWVmZqpz58765JNPPOfl1K1bV88995y2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KleFg8X69eslleyx2Lx5s8LDwz1j4eHh6tGjh6ZMmeLTg48ZM0ZjxozxaRtJntmpAAAAANQMFQ4WpbNBTZo0SS+//HJAr1fRq1cv5eXlqXPnznrsscc0YsSI066bn5+v/Px8z+3S63C43W653e4qr7U8brdbxpiAPT58R8+CDz0LTvQt+NCz4EPPgk8ge+bLY/p85e1Zs2b5ukmladKkid5880316dNH+fn5evvttzVy5EgtXbpUQ4cOLXeb6dOna9q0aWWWHzx4UHl5eVVdcrncbreysrJkjJHV6vNpLggAehZ86Flwom/Bh54FH3oWfALZs5ycnAqvazHGmCqspcIsFos++ugjXX755T5tN378eFksFn3yySfljpe3x6JFixY6evRowPa6uN1uHTx4UDExMXyggwQ9Cz70LDjRt+BDz4IPPQs+gexZdna26tevr6ysrLN+d/Z5j0VNM3DgQM2dO/e04xEREYqIiCiz3Gq1BvTDZLFYAl4DfEPPgg89C070LfjQs+BDz4JPoHrmy+MF/btp/fr1atKkSaDLAAAAAGq1gO6xOH78uH766SfP7Z07d2rDhg1q0KCBWrZsqYcfflj79u3TnDlzJEkzZsxQ69at1aVLFxUUFGju3LmaP3++5s+fH6inAAAAAEDnGCx+/PFHLV26VJmZmWXOFH/iiScqfD9r1qzxmtGp9FoZEydO1OzZs5Wenq7du3d7xgsKCjRlyhTt27dPNptNXbp00eeff66xY8eey9MAAAAAUEl8Pnn7X//6l/74xz+qUaNGiouL87oKt8Vi0bp16yq9yMqUnZ2t6OjoCp2AUlXcbrcyMzPVuHFjjm0MEvQs+NCz4ETfgg89Cz70LPgEsme+fHf2eY/F008/rb/85S966KGHzrlAAAAAAOcXnyPP0aNHdfXVV1dFLQAAAACClM/B4uqrr9bChQurohYAAAAAQcrnQ6Hat2+vxx9/XN988426deumsLAwr/F77rmn0ooDAAAAEBx8DhZvvvmm6tSpo2XLlmnZsmVeYxaLhWABAAAA1EI+B4udO3dWRR0AAAAAgphf81UZY+TjbLUAAAAAzkPnFCzmzJmjbt26yWazyWazqXv37nr77bcruzYAAAAAQcLnQ6FeeuklPf7447rrrrsUHx8vY4zS0tJ0++2369ChQ7r//vurok4AAAAANZjPweLv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iyt3/dDQUDVs2LDKakWJc+lZqffff18333yz/vvf/+riiy+uyjJxCl97lpOTozVr1mj9+vW66667JJV8YTXGKDQ0VAsXLtRFF11ULbXXZufyWWvSpImaNWum6Ohoz7JOnTrJGKO9e/fqggsuqNKaa7tz6dn06dMVHx+vBx54QJLUvXt3ORwODRkyRE8//TS/ftdAfA8JXjXtewh7LCpZeHi4+vTpo0WLFnktX7RokQYPHlzuNoMGDSqz/sKFC9W3b1+FhYVVWa0ocS49k0p+Ibjpppv07rvvcuxwNfO1Z1FRUdq8ebM2bNjg+bv99tt14YUXasOGDRowYEB1lV6rnctnLT4+Xvv379fx48c9y3788UdZrVY1b968SuvFufXM5XLJavX+ehESEiLp5K/gqFn4HhKcauT3kACdNH5ee++990xYWJiZOXOm2bp1q7nvvvuMw+Ewu3btMsYYM3XqVHPDDTd41v/555+N3W43999/v9m6dauZOXOmCQsLMx988EGgnkKt42vP3n33XRMaGmpeffVVk56e7vk7duxYoJ5CreNrz36NWaECw9e+5eTkmObNm5urrrrKbNmyxSxbtsxccMEF5pZbbgnUU6h1fO3ZrFmzTGhoqHnttdfMjh07TGpqqunbt6/p379/oJ5CrZOTk2PWr19v1q9fbySZl156yaxfv9788ssvxhi+h9REvvaspn4PIVhUkVdffdW0atXKhIeHm969e5tly5Z5xiZOnGiGDRvmtf7SpUtNr169THh4uGndurV5/fXXq7li+NKzYcOGGUll/iZOnFj9hddivn7OTkWwCBxf+/b999+biy++2NhsNtO8eXMzefJk43K5qrnq2s3Xnr3yyiumc+fOxmazmSZNmpjf/e53Zu/evdVcde21ZMmSM/43iu8hNY+vPaup30MsxrBfEgAAAIB/OMcCAAAAgN8IFgAAAAD8RrAAAAAA4DeCBQAAAAC/ESwAAAAA+I1gAQAAAMBvBAsAAAAAfiNYAAAAAPAbwQIAKkHr1q01Y8aMQJdRbWbOnKnRo0dXy2MNHz5c9913n1/3MXv2bNWrV69S6gkEi8Wijz/++Jy3/8c//qFLL7208goCUGN8/fXXGj9+vJo2bXrO/1b85z//Uc+ePWW329WqVSs9//zz51QLwQIAIKniX17z8/P1xBNP6PHHH6/Ux1+6dKks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", "text/plain": [ "
" ] @@ -229,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "id": "226372f9", "metadata": { "execution": { @@ -242,7 +246,7 @@ "outputs": [ { "data": { - "image/png": "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PBERESHGjh1bpa8yo8GDBwfdt1azZ88WAHx/Fyrt379fABDt27cX5eXlmrY1ePBgASDo/04+bvxZs2aNACCWLVtWbdmTTz4pAIhjx47VuA1VVcXDDz8sDAaDb7+tWrUSmzdvrtI3evRoER8fX+XvjBBCDBo0SAAQTz75pBBCiNzcXGEwGMTkyZOr9P3555++7Z86ppUrVwoA4quvvqpxrERNAU+FImrizjnnHJjNZsTExODyyy9HWloavvrqqxo/9S0uLsb999+PDh06wGQywWQyITo6GiUlJfjjjz+q9f/jH/+o8nPlJ4w1nW61e/du7N27F5MnTw74iWNJSQnWrVuHq666CtHR0b660WjEuHHjcOTIEezatQsA0K9fP3z11VeYMWMGVq1ahbKyssChaDRp0iSsXbvWtw+g4mL4vn37olu3bgCAnj17wmKx4NZbb8Vbb72l2+k6V155ZZWfV6xYgfj4eIwcORIej8f3v549eyItLa3KKTn79u3D9ddfj7S0NBiNRpjNZgwePBgA/P7+asPll19e5ecuXboAAC677LJq9by8PN/pUCtWrICiKLjxxhurvM60tDT06NFDt7uXfffdd7jwwguRnp5epT5x4kSUlpb6vp1ZvXo1unXrhq5du1bpu+6666r8LISoMl6PxxNw35WnEZ16N61+/fqhS5cu+PbbbwEAv/zyC1wuF6655poqfeeccw7atGmj+bVqcezYMSiKUu3byEr/+Mc/YDabNW3r1Vdfxfr164P+T+tdumq6o1awu2098cQTePrpp/Hoo4/i+++/x6effopOnTrh4osvxubNm319d955JxwOB8aPH499+/bhxIkTmDlzpu/uUZXfrCQkJOCGG27A4sWL8eqrryIvLw+//fYbbrjhBhiNxiq9lVJSUgCgyt34iJoqngpF1MQtXrwYXbp0gclkQmpqatBTWADg+uuvx7fffouZM2eib9++iI2NhaIoGDFihN837ImJiVV+rjxNoKY395XXBbRs2TJgT35+PoQQfsfcvHlzAPCd6vTCCy+gZcuWeO+99zB79mxYrVZccsklmDt3bo2nbdTkhhtuwLRp07Bo0SI89dRT2LFjB9avX48FCxb4etq3b4///e9/mDNnDjIyMlBSUoJ27drhrrvuwr/+9a+Q9muz2aqcUw4AJ06cQEFBASwWi991cnJyAFRM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MjJSnHPOOeLzzz+v0jNjxgzRp08fYbfbRUREhGjXrp245557RE5Ojq/H5XKJm2++WSQnJwtFUQQAsX///qBjfPDBBwWAKg/KOnn8Y8aMEa1btxYREREiMTFRDB48WHz22WdV+lq3bi1at24ddF8TJkwQUVFRfpe53W7x9NNPix49egir1Sqio6NF586dxW233Sb27Nnj61u7dq0YMGCAsNlsIjk5Wdx8881i06ZNAoB48803fX1a7wpVU26B7gr1wQcfVNlGoGOlcgzZ2dlV6gsXLhT9+/f3/c7bt28vxo8fLzZs2ODr+fzzzwUA8corrwR9DfDzgLxt27aJkSNHiri4OGGxWESPHj2q5FNp+/bt4qKLLhJWq1UkJCSIyZMni7feeqvaXbYC8Zez1+sVs2fPFh07dhRms1kkJSWJG2+8URw+fLhKn6qq4vHHHxctW7YUFotFdO/eXaxYsUL06NFDjBkzJui+ZQwaNEiMGDGiSq3yrlBz587VdV8yNmzYIC688EJhs9lEbGysGD16tPjzzz+r9cHPnbIKCgrEQw89JLp06SJsNptISUkRQ4YMEV9++WWVvtzcXDFs2DCRnJwszGazaNWqlfjnP/9Z7bgUQoiPP/5Y9OzZ03ds9unTR7zxxhu+O9SdTFVV0bp1a/HPf/4zvBCIGglFCA1XWBERETUw06dPx7Jly7Bnz54az7WvDbfeeiuWLVuG3NzcWvnmpib79+9H586d8cgjj+DBBx/UbbvLly/H2LFjcfDgwSoXK1Povv32WwwbNgy///6773QzoqaMEwsiImqU+vbti1tuuQW33nprre7nscceQ/PmzdGuXTsUFxdjxYoV+M9//oP/+7//w2OPPVar+966dSuWLVuGgQMHIjY2Frt27cKcOXNQWFiI7du363p3KCEEBg4ciN69e+Oll17Sbbuns6FDh6JDhw54/fXX63soRHWC11gQEVGjpPUuTOEym82YO3cujhw5Ao/HgzPOOAPPPvtsyLcTlhEVFYUNGzbgjTfeQEFBAeLi4jBkyBA88cQTut9yVlEUvP766/jss8+gqqqu13CcjvLz8zF48GBMmTKlvodCVGf4jQUREREREYWNH0cQEREREVHYOLEgIiIiIqKwcWJBRERERERh48XbNVBVFceOHUNMTIzvIVxERERERKcLIQSKiorQvHnzoDd14MSi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f32uh3TGkE6n6erq4hOf+MRcD+WMwGq1smHDBjZs2MCHPvShuR7OGcH+/fu54oorWL16NevWrSOVSs31kE5rdu7cOTHHN2zYgMvl4v7775/rYZ32/NM//RNr1qxh9erV/Nmf/Rmy386p5wtf+AJr1qxh7dq1fP/735/r4Sw4ZFco4ZShaRq5XA632006nWbt2rU8//zz1NfXz/XQTns+85nPsHv3bjo7O/nCF74w18M57WloaGB4eHiuh3FGcdlll/F3f/d3XHLJJYyOjuL3+7FarXM9rDOCZDJJd3c3Bw8exOPxzPVwTluGhoa44IIL2LZtGzabjUsvvZQvfOELbN68ea6Hdtry2muvceutt/L0008DcOWVV/LLX/6SYDA4twNbQMgbC+GUYbFYcLvdAGSzWTRNk19bZoHdu3ezY8cOrrvuurkeiiCcEo48aF1yySUA1NXVSVAxi/z85z/nyiuvlKBiFigWi2SzWQqFAoVCgXA4PNdDOq154403uPDCC3E6nTidTjZs2MCvfvWruR7WgkICC2FannjiCd72trfR2tqKoihlX3t/5StfYdGiRTidTjZt2sSTTz456fjY2Bjr16+nvb2dT33qUzQ0NMzS6BcmtdD8E5/4BHffffcsjXjhUwvN4/E4mzZt4uKLL+Z3v/vdLI184VKt5rt378br9XL99dezceNG/uEf/mEWR78wqcU8P8KPfvQjbr755lM84oVPtZo3NjbyiU98gs7OTlpbW7nqqqtYsmTJLF7BwqNazdeuXctjjz3G2NgYY2NjPProo/T29s7iFSx8JLAQpiWVSrF+/Xq+/OUvlz3+wx/+kI9//ON85jOf4eWXX+aSSy5hy5YtHDp0aMInGAzyyiuvsH//fv7zP/+TwcHB2Rr+gqRazR944AGWL1/O8uXLZ3PYC5pazPMDBw7w4osv8m//9m984AMfIB6Pz9bwFyTVal4oFHjyySe55557eOaZZ3jkkUd45JFHZvMSFhy1mOdQCqJ///vfyxvRCqhW82g0yoMPPsiBAwfo7e3l6aef5oknnpjNS1hwVKv5kVyWN73pTdx4442ce+658jbULIYgVABg/OxnP5tkO++884yPfOQjk2wrV640Pv3pT5dt4yMf+Yjxox/96FQN8bTjZDT/9Kc/bbS3txtdXV1GfX294ff7jb/5m7+ZrSEveGoxz9/8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", + "image/png": "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2f70pz+xaNEiXn311XpfLEpKSnjrrbeYOnUqDoeDbdu2ceaZZzJixAieffZZUlJS2L17N++//z41NTWG3jTU1NRw9tlnc/XVVzNr1ix8Ph+apjF+/Hg++eQTbrnlFoYPH8727du56667GDVqFGvWrCE2NhaAzZs3c8YZZwQmRz///DMPPPAAX3/9dZOaHEy49VbHrbfeyujRo1m2bBnbtm1jxowZXHLJJdjtdgYPHszy5cv59ttvufXWW0lMTOSRRx4JpL366qtZtmwZN9xwAw888ABFRUXMmTOH4cOH891335GdnR3WMwRj48aNDB8+nKysLB555BHS09N56aWXmDhxIvv37+eWW24BYO/evYwcOZL4+HiWLl1KVlYWy5cv57rrrmtW/tdeey1PPvkk1113HWeddRbbtm3jjjvu4KOPPuKbb74JtLHbbruN+fPnc9VVV3Heeeexc+dOJk+ejNfrpV+/fs2uhzq++uorCgsLGT16dFD7I488Qr9+/XjooYdISkqib9++IX35/X6UUk3mabVaG11y9euvv1JdXc3hhx/ewHb44YezYsUK3G43MTExQdPXLT86+M1K3efvv/8+ZN6aprFs2TL69OnDyJEjA+HV1dX8+uuvnHvuuUHLVF1dzZYtW+ppM2rUKGbPnk1JSUm9Nx+C0CFQgiBEBc8995wC1Jdffqm8Xq8qLy9Xb7/9tsrMzFSJiYlq3759SimlVq5cqQC1cuXKkL58Pp+qqKhQ8fHxatGiRQ3ymDJlSr34CxYsUIDau3dvo2XMzc1Vubm5qrq6OmScY489VmVlZany8vJ65Rk0aJDq1q2b0jRNKaXUoEGD1DnnnNNoflOnTlXhdHNHHXWUGj58eL2wJUuWKECtX79eKaXUa6+9pgC1bt063X4bY8KECQpQzz77bL3w5cuXK0D985//rBe+evVqBaglS5YE9adpmvJ6vWrVqlUKUN99913Adtddd+mqj8bqLScnR02YMCHwue7vady4cfXiTZs2TQHqhhtuqBd+zjnnqLS0tMDnL774QgHqr3/9a714O3fuVLGxseqWW25psrzBANRdd90V+HzxxRcrl8ulduzYUS/e2LFjVVxcnCopKVFKKXXzzTcri8Wifvzxx3rxTjvttCbbTR0H1/NPP/0UtN189dVXClC33nqrUkqpoqIi5XK51EUXXVQvXl0d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WrWKZ555xvQTTRYvXsy4ceM49thjuemmm+jRowc7duzggw8+4G9/+xsA8+fP59RTT2X06NHMmDEDp9PJkiVL+OGHH1i+fHngi/QxxxzDWWedxeGHH05qaio//fQTL774Iscdd1zgZKa6L6UPPPAAY8eOxWazcfjhh4dcXgQwZswYunXrxpQpU9i3b1+D5S6PP/44H374IWeeeSY9evTA7Xbz7LPPArVn5tfRp08f4PdTucLl4osv5m9/+xtnnHEGN954I0cffTQOh4Ndu3axcuVKxo8fz7nnnsvw4cNJTU3lmmuu4a677sLhcPC3v/2N7777zlC+YKzejHL88cdz1VVXMWnSJNasWcOJJ55IfHw8e/fu5dNPP+Wwww7j2muvBWqPth09ejR33XVX2Ldq33XXXbz99tuMHj2aO++8k7S0NP72t7/xzjvvsGDBApKTk4HaY4efffZZxo4dy5w5c8jOzubll18OvAUzcpFc//79ueqqq3j00UexWq2MHTs2cCpU9+7duemmm4DaJTXTp09n/vz5pKamcu6557Jr1y7uueceOnfubOoldnVH13755ZdBT2EKh7pJrhncc889DBs2jLPOOotZs2bhdru58847ycjI4C9/+Uu9uHa7nZEjRwb2qAAsWLCATp060aNHD/bv38+rr77Km2++yYsvvhh0KdRXX33Fjz/+GNiHEYwZM2bw4osvcuaZZzJnzhxcLhf3338/brc76N/hl19+SXp6ummTYkGIKNpw47ggCCZSd2LT6tWrG40X7FSoXbt2qfPPP1+lpqaqxMREdfrpp6sffvihwQlAofLQc9JUHV988YUaO3asSk5OVi6XS+Xm5qqbbrqpXpxPPvlEnXTSSSo+Pl7FxsaqY489Vv373/+uF2fWrFlq6NChKjU1VblcLtW7d2910003qYKCgkAcj8ejJk+erDIzM5XFYlGA2rp1a5NlvPXWWxWgunfvrvx+f4Pyn3vuuSonJ0e5XC6Vnp6uRo4cqf71r3/Vi5eTk6NycnKazGvChAkqPj4+qM3r9aqHHnpIDR48WMXExKiEhAQ1YMAAdfXVV6vNmzcH4n3++efquOOOU3FxcSozM1NNnjxZffPNNwpQzz33XCCe3lOhGqu3UKdC/eMf/6jnI9TfSl0Z8vPz64U/++yz6phjjglonpubq6644gq1Zs2aQJx///vf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8s033/DRRx/xn//8hzlz5jB37ly+/vprUlJSwqrHuvqo839wA62Lo2kad999N+edd17AVvcWIiEhoUE6h8PB3/72tyZvmn/88cf54x//2OSz1y1FaqqeOnfuzOrVq+vFKy4uxuv10qVLl0AdPvjgg9x///3s27ePzMxM/ve//wGQm5sbNA+5x8J8zMrXiB/RoyFtpYfe+Gbr0Zyw1iBa9WhO2zDyPGYhekSmHnKPhQFCrYur+29gXXpCXFh+lVLYfA6sv32xNiu+Uvr2WBxyyCH4fL7AUhylFEVFRWzatIlDDjkEi8XCgAEDWL16dT1/a9euDfy/3W6nb9++gXwP/iXaYrHQt29fnE4nn332WWAJjNfrZc2aNUybNi2Qz7vvvluvvAfm01T9HPy8dWlcLhfwewMJp84cDgennnoqp556KnfffTcpKSmsXLmy3hf/YPUIUFhYGKjHung+n4+1a9cGli5t3LiRkpISBgwYAMBRRx3Fpk2bGtSn/SC9Dyzr+PHjOfbYY4PGrQvr2rWrrr+vA+utMYYPH868efPYt28fnTt3BmDFihW4XC6GDh1arw7tdjvdunUD4O9//zvHHXdcYElaqLzr2puRNaV60pi9hjxU+MFh7XmNbEv5ET0aEq1ryEPZomENeUv4aWk9mtM2jDyPWYge4evh25uPvXNmk89oBD31Eo5WMrGIcvr27cv48eP585//zBNPPEFCQgKzZs2ia9eujB8/HoDrr7+eE088kYcffpjx48ezcuVK3nvvPd1fVAHi4+O59tprufnmm0lLS6NHjx4sWLCAqqoqrrzySgCuvvpqFi5cyMyZM7nyyitZt24dy5YtA0JPjvSQlZVFbGws77//Pt26dSMmJobk5OQm07399tts2bKFE088kdTUVN599100TaN///4N4h5cj4mJiQ3qEWonKtdffz2PPPIIDoeD6667jmOPPZZhw4YBcOedd3LWWWfRvXt3LrzwQiwWC99++y0bNmzgvvvuC1rOxMREEhMTG51YNPUGYt26dQBUVFSQn5/PunXrcDqdgUnRG2+8wezZs/n5558BGDNmDIcccgiXX345Dz74IEVFRcyYMYM///nPJCUloZSioKCAN998k9GjR+N2u3nuuef4xz/+wapVq5qse0EQBEEQGkdpGqVPvErRfU+R/dTdxI8d0dZFahKZWPxG3Tr+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WLZsGfn5+X3dtJTmlltuYePGjQwePJgHH3ywr5uT0hQUFFBTU9PXzRD2csQRR3D33Xdz2GGHUVdXR1ZWFmazua+bldI0NzczZMgQtm/fTnp6el83JyWprq5mxowZfPvtt1gsFg4//HAefPBBDjnkkL5uWkry9ddfc95557F06VIAjjnmGP7zn/+Qk5PTtw3rBHljIcQFk8mEw+EAwOv1EgqF5K8cfczGjRtZt24dJ5xwQl83RRD6Fft+aTrssMMAyMvLk0FFP+Bf//oXxxxzjAwq+phgMIjX6yUQCBAIBCgqKurrJqUsa9euZebMmdjtdux2O5MmTeKdd97p62Z1igwsBAAWL17MSSedRGlpKYqihH0V/eSTTzJ06FDsdjtTp05lyZIl7eINDQ1MnDiRQYMGccMNN1BQUNBLrU8+4uHHddddx7x583qpxclNPPxwuVxMnTqVQw89lI8++qiXWp6cdNePjRs3kpGRwcknn8yUKVO49957e7H1yUU87o19vPLKK5xxxhk93OLkprt+FBYWct111zF48GBKS0v5wQ9+wAEHHNCL3yC56K4f48aN48MPP6ShoYGGhgY++OADKioqevEbxI4MLAQAWlpamDhxIk888UTY+Msvv8w111zDLbfcwsqVKznssMOYPXs2O3bsaMuTk5PDV199xdatW/nb3/5GVVVVbzU/6eiuH2+++SYjR45k5MiRvdnspCUe98e2bdtYsWIFf/jDHzj33HNxuVy91fyko7t+BAIBlixZwoIFC/j0009ZuHAhCxcu7M2vkDTE496A1oH3J598Im9Yu0l3/aivr+ett95i27ZtVFRUsHTpUhYvXtybXyGp6K4f+9a5HH300Zx66qlMnz69/79d1QXhewD666+/3i7toIMO0i+77LJ2aQceeKB+4403htW47LLL9FdeeaWnmphSGPHjxhtv1AcNGqSXl5fr+fn5elZWln7nnXf2VpOTmnjcHz/84Q/1ZcuW9VQTUwojfixdulQ//vjj22L333+/fv/99/d4W5Od7twbL7zwgn7WWWf1dBNTCiN+vPLKK/rll1/eFrv//vv1++67r8fbmgrEo++46KKL9LfeequnmhgX5I2F0CV+v58VK1Zw3HHHtUs/7rjj2hYUVVVVtf0F1uVysXjxYkaNGtXrbU0FovFj3rx57Ny5k23btvHggw9y8cUXc/vtt/dFc5OeaPyor6/H5/MBsGvXLtasWcOwYcN6va2pQDR+TJ8+naqqKurr69E0jcWLFzN69Oi+aG5SE40X+5BpUD1PNH6UlZWxdOnStrWSixYtkr68h4j2/nA6nUDrDmpffPEFxx9/fK+2M1b6+fsUoT9QU1NDKBSiuLi4XXpxcTF79uwBWn9Zuuiii9B1HV3XueKKK5gwYUJfNDfpicYPofeIxo+1a9dy6aWXoqoqiqLw6KOPkpeX1xfNTXqi8cNsNnPvvfdy+OGHo+s6xx13HD/60Y/6orlJTbTPqsbGRr744gteffXV3m5iShGNHzNmzOCEE05g8uTJqKrKMcccw8knn9wXzU16or0/fvzjH9PQ0EB6ejrPPfdcv58K1b9bJ/QrFEVp91nX9ba0qVOnsmrVqj5oVerSmR/7c/755/dSi1KbzvyYOXMmX3/9dV80K2Xp6v6YPXs2s2fP7u1mpSRdeZGdnS1r8nqRrvy45557uOeee3q7WSlLV358/+1ef0emQgldUlBQgMlk6vDXcKfT2WGkLfQ84kf/QvzoX4gf/Qfxon8hfvQvktUPGVgIXWK1Wpk6dWqHXVMWLlzIzJkz+6hVqYv40b8QP/oX4kf/QbzoX4gf/Ytk9UOmQglA64mnmzZtavu8detWVq1aRV5eHoMHD2bu3Lmcc845TJs2jUMOOYRnnnmGHTt2cNlll/Vhq5MX8aN/IX70L8SP/oN40b8QP/oXKelHX21HJfQvPvzwQx3o8O+8885ry7NgwQK9vLxct1qt+pQpU/SPPvqo7xqc5Igf/Qvxo38hfvQfxIv+hfjRv0hFPxRd1/UeHrsIgiAIgiAIgpDkyBoLQRAEQRAEQRC6jQwsBEEQBEEQBEHoNjKwEARBEARBEASh28jAQhAEQRAEQRCEbiMDC0EQBEEQBEEQuo0MLARBEARBEARB6DYysBAEQRAEQRAEodvIwEIQBEEQBEEQhG4jAwtBEARBEARBELqNDCwEQRDiyJAhQ3jkkUf6uhm9xp/+9CeOO+64XqnryCOP5JprrumWxvPPP09OTk5c2tMXKIrCG2+8Ybj8E088wcknnxy/BgmCIOyHDCwEQRCEdkT7y6vP5+P222/ntttui2v9ixYtQlEUGhoa2qW/9tpr/O53v+uW9hlnnMGGDRu6pdGXVFZWMnv2bAC2bduGoiisWrUq6vIXX3wxy5Yt4+OPP+6hFgqCkMrIwEIQBEEwxKuvvkpGRgaHHXZYr9SXl5dHZmZmtzTS0tIoKiqKU4s64vf7e0wbYMCAAdhsNsPlbTYbv/jFL3j88cfj2CpBEIRWZGAhCIIQJUceeSRXXHEFV1xxBTk5OeTn53Prrbei63rEMg8//DDjx48nPT2dsrIyLr/8cpqbm9vi+6bmvPvuu4wePZqMjAx++MMfUllZ2Wlbvv32W0488USysrLIzMzksMMOY/PmzQBomsZdd93FoEGDsNlsTJo0iXfeeaetrN/v54orrqCkpAS73c6QIUOYN28e0DqVC+DUU09FUZS2z+F46aWXOkyr6arufX9lf+mll5g5cyZ2u52xY8eyaNGitvhRRx0FQG5uLoqicP7557dd//2nQg0ZMoS7776bc889l4yMDMrLy3nzzTeprq7mlFNOISMjg/Hjx7N8+fIO13t/DUVROvzbR0VFBWeccQa5ubnk5+dzyimnsG3btrb4+eefz49//GPmzZtHaWkpI0eODHut9uXbn2uuuYYjjzyy7fORRx7JVVddxQ033EBeXh4DBgzgjjvuaFdm/7dJQ4cOBWDy5MkoitKmtWjRIg466CDS09PJyclh1qxZbN++vU3j5JNP5o033sDj8YRtqyAIglFkYCEIghADf/7znzGbzXz++ec89thjzJ8/nz/+8Y8R86uqymOPPcY333zDn//8Zz744ANuuOGGdnncbjcPPvggL774IosXL2bHjh1cd911ETUrKio4/PDDsdvtfPDBB6xYsYILL7yQYDAIwKOPPspDDz3Egw8+yOrVqzn++OM5+eST2bhxIwCPPfYY//rXv3jllVdYv349f/nLX9oGEMuWLQPgueeeo7Kysu1zOJYsWcK0adPapXVV9z6uv/56rr32WlauXMnMmTM5+eSTqa2tpaysjFdffRWA9evXU1lZyaOPPhqxDfPnz2fWrFmsXLmSE088kXPOOYdzzz2Xs88+my+//JLhw4dz7rnnRhz8LVu2jMrKSiorK9m1axczZsxoewPjdrs56qijyMjIYPHixXz88cdtA7/930y8//77rF27loULF/LWW29FbGs0/PnPfyY9PZ3PP/+c+++/n7vuuouFCxeGzfvFF18A8N5771FZWclrr71GMBjkxz/+MUcccQSrV6/m008/5ZJLLmk3WJo2bRqBQKCtvCAIQtzQBUEQhKg44ogj9NGjR+uaprWl/eY3v9FHjx7d9rm8vFyfP39+RI1XXnlFz8/Pb/v83HPP6YC+adOmtrQFCxboxcXFETVuuukmfejQobrf7w8bLy0t1e+55552adOnT9cvv/xyXdd1/corr9SPPvrodt9jfwD99ddfj1i/rut6fX29DuiLFy+Oqe6tW7fqgP773/++LR4IBPRBgwbp9913n67ruv7hhx/qgF5fX99O54gjjtCvvvrqts/l5eX62Wef3fa5srJSB/TbbrutLe3TTz/VAb2yslLX9dbrnZ2dHfY7XXXVVXp5ebnudDp1Xdf1P/3pT/qoUaPaXSefz6enpaXp7777rq7run7eeefpxcXFus/ni3it9uU75ZRT2qVdffXV+hFHHNHu+x166KHt8kyfPl3/zW9+0/Z5f2/2XcuVK1e2xWtra3VAX7RoUaftyc3N1Z9//vlO8wiCIMSKvLEQBEGIgRkzZrT76+8hhxzCxo0bCYVCYfN/+OGHHHvssQwcOJDMzEzOPfdcamtraWlpacvjcDg44IAD2j6XlJTgdDojtmHVqlUcdthhWCyWDjGXy8Xu3buZNWtWu/RZs2axdu1aoHVazqpVqxg1ahRXXXUV//vf/6L78vuxbxqN3W6Pqe59HHLIIW3/bzabmTZtWoc80TBhwoS2/y8uLgZg/PjxHdI6u54AzzzzDH/605948803KSwsBGDFihVs2rSJzMxMMjIyyMjIIC8vD6/X2zbtbF99Vqs15rZ39X2g65+F75OXl8f555/P8ccfz0knncSjjz4adlpdWloabre72+0VBEHYHxlYCIIg9BDbt2/nhBNOYNy4cbz66qusWLGCBQsWABAIBNryfX+AoChKp+s20tLSuqx7/8EPgK7rbWlTpkxh69at/O53v8Pj8fCzn/2M008/PervBZCfn4+iKNTX18dUdyxtjob9r92+8uHSNE2LqLFo0SKuvPJKXnjhBSZOnNiWrmkaU6dOZdWqVe3+bdiwgV/84hdt+dLT07tsp6qqHTzd/2cg3PfZ1/7O2h6O5557jk8//ZSZM2fy8ssvM3LkSD777LN2eerq6toGUIIgCPFCBhaCIAgx8P1f0D777DNGjBiByWTqkHf58uUEg0EeeughZsyYwciRI9m9e3e32zBhwgSWLFkS9hfTrKwsSktLO2wnunTpUkaPHt0u3xlnnMGzzz7Lyy+/zKuvvkpdXR3Q+sttpDcw+7BarYwZM4Y1a9bEXDe0v47BYJAVK1Zw4IEHtmkDXbYhHmzatInTTjuNm2++mZ/85CftYlOmTGHjxo0UFRUxfPjwdv+ys7NjqqewsLDDm4NYtokNR2fXafLkydx0000sXbqUcePG8be//a0ttnnzZrxeL5MnT+5W/YIgCN9HBhaCIAgxsHPnTubOncv69ev5+9//zuOPP87VV18dNu8BBxxAMBjk8ccfZ8uWLbz44ov84Q9/6HYbrrjiClwuFz//+c9Zvnw5Gzdu5MUXX2T9+vVA68Lo++67j5dffpn169dz4403smrVqrZ2zp8/n5deeol169axYcMG/vGPfzBgwIC23ZKGDBnC+++/z549e8K+kdjH8ccf32EQ0VXd+1iwYAGvv/4669atY86cOdTX13PhhRcCUF5ejqIovPXWW1RXV7fbRSueeDweTjrpJCZNmsQll1zCnj172v4BnHXWWRQUFHDKKaewZMkStm7dykcffcTVV1/Nrl27Yqrr6KOPZvny5bzwwgts3LiR3/72t3zzzTfdan9RURFpaWm88847VFVV0djYyNatW7npppv49NNP2b59O//73//YsGFDu4HdkiVLGDZsWLvpd4IgCPFABhaCIAgxcO655+LxeDjooIOYM2cOV155JZdccknYvJMmTeLhhx/mvvvuY9y4cfz1r39t29a1O+Tn5/PBBx/Q3NzMEUccwdSpU3n22WfbptFcddVVXHvttVx77bWMHz+ed955h3/961+MGDECgIyMDO677z6mTZvG9OnT2bZtG2+//Taq2tolPPTQQyxcuJCysrJO/6p98cUX8/bbb9PY2NiW1lXd+/j973/Pfffdx8SJE1myZAlvvvkmBQUFAAwcOJA777yTG2+8keLiYq644opuX7NwVFVVsW7dOj744ANKS0spKSlp+weta18WL17M4MGD+clPfsLo0aO58MIL8Xg8ZGVlxVTX8ccfz2233cYNN9zA9OnTaWpq4txzz+1W+81mM4899hhPP/00paWlnHLKKTgcDtatW8dpp53GyJEjueSSS7jiiiu49NJL28r9/e9/5+KLL+5W3YIgCOFQ9M4m8gqCIAhtHHnkkUyaNIlHHnmkr5vSb/jZz37WNu0mGrZt28bQoUNZuXIlkyZN6tnGCR345ptvOOaYY9iwYUPM07kEQRC6Qt5YCIIgCIZ54IEHyMjI6OtmCFGye/duXnjhBRlUCILQI5j7ugGCIAhC4lJeXs6VV17Z180QouS4447r6yYIgpDEyFQoQRAEQRAEQRC6jUyFEgRBEARBEASh28jAQhAEQRAEQRCEbiMDC0EQBEEQBEEQuo0MLARBEARBEARB6DYysBAEQRAEQRAEodvIwEIQBEEQBEEQhG4jAwtBEARBEARBELqNDCwEQRAEQRAEQeg2MrAQBEEQBEEQBKHb/D8iTJwO6z+hEQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -277,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "id": "5dd0a12c", "metadata": { "execution": { @@ -293,11 +297,11 @@ "output_type": "stream", "text": [ "samples : 400\n", - "cost range : 366 .. 2984422200\n", - "time range (ms) : 0.122 .. 2956.6\n", - "Pearson r (linear) : 0.967\n", - "log-log slope : 0.487 (1.0 == perfectly proportional)\n", - "log-log correlation : 0.899\n" + "cost range : 366 .. 1196362017\n", + "time range (ms) : 0.366 .. 2984422.2\n", + "Pearson r (linear) : 0.290\n", + "log-log slope : 1.091 (1.0 == perfectly proportional)\n", + "log-log correlation : 0.970\n" ] } ], diff --git a/research/cost-stats.csv b/research/cost-stats.csv index 0496566..8c74bae 100644 --- a/research/cost-stats.csv +++ b/research/cost-stats.csv @@ -1,1304 +1,1304 @@ seed,plan_cost,exec_us,rows,query -0,3466,255,3,"SELECT t1.price AS c2289 +0,2196,3466,198,"SELECT t1.price AS c2289 FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id;" -1,56100,240,55,"SELECT t0.region_id AS c3748 +1,56100,56100,250,"SELECT t0.region_id AS c3748 FROM customers AS t0 WHERE t0.region_id = 7;" -2,110500,250,500,"SELECT t0.region_id, t0.id +2,110500,110500,296,"SELECT t0.region_id, t0.id FROM customers AS t0 ORDER BY t0.id DESC, t0.region_id DESC;" -3,610,122,5,"SELECT t0.id +3,610,610,122,"SELECT t0.id FROM departments AS t0;" -4,943,172,0,"SELECT t0.id, SUM(t0.id) +4,574,574,179,"SELECT t0.id, SUM(t0.id) FROM markets AS t0 WHERE t0.id IS NULL GROUP BY t0.id ORDER BY t0.id DESC;" -5,49760800,22867,3,"SELECT markets.region, markets.id AS c7685 +5,35285800,35285800,54434,"SELECT markets.region, markets.id AS c7685 FROM markets CROSS JOIN orders CROSS JOIN departments GROUP BY markets.region, markets.id;" -6,230694,628,4,"SELECT t1.id, t0.id AS c6716, t0.region_id +6,112653,440694,312,"SELECT t1.id, t0.id AS c6716, t0.region_id FROM customers AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN departments AS t2 ON t0.id = t2.id WHERE t1.department_id <= 11;" -7,2593,293,1,"SELECT departments.id +7,2188,5724,193,"SELECT departments.id FROM departments RIGHT JOIN employees ON departments.id = employees.id WHERE (employees.id != 33 AND employees.department_id IN (34, 74)) GROUP BY departments.id ORDER BY departments.id DESC;" -8,552500,1154,1,"SELECT orders.customer_id, orders.id +8,552500,552500,1136,"SELECT orders.customer_id, orders.id FROM orders WHERE (orders.id = 117 AND orders.id > 60) ORDER BY orders.customer_id DESC, orders.id DESC;" -9,3939128,8455,2,"SELECT t0.customer_id AS c3674 +9,3939128,3939128,7819,"SELECT t0.customer_id AS c3674 FROM orders AS t0 CROSS JOIN departments AS t1 WHERE (t1.id >= 4 AND (t0.id IN (130) OR t1.id IS NULL));" -10,5532,325,3,"SELECT regions.id +10,4143,6932,235,"SELECT regions.id FROM books RIGHT JOIN employees ON books.id = employees.id JOIN regions ON books.id = regions.id WHERE books.price >= 6;" -11,16616,301,22,"SELECT employees.department_id +11,5889,16616,258,"SELECT employees.department_id FROM users FULL JOIN employees ON users.id = employees.id ORDER BY employees.department_id DESC;" -12,676416,975,3,"SELECT orders.id AS c2380, markets.region, markets.note +12,676416,1550366,903,"SELECT orders.id AS c2380, markets.region, markets.note FROM markets JOIN orders ON markets.id = orders.id;" -13,2390300,2814,15000,"SELECT markets.region, orders.customer_id AS c8705, markets.note +13,2390300,2390300,2752,"SELECT markets.region, orders.customer_id AS c8705, markets.note FROM markets CROSS JOIN orders;" -14,2076,143,10,"SELECT t0.department_id, t0.id AS c1827 +14,2076,2076,127,"SELECT t0.department_id, t0.id AS c1827 FROM employees AS t0 WHERE (t0.department_id BETWEEN 5 AND 34 OR t0.id NOT IN (2, 68, 69));" -15,422,142,0,"SELECT books.price +15,422,422,129,"SELECT books.price FROM books WHERE (books.id < 2 AND (books.price NOT BETWEEN 41 AND 55 OR books.price IN (57, 63, 77, 77)));" -16,16132,334,22,"SELECT t0.age AS c4948 +16,5405,16132,176,"SELECT t0.age AS c4948 FROM users AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id;" -17,29255,307,4,"SELECT users.age, COUNT(departments.id), COUNT(*) +17,19505,29510,302,"SELECT users.age, COUNT(departments.id), COUNT(*) FROM regions JOIN users ON regions.id = users.id CROSS JOIN departments WHERE (users.age >= 52 OR regions.id IN (4, 9)) GROUP BY users.age;" -18,102500,273,436,"SELECT customers.region_id +18,102500,102500,311,"SELECT customers.region_id FROM customers WHERE customers.region_id != 8 ORDER BY customers.region_id ASC;" -19,3393,359,2,"SELECT t0.id +19,2736,4463,221,"SELECT t0.id FROM books AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id JOIN markets AS t2 ON t1.id = t2.id WHERE t1.id < 3 ORDER BY t0.id ASC;" -20,49896040,29612,85,"SELECT orders.id AS c5497, orders.customer_id, departments.id AS c8484 +20,49896040,49896040,28905,"SELECT orders.id AS c5497, orders.customer_id, departments.id AS c8484 FROM departments CROSS JOIN users CROSS JOIN orders WHERE orders.id = 82;" -21,1220,146,10,"SELECT regions.id +21,1220,1220,268,"SELECT regions.id FROM regions;" -22,7436,167,11,"SELECT t0.department_id +22,3740,3740,171,"SELECT t0.department_id FROM employees AS t0 GROUP BY t0.department_id ORDER BY t0.department_id ASC;" -23,156962,489,10,"SELECT customers.region_id +23,109562,155822,514,"SELECT customers.region_id FROM customers LEFT JOIN books ON customers.id = books.id GROUP BY customers.region_id ORDER BY customers.region_id ASC;" -24,57976,440,4,"SELECT t2.id, COUNT(t0.id) AS c2763, COUNT(t2.id) +24,39522,56902,387,"SELECT t2.id, COUNT(t0.id) AS c2763, COUNT(t2.id) FROM regions AS t0 CROSS JOIN users AS t1 LEFT JOIN markets AS t2 ON t0.id = t2.id GROUP BY t2.id;" -25,68652,240,3,"SELECT customers.id +25,68652,155432,247,"SELECT customers.id FROM books JOIN customers ON books.id = customers.id ORDER BY customers.id DESC;" -26,4786826,149982,5489,"SELECT customers.region_id, employees.department_id +26,1417306,4786826,2866,"SELECT customers.region_id, employees.department_id FROM employees FULL JOIN orders ON employees.id = orders.id FULL JOIN customers ON employees.id = customers.id ORDER BY customers.region_id ASC;" -27,6471784,12004,2,"SELECT orders.customer_id, users.id +27,1323180,6466259,8053,"SELECT orders.customer_id, users.id FROM users RIGHT JOIN orders ON users.id = orders.id CROSS JOIN departments WHERE orders.customer_id IN (34, 321) GROUP BY orders.customer_id, users.id;" -28,3325,150,5,"SELECT departments.id AS c2364, SUM(departments.id) +28,1425,1425,325,"SELECT departments.id AS c2364, SUM(departments.id) FROM departments GROUP BY departments.id ORDER BY departments.id ASC;" -29,70066,376,5,"SELECT customers.id, markets.id +29,110161,226916,341,"SELECT customers.id, markets.id FROM customers FULL JOIN departments ON customers.id = departments.id JOIN markets ON customers.id = markets.id;" -30,32788,427,51,"SELECT markets.id AS c2619 +30,32788,32788,384,"SELECT markets.id AS c2619 FROM markets CROSS JOIN users CROSS JOIN books WHERE markets.region != 'AMERICA';" -31,4860,223,8,"SELECT t0.id, SUM(t0.id) +31,3125,3125,151,"SELECT t0.id, SUM(t0.id) FROM users AS t0 WHERE ((t0.id NOT IN (5) AND t0.age != 12) AND t0.age NOT BETWEEN 33 AND 64) GROUP BY t0.id;" -32,7436,190,11,"SELECT t0.id AS c8338, COUNT(t0.department_id) +32,3740,3740,183,"SELECT t0.id AS c8338, COUNT(t0.department_id) FROM employees AS t0 GROUP BY t0.id ORDER BY t0.id DESC;" -33,2705500,201810,1000,"SELECT orders.customer_id, customers.region_id +33,1760905,2705500,221424,"SELECT orders.customer_id, customers.region_id FROM departments RIGHT JOIN orders ON departments.id = orders.id CROSS JOIN customers WHERE departments.id BETWEEN 4 AND 96 ORDER BY customers.region_id DESC;" -34,34691744,33226,3,"SELECT markets.note AS c1833, markets.region, SUM(books.id) AS c1917, COUNT(*) +34,27634772,27634772,65216,"SELECT markets.note AS c1833, markets.region, SUM(books.id) AS c1917, COUNT(*) FROM orders CROSS JOIN markets CROSS JOIN books WHERE ((orders.id != 89 OR markets.note IS NOT NULL) OR (markets.id IN (22) AND books.id NOT BETWEEN 1 AND 3)) GROUP BY markets.note, markets.region ORDER BY markets.region DESC;" -35,7686500,17925,50000,"SELECT regions.id, orders.id +35,7686500,1755811500,17292,"SELECT regions.id, orders.id FROM orders CROSS JOIN regions JOIN customers ON regions.id = customers.id ORDER BY orders.id DESC, regions.id DESC;" -36,8426,254,51,"SELECT books.price AS c7084 +36,8426,8426,283,"SELECT books.price AS c7084 FROM books CROSS JOIN users;" -37,525797800,426043,1591,"SELECT orders.customer_id +37,1916300,525797800,2823,"SELECT orders.customer_id FROM customers CROSS JOIN markets FULL JOIN orders ON markets.id = orders.id WHERE orders.id < 95;" -38,4011762,5469,2,"SELECT t1.department_id, COUNT(*) +38,1310710,4010688,2504,"SELECT t1.department_id, COUNT(*) FROM regions AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id WHERE ((t1.id = 3 OR t2.id = 185) OR (t1.id < 3 AND t2.id IS NULL)) GROUP BY t1.department_id ORDER BY t1.department_id DESC;" -39,433,153,0,"SELECT t0.id, t0.note, t0.region +39,433,433,141,"SELECT t0.id, t0.note, t0.region FROM markets AS t0 WHERE t0.note IS NULL ORDER BY t0.note DESC, t0.id DESC;" -40,1004300,621,500,"SELECT t1.id, t1.region_id AS c2127 +40,615800,615800,614,"SELECT t1.id, t1.region_id AS c2127 FROM books AS t0 CROSS JOIN customers AS t1 GROUP BY t1.id, t1.region_id;" -41,1485049368,499192,50000,"SELECT customers.region_id, orders.id AS c1616 +41,1196362017,1196362017,2615226,"SELECT customers.region_id, orders.id AS c1616 FROM orders CROSS JOIN customers WHERE ((orders.id >= 3 OR customers.region_id != 41) OR orders.id IN (73)) GROUP BY customers.region_id, orders.id;" -42,745022,1089,3,"SELECT t1.price, t0.region_id, t2.customer_id AS c2615 +42,745022,1705422,1024,"SELECT t1.price, t0.region_id, t2.customer_id AS c2615 FROM customers AS t0 JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t0.id = t2.id WHERE t2.id IS NOT NULL;" -43,422,148,0,"SELECT markets.region, markets.id AS c9574 +43,422,422,147,"SELECT markets.region, markets.id AS c9574 FROM markets WHERE ((markets.note IS NOT NULL OR markets.region != 'AMERICA') AND (markets.region IN ('EUROPE', 'EUROPE') AND markets.note IN ('North, South', 'North, South')));" -44,72448,263,6,"SELECT t1.id AS c8372, t1.age AS c1550 +44,72448,648028,274,"SELECT t1.id AS c8372, t1.age AS c1550 FROM customers AS t0 JOIN users AS t1 ON t0.id = t1.id WHERE t1.id > 11 ORDER BY t1.id ASC, t1.age DESC;" -45,6295,178,0,"SELECT t1.department_id AS c7018, t0.id AS c6686 +45,4560,11225,179,"SELECT t1.department_id AS c7018, t0.id AS c6686 FROM regions AS t0 JOIN employees AS t1 ON t0.id = t1.id WHERE t0.id >= 10 GROUP BY t1.department_id, t0.id;" -46,1122,156,1,"SELECT t0.id +46,1122,1122,152,"SELECT t0.id FROM regions AS t0 WHERE ((t0.id IS NOT NULL AND t0.id != 5) AND (t0.id > 8 AND t0.id > 9));" -47,436233,1138,1,"SELECT employees.id +47,110844,436233,363,"SELECT employees.id FROM customers FULL JOIN employees ON customers.id = employees.id WHERE employees.department_id = 32 ORDER BY employees.id ASC;" -48,1706896,142344,11,"SELECT customers.region_id AS c1201, SUM(customers.region_id) +48,1443652,175655822,2977,"SELECT customers.region_id AS c1201, SUM(customers.region_id) FROM orders FULL JOIN customers ON orders.id = customers.id FULL JOIN markets ON orders.id = markets.id GROUP BY customers.region_id;" -49,560554,1150,0,"SELECT orders.customer_id, orders.id +49,560554,560554,1733,"SELECT orders.customer_id, orders.id FROM orders WHERE ((orders.id = 130 OR orders.id <= 96) AND orders.id = 97) ORDER BY orders.customer_id DESC, orders.id DESC;" -50,1972,259,3,"SELECT markets.id +50,1417,1972,202,"SELECT markets.id FROM markets RIGHT JOIN departments ON markets.id = departments.id WHERE markets.id < 45;" -51,610,133,5,"SELECT t0.id +51,610,610,116,"SELECT t0.id FROM departments AS t0;" -52,7748300,4738,5000,"SELECT orders.id, COUNT(*) +52,4742675,5714300,3855,"SELECT orders.id, COUNT(*) FROM books CROSS JOIN orders WHERE books.price NOT IN (45, 55, 55, 66) GROUP BY orders.id;" -53,31865,316,3,"SELECT users.id, COUNT(employees.id) AS c5902 +53,30725,62340,430,"SELECT users.id, COUNT(employees.id) AS c5902 FROM employees CROSS JOIN users JOIN markets ON users.id = markets.id GROUP BY users.id ORDER BY users.id ASC;" -54,8460,165,15,"SELECT users.age, users.id AS c207, SUM(users.id) +54,5100,5100,191,"SELECT users.age, users.id AS c207, SUM(users.id) FROM users WHERE (users.age > 27 OR (users.age <= 123 AND users.age > 1)) GROUP BY users.age, users.id ORDER BY users.id ASC;" -55,1342,142,11,"SELECT t0.department_id AS c7732 +55,1342,1342,111,"SELECT t0.department_id AS c7732 FROM employees AS t0;" -56,69804832,17366,3,"SELECT books.id, SUM(orders.customer_id) AS c2549, COUNT(*) AS c1539 +56,53882332,53882332,55305,"SELECT books.id, SUM(orders.customer_id) AS c2549, COUNT(*) AS c1539 FROM books CROSS JOIN employees CROSS JOIN orders WHERE employees.id < 68 GROUP BY books.id;" -57,881250,1435,3001,"SELECT orders.id AS c9114 +57,881250,881250,1813,"SELECT orders.id AS c9114 FROM orders WHERE (orders.customer_id > 214 OR orders.customer_id BETWEEN 75 AND 84);" -58,1927703100,1595702,110,"SELECT employees.department_id, customers.region_id, COUNT(*), SUM(orders.customer_id) +58,4073600,1927083100,3996,"SELECT employees.department_id, customers.region_id, COUNT(*), SUM(orders.customer_id) FROM employees CROSS JOIN customers FULL JOIN orders ON customers.id = orders.id WHERE customers.id <= 149 GROUP BY employees.department_id, customers.region_id;" -59,316000,390,500,"SELECT customers.id, customers.region_id, COUNT(customers.region_id) +59,175500,175500,549,"SELECT customers.id, customers.region_id, COUNT(customers.region_id) FROM customers GROUP BY customers.id, customers.region_id;" -60,5702,286,17,"SELECT t0.id +60,3577,5702,189,"SELECT t0.id FROM markets AS t0 FULL JOIN users AS t1 ON t0.id = t1.id ORDER BY t0.id ASC;" -61,2493,292,5,"SELECT t1.region, t1.id, t1.note +61,2493,2493,269,"SELECT t1.region, t1.id, t1.note FROM departments AS t0 CROSS JOIN markets AS t1 WHERE ((t0.id < 43 OR t0.id >= 2) AND t1.note = 'Old World') ORDER BY t1.note DESC, t1.id ASC, t1.region ASC;" -62,70066,363,3,"SELECT departments.id AS c7718 +62,69881,156916,259,"SELECT departments.id AS c7718 FROM departments LEFT JOIN books ON departments.id = books.id JOIN customers ON departments.id = customers.id;" -63,10975,294,11,"SELECT users.age AS c5029, COUNT(*) AS c2096, SUM(users.age) +63,4771,9075,210,"SELECT users.age AS c5029, COUNT(*) AS c2096, SUM(users.age) FROM users FULL JOIN departments ON users.id = departments.id GROUP BY users.age ORDER BY users.age ASC;" -64,175610500,116231,500,"SELECT customers.region_id AS c6827, orders.id, customers.id +64,1494000,175610500,1644,"SELECT customers.region_id AS c6827, orders.id, customers.id FROM customers LEFT JOIN orders ON customers.id = orders.id ORDER BY customers.region_id ASC, customers.id ASC, orders.id DESC;" -65,2482,255,0,"SELECT markets.id AS c8656, markets.region +65,1558,2113,229,"SELECT markets.id AS c8656, markets.region FROM markets FULL JOIN departments ON markets.id = departments.id WHERE departments.id = 60 GROUP BY markets.id, markets.region;" -66,932,166,1,"SELECT markets.note AS c5953, SUM(markets.id), SUM(markets.id) +66,563,563,157,"SELECT markets.note AS c5953, SUM(markets.id), SUM(markets.id) FROM markets WHERE markets.region = 'EUROPE' GROUP BY markets.note;" -67,61000,234,500,"SELECT customers.region_id, customers.id AS c651 +67,61000,61000,400,"SELECT customers.region_id, customers.id AS c651 FROM customers;" -68,4015260,20935,5001,"SELECT users.id, regions.id AS c5610, orders.id AS c9918 +68,1311707,6465260,3026,"SELECT users.id, regions.id AS c5610, orders.id AS c9918 FROM users FULL JOIN orders ON users.id = orders.id FULL JOIN regions ON orders.id = regions.id ORDER BY users.id DESC;" -69,380850,2234,2380,"SELECT t0.id AS c499 +69,546522,548611,2460,"SELECT t0.id AS c499 FROM books AS t0 FULL JOIN users AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 WHERE ((t0.price > 66 OR t0.price NOT IN (55, 77, 93)) OR t2.id < 93) ORDER BY t0.id ASC;" -70,943,192,1,"SELECT markets.region, markets.note +70,574,574,354,"SELECT markets.region, markets.note FROM markets WHERE markets.id IN (2, 31) GROUP BY markets.region, markets.note ORDER BY markets.note ASC, markets.region ASC;" -71,10340,246,5,"SELECT departments.id AS c3175, SUM(departments.id), COUNT(books.price) +71,5300,5300,272,"SELECT departments.id AS c3175, SUM(departments.id), COUNT(books.price) FROM books CROSS JOIN departments GROUP BY departments.id;" -72,788,169,4,"SELECT t0.id +72,788,788,148,"SELECT t0.id FROM departments AS t0 WHERE t0.id >= 2 ORDER BY t0.id ASC;" -73,67647,262,0,"SELECT customers.id, customers.region_id +73,67647,155422,478,"SELECT customers.id, customers.region_id FROM customers JOIN markets ON customers.id = markets.id WHERE ((markets.id = 3 AND markets.region != 'AMERICA') AND (customers.id < 17 AND customers.region_id IS NULL));" -74,86272,601,3,"SELECT books.id AS c9785 +74,109996,226972,328,"SELECT books.id AS c9785 FROM customers RIGHT JOIN departments ON customers.id = departments.id RIGHT JOIN books ON departments.id = books.id WHERE books.price >= 55;" -75,15960,274,110,"SELECT t1.department_id AS c5193, t1.id +75,15960,15960,272,"SELECT t1.department_id AS c5193, t1.id FROM regions AS t0 CROSS JOIN employees AS t1;" -76,16988,294,17,"SELECT t0.id AS c3431 +76,6261,16988,270,"SELECT t0.id AS c3431 FROM users AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id WHERE ((t1.id != 67 AND t0.id IS NOT NULL) OR (t0.age NOT BETWEEN 33 AND 123 OR t0.age >= 22));" -77,339550000,200988,0,"SELECT t1.region_id AS c1177, t0.id AS c3278, COUNT(*), COUNT(t0.id) AS c3474 +77,315425000,315425000,206324,"SELECT t1.region_id AS c1177, t0.id AS c3278, COUNT(*), COUNT(t0.id) AS c3474 FROM orders AS t0 CROSS JOIN customers AS t1 WHERE (t0.id = 64 AND t0.customer_id > 397) GROUP BY t1.region_id, t0.id;" -78,61000,244,500,"SELECT t0.id, t0.region_id +78,61000,61000,748,"SELECT t0.id, t0.region_id FROM customers AS t0;" -79,2310,135,2,"SELECT t0.id AS c7963, t0.age AS c5437 +79,2310,2310,125,"SELECT t0.id AS c7963, t0.age AS c5437 FROM users AS t0 WHERE t0.age IN (5, 11, 63);" -80,6250,265,30,"SELECT regions.id AS c2137 +80,6250,6250,246,"SELECT regions.id AS c2137 FROM regions CROSS JOIN markets WHERE markets.note != 'AMERICA';" -81,7242,334,5,"SELECT markets.region AS c3832, users.age, departments.id +81,4658,9622,227,"SELECT markets.region AS c3832, users.age, departments.id FROM users LEFT JOIN departments ON users.id = departments.id RIGHT JOIN markets ON users.id = markets.id WHERE departments.id <= 5;" -82,1833,174,0,"SELECT users.age AS c4898, users.id AS c4014 +82,1833,1833,138,"SELECT users.age AS c4898, users.id AS c4014 FROM users WHERE ((users.id = 4 OR users.id BETWEEN 11 AND 16) AND (users.age = 22 AND users.id <= 57)) ORDER BY users.age DESC;" -83,4502,282,6,"SELECT t0.age AS c499, t1.price AS c7644, t0.id +83,3478,5692,198,"SELECT t0.age AS c499, t1.price AS c7644, t0.id FROM users AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id WHERE t0.id < 7;" -84,4574,324,3,"SELECT books.price, regions.id, markets.id AS c8988 +84,3124,4574,221,"SELECT books.price, regions.id, markets.id AS c8988 FROM markets LEFT JOIN regions ON markets.id = regions.id LEFT JOIN books ON regions.id = books.id WHERE ((books.price BETWEEN 6 AND 77 OR markets.id NOT IN (1, 2, 2, 3)) OR books.price NOT IN (55));" -85,316000,330,500,"SELECT t0.id, t0.region_id +85,175500,175500,342,"SELECT t0.id, t0.region_id FROM customers AS t0 GROUP BY t0.id, t0.region_id;" -86,610000,1168,5000,"SELECT orders.customer_id, orders.id +86,610000,610000,1188,"SELECT orders.customer_id, orders.id FROM orders;" -87,6952,133,11,"SELECT employees.department_id, employees.id AS c6314 +87,3256,3256,169,"SELECT employees.department_id, employees.id AS c6314 FROM employees GROUP BY employees.department_id, employees.id;" -88,8275,273,5,"SELECT departments.id AS c2839, COUNT(*) +88,3612,6540,228,"SELECT departments.id AS c2839, COUNT(*) FROM employees RIGHT JOIN departments ON employees.id = departments.id GROUP BY departments.id ORDER BY departments.id DESC;" -89,1896,151,3,"SELECT t0.region AS c5477, t0.id AS c2794, COUNT(*) AS c9570 +89,822,822,155,"SELECT t0.region AS c5477, t0.id AS c2794, COUNT(*) AS c9570 FROM markets AS t0 GROUP BY t0.region, t0.id;" -90,208000,409,500,"SELECT customers.region_id, customers.id AS c6247, COUNT(*) AS c8943 +90,135000,135000,422,"SELECT customers.region_id, customers.id AS c6247, COUNT(*) AS c8943 FROM customers WHERE customers.region_id <= 40 GROUP BY customers.region_id, customers.id;" -91,610,132,5,"SELECT departments.id +91,610,610,115,"SELECT departments.id FROM departments;" -92,22030,249,3,"SELECT markets.region, markets.id +92,12280,12280,260,"SELECT markets.region, markets.id FROM markets CROSS JOIN regions GROUP BY markets.region, markets.id ORDER BY markets.region ASC;" -93,676086,907,3,"SELECT t0.id, t1.id AS c1156, t0.customer_id +93,676086,1550366,1339,"SELECT t0.id, t1.id AS c1156, t0.customer_id FROM orders AS t0 JOIN books AS t1 ON t0.id = t1.id;" -94,8782,324,0,"SELECT t1.price +94,5916,22032,1068,"SELECT t1.price FROM departments AS t0 CROSS JOIN books AS t1 RIGHT JOIN users AS t2 ON t1.id = t2.id WHERE (t2.id BETWEEN 45 AND 86 AND t1.id IN (2));" -95,7432,344,0,"SELECT t2.id +95,4669,7432,789,"SELECT t2.id FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 WHERE ((t1.department_id IN (1, 5, 12, 34) AND t1.id IN (69)) AND t1.department_id <= 1);" -96,689824,912,16,"SELECT t1.id AS c5555, t0.id +96,684299,6455219,995,"SELECT t1.id AS c5555, t0.id FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id GROUP BY t1.id, t0.id;" -97,1643,148,0,"SELECT regions.id, SUM(regions.id), COUNT(regions.id) AS c9550 +97,1274,1274,172,"SELECT regions.id, SUM(regions.id), COUNT(regions.id) AS c9550 FROM regions WHERE ((regions.id < 2 AND regions.id = 32) AND (regions.id <= 2 AND regions.id != 3)) GROUP BY regions.id ORDER BY regions.id ASC;" -98,2482,253,0,"SELECT books.id +98,2482,2482,272,"SELECT books.id FROM books CROSS JOIN departments WHERE ((books.price IS NULL AND departments.id = 1) AND (books.price IS NULL OR books.price NOT IN (55, 77)));" -99,59312,262,0,"SELECT customers.id, SUM(customers.id), COUNT(customers.id) AS c8662 +99,58943,401263,308,"SELECT customers.id, SUM(customers.id), COUNT(customers.id) AS c8662 FROM regions JOIN customers ON regions.id = customers.id WHERE customers.region_id = 63 GROUP BY customers.id;" -100,3009,165,17,"SELECT users.age, users.id AS c7470 +100,3009,3009,157,"SELECT users.age, users.id AS c7470 FROM users ORDER BY users.id ASC;" -101,6624,358,50,"SELECT markets.id, departments.id AS c1258, markets.region +101,5266,6624,355,"SELECT markets.id, departments.id AS c1258, markets.region FROM employees LEFT JOIN markets ON employees.id = markets.id CROSS JOIN departments WHERE ((markets.id IN (3) AND markets.region = 'EUROPE') OR employees.id < 69);" -102,610000,1114,5000,"SELECT t0.customer_id, t0.id AS c8685 +102,610000,610000,1156,"SELECT t0.customer_id, t0.id AS c8685 FROM orders AS t0;" -103,696660,1089,11,"SELECT users.age AS c405 +103,686541,6467000,1466,"SELECT users.age AS c405 FROM users JOIN orders ON users.id = orders.id RIGHT JOIN regions ON orders.id = regions.id GROUP BY users.age ORDER BY users.age DESC;" -104,1222,134,0,"SELECT employees.id +104,1222,1222,135,"SELECT employees.id FROM employees WHERE employees.id = 14;" -105,1552826,2164,3,"SELECT markets.id, orders.customer_id, COUNT(*) +105,1306776,1551752,1478,"SELECT markets.id, orders.customer_id, COUNT(*) FROM orders RIGHT JOIN markets ON orders.id = markets.id LEFT JOIN books ON markets.id = books.id GROUP BY markets.id, orders.customer_id;" -106,10632,340,25,"SELECT books.price AS c2329, markets.note +106,10632,18447,831,"SELECT books.price AS c2329, markets.note FROM users CROSS JOIN books JOIN markets ON books.id = markets.id WHERE (markets.region = 'EUROPE' OR (users.age NOT IN (5, 22, 64, 123) AND users.age < 22)) ORDER BY markets.note ASC;" -107,1643,176,1,"SELECT regions.id +107,1274,1274,448,"SELECT regions.id FROM regions WHERE regions.id IN (5) GROUP BY regions.id ORDER BY regions.id ASC;" -108,102500,228,51,"SELECT customers.id AS c9166, customers.region_id +108,102500,102500,227,"SELECT customers.id AS c9166, customers.region_id FROM customers WHERE customers.id < 52 ORDER BY customers.region_id ASC, customers.id DESC;" -109,16132,273,22,"SELECT employees.id, users.age, employees.department_id +109,5405,16132,182,"SELECT employees.id, users.age, employees.department_id FROM employees FULL JOIN users ON employees.id = users.id;" -110,16522,270,0,"SELECT employees.department_id, employees.id, COUNT(users.id) AS c6401, COUNT(*) +110,5426,16153,222,"SELECT employees.department_id, employees.id, COUNT(users.id) AS c6401, COUNT(*) FROM employees FULL JOIN users ON employees.id = users.id WHERE ((employees.department_id = 31 AND employees.department_id NOT IN (6, 59, 72)) AND (employees.department_id NOT IN (1, 5, 6, 32) AND users.id = 5)) GROUP BY employees.department_id, employees.id;" -111,541846,1998,28,"SELECT orders.customer_id, orders.id +111,541846,541846,2127,"SELECT orders.customer_id, orders.id FROM orders WHERE ((orders.id IN (97, 99, 184, 198) OR orders.id BETWEEN 31 AND 58) AND (orders.customer_id IS NOT NULL AND orders.id BETWEEN 3 AND 65));" -112,1550943,2924,2,"SELECT markets.id, markets.note, COUNT(orders.id), SUM(orders.customer_id) +112,1305844,1550574,2813,"SELECT markets.id, markets.note, COUNT(orders.id), SUM(orders.customer_id) FROM markets RIGHT JOIN orders ON markets.id = orders.id WHERE ((orders.id < 188 AND orders.customer_id >= 193) OR (orders.customer_id BETWEEN 239 AND 436 OR markets.id = 1)) GROUP BY markets.id, markets.note ORDER BY markets.id DESC, markets.note DESC;" -113,422,154,1,"SELECT t0.region, t0.note AS c6295 +113,422,422,131,"SELECT t0.region, t0.note AS c6295 FROM markets AS t0 WHERE t0.id < 2;" -114,61000,219,500,"SELECT t0.id +114,61000,61000,210,"SELECT t0.id FROM customers AS t0;" -115,10020,278,10,"SELECT t1.id AS c2831, t0.id, t0.department_id +115,3922,10020,186,"SELECT t1.id AS c2831, t0.id, t0.department_id FROM employees AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id;" -116,677083,1090,1,"SELECT t2.customer_id +116,677833,1551363,1025,"SELECT t2.customer_id FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t1.id = t2.id WHERE t2.customer_id > 244 ORDER BY t2.customer_id DESC;" -117,744,141,1,"SELECT t0.id AS c6139 +117,744,744,138,"SELECT t0.id AS c6139 FROM departments AS t0 WHERE t0.id >= 5;" -118,7052,335,0,"SELECT books.id AS c118 +118,4923,9763,250,"SELECT books.id AS c118 FROM departments RIGHT JOIN users ON departments.id = users.id FULL JOIN books ON departments.id = books.id WHERE ((users.id > 3 AND books.price = 77) AND users.age > 443) GROUP BY books.id;" -119,677024,1010,5,"SELECT orders.id, COUNT(departments.id) +119,676308,2251048,970,"SELECT orders.id, COUNT(departments.id) FROM departments JOIN orders ON departments.id = orders.id WHERE departments.id < 36 GROUP BY orders.id;" -120,1113982,1453,500,"SELECT orders.customer_id, employees.department_id +120,1377824,4786342,1518,"SELECT orders.customer_id, employees.department_id FROM employees JOIN customers ON employees.id = customers.id LEFT JOIN orders ON employees.id = orders.id;" -121,1222,133,0,"SELECT employees.id +121,1222,1222,151,"SELECT employees.id FROM employees WHERE ((employees.id > 68 OR employees.department_id = 5) AND (employees.id BETWEEN 2 AND 4 AND employees.department_id IN (3, 5, 5)));" -122,2847,295,0,"SELECT markets.note, employees.id +122,3217,5382,214,"SELECT markets.note, employees.id FROM employees LEFT JOIN markets ON employees.id = markets.id JOIN departments ON employees.id = departments.id WHERE ((departments.id != 36 OR markets.region IS NULL) AND departments.id = 4);" -123,544,147,1,"SELECT t0.id, t0.note, t0.region +123,544,544,145,"SELECT t0.id, t0.note, t0.region FROM markets AS t0 WHERE t0.id NOT BETWEEN 2 AND 21;" -124,65833,353,1,"SELECT books.price AS c5178 +124,59693,155433,328,"SELECT books.price AS c5178 FROM books RIGHT JOIN customers ON books.id = customers.id WHERE customers.id = 158 ORDER BY books.price DESC;" -125,1222,145,0,"SELECT employees.id AS c9929, employees.department_id +125,1222,1222,180,"SELECT employees.id AS c9929, employees.department_id FROM employees WHERE (employees.department_id = 35 AND employees.department_id < 32);" -126,4962,342,0,"SELECT books.price, books.id +126,3107,4593,243,"SELECT books.price, books.id FROM books FULL JOIN markets ON books.id = markets.id FULL JOIN regions ON books.id = regions.id WHERE (markets.region != 'EUROPE' AND (regions.id IS NULL AND books.price > 66)) GROUP BY books.price, books.id;" -127,81500,262,3,"SELECT t0.region_id +127,81500,81500,257,"SELECT t0.region_id FROM customers AS t0 WHERE t0.id IN (16, 32, 137) ORDER BY t0.region_id DESC;" -128,1288,159,2,"SELECT regions.id +128,1288,1288,345,"SELECT regions.id FROM regions WHERE regions.id BETWEEN 9 AND 10 ORDER BY regions.id DESC;" -129,1552892,3046,3,"SELECT orders.customer_id, COUNT(orders.id) AS c1702 +129,1306842,1551818,1390,"SELECT orders.customer_id, COUNT(orders.id) AS c1702 FROM markets LEFT JOIN books ON markets.id = books.id LEFT JOIN orders ON markets.id = orders.id GROUP BY orders.customer_id ORDER BY orders.customer_id DESC;" -130,680760,1036,5,"SELECT regions.id, orders.id AS c452, orders.customer_id +130,1308015,2255110,1326,"SELECT regions.id, orders.id AS c452, orders.customer_id FROM regions JOIN departments ON regions.id = departments.id LEFT JOIN orders ON departments.id = orders.id;" -131,4006320,8008,11,"SELECT regions.id AS c9060, COUNT(orders.customer_id), COUNT(orders.id) +131,1308440,4002960,2060,"SELECT regions.id AS c9060, COUNT(orders.customer_id), COUNT(orders.id) FROM orders FULL JOIN regions ON orders.id = regions.id GROUP BY regions.id;" -132,2522,247,0,"SELECT t0.id AS c4692, t1.department_id AS c2149, t1.id +132,2187,5572,201,"SELECT t0.id AS c4692, t1.department_id AS c2149, t1.id FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id WHERE (t1.id IN (32, 66, 68, 80) AND (t1.id <= 26 OR t1.department_id <= 5));" -133,678982,931,11,"SELECT t1.id AS c8251, t0.customer_id, t0.id AS c2451 +133,678982,4351342,996,"SELECT t1.id AS c8251, t0.customer_id, t0.id AS c2451 FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id;" -134,17111100,16205,55000,"SELECT orders.customer_id AS c6356 +134,17111100,17111100,20339,"SELECT orders.customer_id AS c6356 FROM employees CROSS JOIN orders ORDER BY orders.customer_id ASC;" -135,4015260,8754,5001,"SELECT users.id, regions.id AS c3154 +135,1311707,6465260,1861,"SELECT users.id, regions.id AS c3154 FROM orders FULL JOIN users ON orders.id = users.id RIGHT JOIN regions ON orders.id = regions.id ORDER BY users.id DESC, regions.id DESC;" -136,12682,387,4,"SELECT books.price +136,7798,11608,343,"SELECT books.price FROM regions CROSS JOIN markets LEFT JOIN books ON regions.id = books.id GROUP BY books.price ORDER BY books.price DESC;" -137,3160,137,5,"SELECT departments.id, SUM(departments.id), COUNT(*) AS c6998 +137,1425,1425,154,"SELECT departments.id, SUM(departments.id), COUNT(*) AS c6998 FROM departments GROUP BY departments.id;" -138,6320,137,10,"SELECT regions.id AS c7258 +138,2960,2960,148,"SELECT regions.id AS c7258 FROM regions GROUP BY regions.id;" -139,932,178,2,"SELECT markets.id +139,563,563,166,"SELECT markets.id FROM markets WHERE ((markets.note = 'Old World' OR markets.id >= 2) OR (markets.region = 'AMERICA' AND markets.region = 'EUROPE')) GROUP BY markets.id;" -140,422,152,3,"SELECT t0.price, t0.id AS c3105 +140,422,422,137,"SELECT t0.price, t0.id AS c3105 FROM books AS t0 WHERE t0.id IS NOT NULL;" -141,5272,358,0,"SELECT t1.id AS c8895, t1.note AS c8854, SUM(t1.id) +141,3365,4903,441,"SELECT t1.id AS c8895, t1.note AS c8854, SUM(t1.id) FROM books AS t0 RIGHT JOIN markets AS t1 ON t0.id = t1.id RIGHT JOIN employees AS t2 ON t0.id = t2.id WHERE t1.id > 24 GROUP BY t1.id, t1.note;" -142,87712,367,17,"SELECT t1.region_id AS c1630 +142,77205,661132,258,"SELECT t1.region_id AS c1630 FROM users AS t0 JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN employees AS t2 ON t0.id = t2.id;" -143,422,158,1,"SELECT t0.id, t0.price +143,422,422,126,"SELECT t0.id, t0.price FROM books AS t0 WHERE t0.price <= 55;" -144,14944,273,10,"SELECT t1.department_id AS c3966, SUM(t1.id) AS c1392, COUNT(*) AS c3892 +144,9744,9744,291,"SELECT t1.department_id AS c3966, SUM(t1.id) AS c1392, COUNT(*) AS c3892 FROM books AS t0 CROSS JOIN employees AS t1 WHERE t1.department_id != 12 GROUP BY t1.department_id;" -145,3072,283,2,"SELECT t1.department_id AS c6376, t1.id AS c3596 +145,2444,3832,211,"SELECT t1.department_id AS c6376, t1.id AS c3596 FROM books AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id WHERE ((t0.id < 1 OR t1.id IS NOT NULL) AND (t0.id != 3 AND t1.department_id <= 35));" -146,3325,163,5,"SELECT departments.id +146,1590,1590,185,"SELECT departments.id FROM departments GROUP BY departments.id ORDER BY departments.id DESC;" -147,12750,343,110,"SELECT regions.id +147,9987,12750,336,"SELECT regions.id FROM departments FULL JOIN employees ON departments.id = employees.id CROSS JOIN regions;" -148,6250,268,20,"SELECT books.id, books.price AS c5525, regions.id +148,6250,6250,409,"SELECT books.id, books.price AS c5525, regions.id FROM books CROSS JOIN regions WHERE books.price < 69;" -149,102500,278,422,"SELECT t0.region_id AS c6318 +149,102500,102500,442,"SELECT t0.region_id AS c6318 FROM customers AS t0 WHERE t0.id > 78 ORDER BY t0.region_id DESC;" -150,1519000,1214,1040,"SELECT t0.id, t1.id AS c921 +150,1130500,1130500,1135,"SELECT t0.id, t1.id AS c921 FROM regions AS t0 CROSS JOIN customers AS t1 WHERE t1.region_id IN (5, 9, 51) GROUP BY t0.id, t1.id;" -151,4014888,11011,0,"SELECT regions.id, users.age, orders.id +151,1310829,4014888,2184,"SELECT regions.id, users.age, orders.id FROM regions RIGHT JOIN users ON regions.id = users.id FULL JOIN orders ON users.id = orders.id WHERE ((orders.customer_id BETWEEN 283 AND 359 AND users.id IN (10, 17, 17, 39)) OR (users.id IN (14, 16, 64, 75) AND users.id >= 81)) ORDER BY orders.id ASC, regions.id DESC, users.age ASC;" -152,12160,277,55,"SELECT departments.id, employees.department_id, employees.id +152,12160,12160,286,"SELECT departments.id, employees.department_id, employees.id FROM departments CROSS JOIN employees ORDER BY employees.id ASC;" -153,239300,1323,1500,"SELECT t1.id, t0.region_id, t0.id +153,239300,239300,1501,"SELECT t1.id, t0.region_id, t0.id FROM customers AS t0 CROSS JOIN books AS t1;" -154,5655,174,10,"SELECT regions.id, SUM(regions.id) AS c8443 +154,3226,3226,171,"SELECT regions.id, SUM(regions.id) AS c8443 FROM regions WHERE (regions.id >= 1 OR (regions.id >= 8 OR regions.id = 5)) GROUP BY regions.id ORDER BY regions.id ASC;" -155,681356,1097,2,"SELECT markets.region +155,1308138,1554232,1496,"SELECT markets.region FROM markets LEFT JOIN orders ON markets.id = orders.id JOIN employees ON markets.id = employees.id GROUP BY markets.region;" -156,4001220,3942,10,"SELECT t1.customer_id, t1.id AS c2544, t0.id AS c7170 +156,1307140,4001220,1259,"SELECT t1.customer_id, t1.id AS c2544, t0.id AS c7170 FROM regions AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id;" -157,675750,1912,4840,"SELECT t1.region_id, t2.id +157,141171,675750,1773,"SELECT t1.region_id, t2.id FROM users AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id CROSS JOIN regions AS t2 WHERE t0.id IS NULL;" -158,5727,298,7,"SELECT t1.id, t0.id AS c3888, t2.id AS c5161 +158,4574,12322,208,"SELECT t1.id, t0.id AS c3888, t2.id AS c5161 FROM employees AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id JOIN books AS t2 ON t0.id = t2.id WHERE t0.id IS NULL;" -159,2253028,2641,3,"SELECT orders.customer_id AS c3770, departments.id AS c4567, COUNT(*) AS c2771 +159,1307045,2251640,1418,"SELECT orders.customer_id AS c3770, departments.id AS c4567, COUNT(*) AS c2771 FROM departments LEFT JOIN orders ON departments.id = orders.id WHERE ((orders.customer_id NOT BETWEEN 115 AND 380 OR departments.id IS NULL) OR orders.id = 174) GROUP BY orders.customer_id, departments.id;" -160,610000,1128,5000,"SELECT t0.id, t0.customer_id AS c1926 +160,610000,610000,1199,"SELECT t0.id, t0.customer_id AS c1926 FROM orders AS t0;" -161,91868,354,33,"SELECT t1.region AS c961, t2.id +161,91868,1210558,361,"SELECT t1.region AS c961, t2.id FROM employees AS t0 CROSS JOIN markets AS t1 JOIN customers AS t2 ON t1.id = t2.id;" -162,1466,157,3,"SELECT employees.id, employees.department_id +162,1466,1466,150,"SELECT employees.id, employees.department_id FROM employees WHERE ((employees.id NOT IN (5, 67, 68) AND employees.department_id = 28) OR (employees.id > 4 AND employees.department_id > 32));" -163,948104,1813,2,"SELECT markets.region, COUNT(*), COUNT(*) +163,127054,1849979,485,"SELECT markets.region, COUNT(*), COUNT(*) FROM users CROSS JOIN markets LEFT JOIN customers ON markets.id = customers.id WHERE users.age >= 1 GROUP BY markets.region;" -164,433,184,3,"SELECT markets.id, markets.note AS c529, markets.region +164,433,433,151,"SELECT markets.id, markets.note AS c529, markets.region FROM markets WHERE (markets.region = 'EUROPE' OR markets.id <= 91) ORDER BY markets.region ASC, markets.id ASC, markets.note ASC;" -165,1896,151,3,"SELECT books.id, COUNT(books.price), SUM(books.id) +165,822,822,167,"SELECT books.id, COUNT(books.price), SUM(books.id) FROM books GROUP BY books.id;" -166,2328,149,9,"SELECT regions.id +166,2328,2328,153,"SELECT regions.id FROM regions WHERE regions.id NOT IN (2, 95) ORDER BY regions.id ASC;" -167,52196,252,0,"SELECT t0.id +167,52196,52196,244,"SELECT t0.id FROM customers AS t0 WHERE ((t0.region_id > 32 AND t0.id = 78) AND (t0.id >= 20 OR t0.id IS NULL));" -168,158668,1265,1,"SELECT t1.region AS c6909, t1.note, SUM(t2.id) +168,111678,157908,1393,"SELECT t1.region AS c6909, t1.note, SUM(t2.id) FROM customers AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN departments AS t2 WHERE ((t0.id = 89 OR t1.id BETWEEN 49 AND 71) AND t0.id IS NOT NULL) GROUP BY t1.region, t1.note ORDER BY t1.region ASC;" -169,2482,273,2,"SELECT departments.id +169,1558,2113,195,"SELECT departments.id FROM departments RIGHT JOIN markets ON departments.id = markets.id WHERE departments.id != 1 GROUP BY departments.id;" -170,2253325,2928,505,"SELECT t1.id AS c5737, t0.customer_id +170,1306995,2251590,3084,"SELECT t1.id AS c5737, t0.customer_id FROM orders AS t0 LEFT JOIN departments AS t1 ON t0.id = t1.id GROUP BY t1.id, t0.customer_id ORDER BY t0.customer_id DESC, t1.id ASC;" -171,37006,538,110,"SELECT employees.id AS c3715 +171,24626,37006,372,"SELECT employees.id AS c3715 FROM regions CROSS JOIN employees FULL JOIN books ON regions.id = books.id;" -172,436875,673,0,"SELECT t0.id, t0.department_id AS c3676, t1.region_id +172,111497,436875,360,"SELECT t0.id, t0.department_id AS c3676, t1.region_id FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id WHERE t0.department_id >= 57 ORDER BY t0.id DESC, t1.region_id ASC;" -173,27106700,19617,85000,"SELECT orders.customer_id +173,27106700,27106700,21320,"SELECT orders.customer_id FROM users CROSS JOIN orders ORDER BY orders.customer_id DESC;" -174,2475,163,3,"SELECT users.id, users.age +174,2475,2475,161,"SELECT users.id, users.age FROM users WHERE users.id IN (3, 11, 12) ORDER BY users.age DESC, users.id DESC;" -175,2292,433,1,"SELECT books.id, employees.id, employees.department_id +175,2273,3832,200,"SELECT books.id, employees.id, employees.department_id FROM employees RIGHT JOIN books ON employees.id = books.id WHERE books.price = 77;" -176,932,152,2,"SELECT books.price, SUM(books.price) AS c5357 +176,563,563,150,"SELECT books.price, SUM(books.price) AS c5357 FROM books WHERE books.price >= 66 GROUP BY books.price;" -177,3692,162,14,"SELECT users.id, users.age AS c4847 +177,3692,3692,179,"SELECT users.id, users.age AS c4847 FROM users WHERE (users.age < 16 OR users.age < 71) ORDER BY users.id ASC, users.age DESC;" -178,3009,140,17,"SELECT users.age AS c7380, users.id +178,3009,3009,158,"SELECT users.age AS c7380, users.id FROM users ORDER BY users.id DESC;" -179,358416,524,500,"SELECT customers.id, customers.region_id +179,221288,221288,370,"SELECT customers.id, customers.region_id FROM customers WHERE ((customers.id != 141 OR customers.region_id != 10) OR (customers.id NOT IN (197) OR customers.region_id IN (8))) GROUP BY customers.id, customers.region_id;" -180,365500,614,500,"SELECT customers.id AS c95, customers.region_id +180,225000,225000,809,"SELECT customers.id AS c95, customers.region_id FROM customers GROUP BY customers.id, customers.region_id ORDER BY customers.region_id DESC;" -181,4976800,3138,500,"SELECT customers.region_id AS c397, customers.id AS c5003, SUM(books.id) +181,3199300,3199300,3994,"SELECT customers.region_id AS c397, customers.id AS c5003, SUM(books.id) FROM customers CROSS JOIN books CROSS JOIN departments GROUP BY customers.region_id, customers.id;" -182,1111000,1136,500,"SELECT t1.id AS c6022, t0.id +182,970500,175675500,2055,"SELECT t1.id AS c6022, t0.id FROM orders AS t0 JOIN customers AS t1 ON t0.id = t1.id GROUP BY t1.id, t0.id;" -183,81600,287,1,"SELECT customers.id, COUNT(customers.id), COUNT(customers.id) +183,65900,65900,231,"SELECT customers.id, COUNT(customers.id), COUNT(customers.id) FROM customers WHERE customers.id = 24 GROUP BY customers.id;" -184,297800,441,500,"SELECT books.price AS c5308, customers.region_id AS c1694 +184,297800,297800,451,"SELECT books.price AS c5308, customers.region_id AS c1694 FROM books CROSS JOIN customers WHERE books.price <= 55;" -185,610,134,5,"SELECT t0.id AS c9527 +185,610,610,159,"SELECT t0.id AS c9527 FROM departments AS t0;" -186,14820,282,18,"SELECT users.id +186,5081,14820,206,"SELECT users.id FROM regions FULL JOIN users ON regions.id = users.id;" -187,15530,290,8,"SELECT users.id, regions.id, users.age AS c4755 +187,5791,15530,221,"SELECT users.id, regions.id, users.age AS c4755 FROM users LEFT JOIN regions ON users.id = regions.id WHERE ((regions.id != 31 AND users.age <= 64) OR users.id >= 66) ORDER BY users.age DESC;" -188,7942,327,0,"SELECT t2.price AS c5573, COUNT(*) +188,4810,7573,355,"SELECT t2.price AS c5573, COUNT(*) FROM employees AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 WHERE (t2.price > 55 AND t0.id BETWEEN 66 AND 69) GROUP BY t2.price;" -189,57522,266,0,"SELECT markets.id AS c7660 +189,57522,155422,505,"SELECT markets.id AS c7660 FROM markets JOIN customers ON markets.id = customers.id WHERE (markets.note IS NULL AND (customers.id = 198 AND markets.region IN ('AMERICA', 'EUROPE')));" -190,3325,146,5,"SELECT departments.id +190,1590,1590,157,"SELECT departments.id FROM departments GROUP BY departments.id ORDER BY departments.id DESC;" -191,27819,351,55,"SELECT departments.id, employees.id +191,19044,21594,338,"SELECT departments.id, employees.id FROM departments JOIN regions ON departments.id = regions.id CROSS JOIN employees WHERE employees.id IS NOT NULL GROUP BY departments.id, employees.id ORDER BY departments.id DESC, employees.id ASC;" -192,1658,507,3,"SELECT books.id, markets.region +192,1658,1658,282,"SELECT books.id, markets.region FROM markets CROSS JOIN books WHERE markets.region = 'EUROPE';" -193,83620,1178,11,"SELECT customers.region_id, regions.id +193,114435,414820,288,"SELECT customers.region_id, regions.id FROM users JOIN regions ON users.id = regions.id LEFT JOIN customers ON regions.id = customers.id;" -194,5620982,10404,25000,"SELECT t2.id +194,5620982,5620982,9666,"SELECT t2.id FROM customers AS t0 CROSS JOIN markets AS t1 CROSS JOIN users AS t2 WHERE ((t1.id IN (3) OR t2.age != 1) OR (t1.id != 2 OR t2.id > 61));" -195,1553466,8004,10,"SELECT t0.id +195,1307400,1553466,2051,"SELECT t0.id FROM regions AS t0 FULL JOIN books AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t1.id = t2.id;" -196,1006340,585,30,"SELECT customers.region_id, books.id, SUM(regions.id), SUM(customers.region_id) +196,617630,618900,790,"SELECT customers.region_id, books.id, SUM(regions.id), SUM(customers.region_id) FROM books JOIN regions ON books.id = regions.id CROSS JOIN customers GROUP BY customers.region_id, books.id;" -197,70841,337,3,"SELECT t0.price AS c8028, t2.id +197,70476,158466,399,"SELECT t0.price AS c8028, t2.id FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id JOIN regions AS t2 ON t1.id = t2.id;" -198,2074,129,17,"SELECT t0.age AS c2991 +198,2074,2074,125,"SELECT t0.age AS c2991 FROM users AS t0;" -199,30140,292,30,"SELECT t1.id, t0.id +199,30140,30140,291,"SELECT t1.id, t0.id FROM regions AS t0 CROSS JOIN users AS t1 WHERE (t1.age BETWEEN 33 AND 33 OR t1.id IN (12, 49, 95));" -200,2428,163,6,"SELECT employees.department_id +200,2428,2428,155,"SELECT employees.department_id FROM employees WHERE ((employees.id > 66 OR employees.id IN (33)) OR employees.department_id IN (6, 12, 12, 50)) ORDER BY employees.department_id DESC;" -201,610000,1297,5000,"SELECT orders.customer_id, orders.id +201,610000,610000,1150,"SELECT orders.customer_id, orders.id FROM orders;" -202,6401,205,6,"SELECT employees.id AS c3304, users.id AS c2088 +202,4879,16712,213,"SELECT employees.id AS c3304, users.id AS c2088 FROM users JOIN employees ON users.id = employees.id WHERE ((users.age IN (42, 64) OR users.id < 16) AND users.id != 99) GROUP BY employees.id, users.id;" -203,1896,159,3,"SELECT books.id, books.price +203,822,822,373,"SELECT books.id, books.price FROM books GROUP BY books.id, books.price;" -204,70446,345,3,"SELECT t0.id AS c8592, t1.region +204,69372,155822,320,"SELECT t0.id AS c8592, t1.region FROM customers AS t0 JOIN markets AS t1 ON t0.id = t1.id GROUP BY t0.id, t1.region;" -205,10416100,12344,1,"SELECT t1.id AS c8725, SUM(t1.id), COUNT(*) +205,9975800,9975800,11468,"SELECT t1.id AS c8725, SUM(t1.id), COUNT(*) FROM users AS t0 CROSS JOIN orders AS t1 WHERE (t0.age IN (33, 64) AND t1.id = 156) GROUP BY t1.id;" -206,61000,229,500,"SELECT t0.id AS c4257 +206,61000,61000,282,"SELECT t0.id AS c4257 FROM customers AS t0;" -207,8356600,3939,0,"SELECT t1.customer_id, t0.department_id +207,8356600,1931301600,3875,"SELECT t1.customer_id, t0.department_id FROM employees AS t0 CROSS JOIN orders AS t1 JOIN customers AS t2 ON t1.id = t2.id WHERE t0.department_id IS NULL;" -208,3776,263,3,"SELECT books.price AS c3720, employees.department_id, books.id +208,2388,3776,373,"SELECT books.price AS c3720, employees.department_id, books.id FROM employees RIGHT JOIN books ON employees.id = books.id;" -209,69182,369,2,"SELECT t2.region, t1.id, COUNT(t2.id) +209,69533,156493,322,"SELECT t2.region, t1.id, COUNT(t2.id) FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id FULL JOIN markets AS t2 ON t0.id = t2.id WHERE t0.id < 1 GROUP BY t2.region, t1.id;" -210,2390300,2862,15000,"SELECT orders.id, books.id AS c7933, orders.customer_id +210,2390300,2390300,2800,"SELECT orders.id, books.id AS c7933, orders.customer_id FROM books CROSS JOIN orders;" -211,2984422200,2956573,0,"SELECT t2.region_id, t2.id, t0.customer_id +211,26935700,2984422200,41119,"SELECT t2.region_id, t2.id, t0.customer_id FROM orders AS t0 CROSS JOIN users AS t1 LEFT JOIN customers AS t2 ON t1.id = t2.id WHERE t2.region_id >= 23;" -212,1551896,2851,3,"SELECT orders.id +212,1306062,1550822,1393,"SELECT orders.id FROM books LEFT JOIN orders ON books.id = orders.id GROUP BY orders.id;" -213,1620,151,2,"SELECT t0.id +213,1620,1620,142,"SELECT t0.id FROM regions AS t0 WHERE t0.id IN (4, 4, 9, 88) ORDER BY t0.id ASC;" -214,51596600,97240,247665,"SELECT orders.id, orders.customer_id, employees.id +214,51596600,51596600,95942,"SELECT orders.id, orders.customer_id, employees.id FROM orders CROSS JOIN employees CROSS JOIN departments WHERE orders.customer_id >= 52;" -215,805000,985,29,"SELECT t0.customer_id +215,805000,805000,1006,"SELECT t0.customer_id FROM orders AS t0 WHERE t0.id < 30;" -216,744,129,3,"SELECT departments.id +216,744,744,135,"SELECT departments.id FROM departments WHERE departments.id IN (1, 3, 4, 60);" -217,439260,709,3,"SELECT t0.id, t1.region_id +217,112147,437525,350,"SELECT t0.id, t1.region_id FROM employees AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id WHERE t1.region_id >= 8 GROUP BY t0.id, t1.region_id;" -218,1916,288,5,"SELECT books.price AS c5412, books.id, departments.id AS c9618 +218,1331,1916,188,"SELECT books.price AS c5412, books.id, departments.id AS c9618 FROM departments LEFT JOIN books ON departments.id = books.id;" -219,9485600,25795,45000,"SELECT t1.note, t0.customer_id AS c4395 +219,9485600,9485600,25727,"SELECT t1.note, t0.customer_id AS c4395 FROM orders AS t0 CROSS JOIN markets AS t1 CROSS JOIN books AS t2 WHERE t1.region IS NOT NULL;" -220,1931305120,1531952,45001,"SELECT customers.region_id, orders.id, employees.id +220,17063620,1931305120,29765,"SELECT customers.region_id, orders.id, employees.id FROM employees CROSS JOIN orders RIGHT JOIN customers ON employees.id = customers.id WHERE (customers.id IN (181) OR employees.id BETWEEN 3 AND 92) ORDER BY customers.region_id ASC;" -221,1133,157,0,"SELECT t0.id AS c9777 +221,1133,1133,142,"SELECT t0.id AS c9777 FROM regions AS t0 WHERE ((t0.id <= 5 OR t0.id IN (4, 12)) AND (t0.id = 9 AND t0.id NOT IN (2, 4, 5, 89))) ORDER BY t0.id ASC;" -222,6788,169,11,"SELECT t0.id, t0.department_id AS c2878, COUNT(t0.id), COUNT(*) AS c2633 +222,3764,3764,176,"SELECT t0.id, t0.department_id AS c2878, COUNT(t0.id), COUNT(*) AS c2633 FROM employees AS t0 WHERE ((t0.department_id IS NOT NULL OR t0.department_id IS NOT NULL) OR (t0.id > 26 OR t0.id = 52)) GROUP BY t0.id, t0.department_id;" -223,7431100,14977,55000,"SELECT t0.id +223,7431100,7431100,13982,"SELECT t0.id FROM orders AS t0 CROSS JOIN employees AS t1;" -224,1342,148,11,"SELECT employees.department_id +224,1342,1342,311,"SELECT employees.department_id FROM employees;" -225,1113982,1738,500,"SELECT orders.customer_id, customers.id AS c4775, employees.department_id AS c6986 +225,791024,4786342,1020,"SELECT orders.customer_id, customers.id AS c4775, employees.department_id AS c6986 FROM employees LEFT JOIN customers ON employees.id = customers.id JOIN orders ON employees.id = orders.id;" -226,3644,270,3,"SELECT books.id, regions.id, books.price AS c1520 +226,2374,3644,190,"SELECT books.id, regions.id, books.price AS c1520 FROM books LEFT JOIN regions ON books.id = regions.id WHERE ((regions.id < 10 OR books.price = 77) OR books.price > 60);" -227,1550422,6413,9,"SELECT orders.id, books.price, orders.customer_id AS c7568 +227,1305662,1550422,1899,"SELECT orders.id, books.price, orders.customer_id AS c7568 FROM orders FULL JOIN books ON orders.id = books.id WHERE orders.customer_id = 63;" -228,285106,1546,1000,"SELECT t1.id AS c1443, t2.region_id AS c2237 +228,283748,285106,1361,"SELECT t1.id AS c1443, t2.region_id AS c2237 FROM employees AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 WHERE ((t1.id < 3 OR t1.region = 'AMERICA') AND (t2.region_id IS NULL OR t1.note != 'North, South'));" -229,228379,592,0,"SELECT departments.id +229,112350,228445,447,"SELECT departments.id FROM departments LEFT JOIN customers ON departments.id = customers.id CROSS JOIN markets WHERE markets.region IS NULL ORDER BY departments.id ASC;" -230,685010,1055,17,"SELECT departments.id, users.age AS c5139, orders.id +230,1309060,2258260,2184,"SELECT departments.id, users.age AS c5139, orders.id FROM departments JOIN users ON departments.id = users.id FULL JOIN orders ON users.id = orders.id;" -231,610,158,5,"SELECT departments.id +231,610,610,163,"SELECT departments.id FROM departments;" -232,656679,819,16,"SELECT customers.id, COUNT(*) AS c3789 +232,116575,651154,521,"SELECT customers.id, COUNT(*) AS c3789 FROM customers RIGHT JOIN users ON customers.id = users.id GROUP BY customers.id ORDER BY customers.id DESC;" -233,317325,812,1353,"SELECT departments.id +233,317095,317650,896,"SELECT departments.id FROM departments JOIN markets ON departments.id = markets.id CROSS JOIN customers WHERE (customers.region_id NOT IN (10, 10) AND (customers.id <= 80 OR departments.id >= 1));" -234,3466,261,10,"SELECT t0.note +234,2226,3466,203,"SELECT t0.note FROM markets AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id;" -235,68764,248,1,"SELECT t1.region_id AS c5511 +235,68764,155544,271,"SELECT t1.region_id AS c5511 FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id WHERE (t0.price NOT BETWEEN 66 AND 94 OR (t0.id > 3 AND t1.region_id = 10));" -236,4366616,4378,17,"SELECT t1.department_id AS c2338, t0.customer_id +236,1311747,4366616,1382,"SELECT t1.department_id AS c2338, t0.customer_id FROM orders AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN users AS t2 ON t1.id = t2.id ORDER BY t1.department_id ASC;" -237,669120,2379,5010,"SELECT regions.id +237,134541,669120,1920,"SELECT regions.id FROM users FULL JOIN customers ON users.id = customers.id CROSS JOIN regions;" -238,268722,690,0,"SELECT customers.region_id +238,103844,436222,814,"SELECT customers.region_id FROM customers LEFT JOIN employees ON customers.id = employees.id WHERE (employees.id IN (38) AND customers.region_id != 5);" -239,4425,166,6,"SELECT employees.id +239,2690,2690,155,"SELECT employees.id FROM employees WHERE employees.id > 5 GROUP BY employees.id ORDER BY employees.id DESC;" -240,169984,385,3,"SELECT t0.price AS c6143, SUM(t2.id) +240,95524,95524,401,"SELECT t0.price AS c6143, SUM(t2.id) FROM books AS t0 CROSS JOIN users AS t1 CROSS JOIN departments AS t2 GROUP BY t0.price;" -241,3875500,5272,25000,"SELECT customers.id, customers.region_id, departments.id +241,3759405,3875500,4164,"SELECT customers.id, customers.region_id, departments.id FROM customers RIGHT JOIN departments ON customers.id = departments.id CROSS JOIN orders;" -242,5320,321,0,"SELECT books.id +242,5320,5320,288,"SELECT books.id FROM books CROSS JOIN employees WHERE (employees.id != 33 AND (employees.id < 1 AND employees.department_id < 12));" -243,680223,1097,5,"SELECT employees.department_id, books.price AS c4475, books.id AS c4655 +243,680155,4353843,1006,"SELECT employees.department_id, books.price AS c4475, books.id AS c4655 FROM orders JOIN employees ON orders.id = employees.id RIGHT JOIN books ON employees.id = books.id WHERE ((orders.id >= 13 AND orders.customer_id != 233) OR (orders.id > 39 AND orders.customer_id <= 359)) ORDER BY books.id DESC;" -244,5632,333,0,"SELECT regions.id +244,4604,12322,221,"SELECT regions.id FROM regions RIGHT JOIN employees ON regions.id = employees.id LEFT JOIN markets ON employees.id = markets.id WHERE (regions.id NOT BETWEEN 2 AND 8 AND markets.note = 'Fast lane');" -245,433,172,1,"SELECT markets.note, markets.region, markets.id +245,433,433,251,"SELECT markets.note, markets.region, markets.id FROM markets WHERE ((markets.region != 'AMERICA' AND markets.region = 'AMERICA') OR markets.id < 2) ORDER BY markets.note DESC, markets.id ASC, markets.region DESC;" -246,1244,145,9,"SELECT regions.id AS c713 +246,1244,1244,130,"SELECT regions.id AS c713 FROM regions WHERE regions.id BETWEEN 2 AND 45;" -247,1551608,2262,3,"SELECT t0.id AS c7208 +247,1306088,1550848,1439,"SELECT t0.id AS c7208 FROM orders AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id WHERE t0.customer_id NOT IN (244, 365) GROUP BY t0.id ORDER BY t0.id ASC;" -248,6459284,8849,5000,"SELECT t1.id, COUNT(*), SUM(t0.id) AS c7387 +248,1311645,6455252,3301,"SELECT t1.id, COUNT(*), SUM(t0.id) AS c7387 FROM users AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id WHERE ((t1.customer_id = 494 AND t1.customer_id != 145) OR (t0.age > 53 OR t1.customer_id IS NOT NULL)) GROUP BY t1.id;" -249,5692,274,3,"SELECT markets.region, users.age +249,3633,5692,210,"SELECT markets.region, users.age FROM markets LEFT JOIN users ON markets.id = users.id WHERE users.id < 17;" -250,401220,748,10,"SELECT customers.id, customers.region_id +250,110640,401220,381,"SELECT customers.id, customers.region_id FROM regions LEFT JOIN customers ON regions.id = customers.id;" -251,4001775,4600,42,"SELECT orders.customer_id, regions.id, orders.id AS c3346 +251,1307530,4001775,2243,"SELECT orders.customer_id, regions.id, orders.id AS c3346 FROM regions FULL JOIN orders ON regions.id = orders.id WHERE orders.id <= 42 ORDER BY regions.id ASC;" -252,7310933,21711,39,"SELECT orders.id AS c8852, orders.customer_id, books.price AS c8813 +252,4641438,7310933,7529,"SELECT orders.id AS c8852, orders.customer_id, books.price AS c8813 FROM books CROSS JOIN orders FULL JOIN departments ON orders.id = departments.id WHERE ((orders.customer_id = 163 OR orders.id IN (69, 96, 152)) AND (orders.id IS NOT NULL AND books.id IS NOT NULL)) ORDER BY orders.id DESC;" -253,121234,453,40,"SELECT customers.id +253,121234,3916834,377,"SELECT customers.id FROM regions CROSS JOIN employees JOIN customers ON employees.id = customers.id WHERE (employees.id IS NOT NULL AND customers.id >= 65);" -254,3776,262,11,"SELECT markets.id AS c3977, employees.department_id +254,2418,3776,173,"SELECT markets.id AS c3977, employees.department_id FROM markets FULL JOIN employees ON markets.id = employees.id;" -255,3160000,2415,5000,"SELECT orders.id, orders.customer_id AS c7286 +255,1975000,1975000,2385,"SELECT orders.id, orders.customer_id AS c7286 FROM orders GROUP BY orders.id, orders.customer_id;" -256,10520,274,9,"SELECT t0.id, t1.id AS c9218 +256,7496,7496,274,"SELECT t0.id, t1.id AS c9218 FROM markets AS t0 CROSS JOIN employees AS t1 WHERE t1.department_id IN (5, 12, 33) GROUP BY t0.id, t1.id;" -257,3936,183,3,"SELECT t1.price, t0.id AS c7828 +257,2652,3922,190,"SELECT t1.price, t0.id AS c7828 FROM regions AS t0 JOIN books AS t1 ON t0.id = t1.id GROUP BY t1.price, t0.id;" -258,75782,410,3,"SELECT customers.region_id +258,75739,651158,681,"SELECT customers.region_id FROM customers JOIN users ON customers.id = users.id RIGHT JOIN markets ON customers.id = markets.id GROUP BY customers.region_id ORDER BY customers.region_id DESC;" -259,110500,255,500,"SELECT customers.id +259,110500,110500,245,"SELECT customers.id FROM customers ORDER BY customers.id ASC;" -260,72814,282,118,"SELECT customers.region_id, customers.id +260,72814,72814,261,"SELECT customers.region_id, customers.id FROM customers WHERE ((customers.region_id IS NULL OR customers.id >= 198) AND customers.region_id <= 4);" -261,156962,566,3,"SELECT customers.region_id AS c4278, books.id +261,109628,155888,313,"SELECT customers.region_id AS c4278, books.id FROM books LEFT JOIN customers ON books.id = customers.id GROUP BY customers.region_id, books.id ORDER BY books.id ASC;" -262,15960,322,110,"SELECT t1.department_id AS c5186, t0.id, t1.id +262,15960,15960,264,"SELECT t1.department_id AS c5186, t0.id, t1.id FROM regions AS t0 CROSS JOIN employees AS t1;" -263,2973,330,5,"SELECT markets.id, departments.id, regions.id +263,3077,6483,244,"SELECT markets.id, departments.id, regions.id FROM regions LEFT JOIN departments ON regions.id = departments.id JOIN markets ON regions.id = markets.id WHERE markets.note != 'Old World' ORDER BY markets.id ASC, regions.id DESC;" -264,160636,939,500,"SELECT users.id AS c6920, markets.region AS c5238, users.age AS c1104 +264,112407,160636,449,"SELECT users.id AS c6920, markets.region AS c5238, users.age AS c1104 FROM markets RIGHT JOIN users ON markets.id = users.id RIGHT JOIN customers ON markets.id = customers.id;" -265,14820,312,17,"SELECT t1.id, t0.id AS c2693 +265,5081,14820,204,"SELECT t1.id, t0.id AS c2693 FROM users AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id;" -266,59400,248,1,"SELECT customers.id AS c604, customers.region_id +266,59400,59400,227,"SELECT customers.id AS c604, customers.region_id FROM customers WHERE customers.id = 135 ORDER BY customers.id DESC, customers.region_id DESC;" -267,422,139,0,"SELECT books.id +267,422,422,120,"SELECT books.id FROM books WHERE books.price IS NULL;" -268,107001400,33265,11,"SELECT employees.department_id, SUM(orders.customer_id) +268,76971400,76971400,122051,"SELECT employees.department_id, SUM(orders.customer_id) FROM orders CROSS JOIN books CROSS JOIN employees GROUP BY employees.department_id;" -269,366,135,3,"SELECT books.price AS c8205 +269,366,366,128,"SELECT books.price AS c8205 FROM books;" -270,610000,1139,5000,"SELECT orders.id AS c7922 +270,610000,610000,1109,"SELECT orders.id AS c7922 FROM orders;" -271,534702,1221,0,"SELECT orders.id AS c8902, departments.id AS c4368, orders.customer_id +271,534702,2250622,1173,"SELECT orders.id AS c8902, departments.id AS c4368, orders.customer_id FROM orders JOIN departments ON orders.id = departments.id WHERE ((orders.customer_id = 483 AND departments.id > 4) AND orders.id != 24);" -272,850932,2012,2,"SELECT orders.customer_id, orders.id, COUNT(*), COUNT(*) +272,850563,1550563,2028,"SELECT orders.customer_id, orders.id, COUNT(*), COUNT(*) FROM orders RIGHT JOIN books ON orders.id = books.id WHERE books.id != 1 GROUP BY orders.customer_id, orders.id;" -273,6952,177,11,"SELECT t0.id, SUM(t0.department_id), COUNT(t0.department_id) +273,3256,3256,156,"SELECT t0.id, SUM(t0.department_id), COUNT(t0.department_id) FROM employees AS t0 GROUP BY t0.id;" -274,2066,148,2,"SELECT t0.id AS c7269, t0.age +274,2066,2066,148,"SELECT t0.id AS c7269, t0.age FROM users AS t0 WHERE t0.age IN (33, 33);" -275,545750,1512,0,"SELECT orders.id AS c6877 +275,545750,545750,1457,"SELECT orders.id AS c6877 FROM orders WHERE ((orders.customer_id <= 56 OR orders.customer_id != 343) AND (orders.customer_id IN (52, 86) AND orders.customer_id >= 224));" -276,6766700,1560,11,"SELECT users.age AS c7960, SUM(users.id) +276,3536700,3536700,2753,"SELECT users.age AS c7960, SUM(users.id) FROM customers CROSS JOIN users GROUP BY users.age ORDER BY users.age ASC;" -277,1143,182,1,"SELECT t0.id +277,774,774,173,"SELECT t0.id FROM departments AS t0 WHERE ((t0.id IN (2, 10, 59) OR t0.id IS NULL) AND (t0.id != 5 AND t0.id IS NOT NULL)) GROUP BY t0.id ORDER BY t0.id DESC;" -278,8638,307,5,"SELECT t1.id AS c8751 +278,4334,8638,449,"SELECT t1.id AS c8751 FROM users AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id WHERE (t0.age IS NULL OR (t1.id != 5 OR t1.id < 14));" -279,851732,1199,0,"SELECT regions.id, orders.id, COUNT(*), SUM(orders.customer_id) +279,851363,4001263,1051,"SELECT regions.id, orders.id, COUNT(*), SUM(orders.customer_id) FROM orders RIGHT JOIN regions ON orders.id = regions.id WHERE ((regions.id IN (8, 9, 22) AND regions.id <= 6) AND orders.id IN (39, 49, 104, 106)) GROUP BY regions.id, orders.id;" -280,6451822,7192,0,"SELECT orders.customer_id +280,1308743,6451822,2349,"SELECT orders.customer_id FROM users FULL JOIN orders ON users.id = orders.id WHERE ((users.age > 33 AND orders.customer_id < 84) AND (users.id = 15 OR orders.id IN (68, 128, 128, 198)));" -281,433,170,0,"SELECT t0.id, t0.note, t0.region +281,433,433,147,"SELECT t0.id, t0.note, t0.region FROM markets AS t0 WHERE ((t0.note = 'unknown' AND t0.id != 1) AND t0.id > 67) ORDER BY t0.id ASC, t0.note DESC;" -282,13612010,12919,9,"SELECT employees.id, orders.customer_id AS c5471, books.price +282,4643352,13612010,5295,"SELECT employees.id, orders.customer_id AS c5471, books.price FROM books CROSS JOIN orders LEFT JOIN employees ON orders.id = employees.id WHERE employees.id > 66;" -283,521733,2237,0,"SELECT books.id, markets.id, books.price AS c2723 +283,415563,521733,813,"SELECT books.id, markets.id, books.price AS c2723 FROM books CROSS JOIN customers FULL JOIN markets ON customers.id = markets.id WHERE ((markets.id > 55 AND customers.region_id NOT IN (8, 9, 10)) AND markets.region IN ('AMERICA', 'EUROPE')) ORDER BY books.id DESC, markets.id ASC;" -284,1962,176,2,"SELECT t0.region AS c1153, SUM(t0.id) AS c3569 +284,822,822,143,"SELECT t0.region AS c1153, SUM(t0.id) AS c3569 FROM markets AS t0 GROUP BY t0.region ORDER BY t0.region ASC;" -285,10836,413,0,"SELECT employees.id AS c5654, users.id +285,9478,10836,448,"SELECT employees.id AS c5654, users.id FROM markets FULL JOIN employees ON markets.id = employees.id CROSS JOIN users WHERE ((markets.note = 'Fast lane' AND employees.department_id NOT BETWEEN 11 AND 37) AND (users.id != 4 AND users.age <= 443));" -286,226143,997,3,"SELECT customers.id, COUNT(customers.id) AS c434, COUNT(*) +286,109668,225774,380,"SELECT customers.id, COUNT(customers.id) AS c434, COUNT(*) FROM customers FULL JOIN departments ON customers.id = departments.id WHERE departments.id BETWEEN 2 AND 4 GROUP BY customers.id ORDER BY customers.id DESC;" -287,2962,263,5,"SELECT t2.id, t1.id, t0.id +287,3181,5072,240,"SELECT t2.id, t1.id, t0.id FROM books AS t0 JOIN departments AS t1 ON t0.id = t1.id RIGHT JOIN regions AS t2 ON t1.id = t2.id WHERE t0.id IS NULL;" -288,5327,193,1,"SELECT regions.id AS c1673 +288,5252,15332,194,"SELECT regions.id AS c1673 FROM users JOIN regions ON users.id = regions.id WHERE (users.age IN (33, 47, 98) OR users.id > 54);" -289,2493,286,3,"SELECT departments.id, books.price AS c551 +289,2493,2493,854,"SELECT departments.id, books.price AS c551 FROM departments CROSS JOIN books WHERE departments.id = 5 ORDER BY departments.id DESC;" -290,680542,1100,6,"SELECT t2.region, t1.department_id, t0.customer_id AS c8493 +290,680174,4353832,1013,"SELECT t2.region, t1.department_id, t0.customer_id AS c8493 FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id WHERE t0.customer_id < 239;" -291,12324520,4720,10,"SELECT orders.id, COUNT(orders.id), SUM(regions.id) +291,12321160,68844660,4574,"SELECT orders.id, COUNT(orders.id), SUM(regions.id) FROM users CROSS JOIN orders JOIN regions ON orders.id = regions.id GROUP BY orders.id;" -292,1962,172,3,"SELECT t0.region, t0.id, SUM(t0.id), COUNT(*) +292,888,888,174,"SELECT t0.region, t0.id, SUM(t0.id), COUNT(*) FROM markets AS t0 GROUP BY t0.region, t0.id ORDER BY t0.region ASC, t0.id DESC;" -293,5692,311,0,"SELECT t0.age, t1.id +293,3603,5692,601,"SELECT t0.age, t1.id FROM users AS t0 FULL JOIN books AS t1 ON t0.id = t1.id WHERE (t0.age = 18 AND (t0.age != 123 AND t1.id <= 89));" -294,1564,165,3,"SELECT books.price AS c6589, books.id, COUNT(*) +294,848,848,176,"SELECT books.price AS c6589, books.id, COUNT(*) FROM books WHERE ((books.price > 77 OR books.id < 3) OR (books.price IN (49, 55, 55, 77) OR books.price IN (26, 66, 66, 68))) GROUP BY books.price, books.id;" -295,6105,182,5,"SELECT users.id, SUM(users.age), COUNT(users.id) +295,4370,9075,193,"SELECT users.id, SUM(users.age), COUNT(users.id) FROM users JOIN departments ON users.id = departments.id GROUP BY users.id;" -296,432,162,3,"SELECT t0.region, t0.id AS c2775, t0.note +296,432,432,179,"SELECT t0.region, t0.id AS c2775, t0.note FROM markets AS t0 ORDER BY t0.id DESC;" -297,694750,1166,21,"SELECT t2.department_id +297,685683,6467110,1086,"SELECT t2.department_id FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id FULL JOIN employees AS t2 ON t0.id = t2.id WHERE ((t2.id NOT BETWEEN 4 AND 6 OR t1.age != 21) OR t0.id <= 61);" -298,988,157,4,"SELECT departments.id +298,988,988,127,"SELECT departments.id FROM departments WHERE ((departments.id NOT IN (4, 4, 5, 7) OR departments.id NOT IN (2, 5)) OR (departments.id NOT BETWEEN 3 AND 27 OR departments.id IS NULL));" -299,3273,295,0,"SELECT books.price, employees.id AS c7128 +299,2455,3843,339,"SELECT books.price, employees.id AS c7128 FROM employees RIGHT JOIN books ON employees.id = books.id WHERE ((books.id > 68 OR books.id >= 52) AND (employees.department_id < 6 OR employees.department_id != 1)) ORDER BY books.price DESC;" -300,1276883,3244,4965,"SELECT orders.id AS c9121 +300,1306863,2251983,2076,"SELECT orders.id AS c9121 FROM orders LEFT JOIN departments ON orders.id = departments.id RIGHT JOIN books ON departments.id = books.id WHERE orders.customer_id <= 497 ORDER BY orders.id ASC;" -301,5241,175,3,"SELECT users.id, COUNT(markets.id), SUM(markets.id) +301,3967,6092,180,"SELECT users.id, COUNT(markets.id), SUM(markets.id) FROM users JOIN markets ON users.id = markets.id GROUP BY users.id;" -302,79260,419,15,"SELECT regions.id, customers.region_id, employees.id +302,75362,410460,975,"SELECT regions.id, customers.region_id, employees.id FROM regions FULL JOIN employees ON regions.id = employees.id JOIN customers ON regions.id = customers.id ORDER BY customers.region_id ASC, employees.id ASC, regions.id ASC;" -303,1832,150,8,"SELECT employees.id, employees.department_id +303,1832,1832,418,"SELECT employees.id, employees.department_id FROM employees WHERE ((employees.id <= 33 OR employees.id = 3) OR (employees.department_id NOT IN (5) AND employees.id = 67));" -304,1342,135,11,"SELECT employees.department_id AS c3770 +304,1342,1342,122,"SELECT employees.department_id AS c3770 FROM employees;" -305,2896,173,2,"SELECT regions.id AS c2143, COUNT(*), COUNT(*) +305,1822,1822,181,"SELECT regions.id AS c2143, COUNT(*), COUNT(*) FROM regions WHERE regions.id IN (3, 10, 89) GROUP BY regions.id;" -306,4531,199,5,"SELECT employees.id, employees.department_id, SUM(employees.id), SUM(employees.department_id) AS c8963 +306,3457,6272,196,"SELECT employees.id, employees.department_id, SUM(employees.id), SUM(employees.department_id) AS c8963 FROM employees JOIN departments ON employees.id = departments.id WHERE (departments.id <= 3 OR (employees.id = 68 OR employees.id <= 6)) GROUP BY employees.id, employees.department_id;" -307,678682,1225,3,"SELECT t0.note AS c4138 +307,1307657,1553663,2258,"SELECT t0.note AS c4138 FROM markets AS t0 JOIN regions AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id WHERE ((t2.customer_id = 298 OR t0.region = 'AMERICA') OR t0.region != 'AMERICA') GROUP BY t0.note;" -308,1808,156,1,"SELECT departments.id, COUNT(*) AS c9125 +308,1092,1092,182,"SELECT departments.id, COUNT(*) AS c9125 FROM departments WHERE (departments.id > 56 OR departments.id = 4) GROUP BY departments.id ORDER BY departments.id DESC;" -309,932,163,1,"SELECT t0.id AS c7541, COUNT(t0.id) +309,563,563,159,"SELECT t0.id AS c7541, COUNT(t0.id) FROM markets AS t0 WHERE (t0.note != 'Fast lane' AND (t0.id = 3 OR t0.note = 'Old World')) GROUP BY t0.id;" -310,7102108,12990,7,"SELECT t1.id, t2.id, SUM(t2.id) +310,1422102,7099420,1516,"SELECT t1.id, t2.id, SUM(t2.id) FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t0.id = t2.id WHERE (t2.customer_id < 243 OR (t2.id >= 38 AND t2.customer_id = 302)) GROUP BY t1.id, t2.id ORDER BY t2.id ASC;" -311,1550433,2827,2,"SELECT t0.region, t1.customer_id AS c7183 +311,1305703,1550433,2695,"SELECT t0.region, t1.customer_id AS c7183 FROM markets AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id WHERE ((t0.id <= 3 OR t0.note = 'Fast lane') AND (t0.note != 'North, South' OR t0.note = 'Fast lane')) ORDER BY t0.region ASC;" -312,681210,1215,5,"SELECT t1.id, t0.id +312,1308302,2255560,1538,"SELECT t1.id, t0.id FROM departments AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id JOIN employees AS t2 ON t1.id = t2.id;" -313,681466,1112,2,"SELECT employees.id, orders.id AS c4699, orders.customer_id +313,678803,2255816,930,"SELECT employees.id, orders.id AS c4699, orders.customer_id FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN employees ON departments.id = employees.id WHERE employees.department_id NOT BETWEEN 5 AND 33;" -314,4228,179,13,"SELECT t0.age, t0.id +314,2840,2840,202,"SELECT t0.age, t0.id FROM users AS t0 WHERE (t0.age > 5 AND t0.id != 2) GROUP BY t0.age, t0.id;" -315,3354,192,5,"SELECT t0.id +315,2638,5548,212,"SELECT t0.id FROM regions AS t0 JOIN departments AS t1 ON t0.id = t1.id WHERE t1.id IS NOT NULL GROUP BY t0.id;" -316,1896,147,3,"SELECT books.id +316,822,822,200,"SELECT books.id FROM books GROUP BY books.id;" -317,1550366,2810,5000,"SELECT orders.id AS c7996, books.price +317,1305606,1550366,1943,"SELECT orders.id AS c7996, books.price FROM books FULL JOIN orders ON books.id = orders.id;" -318,8406,346,4,"SELECT books.price, books.id +318,4668,7332,216,"SELECT books.price, books.id FROM books FULL JOIN employees ON books.id = employees.id RIGHT JOIN regions ON employees.id = regions.id GROUP BY books.price, books.id;" -319,932,163,3,"SELECT books.id AS c9150, books.price, COUNT(books.id) +319,563,563,159,"SELECT books.id AS c9150, books.price, COUNT(books.id) FROM books WHERE ((books.price IN (76, 77) AND books.id BETWEEN 1 AND 96) OR books.price IN (55, 66, 77)) GROUP BY books.id, books.price;" -320,71482,247,11,"SELECT customers.region_id, employees.id +320,71482,436342,260,"SELECT customers.region_id, employees.id FROM customers JOIN employees ON customers.id = employees.id;" -321,808000,991,10,"SELECT t0.id AS c6071, COUNT(*), COUNT(*) AS c7241 +321,702625,702625,996,"SELECT t0.id AS c6071, COUNT(*), COUNT(*) AS c7241 FROM regions AS t0 CROSS JOIN customers AS t1 WHERE ((t1.id >= 59 OR t0.id IS NULL) AND t1.id = 126) GROUP BY t0.id;" -322,158466,723,500,"SELECT t1.region_id, t1.id, t2.price +322,111676,403466,440,"SELECT t1.region_id, t1.id, t2.price FROM regions AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN books AS t2 ON t0.id = t2.id;" -323,90703,528,3,"SELECT t0.region_id +323,113190,650703,322,"SELECT t0.region_id FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id WHERE t1.id < 14 ORDER BY t0.region_id ASC;" -324,680894,1183,3,"SELECT orders.id AS c4187, regions.id +324,678469,2255244,1202,"SELECT orders.id AS c4187, regions.id FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN regions ON departments.id = regions.id WHERE regions.id < 4;" -325,2992,402,4,"SELECT markets.note AS c7216, books.price +325,2991,5932,295,"SELECT markets.note AS c7216, books.price FROM departments CROSS JOIN markets LEFT JOIN books ON markets.id = books.id WHERE ((departments.id != 2 AND markets.note = 'Old World') AND (departments.id BETWEEN 1 AND 5 OR departments.id >= 41));" -326,2074,142,17,"SELECT t0.age +326,2074,2074,122,"SELECT t0.age FROM users AS t0;" -327,11679,179,11,"SELECT t0.age +327,6154,6154,204,"SELECT t0.age FROM users AS t0 GROUP BY t0.age ORDER BY t0.age ASC;" -328,44723198,91834,54310,"SELECT employees.department_id +328,16894318,44723198,32898,"SELECT employees.department_id FROM orders CROSS JOIN employees LEFT JOIN regions ON employees.id = regions.id WHERE ((employees.id <= 25 OR orders.id NOT BETWEEN 47 AND 184) OR orders.id IS NULL);" -329,3583,199,3,"SELECT t0.id +329,3583,5858,180,"SELECT t0.id FROM markets AS t0 JOIN users AS t1 ON t0.id = t1.id WHERE (t0.id != 2 OR t0.id != 1) ORDER BY t0.id ASC;" -330,131853,2259,0,"SELECT books.price, employees.id, COUNT(*) +330,111330,158984,597,"SELECT books.price, employees.id, COUNT(*) FROM customers LEFT JOIN books ON customers.id = books.id FULL JOIN employees ON customers.id = employees.id WHERE ((customers.id > 96 AND employees.department_id != 32) AND (employees.id > 5 OR books.id IS NOT NULL)) GROUP BY books.price, employees.id ORDER BY books.price DESC, employees.id DESC;" -331,1755762000,1746374,50490,"SELECT t2.region_id, t2.id +331,15545500,1755762000,23081,"SELECT t2.region_id, t2.id FROM orders AS t0 CROSS JOIN regions AS t1 FULL JOIN customers AS t2 ON t1.id = t2.id;" -332,1610,133,10,"SELECT regions.id AS c7728 +332,1610,1610,143,"SELECT regions.id AS c7728 FROM regions WHERE regions.id IS NOT NULL;" -333,2478160,315148,6,"SELECT departments.id, COUNT(*) +333,1415505,2476425,2558,"SELECT departments.id, COUNT(*) FROM orders FULL JOIN departments ON orders.id = departments.id LEFT JOIN customers ON departments.id = customers.id GROUP BY departments.id;" -334,1775,159,10,"SELECT regions.id AS c1480 +334,1775,1775,216,"SELECT regions.id AS c1480 FROM regions WHERE regions.id IS NOT NULL ORDER BY regions.id DESC;" -335,433,148,0,"SELECT books.price, books.id +335,433,433,195,"SELECT books.price, books.id FROM books WHERE (books.price < 44 AND (books.price IN (55, 55, 66, 66) AND books.price != 77)) ORDER BY books.price DESC, books.id DESC;" -336,1222,143,1,"SELECT t0.department_id +336,1222,1222,152,"SELECT t0.department_id FROM employees AS t0 WHERE ((t0.department_id = 12 AND t0.department_id < 35) AND (t0.id IN (4) OR t0.department_id != 31));" -337,2432,152,10,"SELECT users.id, users.age +337,2432,2432,132,"SELECT users.id, users.age FROM users WHERE users.age IN (1, 21, 33, 64);" -338,1732,155,9,"SELECT t0.id +338,1732,1732,220,"SELECT t0.id FROM regions AS t0 WHERE ((t0.id NOT BETWEEN 1 AND 15 OR t0.id < 10) AND (t0.id <= 40 OR t0.id != 3));" -339,744,145,1,"SELECT departments.id +339,744,744,137,"SELECT departments.id FROM departments WHERE ((departments.id <= 98 OR departments.id > 1) AND (departments.id IS NULL OR departments.id IN (3, 3, 30, 91)));" -340,155932,606,13,"SELECT customers.region_id AS c4276, markets.region AS c7002, COUNT(*), COUNT(*) AS c3968 +340,109333,155563,454,"SELECT customers.region_id AS c4276, markets.region AS c7002, COUNT(*), COUNT(*) AS c3968 FROM customers LEFT JOIN markets ON customers.id = markets.id WHERE (markets.note = 'Fast lane' OR customers.id IS NOT NULL) GROUP BY customers.region_id, markets.region;" -341,76376,408,16,"SELECT customers.id, SUM(customers.region_id) +341,112731,161092,473,"SELECT customers.id, SUM(customers.region_id) FROM markets JOIN users ON markets.id = users.id RIGHT JOIN customers ON users.id = customers.id GROUP BY customers.id;" -342,1222,161,0,"SELECT employees.department_id, employees.id +342,1222,1222,143,"SELECT employees.department_id, employees.id FROM employees WHERE ((employees.id >= 66 OR employees.id != 2) AND (employees.id > 69 AND employees.department_id = 33));" -343,3009,154,17,"SELECT users.age +343,3009,3009,151,"SELECT users.age FROM users ORDER BY users.age ASC;" -344,2122,341,3,"SELECT t1.price AS c605, t0.id AS c1651, t1.id +344,2101,3522,207,"SELECT t1.price AS c605, t0.id AS c1651, t1.id FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id WHERE (t1.id != 3 OR t1.id = 3);" -345,155432,493,3,"SELECT books.id, customers.id AS c5626 +345,109172,155432,323,"SELECT books.id, customers.id AS c5626 FROM books LEFT JOIN customers ON books.id = customers.id ORDER BY customers.id DESC;" -346,29564,444,0,"SELECT t1.region, t2.id, COUNT(t1.id) +346,10087,29195,383,"SELECT t1.region, t2.id, COUNT(t1.id) FROM employees AS t0 CROSS JOIN markets AS t1 FULL JOIN regions AS t2 ON t1.id = t2.id WHERE t0.department_id = 36 GROUP BY t1.region, t2.id;" -347,6452676,5531,0,"SELECT users.age AS c6973 +347,1309597,6452676,2002,"SELECT users.age AS c6973 FROM users RIGHT JOIN orders ON users.id = orders.id WHERE users.id > 94;" -348,525100,1524,1187,"SELECT t1.id, t0.id +348,525100,525100,1405,"SELECT t1.id, t0.id FROM departments AS t0 CROSS JOIN customers AS t1 WHERE ((t1.id BETWEEN 28 AND 146 AND t1.id IN (46, 50, 104, 146)) OR (t0.id < 4 AND t1.region_id NOT IN (2, 2, 10, 12))) ORDER BY t1.id DESC;" -349,4208,350,5,"SELECT regions.id, departments.id AS c6050, COUNT(*), COUNT(*) +349,2832,5592,230,"SELECT regions.id, departments.id AS c6050, COUNT(*), COUNT(*) FROM regions RIGHT JOIN departments ON regions.id = departments.id WHERE departments.id IS NOT NULL GROUP BY regions.id, departments.id ORDER BY departments.id ASC;" -350,8110,276,11,"SELECT employees.department_id, departments.id AS c3106, COUNT(*) AS c7893 +350,3612,6375,207,"SELECT employees.department_id, departments.id AS c3106, COUNT(*) AS c7893 FROM departments RIGHT JOIN employees ON departments.id = employees.id GROUP BY employees.department_id, departments.id;" -351,32852932,60056,261,"SELECT t0.customer_id, t2.id AS c6006, t2.age +351,7680023,32852932,15314,"SELECT t0.customer_id, t2.id AS c6006, t2.age FROM orders AS t0 CROSS JOIN departments AS t1 FULL JOIN users AS t2 ON t1.id = t2.id WHERE (t1.id >= 3 AND (t0.id < 55 OR t0.id < 88));" -352,5464128,3748,80,"SELECT t1.customer_id, t1.id, t0.id +352,5464128,5464128,4017,"SELECT t1.customer_id, t1.id, t0.id FROM departments AS t0 CROSS JOIN orders AS t1 WHERE (t1.customer_id IN (426) OR (t1.customer_id IS NULL OR t0.id >= 57));" -353,61000,245,500,"SELECT t0.id, t0.region_id +353,61000,61000,225,"SELECT t0.id, t0.region_id FROM customers AS t0;" -354,3760,176,1,"SELECT t0.department_id, t0.id +354,2372,2372,163,"SELECT t0.department_id, t0.id FROM employees AS t0 WHERE (t0.department_id >= 31 AND (t0.department_id > 34 OR t0.id < 33)) GROUP BY t0.department_id, t0.id ORDER BY t0.department_id DESC;" -355,62200,362,2,"SELECT customers.id, customers.region_id +355,62200,62200,221,"SELECT customers.id, customers.region_id FROM customers WHERE customers.id IN (153, 183);" -356,5326,320,5,"SELECT employees.department_id, departments.id +356,3413,5326,220,"SELECT employees.department_id, departments.id FROM books LEFT JOIN employees ON books.id = employees.id FULL JOIN departments ON employees.id = departments.id;" -357,2870000,3657,4914,"SELECT orders.id AS c1456, orders.customer_id, COUNT(*), COUNT(orders.customer_id) +357,1940000,1940000,2539,"SELECT orders.id AS c1456, orders.customer_id, COUNT(*), COUNT(orders.customer_id) FROM orders WHERE (orders.id > 86 OR orders.customer_id IS NULL) GROUP BY orders.id, orders.customer_id;" -358,4260,153,0,"SELECT t0.department_id, t0.id AS c8666, COUNT(*) AS c1170, COUNT(*) +358,2525,2525,143,"SELECT t0.department_id, t0.id AS c8666, COUNT(*) AS c1170, COUNT(*) FROM employees AS t0 WHERE t0.id IS NULL GROUP BY t0.department_id, t0.id;" -359,6320,159,10,"SELECT regions.id, COUNT(regions.id) AS c1004, COUNT(regions.id) AS c9498 +359,2960,2960,139,"SELECT regions.id, COUNT(regions.id) AS c1004, COUNT(regions.id) AS c9498 FROM regions GROUP BY regions.id;" -360,366,145,3,"SELECT t0.id, t0.note AS c1949, t0.region +360,366,366,122,"SELECT t0.id, t0.note AS c1949, t0.region FROM markets AS t0;" -361,178001600,53741,11,"SELECT t2.department_id, COUNT(t2.id), SUM(t0.id) +361,130976600,130976600,209436,"SELECT t2.department_id, COUNT(t2.id), SUM(t0.id) FROM departments AS t0 CROSS JOIN orders AS t1 CROSS JOIN employees AS t2 GROUP BY t2.department_id;" -362,785551896,851162,3,"SELECT markets.id AS c6682, markets.note AS c3493 +362,785550822,785550822,812242,"SELECT markets.id AS c6682, markets.note AS c3493 FROM orders CROSS JOIN customers RIGHT JOIN markets ON customers.id = markets.id GROUP BY markets.id, markets.note;" -363,433,159,3,"SELECT books.price +363,433,433,150,"SELECT books.price FROM books WHERE books.price IS NOT NULL ORDER BY books.price DESC;" -364,69900,242,44,"SELECT customers.region_id AS c2372 +364,69900,69900,260,"SELECT customers.region_id AS c2372 FROM customers WHERE customers.region_id IN (4, 89) ORDER BY customers.region_id DESC;" -365,831472,1381,3,"SELECT t0.id AS c4468, t1.customer_id, t0.region +365,1373762,1705422,2392,"SELECT t0.id AS c4468, t1.customer_id, t0.region FROM markets AS t0 FULL JOIN orders AS t1 ON t0.id = t1.id JOIN customers AS t2 ON t0.id = t2.id WHERE t0.id <= 17;" -366,2310,178,1,"SELECT users.id, users.age +366,2310,2310,147,"SELECT users.id, users.age FROM users WHERE (users.id = 15 OR (users.id != 3 AND users.id IS NULL));" -367,2074,151,17,"SELECT t0.age +367,2074,2074,319,"SELECT t0.age FROM users AS t0;" -368,12062,286,49,"SELECT t0.id, t1.age +368,12062,12062,330,"SELECT t0.id, t1.age FROM books AS t0 CROSS JOIN users AS t1 WHERE (t1.id = 96 OR (t1.age != 18 OR t0.price <= 61));" -369,850932,1083,0,"SELECT t0.id AS c4185, SUM(t0.id) +369,850563,1550563,1025,"SELECT t0.id AS c4185, SUM(t0.id) FROM markets AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id WHERE ((t0.id BETWEEN 1 AND 7 OR t0.note != 'North, South') AND (t0.note != 'Old World' AND t0.note IN ('ASIA', 'Old World', 'unknown'))) GROUP BY t0.id;" -370,422,154,2,"SELECT markets.note AS c2495, markets.id, markets.region +370,422,422,131,"SELECT markets.note AS c2495, markets.id, markets.region FROM markets WHERE ((markets.note = 'North, South' AND markets.note != 'North, South') OR markets.note != 'Fast lane');" -371,15960,288,110,"SELECT regions.id +371,15960,15960,288,"SELECT regions.id FROM regions CROSS JOIN employees;" -372,1293750,1736,3214,"SELECT t0.id +372,1293750,1293750,1586,"SELECT t0.id FROM orders AS t0 WHERE (t0.id <= 95 OR t0.customer_id BETWEEN 55 AND 369) ORDER BY t0.id DESC;" -373,316000,380,500,"SELECT customers.id, COUNT(customers.region_id) +373,175500,175500,366,"SELECT customers.id, COUNT(customers.region_id) FROM customers GROUP BY customers.id;" -374,9978000,5935,0,"SELECT orders.id AS c9907, COUNT(*) AS c8627 +374,6653000,6653000,5857,"SELECT orders.id AS c9907, COUNT(*) AS c8627 FROM departments CROSS JOIN orders WHERE ((orders.id >= 79 OR orders.customer_id IN (63, 185, 226, 480)) AND departments.id IS NULL) GROUP BY orders.id ORDER BY orders.id ASC;" -375,957500,1679,4999,"SELECT t0.customer_id AS c3627, t0.id AS c1197 +375,957500,957500,1391,"SELECT t0.customer_id AS c3627, t0.id AS c1197 FROM orders AS t0 WHERE (t0.customer_id <= 56 OR t0.id > 1);" -376,10438,379,9,"SELECT t1.id, t0.id, t1.department_id +376,5325,14288,226,"SELECT t1.id, t0.id, t1.department_id FROM regions AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id FULL JOIN departments AS t2 ON t0.id = t2.id WHERE t0.id NOT IN (3);" -377,98212,508,341,"SELECT customers.id, customers.region_id, SUM(customers.region_id), SUM(customers.id) +377,77608,77608,397,"SELECT customers.id, customers.region_id, SUM(customers.region_id), SUM(customers.id) FROM customers WHERE ((customers.region_id != 9 OR customers.id = 20) AND (customers.region_id >= 3 AND customers.id > 5)) GROUP BY customers.id, customers.region_id ORDER BY customers.id DESC, customers.region_id ASC;" -378,1896,155,3,"SELECT markets.region, markets.id AS c5516 +378,822,822,338,"SELECT markets.region, markets.id AS c5516 FROM markets GROUP BY markets.region, markets.id;" -379,1342,142,11,"SELECT employees.department_id, employees.id +379,1342,1342,168,"SELECT employees.department_id, employees.id FROM employees;" -380,1692500,2838,4329,"SELECT orders.customer_id +380,1692500,1692500,2768,"SELECT orders.customer_id FROM orders WHERE (orders.id < 86 OR (orders.customer_id IN (21, 71) OR orders.customer_id NOT BETWEEN 371 AND 436)) ORDER BY orders.customer_id ASC;" -381,10354,279,34,"SELECT t0.age AS c6869, t0.id +381,10354,10354,276,"SELECT t0.age AS c6869, t0.id FROM users AS t0 CROSS JOIN markets AS t1 WHERE t1.note != 'Old World';" -382,1564,211,3,"SELECT t0.id AS c3548, t0.note, SUM(t0.id) AS c5991, COUNT(*) +382,848,848,192,"SELECT t0.id AS c3548, t0.note, SUM(t0.id) AS c5991, COUNT(*) FROM markets AS t0 WHERE ((t0.note IN ('Fast lane', 'Fast lane', 'Old World') OR t0.region = 'AMERICA') OR t0.id NOT IN (1, 2, 3)) GROUP BY t0.id, t0.note;" -383,14597700,11406,8500,"SELECT customers.id, customers.region_id +383,14597700,14597700,11236,"SELECT customers.id, customers.region_id FROM regions CROSS JOIN customers CROSS JOIN users WHERE regions.id < 2;" -384,42520,429,9,"SELECT markets.id, books.id, COUNT(markets.id), COUNT(markets.id) +384,28390,28390,476,"SELECT markets.id, books.id, COUNT(markets.id), COUNT(markets.id) FROM regions CROSS JOIN books CROSS JOIN markets WHERE regions.id != 5 GROUP BY markets.id, books.id;" -385,2432,189,0,"SELECT t0.id AS c9611, t0.age AS c4657 +385,2432,2432,628,"SELECT t0.id AS c9611, t0.age AS c4657 FROM users AS t0 WHERE ((t0.id >= 3 OR t0.id IS NULL) AND t0.age IS NULL);" -386,1553776,2370,3,"SELECT markets.note, markets.region AS c394 +386,1307748,1553776,1919,"SELECT markets.note, markets.region AS c394 FROM markets LEFT JOIN orders ON markets.id = orders.id LEFT JOIN employees ON orders.id = employees.id;" -387,1832,254,0,"SELECT employees.id AS c1393 +387,1811,3832,187,"SELECT employees.id AS c1393 FROM employees LEFT JOIN books ON employees.id = books.id WHERE ((employees.id IS NULL AND books.id IS NOT NULL) AND (books.price = 55 AND employees.department_id = 12));" -388,3650500,11472,25000,"SELECT orders.customer_id AS c3285 +388,3650500,3650500,11216,"SELECT orders.customer_id AS c3285 FROM orders CROSS JOIN departments;" -389,679882,1202,2,"SELECT employees.id AS c6990 +389,1307562,1553832,1997,"SELECT employees.id AS c6990 FROM orders LEFT JOIN markets ON orders.id = markets.id JOIN employees ON orders.id = employees.id WHERE markets.id < 3;" -390,160080,1984,5000,"SELECT markets.note AS c1438, customers.region_id, markets.id AS c7869 +390,113850,160080,1935,"SELECT markets.note AS c1438, customers.region_id, markets.id AS c7869 FROM customers LEFT JOIN markets ON customers.id = markets.id CROSS JOIN regions;" -391,2253325,2732,5,"SELECT orders.customer_id AS c6961, departments.id +391,1306995,2251590,1312,"SELECT orders.customer_id AS c6961, departments.id FROM departments LEFT JOIN orders ON departments.id = orders.id GROUP BY orders.customer_id, departments.id ORDER BY departments.id DESC;" -392,63126,581,11,"SELECT employees.department_id AS c8803, SUM(users.id), SUM(employees.id) +392,43248,62366,417,"SELECT employees.department_id AS c8803, SUM(users.id), SUM(employees.id) FROM users CROSS JOIN employees LEFT JOIN markets ON employees.id = markets.id WHERE ((markets.id >= 18 OR users.id = 4) OR employees.id >= 2) GROUP BY employees.department_id ORDER BY employees.department_id ASC;" -393,291050000,530380,384231,"SELECT orders.customer_id, customers.id +393,291050000,291050000,536042,"SELECT orders.customer_id, customers.id FROM orders CROSS JOIN customers WHERE (orders.id IS NOT NULL AND (orders.customer_id <= 190 AND customers.region_id IN (1, 5, 8, 9)));" -394,1832,168,8,"SELECT t0.id +394,1832,1832,312,"SELECT t0.id FROM employees AS t0 WHERE t0.department_id NOT IN (6, 11, 32, 94);" -395,2390300,11567,15000,"SELECT orders.id, orders.customer_id, books.price AS c2061 +395,2390300,2390300,10589,"SELECT orders.id, orders.customer_id, books.price AS c2061 FROM orders CROSS JOIN books;" -396,422,160,0,"SELECT markets.region, markets.id, markets.note +396,422,422,141,"SELECT markets.region, markets.id, markets.note FROM markets WHERE markets.region IS NULL;" -397,316000,404,500,"SELECT t0.id, t0.region_id, SUM(t0.region_id) +397,175500,175500,531,"SELECT t0.id, t0.region_id, SUM(t0.region_id) FROM customers AS t0 GROUP BY t0.id, t0.region_id;" -398,70776,252,10,"SELECT regions.id, customers.id, customers.region_id +398,70776,401976,402,"SELECT regions.id, customers.id, customers.region_id FROM regions JOIN customers ON regions.id = customers.id WHERE (customers.id NOT BETWEEN 18 AND 150 OR regions.id IN (1, 9, 10, 63));" -399,1808,162,1,"SELECT departments.id AS c2818, COUNT(departments.id), COUNT(departments.id) +399,1092,1092,165,"SELECT departments.id AS c2818, COUNT(departments.id), COUNT(departments.id) FROM departments WHERE departments.id <= 1 GROUP BY departments.id diff --git a/research/fuzz/cost_stats.py b/research/fuzz/cost_stats.py index 190a4d7..62ec851 100644 --- a/research/fuzz/cost_stats.py +++ b/research/fuzz/cost_stats.py @@ -31,7 +31,8 @@ from research.query_generator import DIALECTS, QueryGenerator, load_schema, render_query -_STATS_RE = re.compile(r"STATS plan_cost=(-?\d+) exec_us=(-?\d+) rows=(\d+)") +#STATS plan_cost=2074 naive_plan_cost=2074 exec_us=133 rows=17 +_STATS_RE = re.compile(r"STATS plan_cost=(-?\d+) naive_plan_cost=(-?\d+) exec_us=(-?\d+) rows=(\d+)") def _run_ours(cli: str, data_dir: str, query: str, jit: bool) -> subprocess.CompletedProcess: @@ -88,6 +89,10 @@ def main() -> None: query = QueryGenerator(schema, rng).generate() sql = render_query(query, pg) + ";" + if attempted%100==0: + print(f"collected={collected} attempted={attempted} skipped={skipped}", + flush=True) + cost: int | None = None rows: int | None = None samples: list[int] = [] diff --git a/research/research.ipynb b/research/research.ipynb index 454f982..bfed507 100644 --- a/research/research.ipynb +++ b/research/research.ipynb @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-05-31T16:14:53+03:00\n", + "2026-06-09T23:39:57+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -18,81 +18,75 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 4.44, 2.58, 1.61\n", - "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "Load Average: 0.33, 0.62, 1.01\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", "---------------------------------------------------------------------------------------------------------------\n", "Benchmark Time CPU Iterations UserCounters...\n", "---------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCost/SeqScan/1024/real_time \u001b[m\u001b[0;33m 79997 ns 78049 ns \u001b[m\u001b[0;36m 8741\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time \u001b[m\u001b[0;33m 144761 ns 142224 ns \u001b[m\u001b[0;36m 5232\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time \u001b[m\u001b[0;33m 338605 ns 327024 ns \u001b[m\u001b[0;36m 2056\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time \u001b[m\u001b[0;33m 813515 ns 787366 ns \u001b[m\u001b[0;36m 726\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time \u001b[m\u001b[0;33m 2055770 ns 1963689 ns \u001b[m\u001b[0;36m 575\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time \u001b[m\u001b[0;33m 3635850 ns 3580957 ns \u001b[m\u001b[0;36m 159\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time \u001b[m\u001b[0;33m 7848736 ns 7709842 ns \u001b[m\u001b[0;36m 101\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time \u001b[m\u001b[0;33m 14549342 ns 14285211 ns \u001b[m\u001b[0;36m 48\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time \u001b[m\u001b[0;33m 46805723 ns 44962657 ns \u001b[m\u001b[0;36m 24\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time \u001b[m\u001b[0;33m 110848 ns 109579 ns \u001b[m\u001b[0;36m 6051\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time \u001b[m\u001b[0;33m 175851 ns 174124 ns \u001b[m\u001b[0;36m 4178\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time \u001b[m\u001b[0;33m 315093 ns 312199 ns \u001b[m\u001b[0;36m 2166\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time \u001b[m\u001b[0;33m 673538 ns 667479 ns \u001b[m\u001b[0;36m 1078\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time \u001b[m\u001b[0;33m 1303801 ns 1294736 ns \u001b[m\u001b[0;36m 456\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time \u001b[m\u001b[0;33m 2952031 ns 2928449 ns \u001b[m\u001b[0;36m 256\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time \u001b[m\u001b[0;33m 7472369 ns 7365271 ns \u001b[m\u001b[0;36m 102\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time \u001b[m\u001b[0;33m 14015431 ns 13847255 ns \u001b[m\u001b[0;36m 58\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time \u001b[m\u001b[0;33m 27073700 ns 26782809 ns \u001b[m\u001b[0;36m 24\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time \u001b[m\u001b[0;33m 131940 ns 130699 ns \u001b[m\u001b[0;36m 5179\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time \u001b[m\u001b[0;33m 226190 ns 225141 ns \u001b[m\u001b[0;36m 2989\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time \u001b[m\u001b[0;33m 514393 ns 509783 ns \u001b[m\u001b[0;36m 1536\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time \u001b[m\u001b[0;33m 945676 ns 940030 ns \u001b[m\u001b[0;36m 718\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time \u001b[m\u001b[0;33m 1904450 ns 1892580 ns \u001b[m\u001b[0;36m 366\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time \u001b[m\u001b[0;33m 3678534 ns 3656980 ns \u001b[m\u001b[0;36m 197\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time \u001b[m\u001b[0;33m 7472132 ns 7428647 ns \u001b[m\u001b[0;36m 93\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time \u001b[m\u001b[0;33m 15381800 ns 15295836 ns \u001b[m\u001b[0;36m 46\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time \u001b[m\u001b[0;33m 41055491 ns 40717845 ns \u001b[m\u001b[0;36m 19\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time \u001b[m\u001b[0;33m 162085 ns 160916 ns \u001b[m\u001b[0;36m 4340\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time \u001b[m\u001b[0;33m 346371 ns 344873 ns \u001b[m\u001b[0;36m 2062\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time \u001b[m\u001b[0;33m 800255 ns 792542 ns \u001b[m\u001b[0;36m 883\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time \u001b[m\u001b[0;33m 1840524 ns 1830438 ns \u001b[m\u001b[0;36m 379\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time \u001b[m\u001b[0;33m 4673407 ns 4626060 ns \u001b[m\u001b[0;36m 164\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time \u001b[m\u001b[0;33m 10560526 ns 10441042 ns \u001b[m\u001b[0;36m 60\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time \u001b[m\u001b[0;33m 27512323 ns 27313637 ns \u001b[m\u001b[0;36m 26\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time \u001b[m\u001b[0;33m 76878972 ns 76256341 ns \u001b[m\u001b[0;36m 9\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time \u001b[m\u001b[0;33m 210729772 ns 208907082 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time \u001b[m\u001b[0;33m 367198 ns 365161 ns \u001b[m\u001b[0;36m 2007\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time \u001b[m\u001b[0;33m 714949 ns 711449 ns \u001b[m\u001b[0;36m 1030\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time \u001b[m\u001b[0;33m 1378878 ns 1372416 ns \u001b[m\u001b[0;36m 506\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time \u001b[m\u001b[0;33m 2970154 ns 2953446 ns \u001b[m\u001b[0;36m 233\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time \u001b[m\u001b[0;33m 7566779 ns 7487774 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time \u001b[m\u001b[0;33m 21294147 ns 21136412 ns \u001b[m\u001b[0;36m 28\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time \u001b[m\u001b[0;33m 58811825 ns 58334161 ns \u001b[m\u001b[0;36m 11\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time \u001b[m\u001b[0;33m 145317421 ns 144445410 ns \u001b[m\u001b[0;36m 5\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time \u001b[m\u001b[0;33m 341980080 ns 339244361 ns \u001b[m\u001b[0;36m 2\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time \u001b[m\u001b[0;33m 203598 ns 202661 ns \u001b[m\u001b[0;36m 3434\u001b[m lhs_rows=1.024k\u001b[m model_cost=141.312k\u001b[m output_rows=1.024k\u001b[m plan_cost=346.112k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time \u001b[m\u001b[0;33m 383152 ns 381209 ns \u001b[m\u001b[0;36m 1850\u001b[m lhs_rows=2.048k\u001b[m model_cost=282.624k\u001b[m output_rows=2.048k\u001b[m plan_cost=692.224k\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time \u001b[m\u001b[0;33m 762752 ns 757843 ns \u001b[m\u001b[0;36m 903\u001b[m lhs_rows=4.096k\u001b[m model_cost=565.248k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.38445M\u001b[m rhs_rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time \u001b[m\u001b[0;33m 1662913 ns 1651698 ns \u001b[m\u001b[0;36m 461\u001b[m lhs_rows=8.192k\u001b[m model_cost=1.1305M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.7689M\u001b[m rhs_rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time \u001b[m\u001b[0;33m 4006295 ns 3972214 ns \u001b[m\u001b[0;36m 191\u001b[m lhs_rows=16.384k\u001b[m model_cost=2.26099M\u001b[m output_rows=16.384k\u001b[m plan_cost=5.53779M\u001b[m rhs_rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time \u001b[m\u001b[0;33m 8204329 ns 8095465 ns \u001b[m\u001b[0;36m 82\u001b[m lhs_rows=32.768k\u001b[m model_cost=4.52198M\u001b[m output_rows=32.768k\u001b[m plan_cost=11.0756M\u001b[m rhs_rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time \u001b[m\u001b[0;33m 16943075 ns 16813719 ns \u001b[m\u001b[0;36m 43\u001b[m lhs_rows=65.536k\u001b[m model_cost=9.04397M\u001b[m output_rows=65.536k\u001b[m plan_cost=22.1512M\u001b[m rhs_rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time \u001b[m\u001b[0;33m 457941 ns 454351 ns \u001b[m\u001b[0;36m 1627\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time \u001b[m\u001b[0;33m 1326260 ns 1316630 ns \u001b[m\u001b[0;36m 462\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time \u001b[m\u001b[0;33m 4755416 ns 4716712 ns \u001b[m\u001b[0;36m 148\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time \u001b[m\u001b[0;33m 18824481 ns 18740105 ns \u001b[m\u001b[0;36m 39\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time \u001b[m\u001b[0;33m 69821057 ns 69534977 ns \u001b[m\u001b[0;36m 10\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time \u001b[m\u001b[0;33m 275065905 ns 274101250 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time \u001b[m\u001b[0;33m 161658 ns 160319 ns \u001b[m\u001b[0;36m 4263\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time \u001b[m\u001b[0;33m 391432 ns 386106 ns \u001b[m\u001b[0;36m 1896\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time \u001b[m\u001b[0;33m 1644326 ns 1610732 ns \u001b[m\u001b[0;36m 331\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time \u001b[m\u001b[0;33m 6994495 ns 6864530 ns \u001b[m\u001b[0;36m 87\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time \u001b[m\u001b[0;33m 27484957 ns 27127956 ns \u001b[m\u001b[0;36m 25\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time \u001b[m\u001b[0;33m 130720901 ns 129132758 ns \u001b[m\u001b[0;36m 5\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[0;32mOperatorCost/SeqScan/1024/real_time \u001b[m\u001b[0;33m 37629 ns 37491 ns \u001b[m\u001b[0;36m 18331\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time \u001b[m\u001b[0;33m 72904 ns 72542 ns \u001b[m\u001b[0;36m 10020\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time \u001b[m\u001b[0;33m 149078 ns 147494 ns \u001b[m\u001b[0;36m 4364\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time \u001b[m\u001b[0;33m 342105 ns 339455 ns \u001b[m\u001b[0;36m 1927\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time \u001b[m\u001b[0;33m 944473 ns 935009 ns \u001b[m\u001b[0;36m 837\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time \u001b[m\u001b[0;33m 2017875 ns 1998804 ns \u001b[m\u001b[0;36m 317\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time \u001b[m\u001b[0;33m 4946438 ns 4895355 ns \u001b[m\u001b[0;36m 131\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time \u001b[m\u001b[0;33m 11151818 ns 11034605 ns \u001b[m\u001b[0;36m 59\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time \u001b[m\u001b[0;33m 23816470 ns 23575784 ns \u001b[m\u001b[0;36m 30\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time \u001b[m\u001b[0;33m 73010 ns 72684 ns \u001b[m\u001b[0;36m 9776\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time \u001b[m\u001b[0;33m 132643 ns 132118 ns \u001b[m\u001b[0;36m 4789\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time \u001b[m\u001b[0;33m 254451 ns 253392 ns \u001b[m\u001b[0;36m 2735\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time \u001b[m\u001b[0;33m 528183 ns 525175 ns \u001b[m\u001b[0;36m 1327\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time \u001b[m\u001b[0;33m 1030577 ns 1025841 ns \u001b[m\u001b[0;36m 626\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time \u001b[m\u001b[0;33m 2219699 ns 2207102 ns \u001b[m\u001b[0;36m 320\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time \u001b[m\u001b[0;33m 4560355 ns 4535821 ns \u001b[m\u001b[0;36m 139\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time \u001b[m\u001b[0;33m 10006961 ns 9936819 ns \u001b[m\u001b[0;36m 64\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time \u001b[m\u001b[0;33m 19752857 ns 19634987 ns \u001b[m\u001b[0;36m 34\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time \u001b[m\u001b[0;33m 93864 ns 93490 ns \u001b[m\u001b[0;36m 5562\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time \u001b[m\u001b[0;33m 179235 ns 178627 ns \u001b[m\u001b[0;36m 3861\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time \u001b[m\u001b[0;33m 356387 ns 354765 ns \u001b[m\u001b[0;36m 1964\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time \u001b[m\u001b[0;33m 700870 ns 697982 ns \u001b[m\u001b[0;36m 988\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time \u001b[m\u001b[0;33m 1478362 ns 1470833 ns \u001b[m\u001b[0;36m 383\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time \u001b[m\u001b[0;33m 3033831 ns 3017459 ns \u001b[m\u001b[0;36m 223\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time \u001b[m\u001b[0;33m 6682282 ns 6638837 ns \u001b[m\u001b[0;36m 108\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time \u001b[m\u001b[0;33m 14104423 ns 14007623 ns \u001b[m\u001b[0;36m 41\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time \u001b[m\u001b[0;33m 34153739 ns 33892260 ns \u001b[m\u001b[0;36m 21\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time \u001b[m\u001b[0;33m 114633 ns 114236 ns \u001b[m\u001b[0;36m 6156\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time \u001b[m\u001b[0;33m 271031 ns 269939 ns \u001b[m\u001b[0;36m 2607\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time \u001b[m\u001b[0;33m 607491 ns 604728 ns \u001b[m\u001b[0;36m 1090\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time \u001b[m\u001b[0;33m 1353148 ns 1347248 ns \u001b[m\u001b[0;36m 506\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time \u001b[m\u001b[0;33m 3425096 ns 3405518 ns \u001b[m\u001b[0;36m 215\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time \u001b[m\u001b[0;33m 8128588 ns 8085581 ns \u001b[m\u001b[0;36m 89\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time \u001b[m\u001b[0;33m 21036047 ns 20881034 ns \u001b[m\u001b[0;36m 32\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time \u001b[m\u001b[0;33m 68694607 ns 68149827 ns \u001b[m\u001b[0;36m 11\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time \u001b[m\u001b[0;33m 195667437 ns 194198663 ns \u001b[m\u001b[0;36m 4\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time \u001b[m\u001b[0;33m 279850 ns 278798 ns \u001b[m\u001b[0;36m 2449\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time \u001b[m\u001b[0;33m 547978 ns 545873 ns \u001b[m\u001b[0;36m 1261\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time \u001b[m\u001b[0;33m 1112645 ns 1108182 ns \u001b[m\u001b[0;36m 606\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time \u001b[m\u001b[0;33m 2393267 ns 2381758 ns \u001b[m\u001b[0;36m 293\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time \u001b[m\u001b[0;33m 6024309 ns 5985839 ns \u001b[m\u001b[0;36m 128\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time \u001b[m\u001b[0;33m 16651256 ns 16529865 ns \u001b[m\u001b[0;36m 41\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time \u001b[m\u001b[0;33m 52569017 ns 52196226 ns \u001b[m\u001b[0;36m 13\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time \u001b[m\u001b[0;33m 134126306 ns 133168248 ns \u001b[m\u001b[0;36m 5\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time \u001b[m\u001b[0;33m 331639606 ns 329151453 ns \u001b[m\u001b[0;36m 2\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time \u001b[m\u001b[0;33m 159954 ns 159278 ns \u001b[m\u001b[0;36m 4422\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time \u001b[m\u001b[0;33m 303150 ns 301902 ns \u001b[m\u001b[0;36m 2251\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time \u001b[m\u001b[0;33m 606974 ns 604010 ns \u001b[m\u001b[0;36m 1075\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time \u001b[m\u001b[0;33m 1240293 ns 1232604 ns \u001b[m\u001b[0;36m 565\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time \u001b[m\u001b[0;33m 2840201 ns 2819090 ns \u001b[m\u001b[0;36m 243\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time \u001b[m\u001b[0;33m 7253468 ns 7190828 ns \u001b[m\u001b[0;36m 97\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time \u001b[m\u001b[0;33m 17894077 ns 17744853 ns \u001b[m\u001b[0;36m 46\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time \u001b[m\u001b[0;33m 353589 ns 351322 ns \u001b[m\u001b[0;36m 1913\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time \u001b[m\u001b[0;33m 1133881 ns 1126145 ns \u001b[m\u001b[0;36m 534\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time \u001b[m\u001b[0;33m 4047780 ns 4028194 ns \u001b[m\u001b[0;36m 171\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time \u001b[m\u001b[0;33m 15228342 ns 15163560 ns \u001b[m\u001b[0;36m 39\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time \u001b[m\u001b[0;33m 58972880 ns 58759088 ns \u001b[m\u001b[0;36m 12\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time \u001b[m\u001b[0;33m 239655377 ns 238650148 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time \u001b[m\u001b[0;33m 127064 ns 124736 ns \u001b[m\u001b[0;36m 5276\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time \u001b[m\u001b[0;33m 291643 ns 289230 ns \u001b[m\u001b[0;36m 2417\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time \u001b[m\u001b[0;33m 953553 ns 946151 ns \u001b[m\u001b[0;36m 765\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time \u001b[m\u001b[0;33m 5520151 ns 5445272 ns \u001b[m\u001b[0;36m 118\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time \u001b[m\u001b[0;33m 24979219 ns 24715855 ns \u001b[m\u001b[0;36m 28\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time \u001b[m\u001b[0;33m 112934816 ns 111900069 ns \u001b[m\u001b[0;36m 5\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", "\u001b[m" ] } @@ -111,11 +105,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "-rw-r--r-- 1 st users 40311 May 31 16:16 operator-cost.json\n", - "-rw-r--r-- 1 st users 33223 May 31 16:03 operator-cost-matched-calibrated-smoke.json\n", - "-rw-r--r-- 1 st users 33307 May 31 16:13 operator-cost-matched.json\n", - "-rw-r--r-- 1 st users 6149 May 31 15:08 operator-cost-matched-plan-cost-smoke.json\n", - "-rw-r--r-- 1 st users 2010 May 30 19:02 operator-cost-smoke.json\n" + "-rw-r--r-- 1 st users 40322 Jun 9 23:41 operator-cost.json\n", + "-rw-r--r-- 1 st users 33223 May 31 16:03 operator-cost-matched-calibrated-smoke.json\n", + "-rw-r--r-- 1 st users 33305 May 31 16:16 operator-cost-matched.json\n", + "-rw-r--r-- 1 st users 6149 May 31 15:08 operator-cost-matched-plan-cost-smoke.json\n", + "-rw-r--r-- 1 st users 2010 May 30 19:02 operator-cost-smoke.json\n" ] } ], @@ -125,10 +119,1077 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "2d033649", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'context': {'date': '2026-06-09T23:39:57+03:00',\n", + " 'host_name': 'nixos',\n", + " 'executable': './build-release/bin/benchmarks',\n", + " 'num_cpus': 8,\n", + " 'mhz_per_cpu': 4200,\n", + " 'cpu_scaling_enabled': True,\n", + " 'caches': [{'type': 'Data', 'level': 1, 'size': 49152, 'num_sharing': 2},\n", + " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", + " 'load_avg': [0.331543, 0.623535, 1.01465],\n", + " 'library_version': 'v1.9.0',\n", + " 'library_build_type': 'release',\n", + " 'json_schema_version': 1},\n", + " 'benchmarks': [{'name': 'OperatorCost/SeqScan/1024/real_time',\n", + " 'family_index': 0,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 18331,\n", + " 'real_time': 37628.93579271746,\n", + " 'cpu_time': 37491.17609513937,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 102400.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 102400.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/SeqScan/2048/real_time',\n", + " 'family_index': 1,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 10020,\n", + " 'real_time': 72903.61267470378,\n", + " 'cpu_time': 72541.76367265466,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 204800.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 204800.0,\n", + " 'rows': 2048.0},\n", + " {'name': 'OperatorCost/SeqScan/4096/real_time',\n", + " 'family_index': 2,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4364,\n", + " 'real_time': 149077.84784833947,\n", + " 'cpu_time': 147494.45623281397,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 409600.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 409600.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/SeqScan/8192/real_time',\n", + " 'family_index': 3,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1927,\n", + " 'real_time': 342105.1670973816,\n", + " 'cpu_time': 339454.6050856253,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 819200.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 819200.0,\n", + " 'rows': 8192.0},\n", + " {'name': 'OperatorCost/SeqScan/16384/real_time',\n", + " 'family_index': 4,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 837,\n", + " 'real_time': 944473.1648865611,\n", + " 'cpu_time': 935008.9928315411,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1638400.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 1638400.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/SeqScan/32768/real_time',\n", + " 'family_index': 5,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 317,\n", + " 'real_time': 2017874.6560967471,\n", + " 'cpu_time': 1998803.5678233458,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3276800.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 3276800.0,\n", + " 'rows': 32768.0},\n", + " {'name': 'OperatorCost/SeqScan/65536/real_time',\n", + " 'family_index': 6,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 131,\n", + " 'real_time': 4946438.267068113,\n", + " 'cpu_time': 4895354.954198475,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6553600.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 6553600.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/SeqScan/131072/real_time',\n", + " 'family_index': 7,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 59,\n", + " 'real_time': 11151817.93210144,\n", + " 'cpu_time': 11034604.779660998,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 13107200.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 13107200.0,\n", + " 'rows': 131072.0},\n", + " {'name': 'OperatorCost/SeqScan/262144/real_time',\n", + " 'family_index': 8,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/SeqScan/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 30,\n", + " 'real_time': 23816470.46713624,\n", + " 'cpu_time': 23575783.766666625,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26214400.0,\n", + " 'output_rows': 262144.0,\n", + " 'plan_cost': 26214400.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Filter/1024/real_time',\n", + " 'family_index': 9,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 9776,\n", + " 'real_time': 73010.3600680018,\n", + " 'cpu_time': 72684.05441898521,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 102400.0,\n", + " 'output_rows': 512.0,\n", + " 'plan_cost': 204800.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Filter/2048/real_time',\n", + " 'family_index': 10,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4789,\n", + " 'real_time': 132642.64752141281,\n", + " 'cpu_time': 132118.3029860095,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 204800.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 409600.0,\n", + " 'rows': 2048.0},\n", + " {'name': 'OperatorCost/Filter/4096/real_time',\n", + " 'family_index': 11,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2735,\n", + " 'real_time': 254451.37185068423,\n", + " 'cpu_time': 253392.1930530162,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 409600.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 819200.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Filter/8192/real_time',\n", + " 'family_index': 12,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1327,\n", + " 'real_time': 528182.7332362107,\n", + " 'cpu_time': 525174.8666164279,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 819200.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 1638400.0,\n", + " 'rows': 8192.0},\n", + " {'name': 'OperatorCost/Filter/16384/real_time',\n", + " 'family_index': 13,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 626,\n", + " 'real_time': 1030577.062292563,\n", + " 'cpu_time': 1025840.7140575078,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1638400.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 3276800.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Filter/32768/real_time',\n", + " 'family_index': 14,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 320,\n", + " 'real_time': 2219699.446868617,\n", + " 'cpu_time': 2207102.043749998,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3276800.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 6553600.0,\n", + " 'rows': 32768.0},\n", + " {'name': 'OperatorCost/Filter/65536/real_time',\n", + " 'family_index': 15,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 139,\n", + " 'real_time': 4560355.187088868,\n", + " 'cpu_time': 4535820.6115108,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6553600.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 13107200.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Filter/131072/real_time',\n", + " 'family_index': 16,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 64,\n", + " 'real_time': 10006960.781083763,\n", + " 'cpu_time': 9936818.984374985,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 13107200.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 26214400.0,\n", + " 'rows': 131072.0},\n", + " {'name': 'OperatorCost/Filter/262144/real_time',\n", + " 'family_index': 17,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Filter/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 34,\n", + " 'real_time': 19752857.20597158,\n", + " 'cpu_time': 19634987.35294109,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26214400.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 52428800.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Projection/1024/real_time',\n", + " 'family_index': 18,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5562,\n", + " 'real_time': 93863.53218365033,\n", + " 'cpu_time': 93489.92502696834,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 22528.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 124928.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Projection/2048/real_time',\n", + " 'family_index': 19,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 3861,\n", + " 'real_time': 179234.84356321077,\n", + " 'cpu_time': 178626.77570577548,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 45056.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 249856.0,\n", + " 'rows': 2048.0},\n", + " {'name': 'OperatorCost/Projection/4096/real_time',\n", + " 'family_index': 20,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1964,\n", + " 'real_time': 356387.378309584,\n", + " 'cpu_time': 354765.20315682417,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 90112.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 499712.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Projection/8192/real_time',\n", + " 'family_index': 21,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 988,\n", + " 'real_time': 700869.6093069869,\n", + " 'cpu_time': 697981.6255060721,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 180224.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 999424.0,\n", + " 'rows': 8192.0},\n", + " {'name': 'OperatorCost/Projection/16384/real_time',\n", + " 'family_index': 22,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 383,\n", + " 'real_time': 1478362.0443614565,\n", + " 'cpu_time': 1470832.856396862,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 360448.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 1998848.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Projection/32768/real_time',\n", + " 'family_index': 23,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 223,\n", + " 'real_time': 3033831.156999073,\n", + " 'cpu_time': 3017459.340807185,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 720896.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 3997696.0,\n", + " 'rows': 32768.0},\n", + " {'name': 'OperatorCost/Projection/65536/real_time',\n", + " 'family_index': 24,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 108,\n", + " 'real_time': 6682282.166568459,\n", + " 'cpu_time': 6638837.333333332,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1441792.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 7995392.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Projection/131072/real_time',\n", + " 'family_index': 25,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 41,\n", + " 'real_time': 14104422.85407221,\n", + " 'cpu_time': 14007622.82926831,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 2883584.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 15990784.0,\n", + " 'rows': 131072.0},\n", + " {'name': 'OperatorCost/Projection/262144/real_time',\n", + " 'family_index': 26,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Projection/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 21,\n", + " 'real_time': 34153738.76175311,\n", + " 'cpu_time': 33892259.61904768,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 5767168.0,\n", + " 'output_rows': 262144.0,\n", + " 'plan_cost': 31981568.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Sort/1024/real_time',\n", + " 'family_index': 27,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 6156,\n", + " 'real_time': 114632.56253664369,\n", + " 'cpu_time': 114235.66406757633,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 123904.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 226304.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Sort/2048/real_time',\n", + " 'family_index': 28,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2607,\n", + " 'real_time': 271030.7748304336,\n", + " 'cpu_time': 269938.7472190262,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 270336.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 475136.0,\n", + " 'rows': 2048.0},\n", + " {'name': 'OperatorCost/Sort/4096/real_time',\n", + " 'family_index': 29,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1090,\n", + " 'real_time': 607491.4275380194,\n", + " 'cpu_time': 604727.7247706426,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 585728.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 995328.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Sort/8192/real_time',\n", + " 'family_index': 30,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 506,\n", + " 'real_time': 1353148.0118422494,\n", + " 'cpu_time': 1347248.1798418993,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1261568.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 2080768.0,\n", + " 'rows': 8192.0},\n", + " {'name': 'OperatorCost/Sort/16384/real_time',\n", + " 'family_index': 31,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 215,\n", + " 'real_time': 3425096.1256560027,\n", + " 'cpu_time': 3405518.395348841,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 2703360.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 4341760.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Sort/32768/real_time',\n", + " 'family_index': 32,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 89,\n", + " 'real_time': 8128587.966209299,\n", + " 'cpu_time': 8085581.056179743,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 5767168.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 9043968.0,\n", + " 'rows': 32768.0},\n", + " {'name': 'OperatorCost/Sort/65536/real_time',\n", + " 'family_index': 33,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 32,\n", + " 'real_time': 21036046.65626335,\n", + " 'cpu_time': 20881033.562499817,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12255232.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 18808832.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Sort/131072/real_time',\n", + " 'family_index': 34,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 11,\n", + " 'real_time': 68694607.27268068,\n", + " 'cpu_time': 68149827.09090923,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 25952256.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 39059456.0,\n", + " 'rows': 131072.0},\n", + " {'name': 'OperatorCost/Sort/262144/real_time',\n", + " 'family_index': 35,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Sort/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4,\n", + " 'real_time': 195667436.74658936,\n", + " 'cpu_time': 194198662.99999988,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 54788096.0,\n", + " 'output_rows': 262144.0,\n", + " 'plan_cost': 81002496.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/Aggregation/1024/real_time',\n", + " 'family_index': 36,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2449,\n", + " 'real_time': 279850.0351074257,\n", + " 'cpu_time': 278797.8321764009,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 522240.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 624640.0,\n", + " 'rows': 1024.0},\n", + " {'name': 'OperatorCost/Aggregation/2048/real_time',\n", + " 'family_index': 37,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1261,\n", + " 'real_time': 547978.1998470603,\n", + " 'cpu_time': 545873.2402854833,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1044480.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 1249280.0,\n", + " 'rows': 2048.0},\n", + " {'name': 'OperatorCost/Aggregation/4096/real_time',\n", + " 'family_index': 38,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 606,\n", + " 'real_time': 1112644.844901711,\n", + " 'cpu_time': 1108182.447194716,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 2088960.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 2498560.0,\n", + " 'rows': 4096.0},\n", + " {'name': 'OperatorCost/Aggregation/8192/real_time',\n", + " 'family_index': 39,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 293,\n", + " 'real_time': 2393266.856598862,\n", + " 'cpu_time': 2381757.6996586947,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 4177920.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 4997120.0,\n", + " 'rows': 8192.0},\n", + " {'name': 'OperatorCost/Aggregation/16384/real_time',\n", + " 'family_index': 40,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 128,\n", + " 'real_time': 6024309.031090524,\n", + " 'cpu_time': 5985839.437500029,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 8355840.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 9994240.0,\n", + " 'rows': 16384.0},\n", + " {'name': 'OperatorCost/Aggregation/32768/real_time',\n", + " 'family_index': 41,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 41,\n", + " 'real_time': 16651256.390415678,\n", + " 'cpu_time': 16529865.097560914,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 16711680.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 19988480.0,\n", + " 'rows': 32768.0},\n", + " {'name': 'OperatorCost/Aggregation/65536/real_time',\n", + " 'family_index': 42,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 13,\n", + " 'real_time': 52569017.46123242,\n", + " 'cpu_time': 52196226.23076958,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 33423360.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 39976960.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCost/Aggregation/131072/real_time',\n", + " 'family_index': 43,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/131072/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5,\n", + " 'real_time': 134126305.60342221,\n", + " 'cpu_time': 133168247.79999904,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 66846720.0,\n", + " 'output_rows': 131072.0,\n", + " 'plan_cost': 79953920.0,\n", + " 'rows': 131072.0},\n", + " {'name': 'OperatorCost/Aggregation/262144/real_time',\n", + " 'family_index': 44,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/Aggregation/262144/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2,\n", + " 'real_time': 331639605.50155026,\n", + " 'cpu_time': 329151452.9999979,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 133693440.0,\n", + " 'output_rows': 262144.0,\n", + " 'plan_cost': 159907840.0,\n", + " 'rows': 262144.0},\n", + " {'name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", + " 'family_index': 45,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/1024/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 4422,\n", + " 'real_time': 159954.39688340446,\n", + " 'cpu_time': 159277.9552238794,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1024.0,\n", + " 'model_cost': 404480.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 609280.0,\n", + " 'rhs_rows': 1024.0},\n", + " {'name': 'OperatorCost/HashJoin/2048/2048/real_time',\n", + " 'family_index': 46,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/2048/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2251,\n", + " 'real_time': 303149.62326934596,\n", + " 'cpu_time': 301901.92003554106,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 2048.0,\n", + " 'model_cost': 808960.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 1218560.0,\n", + " 'rhs_rows': 2048.0},\n", + " {'name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", + " 'family_index': 47,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/4096/4096/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1075,\n", + " 'real_time': 606973.833474872,\n", + " 'cpu_time': 604010.4744186023,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 4096.0,\n", + " 'model_cost': 1617920.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 2437120.0,\n", + " 'rhs_rows': 4096.0},\n", + " {'name': 'OperatorCost/HashJoin/8192/8192/real_time',\n", + " 'family_index': 48,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/8192/8192/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 565,\n", + " 'real_time': 1240293.1486866313,\n", + " 'cpu_time': 1232603.897345126,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 8192.0,\n", + " 'model_cost': 3235840.0,\n", + " 'output_rows': 8192.0,\n", + " 'plan_cost': 4874240.0,\n", + " 'rhs_rows': 8192.0},\n", + " {'name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", + " 'family_index': 49,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/16384/16384/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 243,\n", + " 'real_time': 2840201.378562353,\n", + " 'cpu_time': 2819089.868312745,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 16384.0,\n", + " 'model_cost': 6471680.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 9748480.0,\n", + " 'rhs_rows': 16384.0},\n", + " {'name': 'OperatorCost/HashJoin/32768/32768/real_time',\n", + " 'family_index': 50,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/32768/32768/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 97,\n", + " 'real_time': 7253468.051353547,\n", + " 'cpu_time': 7190828.268041248,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 32768.0,\n", + " 'model_cost': 12943360.0,\n", + " 'output_rows': 32768.0,\n", + " 'plan_cost': 19496960.0,\n", + " 'rhs_rows': 32768.0},\n", + " {'name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", + " 'family_index': 51,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/HashJoin/65536/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 46,\n", + " 'real_time': 17894076.999610938,\n", + " 'cpu_time': 17744853.413043536,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 65536.0,\n", + " 'model_cost': 25886720.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 38993920.0,\n", + " 'rhs_rows': 65536.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/64/64/real_time',\n", + " 'family_index': 52,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/64/64/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1913,\n", + " 'real_time': 353588.65500607423,\n", + " 'cpu_time': 351322.2059592261,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 64.0,\n", + " 'model_cost': 286720.0,\n", + " 'output_rows': 64.0,\n", + " 'plan_cost': 299520.0,\n", + " 'rhs_rows': 64.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", + " 'family_index': 53,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/128/128/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 534,\n", + " 'real_time': 1133880.501897301,\n", + " 'cpu_time': 1126145.076779034,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 128.0,\n", + " 'model_cost': 1146880.0,\n", + " 'output_rows': 128.0,\n", + " 'plan_cost': 1172480.0,\n", + " 'rhs_rows': 128.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", + " 'family_index': 54,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/256/256/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 171,\n", + " 'real_time': 4047780.2515729764,\n", + " 'cpu_time': 4028194.456140374,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 256.0,\n", + " 'model_cost': 4587520.0,\n", + " 'output_rows': 256.0,\n", + " 'plan_cost': 4638720.0,\n", + " 'rhs_rows': 256.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", + " 'family_index': 55,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/512/512/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 39,\n", + " 'real_time': 15228341.769379301,\n", + " 'cpu_time': 15163559.56410255,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 512.0,\n", + " 'model_cost': 18350080.0,\n", + " 'output_rows': 512.0,\n", + " 'plan_cost': 18452480.0,\n", + " 'rhs_rows': 512.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", + " 'family_index': 56,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/1024/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 12,\n", + " 'real_time': 58972879.74948994,\n", + " 'cpu_time': 58759088.33333317,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1024.0,\n", + " 'model_cost': 73400320.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 73605120.0,\n", + " 'rhs_rows': 1024.0},\n", + " {'name': 'OperatorCost/NestedLoopJoin/2048/2048/real_time',\n", + " 'family_index': 57,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopJoin/2048/2048/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 3,\n", + " 'real_time': 239655377.33359572,\n", + " 'cpu_time': 238650148.0000002,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 2048.0,\n", + " 'model_cost': 293601280.0,\n", + " 'output_rows': 2048.0,\n", + " 'plan_cost': 294010880.0,\n", + " 'rhs_rows': 2048.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/32/32/real_time',\n", + " 'family_index': 58,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/32/32/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5276,\n", + " 'real_time': 127063.62054887325,\n", + " 'cpu_time': 124735.67304776366,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 32.0,\n", + " 'model_cost': 106496.0,\n", + " 'output_rows': 1024.0,\n", + " 'plan_cost': 112896.0,\n", + " 'rhs_rows': 32.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'family_index': 59,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/64/64/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2417,\n", + " 'real_time': 291643.43234941515,\n", + " 'cpu_time': 289229.67273479357,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 64.0,\n", + " 'model_cost': 425984.0,\n", + " 'output_rows': 4096.0,\n", + " 'plan_cost': 438784.0,\n", + " 'rhs_rows': 64.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", + " 'family_index': 60,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/128/128/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 765,\n", + " 'real_time': 953553.1555241571,\n", + " 'cpu_time': 946151.47320261,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 128.0,\n", + " 'model_cost': 1703936.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 1729536.0,\n", + " 'rhs_rows': 128.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", + " 'family_index': 61,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/256/256/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 118,\n", + " 'real_time': 5520151.406664685,\n", + " 'cpu_time': 5445272.305084768,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 256.0,\n", + " 'model_cost': 6815744.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 6866944.0,\n", + " 'rhs_rows': 256.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", + " 'family_index': 62,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/512/512/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 28,\n", + " 'real_time': 24979218.64310878,\n", + " 'cpu_time': 24715854.607142873,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 512.0,\n", + " 'model_cost': 27262976.0,\n", + " 'output_rows': 262144.0,\n", + " 'plan_cost': 27365376.0,\n", + " 'rhs_rows': 512.0},\n", + " {'name': 'OperatorCost/NestedLoopCrossJoin/1024/1024/real_time',\n", + " 'family_index': 63,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCost/NestedLoopCrossJoin/1024/1024/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5,\n", + " 'real_time': 112934816.00005178,\n", + " 'cpu_time': 111900069.20000002,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1024.0,\n", + " 'model_cost': 109051904.0,\n", + " 'output_rows': 1048576.0,\n", + " 'plan_cost': 109256704.0,\n", + " 'rhs_rows': 1024.0}]}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import json\n", "\n", @@ -179,7 +1240,7 @@ " Aggregation\n", " 1024\n", " NaN\n", - " 0.367198\n", + " 0.279850\n", " 522240.0\n", " \n", " \n", @@ -187,7 +1248,7 @@ " Aggregation\n", " 2048\n", " NaN\n", - " 0.714949\n", + " 0.547978\n", " 1044480.0\n", " \n", " \n", @@ -195,7 +1256,7 @@ " Aggregation\n", " 4096\n", " NaN\n", - " 1.378878\n", + " 1.112645\n", " 2088960.0\n", " \n", " \n", @@ -203,7 +1264,7 @@ " Aggregation\n", " 8192\n", " NaN\n", - " 2.970154\n", + " 2.393267\n", " 4177920.0\n", " \n", " \n", @@ -211,7 +1272,7 @@ " Aggregation\n", " 16384\n", " NaN\n", - " 7.566779\n", + " 6.024309\n", " 8355840.0\n", " \n", " \n", @@ -227,7 +1288,7 @@ " Sort\n", " 16384\n", " NaN\n", - " 4.673407\n", + " 3.425096\n", " 2703360.0\n", " \n", " \n", @@ -235,7 +1296,7 @@ " Sort\n", " 32768\n", " NaN\n", - " 10.560526\n", + " 8.128588\n", " 5767168.0\n", " \n", " \n", @@ -243,7 +1304,7 @@ " Sort\n", " 65536\n", " NaN\n", - " 27.512323\n", + " 21.036047\n", " 12255232.0\n", " \n", " \n", @@ -251,7 +1312,7 @@ " Sort\n", " 131072\n", " NaN\n", - " 76.878972\n", + " 68.694607\n", " 25952256.0\n", " \n", " \n", @@ -259,7 +1320,7 @@ " Sort\n", " 262144\n", " NaN\n", - " 210.729772\n", + " 195.667437\n", " 54788096.0\n", " \n", " \n", @@ -269,17 +1330,17 @@ ], "text/plain": [ " operator left_rows right_rows real_time_ms model_cost\n", - "36 Aggregation 1024 NaN 0.367198 522240.0\n", - "37 Aggregation 2048 NaN 0.714949 1044480.0\n", - "38 Aggregation 4096 NaN 1.378878 2088960.0\n", - "39 Aggregation 8192 NaN 2.970154 4177920.0\n", - "40 Aggregation 16384 NaN 7.566779 8355840.0\n", + "36 Aggregation 1024 NaN 0.279850 522240.0\n", + "37 Aggregation 2048 NaN 0.547978 1044480.0\n", + "38 Aggregation 4096 NaN 1.112645 2088960.0\n", + "39 Aggregation 8192 NaN 2.393267 4177920.0\n", + "40 Aggregation 16384 NaN 6.024309 8355840.0\n", ".. ... ... ... ... ...\n", - "31 Sort 16384 NaN 4.673407 2703360.0\n", - "32 Sort 32768 NaN 10.560526 5767168.0\n", - "33 Sort 65536 NaN 27.512323 12255232.0\n", - "34 Sort 131072 NaN 76.878972 25952256.0\n", - "35 Sort 262144 NaN 210.729772 54788096.0\n", + "31 Sort 16384 NaN 3.425096 2703360.0\n", + "32 Sort 32768 NaN 8.128588 5767168.0\n", + "33 Sort 65536 NaN 21.036047 12255232.0\n", + "34 Sort 131072 NaN 68.694607 25952256.0\n", + "35 Sort 262144 NaN 195.667437 54788096.0\n", "\n", "[64 rows x 5 columns]" ] @@ -315,7 +1376,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAHqCAYAAACZcdjsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAA3wBJREFUeJzs3Xd4lFX2wPHvpE167xVCCSWVKqD0UBQVUcEOltVVF5dmwQbYEFRA3RXd/Sm4NkBFVEQkVBWQEhMghE4gCUlICOl9Zu7vj5DRSIAEEt6U83mePA9z5868Z4bJ5D3vvedenVJKIYQQQgghhBBXwELrAIQQQgghhBAtnyQWQgghhBBCiCsmiYUQQgghhBDiikliIYQQQgghhLhiklgIIYQQQgghrpgkFkIIIYQQQogrJomFEEIIIYQQ4opJYiGEEEIIIYS4YpJYCCGEEEIIIa6YJBZCiPP89ttv3H777fj5+WFjY4Ovry+33XYb27dv1zq0etu2bRuzZ88mPz9f61CazJo1a5g9e7bWYdTb0qVL0el0nDhxosGPnT17NjqdrvGDEleNTqe75Oc1IyOD2bNnk5iYeN598hkQovmTxEIIUcu7777LgAEDSE9PZ/78+axfv54333yTU6dOce211/Kvf/1L6xDrZdu2bcyZM6fVJxZz5szROgwhGk1GRgZz5sypM7F46KGHWtTFDSHaIiutAxBCNB9bt25lypQpXH/99XzzzTdYWf3xFXHHHXdwyy238M9//pOYmBgGDBhwVWMrLS3F3t7+qh6zOcchxNXSXD7zgYGBBAYGah2GEOIiZMRCCGE2d+5cdDodixcvrpVUAFhZWfHee++h0+l4/fXXze010xMSEhIYN24czs7OuLi4cM8995CTk3PeMZYvX06/fv1wcHDA0dGRkSNHkpCQUKvPpEmTcHR0ZN++fYwYMQInJyeGDRsGQFxcHDfffDOBgYHY2trSsWNHHnnkEc6cOVMrpieffBKA9u3bo9Pp0Ol0bN68GQCTycT8+fPp0qULer0eb29v7rvvPtLT02vFMXjwYMLDw/n555/p378/9vb2PPDAAxd9D3fs2MGNN96Ih4cHtra2dOjQgSlTptTq8+uvvzJs2DCcnJywt7enf//+/PDDD7X6lJaWMmPGDNq3b4+trS3u7u706tWLL774wvwe/fvf/wYwv75LTTOqeT3bt2+nf//+2NnZ0a5dO5YsWQLADz/8QI8ePbC3tyciIoK1a9ee9xz1iR2qp9MNGDAAW1tb/P39mTlzJlVVVXXGVZ/PRH0sWrQInU7H0aNHz7vv6aefxsbGxvw5SUhIYMyYMXh7e6PX6/H39+eGG2447zPwV43xHh45coS77rrLfOyuXbua/y9rlJeXM336dKKjo3FxccHd3Z1+/frx7bffnvd8X375JX379sXFxQV7e3tCQ0NrfU4vNAVt8+bNtX4v/vz66vrMFxYWmj+TNjY2BAQEMGXKFEpKSmo9b2FhIX/729/w8PDA0dGRUaNGcfjw4Yu+rzXx9O7dG4D777/f/JmumT5V11Sodu3aMWbMGFavXk1MTAx2dnZ07dqV1atXm197165dcXBwoE+fPuzevfu84+7evZubbroJd3d3bG1tiYmJYcWKFZeMVwhRByWEEEopg8Gg7O3tVd++fS/ar0+fPsre3l4ZDAallFKzZs1SgAoJCVFPPvmk+umnn9SCBQuUg4ODiomJUZWVlebHvvrqq0qn06kHHnhArV69Wq1cuVL169dPOTg4qP3795v7TZw4UVlbW6t27dqpuXPnqg0bNqiffvpJKaXU4sWL1dy5c9V3332ntmzZoj7++GMVFRWlwsLCzMdKS0tTkydPVoBauXKl2r59u9q+fbsqKChQSin18MMPK0D94x//UGvXrlXvv/++8vLyUkFBQSonJ8ccx6BBg5S7u7sKCgpS7777rtq0aZPasmXLBd+btWvXKmtraxUZGamWLl2qNm7cqD766CN1xx13mPts3rxZWVtbq549e6rly5erVatWqREjRiidTqeWLVtm7vfII48oe3t7tWDBArVp0ya1evVq9frrr6t3331XKaXU0aNH1W233aYA8+vbvn27Ki8vv2B8gwYNUh4eHiosLEx9+OGH6qefflJjxoxRgJozZ46KiIhQX3zxhVqzZo265pprlF6vV6dOnWpw7Pv371f29vaqW7du6osvvlDffvutGjlypAoODlaASklJafBnouZzdjE5OTnKxsZGPffcc7XaDQaD8vf3V+PGjVNKKVVcXKw8PDxUr1691IoVK9SWLVvU8uXL1d///neVnJx80WNc6Xu4f/9+5eLioiIiItT//vc/tW7dOjV9+nRlYWGhZs+ebe6Xn5+vJk2apD755BO1ceNGtXbt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8uXLa30GKyoqznvMzTffzM0330xFRQW//fYbc+fO5a677qJdu3b069fPPIL218de6KS5rs+8p6cndnZ2fPTRR3U+5s//93/93Yfz/++bg5qYZ86cybhx4+rsExYWdjVDEqLFkxELIYTZzJkzUUrx2GOPYTQaa91nNBp59NFHUUoxc+bM8x772Wef1bq9YsUKDAYDgwcPBmDkyJFYWVlx7NgxevXqVefPpdSc8Oj1+lrtH3zwwXl9a/r8dRSjZorHp59+Wqt9165dHDhwwLz6VEN17tyZDh068NFHH9V58gfVyULfvn1ZuXJlrbhMJhOffvopgYGBdO7c+bzH+fj4MGnSJO68804OHTpEaWnpRV9jU2hI7EOGDGHDhg3mK8JQ/flZvnx5redsjM9EXe6//37Ky8v54osvWLp0Kf369aNLly519tXpdERFRbFw4UJcXV35/fffL+uY9WFvb8+QIUNISEggMjKyztdbczKu0+mwsbGpdZKflZVV56pQNfR6PYMGDWLevHkA5pW12rVrB8DevXtr9f/uu+/qHfuYMWM4duwYHh4edcZdc4whQ4YA538ffP755/U6ztX8TIeFhdGpUyf27Nlzwc+fk5NTk8chRGsiIxZCCLMBAwawaNEipkyZwrXXXss//vEPgoODSU1N5d///jc7duxg0aJF9O/f/7zHrly5EisrK2JjY9m/fz8vvPACUVFRjB8/Hqg+uXnppZd47rnnOH78OKNGjcLNzY3Tp0+zc+dO8xX6i+nSpQsdOnTgmWeeQSmFu7s733//PXFxcef1jYiIAODtt99m4sSJWFtbExYWRlhYGA8//DDvvvsuFhYWjB49mhMnTvDCCy8QFBTE1KlTL/v9+/e//82NN97INddcw9SpU83v3U8//WQ+0Zo7dy6xsbEMGTKEGTNmYGNjw3vvvUdSUhJffPGF+USyb9++jBkzhsjISNzc3Dhw4ACffPIJ/fr1M88br3mN8+bNM48iRUZGmqd8NLb6xv7888/z3XffMXToUF588UXs7e3597//fd6ypI3xmahLly5d6NevH3PnziUtLY3//Oc/te5fvXo17733HmPHjiU0NBSlFCtXriQ/P5/Y2NjLf4Pq4e233+baa6/luuuu49FHH6Vdu3YUFRVx9OhRvv/+ezZu3AhUn8ivXLmSxx57jNtuu420tDRefvll/Pz8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Z6/vyjWhHpd4hBDNi6HSyKEdWSSuTyP/dCkAFlY6wvr4EjU8CA9/We1FaMfO2pLkl0ZeuiOwM+Usk5bUPe//z5be37te+wjZWdfvApjBYOB///sfb731FiNGjKh136233spnn31Gly5dWLNmTa37du/eXet2ly5dzNOFL9SnLj169CArKwsrKytzQfVfhYWFsXPnTu69994LPvcvv/zCe++9x/XXXw9AWloaZ86cqdXH2tr6otsYODs74+/vz6+//srAgQPN7du2bTtvhEZcHQ1OLHJzcxk/fjybNm1Cp9Nx5MgRQkNDeeihh3B1deWtt95qijiFaJCaJWajoqLM29S3dFkF5Tz++e8YTIqbovx5YEA7rUMS5yijkdLd8RhycrDy8sK+V090rWiUrDGUF1exb0s6+zanU1ZUBYCNnRXhAwOIHBqIg4te4wiFqL6SXd/pSNd18sLPxZasgvI66yxqNie9rpNXoy6ksXr1avLy8njwwQdxcXGpdd9tt93Ghx9+yMqVK1mwYAFPP/00Dz74IImJieZVo2qu1k+ePJmBAweyYMECbrzxRjZu3MiPP/54yZHC4cOH069fP8aOHcu8efMICwsjIyODNWvWMHbsWHr16sXkyZP529/+Rq9evejfvz/Lly831+fW6NixI5988gm9evWisLCQJ598Eju72iPw7dq1Y8OGDQwYMAC9Xl/nkvFPPvkks2bNokOHDkRHR7NkyRISExP57LPPLuftFVeowRNXp06dirW1NampqbVO2CZMmNAqN2cRLU9ubq55hbJrrrlG42gaR4XByKOfxXOmuJIuvk68fmuETBNpJgrXrePosOGkTpxIxowZpE6cyNFhwylcV7951a1dQU4ZP39xiI9nbmXn9ymUFVXh6K7n2ts7MXFuf/rd0kGSCtEiWVromHVjN+CPzUhrNOXmpB9++CHDhw8/L6mA6hGLxMRE8vLy+Oqrr1i5ciWRkZEsXrzYvCpUTcH1gAEDeP/991mwYAFRUVGsXbuWqVOnYmtre9Hj63Q61qxZw8CBA3nggQfo3Lkzd9xxBydOnMDHxweAu+++m5kzZzJjxgx69OhBSkoKkyZNqvXcH330EXl5ecTExHDvvffyxBNP4O3tXetYb731FnFxcQQFBRETE1NnPE888QTTp09n+vTpREREsHbtWvNSu+Lq06kGzmHy9fXlp59+IioqCicnJ/bs2UNoaCgpKSlERETUqvhvKQoLC3FxcaGgoABnZ2etwxFXaM2aNezcuZNOnTpx9913ax1Oo3j2m318viMVZ1srvp98LSEestRmc1C4bh2n/jkF/vo1ei7pC3h7Ec5/marQVpxOKSQh7iTHE3LMb49nkCMxI4Lp2MNbCrJFs1BeXk5KSgrt27e/5An1haxNymTO98m1lpz1a4abk7766qu8//77pKWlXbDP3/72Nw4ePMgvv/zS6MePjY3F19eXTz75pNGfW1y5i/0uNOQ8ucFToUpKSuqcWnLmzBlzFiyEVsrKykhISABaz2jF8l2pfL4jFZ0O3r4zRpKKZkIZjZx+be75SQVUt+l0nH5tLk7DhrWZaVHKpDiRlEtiXCoZR/LN7cHd3YmJDSYgTBb5EK3PqHA/Yrv5arLz9sW899579O7dGw8PD7Zu3cobb7zBP/7xj1p93nzzTWJjY3FwcODHH3/k448/5r333rviY5eWlvL+++8zcuRILC0t+eKLL1i/fj1xcXFX/NyieWtwYjFw4ED+97//8fLLLwPVQ2Imk4k33niDIUOGNHqAQjTE77//TlVVFd7e3q1iX5U9afm88O1+AKYN78yQMO9LPEJcLaW74zFkZV24g1IYsrIo3R2PQ9/WXURoqDJyeMdpEtenkpd1riDbUkfn3j5ExwbjESAF2aJ1q9mctDk5cuQIr7zyCmfPniU4OJjp06czc+bMWn127tzJ/PnzKSoqIjQ0lHfeeYeHHnroio9dM13qlVdeoaKigrCwML7++muGDx9+xc8tmrcGJxZvvPEGgwcPZvfu3VRWVvLUU0+xf/9+zp49y9atW5siRiHqxWg0smPHDqB1bIh3priCRz+Np9JgYnhXHx4f0lHrkMSfGHKy69kvp4kj0U55SRVJW06xd3M6ZYXVS0Ta2FrSfWAAkUOCcHSTUWwhtLJw4UIWLlx40T4rVqxokmPb2dmxfv36Jnlu0bw1OLHo1q0be/fuZfHixVhaWlJSUsK4ceN4/PHHzRuOCKGFAwcOUFhYiIODAxEREVqHc0UMRhOTP08go6CcUE8HFkyIwkLjYXXxh4rjKeR++FG9+lr9aWOp1qLwTBmJG9I4sDUDQ2X1OvCObnoihwbR/Vp/bOxkh2whhGiLGvTtX1VVxYgRI/jggw+YM2dOU8UkxGWpWWK2V69etTbCaYnmrT3I9uO5ONhY8sG9PXG2bdmvp7UwVVSQ+8F/yP3vf1FVVRfvrNNh5eODfa/Ws49K9slCEuJSORafbS4t8Qh0JCY2mI69vLGUgmwhhGjTGpRYWFtbk5SU1OKnmIjWJy0tjfT0dCwtLendu7fW4VyR7/dk8N9fUgB48/YoOvk4aRyRACj+dStZL79E1clUAByuuw7HIUM4fa7erFYR97nvSJ9nZ7b4wm1lUpzcX12Qfepwvrk9qJs7McODCewqBdlCCCGqNXi8+r777uPDDz/k9ddfb4p4hLgsNaMVERERODq23ELRg1mFPPXVXgD+PqgDoyNkeqHWqrKzyX59HoXndrG18vbG59lncRo5Ap1Oh5WnB6dfm1urkNvKxwefZ2e26KVmjVUmDu/KIiEujbzMEgAsLHR06u1DdGwQnoGS8AohhKitwYlFZWUl//d//0dcXBy9evXCwaH20pcLFixotOCEqI/8/HySk5OBlr3EbEFZFY98Ek9ZlZFrO3oyY0RnrUNq05TRSN6yZeQsXISpuBgsLHC75268nngCyz8lr84jRuA0bFir2Xm7vKSK/b+cYu+mdEoLqguyrW0t6X6tP5FDg3Byv7y1/oUQQrR+DU4skpKS6NGjBwCHDx+udZ8Mhwst7Ny5E6UU7du3x9fXV+twLovJpJi6PJGTuaUEuNrxzp0xWMl8dc2UJe0na/ZsypOSALCNiMB39izsunevs7/O0rLFLylbmFvG3g3p7N+agaHCCICDq57IoYF0vy4AvRRkCyGEuIQG/6XYtGlTU8QhxGWpqKggPj4eaNmjFW9vOMLGg9norSz44N6euDvYaB1Sm2QsKiLn7XfI+/xzMJmwcHTEa9pU3CZMaLEjEJeSk1pEQlwqR+OzUabqOhGPAAeiY4Pp1MsHSytJcIVoKQYPHkx0dDSLFi0CoF27dkyZMoUpU6ZoGpdoO+QSlGjREhMTqaiowMPDg06dOmkdzmXZcOA0b284AsCrt0QQHuCicURtj1KKorVrq2slzu074TxmDD5PP9Uql4tVSpGafJaEdamcOpRnbg/s4kZMbDBB3dxlBFqIZmzSpEl8/PHH57Xv2LGDrl27XvBxOp2Ob775hrFjxzZhdKItk8RCtFgmk8lctN23b18sLFreldWUMyVMWZ4IwH39QritZ6C2AbVBlampZL30MiW//gqATUgIvrNexKF/f40ja3xGg4kju06TEJfK2YzqgmydhY6OPb2JiQ3GK1gKsoW4LCYjnNwGxafB0QdC+oNF045yjho1iiVLltRq8/LywvIqjK5WVVW1+GXdRdOQxEK0WIcPHyYvLw9bW1uio6O1DqfBSioMPPLJborKDfQKceP5G7ppHVKbYqqsJPf//o/c9z9AVVais7bG45FH8PjbQ1joW9eO0RVlBvb/fIq9G9MoqSnI1lvS7Vp/ooZJQbYQVyT5O1j7NBRm/NHm7A+j5kG3m5rssHq9/ry6wr9Ohfqzdu3aAXDLLbcAEBISwokTJwD4/vvvmT17Nvv378ff35+JEyfy3HPPYWVVfZqo0+lYvHgxP/74I+vXr2fGjBmyn5mokyQWosWqGa3o2bMnNjYtqyZBKcVTX+/l8OlivJ30vHd3D2xkLvtVU/Lbb2TNeYnKlOr9Qhz698P3xRexOfeHt7UoOlvOno1pJP+aQVV5dUG2vYsNUUOD6H6dP3p7ueIoxBVJ/g5W3Aeo2u2FmdXt4//XpMlFQ+zatQtvb2+WLFnCqFGjzCMbP/30E/fccw/vvPMO1113HceOHePhhx8GYNasWebHz5o1i7lz57Jw4cKrMioiWiZJLESLlJmZyYkTJ7CwsKBPn5a3Gs9/fznOD3szsbbUsfieHng7yxXjq8Fw5gyn58+n8LvvAbD09MRn5jM4X399q6opyEkrInF9Kkd3ZWM6V5Dt7u9A9PBgOvf2wdJaklgh6qQUVJXWr6/JCD8+xXlJRfUTAbrqkYzQwfWbFmVtb95csz5Wr15da9+m0aNHX7S/17l6MVdX11ojHa+++irPPPMMEydOBCA0NJSXX36Zp556qlZicdddd/HAAw/UOz7RNkliIVqkmtGKbt264eLSsoqdtx09w+s/HgTgxTHd6BnirnFErZ8ymchf8SXZCxZgKiwEnQ63O+/Ea8o/sXR21jq8RqGUIu1AdUF2+sE/CrIDwlyJHh5MSLhHq0qehGgSVaXwmn8jPZmqnh71elD9uj+bATYOl+53zpAhQ1i8eLH5toODA3feeWdDgyQ+Pp5du3bx6quvmtuMRiPl5eWUlpZib28PQK9evRr83KLtkcRCtDhFRUXs27cPaHlLzJ7KL+MfXyRgUnBbz0DuuSZE65BavfKDB8maNZuyPXsA0Hfrit+cOdhFRGgcWeMwGk0c3XWahLg0ck8VA9UXPTv29CY6NhjvkNaROAkhanNwcKBjx45X/Dwmk4k5c+Ywbty48+6ztf1jNP2vGyILURdJLESLs2vXLkwmE0FBQQQGtpxVlMqrjPz9k3jOllQSHuDMK2PD5QpyEzIWl3DmX//i7CefgNGIhYMDXv/8J2533YnOquV/9VWWGdj/SwZ7N6VRnFcBgJXekm79/YgaFoSzp53GEQrRAlnbV48c1MfJbfDZbZfud/dX1atE1efYTcza2hqj0VirrUePHhw6dKhRkhQhWv5fV9GmVFVVsXv3bqBljVYopXhhVRL7ThXgZm/N+/f0xNZait+aglKKovXrOf3qaxiysgBwGjUKn5nPYO3jo3F0V644r5y9G9PZ/8spKs8VZNs52xA5JJDwgQHYOkhBthCXTaer/3SkDkOrV38qzKTuOgtd9f0dhjb50rP11a5dOzZs2MCAAQPQ6/W4ubnx4osvMmbMGIKCgrj99tuxsLBg79697Nu3j1deeUXrkEULI4mFaFH27t1LaWkpLi4udOnSRetw6u2zHal8GZ+OhQ7evbMHgW5Nf2WqLapMP8XpV16hePNmAKwDA/F98QUcBw7UNrBGcCa9mMT1qRzZedpckO3ma090bDCd+/hgJYmqEFeXhWX1krIr7gN01E4uzo1Gj3q92SQVAG+99RbTpk3jv//9LwEBAZw4cYKRI0eyevVqXnrpJebPn4+1tTVdunThoYce0jpc0QLplFJ1pdltSmFhIS4uLhQUFODcSgo5WyOlFO+99x45OTmMGDGC/i1kA7P4k3nc8Z/tVBkVz4zuwt8HddA6pFZHVVaSu/Rjzrz3Hqq8HKyt8XjoQTwfeQQL25a74pZSivRDeSSuSyU1+ay53b+TKzGx5wqyLWQ6nRCXq7y8nJSUFNq3b1+rnqBB6tzHIqA6qWgmS80KcSkX+11oyHmyjFiIFuPYsWPk5ORgY2NDjx49tA6nXrKLynn003iqjIrrI3x5ZGCo1iG1OqW7dpE5Zw6VR48BYN+nD76zZ6EPbbnvtdFo4lh8NglxqZxJ+6MgOzSmeodsn/ZyAUSIZqPbTdDlhqu+87YQzZEkFqLFqFliNiYm5vKvLF1FVUYTj3/2O9lFFXTydmT+bVFSrN2IDHl5ZL/xJgUrVwJg6e6Oz9NP4XzTTS32fa4sN5D8awZ7NqZRfPZcQbaNBV37V++Q7eIlBdlCNEsWltD+Oq2jEEJzkliIFiEnJ4ejR48C0LdvX42jqZ9XfzjArhN5OOmt+ODenjjq5detMSiTiYKVK8l+402MBQUAuI4fj/e0qVi6umob3GUqya9g76Y0kn7OoLLMAICdk/W5guxAbB2lIFsIIUTzJ2c6okWoGa3o0qUL7u7Nf0O5lb+ns3TbCQAWTIgm1Mvx4g8Q9VJ++DBZs+dQ9vvvAOjDwvCdPQv7mBiNI7s8uRnFJMalcnjnaUzG6nI3Vx97oocHEXaNrxRkCyGEaFEksRDNXklJCXvObW7WEpaYTTpVwMyV1Rv4PTGsE7HdWv4Sp1ozlZZy5r33yF36MRgM6Ozt8Zo8Gfd772lxe1IopTh1OJ+Edamk7s81t/t1dCF6eDDtIz2lIFsIIUSL1LL+Ios2KT4+HoPBgJ+fHyEhzXun6rySSv7+aTwVBhNDwryYMqyT1iG1eEUbN5H1yssYMjIBcIodjs+zz2Lt56dxZA1jMpo49nsOCXGp5KQWVTfqoEO0F9GxwfiGumgboBBCCHGFJLEQzZrBYGDnzp1A9WhFcy7KNZoUTyxLID2vjBAPexZNiMFCrjxftqqMDLJee43i9RsAsPb3x+f553EaOkTjyBqmstzAga2Z7NmQRtHZcgCsrC3ocm6HbFdv2dNECCFE6yCJhWjW9u/fT3FxMY6OjnTv3l3rcC7qrXWH+OXIGeysLXn/np642EvB7eVQVVWc/eRTcv71L1RpKVhZ4XH/JDwffRQL+5ZzEl5SUMG+Tekk/XyKitLqgmxbx3MF2YMCsHO00ThCIYQQonFJYiGaLaWUuWi7T58+WDXjufRrkzJ5b3P1Pgrzboukq5/sM3A5ShMSyJo9h4pDhwCw69kT31kvYtu5s8aR1d/ZzBIS41I5tDMLk6G6INvFy47o2GC6XOOLlY0UZAshhGidmu+ZmmjzTp48SWZmJlZWVvTq1UvrcC7oaHYR01dUF5c/dG17bory1ziilseYn0/2WwvI//JLACxdXfF+8klcbhmLzsJC4+guTSlFxpF8EuNSObHvj4Js31BnYmJDaBflKdPihBAtyqRJk8jPz2fVqlWN9pxLly5lypQp5OfnN9pziuZF07/YP//8MzfeeCP+/v7odLrzPrxKKWbPno2/vz92dnYMHjyY/fv31+pTUVHB5MmT8fT0xMHBgZtuuon09PSr+CpEU6kZrYiKisK+mU6BKSqv4uFP4impNHJNqDvPjO6idUgtilKK/FWrODb6enNS4XLrOEJ/XIPrreOafVJhMpo4svs0X72+m1ULEqqTCh20j/Jk3JM9ufWpXoTGeElSIUQrZzQZ2ZW1izXH17AraxdGk7FJjzdp0iTGjh17XvvmzZvR6XRX7cR98ODBTJkypd79J0yYwOHDh5suIKE5TUcsSkpKiIqK4v777+fWW2897/758+ezYMECli5dSufOnXnllVeIjY3l0KFDODk5ATBlyhS+//57li1bhoeHB9OnT2fMmDHEx8djaSlTDlqqs2fPcvDgQaD5LjFrMimmr9jD8ZwS/Fxs+dddPbCybN4nws1JxbFjZM2eQ+muXQDoO3XEd9Ys7Jvx6FSNqgojB7ZlsmdDKoVnqguyLa0s6NLPl+jhwbj6NM9EWAjR+NafXM/rO1/ndOlpc5uPvQ/P9HmG4SHDNYys+bGzs8POzk7rMEQT0vQsaPTo0bzyyiuMGzfuvPuUUixatIjnnnuOcePGER4ezscff0xpaSmff/45AAUFBXz44Ye89dZbDB8+nJiYGD799FP27dvH+vXrr/bLEY1ox44dAHTs2BEvLy+No6nb4i3HWJd8GhtLCxbf0xNPR73WIbUIprIyshcu4vjYWyjdtQudrS1e06fR/uuvm31SUVpYyY7vjvPxs1v5ZflhCs+UY+tgTa8b2nHfa/0ZfHcXSSqEaEPWn1zPtM3TaiUVANml2UzbPI31J7U7F8nNzeXOO+8kMDAQe3t7IiIi+OKLL2r1+eqrr4iIiMDOzg4PDw+GDx9OSUlJrT5vvvkmfn5+eHh48Pjjj1NVVXXBY+bl5XHffffh5uaGvb09o0eP5siRI+b7ly5diqurq/n27NmziY6O5pNPPqFdu3a4uLhwxx13UFRU1Dhvgrjqmm2NRUpKCllZWYwYMcLcptfrGTRoENu2beORRx4hPj6eqqqqWn38/f0JDw9n27ZtjBw5ss7nrqiooKKiwny7sLCw6V6IaLDy8nISEhKA5jtasflQNm+uqy4wfnlsd6KDXLUNqIUo/vlnsl56mapz0xUdBw/G5/nnsQkM0Diyi8vLKiFxfRqHfsvCaDAB4OxlR/SwILr098NaCrKFaBWUUpQZyurV12gyMnfnXBTq/Oc51/b6ztfp69sXS4tLf0fYWdk16pLq5eXl9OzZk6effhpnZ2d++OEH7r33XkJDQ+nbty+ZmZnceeedzJ8/n1tuuYWioiJ++eUXlPrj9WzatAk/Pz82bdrE0aNHmTBhAtHR0fztb3+r85iTJk3iyJEjfPfddzg7O/P0009z/fXXk5ycjLV13SslHjt2jFWrVrF69Wry8vIYP348r7/+Oq+++mqjvRfi6mm2iUVWVhYAPj61dy328fHh5MmT5j42Nja4ubmd16fm8XWZO3cuc+bMaeSIRWP5/fffqaysxMvLiw4dOmgdznlSc0v557JElII7+wQzoXew1iE1e1WnT3P6tbkU/fQTAFa+vvg+/xyOw4Y1271JlFJkHisgYV0qJ/aeMbf7tHcmJjaY9tFSOyFEa1NmKKPv530b7flOl56m/7L+9eq7464d2FvXf8Rz9erVODo61mozGv+o7QgICGDGjBnm25MnT2bt2rV8+eWX5sTCYDAwbtw48+azERERtZ7Pzc2Nf/3rX1haWtKlSxduuOEGNmzYUGdiUZNQbN26lf79q1/zZ599RlBQEKtWreL222+v83WYTCaWLl1qnuJ+7733smHDBkksWqhmm1jU+OtJh1Lqkicil+ozc+ZMpk2bZr5dWFhIUFDQlQUqGoXRaDRPg2qOG+KVVRp55NN4CsqqiA5yZfZN3bQOqVlTBgN5n39OzqK3MZWWgqUl7vfdh9c/HsfCwUHr8OpkMilSEqt3yD6d8sdoZrtIT2JGBOPXwaXZfS6FEG3PkCFDWLx4ca22HTt2cM899wDVf09ff/11li9fzqlTp8yzNRzOffdGRUUxbNgwIiIiGDlyJCNGjOC2226rdbG2e/futepV/fz82LdvX53xHDhwACsrK/r2/SMx8/DwICwsjAMHDlzwdbRr186cVNQcIzs7uwHvhGhOmm1i4evrC1SPSvj5+Znbs7OzzaMYvr6+VFZWkpeXV+sXITs725wt10Wv16PXy3z45ujgwYMUFBRgb29PZGSk1uHUopRi5sq9HMgsxNPRhsX39EBvJVNgLqRs714yZ8+mIrn6D4pdVBS+c2Zj26V5rpxVVWnk4LZMEjekUZhTPRXC0sqCsGt8iR4ehJtv80yEhBCNx87Kjh137ahX3/jT8Ty24bFL9ntv2Hv09OlZr2M3hIODAx07dqzV9udVMd966y0WLlzIokWLiIiIwMHBgSlTplBZWQmApaUlcXFxbNu2jXXr1vHuu+/y3HPPsWPHDtq3bw9w3vQlnU6HyWSqM54/T6H6a/vFLsY05Bii+Wu2iUX79u3x9fUlLi6OmJgYACorK9myZQvz5s0DoGfPnlhbWxMXF8f48eMByMzMJCkpifnz52sWu7h8NUvM9urV64LzMbWydNsJViVmYGmh41939cDPRVa2qIuxsJCcRYvI+2IZKIWFiwve06fhetttzXL52LKiSvZuTidp8ynKS6qLEvX2VkQMDiRicCD2zrJDthBthU6nq/d0pP7+/fGx9yG7NLvOOgsdOnzsfejv379eNRaN7ZdffuHmm282j2CYTCaOHDlC165d/4hRp2PAgAEMGDCAF198kZCQEL755ptaszrqq1u3bhgMBnbs2GG+uJubm8vhw4drHVO0bpomFsXFxRw9etR8OyUlhcTERNzd3QkODmbKlCm89tprdOrUiU6dOvHaa69hb2/PXXfdBYCLiwsPPvgg06dPx8PDA3d3d2bMmEFERATDh8sSby1Neno6aWlpWFpa0rt3b63DqWXH8Vxe+aH6yvtz13flmlAPjSNqfpRSFP6whtOvv47xTHVNgsvNN+P91JNYeTS/9yv/dCmJ61M5+FsWxqrqq2NOHrZEDw+ia39/rPUyGiWEuDBLC0ue6fMM0zZPQ4euVnKho/oK/dN9ntYkqYDqVRW//vprtm3bhpubGwsWLCArK8t8kr9jxw42bNjAiBEj8Pb2ZseOHeTk5Fx2EtCpUyduvvlm/va3v/HBBx/g5OTEM888Q0BAADfffHNjvjTRjGmaWOzevZshQ4aYb9dkyBMnTmTp0qU89dRTlJWV8dhjj5GXl0ffvn1Zt25drbl4CxcuxMrKivHjx1NWVsawYcNYunSp7GHRAtWMVoSHh9f6P9ZaVkE5j3/+O0aT4uZof+4f0E7rkJqdipQUsl56idLt1f+HNu3b4ztrFg7XNF4RZGPJPFZAYlwqx/fkUHMe4B3iRHRsMB1ivLCQvUiEEPU0PGQ4CwYvqHMfi6f7PK3pPhYvvPACKSkpjBw5Ent7ex5++GHGjh1LQUEBAM7Ozvz8888sWrSIwsJCQkJCeOuttxg9enS9j2EymbCy+uNUcsmSJfzzn/9kzJgxVFZWMnDgQNasWdPsZiCIpqNTF5oU14YUFhbi4uJCQUEBzs7OWofTJhUUFLBo0SKUUjzyyCO16mq0VGEwMuGD30hMy6ernzMrH+2PnSwtamaqqCD3P/8l9z//QVVVodPr8Xz077g/8AAWNs1nCpHJpDix5wwJcalkHS8wt4dEeBATG4x/J1cpyBaiDSovLyclJYX27dtja2t72c9jNBn5Pft3ckpz8LL3ood3D81GKq6mLl268NBDD9VafUq0TBf7XWjIeXKzrbEQbcvOnTtRStGuXbtmk1QAzPk+mcS0fFzsrPngnp6SVPxJ8datZL30ElUnUwFwuO46fF94Hpvg5rP8rqHSyMHfskhcn0pBdnVBtoWVjrA+1Ttku/tLQbYQ4spZWljS27d5TeFtStnZ2fz4448cOnSIYcOGaR2OaEYksRCaq6ysJD4+HmheG+It35XK5ztS0eng7TuiCfaQHZUBDDk5nH59HoU//ACAlZcXPs89i9PIkc3mqn9ZcSX7Np9i3+Z0yov/KMjuPjCAyCGBOLjIqnBCCHG5Ro0aRV5eHu+88455gR0hQBIL0QwkJiZSXl6Ou7s7nTt31jocAPak5fPCqv0ATI/tzOAwb40j0p4yGslbtoychYswFReDhQVud9+N1z+fwPIvmzRpJT+7lD0b0ji4LRNDTUG2uy1Rw4LoOsAPG1v5yhNCiCv1+++/ax2CaKbkr6zQlMlkMhdt9+3bF4tmsBzpmeIK/v5pPJVGE7HdfHhscMdLP6iVK9u/n6xZsylPSgLANjwc3zmzseveXePIqmWlFJC4LpVjiX8UZHsFOxETG0yHHlKQLYQQQlwNklgITR05coSzZ89ia2tLdHS01uFgMJr4x+e/k1lQTqinAwvGR2Fh0Tym92jBWFxMztvvkPfZZ2AyYeHoiNe0qbhNmIBO45XXlElxYl91QXbm0T8KsoO7exAzIpiAzlKQLYQQQlxNklgITdWMVvTo0aNZ7IY+b+1Bfjt+FgcbS/5zX0+cbNvmEnlKKYp++onTr76GIScHAOcxY/B5+imsvLw0jc1QZeTQb1kkrk8j/3QpABaWOjr38SF6eDAeAc1jWpYQQgjR1khiITSTlZVFSkoKOp2Ovn213+/guz0Z/PeXFADeGh9FR+/ms5fG1VSZmkrWy69Q8ssvANiEhOA760Uczu2kqpXy4iqSfk5n76Z0yoqqC7Jt7KwIH+hPxOAgHN20T0yFEEKItkwSC6GZmtGKbt264eLiomksB7MKefqrvQA8OrgDo8Kbz5K3V4upspKzH33EmcXvoyoq0Flb4/HII3j87SEsNBxNKsgpY8+GNA5sy8BQWV2Q7eimJ2pYEN0G+GNjJ19jQgghRHMgf5GFJoqLi9m3bx+g/RKzBWVVPPJJPGVVRq7r5MmMEWGaxqOFkt92kDVnDpUp1SM2Dv374fPCC+jbt9csptMnCklYl8rxhGxqtvH0DHKsLsju6Y2lFGQLIYQQzYokFkITu3btwmg0EhgYSFBQkGZxmEyKKcsSOJlbSqCbHe/cEYNlGyrWNuTmkj1/PgXffgeApacnPs88g/MN/9/efYdFca0PHP/uUpZeVUCliYBgAezYC9YUjUnUmFhS1BRjvCYmRhPFEktM0cSr1+QaNaao96r8TOIldmPE3hVURMSGIEjvuzu/P4gbiYj0Yt7P8+zzuDNnzjmz47D7zmkDa2Tgs6JXiDubzIntV7kZnWrY7ubvQGAfNxo3s5cB2UIIUcf06NGDwMBAFi9eXNNVeSSpVCo2b97M4MGDa7oqyCM/Ue0KCgo4cuQIUPOtFUt2RrP7wm00xmr+9UIb7C1Na7Q+1UXR60lZv4GYAQMLgwqVCvsRz+G19RdsH3+s2n+86wr0RO6/yY+zD/HLstPcjE5FrVbh28GZYR+054mJgbj6OUhQIYSolRSdjqxDh0n7+ReyDh1G0emqtLwxY8agUqlYsGBBke1hYWGV9neyR48eTJo0qVLyqs68yyI/P5+PP/6YgIAALCwsqFevHp07d2bVqlUUFBTUSJ1Wr16NnZ1dmY6Jj49nwIABVVOhMpIWC1Htzpw5Q3Z2Nra2tvj5+dVYPXZEJrBkZzQA84e0pEWjmh3nUV1yz5/n1sxQck6dAkDj74dLaCjmrVpVf12yCjj72w3O7L5Odno+ACZmRjTv2oiAXo2xsjer9joJIURZpG/bRsK8+Whv3TJsM3Z2xmna+9j07Vtl5ZqZmbFw4ULGjx+Pvb19lZXzqMrPz6dfv36cOnWKOXPm0LlzZ2xsbDh48CCffPIJQUFBxU6Dn5+fj6lp7XoI6ezsXNNVMJAWC1GtFEUxDNpu3749RjW0FkJsUhb/WH8SgNHB7gxp3bhG6lGd9FlZJCxYSOzTz5Bz6hRqS0ucpr2P54YN1R5UpCflsG/DRdZMi+DQ/10mOz0fSzsNnYY0ZfT8znR+uqkEFUKIWi992zZuvDWpSFABoE1I4MZbk0jftq3Kyg4JCcHZ2Zn58+c/ME1ERATdunXD3NwcV1dXJk6cSFZWlmH/smXL8Pb2xszMDCcnJ5555hmgsEVk7969LFmyBJVKhUql4sqVKwBERkYycOBArKyscHJyYuTIkSQlJRnyzMrKYtSoUVhZWeHi4sKnn35a5nPbuHEjzZs3R6PR4OHhcV8eKSkpjBo1Cnt7eywsLBgwYADR0dGG/Xef+oeFheHj44OZmRl9+vTh2rVrhjSLFy/mt99+Y+fOnbzxxhsEBgbSpEkTRowYwaFDh/D29gYKW1cmTJjA5MmTqVevHn369AFg7969tG/fHo1Gg4uLC1OnTkWr1Rry/+9//0vLli0xNzfH0dGRkJAQw2e/Z88e2rdvj6WlJXZ2dnTu3Jm4uLgHfh7Lly/Hy8sLU1NTfH19Wbt2bZH9KpWKsLAwAK5cuYJKpWLTpk307NkTCwsLAgICOHDgQJmvQ3lIYCGqhV6vJzY2lp07d5KYmIixsTGtW7eukbpk5WkZ9+1RMvK0tPOwZ/pj/jVSj+qiKArp27cT89jj3Fm9GnQ6rPv3p8nWX3AYNQqVcfU1XN6+msG2f5/luxkHOb3rOto8HY6NLAkZ48fIucEE9XVDI7M8CSFqiKIo6LOzS/XSZWSQMPcjDLNLFM0IUEj4aB66jIxS5acUl08JjIyMmDdvHl9++SXXr1+/b/+ZM2fo168fQ4YM4fTp06xfv57ff/+dCRMmAHD06FEmTpzI7NmzuXDhAuHh4XTr1g2AJUuWEBwczNixY4mPjyc+Ph5XV1fi4+Pp3r07gYGBHD16lPDwcBISEhg6dKih3ClTprB79242b97Mtm3b2LNnD8eOHSv1eR07doyhQ4cyfPhwzpw5Q2hoKB9++CGrV682pBkzZgxHjx5ly5YtHDhwAEVRGDhwYJHuS9nZ2Xz00UesWbOG/fv3k56ezvDhww37v//+e0JCQggKCrqvDiYmJlhaWhrer1mzBmNjY/bv38+KFSu4ceMGAwcOpF27dpw6dYrly5ezcuVK5s6dCxR2TXruued46aWXiIqKYs+ePQwZMgRFUdBqtQwePJju3btz+vRpDhw4wLhx4x7YhW3z5s289dZbvP3225w9e5bx48fz4osvsnv37hI/x+nTp/POO+9w8uRJfHx8eO6554oEPlVFvsFFlYuMjCQ8PJz09HTDNrVaTWxsLP7+1fujXlEU3v3vaaITM2lgreGfz7fG1PjRja/zr98gYe5cMvfsAcCkcWOcZ3yI1R9fHtVBURSunrvDie1x3LiQatjeuJk9QX3dZOyEEKLWUHJyuNC6TSVlVthycbFd+1Il9z1+DJWFRZmKeOqppwgMDGTmzJmsXLmyyL5FixYxYsQIw1gGb29vvvjiC7p3787y5cu5evUqlpaWPP7441hbW+Pu7m74kW1ra4upqSkWFhZFutksX76c1q1bM2/ePMO2b775BldXVy5evEjDhg1ZuXIl3377reHJ/po1a2jcuPS9Aj777DN69+7Nhx9+CICPjw+RkZEsWrSIMWPGEB0dzZYtW9i/fz+d/lhf6fvvv8fV1ZWwsDCeffZZoHA859KlSw3rZK1ZswY/Pz8OHz5M+/btiY6OpkePHqWqU9OmTfn4448N76dPn46rqytLly5FpVLRrFkzbt68yXvvvceMGTOIj49Hq9UyZMgQ3N3dAWjZsiUAd+7cIS0tjccffxwvLy+AEruFf/LJJ4wZM4bXX38dgMmTJxu6a/Xs2fOBx73zzjs89thjAMyaNYvmzZtz6dIlmjVrVqpzLq9H9xeVqBUiIyPZsGFDkaACCvsobtiwgcjIyGqtz9f7LvPLmXhMjFQsf6ENDawfze42SkEBSV9/zeXHHy8MKkxMcHx1PE1+/qnaggpdgZ6oiHjWzTnMz0tPceNCKip14QrZQ6e3Y9CkINz8HSWoEEKICli4cCFr1qy57/v02LFjrF69GisrK8OrX79+hh4Effr0wd3dnSZNmjBy5Ei+//57srOzSyzr2LFj7N69u0ied3+oxsTEEBMTQ35+PsHBwYZjHBwc8PUt/TTuUVFRdO7cuci2zp07Ex0djU6nIyoqCmNj4yIL6zo6OuLr60tUVJRhm7GxMW3btjW8b9asGXZ2doY0iqKU+vvn3nzu1jE4OLjI8Z07dyYzM5Pr168TEBBA7969admyJc8++yxff/01KSkpQOHnMWbMGPr168cTTzzBkiVLiI+PL/Pnce+5FqfVPV2cXVwK1+ZKTEws1flWhLRYiCqj1+sJDw8vMU14eDjNmjVDra76GHf/pSQW/O88ADOeaE4b90dzsFv20aPcmjWLvOhLAFi0b4/zzBlo/ngyUtXysgs4t+8mp3ZdIzvtjwHZGiP8uzYkoJcr1g6PZjAnhKj7VObm+B4vXbed7KNHuTZu/EPTuX61Aou//DB9UNnl0a1bN/r168e0adMYM2aMYbter2f8+PFMnDjxvmPc3NwwNTXl+PHj7Nmzh23btjFjxgxCQ0M5cuTIA2cl0uv1PPHEEyxcuPC+fS4uLkXGOZRXcT/47+0m9qAuY8UdV1zgcHebj4/PQ3+c33Vvt6iH1VGlUmFkZMT27duJiIhg27ZtfPnll0yfPp1Dhw7h6enJqlWrmDhxIuHh4axfv54PPviA7du3P3CmzOLKelhQZGJict/xer2+VOdbEdJiIapMXFzcfS0Vf5Wenl7igKXKcj0lmwk/HEevwLNtGvNCB7cqL7O6aVNSuDl9OnEvjCQv+hJGDg40XLgAtzWrqyWoyLiTy+//iWbN+xEc2BxDdlo+lramBD/lxej5nejyjLcEFUKIWk2lUqG2sCjVy7JzZ4ydneFBP/BUKoydnbHs3LlU+VWk9XbBggX89NNPREREGLa1bt2ac+fO0bRp0/ted2c1MjY2JiQkhI8//pjTp09z5coVdu3aBYCpqSm6v0ybezdPDw+P+/K0tLSkadOmmJiYGCZpgcKB1hcvXiz1ufj7+/P7778X2RYREYGPjw9GRkb4+/uj1Wo5dOiQYX9ycjIXL14s0qVIq9Vy9OhRw/sLFy6QmppqaGEZMWIEO3bs4MSJE/fVQavVFhnkXlwdIyIiigQ5ERERWFtb06hRI6Dw/1Lnzp2ZNWsWJ06cwNTUlM2bNxvSBwUF8f777xMREUGLFi344Ycfii3Lz8+v2M+jJmfVLIm0WIgqk5mZWanpyiu3QMdr3x0nJbuAlo1smTO4xSPV/UbR60nbvJnERZ+gS00FwG7oUBpM/gdGZZwLuzxuX83gxParXDqWiKIv/CPr0NCSoD5ueLdzwugRHsMihPj7UhkZ4TTtfW68NakwuLj3Sfof3zFO095HVQ2zH7Zs2ZLnn3+eL7/80rDtvffeo2PHjrzxxhuMHTsWS0tLoqKi2L59O19++SU///wzly9fplu3btjb27N161b0er2h25KHhweHDh3iypUrWFlZ4eDgwBtvvMHXX3/Nc889x5QpU6hXrx6XLl1i3bp1fP3111hZWfHyyy8zZcoUHB0dcXJyYvr06cX2Srh9+zYnT54sss3Z2Zm3336bdu3aMWfOHIYNG8aBAwdYunQpy5YtAwrHigwaNIixY8eyYsUKrK2tmTp1Ko0aNWLQoEGGvExMTHjzzTf54osvMDExYcKECXTs2JH27QvHvEyaNIlffvmF3r17M2fOHLp06YK1tTVHjx5l4cKFrFy5stjpZgFef/11Fi9ezJtvvsmECRO4cOECM2fOZPLkyajVag4dOsTOnTvp27cvDRo04NChQ9y+fRs/Pz9iY2P56quvePLJJ2nYsCEXLlzg4sWLjBo1qtiypkyZwtChQ2ndujW9e/fmp59+YtOmTezYsaPU/z+qkwQWospYWVlVarryUBSFD8LOcuZGGg6WpvxrZBvMTGpmituqkHvxIrdmzSbnjxk3ND4+OIeGYtH6/lkuKpOiKFyLvMOJ7Ve5fj7FsL2Rrz1Bfdxway4DsoUQjz6bvn1hyeL717FwcqrydSz+as6cOWzYsMHwvlWrVuzdu5fp06fTtWtXFEXBy8uLYcOGAWBnZ8emTZsIDQ0lNzcXb29vfvzxR5o3bw4UDv4dPXo0/v7+5OTkEBsbi4eHB/v37+e9996jX79+5OXl4e7uTv/+/Q3Bw6JFi8jMzOTJJ5/E2tqat99+m7S0tPvq+8MPP9z3lH7mzJmEhoayYcMGZsyYwZw5c3BxcWH27NlFunmtWrWKt956i8cff5z8/Hy6devG1q1bi3T/sbCw4L333mPEiBFcv36dLl268M033xj2azQatm/fzueff86KFSt45513sLCwwM/Pj4kTJ9KiRYsHftaNGjVi69atTJkyhYCAABwcHHj55Zf54IMPALCxseG3335j8eLFpKen4+7uzqeffsqAAQNISEjg/PnzrFmzhuTkZFxcXJgwYQLjxxd2q9Pr9RjfM1vj4MGDWbJkCYsWLWLixImGrlSlHXhe3VRKWec3ewSlp6dja2tLWloaNjY2NV2dR4ZerzfcVA9iY2PDpEmTqmyMxdqDcXwYdha1Cr57uQOdmtarknKqmz47m6Tly0letRq0WlQWFtSfMAGHkS+guucPa2XTafVEH03g5ParJN8obCZWqVU0bV2fwD5uNHCX+0cIUXfk5uYSGxuLp6cnZmbl76qp6HRkHz2G9vZtjOvXx6Jtm2ppqRDFW716NZMmTSL1j1b8umTBggV89913nD17tlrLLeleKMvvZGmxEFVGrVYTGBjIb7/99sA09z7lqGzH4u4w+6dzAEwd0OyRCSoydu8mYc5cCm7eBMAqpDfO06Zh0rBhhfLV6xXio1PJSs/D0kaDi7cdanVhq0NejpZz+25wetd1slLzADDWGOHf2YWAXq7Y1CvfoEMhhHgUqIyMsOxQumllhShOdnY258+fZ9WqVQwYMKCmq1NuEliIKnN3WjgoHASWn59v2GdjY0P//v2rbB2LxIxcXvvuOAU6hcdaujC2a5MqKac6FcTHkzBvHhnbC/tVmjRsiNMHH2Dd68HzWJdWzIlE9q2PNgQNAJZ2GtoO9CDtdg7n9t2gILdwEJ+FjSmtejWmeddGmFlWXeuIEEII8Xfx1VdfMXv2bEJCQpgxY0ZNV6fcpCsU0hWqqhw5coRffvkFc3NzJkyYQGJiIpmZmVhZWeHu7l5lLRX5Wj3P//sgR66k4ONkxebXO2OpqbsxtFJQwJ2133F76VKU7GwwNsbxxTHUe+011GVcTKk4MScSCV/x8CZXe2cLAvu44dveGSMTGZAthKj7KqsrlBB1nXSFErVaTk6OYcq6nj17YmlpiaenZ7WUPW9rFEeupGCtMWbFyLZ1OqjIPnGCW6GzyLtwAQDzNm1wnjkDMx+fSslfr1fYt77kecfVxir6j22BR8t6qNQyIFsIIYQQxau7v7hErfbbb7+Rk5ND/fr1adOmTbWVu+n4dVZHXAFg8fBAPOtZlnxALaVLTSXxs89J/WOGDyNbWxq8OwXbp55CVYktPfHRqUW6PxVHr1UwNTOWoEIIIYQQJZLAQlS65ORkw8I1ffv2xaiaZsY4eyON9zedAeCt3t709nOqlnIrk6IopG/ZQsLCj9HduQOA7dNDaPDOOxjbV+5K4Xk5Ws79fqNUabPSSw4+hBBCCCEksBCVbvv27ej1epo2bYq3t3e1lJmSlc+r3x0jT6unV7MGvNW7esqtTHmXL3MrdBbZhw8DYNrUC5fQUCzatq3UcjLu5HJq1zUif79pGJD9MJY2mkqtgxBCCCEePRJYiEoVGxvL+fPnUalU9K2mhYF0eoWJ605wPSUHd0cLPh8WaJgmtS7Q5+aS9K9/kbzyGygoQGVmRr03Xsdx9GhUpqaVVk5xK2TbOVuQk55PXrb2gcdZ2RdOPSuEEEIIURIJLESl0ev1hIeHA9C2bVsaNGhQLeV+uu0C+6KTMDcx4quRbbE1rztToGbu28et2XMouHYNAKvu3XH68ENMGzeqlPwVvULcuWRO7rjKjQuphu2GFbL9Hbh86naJs0J1GepdpwI1IYQQQtQMCSxEpTl58iQJCQmYmZlV21Lz4WfjWbYnBoCPn2mFr7N1tZRbUQUJCSTMX0DGH4GYsbMzTtOnYR0SgkpV8R/xugI9Fw7f4uSOa6TE37NCdpsGBPVxo77bn5+TV1AD+o9vcd86Flb2GroM9cYrqHoCRCGEEI+mHj16EBgYyOLFi2u6KhWiUqnYvHkzgwcPrumq1FoSWIhKkZeXx86dOwHo3r07lpZVPxvTpcQM3t5wCoCxXT15IqBiK09XB0WrJeWHH7m9ZAn6rCwwMsJh5EjqTZiAkVXFP7PcrALO/naDM7uvk51euCChiZkR/l0aEtDLFWuH4udp9wpqgGdA/QeuvC2EEOLB9HqlWv9+jhkzhjVr1jB//nymTp1q2B4WFsZTTz1FZSxRVpXBQG0INFavXs2kSZNITU0t9THx8fHYV/JEKo8aCSxEpdi3bx9ZWVk4ODjQrl27Ki8vI7eAcWuPkZWvI7iJI+/1b1blZVZUzpkz3JoZSm5kJADmAQE4zwrFrFnF6552O4dTu64Rtf8m2nw9ULhydkAvV/y7NkRj/vBbXa1W0chX/mAKIURZxJxIvK/F19JOQ9dhVdvia2ZmxsKFCxk/frz82K0mzs7ONV2FWk+WzxUVlpKSwoEDB4DC6WWNjSs/XtXpFQ7EJPN/J28QcSmJf6w/yeXbWTS0NWPpiCCMjWrvf2Vdejq3Zs/mytBh5EZGoraxwXnWLNx//KHCQcWt2DTCvzrD9zMOcGb3dbT5ehwbWxHyoj8j5wYT1NetVEGFEEKIsos5kUj4irP3rQeUlZpH+IqzxJxIrLKyQ0JCcHZ2Zv78+Q9MExERQbdu3TA3N8fV1ZWJEyeSlZVl2L9s2TK8vb0xMzPDycmJZ555BihsEdm7dy9LlixBpVKhUqm4cuUKAJGRkQwcOBArKyucnJwYOXIkSUlJhjyzsrIYNWoUVlZWuLi48Omnn5b53DZu3Ejz5s3RaDR4eHjcl0dKSgqjRo3C3t4eCwsLBgwYQHT0n4u9rl69Gjs7O8LCwvDx8cHMzIw+ffpw7Y/xjA+yfPlyvLy8MDU1xdfXl7Vr1xbZr1KpCAsLA+DKlSuoVCo2bdpEz549sbCwICAgwPB76O+q9v4aE3XGjh070Ol0eHp64uvrW+n5h5+Np8vCXTz39UHeWneSEf8+xI6oRIzVKpa/0AZHq9o5FaqiKKT9/AsxAx8j5YcfQVGwHfQkXv/biv2woeVe6E7RK1w+eZtNnxxj48JjxBy/jaKAm78DT74VyLDp7fDt4IyRsdzeQghRFoqiUJCnK9UrL0fLvvUXS8xv3/po8nK0pcqvrN2XjIyMmDdvHl9++SXXr1+/b/+ZM2fo168fQ4YM4fTp06xfv57ff/+dCRMmAHD06FEmTpzI7NmzuXDhAuHh4XTr1g2AJUuWEBwczNixY4mPjyc+Ph5XV1fi4+Pp3r07gYGBHD16lPDwcBISEhg6dKih3ClTprB79242b97Mtm3b2LNnD8eOHSv1eR07doyhQ4cyfPhwzpw5Q2hoKB9++CGrV682pBkzZgxHjx5ly5YtHDhwAEVRGDhwIAUFBYY02dnZfPTRR6xZs4b9+/eTnp7O8OHDH1ju5s2beeutt3j77bc5e/Ys48eP58UXX2T37t0l1nf69Om88847nDx5Eh8fH5577jm02gfPtPiok0eZokKuXr3KuXPnAOjXr1+lDDy+V/jZeF777jjF/bnV6hXi03IIcLWr1DIrQ/6VK9yaPZusiMInF6aenjjPnIllxw7lzlObr+P8wVuc2nmN1IRsANRGKnzaOxEY4oZjI6tKqbsQQvxdafP1fPXW3krLLys1j3//47dSpR23pDsmmrItKPvUU08RGBjIzJkzWblyZZF9ixYtYsSIEUyaNAkAb29vvvjiC7p3787y5cu5evUqlpaWPP7441hbW+Pu7k5QUBAAtra2mJqaYmFhUaT7z/Lly2ndujXz5s0zbPvmm29wdXXl4sWLNGzYkJUrV/Ltt9/Sp08fANasWUPjxo1LfU6fffYZvXv35sMPPwTAx8eHyMhIFi1axJgxY4iOjmbLli3s37+fTp06AfD999/j6upKWFgYzz77LAAFBQUsXbqUDh06GOrh5+fH4cOHad++/X3lfvLJJ4wZM4bXX38dgMmTJ3Pw4EE++eQTevbs+cD6vvPOOzz22GMAzJo1i+bNm3Pp0iWaVUI357pIAgtRbvdOL9u6detK73uo0yvM+imy2KACQAXM+imSPv7OGNWSQcb6vDySv/43yV99hZKfj0qjod6r43F4+WXU5VyTIicjnzN7rnNm7w1yMwufxpiaG9OiWyNa9WyMpV3tbLERQghR9RYuXEivXr14++23i2w/duwYly5d4vvvvzdsUxQFvV5PbGwsffr0wd3dnSZNmtC/f3/69+/PU089hYWFxQPLOnbsGLt378bK6v4HWTExMeTk5JCfn09wcLBhu4ODQ5l6M0RFRTFo0KAi2zp37szixYvR6XRERUVhbGxsCBgAHB0d8fX1JSoqyrDN2NiYtvcsMNusWTPs7OyIiooqNrCIiopi3Lhx95W7ZMmSEuvbqlUrw79dXFwASExMlMBCiLI6c+YMN2/exNTUlF69elV6/odj7xCflvvA/QoQn5bL4dg7BHs5Vnr5ZZUVEcGtWbPJj4sDwLJLF5xnfIipm1u58ktNyObkjqucP3gLXUHhgGxrBzMCervi19kFUzO5fYUQojIZm6oZt6R7qdLejE7l56WnHpru8QkBNCzFIqPGpuXrvtqtWzf69evHtGnTGDNmjGG7Xq9n/PjxTJw48b5j3NzcMDU15fjx4+zZs4dt27YxY8YMQkNDOXLkCHZ2xddXr9fzxBNPsHDhwvv2ubi4FBnnUF6KotzX++HebmIP6jJW3HHF9aIoqWdFceU+rCeGicmfa2fdTavX60s85lEmv0xEueTn57Njxw4AunbtWuzTi4pKzHhwUFGedFVFe/s2CQsWkv7LLwAY169fuCZFObqGKYpCfEwaJ7dfJfZ0Enebaxq4WxPYxw2voPqoa/FAdSGEqMtUKlWpuyO5+jtgaae5b+D2vazsNbj6O1T51N0LFiwgMDAQHx8fw7bWrVtz7tw5mjZt+sDjjI2NCQkJISQkhJkzZ2JnZ8euXbsYMmQIpqam6HS6Iulbt27Nxo0b8fDwKHailqZNm2JiYsLBgwdx++OhWkpKChcvXqR799IFbP7+/vz+++9FtkVERODj44ORkRH+/v5otVoOHTpk6AqVnJzMxYsX8fPzMxyj1Wo5evSooXXiwoULpKamPrAlwc/Pj99//51Ro0YVKffePMXDSWAhyiUiIoKMjAzs7Ozo2LFjlZTRwLr4NRfKm66yKTodKevXc/vzxegzMkCtxv7556n/1kSMyhho6fUKl0/c5uSOqyTEphu2e7SqR1AfV1ya2lX6+BUhhBDlp1ar6DrMm/AVZx+YpstQ72pZD6hly5Y8//zzfPnll4Zt7733Hh07duSNN95g7NixWFpaEhUVxfbt2/nyyy/5+eefuXz5Mt26dcPe3p6tW7ei1+sN3ZY8PDw4dOgQV65cwcrKCgcHB9544w2+/vprnnvuOaZMmUK9evW4dOkS69at4+uvv8bKyoqXX36ZKVOm4OjoiJOTE9OnT0ddzGQlt2/f5uTJk0W2OTs78/bbb9OuXTvmzJnDsGHDOHDgAEuXLmXZsmVA4ViRQYMGMXbsWFasWIG1tTVTp06lUaNGRbpQmZiY8Oabb/LFF19gYmLChAkT6NixY7HdoKBw0PnQoUNp3bo1vXv35qeffmLTpk2Gh6iidCSwEGWWlpZmeJrQp0+fIs2Alamtuz1mJmpyC4pvUlQBzrZmtPd0qJLyS5Jz7hy3QmeRe+YMAGYtWuAcGop5i+Zlyic/V8v5A/Gc2nmN9KTClhcjYzW+HZ0JDHHF3rnqFxoUQghRPl5BDeg/vsV961hY2WvoMrRq17H4qzlz5rBhwwbD+1atWrF3716mT59O165dURQFLy8vhg0bBoCdnR2bNm0iNDSU3NxcvL29+fHHH2nevPB77J133mH06NH4+/uTk5NDbGwsHh4e7N+/n/fee49+/fqRl5eHu7s7/fv3NwQPixYtIjMzkyeffBJra2vefvtt0tLS7qvvDz/8wA8//FBk28yZMwkNDWXDhg3MmDGDOXPm4OLiwuzZs4t081q1ahVvvfUWjz/+OPn5+XTr1o2tW7cW+T1iYWHBe++9x4gRI7h+/TpdunThm2++MezX6/VFWl0GDx7MkiVLWLRoERMnTsTT05NVq1bRo0eP8l+UvyGVUhnLM9Zx6enp2NrakpaWho2NTU1Xp9bbtGkTp0+fxs3NjRdffLFKnqQrisLsnyNZtf9Ksfvvlrj8hdb0b+FS6eU/iC4zk9tffEHKd9+DXo/ayor6k/+B/bBhqIxKP5tHVloeZ3Zf5+xvN8jLLpyWTmNpTMvujWnZozEWNuUb6C2EEKL0cnNziY2NxdPTEzOz8rd+V/fK26JkpVlVe8GCBXz33XecPfvgFqe/k5LuhbL8TpYWC1Em169f5/Tp00DVTC9717I9MYag4sXOHoSfvVVkILezrRkzn/CvtqBCURQyft1Gwrx5aBMLFzyyeewxGrz3LiYNSv9EKvlmJqd2XOPC4VvotYUxvW19cwJDXPENdsHEtGxTDQohhKh5arWKRr6y+nVdkJ2dzfnz51m1ahUDBgyo6eo8cmp9YBEaGsqsWbOKbHNycuLWrVtA4Q++WbNm8dVXX5GSkkKHDh345z//aWjKE5VHURR+/fVXAAICAmjUqFGVlLP+yFUW/XoBgBmP+/NSF08+eMyfw7F3SMzIpYF1Yfen6ppiNv/aNW7NnkPWvn0AmLi74TxjBladO5fqeEVRuHEhhRPbr3H1XLJhu3MTW4L6uOERUE+ebAkhhBDV4KuvvmL27NmEhIQwY8aMmq7OI6fWBxYAzZs3LzJ4xuieLicff/wxn332GatXr8bHx4e5c+fSp08fLly4gLW1dU1U95F17tw5rl27homJCb17966SMn49d4v3NxWOW3i9hxcvdfEEwEitqvYpZfX5+dz55huSlv8LJS8PlYkJjuPG4ThuLGrNw9eO0On0xBxL5MT2qyRdyyzcqIImgfUJDHHDxcu2is9ACCGE+PsZM2ZMkTEZ95o0aZJh0UBR+epEYGFsbFzs4muKorB48WKmT5/OkCFDgMKVFZ2cnPjhhx8YP358dVf1kVVQUMD27duBwgVjqmIsyqHLybz54wn0Cgxr68qUfqVfUKeyZR06zK1Zs8i/fBkAi+COOM+YgcbT86HH5udoidx/k1M7r5GZUjiYz9hEjV8nF1r1dsWuwYMXHxJCCCGEqKvqRGARHR1Nw4YN0Wg0dOjQgXnz5tGkSRNiY2O5desWffv2NaTVaDR0796diIiIBwYWeXl55OX9OXtDenp6senEnw4ePGgYtHN33uiyUPQKebFp6DPyUVubovG0RXVP95/Im+m88u1R8rV6+vg78dFTLWpkelVtcjKJHy8i7f/+DwAjR0ecpk7F5vHHHlqfjDu5nN59nch9N8jPLZz729zahFY9G9OiW2PMrKpm9iwhhBBCiNqg1gcWHTp04Ntvv8XHx4eEhATmzp1Lp06dOHfunGGchZOTU5FjnJyciPtj9ePizJ8//75xG+LBMjIy2PfH+IKQkBBMTcs2Y1HO2SRSf4pBl5Zv2GZka4rdE16Yt6jH1eRsRq86TEaulvYeDnz5XBDG1bwInKLXk/qf/5L42Wfo09JApcL+ueHUnzQJo4e0zty+lsHJHVe5dCQRvb5wQLa9swWBIW74dHDC2EQGZAshhBDi0VfrA4t7R+y3bNmS4OBgvLy8WLNmjWFhtrIuwf7+++8zefJkw/v09HRcXV0rueaPjl27dpGfn0+jRo1o0aJFmY7NOZtE8ndR923XpeWT/F0Uxk83ZdSe89zOyKOZszVfj26LWTX/EM89f55bobPI+WOhHo2/Hy6hoZi3avXAYxRF4VrkHU5sv8r18ymG7Q297Qjq44Z7C8ciLTJCCCGEEI+6Wh9Y/JWlpSUtW7YkOjqawYMHA3Dr1i1cXP6cdjQxMfG+Vox7aTQaNKUYfCsgPj6eEydOAIXTyxa3euaDKHqF1J9iSkyTuPkSV/XZNLY359uX2mNrXn3dhfRZWdxe+k/ufPst6HSoLS2p/9ZE7EeMQGVc/K2h0+qJPpLAie1XuXMzCwCVWkXT1vUJ7ONGA3dZB0UIIYQQf091LrDIy8sjKiqKrl274unpibOzM9u3bycoKAiA/Px89u7dy8KFC2u4pnXfvdPLtmjRAjc3tzIdnxebVqT7U3Ec9NDVzIzQlzvQwKb8ixOVhaIoZO7cya25H6H9ozuddf/+OL0/FZMHBKS5WQWc23eDM7uvk/XHORlrjGjeuSGtejXGpp55tdRdCCGEEKK2qvWBxTvvvMMTTzyBm5sbiYmJzJ07l/T0dEaPHo1KpWLSpEnMmzcPb29vvL29mTdvHhYWFowYMaKmq17nnT9/nitXrmBsbExISEiZj9dnlBxU3PV+Ny8861mWOf/yKLhxg1tzPyJz924ATBo3xnnGh1h161Zs+vSkHE7tukbk/ni0eYUDsi1sTQno5Yp/l4aYWcqAbCGEEHVfaVarrgweHh4y5esjrNYHFtevX+e5554jKSmJ+vXr07FjRw4ePIi7uzsA7777Ljk5Obz++uuGBfK2bdv2SK9hodfruBF1jszUFKzs7Gnk1xy1unLHJWi1WrZt2wZAcHAwdnZ2Zc5DbV26Qd4e7mXPu6yUggLurFnD7X8uQ8nJARMTHF9+iXrjx6M2v7+1ITEunRPbrxJzLBGlcDw2jo0sCQxxw7udE0bG1Tu4XAghRO1VHd/L9xozZgxr1qwBCqfkd3V1ZciQIcyaNQtLy/I9qBs2bBgDBw6stDo+KFA5cuRIuesoar9aH1isW7euxP0qlYrQ0FBCQ0Orp0I1LPpQBLtWf0XmnSTDNiuHevQaMw7vDmWfBvZBDh8+TEpKClZWVnTp0qVceWg8bVGZG6PkaIvdrwDGtho0nlW7UFz2sWPcCg0lL/oSABbt2uEcOhONl1fR+ugVrpxN5uT2q9yMTjVsd/WzJ7CPG65+DjUyBa4QQojaq7q+l/+qf//+rFq1ioKCAvbt28crr7xCVlYWy5cvL5KuoKAAE5OHt66bm5tjXsyDtspWv379Ki9D1Bx57FqHRB+KYMtn84r88QLIvJPEls/mEX0oolLKycrKYu/evQD06tWr3APdC25movzRfeivFEAF2D3RpMpmT9KmpHBz+nTinn+BvOhLGNnb47JgPm7frikSVGgLdJzbd4MfZh1i67LT3IxORa1W4dvBmWEftOPJt4Jw83eUoEIIIUQR1fW9XByNRoOzszOurq6MGDGC559/nrCwMEJDQwkMDOSbb76hSZMmaDQaFEXh6tWrDBo0CCsrK2xsbBg6dCgJCQmG/FavXn1f74SffvqJNm3aYGZmRpMmTZg1axZa7Z8PC1NTUxk3bhxOTk6YmZnRokULfv75Z/bs2cOLL75IWloaKpXK8BAYCrtCLV682JDHw+p193zWrl2Lh4cHtra2DB8+nIyMjCr5XEXF1PoWC1FIr9exa/VXJabZveYrvNp1qHDz6+7du8nLy8PZ2ZnAwMBy5aFLyyPp20jQK5g0siLrTg6mOX8GGca2GuyeaIJ5i3oVqmtxFEUhbdNmEhctQvdHE6zds8/S4O3JGN3zRzMnM5+ze29wZs91cjIKADA1M6J510a06tUYK/vqGUwuhBCidlAUBe09C+iWRK/XsWvVihLT7Fq9AreWAaX6XjbWaCr0AMvc3JyCgsLvskuXLrFhwwY2btyIkVFh2YMHD8bS0pK9e/ei1Wp5/fXXGTZsGHv27Ck2v19//ZUXXniBL774gq5duxITE8O4ceMAmDlzJnq9ngEDBpCRkcF3332Hl5cXkZGRGBkZ0alTJxYvXsyMGTO4cOECAFZWVveVoShKqeoVExNDWFgYP//8MykpKQwdOpQFCxbw0UcflfvzElVDAos64kbUufueiPxVRnISN6LO4dr8wesvPExiYiLHjh0DCptZyzK97F36fB1JayPRp+dj7GTBpV4Neen7Y/ijZlDTBgzv6YnG065KWiryoqOJnzWLnKOF56Dx8cE5NBSL1kGGNKmJ2ZzaeY3zEfFoC/QAWNlrCOjtin/nhpiay20hhBB/R9q8PL4Y/Uyl5Zd5J5mlLw4rVdqJa/6LiVn5HmgdPnyYH374gd69ewOFM2SuXbvW0O1o+/btnD59mtjYWMO6XWvXrqV58+YcOXKEdu3a3ZfnRx99xNSpUxk9ejQATZo0Yc6cObz77rvMnDmTHTt2cPjwYaKiovDx8TGkucvW1haVSoWzs/MD671jx45S1Uuv17N69WrD+NmRI0eyc+dOCSxqIfkFVUdkpqY8PFEZ0hXn7vSyiqLQrFkzPDw8ypVHyn8vUnA9E7WFMUl9XRm3/jh5eoWGLRsw8rkgjKogoNDn5JC0bDnJq1aBVovKwoL6EybgMPIFVH/0LY2PSePk9qtcPnW7sC8WUN/NmsA+rni1boBRNa/2LYQQQpTXzz//jJWVFVqtloKCAgYNGsSXX37JsmXLcHd3LzKWISoqCldX1yKLAfv7+2NnZ0dUVFSxgcWxY8c4cuRIkR/vOp2O3NxcsrOzOXnyJI0bNzYEFeVR2np5eHgUmZTHxcWFxMTEcpcrqo4EFnWElZ19paYrTnR0NDExMajVavr27VuuPDJ2XiXndBKoVeQ97sHoTafIytfRuakjnw0LqJKgImP3bhLmzKXg5k0ArEJ64zxtGiYNG6LXK1w+kcjJ7Ve5dTndcIx7C0cC+7jRyMdOxk4IIYQACrsjTVzz31KlvR51lk0LQh+absjUUBr7tShV2WXRs2dPli9fjomJCQ0bNiwyQPuvsy4pilLsd92DtkNhK8GsWbMYMmTIffvMzMwqZaB3aev118HnKpUKvV5f4fJF5ZPAoo5o5NccK4d6JXaHsnasRyO/5uXKX6fTGaaX7dixIw4ODmXOI/v0bdJ3XAXAqL87w7ZFkZyVT4tGNqwY2RaNceVOvVcQH0/CvHlkbN8BgHFDF5w/+ADrXr0oyNdxZs91Tu68RvrtHADUxoUDsgN7u+HQUKa6E0IIUZRKpSp1dyT3gKBSfS+7BwRVydSzlpaWNG3atFRp/f39uXr1KteuXTO0DkRGRpKWloafn1+xx7Ru3ZoLFy48sIxWrVpx/fp1Ll68WGyrhampKTpd8RO4VKReonaTwKKOUKuN6DVmHFs+m/fAND1Hjyv3H6+jR4+SlJSEhYUF3R6wWFxJ8q9nkPKfiwCYdHBm1LFYbqTm4OFoweoX22Olqbz/aopWy52133H7yy9RsrPB2BjHF8dQ77XXyNUac2jLZc7uvUFuVuEgNo2FMS26N6Jlj8ZY2pZvhishhBDiXlX9vVyZQkJCaNWqFc8//zyLFy82DJLu3r07bdu2LfaYGTNm8Pjjj+Pq6sqzzz6LWq3m9OnTnDlzhrlz59K9e3e6devG008/zWeffUbTpk05f/48KpWK/v374+HhQWZmJjt37iQgIAALCwssLCwqXC9Ru0mn8jrEu0MnnvjHVPhLs6G1Yz2enDyt3PNl5+TkGGZf6NmzJ2ZlHDymS88n+dtIlAI9Jt52TLyVyIWEDOpba1j7cgfqWVXej/mckyeJfeZZEhcuRMnOxrx1azw3bcR4xKvs3RjHt9MiOLr1CrlZBdjUM6PrMB9Gz+9Mx0FeElQIIYSoVN4dOvHk5GlYORSd4bCi38uVTaVSERYWhr29Pd26dSMkJIQmTZqwfv36Bx7Tr18/fv75Z7Zv3067du3o2LEjn332mWGBYoCNGzfSrl07nnvuOfz9/Xn33XcNrRSdOnXi1VdfZdiwYdSvX5+PP/64UuolajeVotxdV/jvKz09HVtbW9LS0rCxsanp6pTo9tUrfDtlAkYmJvQdPxFrB8cKr/AZHh7OwYMHqV+/Pq+++qpharrSUAp0JK44TcH1TIzqmzPXXs8vF29jbWbMhvHB+LlUzuepS0sj8bPPSd2wARQFI1tb6k+ZQlaLnpzaeY0rZ5INaZ08bQgMcaNJUH3UVbRGhhBCiLovNzeX2NhYPD09y/xQ7V7VvfJ2VVixYgVz5szh+vXrNV0VUQNKuhfK8jtZukLVMTcvRALQyNcP/649K5xfUlIShw8fBgqnly1TUKEo3PlvNAXXM1GZG7PSyYhfziagMVazcnS7SgkqFEUh/aefSFiwEN2dOwBYP/U0mf1fYkdEMok7ThYmVIFnq3oE9XHD2ctWBmQLIYSoNmq1UYWmeq9p165dY+vWrTRvXr5xmkLcJYFFHXPzQhQADX39KyW/bdu2odfr8fb2xuue1ahLI2P3NXJO3Qa1im0+lvz71DXUKlg6ojXtPcs++Puv8i5f5tas2WQfOgSA2rsZ6UPe4Ui0iowfrwBgZKKmWbALgb1dsXOyKCE3IYQQQhSndevWNGrUiNWrV9d0VUQdJ4FFHXPjYmFg0cin4rMlxMTEcPHixXJNL5tzNon0bXEAnG1uy6xThbNBLRjSij7+ThWqlz43l6QVK0j+90ooKCDPugHJAydyOb0e+YcKV0Q1tzahRffGtOzeCHNr0wqVJ4QQQvyd3b59u6arIB4REljUIVmpKaQl3AKVChefZuXKQ6/XExcXR0ZGBrt27QKgXbt2RRbSeZj8G5ncWX8BgFtNbXj1TGFQ8W5/X4a2cy3p0IfK3Pc7t2bPpuDaNTItGxLfaQQ3jDzRJwDosHOyIDDEFd8Ozhib1q3+q0IIIYQQjzIJLOqQG3+Mr6jv6o7GouzrMERGRhIeHk56enqR7S4uLqXOQ5eRT/K351AK9GQ1tOD5mBsAvNTZk9e6l9CVSq+DuAjITEAxr092kinapDsY16+PRds2aJOSSVgwn/T/hZNi78u1tv8g2eqPubP14NLUlqA+bni0rIdKBmQLIYQQQtQ6EljUIXcHbjf0LXs3qMjISDZs2FDsvrCwMExNTfH3L3nchlKgJ/nbSHRp+WjtTBmRmEieojA4sCEfPOb34AHTkVsg/D1Iv0n6NTMSjtuizfmztUFtbY2uQMct2xZcazuNTKtGQOGsuk2CGhDYxxVnT9syn7MQQgghhKg+EljUITfKOXBbr9cTHh5eYprw8HCaNWuGWl380iaKopCy8SL51zJQNEa8lpNOslZPd5/6LHo24MHTukZugQ2jAIX0a2bc2G9fZLfWyIwbdh243rgHeZrCfcamavw7NySgtys29czLdK5CCCGEEKJmSGBRRxTk5ZIYGwMUTjVbFnFxcfd1f/qr9PR04uLi8PT0LHZ/xp7rZJ+8DSqYbZxLVFY+ga52LH+hNSZGD1hnUa8rbKlAQdFDwvG7rQ4qcjX2XGvck5sundAZFwYPptoMgoa0okX3xphZmpTpHIUQQgghRM2SwKKOSIi5hF6nw9LeAZv6ZZt1KTMzs0Lpcs4lkf7rFQDWWOrZnplD0wZWrBrTDgvTEv4LxUVA+k0Asm+bos0xIsPKlauuvUls0BpFVdgdyjIrHtdrO3BOOIrH2JWYWRYf3AghhBBCiNpLAos64u7A7UY+JYxleAArK6typ8u/+ecMUHut4OvMTFxszfj2pfbYWz5kmteMW4V5ZBpzLi6Y6IABpNr7Gnbbp5zH7dpOHO5EcveMtDLlnRBCCCFEnfSAPiyitrl5sfwL47m7u9+3PPtf2djY4O7uDoBOr3AgJplfDsZxc+UZlHw90RYqZmSmY2dhwrcvtaehXQljH/R6OLeZnLB5HDj3OD8kLOGI2yRS7X1RKTqcEg7T7uh8gk59ieM9QQWAcRmmvRVCCCFqA0WvkBuTSvbJRHJjUlH0SpWXmZiYyPjx43Fzc0Oj0eDs7Ey/fv04cOBApZWRlZXFe++9R5MmTTAzM6N+/fr06NGDn3/+udLKEI8WabGoAxS93rDidlnHVwAkJCSQn59fYpr+/fujVqsJPxvPrJ8iSU7LZQkWGGPMdfRMzM7E1MSIlaPb4e1kXXwmOi2c3Uha2FKOR7bkkuUM8h0Lx1UY63JolPA7jeL2YJaXev+xKhXGTk5YtG1T5vMTQgghakrO2SRSf4pBl/bn96yRrSl2T3hh3qJelZX79NNPU1BQwJo1a2jSpAkJCQns3LmTO3fuVFoZr776KocPH2bp0qX4+/uTnJxMREQEycnJlVaGeLRIYFEH3Ll5ndysTIxNNdT3aFKmY7Ozs1m/fj16vR4XFxeysrKKDOS2sbGhf//++Pv7E342nte+O44CTMeMlhiTgcIUsskA3ujiQRt3+/sL0ebD6XXc3riKI5eDibOaht5eA4CZPoMWRmEEuvxKnl7HjYt3j7+nneKPrl1O095HZSSL3gkhhKgbcs4mkfxd1H3bdWn5JH8XheMLflUSXKSmpvL777+zZ88eunfvDhT2Tmjfvr0hTVpaGlOmTCEsLIzc3Fzatm3L559/TkBAgCHNggUL+Pzzz8nOzmbo0KHUr1+f8PBwTp48CcBPP/3EkiVLGDhwIAAeHh60aVP0AWBeXh4ffvghP/74I4mJibi5uTF16lRefvlldDod48aNY9euXdy6dQs3Nzdef/113nrrLcPxY8aMITU1lS5duvDpp5+Sn5/P8OHDWbx4MSYmMpFLXSOBRR1wd3yFc1NvjIxLf8n0ej2bNm0iNTUVe3t7Ro0ahUajIS4ujszMTKysrHB3d0etVqPTK8z6KRIFGIEpAzBFi8KHZHNd0eOqVXN83w2uujegsY994fSyBblw8juu/ncTx25056bldLAt7F1no6QQ1McVv6d6YHRBBeEH0ahvQueU+9axMHZywmna+9j07VuZH5sQQghRJoqioBToS5dWr5CyJabENClbYjBtaleqhV1VJupSj6G0srLCysqKsLAwOnbsiEajKVo3ReGxxx7DwcGBrVu3Ymtry4oVK+jduzcXL17EwcGBDRs2MHPmTP75z3/StWtX1q5dyxdffEGTJn8+wHR2dmbr1q0MGTIEa+vieyuMGjWKAwcO8MUXXxAQEEBsbCxJSUlA4e+Qxo0bs2HDBurVq0dERATjxo3DxcWFoUOHGvLYvXs3Li4u7N69m0uXLjFs2DACAwMZO3ZsqT4PUXuoFEWp+o6AtVx6ejq2trakpaVhY2NT09W5T/iyzzm3dycdnhpKl+GjSn3c7t272bt3L8bGxrz88sslrrB9ICaZ574+SGeMmY85alR8Rg5n8nX0yjHBRvlzOI6lnSldAi6jPfozJ5J6ccfcx7CvAbdo85Qfnn0Di/6BfMjK29JSIYQQorrl5uYSGxuLp6cnZmZm6PN13JwRUSN1aTi7E2rT0n8Xbty4kbFjx5KTk0Pr1q3p3r07w4cPp1WrVuzatYunnnqKxMTEIkFH06ZNeffddxk3bhydOnUiICCA5cuXG/Z37NiR3NxcQ4vFb7/9xvPPP09CQgIBAQF06dKFZ555hs6dOwNw8eJFfH192b59OyEhIaWq9xtvvEFCQgL//e9/gcIWiz179hATE4PRH78Fhg4dilqtZt26daX+PETF/PVeuFdZfidLi0Ud8OfA7YePr9DpdRxPPE70xWgu7r0IwOOPP15iUAGQmJFLE9TM/COo2Ew+Z/J1DMq+f+anrNQ8ft3TCFSvgjmo9FpcTW7SZkQ7GnbuVXwBaiPw7AoUdoKybPrQUxFCCCHEAzz99NM89thj7Nu3jwMHDhAeHs7HH3/Mv//9b27fvk1mZiaOjo5FjsnJySEmprCVJSoqildffbXI/uDgYHbv3m14361bNy5fvszBgwfZv38/u3btYsmSJcyaNYsPP/yQkydPYmRkZOiOVZx//etf/Pvf/yYuLo6cnBzy8/MJDAwskqZ58+aGoALAxcWFM2fOlPejETVIAotaLjstlZT4wrUgGnqXHFjsiNvBgsMLyEzLpNfNXphiyk37myTZJz20HGdjYxZigQUqjqJliZLLyzmFTzlU/LVpVlUYHSh6vE1jaftKdxwCpBuTEEKIuk1loqbh7E6lSpsXm0byqnMPTef4YnM0nrYPTacyKftEnWZmZvTp04c+ffowY8YMXnnlFWbOnMnrr7+Oi4sLe/bsue8YOzu7MpVhYmJC165d6dq1K1OnTmXu3LnMnj2b9957D3PzEmaIBDZs2MA//vEPPv30U4KDg7G2tmbRokUcOnTovjLupVKp0OtL1yVN1C4SWNRier2OUzvCAbCp1wBTiwffwDvidjB5z2TUejU9EntgqjclWZPMIdtDHNxzkM96fEaIe2EzpaJXyItNQ5+Rj9raFFNXa+ptv4YGNdfQ8SHZuGjVRbo/FUulpvmEZ3DwLWZAtxBCCFHHqFQqVKXsjmTmbY+RrWmR2aD+yshWg5m3fanGWFQGf39/wsLCaN26Nbdu3cLY2BgPD49i0/r5+XHw4EFGjfqzi/XBgwdLVYZWqyU3N5eWLVui1+vZu3dvsV2h9u3bR6dOnXj99dcN2+62mIhHkwQWtVT0oQh2rf6KzDuFrQ3pSYl8/cbL9BozDu8ORZ+m6PQ6FhxegKIoBCUHYZdvR646l4MNDqJX6VGhYuHhhfR07Ul+ZAqpW2LQpf/5h1BnpEKjU8hA4T1yMCOVEVxCT9eH1jMrPa9yT1wIIYSoA1RqFXZPeBU7K9Rddk80qZKgIjk5mWeffZaXXnqJVq1aYW1tzdGjR/n4448ZNGgQISEhBAcHM3jwYBYuXIivry83b95k69atDB48mLZt2/LWW28xevRo2rZtS5cuXfj+++85d+5ckcHbPXr04LnnnqNt27Y4OjoSGRnJtGnT6NmzJzY2NtjY2DB69Gheeuklw+DtuLg4EhMTGTp0KE2bNuXbb7/l119/xdPTk7Vr13LkyBE8PT0r/TMRtYMskFcLRR+KYMtn8wxBxV2Zd5LY8tk8og8VHVh2PPE4CdkJNMlognumO3r0HGpwiFzjXAAUFG5l3yIy4gjJ30Wi+0swYKRTUFC44FjAv7x+ZcGdEygZHUpVV0sbzcMTCSGEEI8g8xb1cHzBDyPbouMRjWw1VTbVLBTOCtWhQwc+//xzunXrRosWLfjwww8ZO3YsS5cuRaVSsXXrVrp168ZLL72Ej48Pw4cP58qVKzg5OQEwbNgwZsyYwXvvvUebNm2Ii4vjtddeK1JOv379WLNmDX379sXPz48333yTfv36sWHDBkOa5cuX88wzz/D666/TrFkzxo4dS1ZWFlC4DsaQIUMYNmwYHTp0IDk5uUjrhXj0yKxQ1K5ZofR6HV+/8fJ9QcW9rB3r8crSlajVhc21Wy9vZeH2hXSP744aNacdThNtG13kGLWiYvOVTzHN1cB9YyYAFAp0OYSnKejVhX8gVXotitroAenByl7DyI86FU49K4QQQtQxJc2EUxZ/7WKs8bSttu5PlSk0NJSwsDDDrFDi76OyZoWSFota5kbUuRKDCoCM5CRuRP05YMwGGzomdkSNmuuW14m2ib7vmObZTTHNNeNBQQKoMDGywN5Ug01mHF1cYgh53quE9NBlqLcEFUIIIf72VGoVZl52WAQ2wMyrdOtWCPEokjEWtUxmaspD0yjA5cuXSdWrsLCwIHJ3JOY6c9JN0jlW79h9sYAKFU1UDUtVfoDVZZrOfgoTBwcAjGys2bc+mqzUP7tPWdlr6DLUG6+gBqU+LyGEEEII8WiTwKKWsbIreYalAms78pzc2H3sJBw7adiuRcvBBgfRqrVF0t+dKvZJi8BSle8ZUs8QVAB4BTXAM6A+8dGpZKXnYWmjwcXbTloqhBBCiEdMaGgooaGhNV0NUYdJYFHLNPJrjpVDvWK7QxVY25HbyKvY44ww4gW3F9iUvomE7ATD9k76Nrx551lsb1sDoChK0RWxDfQYkYzGs/59e9RqFY1kSlkhhBBCCFECCSxqoVa9+xLxnx+KbFOAPCfXwjfFBAYqVOSeyyX08e84kniceul5BF+0wOyWBQB6RSFJq1DfWFVMcKEHVNjZbETl+W3VnJQQQgghhHikSWBRi/x17Yp76SysUUxKnto1PT2dc6s30krvii+FU9zpFYVr+QoX83QYZ8TR3uwk1o7d0fNny4QRydiZfI354NdAXbqFgYQQQgghhLiXBBa1xN21K/5KoXA24MuN83EpRT7NaIAX9ugVhav5CtF5OlTpVwlqb0XL8SMwinFE+d9U8lId0GOPmhQ0dimoBswH/ycr+ayEEEIIIcTfhQQWtYBer2PX6q+KbFP4o5XC2AS0+bgk6ilNZGGumKJVFHZnaFHSr3JOlcqhZv7sndAHI7UK/J9E1ewxzOIiIDMBrJzAvZO0VAghhBBCiAqRwKIW+OvaFXdnflJM/lzJU63To1d48LISCliiwVmxR61S4Rv3M6P8uqE1rg+ZBRyOvUOwl+MfmRmBZ9eqOyEhhBBCCPG3Iwvk1QKXjh4y/PvuzE+KsUmRNHq1ujCoUP543euP9x0LfFD/EXnUz03CLyXOkCQxI7cKai6EEEIIIUQhCSxqWPShCI5v/T+gcG6mPGf3wh1/nfnpj6DCVDHGgqKDuC3R0LugJZ76PxesU/LScMjLMLxvYF10eXYhhBBCVA69Xk9sbCxnzpwhNjYWvV5f5WUmJiYyfvx43Nzc0Gg0ODs7069fPw4cOFChfHv06MGkSZMqp5Lib0e6QtUgvV7Htq++BKDA2p58Fy+UkoY6qCBfpaV3XgtUqMhR5WOOBme9naGlQlEUlJwUdEnR3PHthQpwtjWjvadDCRkLIYQQojwiIyMJDw8nPT3dsM3Gxob+/fvj7+9fZeU+/fTTFBQUsGbNGpo0aUJCQgI7d+7kzp075cqvoKAAExOThycUogTSYlGDDm3aQG5mBiYNW5LbyAt9KcdP56oKaKg40ETnREO9fZGgAiD3zHoSzW2JrNcEgJlP+BcO3BZCCCFEpYmMjGTDhg1FggoonP59w4YNREZGVkm5qamp/P777yxcuJCePXvi7u5O+/btef/993nssccAuHr1KoMGDcLKygobGxuGDh1KQsKfC+iGhoYSGBjIN998Q5MmTdBoNIwePZq9e/eyZMkSVCoVKpWKK1euVMk5iEfTIxNYLFu2DE9PT8zMzGjTpg379u2r6SqVSK/XcShsAxZe3bljo3nwoOximP/RFargL2MtlJwUcg7/C238CVa0HEQDOwuWv9Ca/i1KM1GtEEII8femKAr5+fmleuXm5vK///2vxPzCw8PJzc0tVX53Hw6WhpWVFVZWVoSFhZGXl1fseQwePJg7d+6wd+9etm/fTkxMDMOGDSuS7tKlS2zYsIGNGzdy8uRJvvjiC4KDgxk7dizx8fHEx8fj6upa6noJ8Uh0hVq/fj2TJk1i2bJldO7cmRUrVjBgwAAiIyNxc3Or6eoV6+B/12HbqBNxJlmlDyruzvyktwPgcLYOFAVrXTZNz/4bfdJF9PXqc2vyTN7s3Yf2ng7SUiGEEEKUUkFBAfPm3b+mVHmlp6ezYMGCUqWdNm0apqamD08IGBsbs3r1asaOHcu//vUvWrduTffu3Rk+fDitWrVix44dnD59mtjYWENgsHbtWpo3b86RI0do164dAPn5+axdu5b69f9cNNfU1BQLCwucnZ3LeLZCPCItFp999hkvv/wyr7zyCn5+fixevBhXV1eWL19e01Urll6v4+BP/0ecWdmCCiic+UmlQLZeIUmrJ0mnYByowXnqWNzWrMZ/7y56jxtOsJejBBVCCCHEI+rpp5/m5s2bbNmyhX79+rFnzx5at27N6tWriYqKwtXVtUhrg7+/P3Z2dkRFRRm2ubu7FwkqhKioOt9ikZ+fz7Fjx5g6dWqR7X379iUiIqLYY/Ly8oo0Hf61b2RVuxF1jnr1W5OuKv0UsGaY0LmgGR66wj8AZ3N0ZKgUTtRT8dq4EAkihBBCiAoyMTFh2rRppUobFxfH999//9B0zz//PO7u7qUqu6zMzMzo06cPffr0YcaMGbzyyivMnDmTyZMno/rr7JIUdpG6d7ulpWWZyxSiJHW+xSIpKQmdToeTk1OR7U5OTty6davYY+bPn4+tra3hVd39BzNTU9CZlv4PiIlixPC8LoXTyarSyFM2s9/sBF/b5PHSMBmYLYQQQlQGlUqFqalpqV5eXl7Y2NiUmJ+NjQ1eXl6lyq+4QKCs/P39ycrKwt/fn6tXr3Lt2jXDvsjISNLS0vDz8ysxD1NTU3Q6XYXrIv6e6nxgcddfb8i/RuX3ev/990lLSzO87r3xqoOVnT1G+QWlS6xAl3w/zLN/oZ7J+6hNJ7HI2IYIhwCWjZSB2UIIIURNUKvV9O/fv8Q0/fv3R62u/J9aycnJ9OrVi++++84wluI///kPH3/8MYMGDSIkJIRWrVrx/PPPc/z4cQ4fPsyoUaPo3r07bdu2LTFvDw8PDh06xJUrV0hKSqqWNTnEo6POd4WqV68eRkZG97VOJCYm3teKcZdGo0Gj0RS7rzo08mtOesYnqKybFA6deNBDCgWaaV1xSovgJ4cb2AW8gYlXZ8bYWMrAbCGEEKKG+fv7M3To0Gpfx8LKyooOHTrw+eefExMTQ0FBAa6urowdO5Zp06ahUqkICwvjzTffpFu3boYg6Msvv3xo3u+88w6jR4/G39+fnJwcYmNj8fDwqJLzEI8elVKW+c1qqQ4dOtCmTRuWLVtm2Obv78+gQYOYP3/+Q49PT0/H1taWtLS0hzZrVpboQxHs3xTBFbPMwg1/jREUcNba0qYggo02gfQY/JK0TgghhBCVKDc3l9jYWMN09eWl1+uJi4sjMzMTKysr3N3dq6SlQoiqUtK9UJbfyXW+xQJg8uTJjBw5krZt2xIcHMxXX33F1atXefXVV2u6ag/k3aFT4T82RRBnlkmR6E4Bj1wblJaOaDv8k4+86kvrhBBCCFFLqdVqPD09a7oaQtS4RyKwGDZsGMnJycyePZv4+HhatGjB1q1bSzULQ03y7tAJr3YdiNq7m5O/HKPA2AQTrRaXp0LoHhwkwYQQQgghhKgzHomuUBVVE12hhBBCCFGzKqsrlBB1XWV1hZIOgEIIIYQQQogKk8BCCCGEEEIIUWESWAghhBDib016hYu/u8q6BySwEEIIIcTfkpGREQD5+fk1XBMhalZ2djYAJiYmFcrnkZgVSgghhBCirIyNjbGwsOD27duYmJjI2hPib0dRFLKzs0lMTMTOzs4QbJeXBBZCCCGE+FtSqVS4uLgQGxtLXFxcTVdHiBpjZ2eHs7NzhfORwEIIIYQQf1umpqZ4e3tLdyjxt2ViYlLhloq7JLAQQgghxN+aWq2WdSyEqATSmVAIIYQQQghRYRJYCCGEEEIIISpMAgshhBBCCCFEhckYC/5cFCQ9Pb2GayKEEEIIIUTtcff3cWkW0ZPAAsjIyADA1dW1hmsihBBCCCFE7ZORkYGtrW2JaVSKrGOPXq/n5s2bWFtbo1Kpqr389PR0XF1duXbtGjY2NtVevig/uXZ1l1y7ukmuW90l165ukutWd1XWtVMUhYyMDBo2bPjQRSSlxYLCaeYaN25c09XAxsZGbto6Sq5d3SXXrm6S61Z3ybWrm+S61V2Vce0e1lJxlwzeFkIIIYQQQlSYBBZCCCGEEEKICpPAohbQaDTMnDkTjUZT01URZSTXru6Sa1c3yXWru+Ta1U1y3equmrh2MnhbCCGEEEIIUWHSYiGEEEIIIYSoMAkshBBCCCGEEBUmgYUQQgghhBCiwiSwqCbLli3D09MTMzMz2rRpw759+0pMv3fvXtq0aYOZmRlNmjThX//6VzXVVPxVWa7dnj17UKlU973Onz9fjTUWv/32G0888QQNGzZEpVIRFhb20GPknqsdynrt5J6rHebPn0+7du2wtramQYMGDB48mAsXLjz0OLnvalZ5rpvcc7XD8uXLadWqlWGNiuDgYP73v/+VeEx13G8SWFSD9evXM2nSJKZPn86JEyfo2rUrAwYM4OrVq8Wmj42NZeDAgXTt2pUTJ04wbdo0Jk6cyMaNG6u55qKs1+6uCxcuEB8fb3h5e3tXU40FQFZWFgEBASxdurRU6eWeqz3Keu3uknuuZu3du5c33niDgwcPsn37drRaLX379iUrK+uBx8h9V/PKc93uknuuZjVu3JgFCxZw9OhRjh49Sq9evRg0aBDnzp0rNn213W+KqHLt27dXXn311SLbmjVrpkydOrXY9O+++67SrFmzItvGjx+vdOzYscrqKIpX1mu3e/duBVBSUlKqoXaiNABl8+bNJaaRe652Ks21k3uudkpMTFQAZe/evQ9MI/dd7VOa6yb3XO1lb2+v/Pvf/y52X3Xdb9JiUcXy8/M5duwYffv2LbK9b9++REREFHvMgQMH7kvfr18/jh49SkFBQZXVVRRVnmt3V1BQEC4uLvTu3Zvdu3dXZTVFJZB7ru6Te652SUtLA8DBweGBaeS+q31Kc93uknuu9tDpdKxbt46srCyCg4OLTVNd95sEFlUsKSkJnU6Hk5NTke1OTk7cunWr2GNu3bpVbHqtVktSUlKV1VUUVZ5r5+LiwldffcXGjRvZtGkTvr6+9O7dm99++606qizKSe65ukvuudpHURQmT55Mly5daNGixQPTyX1Xu5T2usk9V3ucOXMGKysrNBoNr776Kps3b8bf37/YtNV1vxlXWk6iRCqVqsh7RVHu2/aw9MVtF1WvLNfO19cXX19fw/vg4GCuXbvGJ598Qrdu3aq0nqJi5J6rm+Seq30mTJjA6dOn+f333x+aVu672qO0103uudrD19eXkydPkpqaysaNGxk9ejR79+59YHBRHfebtFhUsXr16mFkZHTfE+7ExMT7Ise7nJ2di01vbGyMo6NjldVVFFWea1ecjh07Eh0dXdnVE5VI7rlHi9xzNefNN99ky5Yt7N69m8aNG5eYVu672qMs1604cs/VDFNTU5o2bUrbtm2ZP38+AQEBLFmypNi01XW/SWBRxUxNTWnTpg3bt28vsn379u106tSp2GOCg4PvS79t2zbatm2LiYlJldVVFFWea1ecEydO4OLiUtnVE5VI7rlHi9xz1U9RFCZMmMCmTZvYtWsXnp6eDz1G7ruaV57rVhy552oHRVHIy8srdl+13W+VOhRcFGvdunWKiYmJsnLlSiUyMlKZNGmSYmlpqVy5ckVRFEWZOnWqMnLkSEP6y5cvKxYWFso//vEPJTIyUlm5cqViYmKi/Pe//62pU/jbKuu1+/zzz5XNmzcrFy9eVM6ePatMnTpVAZSNGzfW1Cn8LWVkZCgnTpxQTpw4oQDKZ599ppw4cUKJi4tTFEXuudqsrNdO7rna4bXXXlNsbW2VPXv2KPHx8YZXdna2IY3cd7VPea6b3HO1w/vvv6/89ttvSmxsrHL69Gll2rRpilqtVrZt26YoSs3dbxJYVJN//vOfiru7u2Jqaqq0bt26yFRuo0ePVrp3714k/Z49e5SgoCDF1NRU8fDwUJYvX17NNRZ3leXaLVy4UPHy8lLMzMwUe3t7pUuXLsovv/xSA7X+e7s7HeJfX6NHj1YURe652qys107uudqhuGsGKKtWrTKkkfuu9inPdZN7rnZ46aWXDL9N6tevr/Tu3dsQVChKzd1vKkX5Y+SGEEIIIYQQQpSTjLEQQgghhBBCVJgEFkIIIYQQQogKk8BCCCGEEEIIUWESWAghhBBCCCEqTAILIYQQQgghRIVJYCGEEEIIIYSoMAkshBBCCCGEEBUmgYUQQgghhBB11G+//cYTTzxBw4YNUalUhIWFlTmPX3/9lY4dO2JtbU39+vV5+umniY2NLXM+ElgIIYSocj169GDSpEmlTr969Wrs7OyqrD5CCPGoyMrKIiAggKVLl5br+MuXLzNo0CB69erFyZMn+fXXX0lKSmLIkCFlzksCCyGEEOIB9uzZg0qlIjU1taarIoQQxRowYABz5859YCCQn5/Pu+++S6NGjbC0tKRDhw7s2bPHsP/48ePodDrmzp2Ll5cXrVu35p133uHUqVMUFBSUqS4SWAghhBBCCPGIevHFF9m/fz/r1q3j9OnTPPvss/Tv35/o6GgA2rZti5GREatWrUKn05GWlsbatWvp27cvJiYmZSpLAgshhPgb69GjB2+++SaTJk3C3t4eJycnvvrqK7KysnjxxRextrbGy8uL//3vf4Zj9u7dS/v27dFoNLi4uDB16lS0Wq1hf1ZWFqNGjcLKygoXFxc+/fTT+8p92BO0stqyZQtt27bFzMyMevXqFXlyl5KSwqhRo7C3t8fCwoIBAwYYvlAB4uLieOKJJ7C3t8fS0pLmzZuzdetWrly5Qs+ePQGwt7dHpVIxZsyYctdRCCGqW0xMDD/++CP/+c9/6Nq1K15eXrzzzjt06dKFVatWAeDh4cG2bduYNm0aGo0GOzs7rl+/zrp168pcngQWQgjxN7dmzRrq1avH4cOHefPNN3nttdd49tln6dSpE8ePH6dfv36MHDmS7Oxsbty4wcCBA2nXrh2nTp1i+fLlrFy5krlz5xrymzJlCrt372bz5s1s27aNPXv2cOzYsSJlPuwJWln88ssvDBkyhMcee4wTJ06wc+dO2rZta9g/ZswYjh49ypYtWzhw4ACKojBw4EBDE/8bb7xBXl4ev/32G2fOnGHhwoVYWVnh6urKxo0bAbhw4QLx8fEsWbKkPB+xEELUiOPHj6MoCj4+PlhZWRlee/fuJSYmBoBbt27xyiuvMHr0aI4cOcLevXsxNTXlmWeeQVGUshWoCCGE+Nvq3r270qVLF8N7rVarWFpaKiNHjjRsi4+PVwDlwIEDyrRp0xRfX19Fr9cb9v/zn/9UrKysFJ1Op2RkZCimpqbKunXrDPuTk5MVc3Nz5a233lIURVEuXbqkqFQq5caNG0Xq0rt3b+X9999XFEVRVq1apdja2pbqHIKDg5Xnn3++2H0XL15UAGX//v2GbUlJSYq5ubmyYcMGRVEUpWXLlkpoaGixx+/evVsBlJSUlFLVRQghahKgbN682fB+3bp1ipGRkXL+/HklOjq6yCs+Pl5RFEX54IMPlDZt2hTJ59q1a4a/+2VhXLlxkRBCiLqmVatWhn8bGRnh6OhIy5YtDducnJwASExMJCoqiuDgYFQqlWF/586dyczM5Pr166SkpJCfn09wcLBhv4ODA76+vob39z5Bu1deXh6Ojo5lrv/JkycZO3ZssfuioqIwNjamQ4cOhm2Ojo74+voSFRUFwMSJE3nttdfYtm0bISEhPP3000U+EyGEqKuCgoLQ6XQkJibStWvXYtNkZ2djZGRUZNvd93q9vkzlSWAhhBB/c38dnKdSqYpsuxtE6PV6FEUpElQAhqZylUpVqmZzvV6PkZERx44du+/LzMrKqsz1Nzc3f+C+B9Xn3vN45ZVX6NevH7/88gvbtm1j/vz5fPrpp7z55ptlrosQQlS3zMxMLl26ZHgfGxvLyZMncXBwwMfHh+eff55Ro0bx6aefEhQURFJSErt27aJly5YMHDiQxx57jM8//5zZs2fz3HPPkZGRwbRp03B3dycoKKhMdZExFkIIIUrN39+fiIiIIj/YIyIisLa2plGjRjRt2hQTExMOHjxo2J+SksLFixcN7+99gta0adMiL2dn5zLXqVWrVuzcufOB9dVqtRw6dMiwLTk5mYsXL+Ln52fY5urqyquvvsqmTZt4++23+frrrwEwNTUFQKfTlbleQghRHY4ePUpQUJAhCJg8eTJBQUHMmDEDgFWrVjFq1CjefvttfH19efLJJzl06BCurq4A9OrVix9++IGwsDCCgoLo378/Go2G8PDwEh/cFEdaLIQQQpTa66+/zuLFi3nzzTeZMGECFy5cYObMmUyePBm1Wo2VlRUvv/wyU6ZMwdHREScnJ6ZPn45a/edzrNI8QSuLmTNn0rt3b7y8vBg+fDharZb//e9/vPvuu3h7ezNo0CDGjh3LihUrsLa2ZurUqTRq1IhBgwYBMGnSJAYMGICPjw8pKSns2rXLEHS4u7ujUqn4+eefGThwIObm5uVqVRFCiKrSo0ePEluLTUxMmDVrFrNmzXpgmuHDhzN8+PAK10VaLIQQQpRao0aN2Lp1K4cPHyYgIIBXX32Vl19+mQ8++MCQZtGiRXTr1o0nn3ySkJAQunTpQps2bYrk87AnaGXRo0cP/vOf/7BlyxYCAwPp1atXkRaKVatW0aZNGx5//HGCg4NRFIWtW7caunvpdDreeOMN/Pz86N+/P76+vixbtsxwvrNmzWLq1Kk4OTkxYcKE8nxsQgjxt6BSStMhVgghhBBCCCFKIC0WQgghhBBCiAqTwEIIIUSt1rx58yILO937+v7772u6ekIIIf4gXaGEEELUanFxcYZVsv/KyckJa2vraq6REEKI4khgIYQQQgghhKgw6QolhBBCCCGEqDAJLIQQQgghhBAVJoGFEEIIIYQQosIksBBCCCGEEEJUmAQWQgghhBBCiAqTwEIIIYQQQghRYRJYCCGEEEIIISpMAgshhBBCCCFEhf0/Mmyuhgk5PDUAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAHqCAYAAACZcdjsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2MtJREFUeJzs3Xd0VNX2wPHvpPeQ3kmooUwg9J7QiyIiInYFfZanoihYsIJPRRER5SmWH4KCBQsgIiJFCCXUIJBCJ5T0QnqfmfP7IzLPmAAJJMwk2Z+1shZz7pl79wyTyd337nOORimlEEIIIYQQQohrYGHqAIQQQgghhBCNnyQWQgghhBBCiGsmiYUQQgghhBDimkliIYQQQgghhLhmklgIIYQQQgghrpkkFkIIIYQQQohrJomFEEIIIYQQ4ppJYiGEEEIIIYS4ZpJYCCGEEEIIIa6ZJBZCiGp2797Nbbfdhp+fHzY2Nvj6+jJx4kR27dpl6tBqLTo6mlmzZpGbm2vqUBrMunXrmDVrlqnDqLWlS5ei0Wg4c+ZMnZ87a9YsNBpN/QclrhuNRnPFz2tKSgqzZs3i4MGD1bbJZ0AI8yeJhRCiioULFzJgwACSkpKYO3cumzZtYt68eSQnJzNw4ED++9//mjrEWomOjmb27NlNPrGYPXu2qcMQot6kpKQwe/bsGhOLf/3rX43q4oYQzZGVqQMQQpiPnTt3Mm3aNG644QZWrVqFldX/viLuuOMObrnlFp566im6devGgAEDrmtsxcXFODg4XNdjmnMcQlwv5vKZDwwMJDAw0NRhCCEuQ+5YCCGM5syZg0ajYdGiRVWSCgArKys+/vhjNBoNb7/9trH9YnnCn3/+yYQJE3BxccHV1ZV77rmHzMzMasdYsWIF/fr1w9HREScnJ0aNGsWff/5Zpc/kyZNxcnIiNjaWkSNH4uzszLBhwwDYuHEjN998M4GBgdjZ2dG2bVseeeQRsrKyqsT07LPPAtCqVSs0Gg0ajYatW7cCYDAYmDt3Lh06dMDW1hZvb2/uu+8+kpKSqsQxePBgtFot27Zto3///jg4OPDAAw9c9j3cs2cPN910Ex4eHtjZ2dGmTRumTZtWpc+OHTsYNmwYzs7OODg40L9/f3799dcqfYqLi5kxYwatWrXCzs4Od3d3evbsybfffmt8jz766CMA4+u7UpnRxdeza9cu+vfvj729PSEhISxZsgSAX3/9le7du+Pg4EBYWBjr16+vto/axA6V5XQDBgzAzs4Of39/Zs6cSUVFRY1x1eYzURsLFixAo9Fw8uTJatuef/55bGxsjJ+TP//8k7Fjx+Lt7Y2trS3+/v7ceOON1T4D/1Qf7+GJEye46667jMfu2LGj8f/yotLSUqZPn054eDiurq64u7vTr18/fv7552r7++GHH+jTpw+urq44ODjQunXrKp/TS5Wgbd26tcrvxd9fX02f+fz8fONn0sbGhoCAAKZNm0ZRUVGV/ebn5/PQQw/h4eGBk5MTo0eP5vjx45d9Xy/G06tXLwCmTJli/ExfLJ+qqRQqJCSEsWPHsnbtWrp164a9vT0dO3Zk7dq1xtfesWNHHB0d6d27N/v376923P379zNu3Djc3d2xs7OjW7dufP/991eMVwhRAyWEEEopnU6nHBwcVJ8+fS7br3fv3srBwUHpdDqllFKvvfaaAlRwcLB69tln1e+//67mz5+vHB0dVbdu3VR5ebnxuW+++abSaDTqgQceUGvXrlUrV65U/fr1U46Ojio+Pt7Y7/7771fW1tYqJCREzZkzR23evFn9/vvvSimlFi1apObMmaPWrFmjoqKi1Jdffqm6du2qQkNDjcc6f/68mjp1qgLUypUr1a5du9SuXbtUXl6eUkqphx9+WAHqiSeeUOvXr1effPKJ8vLyUkFBQSozM9MYR2RkpHJ3d1dBQUFq4cKFasuWLSoqKuqS78369euVtbW16tKli1q6dKn6448/1BdffKHuuOMOY5+tW7cqa2tr1aNHD7VixQq1evVqNXLkSKXRaNR3331n7PfII48oBwcHNX/+fLVlyxa1du1a9fbbb6uFCxcqpZQ6efKkmjhxogKMr2/Xrl2qtLT0kvFFRkYqDw8PFRoaqhYvXqx+//13NXbsWAWo2bNnq7CwMPXtt9+qdevWqb59+ypbW1uVnJxc59jj4+OVg4OD6tSpk/r222/Vzz//rEaNGqVatmypAJWYmFjnz8TFz9nlZGZmKhsbG/XSSy9VadfpdMrf319NmDBBKaVUYWGh8vDwUD179lTff/+9ioqKUitWrFCPPvqoSkhIuOwxrvU9jI+PV66uriosLEx99dVXasOGDWr69OnKwsJCzZo1y9gvNzdXTZ48WS1btkz98ccfav369WrGjBnKwsJCffnll8Z+0dHRSqPRqDvuuEOtW7dO/fHHH2rJkiXq3nvvNfZZsmRJtfddKaW2bNmiALVly5Yqr6+mz3xRUZEKDw9Xnp6eav78+WrTpk3qgw8+UK6urmro0KHKYDAopZQyGAxqyJAhytbWVr355ptqw4YN6rXXXlOtW7dWgHrttdcu+d7m5eUZY3355ZeNn+nz588rpWr+DAQHB6vAwECl1WqN73ufPn2UtbW1evXVV9WAAQPUypUr1apVq1T79u2Vj4+PKi4uNj7/jz/+UDY2NmrQoEFqxYoVav369Wry5MkKUEuWLLnsZ0EIUZ0kFkIIpZRSaWlpCqhyElyT22+/XQEqPT1dKfW/P/ZPP/10lX5ff/21AtTy5cuVUkqdO3dOWVlZqalTp1bpV1BQoHx9fdWkSZOMbffff78C1BdffHHZWAwGg6qoqFBnz55VgPr555+N2959990aT6aOHDmiAPXYY49Vad+zZ48C1Isvvmhsi4yMVIDavHnzZeO4qE2bNqpNmzaqpKTkkn369u2rvL29VUFBgbFNp9MprVarAgMDjSdoWq1WjR8//rLHe/zxx694sv13F1/P/v37jW3Z2dnK0tJS2dvbVzkBPnjwoALUhx9+WOfYb7/9dmVvb6/S0tKq9OvQoUOV/5O6fCZqk1gopdSECRNUYGCg0uv1xrZ169YpQP3yyy9KKaX279+vALV69eor7u+frvU9HDVqlAoMDDQmuRc98cQTys7OTl24cKHG4+p0OlVRUaEefPBB1a1bN2P7vHnzFKByc3MvGXNdE4uaPvNz5sxRFhYWat++fVXaf/zxRwWodevWKaWU+u233xSgPvjggyr93nzzzSsmFkoptW/fvkue1F8qsbC3t1dJSUnGtovvu5+fnyoqKjK2r169WgFqzZo1xrYOHTqobt26qYqKiir7HTt2rPLz86vyORJCXJmUQgkh6kQpBVCtJOHuu++u8njSpElYWVmxZcsWAH7//Xd0Oh333XcfOp3O+GNnZ0dkZGSVcoyLbr311mptGRkZPProowQFBWFlZYW1tTXBwcEAHDly5IrxX4xn8uTJVdp79+5Nx44d2bx5c5V2Nzc3hg4desX9Hj9+nFOnTvHggw9iZ2dXY5+ioiL27NnDxIkTcXJyMrZbWlpy7733kpSUxLFjx4zx/Pbbb7zwwgts3bqVkpKSK8ZQG35+fvTo0cP42N3dHW9vb8LDw/H39ze2d+zYEYCzZ8/WOfYtW7YwbNgwfHx8qvS7/fbbq8RyNZ+JK5kyZQpJSUls2rTJ2LZkyRJ8fX0ZM2YMAG3btsXNzY3nn3+eTz75hISEhDod42rfw9LSUjZv3swtt9yCg4NDldd8ww03UFpayu7du43P/+GHHxgwYABOTk7Gz/rixYurfM4vlg5NmjSJ77//nuTk5Dq9lprU9Jlfu3YtWq2W8PDwKnGPGjWqSjnVxd+vf34f3HXXXdcc16WEh4cTEBBgfHzxfR88eHCVsSH//P84efIkR48eNcb6z/+P1NRU42daCFE7klgIIQDw9PTEwcGBxMTEy/Y7c+YMDg4OuLu7V2n39fWt8tjKygoPDw+ys7MBSE9PBypPhKytrav8rFixosoYCQAHBwdcXFyqtBkMBkaOHMnKlSt57rnn2Lx5M3v37jWejNXm5PtiPH5+ftW2+fv7G7dfVFO/mlwcT3K5waU5OTkopS557L/H9+GHH/L888+zevVqhgwZgru7O+PHj+fEiRO1iudS/vn/BmBjY1Ot3cbGBqg8Ga5r7NnZ2dU+D1D9M1LXz0RtjBkzBj8/P+OYh5ycHNasWcN9992HpaUlAK6urkRFRREeHs6LL75I586d8ff357XXXrvkOJC/u9r3MDs7G51Ox8KFC6u93htuuAHA+JpXrlzJpEmTCAgIYPny5ezatYt9+/bxwAMPGPcHEBERwerVq40JWmBgIFqt1jgW52rU9H+cnp7O4cOHq8Xt7OyMUsoYd3Z2tvF3/+9q+jzUl0u971f6/7j4+ZsxY0a11/XYY48BXNVnUIjmTGaFEkIAlVeUhwwZwvr160lKSqrxBDkpKYmYmBjGjBljPEm7KC0trcpVQ51OR3Z2tvEEw9PTE4Aff/zReIfhcmqarz4uLo5Dhw6xdOlS7r//fmN7TYN1L+ViPKmpqdVeY0pKijHOy8VREy8vL4DLDv51c3PDwsKC1NTUattSUlKA/71Pjo6OzJ49m9mzZ5Oenm68e3HTTTdx9OjRWsVUn+oSu4eHB2lpadX6/bOtrp+J2rh4B+XDDz8kNzeXb775hrKyMqZMmVKlX1hYGN999x1KKQ4fPszSpUt5/fXXsbe354UXXqiXWP7Jzc3NGN/jjz9eY59WrVoBsHz5clq1asWKFSuqfAbLysqqPefmm2/m5ptvpqysjN27dzNnzhzuuusuQkJC6Nevn/EO2j+fe6mT5po+856entjb2/PFF1/U+Jy//9//83cfqv/fm4OLMc+cOZMJEybU2Cc0NPR6hiREoyd3LIQQRjNnzkQpxWOPPYZer6+yTa/X8+9//xulFDNnzqz23K+//rrK4++//x6dTsfgwYMBGDVqFFZWVpw6dYqePXvW+HMlF094bG1tq7R/+umn1fpe7PPPuxgXSzyWL19epX3fvn0cOXLEOPtUXbVv3542bdrwxRdf1HjyB5XJQp8+fVi5cmWVuAwGA8uXLycwMJD27dtXe56Pjw+TJ0/mzjvv5NixYxQXF1/2NTaEusQ+ZMgQNm/ebLwiDJWfnxUrVlTZZ318JmoyZcoUSktL+fbbb1m6dCn9+vWjQ4cONfbVaDR07dqV999/nxYtWnDgwIGrOmZtODg4MGTIEP7880+6dOlS4+u9eDKu0WiwsbGpcpKflpZW46xQF9na2hIZGck777wDYJxZKyQkBIDDhw9X6b9mzZpaxz527FhOnTqFh4dHjXFfPMaQIUOA6t8H33zzTa2Ocz0/06GhobRr145Dhw5d8vPn7Ozc4HEI0ZTIHQshhNGAAQNYsGAB06ZNY+DAgTzxxBO0bNmSc+fO8dFHH7Fnzx4WLFhA//79qz135cqVWFlZMWLECOLj43nllVfo2rUrkyZNAipPbl5//XVeeuklTp8+zejRo3FzcyM9PZ29e/car9BfTocOHWjTpg0vvPACSinc3d355Zdf2LhxY7W+YWFhAHzwwQfcf//9WFtbExoaSmhoKA8//DALFy7EwsKCMWPGcObMGV555RWCgoJ4+umnr/r9++ijj7jpppvo27cvTz/9tPG9+/33340nWnPmzGHEiBEMGTKEGTNmYGNjw8cff0xcXBzffvut8USyT58+jB07li5duuDm5saRI0dYtmwZ/fr1M9aNX3yN77zzjvEuUpcuXYwlH/WttrG//PLLrFmzhqFDh/Lqq6/i4ODARx99VG1a0vr4TNSkQ4cO9OvXjzlz5nD+/Hk+++yzKtvXrl3Lxx9/zPjx42ndujVKKVauXElubi4jRoy4+jeoFj744AMGDhzIoEGD+Pe//01ISAgFBQWcPHmSX375hT/++AOoPJFfuXIljz32GBMnTuT8+fP85z//wc/Pr0o53KuvvkpSUhLDhg0jMDCQ3NxcPvjgA6ytrYmMjAQqS81CQ0OZMWMGOp0ONzc3Vq1axY4dO2od97Rp0/jpp5+IiIjg6aefpkuXLhgMBs6dO8eGDRuYPn06ffr0YeTIkURERPDcc89RVFREz5492blzJ8uWLavVcdq0aYO9vT1ff/01HTt2xMnJCX9//ypjV+rTp59+ypgxYxg1ahSTJ08mICCACxcucOTIEQ4cOMAPP/zQIMcVosky2bBxIYTZ2rVrl5o4caLy8fFRVlZWytvbW02YMEFFR0dX63txppaYmBh10003KScnJ+Xs7KzuvPNO48xRf7d69Wo1ZMgQ5eLiomxtbVVwcLCaOHGi2rRpk7HP/fffrxwdHWuMLSEhQY0YMUI5OzsrNzc3ddttt6lz587VOOPMzJkzlb+/v7KwsKgy+41er1fvvPOOat++vbK2tlaenp7qnnvuMU5reVFkZKTq3Llznd+7MWPGKFdXV2Vra6vatGlTbcas7du3q6FDhypHR0dlb2+v+vbta5yx6KIXXnhB9ezZU7m5uSlbW1vVunVr9fTTT6usrCxjn7KyMvWvf/1LeXl5KY1GU+PMP7V5PcHBwerGG2+s1g6oxx9/vM6xK6XUzp07jdOt+vr6qmeffVZ99tlnNcZYm89EbWeFuujisezt7avNwHT06FF15513qjZt2ih7e3vl6uqqevfurZYuXXrF/dbHe5iYmKgeeOABFRAQoKytrZWXl5fq37+/euONN6r0e/vtt1VISIiytbVVHTt2VJ9//nm192Ht2rVqzJgxKiAgQNnY2Chvb291ww03qO3bt1fZ1/Hjx9XIkSOVi4uL8vLyUlOnTlW//vprjbNCXeozX1hYqF5++WUVGhqqbGxsjNPmPv3001VmAMvNzVUPPPCAatGihXJwcFAjRoxQR48erdWsUEop9e2336oOHTooa2vrKs+51KxQdXnfAfXuu+9WaT906JCaNGmS8vb2VtbW1srX11cNHTpUffLJJ1eMVQhRlUapv6Z4EUKIqzBr1ixmz55NZmZmtfEJQgghhGg+ZIyFEEIIIYQQ4ppJYiGEEEIIIYS4ZlIKJYQQQgghhLhmcsdCCCGEEEIIcc0ksRBCCCGEEEJcM0kshBBCCCGEENdMFsijcuXYlJQUnJ2dq6xyKoQQQgghRHOmlKKgoAB/f38sLC5/T0ISCyAlJYWgoCBThyGEEEIIIYRZOn/+PIGBgZftI4kF4OzsDFS+YS4uLiaORgghhBBCCPOQn59PUFCQ8Xz5ciSxAGP5k4uLiyQWQgghhBBC/ENthgvI4G0hhBBCCCHENZPEQgghhBBCCHHNJLEQQgghhBBCXDNJLIQQQgghhBDXTBILIYQQQgghxDWTxEIIIYQQQghxzSSxEEIIIYQQQlwzSSyEEEIIIYQQ10wSCyGEEEIIIcQ1k8RCCCGEEEIIcc0ksRBCCCGEEEJcMytTByCEEMI86Q2KvYkXyCgoxdvZjt6t3LG00Jg6LCGEEGZKEgshhBDVrI9LZfYvCaTmlRrb/FzteO2mTozW+pkwMiGEEOZKSqGEEEJUsT4ulX8vP1AlqQBIyyvl38sPsD4u1USRCSGEMGeSWAghhDDSGxSzf0lA1bDtYtvsXxLQG2rqIYQQojmTxEIIIYTR3sQL1e5U/J0CUvNK2Zt44foFJYQQolGQxEIIIYRRRsGlk4qr6SeEEKL5kMRCCCGEkbezXb32E0II0XxIYiGEEMKodyt3vJ1tL7ldQ+XsUL1buV+/oIQQQjQKklgIIYQwstCAh5NNjdsurmDx2k2dZD0LIYQQ1UhiIYQQwui7fec5klqAlYUGr38kGL6udiy6p7usYyGEEKJGskCeEEIIAJJyinljbQIAL4zpwJQBrWTlbSGEELUmiYUQQggMBsVzPx6mqFxPrxA3pgxohaWFhn5tPEwdmhBCiEZCSqGEEELw9d5zRJ/Kxs7agncndpU7E0IIIepMEgshhGjmzmUXM2fdEQBeGN2BEE9HE0ckhBCiMZLEQgghmjGDQfHsj4coLtfTp5U79/ULMXVIQgghGilJLIQQohn7atcZ9iRewMHGkncndsVCSqCEEEJcJUkshBCimTqTVcTb648CMPOGjrT0cDBxREIIIRozSSyEEKIZ0hsUM344RGmFgQFtPbi7d0tThySEEKKRk8RCCCGaoSU7E9l/NgdHG0veubWLlEAJIYS4ZpJYCCFEM3Mqs5B3fz8GwMtjOxHoJiVQQgghrp0kFkII0YxcLIEq0xkY1M6TO3oFmTokIYQQTYQkFkII0Yz83/bT/HkuF2dbK965tQsajZRACSGEqB+SWAghRDNxIr2A9zYeB+CVmzrh38LexBEJIYRoSiSxEEKIZkCnNzDjh0OU6wwMCfXith6Bpg5JCCFEEyOJhRBCNAOfbjvNoaQ8XOysmDNBSqCEEELUP0kshBCiiTuals+CTZUlULPGdcbX1c7EEQkhhGiKJLEQQogmrOKvEqgKvWJ4R29u6RZg6pCEEEI0UZJYCCFEE7Zo6ynikvNxtbfmrVvCpARKCCFEg5HEQgghmqj4lDw+3HwCgNdv7oy3i5RACSGEaDiSWAghRBNUrjMw44fD6AyKUZ19GNfV39QhCSGEaOIksRBCiCbov1tOciQ1HzcHa94YLyVQQgghGp4kFkII0cTEJefx0ZaTAPxnvBYvZ1sTRySEEKI5kMRCCCGakDKdnunfH0JvUNwY5sfYLlICJYQQ4vqQxEIIIZqQDzef4Fh6AR6ONrx+c2dThyOEEKIZkcRCCCGaiEPnc1m09RQAb4zX4uEkJVBCCCGuH0kshBCiCSit0DP9h0MYFIzr6s+YMD9ThySEEKKZMWlisWjRIrp06YKLiwsuLi7069eP3377zbhdKcWsWbPw9/fH3t6ewYMHEx8fX2UfZWVlTJ06FU9PTxwdHRk3bhxJSUnX+6UIIYRJvb/pOCczCvF0smX2OCmBEkIIcf2ZNLEIDAzk7bffZv/+/ezfv5+hQ4dy8803G5OHuXPnMn/+fP773/+yb98+fH19GTFiBAUFBcZ9TJs2jVWrVvHdd9+xY8cOCgsLGTt2LHq93lQvSwghrquYszl8vu00AG/dosXN0cbEEQkhhGiONEopZeog/s7d3Z13332XBx54AH9/f6ZNm8bzzz8PVN6d8PHx4Z133uGRRx4hLy8PLy8vli1bxu233w5ASkoKQUFBrFu3jlGjRtXqmPn5+bi6upKXl4eLi0uDvTYhhKhvpRV6bvhgO6ezipjQLYD5t4ebOiQhhBBNSF3Ok81mjIVer+e7776jqKiIfv36kZiYSFpaGiNHjjT2sbW1JTIykujoaABiYmKoqKio0sff3x+tVmvsU5OysjLy8/Or/AghRGM07/djnM4qwtvZltdukhIoIYQQpmPyxCI2NhYnJydsbW159NFHWbVqFZ06dSItLQ0AHx+fKv19fHyM29LS0rCxscHNze2SfWoyZ84cXF1djT9BQUH1/KqEEKLh7TtzgcU7EwF4+9YwXB2sTRyREEKI5szkiUVoaCgHDx5k9+7d/Pvf/+b+++8nISHBuF2j0VTpr5Sq1vZPV+ozc+ZM8vLyjD/nz5+/thchhBDXWXG5jmd/OIRScFuPQIZ28Lnyk4QQQogGZPLEwsbGhrZt29KzZ0/mzJlD165d+eCDD/D19QWoduchIyPDeBfD19eX8vJycnJyLtmnJra2tsaZqC7+CCFEYzJ3/THOZBfj52rHy2M7mTocIYQQwvSJxT8ppSgrK6NVq1b4+vqyceNG47by8nKioqLo378/AD169MDa2rpKn9TUVOLi4ox9hBCiqdl9Opul0WcAePvWLrjaSwmUEEII07My5cFffPFFxowZQ1BQEAUFBXz33Xds3bqV9evXo9FomDZtGm+99Rbt2rWjXbt2vPXWWzg4OHDXXXcB4OrqyoMPPsj06dPx8PDA3d2dGTNmEBYWxvDhw0350oQQokEUlel49sdDANzZO4jI9l4mjkgIIYSoZNLEIj09nXvvvZfU1FRcXV3p0qUL69evZ8SIEQA899xzlJSU8Nhjj5GTk0OfPn3YsGEDzs7Oxn28//77WFlZMWnSJEpKShg2bBhLly7F0tLSVC9LCCEazNu/HeX8hRICWtjz4g0dTR2OEEIIYWR261iYgqxjIYRoDHaezOLu/9sDwPIH+zCwnaeJIxJCCNHUNcp1LIQQQlxaQWkFz/14GIB7+raUpEIIIYTZkcRCCCEagbfWHSU5t4RAN3tmjpESKCGEEOZHEgshhDBz245n8u3ecwC8O7ErjrYmHR4nhBBC1EgSCyGEMGP5pRU8/1NlCdTk/iH0a+Nh4oiEEEKImkliIYQQZuyNtQmk5pUS7OHAc6NDTR2OEEIIcUmSWAghhJnacjSD7/cnodFUlkA52EgJlBBCCPMliYUQQpihvOIKXlhZWQL1wIBW9G7lbuKIhBBCiMuTxEIIIczQ7LXxpOeX0drTkRkjpQRKCCGE+ZPEQgghzMzGhHRWHkjGQgPv3tYVextLU4ckhBBCXJEkFkIIYUZyisp5cVUsAA8Nak2PYDcTRySEEELUjiQWQghhRmb9Ek9mQRltvBx5ekR7U4cjhBBC1JokFkIIYSbWx6Xy88EULDTw3qRw7KylBEoIIUTjIYmFEEKYgezCMl5aFQfAo5FtCA9qYdqAhBBCiDqSxEIIIczAq2viyS4qp72PE08Nb2fqcIQQQog6k8RCCCFMbO3hFH49nIqlhYb3bgvH1kpKoIQQQjQ+klgIIYQJZRaU8crqyhKoxwe3ISzQ1cQRCSGEEFdHEgshhDARpRQvr44lp7iCDr7OPDFUSqCEEEI0XpJYCCGEiaw5lMLv8elYWWh4b1JXbKzkK1kIIUTjJX/FhBDCBDLyS3n153gApg5tR2d/KYESQgjRuEliIYQQ15lSihdXxZJXUkFnfxceG9LG1CEJIYQQ10wSCyGEuM5W/ZnMpiMZWFtWlkBZW8pXsRBCiMZP/poJIcR1lJZXyqw1lSVQ04a3p4Ovi4kjEkIIIeqHJBZCCHGdKKWYufIw+aU6ugS68khEa1OHJIQQQtQbSSyEEOI6+SEmiS3HMrGxtOC927piJSVQQgghmhD5qyaEENdBSm4J//klAYBnRrannY+ziSMSQggh6pckFkII0cCUUrywMpaCMh3dWrbgoUFSAiWEEKLpkcRCCCEa2Ip959l2PBNbKwvm3dYVSwuNqUMSQggh6p0kFkII0YCScop549cjADw7KpQ2Xk4mjkgIIYRoGJJYCCFEA1FK8fxPhyks09Ez2I0pA1qZOiQhhBCiwUhiIYQQDeTrPefYeTIbO2sL3pUSKCGEEE2cJBZCCNEAzl8o5q11lSVQz4/uQCtPRxNHJIQQQjQsSSyEEKKeGQyKZ388RHG5nt6t3Lm/X4ipQxJCCCEanCQWQghRz5btPsvu0xdwsLFk3sSuWEgJlBBCiGZAEgshhKhHZ7KKePu3owDMHNOBlh4OJo5ICCGEuD4ksRBCiHpysQSqpEJP/zYe3N0n2NQhCSGEENeNJBZCCFFPlkSfYd+ZHBxtLHnn1i5SAiWEEKJZkcRCCCHqwenMQuauryyBeunGTgS5SwmUEEKI5kUSCyGEuEZ6g2LGD4co0xkY1M6TO3sHmTokIYQQ4rqTxEIIIa7R4h2nOXAuF2dbK965tQsajZRACSGEaH4ksRBCiGtwMqOAeRuOA/DK2E74t7A3cURCCCGEaUhiIYQQV0mnNzD9h8OU6wwMDvXitp6Bpg5JCCGEMBlJLIQQ4ip9tv00h87n4mxnxdsTpARKCCFE8yaJhRBCXIVjaQUs2HgCgFk3dcbX1c7EEQkhhBCmJYmFEELUUYXewIwfDlGuNzC8ozcTugeYOiQhhBDC5EyaWMyZM4devXrh7OyMt7c348eP59ixY1X6TJ48GY1GU+Wnb9++VfqUlZUxdepUPD09cXR0ZNy4cSQlJV3PlyKEaEY+2XqK2OQ8XO2teeuWMCmBEkIIITBxYhEVFcXjjz/O7t272bhxIzqdjpEjR1JUVFSl3+jRo0lNTTX+rFu3rsr2adOmsWrVKr777jt27NhBYWEhY8eORa/XX8+XI4RoBhJS8vnwj8oSqNdv7oy3i5RACSGEEABWpjz4+vXrqzxesmQJ3t7exMTEEBERYWy3tbXF19e3xn3k5eWxePFili1bxvDhwwFYvnw5QUFBbNq0iVGjRjXcCxBCNCvlusoSqAq9YlRnH8Z19Td1SEIIIYTZMKsxFnl5eQC4u7tXad+6dSve3t60b9+ehx56iIyMDOO2mJgYKioqGDlypLHN398frVZLdHT09QlcCNEsfLTlJAmp+bg5WPPGeCmBEkIIIf7OpHcs/k4pxTPPPMPAgQPRarXG9jFjxnDbbbcRHBxMYmIir7zyCkOHDiUmJgZbW1vS0tKwsbHBzc2tyv58fHxIS0ur8VhlZWWUlZUZH+fn5zfMixJCNBlxyXl8tOUkAP8Zr8XL2dbEEQkhhBDmxWwSiyeeeILDhw+zY8eOKu2333678d9arZaePXsSHBzMr7/+yoQJEy65P6XUJa8mzpkzh9mzZ9dP4EKIJq9Mp2fGD4fQGRQ3hvkxtouUQAkhhBD/ZBalUFOnTmXNmjVs2bKFwMDLr1zr5+dHcHAwJ05UDp709fWlvLycnJycKv0yMjLw8fGpcR8zZ84kLy/P+HP+/Pn6eSFCiCZp4eaTHE0rwMPRhtdv7mzqcIQQQgizZNLEQinFE088wcqVK/njjz9o1arVFZ+TnZ3N+fPn8fPzA6BHjx5YW1uzceNGY5/U1FTi4uLo379/jfuwtbXFxcWlyo8QQtTk0PlcFkWdAuCN8Vo8nKQESgghhKiJSUuhHn/8cb755ht+/vlnnJ2djWMiXF1dsbe3p7CwkFmzZnHrrbfi5+fHmTNnePHFF/H09OSWW24x9n3wwQeZPn06Hh4euLu7M2PGDMLCwoyzRAkhxNUoragsgdIbFDd19WdMmJ+pQxJCCCHMlkkTi0WLFgEwePDgKu1Llixh8uTJWFpaEhsby1dffUVubi5+fn4MGTKEFStW4OzsbOz//vvvY2VlxaRJkygpKWHYsGEsXboUS0vL6/lyhBBNzIJNJziRUYinky2vj5MSKCGEEOJyNEopZeogTC0/Px9XV1fy8vKkLEoIAcCBczlMXBSNQcFn9/ZgZOea19IRQgghmrK6nCebzaxQQghhLi6WQBkU3NItQJIKIYQQJmEwKFJP5FKUX4ajiy1+7VpgYWG+ayhJYiGEEP/w3oZjnM4swtvZltdu6mTqcIQQQjRDp/7MYPuKExTl/m/tNccWtgy6vR1tunmbMLJLM4vpZoUQwlzsP3OB/9uRCMCcCWG0cLAxcURCCCGam1N/ZrD+07gqSQVAUW4Z6z+N49SfGSaK7PIksRBCiL+UlFeWQCkFE3sEMqxjzWvhCCGEEA3FYFBsX3Hisn12fH8Cg8H8hklLYiGEEH+Z+/tRzmQX4+tixytjpQRKCCHE9Zd6IrfanYp/KswpI/VE7vUJqA4ksRBCCGD36WyW7DwDwNu3huFqb23agIQQQjQ7SilSTubWqm9R/uWTD1OQwdtCiGavqEzHcz8eBuCOXkEMDjXPQXFCCCGapopyPSf2pRMXlUzmuYJaPcfRxbaBo6o7SSyEEM3eO+uPcu5CMf6udrx0Y0dThyOEEKKZyEkrIn5bCkd3p1JWrAPAwlKDhaUGXbnhks9zcqucetbcSGIhhGjWok9m8dWuswDMndgVZzspgRJCCNFwDHoDiYeziItKJulojrHdxdMObUQgHfv7kXwih/Wfxl1yHwMntTPL9SwksRBCNFuFZTqe/asE6u4+LRnYztPEEQkhhGiqinLLSNiZQvz2lP8NztZASJgn2sgAWnZ0R/NXstCmmzejH9FWW8fCyc2WgZPMdx0LSSyEEM3WW+uOkJxbQqCbPTNvkBIoIYQQ9UspRfLxXOKikkg8mGWcItbe2ZpOA/zpNMgfFw/7Gp/bpps3rbp6ycrbQghh7rYdz+SbPecAmDuxC0628nUohBCifpSV6Di2O5W4qGRy0oqN7X5tXdFGBtAm3BtL6ytPzmphoSEg1K0hQ61X8pdUCNHs5JdW8MJPlSVQ9/cLpn8bKYESQghx7TLPFxAXlczxvWnGwdfWtpa07+OLNiIAz0AnE0fYsCSxEEI0O2+uPUJKXikt3R14fkwHU4cjhBCiEdNV6Dl1IJO4qCTSTucb2939HdFGBBDaxxcb++Zxyt08XqUQQvxly7EMVuw/j0YD827rioONfA0KIYSou/ysEuK3J5OwM5XSwgqgsnSpTXcvtJEB+LVtgUZjvuMhGoL8RRVCNBt5xf8rgZrSvxW9W7mbOCIhhBCNicGgOBefTVxUMmfjs6FyLDZObrZ0HhRAxwF+OLqa38J114skFkKIZuP1tQmk55fRytORZ0eFmjocIYQQjURJQTlHolOJ25ZMQXapsT2okzvaiABCwjywsLzyYOymThILIUSzsCkhnZ8OJP1VAtUFextLU4ckhBDCjCmlSDudT1xUEicPZGDQVd6esHWwomN/PzoPCqCFj4OJozQvklgIIZq83OJyZq6KBeChQa3pESwlUEIIIWpWXqrjxL50YqOSyU4qNLZ7BzujjQykXU9vrOTiVI0ksRBCNHmz1sSTWVBGGy9HnhnR3tThCCGEMEMXUoqI25bMsd2plJfqAbC0tqB9Lx+0kQF4B7uYOELzJ4mFEKJJWx+XxuqDKVj8NQuUnbVcZRJCCFFJrzeQeDCLuKgkko/nGttdve3RRgTQoZ8fdo7WpguwkZHEQgjRZF0oKufl1ZUlUI9EtqFby8azeqkQQoiGU5hTSvz2FBJ2pFCcXw6ARgMhXTwJiwwksIMbGovmNVVsfZDEQgjRZL36cxxZheW093Fi2vB2pg5HCCGECSmDIulYDnFRySQezkIZKgdj27vY0HmgP50G+uPsbmfiKBs3SSyEEE3Sr4dTWXs4FUsLDfNu64qtlZRACSFEc1RaVMGx3WnEbUsmN73Y2O7frgXayABah3thaSVTxdYHSSyEEE1OVmEZr/wcB8Bjg9vQJbCFaQMSQghx3WWczScuKpkT+9LRVRgAsLazpENfPzpH+OPh72TiCJseSSyEEE2KUopXVsdxoaicDr7OTB0qJVBCCNFc6Mr1nIzJIDYqmYwz+cZ2jwAntJEBtO/tg42dnP42FHlnhRBNyi+HU/ktLg2rv0qgbOT2thBCNHm5GcXEb0vmyK5Uyop0AFhYaWjb3RttRAC+bVzRaGQwdkOTxEII0WRkFJTy6l8lUE8MbYs2wNXEEQkhhGgoBoPibGwWcVHJnEu4YGx3drejc4Q/Hfv74+BiY8IImx9JLIQQTYJSipdWxZFbXEEnPxceH9LW1CEJIYRoAMX55STsSCF+RzKFF8oqGzXQspMHYZEBtNR6YCFTxZqEJBZCiCZh9cFkNiakY22p4b1JXbG2lBIoIYRoKpRSpJ7MIy4qiVN/ZmLQV04Va+doTccBfnQeFICrl72JoxSSWAghGr30/FJe+zkegKeGtaOjn4uJIxJCCFEfykt0HNtTOVXshZQiY7tvaxe0EQG06eGNlbVMJ24uJLEQQjRqSilmrowlv1RHWIArj0a2MXVIQgghrlF2ciFxUckc25NGRZkeACsbC9r39kUbEYBXS2cTRyhqIomFEKJR+zEmiT+OZmBjacF7k7piJSVQQgjRKOl1Bk7/mUlsVBKpJ/OM7S18HNBGBtChry+2DtYmjFBciSQWQohGKzWvhNd/SQDg6RHtae8jV7CEEKKxKbhQSvy2ZBJ2plBSUAGAxkJD63BPtJGBBLRvIVPFNhKSWAghGiWlFM//FEtBmY7woBY8NKiVqUMSQghRS8qgOH/kArFRyZyNzUJVjsXG0dWGToMC6DTAHyc3W9MGKepMEgshRKO0Yt95th3PxMbKgnm3SQmUEEI0BqWFFRyJTiVuezL5mSXG9sAObmgjAgjp6omlfJ83WpJYCCEanaScYt749QgAz44Mpa23k4kjEkIIcSlKKTLOFBAXlcSJ/RnodQYAbOyt6NCvcjC2m6+jiaMU9UESCyFEo1JZAnWYwjIdPYLdeGCglEAJIYQ5qijXc2JfOnFRyWSeKzC2ewY5ERYZSLtePljbylSxTYkkFkKIRuXrPefYeTIbO2sL3p3YBUtZXVUIIcxKbnoxcVHJHN2dSlmxDgBLKwva9vRGGxmAT4iLDMZuouqcWJw5c4bt27dz5swZiouL8fLyolu3bvTr1w87O7uGiFEIIQA4f6GYt9ZVlkA9N6oDrb2kBEoIIcyBQW8g8XAWcVHJJB3NMba7eNrROSKAjv39sHeyMWGE4nqodWLxzTff8OGHH7J37168vb0JCAjA3t6eCxcucOrUKezs7Lj77rt5/vnnCQ4ObsiYhRDNkMGgePbHQxSX6+kd4s7k/iGmDkkIIZq9orwyEnakEL89haLcsspGDYSEeaKNDKBlR3c0cme52ahVYtG9e3csLCyYPHky33//PS1btqyyvaysjF27dvHdd9/Rs2dPPv74Y2677bYGCVgI0Twt232W3acvYG9tybu3dcFC/lAJIYRJKKVIOZ5LbFQyiQczMRgq54q1d7am4wB/Og/0x8XT3sRRClPQKHVx5uBL+/XXX7nxxhtrtcOsrCwSExPp1avXNQd3veTn5+Pq6kpeXh4uLi6mDkcI8Q9nsooY88F2Sir0vH5zZ+7rF2LqkIQQotkpK9FxbHcqcVHJ5KQVG9v92rqijQygTbg3ltYyVWxTU5fz5FrdsahtUgHg6emJp6dnrfsLIcTlXCyBKqnQ06+1B/f0kVJLIYS4njLPFxC3LZnje9LQlVdOFWtla0lon8qpYj0DZbybqFTnwdsHDhzA2tqasLAwAH7++WeWLFlCp06dmDVrFjY2MjBHCFF/lkSfYd+ZHBxtLJk7UUqghBDietBV6Dl1IJO4qGTSTucZ2938HAmLDCC0jy829jK5qKiqzverHnnkEY4fPw7A6dOnueOOO3BwcOCHH37gueeeq9O+5syZQ69evXB2dsbb25vx48dz7NixKn2UUsyaNQt/f3/s7e0ZPHgw8fHxVfqUlZUxdepUPD09cXR0ZNy4cSQlJdX1pQkhzMzpzELmrj8KwIs3diTI3cHEEQkhRNOWn1XCrlUn+XJmNJuWJJB2Og8LCw1te3pzy/Ru3Plqb8IGB0pSIWpU58Ti+PHjhIeHA/DDDz8QERHBN998w9KlS/npp5/qtK+oqCgef/xxdu/ezcaNG9HpdIwcOZKioiJjn7lz5zJ//nz++9//sm/fPnx9fRkxYgQFBf9baGXatGmsWrWK7777jh07dlBYWMjYsWPR6/V1fXlCCDOhNyhm/HCIMp2BgW09uat3yys/SQghRJ0ZDIozsVms/egQy17ZxYHfz1FaWIGTmy19xrXivjn9GfUvLf7t3GT9CXFZdU43lVIYDJX1dZs2bWLs2LEABAUFkZWVVad9rV+/vsrjJUuW4O3tTUxMDBERESilWLBgAS+99BITJkwA4Msvv8THx4dvvvmGRx55hLy8PBYvXsyyZcsYPnw4AMuXLycoKIhNmzYxatSour5EIYQZWLzjNAfO5eJka8U7E7vIHzMhhKhnJQXlHIlOJW5bMgXZpcb2oE7uaCMCCAnzwMJSBmOL2qtzYtGzZ0/eeOMNhg8fTlRUFIsWLQIgMTERHx+fawomL6+yhs/d3d24z7S0NEaOHGnsY2trS2RkJNHR0TzyyCPExMRQUVFRpY+/vz9arZbo6OgaE4uysjLKysqMj/Pz868pbiFE/TqZUcC8DZUll6+M7UhAC5m2UAgh6oNSirTT+cRtS+JkTAYGXeXkoLYOVnTo74d2UAAtfKTsVFydOicWCxYs4O6772b16tW89NJLtG3bFoAff/yR/v37X3UgSimeeeYZBg4ciFarBSAtLQ2gWsLi4+PD2bNnjX1sbGxwc3Or1ufi8/9pzpw5zJ49+6pjFaKuDAYDZ8+epbCwECcnJ4KDg7GwkKtANdHpDUz/4TDlOgOR7b2Y1DPI1CEJIUSjV16q48S+dGKjkslOKjS2ewc7o40MpF1Pb6xsLE0YoWgK6pxYdOnShdjY2Grt7777LpaWV/+BfOKJJzh8+DA7duyotu2fJRBKqSuWRVyuz8yZM3nmmWeMj/Pz8wkKkpMX0TASEhJYv359lTtjLi4ujB49mk6dOpkwMvP02fbTHDqfi7OdFW/fGiYlUEIIcQ0upBYRty2ZY7tSKS+tHHtqaW1Bu14+aCMC8AmR9btE/bmmIf2FhYXG8RYXWVtb13k/U6dOZc2aNWzbto3AwEBju6+vL1B5V8LPz8/YnpGRYbyL4evrS3l5OTk5OVXuWmRkZFzyDoqtrS22trZ1jlOIukpISOD777+v1p6fn8/333/PpEmTJLn4m2NpBSzYeAKA127qjJ+rlEAJIURd6fUGEg9mEbctieRjucZ2Vy97tJEBdOjnh51j3c/XhLiSOtdiJCYmcuONN+Lo6Iirqytubm64ubnRokWLauVIV6KU4oknnmDlypX88ccftGrVqsr2Vq1a4evry8aNG41t5eXlREVFGZOGHj16YG1tXaVPamoqcXFx11SaJcS1MhgM1SYo+Kf169dXS86bqwq9gRk/HKJcb2BYB29u7R5g6pCEEKJRKcwpZc8vp/nqxWh+/zyO5GO5aDTQqqsn454M5+7ZfQkf3lKSCtFg6nzH4u677wbgiy++wMfH55rKFB5//HG++eYbfv75Z5ydnY1jIlxdXbG3t0ej0TBt2jTeeust2rVrR7t27XjrrbdwcHDgrrvuMvZ98MEHmT59Oh4eHri7uzNjxgzCwsKMs0QJYQpnz5694sQA+fn5nD17tlpS3Rx9GnWK2OQ8XO2teWuClEAJIURtKKVIOppD3LZkEg9loQyVg7HtXWzoPNCfTgP9cXa3M3GUormoc2Jx+PBhYmJiCA0NveaDX5xRavDgwVXalyxZwuTJkwF47rnnKCkp4bHHHiMnJ4c+ffqwYcMGnJ2djf3ff/99rKysmDRpEiUlJQwbNoylS5de05gPIa5VYWHhlTvVoV9TdiQ1nw82V5ZAzR7XGR8X+SMohBCXU1pUwbHdacRtSyY3vdjY7t+uBdrIAFqHe2FpJZOEiOurzolFr169OH/+fL0kFkqpK/bRaDTMmjWLWbNmXbKPnZ0dCxcuZOHChdcckxD1xcnJqV77NVUVegPTvz9EhV4xspMPN4f7mzokIYQwWxln84nblsyJvenoKipLaa3tLOnQx5fOkQF4+DfvvynCtOqcWPzf//0fjz76KMnJyWi12mqDtbt06VJvwQnRmAUHB+Pi4nLZcigXFxeCg4OvY1Tm56MtJ0lIzcfNwZo3b5ESKCGE+CdduZ6TMRnERiWTceZ/f1M8AhzRRgbSvrcPNnbXNB+PEPWizp/CzMxMTp06xZQpU4xtGo3GOL2rXq+v1wCFaKwsLCwYMmQIP//88yX7jB49ulmvZxGXnMd//zgJwOs3a/FyltnahBDiorzMYuK2pXAkOoWyIh0AFpYa2nT3JiwyAN82rnIxRpiVOicWDzzwAN26dePbb7+95sHbQjR1F1eTt7CwqDL7k6xjAeW6ylmgdAbFDWG+jO3id+UnCSFEE2cwKM7GZhEXlcy5hAvGdmd3OzpH+NOxvz8OLjYmjFCIS6tzYnH27FnWrFljXHFbCFGziooK9u7dC8Att9yCk5OTrLz9Nwv/OMHRtAI8HG34z81auUghhGjWivPLSdiZQvz2ZAovlFU2aqBlJw/CIgNoqfXAwkK+J4V5q3NiMXToUA4dOiSJhRBXcOjQIYqLi3F1daVTp04yS9nfHE7K5eOtpwB4Y7wWDycpgRJCND9KKVJP5hG3LZlTBzIw6CsntbFztKZjfz86R/jj6uVg4iiFqL06JxY33XQTTz/9NLGxsYSFhVUbvD1u3Lh6C06IxspgMLBr1y4A+vbtK0nF35Tp9Ez//hB6g+Kmrv6MCZMSKCFE81JequP4njRio5K5kFJkbPdp5UJYZABtenhjZS1/N0TjU+fE4tFHHwXg9ddfr7ZNBm8LUenEiRNkZ2dja2tL9+7dTR2OWVmw6QQnMgrxdLLl9XGdTR2OEEJcN9nJhcRtS+bY7jQqyirPl6ysLWjf2wdtZCBeLZ2vsAchzFudE4u/D0AVQtQsOjoagB49emBrK2U+F/15LodPoypLoN66RYubowxAFEI0bXqdgdN/ZhIblUTqyTxjewsfB7SRAXTo64utg/Vl9iBE4yGTHgtRz5KTkzl79iwWFhb06dPH1OGYjdIKPTN+OIRBwS3dAhjZ2dfUIQkhRIMpuFBK/PZkEnakUFJQAYDGQkPrrp5oIwMICHWTSStEk1OrxOK7777jjjvuqNUOz58/z7lz5xgwYMA1BSZEY3VxbIVWq8XV1dXE0ZiP+RuPcyqzCC9nW167qflOsyuEaLqUQXH+yAVio5I5G5uFqhyLjaOrDZ0GBdBpgD9ObnIXWzRdtUosFi1axKxZs5gyZQrjxo2jY8eOVbbn5eWxc+dOli9fzqZNm1i8eHGDBCuEucvNzSU+Ph6Afv36mTga8xFz9gKfbz8NwJxbwmjhICVQQoimo7SwgiO7Uonblkx+ZomxPSDUjbDIAEK6emJp2bynGBfNQ60Si6ioKNauXcvChQt58cUXcXR0xMfHBzs7O3JyckhLS8PLy4spU6YQFxeHt7d3Q8cthFnas2cPSilatWqFn5/MdgRQUq5nxg+HUQpu7R7I8E4+pg5JCCGumVKKjDMFxEUlcSImA31F5RhUG3srOvT1pXNEAO5+jiaOUojrq9ZjLMaOHcvYsWPJzs5mx44dnDlzhpKSEjw9PenWrRvdunVr9gt+ieattLSUmJgYAPr372/iaMzHu78fIzGrCB8XW16VEighRCNXUa7nxL504qKSyTxXYGz3DHIiLDKQdr18sLaVqWJF81TnwdseHh7cfPPNDRGLEI1aTEwM5eXleHl5yQKSf9lzOpsl0YkAvH1rF1ztZeYTIUTjlJteTNy2ZI7uSqWsWAeAhZWGdj180EYG4NPKRQZji2ZPZoUSoh7o9Xr27NkDVI6tkD8uUFyu49kfK0ugbu8ZxJBQKZEUQjQuBr2BM4eziY1KIulojrHdxdOOzhEBdOzvh72TjBkT4iJJLISoB/Hx8eTn5+Po6EiXLl1MHY5ZeOe3o5y7UIy/qx0vje145ScIIYSZKMorI2FHCvHbUyjKLats1ECI1gNtZCAtO7mjsZALSEL8kyQWQlwjpZRxQbw+ffpgZSW/VtGnsvhy11kA3pnYBRc7KYESQpg3pRQpx3OJjUom8WAmBkPlXLH2ztZ0HOBP54H+uHjamzhKIcybnAEJcY0SExNJS0vDysqKnj17mjockyss0/Hcj4cBuKtPSwa18zJxREIIcWllJTqO7U4jLiqJnLRiY7tfG1e0kQG06eaNpbVMTiNEbVx1YlFeXk5iYiJt2rSRK7SiWbu4IF63bt1wcHAwcTSmN2fdEZJySghoYc+LN0gJlBDCPGUlFRAblczxvenoyvQAWNlaEtrHF21EAJ6BTiaOUIjGp84ZQXFxMVOnTuXLL78E4Pjx47Ru3Zonn3wSf39/XnjhhXoPUghzlZGRwYkTJwDo27eviaMxve0nMvl6zzkA3p3YBSdbuegghDAf+goDJw9kEBeVTNrpPGO7m58jYZEBhPbxxcZevreEuFp1/u2ZOXMmhw4dYuvWrYwePdrYPnz4cF577TVJLESzcvFuRceOHfHw8DBxNKZVUFrB83+VQN3XL5j+bT1NHJEQQlTKzyohfnsyCTtTKS2sAMDCQkPrbl5oIwPwb9dCZvMToh7UObFYvXo1K1asoG/fvlV+CTt16sSpU6fqNTghzFlBQQGHD1eeSPfr18/E0Zjem78eISWvlJbuDjw/uoOpwxFCNHMGg+JcfDZx25I5G5cNlWOxcXKzpfMgfzoO8MfR1da0QQrRxNQ5scjMzMTbu/p89EVFRZLti2Zl37596PV6AgMDadmypanDMamtxzL4bt95oLIEylFKoIQQJlJSWM6RnanEb08mP6vU2B7U0Q1tZCAhYR5YWMpgbCEaQp3/+vfq1Ytff/2VqVOnAhiTic8//1yu2opmo7y8nH379gHQv39/E0djWnklFbzwUywAUwaE0Kd18y4JE0Jcf0op0hPziY1K4mRMBgZd5e0JWwcrOvT3QzsogBY+MrmGEA2tzonFnDlzGD16NAkJCeh0Oj744APi4+PZtWsXUVFRDRGjEGbn4MGDlJSU4ObmRocOzbvs5z9rE0jLLyXEw4HnRjXv90IIcX1VlOk5vjeNuG3JZJ0vNLZ7BzujjQygbU8frG0sTRihEM1LnROL/v37s3PnTubNm0ebNm3YsGED3bt3Z9euXYSFhTVEjEKYFYPBwO7du4HKmaAsLJrvLfXNR9L5MSYJjQbm3dYVe/kDLoS4Di6kFhG3LZlju1IpL62cKtbS2oJ2vXzQRgTgE+Ji4giFaJ6uqhA6LCzMON2sEM3NsWPHuHDhAnZ2dnTr1s3U4ZhMbnE5M1dWlkD9a2Areoa4mzgiIURTptcbSDyYRdy2JJKP5RrbXb3s0UYG0KGfH3aO1qYLUAhx9QvkZWRkkJGRgcFgqNLepUuXaw5KCHMWHR0NQM+ePbGxsTFxNKYz+5cEMgrKaO3lyPSRoaYORwjRRBXmlBK/I4WEHSkU55UDoNFASBdPwiIDCezghsZCJo8RwhzUObGIiYnh/vvv58iRIyilqmzTaDTo9fp6C04Ic3P+/HnOnz+PhYUFffr0MXU4JvN7fBqr/kzG4q8SKDtrKYESQtQfpRRJx3KIi0om8VAWylB5vmHvYkPngf50GuiPs7udiaMUQvxTnROLKVOm0L59exYvXoyPj49MMSualYsL4nXp0gVnZ2cTR2MaF4rKeWlVZQnUwxFt6N7SzcQRCSGairLiCo7uqhyMnZtebGz3b9cCbWQArcO9sLRqvuPahDB3dU4sEhMTWblyJW3btm2IeIQwWzk5ORw5cgRo3gvivbYmnqzCctp5OzFteDtThyOEaAIyzxUQG5XEib3p6CoqS6yt7Szp0MeXzpEBePg7mThCIURt1DmxGDZsGIcOHZLEQjQ7u3fvRilFmzZt8PHxMXU4JrEuNpVfDqVgaaGREighxDXRVeg5GZNBXFQy6Yn5xnaPAEe0kYG07+2DjZ0stilEY1Ln39j/+7//4/777ycuLg6tVou1ddUZGMaNG1dvwQlhLkpKSjhw4ADQfBfEyyos4+XVcQD8O7INXYNamDYgIUSjlJdZTNy2FI5Ep1BWpAPAwlJDm+7eaCMD8GvjKmXWQjRSdU4soqOj2bFjB7/99lu1bTJ4WzRV+/fvp6KiAh8fH1q3bm3qcK47pRSvrI7jQlE5HXydmTpM7lgKIWrPYFCcjcsmLiqJc/EXjO1O7rZoIwLo2N8fB5fmO8ueEE1FnROLJ598knvvvZdXXnml2ZaDiOZFp9OxZ88eoHJsRXO8krb2cCq/xaVh9VcJlK2VlEAJIa6sOL+chJ0pxG9PpvBCWWWjBlp28iAsMoCWWg8sZKpYIZqMOicW2dnZPP3005JUiGYjLi6OwsJCnJ2d0Wq1pg7nussoKOWVnytLoB4f0hZtgKuJIxJCmDOlFKmn8oiLSubUgQwM+sqpYm0drejU35/OEf64ejmYOEohREOoc2IxYcIEtmzZQps2bRoiHiHMilLKuCBenz59sLJqXgMJlVK8tCqO3OIKOvm58PgQKYESQtSsvFTH8T2VU8VmJxcZ231auaCNDKBtd2+sbORupxBNWZ3Pktq3b8/MmTPZsWMHYWFh1QZvP/nkk/UWnBCmdurUKTIyMrC2tqZHjx6mDue6+/lgChsT0rG2rCyBspH544UQ/5CdXEjctmSO7U6joqxynKWVtQXte/ugjQzEq2XzXPNHiOboqmaFcnJyIioqiqioqCrbNBqNJBaiSbm4IF737t2xt7c3cTTXV3p+Ka+tiQfgyaHt6OTvYuKIhBDmQq8zcPpgJnFRyaScyDW2t/BxQBsRQId+vtg6WF96B0KIJumqFsgTojlIS0vj1KlTaDQa+vbta+pwriulFC+ujCWvpIKwAFceHSylj0IIKLhQSvz2ZBJ2plKSXw6AxkJD666edI4MIDDUrVlOcCGEqNS8CsaFqIOLdys6deqEm5ubiaO5vn46kMzmoxnYWFow77auWFtKCZQQzZUyKM4fvUBcVDJnDmehKsdi4+BqQ+eB/nQaGICTm61pgxRCmIVaJRbPPPMM//nPf3B0dOSZZ565bN/58+fXS2BCmFJ+fj6xsbFA5RSzzUlqXgmzf6ksgZo2oh2hvlIfLURzVFpUwZHoVOK2JZOfWWJsDwh1QxsRQKtwTyzlooMQ4m9qlVj8+eefVFRUGP8tRFO3d+9eDAYDLVu2JDAw0NThXDdKKV74KZaCUh1dg1rw8KDmtxigEM1d+pl84qKSOLE/A32FAQAbO0s69POjc0QA7n6OJo5QCGGuapVYbNmypcZ/C9EUlZWVsX//fgD69+9v4miur+/3nyfqeCY2Vha8d1sXrORqpBDNQkW5nhP70omLSibzXIGx3TPIibDIQNr18sHaVqaKFUJcXp3HWDzwwAN88MEHODtXLY8oKipi6tSpfPHFF/UWnBCm8Oeff1JaWoq7uzvt27c3dTjXTXJuCf9ZewSAGSPb09ZbSqCEaOpy04uJ25bM0V2plBXrALCw0tCuhw/ayAB8WrnIYGwhRK3V+XLkl19+SUlJSbX2kpISvvrqqzrta9u2bdx00034+/uj0WhYvXp1le2TJ09Go9FU+fnn7DxlZWVMnToVT09PHB0dGTduHElJSXV9WUIAoNfr2b17N1A5tsLConlcsVdK8fyPhyks09G9ZQseHCglUEI0VQa9gdN/ZrLmgz/5+rXdHNp8nrJiHS6edvS7pQ2T5wxg+JRO+LZ2laRCCFEntb5jkZ+fj1IKpRQFBQXY2dkZt+n1etatW4e3t3edDl5UVETXrl2ZMmUKt956a419Ro8ezZIlS4yPbWxsqmyfNm0av/zyC9999x0eHh5Mnz6dsWPHEhMTg6Wl3LYVdXP06FFyc3Oxt7ena9eupg7nuvlm7zl2nMzC1qpyFihLCzmZEKKpKcorI2FHCvHbUyjKLats1ECI1gNtZCAtO7mjkd99IcQ1qHVi0aJFC+Ndg5rKQzQaDbNnz67TwceMGcOYMWMu28fW1hZfX98at+Xl5bF48WKWLVvG8OHDAVi+fDlBQUFs2rSJUaNG1Ske0bwppYiOjgagd+/e1ZLYpur8hWLe/LWyBOq50R1o7eVk4oiEEPVFKUXKiVziopI5/WcmBkPlXLF2TtZ0GuBP50H+uHg2r8U/hRANp9aJxZYtW1BKMXToUH766Sfc3d2N22xsbAgODsbf37/eA9y6dSve3t60aNGCyMhI3nzzTeOdkZiYGCoqKhg5cqSxv7+/P1qtlujo6EsmFmVlZZSVlRkf5+fn13vcovE5f/48ycnJWFpa0qtXL1OHc10YDIrnfjxMcbme3iHuTOkfYuqQhBD1oKxEx7HdacRtSyYntcjY7tfGFW1kAG26eWNp3TxKPYUQ10+tE4vIyEigcuXtli1bXrHu8rHHHuP111/H09PzqoMbM2YMt912G8HBwSQmJvLKK68wdOhQYmJisLW1JS0tDRsbm2qLl/n4+JCWlnbJ/c6ZM6fOd1dE03fxbkXXrl1xcmoeV+2X7znLrtPZ2FtbMndiFyykDEKIRi0rqYC4qGSO7U1HV6YHwMrWktDelYOxPQNlUgYhRMOp86xQwcHBteq3fPlyZsyYcU2Jxe233278t1arpWfPngQHB/Prr78yYcKESz5PKXXZxGfmzJlVFvrLz88nKCjoquMUjV92djZHjx4Fms+CeGezi5izrvI1vzCmAyGeMje9EI2RvsLAyQMZxEUlk3Y6z9ju5ueINiKA0L6+2NrX+c+9EELUWYN90yil6n2ffn5+BAcHc+LECQB8fX0pLy8nJyenyl2LjIyMy64/YGtri62tbb3HJxqvXbt2AdCuXTu8vLxMHE3DMxgUz/5wmJIKPX1bu3Nv39pdMBBCmI/8rBLit6dwJDqFkoLKRWwtLDS07uaFNjIA/3YtZFYnIcR11aguYWRnZ3P+/Hn8/PwA6NGjB9bW1mzcuJFJkyYBkJqaSlxcHHPnzjVlqKIRKS4u5uDBg0DzWRBvafQZ9p65gIONJe9O7ColUEI0EgaD4lx8NvHbkjkTlw1/XcNzcrOl8yB/Og7wx9FVLpwJIUzDpIlFYWEhJ0+eND5OTEzk4MGDuLu74+7uzqxZs7j11lvx8/PjzJkzvPjii3h6enLLLbcA4OrqyoMPPsj06dPx8PDA3d2dGTNmEBYWZpwlSogr2bdvHzqdDj8/P0JCQkwdToM7nVnI3N8rS6BevKEjQe4OJo5ICHElJYXlHNmZSvz2ZPKzSo3tQR3d0EYGEhLmgYWlDMYWQpiWSROL/fv3M2TIEOPji+Me7r//fhYtWkRsbCxfffUVubm5+Pn5MWTIEFasWFFl1e/3338fKysrJk2aRElJCcOGDWPp0qWyhoWolYqKCvbu3QtUjq1o6mUDeoPi2R8PU1phYGBbT+7u09LUIQkhLkEpRXpiPnFRyZyMyUCvMwBg62BFh35+aCMCaOEjFwaEEObDpInF4MGDLzsW4/fff7/iPuzs7Fi4cCELFy6sz9BEMxEbG0tRUREuLi507tzZ1OE0uC92JBJzNgcnWyvevjWsySdSQjRGFWV6ju+tnCo263yhsd2rpTNhgwNo29MHaxu5eFafDAYD5eXlpg5DCJOwtrautwvyDZZY3HPPPbi4uDTU7oW4ZgaDwTjFbN++fZv8Xa6TGYW8u+EYAC/f2JFAN7nSKYQ5yUkrIi4qmaO7UikvrZwq1tLagnY9vdFGBuITIn9TG0J5eTmJiYkYDAZThyKEybRo0QJfX99rvuBYq8Ti8OHDtd5hly5dAFi0aNHVRSTEdXLy5EmysrKwtbWle/fupg6nQen0Bqb/cIhynYGI9l7c3kumVxbCHOj1BhIPZhG3LYnkY7nGdlcvezpHBNCxnx92TtamC7CJU0qRmpqKpaUlQUFBWFjIOBXRvCilKC4uJiMjA8A4QdLVqlViER4ejkajuWTZ0sVtGo0GvV5/TQEJcb1cnGK2e/fu2NnZmTiahvX59kQOnc/F2c6Kd6QESgiTK8wpI2FHMvE7UijOqyzB0WggpIsn2sgAgjq4o5HZ2hqcTqejuLgYf39/HBzkLq5onuzt7YHK5Rq8vb2vqYKjVolFYmLiVR9ACHOUmppKYmIiGo2GPn36mDqcBnU8vYD3Nx4H4NWxnfBztTdxREI0T0opko7lEBeVTOKhLJSh8mKdvYsNnQf602mgP87uTfsih7m5eDHUxsbGxJEIYVoXE+uKioqGTyxqu9q2EI3FxbEVWq2WFi1amDaYBlShNzD9+0OU6w0M7eDNxB6Bpg5JiGanrLiCo7sqB2Pnphcb2/3btUAbGUDrcC8sraQEx5TkLq5o7urrd+CqB28nJCRw7ty5arMojBs37pqDEqIh5eXlERcXB1ROMduUfRp1itjkPFzsrJgzQUqghLieMs8VEBeVxPG96egqKgcGW9tZEtrHF21EAB4BTiaOUIjGZ9asWaxevdq4sK0wL3VOLE6fPs0tt9xCbGxslXEXF09YZIyFMHd79uxBKUVISAj+/v6mDqde6Q2KvYkXyCgopbRCz4JNlSVQs2/ujI+LlFgI0dB0FXpOxmQQF5VMemK+sd0jwBFtZCDte/tgY2fSmd5FExIdHc2gQYMYMWIE69evN3U49U6j0bBq1SrGjx9vbJsxYwZTp041XVDisur87fbUU0/RqlUrNm3aROvWrdm7dy/Z2dlMnz6defPmNUSMQtSb0tJSYmJiAOjfv7+Jo6lf6+NSmf1LAql5pVXauwS6Mj48wERRCdE85GUWE78thSPRqZQWVQBgYamhTXdvtJEB+LVxlTuGTdjfL+p4O9vRu5U7ltdh8P0XX3zB1KlT+b//+z/OnTtHy5YNu+hpRUUF1tamnaXMyckJJye522eu6lzUuWvXLl5//XW8vLywsLDAwsKCgQMHMmfOHJ588smGiFGIenPgwAHKysrw9PSkbdu2pg6n3qyPS+Xfyw9USyoADifl8Xt8mgmiEqJpMxgUiYez+GXhQZa/ups/N56jtKgCJ3db+o5vzf1zBjDywc74t20hSUUTtj4ulYHv/MGdn+/mqe8Ocufnuxn4zh+sj0tt0OMWFRXx/fff8+9//5uxY8eydOnSKtvXrFlDu3btsLe3Z8iQIXz55ZdoNBpyc3ONfT7//HOCgoJwcHDglltuYf78+VXGHc6aNYvw8HC++OILWrduja2tLUop8vLyePjhh/H29sbFxYWhQ4dy6NChKsd/44038Pb2xtnZmX/961+88MILhIeHG7fv27ePESNG4OnpiaurK5GRkRw4cMC4PSQkBIBbbrkFjUZjfHwxposMBgOvv/46gYGB2NraEh4eXuXuzZkzZ9BoNKxcuZIhQ4bg4OBA165djTNDivpV58RCr9cbM0VPT09SUlKAygHex44dq9/ohKhHer2ePXv2AJVjK5rKfOV6g2L2Lwlcag17DTD7lwT0hkuvci+EqL3i/HJi1p9h2cvRrPv4MOfiL4CClp3dueGxLtz7Rn96jA7BwUVmGmrqLnVRJy2vlH8vP9CgycWKFSsIDQ0lNDSUe+65hyVLlhjL08+cOcPEiRMZP348Bw8e5JFHHuGll16q8vydO3fy6KOP8tRTT3Hw4EFGjBjBm2++We04J0+e5Pvvv+enn34yjmu48cYbSUtLY926dcTExNC9e3eGDRvGhQsXAPj666958803eeedd4iJiaFly5bV1jcrKCjg/vvvZ/v27ezevZt27dpxww03UFBQAFQmHgBLliwhNTXV+PifPvjgA9577z3mzZvH4cOHGTVqFOPGjePEiRNV+r300kvMmDGDgwcP0r59e+688050Ol0d33VxJXUuhdJqtRw+fJjWrVvTp08f5s6di42NDZ999hmtW7duiBiFqBcJCQnk5eXh6OhoXMixKdibeKHGOxUXKSA1r5S9iRfo18bj+gUmRBOilCL1VB5xUcmcOpCBQV95AmfraEXH/v5oI/xx9ZJ1EBo7pRQlFbUbK6o3KF5bE1/jRR1F5UWdWWsSGNDWs1ZlUfbWlnW6s7V48WLuueceAEaPHk1hYSGbN29m+PDhfPLJJ4SGhvLuu+8CEBoaSlxcXJXEYeHChYwZM4YZM2YA0L59e6Kjo1m7dm2V45SXl7Ns2TK8vLwA+OOPP4iNjSUjIwNbW1sA5s2bx+rVq/nxxx95+OGHWbhwIQ8++CBTpkwB4NVXX2XDhg0UFhYa9zt06NAqx/n0009xc3MjKiqKsWPHGo93cUXoS5k3bx7PP/88d9xxBwDvvPMOW7ZsYcGCBXz00UfGfjNmzODGG28EYPbs2XTu3JmTJ0/SoUOHWr3fonbqnFi8/PLLFBUVAZW3ucaOHcugQYPw8PBgxYoV9R6gEPVBKWWcYrZ3794mrxGtTxkFl04qrqafEOJ/ykt1HN+bTlxUEtnJRcZ2n1YuaCMDaNvdGyubq5/zXZiXkgo9nV79vV72pYC0/FLCZm2oVf+E10fhYFO707Jjx46xd+9eVq5cCYCVlRW33347X3zxBcOHD+fYsWP06tWrynN69+5dbR+33HJLtT7/TCyCg4ONJ/kAMTExFBYW4uFR9UJVSUkJp06dMu77scceq7bvP/74w/g4IyODV199lT/++IP09HT0ej3FxcWcO3euVu8BQH5+PikpKQwYMKBK+4ABA6qVZv39guLF1aUzMjIksahndU4sRo0aZfx369atSUhI4MKFC7i5uUkNqTBbZ8+eJTU1FSsrK3r27GnqcOqVt3PtZnuqbT8hBGQnFxK3LZlje9KoKK28gm1lbUH73j5oIwPxauls4ghFc7Z48WJ0Oh0BAf+bmEMphbW1NTk5OSilqp2TXSyT+vvjK/UBcHR0rPLYYDDg5+fH1q1bq/X9+/iMK+178uTJZGZmsmDBAoKDg7G1taVfv37VljGojZqO9c+2v19QvLjNYDDU+Vji8q56zruTJ09y6tQpIiIicHd3r/HDKIS5uHi3Ijw8vNqXZGPXu5U7LRysyS2uqHG7BvB1rZylRAhxaXqdgdMHM4mLSiblRK6xvYWPA9qIAEL7+mLn2HTudorq7K0tSXh91JU7UlmGOnlJzXX/f7d0Sq9aff/aW9fuzpdOp+Orr77ivffeY+TIkVW23XrrrXz99dd06NCBdevWVdm2f//+Ko87dOjA3r17L9unJt27dyctLQ0rKyvjgOp/Cg0NZe/evdx7772X3Pf27dv5+OOPueGGGwA4f/48WVlZVfpYW1tfdhkDFxcX/P392bFjBxEREcb26OjoandoxPVR58QiOzubSZMmsWXLFjQaDSdOnKB169b861//okWLFrz33nsNEacQVy0zM5PjxyvXc+jbt6+Jo6l/R9PyKS6r+Yv34vWa127qdF2mPhSiMSq4UEr89mQSdqZSkl95tVRjoaFVV0+0kQEEhsod+eZCo9HUuhxpUDsv/FztSMsrrXGcxcWLOoPaedXr9+/atWvJycnhwQcfxNXVtcq2iRMnsnjxYlauXMn8+fN5/vnnefDBBzl48KBx1qiLn+WpU6cSERHB/Pnzuemmm/jjjz/47bffrvhZHz58OP369WP8+PG88847hIaGkpKSwrp16xg/fjw9e/Zk6tSpPPTQQ/Ts2ZP+/fuzYsUK4/jci9q2bcuyZcvo2bMn+fn5PPvss9jb21c5VkhICJs3b2bAgAHY2tri5uZWLZ5nn32W1157jTZt2hAeHs6SJUs4ePAgX3/99dW8veIa1XlanKeffhpra2vOnTuHg8P/BqrdfvvtTXJxFtH4XZxSLjQ0FE9PTxNHU7+yC8t4+KsYyvUGOvo54/uPRfB8Xe1YdE93Rmv9TBShEOZJGRTnErJZt+gwy16KJua3s5Tkl+PgakOvG0O4783+jHkkjKAO7pJUiBpZWmh47aZOwP8u4lzUkBd1Fi9ezPDhw6slFVB5x+LgwYPk5OTw448/snLlSrp06cKiRYuMs0JdHHA9YMAAPvnkE+bPn0/Xrl1Zv349Tz/9NHZ2ly+b1Wg0rFu3joiICB544AHat2/PHXfcwZkzZ/Dx8QHg7rvvZubMmcyYMYPu3buTmJjI5MmTq+z7iy++ICcnh27dunHvvffy5JNP4u3tXeVY7733Hhs3biQoKIhu3brVGM+TTz7J9OnTmT59OmFhYaxfv9441a64/jSqjjVMvr6+/P7773Tt2hVnZ2cOHTpE69atSUxMJCwsrMqI/8YiPz8fV1dX8vLycHFxMXU4oh4VFhby/vvvo9frmTJlCsHBwaYOqd5U6A3c/X972Jt4gVaejqx+bABOdlYmWaRJiMaitKiCo7tSiYtKJi+zxNgeENoCbUQgrcI9sbRsGlNRiysrLS0lMTGRVq1aXfGE+lJqWpzUz9WO127qZFYXdd58800++eQTzp8/f8k+Dz30EEePHmX79u31fvwRI0bg6+vLsmXL6n3f4tpd7nehLufJdS6FKioqqnKn4qKsrCxjFiyEudi3bx96vZ6AgIAGX5H0env9lwT2Jl7AydaKz+/rgatDZe23TCkrRHXpZ/KJi0rixP4M9BWVAzZt7Czp0M+PzhEBuPs1rbFX4voZrfVjRCdfs7uo8/HHH9OrVy88PDzYuXMn7777Lk888USVPvPmzWPEiBE4Ojry22+/8eWXX/Lxxx9f87GLi4v55JNPGDVqFJaWlnz77bds2rSJjRs3XvO+hXmrc2IRERHBV199xX/+8x+g8paYwWDg3XffZciQIfUeoBBXq6KiwrigTr9+/ZpUOcM3e86xbPdZNBpYcHs4bb1lhhoh/qmiXM/J/enERSWTcbbA2O4Z5IQ2IoD2vX2xtpWpYsW1s7TQmN1FnRMnTvDGG29w4cIFWrZsyfTp05k5c2aVPnv37mXu3LkUFBTQunVrPvzwQ/71r39d87Evlku98cYblJWVERoayk8//cTw4cOved/CvNU5sXj33XcZPHgw+/fvp7y8nOeee474+HguXLjAzp07GyJGIa7KoUOHKC4upkWLFnTs2NHU4dSbfWcu8NqaOABmjAxleCcfE0ckhHnJTS8mblsyR3elUlZcubKuhZWGtj28CYsMxKeVS5O60CBETd5//33ef//9y/b5/vvvG+TY9vb2bNq0qUH2LcxbnROLTp06cfjwYRYtWoSlpSVFRUVMmDCBxx9/3LjgiBCmZjAYjIO2+/bti6Vl07gqmZxbwqPLYqjQK8Z28eOxwW1MHZIQZsGgN3AmNpu4qCTOH8kxtrt42tF5UAAd+/th72xjwgiFEKLpq1NiUVFRwciRI/n000+ZPXt2Q8UkxDU7fvw42dnZ2NnZXXImicampFzPI8v2k11UTic/F+ZO7CJXXUWzV5RXRsKOFBJ2pFCYU1bZqIEQrQedIwJo2dkDC5nAQAghros6JRbW1tbExcXJyYwwexcXxOvRo0eTmFRAKcXzPx0mLjkfd0cbPruvR63nWheiqVFKkXIil7ioZE7/mYnBUDm5oZ2TNZ0G+NN5kD8unvZX2IsQQoj6Vuczk/vuu4/Fixfz9ttvN0Q8Qlyz5ORkzp07h4WFBX369DF1OPXik6jTrDmUgpWFhkV3dyfQrfrMbEI0deUlOo7tSSM2Kpmc1CJju29rV7SRAbTt7o2ltUwVK4QQplLnxKK8vJz/+7//Y+PGjfTs2RNHx6pT9M2fP7/eghPialy8WxEWFtYk1iXZcjSDub8fBWDWuM70aW1eM48I0dCykgqIi0rm2N50dH+tMm9la0lobx+0kQF4BsqsaEIIYQ7qnFjExcXRvXt3oLKO/e+kREqYWk5ODgkJCUDlFLON3anMQp789k+Ugrv6tOSevk1ngT8hLkdfYeDUnxnERSWTeirP2O7m64A2MpDQvr7Y2ks5oBBCmJM6fytv2bKlIeIQol7s2bMHpRStW7fG19fX1OFck7ySCh76cj8FZTp6hbgx66bOpg5JiAaXn1VC/PYUjkSnUFJQAYCFhYZW4V6ERQbg376FXMQS4hIGDx5MeHg4CxYsACAkJIRp06Yxbdo0k8Ylmg+53COajJKSEg4cOABA//79TRzNtdEbFE999yens4rwd7Vj0T09sLGS2nHRNCmD4lzCBeKikjgTlw2VY7FxbGFL50H+dBroj6Nr45+EQYj6MnnyZL788stq7Xv27Lnsuk0ajYZVq1Yxfvz4BoxONGeSWIgmIyYmhvLycry9vWnTpnGv7/Du78fYeiwTO2sLPruvJ55OclIlmp6SwnKO7Ewlfnsy+Vmlxvagjm5oIwIJ6eKBhaUk1KIRMOjhbDQUpoOTDwT3B4uGXT9p9OjRLFmypEqbl5fXdVm3qaKiAmtr6wY/jmh8JLEQTYJOp2PPnj1A5diKxlwq8fPBZD6JOgXA3Ild0Qa4mjgicSVKr6d4fwy6zEysvLxw6NkDTRNZlLG+KaVIT8wnLiqZkzEZ6HUGAGwdrOjQzw9tRAAtfGTWM9GIJKyB9c9Dfsr/2lz8YfQ70Glcgx3W1ta2WsnvP0uh/i4kJASAW265BYDg4GDOnDkDwC+//MKsWbOIj4/H39+f+++/n5deegkrq8rTRI1Gw6JFi/jtt9/YtGkTM2bMkPXMRI0ksRBNQnx8PAUFBTg5OREWFmbqcK5abFIez/14GIB/D27DuK7+Jo5IXEn+hg2kvzUHXVqasc3K1xefF2fiMnKkCSMzLxVleo7vTSNuWzJZ5wuN7V4tndFGBtCulw/WNpKMiUYmYQ18fx/G+r2L8lMr2yd91aDJRV3s27cPb29vlixZwujRo413Nn7//XfuuecePvzwQwYNGsSpU6d4+OGHAXjttdeMz3/ttdeYM2cO77///nW5KyIaJ0ksRKOnlDJOMdunTx/jFZbGJrOgjIeX7adMZ2BoB29mjAw1dUjiCvI3bCD5qWmgqp5U6NLTK9s/WNDsk4uctCLiopI5ujuN8hIdAJbWFrTr6Y02MhCfkMY/JbRoQpSCiuLa9TXo4bfnqJZUVO4I0FTeyWg9uHZlUdYOUIe77WvXrsXJycn4eMyYMZft7+XlBUCLFi2q3Ol48803eeGFF7j//vsBaN26Nf/5z3947rnnqiQWd911Fw888ECt4xPNU+M8AxPib06fPk16ejrW1tb06NHD1OFclXKdgX8vjyE1r5TWXo4suCMcS4vGW87VHCi9nvS35lRLKio3KtBoSH9rDs7DhjW7sii93sCZQ1nERiWTfCzH2O7iZY82IoCO/fywc5L6bGGGKorhrfq6U6wqy6PeDqpd9xdTwMbxyv3+MmTIEBYtWmR87OjoyJ133lnXIImJiWHfvn28+eabxja9Xk9paSnFxcU4OFSWJvbs2bPO+xbNjyQWotHbtWsXAN26dTN+ATYmSileWxPH/rM5ONtZ8fl9PXGxk5Muc1e8P6ZK+VM1SqFLS6N4fwyOfXpfv8BMqDCnjIQdycTvSKE4rxyovAAb0sUTbUQAQR3d0UjCLES9cHR0pG3btte8H4PBwOzZs5kwYUK1bXZ2dlWOJ8SVSGIhGrX09HROnjyJRqOhb9++pg7nqizffZZv955Ho4EP7+xGGy+nKz9JmJwuM7Ne+zVWSimSj+UQF5XM6UNZKEPlHRx7Z2s6DfSn86AAnN3trrAXIcyEtUPlnYPaOBsNX0+8cr+7f6ycJao2x25g1tbW6PX6Km3du3fn2LFj9ZKkCCGJhWjULt6t6NChA+7u7iaOpu52ncpm9i+VK4U/P7oDQ0K9TRyRqI2KlBTyVq+uVV+rv+qam5qy4gqO7qocjJ2b/r+adL+2roRFBtK6mxeWsvaKaGw0mtqXI7UZWjn7U34qNY+z0FRubzO0waeera2QkBA2b97MgAEDsLW1xc3NjVdffZWxY8cSFBTEbbfdhoWFBYcPHyY2NpY33njD1CGLRkYSC9FoFRQUEBsbCzTOBfHOXyjm8W8OoDMobg7355GI1qYOSVyBPi+PrM8+I2fZclR5+eU7azRY+fjg0LNxjvu5lMxzBcRFJXF8Xzq68sqpYq1tLQnt64s2IgCPALnjJpoJC8vKKWW/vw/QUDW5+Kvkb/TbZpNUALz33ns888wzfP755wQEBHDmzBlGjRrF2rVref3115k7dy7W1tZ06NCBf/3rX6YOVzRCGqVqGnnYvOTn5+Pq6kpeXh4uLjJDSWOxefNmtm/fTlBQEA8++KCpw6mT4nIdty7axZHUfLQBLvz4aH/srM3nj4+oylBWRs7y5WR9+hmG/HwAHHr1wjFiEJnz36/s9Pev0r9mdgloIrNC6Sr0nIzJIC4qmfTEfGO7u78jYZEBtO/ji42dXKcSjU9paSmJiYm0atWqyniCOqlxHYuAyqTCTKaaFeJKLve7UJfzZPlLIBql8vJy9u3bB1QuiNeYKKV49ofDHEnNx9PJhs/u7SlJhZlSej15a34h88MP0aWmAmDbrh3eM6bjGBGBRqPBJji4+joWPj5NYh2LvMwS4rclcyQ6ldKiCgAsLDW06e6NNjIAvzaujXoxSiHqRadx0OHG677ythDmSBIL0SgdPHiQ0tJS3Nzc6NChg6nDqZOPtpzk19hUrC01fHJPD/xb2Js6JPEPSimKtm0j4735lB0/DlQueuf15JO43jyuyvSxLiNH4jxsWJNZedtgUJyNyyYuKplzCdnG6g4nd1s6Dwqg0wB/HFxsTBukEObGwhJaDTJ1FEKYnCQWotExGAzGQdv9+vXDwqLxDBDdmJDOvA2VJ6qv36ylZ0jjG3De1JXExpLx7jyK9+4FwMLFBc9HHsbt7ruxuESphMbSstFPKVucX86R6BTit6VQcKHU2N6yszvayECCtR5YyFSxQgghLkMSC9HoHD16lJycHOzt7QkPDzd1OLV2Ir2Ap1ccBOC+fsHc2bulaQMSVZSfPUvG+wsoWL8eAI2NDW733IPnww9h2aKFaYNrIEop0k7lERuVzKkDGRj0lbcnbB2t6Njfn86D/Gnh3fjWhhFCCGEakliIRic6OhqoXAXUxqZxlGTkFVfw0Ff7KSzT0aeVO6+M7WTqkMRfdFlZZH28iJzvvwedDjQaXG++Ga8np2LtX18r8JqX8lIdx/emExeVRHZykbHdp5UL2ogA2vbwxsqmcZZyCSGEMB1JLESjcv78eZKSkrC0tKR378ZReqLTG3ji2wOcyS4moIU9H9/dHWvLxlO+1VQZiorIXrKUC198gaG4ch0Gx4hBeE+fjl1oqImjaxjZKYXERyVzdE8aFaWVi2RZWVvQrrcP2ogAvINlVjwhhBBXz6RnN9u2beOmm27C398fjUbD6n8sOKWUYtasWfj7+2Nvb8/gwYOJj4+v0qesrIypU6fi6emJo6Mj48aNIykp6Tq+CnE9Xbxb0aVLF5ydnU0cTe28s/4o209kYW9tyef39cTDydbUITVrqqKCC998w8mRo8j6738xFBdjFxZGy6VLafnZZ00uqdDrDJzYn86q9w7w3et7iY1KpqJUTwsfBwbe1o773x7A0Hs7SlIhhBDimpn0jkVRURFdu3ZlypQp3HrrrdW2z507l/nz57N06VLat2/PG2+8wYgRIzh27JjxpHLatGn88ssvfPfdd3h4eDB9+nTGjh1LTEwMlo10VhZRswsXLnDkyBGg8Uwxu/JAEp9vTwRg3m1d6eQvJ2+mopSi4PcNZL7/PuVnzwJg3bIl3k9Pw3n06CY3bWrBhVISdqQQvyOFkvzKxfw0FhpadfVEGxlAYKhbk3vNQgghTMukicWYMWMYM2ZMjduUUixYsICXXnqJCRMmAPDll1/i4+PDN998wyOPPEJeXh6LFy9m2bJlDB8+HIDly5cTFBTEpk2bGDVq1HV7LaLh7d69G4C2bdvi7e1t4miu7OD5XF5YWbky+NShbbmxi5+JI2q+ivbuJWPee5QePgyApbs7no8/htttt6FpJON0akMZFOePXiAuKpkzh7OMa/Y5uNrQaaA/nQf64+R2lYuACSGEEFdgtmMsEhMTSUtLY+TfFpiytbUlMjKS6OhoHnnkEWJiYqioqKjSx9/fH61WS3R0tCQWTUhxcTF//vknAP379zdxNFeWkV/KI8v2U64zMLyjD08Pb2/qkJql0mPHyZw/n8KoKAA0Dg54TJmC+5QpWDo5mji6+lNaVMHRXanERSWTl1libA8IbYE2IpBW4Z5YyrgeIUQdTJ48mdzc3Gpl6tdi6dKlTJs2jdzc3HrbpzAvZptYpP21iq2Pj0+Vdh8fH87+VcaQlpaGjY0Nbm5u1fqk/W0V3H8qKyujrKzM+Dg/P7++whYNZP/+/VRUVODj40OrVq1MHc5llen0PLI8hvT8Mtp5O/H+7V1l/v/rrCI1lcwPF5K3ejUoBZaWtJh0G16PPYaVl5epw6s3GWfziY1K5sS+dPQVBgBs7CwJ7eeHdlAA7v5NJ3kSwpzpDXoOZBwgszgTLwcvunt3x7IBV96+1En/1q1bGTJkCDk5ObS4DtNkDx48mPDwcBYsWFCr/rfffjs33HBDwwYlTMpsE4uL/lkDrJS6Yl3wlfrMmTOH2bNn10t8ouHpdDr2/rVYWf/+/c26Llwpxcur4vjzXC4udlZ8fl9PnO2sTR1Ws6HPyyPrs8/IWbYcVV45rsB51Ci8pj2FrZknpLVVUa7n5P504qKSyThbYGz3CHQiLDKAdr18sLEz+692IZqMTWc38fbet0kvTje2+Tj48ELvFxgePNyEkZkfe3t77O3tTR2GaEBme2/c19cXoNqdh4yMDONdDF9fX8rLy8nJyblkn5rMnDmTvLw848/58+frOXpRn2JjYyksLMTZ2RmtVmvqcC5rafQZfohJwkID/72rOyGecsX4ejCUlZG9+AtOjhzFhcVfoMrLcejZk5AV3xH4wYImkVTkphez48cTfPnCTv746igZZwuwsNLQvo8Ptz7Xg9tf6kXnQQGSVAhxHW06u4lntj5TJakAyCjO4Jmtz7Dp7CYTRQbZ2dnceeedBAYG4uDgQFhYGN9++22VPj/++CNhYWHY29vj4eHB8OHDKSoqqtJn3rx5+Pn54eHhweOPP05FRcUlj5mTk8N9992Hm5sbDg4OjBkzhhMnThi3L126tMqdlFmzZhEeHs6yZcsICQnB1dWVO+64g4KCghr2LhoDs/0L1KpVK3x9fdm4cSPdunUDoLy8nKioKN555x0AevTogbW1NRs3bmTSpEkApKamEhcXx9y5cy+5b1tbW2xtZcrPxkApZZxitm/fvmY909fOk1m88WvlrFUv3tCRiPZNp+TGXCm9nrw1v5D54YfoUlMBsG3XDq/pz+AUGWnWd7dqw6A3cCY2m7htyZxPuGBsd/awQxsRQMf+ftg7N53B50KYmlKKEl3JlTtSWf40Z+8cFKr6fv5qe3vv2/Tx7VOrsih7K/t6/c4qLS2lR48ePP/887i4uPDrr79y77330rp1a/r06UNqaip33nknc+fO5ZZbbqGgoIDt27ej1P9ez5YtW/Dz82PLli2cPHmS22+/nfDwcB566KEajzl58mROnDjBmjVrcHFx4fnnn+eGG24gISEBa+ua796fOnWK1atXs3btWnJycpg0aRJvv/02b775Zr29F+L6MWliUVhYyMmTJ42PExMTOXjwIO7u7rRs2ZJp06bx1ltv0a5dO9q1a8dbb72Fg4MDd911FwCurq48+OCDTJ8+HQ8PD9zd3ZkxYwZhYWHGWaJE43by5EkyMzOxsbGhe/fupg7nks5lF/P4NwfQGxQTugfw4MDGf4XcnCmlKNq+nYx571F2/DgAVr6+eD35JK43j0NjxglobRTllXFkZwrx21MozPlrPJgGgrUeaCMCaNnZQ8btCNEASnQl9PmmT73tL704nf7f1W7CkT137cHB2qHW+167di1OTk5V2vR6vfHfAQEBzJgxw/h46tSprF+/nh9++MGYWOh0OiZMmEBwcDAAYWFhVfbn5ubGf//7XywtLenQoQM33ngjmzdvrjGxuJhQ7Ny50zjJytdff01QUBCrV6/mtttuq/F1GAwGli5dalxG4N5772Xz5s2SWDRSJk0s9u/fz5AhQ4yPn3nmGQDuv/9+li5dynPPPUdJSQmPPfYYOTk59OnThw0bNlRZGO3999/HysqKSZMmUVJSwrBhw1i6dKlZX9kWtbdr1y4AunfvbrZ1mYVlOh76aj+5xRV0DXTlrVvCGv2VcnNWEhtLxrvzKP5r3I2FiwueDz+E2z33YGHXeKdSVUqRciKXuG3JnD6QicFQedXQzsmaTgP86DwoABdP8/wdEEJcf0OGDGHRokVV2vbs2cM999wDVCYZb7/9NitWrCA5Odk4cY2jY2WJbteuXRk2bBhhYWGMGjWKkSNHMnHixCoT4nTu3LnK+ZSfnx+xsbE1xnPkyBGsrKzo0+d/iZmHhwehoaHGNahqEhISUuW8zs/Pj4yMjDq8E8KcmDSxGDx4cJVbbv+k0WiYNWsWs2bNumQfOzs7Fi5cyMKFCxsgQmFKaWlpnD59Go1GU+WLypwYDIrp3x/kWHoBXs62fHpvT+ysJaltCOVnz5KxYAEFv60HQGNjg9s99+D58ENYXofZTxpKeYmOY3vSiI1KJif1f7XNvq1d0UYG0La7N5bWZjscTogmxd7Knj137alV35j0GB7b/NgV+3087GN6+PSo1bHrwtHRkbZt21ZpS0pKMv77vffe4/3332fBggWEhYXh6OjItGnTKP9rYgtLS0s2btxIdHQ0GzZsYOHChbz00kvs2bPHOPviP8uXNBoNBoOhxngudT53pQl16nIMYf7MdoyFEBfHVnTq1KnalMLm4sM/TvB7fDo2lhZ8em8PfF0b7xVzc6XLzibro4/J+f570OlAo8F13Di8npyKdUCAqcO7allJhcRtS+bYnjR0ZZXlC1Y2FrTv44s2IgCvIOcr7EEIUd80Gk2ty5H6+/fHx8GHjOKMGsdZaNDg4+BDf//+DTr17KVs376dm2++2XgHw2AwcOLECTp27Pi/GDUaBgwYwIABA3j11VcJDg5m1apVxgqSuujUqRM6nY49e/YYS6Gys7M5fvx4lWOKpk0SC2GW8vLyiIuLA8x3Qbz1cWks2FQ528Ubt2jp3tI8k5/GylBURPbSpVxY/AWG4mIAHCMG4T19OnahoSaO7uroKwyc+jODuKhkUk/lGdvdfB3QRgYS2tcXW3v5WhaiMbC0sOSF3i/wzNZn0KCpklxoqLxC/3zv502SVAC0bduWn376iejoaNzc3Jg/fz5paWnGk/w9e/awefNmRo4cibe3N3v27CEzM/Oqk4B27dpx880389BDD/Hpp5/i7OzMCy+8QEBAADfffHN9vjRhxuQvmDBLe/fuxWAwEBwcTIAZXpU+mpbPM98fBGDKgBAm9QwybUBNiKqoIPfHH8n86GP0WVkA2Gm1eM+YgWNf8yyJu5L87BLit6dwZGcKJQWVUzVaWGhoFe5FWGQA/u1byLgcIRqh4cHDmT94fo3rWDzf+3mTrmPxyiuvkJiYyKhRo3BwcODhhx9m/Pjx5OVVXtRwcXFh27ZtLFiwgPz8fIKDg3nvvfcYM2ZMrY9hMBiwsvrfqeSSJUt46qmnGDt2LOXl5URERLBu3bpLzgglmh6Nutwgh2YiPz8fV1dX8vLycHFxMXU4zV5ZWRnz58+nrKyMO+64gw4dOpg6pCpyisoZ99EOzl8ooX8bD756oDdWllIDf62UUhT8voHM99+n/OxZAKxbtsT76Wk4jx7d6E68lUFxLuECcVFJnInL5uLFTMcWtnQe5E+nAf44tpBpr4UwpdLSUhITE2nVqhV21zD5w/VeedtcdOjQgX/9619VZp8SjdPlfhfqcp4sdyyE2fnzzz8pKyvDw8OD9u3bmzqcKnR6A49/c4DzF0po6e7AR3d1l6SiHhTv20f6vHmUHjoMgKW7O56PP4bbbbehsWlc6zSUFJZzJDqV+G3J5GeVGtsDO7gRFhlISBcPLOQzI0STYmlhSS/fXqYO47rJyMjgt99+49ixYwwbNszU4QgzIomFMCt6vd44xWy/fv2wsDCvE7A31x0h+lQ2DjaWfH5fT9wcG9dJr7kpPX6czPfmUxgVBYDGwQGPyZNxf+ABLJ0az6rlSinSE/OJ25bMyf0Z6HWVM5rY2FvRsZ8fnSP8cfNtPK9HCCEuZ/To0eTk5PDhhx8aFzEWAiSxEGbmyJEj5OXl4eDgQNeuXU0dThXf7z/Pkp1nAJg/KZxQX5m152pVpKaSufC/5K1eDQYDWFrSYtJteD32GFZejWfF8ooyPSf2pRMblUTW+UJju1dLZ7SRAbTr5YO1TdMvhxBCNC8HDhwwdQjCTEliIcyGUso4xWyvXr3MarBXzNkcXl5VOUvVtOHtGK31NXFEjZM+L4/szz/nwrLlqLLKFaWdR47E6+lp2LZqPKuV56QVEbctmaO70igv0QFgaWVBu57eaCMD8Q5xbnRjQoQQQohrJYmFMBvnzp0jJSUFS0tLevUyn1rVtLxSHl0eQ7newOjOvjw5tJ2pQ2p0DGVl5Cz/mqzPPsPw14wkDj174j1jOvbh4aYNrpb0egNnDmURG5VM8rEcY7uLlz3aiAA69vPDzsl8kmEhhBDiepPEQpiNi3crwsPDcXJyMnE0lUor9DyybD+ZBWWE+jjz3qSuWFjIlejaUno9eb/8QuaHH6JLSQXAtl1bvJ55BqfBgxvFVf2i3DLid6SQsD2ZorzKFWs1GggO8yQsMoCgju5o5DMhhBBCSGIhzENWVhbHjh0DoG/fviaOppJSihdXxnIoKY8WDtZ8fl9PHG3lV6Y2lFIUbd9OxnvzKfvr/9XK1xevqVNxHX8zGkvzHneglCL5WA5xUcmcPpSFMlTOFWvvbE2ngf50HhSAs7ussi6EEEL8nZwlCbOwe/duANq3b4+XmQzeXbwjkZV/JmNpoeHju7rT0sPB1CE1CiWxcWTMm0fxnj0AWDg74/nIw7jdcw8W1zBP/PVQVlzB0d1pxG9LJiet2Nju19aVsMhAWnfzwtLKvGYqE0IIIcyFJBbC5IqKijh48CAA/fv3N20wf9l2PJO31h0B4JUbO9K/raeJIzJ/5WfPkrFgAQW/rQdAY22N2z334PnIw1i2aGHa4K4g81wBcVFJHN+Xjq68cqpYa1tLQvv4oo0MwCPAPErzhBBCCHMmiYUwuX379qHT6fDz8yM4ONjU4ZCYVcQT3xzAoGBSz0Du7x9i6pDMmi47m6yPF5GzYgXodKDR4DpuHF5PTsU6IMDU4V2SrkLPqZgMYqOSSU/MN7a7+zsSFhlA+z6+2NjJV6QQQlyrwYMHEx4ezoIFC0wdSpOk0WhYtWoV48ePN3UoyD19YVIVFRXs3bsXqLxbYerBvAWlFTz01X7yS3V0a9mC/4zXmjwmc2UoKiLzo484NWIkOV9/DTodjoMG0WrVSvzfedtsk4q8zBKiV57kyxei2bT0COmJ+VhYamjX05tbpnfnjld6o40MlKRCCFFrSq+naM9e8tb+StGevSi9vkGPN3nyZDQaDW+//XaV9tWrV9fb36zBgwczbdq0etnX9dx3XZSXlzN37ly6du2Kg4MDnp6eDBgwgCVLllBRUWGSmJYuXUqLOt7lT01NZcyYMQ0TUB3JX05hUocPH6a4uBhXV1c6depk0lgMBsXTKw5yMqMQXxc7Pr2nB7ZW5j3I2BRURQW5P/5I5kcfo8/KAsBOq8V7xnQczWTg/T8ZDIpzcdnERiVzLiEbKsdi4+RmS+eIADoN8MfBRVZRF0LUXf6GDaS/NQddWpqxzcrXF58XZ+IycmSDHdfOzo533nmHRx55BDc3twY7TlNVXl7OqFGjOHToEP/5z38YMGAALi4u7N69m3nz5tGtWzfCa5gOvby8HBsb8/p74etrPmtryR0LYTIGg4Fdu3YBlTNBWZp4pqD3Nx1n05EMbKws+PTeHni7mPdA4+tNKUX+7xs4fdM40ma/jj4rC+ugIALmv0fI9yvMMqkozi8nZv0Zlr+8i18/Psy5+MqkomUnd274dxj3vtGPnmNCJKkQQlyV/A0bSH5qWpWkAkCXnk7yU9PI37ChwY49fPhwfH19mTNnziX7REdHExERgb29PUFBQTz55JMUFRUZt3/88ce0a9cOOzs7fHx8mDhxIlB5RyQqKooPPvgAjUaDRqPhzJkzACQkJHDDDTfg5OSEj48P9957L1l/XWSCynGT9913H05OTvj5+fHee+/V+bX99NNPdO7cGVtbW0JCQqrtIycnh/vuuw83NzccHBwYM2YMJ06cMG6/eNV/9erVtG/fHjs7O0aMGMH58+eNfRYsWMC2bdvYvHkzjz/+OOHh4bRu3Zq77rqLPXv20K5d5ZpVgwcP5oknnuCZZ57B09OTESNGABAVFUXv3r2xtbXFz8+PF154AZ1OZ9z/jz/+SFhYGPb29nh4eDB8+HDje79161Z69+6No6MjLVq0YMCAAZw9e/aS78eiRYto06YNNjY2hIaGsmzZsirbNRoNq1evBuDMmTNoNBpWrlzJkCFDcHBwoGvXrsbzrYYmiYUwmRMnTpCVlYWtrS3dunUzaSy/Hk5l4R8nAXh7Qhhdg1qYNB5zU7xvH2fuuIPkp56i/MwZLN3d8Xn5Zdr8uhaXG25AY2E+XyVKKVJP5rJhcTxfztzJ7tWnKbhQiq2jFeEjWnL363256clwWnX1wsLSfOIWQpieUgpDcXGtfvQFBaS/8SYoVdOOAEX6m2+hLyio1f5UTfu5DEtLS9566y0WLlxIUlJSte2xsbGMGjWKCRMmcPjwYVasWMGOHTt44oknANi/fz9PPvkkr7/+OseOHWP9+vVEREQA8MEHH9CvXz8eeughUlNTSU1NJSgoiNTUVCIjIwkPD2f//v2sX7+e9PR0Jk2aZDzus88+y5YtW1i1ahUbNmxg69atxMTE1Pp1xcTEMGnSJO644w5iY2OZNWsWr7zyCkuXLjX2mTx5Mvv372fNmjXs2rULpRQ33HBDlfKl4uJi3nzzTb788kt27txJfn4+d9xxh3H7119/zfDhw2s8/7C2tsbR0dH4+Msvv8TKyoqdO3fy6aefkpyczA033ECvXr04dOgQixYtYvHixbzxxhtAZWnSnXfeyQMPPMCRI0fYunUrEyZMQCmFTqdj/PjxREZGcvjwYXbt2sXDDz98yRK2VatW8dRTTzF9+nTi4uJ45JFHmDJlClu2bLns+/jSSy8xY8YMDh48SPv27bnzzjurJD4NRUqhhMlczJ579OiBnQmnIY1PyWPGD4cAeGhQKyZ0DzRZLObm/9u77/AoqvWB49/d9GTTSQNCGkkgkRZqaKEawAKKUvRSLKCCIBdQEO+lWEEUaRcULgKiXkQRfqhIEalSQ1EggYQQeiCFFEL67vn9EbMSEyAhHd7P8+R52DNnzpzJMNl557Ts6GgS53xCxo4dAGisrHB+bjhOzz+PSQ1ZxLBQbnY+0QevcWLnZZIvZxjTXb3taBJWj4YtXTE1l65tQojbU1lZnA5pWUGFFbRcRLduU6rsgUcOo7Eu27TmTzzxBM2bN2fatGksW7asyLbZs2fzzDPPGMcy+Pv7M3/+fMLCwli8eDEXLlzAxsaGRx99FFtbW7y8vIwP2fb29pibm2NtbV2km83ixYsJCQnh/fffN6Z9/vnneHp6Eh0dTd26dVm2bBlffPGF8c3+ypUrqV+/9N+rc+bMoXv37vz73/8GCqahj4yMZPbs2QwfPpyYmBg2bNjAb7/9ZpxJ8quvvsLT05P169fz9NNPAwVjOBcuXEjbtm2N9WjcuDEHDx6kTZs2xMTE0KVLl1LVqWHDhnz44YfGz2+99Raenp4sXLgQjUZDo0aNuHLlCpMmTWLq1KnEx8eTn5/Pk08+aZyUpkmTJgBcv36dtLQ0Hn30Ufz8/ABo3LjxbY/90UcfMXz4cEaNGgXA+PHjjd21unbtetv9Jk6cyCOPPALAjBkzCA4O5syZMzRq1KhU53yvJLAQ1eLKlSucO3cOrVZrvOmrQ3JGDiO/OExWnp5O/nWY1Ktyb7jaIu/qVRLnLyBt/XowGMDEBIenn8Jl9GhMa8g6I4WSr2RwcudlTh24Sl52wYBJUzMt/q3deCisHq5edtVcQyGEqDyzZs2iW7duTJgwoUj64cOHOXPmDF999ZUxTSmFwWAgLi6Onj174uXlha+vL7169aJXr1488cQTWN8huDl8+DDbt29HV8KLpdjYWLKyssjNzSU0NNSY7uTkRGBgYKnPJyoqir59+xZJ69ChA3PnzkWv1xMVFYWpqWmRZwdnZ2cCAwOJiooyppmamtKqVSvj50aNGuHg4EBUVBRt2rRBKVXqge63llNYx9DQ0CL7d+jQgYyMDC5dukSzZs3o3r07TZo0ITw8nIcffpinnnoKR0dHnJycGD58OOHh4fTs2ZMePXowYMAAPDw8bvv7GDlyZLHfx7x58+5Y56ZNmxr/XVh2QkKCBBbi/rR3714AgoODsbe3r5Y65OkNjPrqCJdTs/B2tmbh4BBMH/CuMfr0dJKXLOH6qi9ROTkA2D78MC7jxmHh61PNtfuLPt/A2WOJnNh5mSsxqcZ0e1crmoTVJ7CdO5Y2ZtVXQSFEraSxsiLwSOm67WRGRHBx5Et3zee55DOs//Zgertj34vOnTsTHh7OlClTGD58uDHdYDDw0ksvMXbs2GL7NGjQAHNzc44cOcKOHTvYsmULU6dOZfr06Rw6dOi2sxIZDAYee+wxZs2aVWybh4dHkXEO96qkB/5bu4ndrstYSfuVFDgUpgUEBBQJRO7k1m5Rd6ujRqPBxMSErVu3snfvXrZs2cKCBQt46623OHDgAD4+PixfvpyxY8eyadMmvvnmG/71r3+xdetW2t1mrGJJx7pbUGRm9td3YGFeg8FQqvMtDwksRJVLTU3l5MmTQPUuiPf2D5EciLuOzsKUpUNbYW/94D6IGnJySPnqa5I++wxDWhoAVq1a4jZxIlYlzIpRXTJSsjm5+wqRe66QmZ4LgEYDPs1ceCisHvUDHdFoZXpgIcS90Wg0pe6OZNOhA6bu7uRfu1byOAuNBlM3N2w6dEBTyZOTzJw5k+bNmxMQEGBMCwkJ4eTJkzRs2PC2+5mamtKjRw969OjBtGnTcHBw4Ndff+XJJ5/E3Nwc/d+mzQ0JCWHt2rV4e3tjalr8EbJhw4aYmZmxf/9+GjRoABQMtI6OjiYsLKxU5xIUFMSePXuKpO3du5eAgABMTEwICgoiPz+fAwcOGJ8hkpOTiY6OLtKlKD8/n4iICNq0KeiKdvr0aVJTU41v7J955hmmTJnC0aNHi42zyM/PJycnp1hAcWsd165dW+QBf+/evdja2lLvz6nWNRoNHTp0oEOHDkydOhUvLy/WrVvH+PHjAWjRogUtWrTgzTffJDQ0lK+//rrEwKJx48bs2bOHoUOHFvl93Kn7VHWSwEJUuQMHDqCUwsfH57ZNf5Xt6wMXWLX/PBoNzB3YHH8322qpR3VTej1pP/xA4vz55F+JB8DCvyEu48ej69KlRqzhoQyKS6dSOL7zEuf+SDJ+f1vbmRPUqS7BHeuic5QZvIQQVUtjYoLblDe5/Nq4gjcctwYXf/7tdJvyZqUHFVDQf//ZZ59lwYIFxrRJkybRrl07Ro8ezYgRI7CxsSEqKoqtW7eyYMECfvzxR86ePUvnzp1xdHRk48aNGAwGY7clb29vDhw4wLlz59DpdDg5OTF69GiWLl3K4MGDef3116lTpw5nzpxh9erVLF26FJ1OxwsvvMDrr7+Os7Mzbm5uvPXWW2hLmOAjMTGRY8eOFUlzd3dnwoQJtG7dmnfeeYeBAweyb98+Fi5cyKJFi4CCsSJ9+/ZlxIgRfPbZZ9ja2jJ58mTq1atXpAuVmZkZY8aMYf78+ZiZmfHqq6/Srl07Y6Axbtw4fvrpJ7p3784777xDx44dsbW1JSIiglmzZrFs2bISp5sFGDVqFHPnzmXMmDG8+uqrnD59mmnTpjF+/Hi0Wi0HDhxg27ZtPPzww7i6unLgwAESExNp3LgxcXFxLFmyhMcff5y6dety+vRpoqOjiwQOt3r99dcZMGAAISEhdO/enR9++IHvv/+eX375pdT/P6qUEiotLU0BKi0trbqrct/LyspS7733npo2bZo6ffp0tdThYFyyajjlJ+U16Ue1YFt0tdShuhkMBnVj1y4V+3hfFRnYSEUGNlLRncNUynffKUN+fnVXTymlVFZGrjq69bxa9e+9auFL24w/6z4+rGIirqn8fH11V1EIUctlZWWpyMhIlZWVdc9lpG3erKLDuhj/lkYGNlLRYV1U2ubNFVjTooYNG6b69u1bJO3cuXPKwsJC3fpod/DgQdWzZ0+l0+mUjY2Natq0qXrvvfeUUkrt3r1bhYWFKUdHR2VlZaWaNm2qvvnmG+O+p0+fVu3atVNWVlYKUHFxcUoppaKjo9UTTzyhHBwclJWVlWrUqJEaN26cMhgMSimlbty4of7xj38oa2tr5ebmpj788EMVFhamXnvtNWPZYWFhBdNm/e1n2rRpSimlvvvuOxUUFKTMzMxUgwYN1OzZs4uc6/Xr19WQIUOUvb29srKyUuHh4So6+q/v8+XLlyt7e3u1du1a5evrq8zNzVW3bt3UuXPnipSTnZ2tPvjgA9WkSRNlaWmpnJycVIcOHdSKFStUXl6esa631r3Qjh07VOvWrZW5ublyd3dXkyZNMu4TGRmpwsPDlYuLi7KwsFABAQFqwYIFSimlrl69qvr166c8PDyUubm58vLyUlOnTlV6fcF32rJly5Szs3ORYy1atEj5+voqMzMzFRAQoL744osi2wG1bt06pZRScXFxClBHjx41bk9JSVGA2r59e7HzKHSne6Esz8maPyv0QEtPT8fe3p60tDTs7GSgZ2UwGAycP3+ew4cPc+LECerUqcOoUaNKfItRma6kZvH4wj0kZeTySBMPFj7Toka8la9KWcdPkPDRR2QeOACA1tYW55EjcBoyBG01zs5VKOF8Osd3Xibm0DX0eQX9Qc0tTQgM9eChTvVwqlty07QQQpRVdnY2cXFx+Pj4lGt2QqXXkxlxmPzERExdXLBu1bJKWipEyVasWMG4ceNITU2t7qqU2cyZM/nyyy85ceJElR73TvdCWZ6TpSuUqHSRkZFs2rSJ9PR0Y1pGRganTp2q0tW2s3L1jFwVQVJGLo097Jj9dNMHKqjIvXCBxLlzSd/4MwAaMzMc//EPnEeOwLSaV23Nz9UTE5HAiZ2XSDh/w5juXF9Hk7B6+Ld2w9xS/lwJIWomjYkJNm1LN62sECXJzMzk1KlTLF++nN69e1d3de6ZfFOLShUZGcmaNWuKpWdnZ7NmzRoGDBhQJcGFUopJa//gxOV0nGzMWTKkJdbmD8Z///zkZJIWLSblm28gPx80GuwffwyXsWMx+3OQWXVJvZbJid2XObU3npzMgoV7tKYaGrZ0pUlYfdx87B6o4E8IIcSDacmSJbz99tv06NGDqVOnVnd17pl0hUK6QlUWg8HA3Llzi7RU/J2dnR3jxo2r9C5Rn+6MZebPpzDVavjyxba083Wu1OPVBIabN0leuZLr/12GITMTAJtOnXCdMB7LSp7H+o710hs4dzyZE7suczHyujHd1tmShzrXo3F7D6xszautfkKIB0dFdYUSoraTrlCixjt//vwdgwoo+M96/vx5fHwqb42E7acSmLXpFADTHg++74MKlZdH6tq1JC78D/qkJAAsg4NxfX0iNreZI7sq3EzLIeq3K5zcfYWMlII1MtCAV7AzD4XVo0GwM1qZKlYIIYSotSSwEJUmIyOjQvPdi9jEDMauPopSMLhNA/7RtkGlHau6KaW4sWUriZ98Qu65cwCYeXri+s9x2PbqhaaKB8oX1in+TCrHd17m7JFEDIaCBlJLnRlBHTwI7lQPuzr3tiiUEEIIIWoWCSxEpdHpdBWar6zSsvIYsTKCG9n5tPJyZMbjwfdtf/3MiAgSZn9E1u+/A2Di6EidUaNwHDgAjXnVdyvKzcrn9IGrnNh1metXbhrT3X3teCisPn4hLpiayYwpQgghxP1EAgtRaby8vLC1teXGjRu3zWNnZ4eXl1eFH1tvUIxbfZSzSTepa2/J4n+0xNy06t/YV7acmBgSPp5Dxo4dAGisrHB+bjhOzz+PSSUFbHeSdCmDE7suE33gKnk5BSu2mpprCWjrzkOd6+Hi+WAuRCiEEEI8CCSwEJVGq9Xi5uZ2x8CiV69elTJwe/bm02w/nYiFqZYlQ1vhYmtR4ceoTnlXr5K4YAFp69aDwQAmJjg8/RR1Ro3CzNW1SuuizzMQeyyBEzsvE38mzZju6G7NQ2H1CGzngYWV/KkRQggh7nfybS8qTUJCArGxsQBYW1uT+efMRFDQUtGrV69KmWr2/45d5tOdBcf98KmmPFTPvsKPUV306ekkL13K9S9WoXIKBkDb9uyJyz//iYVv5Q2AL0l6chYnd18h6rcrZN3IA0Cr1eDT3IUmYfWoG+Bw33Y9E0IIIURxEliISrNlyxaUUjRq1IgBAwZw/vx5MjIy0Ol0eHl5VUpLxfFLabzx3R8AvBzmR9/m1btOQ0Ux5OSQ8vX/SP70U/RpBa0CVi1b4jpxAtYtWlTMMQyK+JhUbqbnYGNngYe/Q7FZmpRBcSHqOid2Xub88SQKJ6u2sTcnuHM9gjrUxcbh/modEkIIUT5dunShefPmzJ07t7qrUi4ajYZ169bRr1+/6q5KjSWBhagUMTExnDlzBq1WS8+ePdFqtZU6pSxA4o0cRq6KICffQNdAF14PD6zU41UFZTCQ/sMPJMybR/6VeADMG/rhOn4Cuq5dKqxFIPZoAru/ieFmao4xzcbBgk4D/fFr4UpWRi5Re+M5uesy6UnZxjz1GznSJKw+3k2d0Zrcf2NYhBCiNErzYqYiDR8+nJUrV/LBBx8wefJkY/r69et54oknqIglyiozGKgJgcaKFSsYN24cqamppd4nPj4eR0fHyqvUfUACC1Hh9Ho9mzdvBqBdu3Y4O1f+uhG5+QZe+fIw8WnZ+LrYMG9wC0xq8ZoISilu7tlDwsdzyDlVsAaHqZsbLmPHYN+3LxrTirt1Y48msOmzE8XSb6bmsOmzE9QNcODa2XT0+QYAzK1MaRzqQXDnuji621RYPYQQoja624uZymJpacmsWbN46aWX5GG3iri7u1d3FWo8ecUoKlxERARJSUlYW1vTuXPnSj+eUoppG04QcT4FWwtTlg5thZ2lWaUft7JknTjJheee5+KIkeScOoXW1haXCePx2/QzDv37V2hQYTAodn8Tc8c8V6JT0ecbqOOpo+uQRgyf2YGOA/wlqBBCPPAKX8zcGlTAXy9mYo8mVNqxe/Togbu7Ox988MFt8+zdu5fOnTtjZWWFp6cnY8eO5ebNv6YAX7RoEf7+/lhaWuLm5sZTTz0FFLSI7Ny5k3nz5qHRaNBoNJz7c32kyMhI+vTpg06nw83NjSFDhpD052KsADdv3mTo0KHodDo8PDz4+OOPy3xua9euJTg4GAsLC7y9vYuVkZKSwtChQ3F0dMTa2prevXsTE/PXd9mKFStwcHBg/fr1BAQEYGlpSc+ePbl48eIdj7t48WL8/PwwNzcnMDCQVatWFdmu0WhYv349AOfOnUOj0fD999/TtWtXrK2tadasGfv27Svz+d5PJLAQFSozM5Pt27cD0K1bt2LLwleGLw9c4H8HL6LRwPzBLfBzqfppVitC7oULXB4/gXNPPUXm/v1ozMxwGj4cvy2bqTNiBFqril9ILj4mtdgXYkk6Dw5gwJTWBHWoi5mFrD8hhLg/KaXIy9GX6icnK5/d30Tfsbzd38SQk5VfqvLK2n3JxMSE999/nwULFnDp0qVi248fP054eDhPPvkkf/zxB9988w179uzh1VdfBQpeAo4dO5a3336b06dPs2nTJuPLwHnz5hEaGsqIESOIj48nPj4eT09P4uPjCQsLo3nz5kRERLBp0yauXbvGgAEDjMd9/fXX2b59O+vWrWPLli3s2LGDw4cPl/q8Dh8+zIABAxg0aBDHjx9n+vTp/Pvf/2bFihXGPMOHDyciIoINGzawb98+lFL06dOHvLw8Y57MzEzee+89Vq5cyW+//UZ6ejqDBg267XHXrVvHa6+9xoQJEzhx4gQvvfQSzz33nPGZ5nbeeustJk6cyLFjxwgICGDw4MHk5+eX+nzvN9IVSlSoHTt2kJ2djaurKy0qaFDxnew/m8yMDScBeCO8EV0bVe1UqxUh//p1khYtJuWbbyAvDzQa7B9/jDpjxmJev3IHn9+4nn33TICFtanM8CSEuO/l5xpY8trOCivvZmoO//3nrlLlHTkvrMwvbp544gmaN2/OtGnTWLZsWZFts2fP5plnnmHcuHEA+Pv7M3/+fMLCwli8eDEXLlzAxsaGRx99FFtbW7y8vIzf2/b29pibm2NtbV2k+8/ixYsJCQnh/fffN6Z9/vnneHp6Eh0dTd26dVm2bBlffPEFPXv2BGDlypXUr1+/1Oc0Z84cunfvzr///W8AAgICiIyMZPbs2QwfPpyYmBg2bNjAb7/9Rvv27QH46quv8PT0ZP369Tz99NMA5OXlsXDhQtq2bWusR+PGjTl48CBt2rQpdtyPPvqI4cOHM2rUKADGjx/P/v37+eijj+jatett6ztx4kQeeeQRAGbMmEFwcDBnzpyhUaNGpT7n+4m0WIgKk5iYyKFDh4CC9SlMTCr3zfbF65mM+uoI+QbF483q8nKYb6Uer6IZMjNJXLSI2J4Pk/Lll5CXh03Hjvis+566s2ZValBxPf4me9bEsGv16VLlt7GTmZ6EEKImmjVrFitXriQyMrJI+uHDh1mxYgU6nc74Ex4ejsFgIC4ujp49e+Ll5YWvry9Dhgzhq6++KjItfEkOHz7M9u3bi5RZ+AAdGxtLbGwsubm5hIaGGvdxcnIiMLD0k6lERUXRoUOHImkdOnQgJiYGvV5PVFQUpqamxoABwNnZmcDAQKKiooxppqamtGrVyvi5UaNGODg4FMlTmuPeLn+hpk2bGv/t4eEBFEy3/6CSFgtRYTZv3oxSisDAQHx9K/chPzM3n5GrDnP9Zi4P1bNjVv+mteaNusrLI3Xt9yT+ZyH6xIJ+qZbBwbhOnIDNLX+MK1p+np7YI4mc3F10ITuNBu7UAq9zLJjhRAgh7nem5lpGzgsrVd4rMan8uPD3u+Z79NVm1C3F31BT83t719u5c2fCw8OZMmUKw4cPN6YbDAZeeuklxo4dW2yfBg0aYG5uzpEjR9ixYwdbtmxh6tSpTJ8+nUOHDuHgUHJ9DQYDjz32GLNmzSq2zcPDo8g4h3ullCr2fX5rN7HbdRkrab+Sngvu9KxQ0nHv9mxhZvbXmM7CvAaD4Y773M8ksBAV4tbpZR9++OEKL19vUByMu07CjWxcbS1Yte88UfHp1NGZ89mQVliZ1/x+/0opbmzdSuKcT8j9cxCcmacnLuNew653bzSVsK4HFLRORO6+wqkD8eTcLOj3qdFq8G7iTHCneuTl6Nm8tPisUIU6DvCv1GkThRCiptBoNKXujuQZ5ISNg8Udx6npHC3wDHKq9L+hM2fOpHnz5gQEBBjTQkJCOHnyJA0bNrztfqampvTo0YMePXowbdo0HBwc+PXXX3nyyScxNzdHr9cXyR8SEsLatWvx9vbGtISJRBo2bIiZmRn79++nQYMGQMFA6+joaMLCShewBQUFsWfPniJpe/fuJSAgABMTE4KCgsjPz+fAgQPGrlDJyclER0fTuHFj4z75+flEREQYuz2dPn2a1NTU23ZRaty4MXv27GHo0KFFjntrmeLuJLAQ5Xbr9LJt27at8OllN52IZ8YPkcSnFR0PYKKFxf9oST2Hih/UXNEyIyJImP0RWb8XvN0ycXSkzqhROA4cgMbcvMKPd7vWCZ2TBUEd6tK4fV10jn91b9JoHyo2XaLO0YKOAyp3ukQhhKittFoNnQb6lzhdd6GqejHTpEkTnn32WRYsWGBMmzRpEu3atWP06NGMGDECGxsboqKi2Lp1KwsWLODHH3/k7NmzdO7cGUdHRzZu3IjBYDB2W/L29ubAgQOcO3cOnU6Hk5MTo0ePZunSpQwePJjXX3+dOnXqcObMGVavXs3SpUvR6XS88MILvP766zg7O+Pm5sZbb71V4oK4iYmJHDt2rEiau7s7EyZMoHXr1rzzzjsMHDiQffv2sXDhQhYtWgQUjBXp27cvI0aM4LPPPsPW1pbJkydTr149+vbtayzLzMyMMWPGMH/+fMzMzHj11Vdp165dieMroGDQ+YABAwgJCaF79+788MMPfP/99/zyyy/lvTwPFAksRLlV5vSym07E88qXRyip4VNvgOSMu89oVJ1yzpwh4eM5ZPw5q4TGygqn4cNwfuEFTHQVP3vV9fibRO65wqn9xVsngjrWpUGwc4lfcn4tXPFp5lKlCzwJIURt59fClV4v1YwXM++88w5r1qwxfm7atCk7d+7krbfeolOnTiil8PPzY+DAgQA4ODjw/fffM336dLKzs/H39+d///sfwcHBQMGg5GHDhhEUFERWVhZxcXF4e3vz22+/MWnSJMLDw8nJycHLy4tevXoZg4fZs2eTkZHB448/jq2tLRMmTCAtLa1Yfb/++mu+/vrrImnTpk1j+vTprFmzhqlTp/LOO+/g4eHB22+/XaSb1/Lly3nttdd49NFHyc3NpXPnzmzcuLFItyRra2smTZrEM888w6VLl+jYsSOff/65cbvBYCjS6tKvXz/mzZvH7NmzGTt2LD4+PixfvpwuXbrc+0V5AGlURSzPWImmT5/OjBkziqS5ublx9epVoKB7yYwZM1iyZAkpKSm0bduW//znP8YbozTS09Oxt7cnLS0NOzu7Cq3//S4zM5MFCxaQlZXFI488QuvWrSusbL1B0XHWr8VaKgppAHd7S/ZM6lbjFsPLu3qVxAULSFu3HgwGMDHB4amnqDN6FGauFftFU9g6EbnnCldiUo3pOkcLgjoWb50QQghRIDs7m7i4OHx8fMo1PXpVr7wt7qw0q2rPnDmTL7/8khMnbt/i9CC5071QlufkWtFiERwcXKQp6tbZhj788EPmzJnDihUrCAgI4N1336Vnz56cPn0aW1vb6qjuA2Xnzp1kZWXh6upKSEhIhZZ9MO76bYMKAAXEp2VzMO46oX6Vv7p3aejT00le+l+uf/EFKqfg7ZVtz564/POfWPj6VOixUq7e5OTuv7VOaMCrSR2CO92+dUIIIUTF0mo11AuU1a9rg8zMTE6dOsXy5cvp3bt3dVfnvlMrAgtTU9MSl1FXSjF37lzeeustnnzySaBgnmI3Nze+/vprXnrppaqu6gPl1ullw8PDK3x62YQbpVtjobT5KpMhN5eUr74m+dNP0f/Z5GvVsiWuEydgXYHreUjrhBBCCHHvlixZwttvv02PHj2YOnVqdVfnvlMrAouYmBjq1q2LhYUFbdu25f3338fX15e4uDiuXr1aZBYiCwsLwsLC2Lt3720Di5ycHHJy/uoLmZ6eXunncD/asmULBoOBgIAA/Pz8Krx8V9vSNUuXNl9lUAYD6T/8QOK8+eRduQKAeUM/XMdPQNe1S4VNgZty9SYn91zh9L6rZN8sWFlUWieEEEKI4oYPH15kTMatxo0bZ1w0UFS8Gh9YtG3bli+++IKAgACuXbvGu+++S/v27Tl58qRxnIWbm1uRfdzc3Dh//vxty/zggw+KjdsQZXPmzBliYmIqbXpZgGae9pibaMnVlzwfdOEYizY+TpVy/DtRSnFzz28kfPwxOadOAWDq6orL2DHY9+uHpoRp+MoqP0/P2aOJnNx9u9YJD3SO1RdUCSGEEELcqsYHFrf2f2vSpAmhoaH4+fmxcuVK2rVrB5R9QZM333yT8ePHGz+np6fj6elZwTW/f906vWybNm2oU6dOxR/DoJj47e93DCoApj0WVOUDt7NOnCTho4/I3L8fAK2tLc4jRuA05B9orco/9a20TgghhBCiNqrxgcXf2djY0KRJE2JiYujXrx8AV69eNS6jDgVLqf+9FeNWFhYWWFhIP/R7dfjwYRITE7Gysir1gjdloZTiX+uPs/H4VcxMNIzq0pA1EReLDOR2t7dk2mNB9HrI4w4lVazcixdJ/GQu6Rs3AqAxM8Px2Wdxfmkkpo7lG7SnzzMQezShxNaJxh3qEtRBWieEEEIIUbPVusAiJyeHqKgoOnXqhI+PD+7u7mzdupUWfw6Qzc3NZefOnSUuNy/KLysri+1/rsnQtWtXrCrgDf3fzd58mv8dvIhWA/MGtaBPEw/Gdve/ZeXtgu5PVdVSkX/9OkmLFpPyzTeQlwcaDXaPPYrL2Ncwr1+vXGVL64QQQggh7hc1PrCYOHEijz32GA0aNCAhIYF3332X9PR0hg0bhkajYdy4cbz//vv4+/vj7+/P+++/j7W1Nc8880x1V/2+VDi9rIuLCy1btqzw8pfuOsuiHbEAvPdEE/o0KWiRMNFqqnxKWUNmJtdXriT5v8sw3LwJgE3HjrhOGI9l48b3XK4+z0DssQRO7iq5daJxew9snaR1QgghhBC1S40PLC5dusTgwYNJSkrCxcWFdu3asX//fry8vAB44403yMrKYtSoUcYF8rZs2SJrWFSCpKQkDh48CFTO9LJrIi7y3sYoAN7oFcjgNg0qtPzSUvn5pH63lsT/LESfmASAZVAQrq9PxCY09J7LTbn656rYJbVOdKxLg4ekdUIIIYQQtVeNDyxWr159x+0ajYbp06czffr0qqnQA6xwell/f38aNmxYoWVvPnmVyWv/AGBkZ19eCav46WvvRinFjV9+IXHOJ+TGxQFgVr8+Lv8ch13v3mi02jKXWdg6Ebn7CpejU43p0johhBCiJinNatUVwdvbW6Z8vY/V+MBC1AyxsbFER0dXyvSy+2KTGfO/oxgUPN2yPm/2blRh6z+UVubhwyTM/oisY8cAMHF0pM4rr+A4aCAac/Myl5d6LZOTuy8Xb514yJngTvVoEOyE1qTsgYoQQoiax2DQcznqJBmpKegcHKnXOBittmJb9W81fPhwVq5cCRQsIuzp6cmTTz7JjBkzsLGxuacyBw4cSJ8+fSqsjrcLVA4dOnTPdRQ1nwQW4q70ej2bNm0CoHXr1ri4uFRY2ccvpTHiiwhy8w08HOTGB082qdKgIufMGRLmfELGr78CoLGywmn4MJxfeAETna5MZd2udcLGwYKgDh407lBXWieEEOI+E3NgL7+uWELG9SRjms6pDt2Gj8S/bftKO26vXr1Yvnw5eXl57N69mxdffJGbN2+yePHiIvny8vIwMzO7a3lWVlaVMiHL31XkM4SoeeSVqbirI0eOVMr0srGJGQxbfpCMnHza+Toxf3ALTKvoLX7e1atc+de/OPt434KgwsQEh4ED8du8CdfXXitTUJF6LZPf1p5hxZu/sXVZJJejU9FowLuJM31GNWXoe6G0ecxXggohhLjPxBzYy4Y57xcJKgAyriexYc77xBzYW2nHtrCwwN3dHU9PT5555hmeffZZ1q9fz/Tp02nevDmff/45vr6+WFhYoJTiwoUL9O3bF51Oh52dHQMGDODatWvG8lasWIGDg0ORY/zwww+0bNkSS0tLfH19mTFjBvn5+cbtqampjBw5Ejc3NywtLXnooYf48ccf2bFjB8899xxpaWloNBpjt3Uo6Ao1d+5cYxl3q1fh+axatQpvb2/s7e0ZNGgQN27cqJTfqygfabEQd5SVlcWvf77N79KlC9bW1hVS7pXULIYuO8j1m7k0qWfP0qGtsDSrvGbjQvr0dJKX/pfrX3yByskBwLZnD1z++U8sfH1LX06egbPHEjm5+7K0TgghxH1CKUX+n98Nd2Mw6Pl1+Wd3zPPris9o0KRZqbpFmVpYlKvF3srKiry8gq63Z86cYc2aNaxdu9Y40Uq/fv2wsbFh586d5OfnM2rUKAYOHMiOHTtKLG/z5s384x//YP78+XTq1InY2FhGjhwJwLRp0zAYDPTu3ZsbN27w5Zdf4ufnR2RkJCYmJrRv3565c+cydepUTp8+DYCuhBd2SqlS1Ss2Npb169fz448/kpKSwoABA5g5cybvvffePf++ROWQwELc0a5du8jKyqJOnTq0atWqQsq8fjOXIcsOcDk1C986Nqx4rjW2lndvpi0PQ24uKV9/TfLiT9GnpQFgFRKC68SJWIe0KHU5qdcyObnnCqf2xZOd8dfYiQZ/jp3wkrETQghRa+Xn5DB/2FMVVl7G9WQWPjewVHnHrvwOM8t7eyF18OBBvv76a7p37w4UrOm1atUqY7ejrVu38scffxAXF4enpycAq1atIjg4mEOHDtG6detiZb733ntMnjyZYcOGAeDr68s777zDG2+8wbRp0/jll184ePAgUVFRBAQEGPMUsre3R6PR4O7uftt6//LLL6Wql8FgYMWKFcYZP4cMGcK2bdsksKiBJLAQt5WUlMSBAweAgr6cFTG9bEZOPs8tP0hs4k087C1Z9WJbnHWVtwq6MhhI//FHEufOI+/KFQDM/fxwnTAeXdeupXo7ZGyd2HOZy6dTjek2DhY07uBBkLROCCGEqGI//vgjOp2O/Px88vLy6Nu3LwsWLGDRokV4eXkVGcsQFRWFp6en8eEdICgoCAcHB6KiokoMLA4fPsyhQ4eKPLzr9Xqys7PJzMzk2LFj1K9f3xhU3IvS1svb27vIMgIeHh4kJCTc83FF5ZHAohaqqtkntm7dWqHTy+bk63lpVQS/X0rD0dqMVS+0oZ5D5QwUU0pxc89vJHz8MTmnTgFg6uqKy9gx2Pfrh8b07v/1S2qdoHBmp4518XrIWVonhBDiPmJqYcHYld+VKu+lqBN8P3P6XfM9OXk69Rs/VKpjl0XXrl1ZvHgxZmZm1K1bt8gA7b/PuqSUKvFF2u3SoaCVYMaMGTz55JPFtllaWlbIQO/S1uvvg881Gg0Gg6HcxxcVTwKLWqaqZp+IjY3l9OnTaDSaCpleVm9QjFt9jN/OJGNjbsKK59rQ0LVyFjHMOnGShI8/InPffgC0Oh3OI0bgNHQI2rv8IdTnGTj7+59jJ6R1QgghHigajabU3ZG8mrVA51Sn2MDtW9k618GrWYtKeflnY2NT6pd+QUFBXLhwgYsXLxpbByIjI0lLS6Nx48Yl7hMSEsLp06dve4ymTZty6dIloqOjS2y1MDc3R6/XV3i9RM0mgUUtUjj7xN8Vzj7x+PgpFRJc6PV6Nm/eDECbNm3KPTWcUoq31h3n5xNXMTfRsmRoK5p5OpS7nn+Xe/EiiXPnkf7TTwBozMxwfOYZnF9+CVNHxzvum3otk8g9V4iS1gkhhBCloNWa0G34yBK/lwt1HTayUtezKK0ePXrQtGlTnn32WebOnWscJB0WFnbb8ZNTp07l0UcfxdPTk6effhqtVssff/zB8ePHeffddwkLC6Nz587079+fOXPm0LBhQ06dOoVGo6FXr154e3uTkZHBtm3baNasGdbW1sUmgLmXeomaTZ6UagmDQc+vK5bcMc/2lUswGO78dqA0jh49SkJCApaWlhUyveyHm0+z+tBFtBqYP7g5HRrWKXeZt8q/fp2r771PbJ9HCoIKjQa7xx/D9+efcXtz8m2DCn2+gZiIa6z/5ChfTdvP0a0XyM7Iw8benFaPeDP0vfY8OroZPs1cJKgQQghRjH/b9jw+fgo6p6Lfa7bOdSrsZV9F0Gg0rF+/HkdHRzp37kyPHj3w9fXlm2++ue0+4eHh/Pjjj2zdupXWrVvTrl075syZg5eXlzHP2rVrad26NYMHDyYoKIg33njD2ErRvn17Xn75ZQYOHIiLiwsffvhhhdRL1GwapZSq7kpUt/T0dOzt7UlLS8POzq66q1Oiiyf/YM3bU+6ab8DU9/EMbnrPx8nOzmb+/PlkZmbSu3dv2rZte89lASzZFcv7GwvGOMzq34SBrRuUq7xbGTIzub5yJcn/XYbh5k0AbDp0wHXiBCzv0IRa2Dpxan88WTduaZ0Idia4k7ROCCHEgyI7O5u4uDh8fHywvMcZmaDqV96uDJ999hnvvPMOly5dqu6qiGpwp3uhLM/J0hWqlshITanQfLeza9cuMjMzK2R62TWHLhqDism9G1VYUKHy80ld+z1JCxeSn5gIgGVQEK4TJ2DTvuS3Q/r8wnUnrnD59F+/Ixt7cxp3qEvjDh7YOVf+iqNCCCHuP1qtSble6lW3ixcvsnHjRoKDg6u7KqKWk8CiltA53HmMQFnzlSQ5OZn9+wsGPIeHh5dretlNJ64y+fs/AHipsy8vh/ndc1mFlFLc+OUXEud8Qm5cHABm9evjMm4cdn16o9EWb2VITfizdWJf8daJoI518W4irRNCCCEebCEhIdSrV48VK1ZUd1VELSeBRS1Rr3FwqWafqNf43t82FE4v27BhQ/z9/e+5nL2xSYz931EMCga28mRy70b3XFahzCNHSJj9EVlHjwJg4uhInVdewWHQQLTm5kXySuuEEEIIUXqJf7b+C1FeEljUEpU9+8TZs2eNszmUZ3rZPy6lMmJlBLl6A+HBbrz3xEOlWoTudnLOnCFhzidk/PorABpLS5yGD8P5xRcx0emK5L1d60SDoIKxE9I6IYQQQghReSSwqEX827an2/Mv8+vnnxZJt3WuQ9dh976OhcFgME4v27p1a1xdXe+pnDMJGQxffoibuXra+zkzb1ALTO/xQT7v2jUSFywg7ft1YDCAiQkO/ftTZ/RozNz+ql9h60TknitcOvVX64S1vTlB0johhBBCCFFlJLCoZZShYBIvF29fWj/ev0Jmnzh69CjXrl3D0tKSLl263FMZV1KzGLrsANdv5tK0vj1LhrbC0qzkOim9nsyIw+QnJmLq4oJ1q5Zo/hzPob9xg+Sl/+X6F1+gsrMB0PXojuv48Vj4+hrLkNYJIYQQQoiaRQKLWubcsQgAGncIo3GH8q8xkZ2dzbZt2wDo0qVLscVrSuP6zVyGLDvAlbRsfF1sWPFcG3QWJf/XSt+yhWvvf0D+1avGNFN3d1zfeJ38hASSF3+KPi0NAKuQEFwnTsQ6pAVQ0DoR93sSJ3dfLrl1or0HdnWkdUIIIYQQojpIYFGL5OXmcPHkcQB8mreskDJ3795NZmYmzs7OtG7dusz7Z+TkM3z5QWITb1LX3pIvX2iLk415sXzKoEj5dhvJS79C5dsB14CC1pf8q1e5Mn6CMa+5ry+uE8aj69YNjUZzh9YJJ4I71cOriTMm0johhBBCCFGtJLCoRS6dPE5+Xi465zo4e3rdfYe7uH79ermml83O0zPyiwj+uJSGk405X7zQlroOxVsMsk4kkbIhFkO6BVatXgTAkHWdnD++IT/+6F8ZtVrcpk3FsX9/DGiJPZJYvHXCzpzGHTwI6lBXWieEEEIIIWoQCSxqkbhjh4GC1oryzLRUaMuWLej1evz8/Mo8vWy+3sBrq4+yNzYZG3MTVjzXmoauumL5sk4kkfxlVLF0jaUjlm1eJvvgp38FFwYDOU5e7P/hHFF7S2id6FgPr6bSOiGEEEIIURPJE1otEvfn+IrydIMyGAzExcWxbds2Tp0qWBU7PDy8TIGKUoq31p1g88lrmJtoWTq0FU3rOxTPZ1Ck/hBbYhmFx7NoMhCDxpQElxYcbfoq36/N5MjmC2TdyMPazpyWvb0Y8k4oj41pjm8LFwkqhBBC1DjKoMiOTSXzWALZsanGiVYqU0JCAi+99BINGjTAwsICd3d3wsPD2bdvX4Ud4+bNm0yaNAlfX18sLS1xcXGhS5cu/PjjjxV2DHF/kRaLWiLl6hVSr8ajNTGhwUPN76mMyMhINm3aRHp6ujHNzMyMpKSkMk0xO3PTKb6JuIhWA/MHt6B9wzol5suJS0OflnvbcjQaDRprJ6I6f8A1zV+DxhsES+uEEEKI2iHrRBKpP8QW+b4zsTfH4TE/rB4q+fuxIvTv35+8vDxWrlyJr68v165dY9u2bVy/fr3CjvHyyy9z8OBBFi5cSFBQEMnJyezdu5fk5OQKO4a4v8hTWy0Rd7SgG1S9wCAs7mHmpsjISNasWVMkqADIy8tjzZo1REZGlqqcT3fG8tnOswDMfLIpvR5yLzGfys8nfcuBUpVpam6DeU4aPkm7+ceMNtI6IYQQolYo7O7795do+rRckr+MIutEUqUcNzU1lT179jBr1iy6du2Kl5cXbdq04c033+SRRx4BIC0tjZEjR+Lq6oqdnR3dunXj999/L1LOzJkzcXNzw9bWlhdeeIHJkyfTvHlz4/YffviBKVOm0KdPH7y9vWnZsiVjxoxh2LBhxjw5OTm88cYbeHp6YmFhgb+/P8uWLSv4Pej1vPDCC/j4+GBlZUVgYCDz5s0rUofhw4fTr18/PvroIzw8PHB2dmb06NHk5eVVyu9OVC55cqslCqeZ9b6HblAGg4FNmzbdMc+mTZswGAx3zPPNoQvM/Lmg+9SUPo0Y0Nqz+LFyc0le8T0XRv2XnHOWpapf3bM/0P7Av+k4MhR7t+LjNIQQQoiqoJTCkKsv1Y8+O5+UDSV39y2UsiEWfXZ+qcpTqvTdp3Q6HTqdjvXr15OTk1PieTzyyCNcvXqVjRs3cvjwYUJCQujevbuxRWPNmjVMmzaN9957j4iICDw8PFi0aFGRctzd3dm4cSM3bty4bV2GDh3K6tWrmT9/PlFRUXz66afodAXf5QaDgfr16xtfYE6dOpUpU6awZs2aImVs376d2NhYtm/fzsqVK1mxYgUrVqwo9e9D1BwaVZb/yfep9PR07O3tSUtLw87OrrqrU0xebg6Lnh9Mfl4uQ2cvxKWBd5n2j4uLY+XKlXfNN2zYMHx8fErctulEPKO+OoJBwcthfkzu3ajIdkNmJslfrCfz8A1MnIOM6UrlAyYljuFQSqGyUsj5Yx5uUyZj9/DDZTovIYQQojyys7OJi4vDx8cHS0tLDLl6rkzdWy11qft2e7TmpZ+dce3atYwYMYKsrCxCQkIICwtj0KBBNG3alF9//ZUnnniChIQELCwsjPs0bNiQN954g5EjR9K+fXuaNWvG4sWLjdvbtWtHdnY2x44dA2DXrl08++yzXLt2jWbNmtGxY0eeeuopOnToAEB0dDSBgYFs3bqVHj16lKreo0eP5tq1a3z33XdAQYvFjh07iI2NNc5OOWDAALRaLatXry7170OUz9/vhVuV5TlZWixqgUuRJwqmmXVyps49TDObkZFRpnx6g2JfbDL/d+wy+2KT2ROdyNj/HcOgYFBrTyb1CjTuo09PJ2HuCi6+9hU55zwxcQ5CKcUNkxz25uVxKLMg39/jV/XnGhYJZito+N9pElQIIYQQZdC/f3+uXLnChg0bCA8PZ8eOHYSEhLBixQoOHz5MRkYGzs7OxtYNnU5HXFwcsbEFrSxRUVGEhoYWKfPvnzt37szZs2fZtm0b/fv35+TJk3Tq1Il33nkHgGPHjmFiYkJY2O0X7P30009p1aoVLi4u6HQ6li5dyoULF4rkCQ4OLjLlvYeHBwkJCeX6/YjqIYO3a4FbZ4O6l2lmraxKt96DTqdj04l4ZvwQSXxatjFdq6Bevpb29ZwYFVwfpSA/OYnk/64n56wGE6cATJxBKQNJGj1/3IAMQ0HMmm2WylmLc/TQ+1NHb28sM9E0hSVu3xJrfYpNmdco2woaQgghRMXTmGmp+3b7UuXNiUsjefnJu+Zzfi4YCx/7u+bTmJX9Xa+lpSU9e/akZ8+eTJ06lRdffJFp06YxatQoPDw82LFjR7F9HBwcynQMMzMzOnXqRKdOnZg8eTLvvvsub7/9NpMmTbrr88WaNWv45z//yccff0xoaCi2trbMnj2bAweKjsE0MzMr8lmj0dy1e7aomSSwqMEMBj2Xo04SvW83AN7NQspchl6v59ChQ3fNZ2dnx6kMc0Z9dYRb2xb8c7V0yzLDTmkhOosfoo9R3zyfoPw0rOwCMXEqCCgu6xVRmQYy//w74Gl/DgvztbzhewmD1sAqpSE4syFO+fZcN03jpPUZDBoFmHJEf4Oyr/kthBBCVCyNRoOmlN2RLP0dMbE3v+Pshyb2Flj6O6LRln/tqdIICgpi/fr1hISEcPXqVUxNTfH29i4xb+PGjdm/fz9Dhw41phUumnu3Y+Tn55OdnU2TJk0wGAzs3LmzxK5Qu3fvpn379owaNcqYVthiIu5PEljUUDEH9vLriiVkXP9rRontK5ai0Wjxb1u6tyl6vZ5vv/2W06dPo9Vq7xj9PxzeixEbThULKvpmmhs/u5lqCLTU4mhqBlihV4oLuQZisg1kKbAyzybEYgvBFj9hZ5rAMjtbDFpHAAwaxXGbmBKPnWjnVqrzEUIIIWoKjVaDw2N+JS4CW8jhMd9KCSqSk5N5+umnef7552natCm2trZERETw4Ycf0rdvX3r06EFoaCj9+vVj1qxZBAYGcuXKFTZu3Ei/fv1o1aoVr732GsOGDaNVq1Z07NiRr776ipMnT+Lr62s8TpcuXRg8eDCtWrXC2dmZyMhIpkyZQteuXbGzs8POzo5hw4bx/PPPM3/+fJo1a8b58+dJSEhgwIABNGzYkC+++ILNmzfj4+PDqlWrOHTo0G3Hc4raTwKLGijmwF42zHm/WHpGSjIb5rzP4+On3DW4KAwqTp06hYmJCYMGDSIvL6/YOhZ2dnb06tWLNAs34tPijOkaBd2yCpom65ppCbQ0wd6k4I9jvlKcyzEQm2MgW4GnTRTBZhvwtjiEQaPnFzdvVju24khO6fpHuthIYCGEEKL2sXqoDs7/aFzCOhYWODzmW2nrWOh0Otq2bcsnn3xCbGwseXl5eHp6MmLECKZMmYJGo2Hjxo289dZbPP/88yQmJuLu7k7nzp1xcyv4zh04cCCxsbFMmjSJ7Oxs+vfvzyuvvMLmzZuNxwkPD2flypVMmTKFzMxM6taty6OPPsrUqVONeRYvXsyUKVMYNWoUycnJNGjQgClTpgAF62AcO3aMgQMHotFoGDx4MKNGjeLnn3+ulN+LqH4yKxQ1a1Yog0HP0tEvFGmp+Dtb5zq8uHAZWm3JzbV6vZ7vvvuOqKgoY1Dh7+//Z/kGzp8/T0ZGBjqdDi8vL7RaLf937DKvrT5mLKNDSiIDzL0IsDTB9paAIi7HwJkcA7l//q/pYTeHQOvdxFvZ8a13M9bqr3M9r2BaOi1azEzMyNEXnwoPQAO4Wbuzqf8mTG5zLkIIIURludNMOGWhDIqcuDQMN3LR2ppj4WNfZd2fKtL06dNZv369cVYo8eCoqFmhpMWihrkcdfKOQQXAjeQkLkedxDO4abFtdwoqALRaLd5e3gV/ANNyyY1LR+Npy+7oJFCKZkmxjE29ho9nB8wtC/575ClFbI6BszkG8v4Whsa4+fEfP0t2psdgyD4PgIuVC08FPEV///4cTzrO+B3jgb9mggLQUPAHd1KbSRJUCCGEqNU0Wg2Wfg7VXQ0hqp0EFjVMRmrKPee7W1ABBauEpm6IRZ/+V5Ptda3CITmGL5JiaeDZHlOXgkHiOYaCgCIux0D+beqxwOwCV9LOANDGvQ0DAwfStUFXzLQF3ajcbNyY02UOMw/O5FrmNeN+btZuTGoziR5epZv3WgghhBBC1GwSWNQwOgfHe8qn1+tZu3atMagYOHBgiUFF8peRf376q4nWUQ/DHPzROAYAkG1QnMkxcCEnhzxMi+QtpFBkmKdyw/kazzR8hoGBA/F18C2WD6CHVw+6enblSMIREjMTcbF2IcQ1RFoqhBBCiBpk+vTpTJ8+vbqrIWoxCSxqmHqNg9E51bljdyidcx3yrGw4fvw4Op2O+vXrs27dOiIjI41BRUBAQJF9lEGR+v1JCoKEooFC4doYBqWIysrG2vQXWut+pqFlXTanvYFCGbsuwV9dmuqFm/LLw79gbWZ91/My0ZrQ2l0mlRVCCCGEuF9JYFHDaLUmdBs+ssRZoQDybB1IaxDIF1+sMqaZmpqSn59/26ACIOdsCvrMOy++o9Vo6GA3Exu3NPbX7c1XZoprcf+jVWxvdLl/tZBY2GnpOiiYhiGu93iWQgghhBDifiOBRQ1jMOixsNFhbmVNblZmkW2mdRtww94VsovOspSfXzACol27UJJNnPm/Y5dxtbWkjY8TJloN+RkZRH36HS6mje96/KhG/VjmdpLfrvw5FZwDpHe6RH/bf9DKth1udZzx8HdAWwtnuxBCCCGEEJVHAosapKRF8Sx1dgR17opvyzas3fILpN+47f47d+/lf79kotcUjF0IsNDz2o0k6uS44K5rVKo6fJK+g+P6GDRo6FCvA4MCB9GxXkcZDyGEEEIIIe5IAosa4naL4mVnpHNk4/9h5uJB+h2CCgBTrYE5hz9lq2tHmpm70dTBCw+LhmjNC1oX9MqAVqMpMl6ikAFFkmkKF2yv8Fzj53g64Gk87Twr5uSEEEIIIcR9TwKLGsBg0PPriiVF0hSgt7ZFmZqhyc8jYuvPYO9y17JygvoxzDQQD/O/xlNk5l4h3XYVS+s48q/LIzCg0N4SXBhQaIDP3L5jVpcP6eDZuaJOTQghhBBCPCAksKgB/r4oXp6tAzluDVBm5sa0rPy8UpXlrXPHw6BFKUV+7imcbZbxs6UTh5q5sS/9MO+ylJevPY1L/l+DsZNMU/jM7Tv22h2jb15GxZ2YEEIIIYR4YEhgUQOciThg/HeerQPZ9fyKZzK5y6VSYIMFbnp7DPpcsna8x5edtayv5wTWlyD9EgB77Y6x3/Z3gjMb4pRvz3XTNE5an8GgKZhC1sX67q0iQgghhPiLwWDg/PnzZGRkoNPp8PLyQqu980yM5ZWQkMC///1vfv75Z65du4ajoyPNmjVj+vTphIaG3nO5Xbp0oXnz5sydO7fiKiseGBJYVLOYA3s5svH/UECetS05Hj4FGzR/GwdR+FkVfr5l259p7fICMNFowdQcjaUtiaZnwFqLUhoC7JtyNfssN3JvYNAojtvEFC0eDW7WboS4hlT0KQohhBD3rcjISDZt2kR6eroxzc7Ojl69ehEUFFRpx+3fvz95eXmsXLkSX19frl27xrZt27h+/fo9lZeXl4eZmVkF11I8aCo3nBZ3ZDDo+XnRHPJsncgMbEWOVyCYmBQPKm6lAUuK3vg2WNA9rwk+hr/WldBY2JNs5kbO1UexuTadb/uu4u32b6Oh+ODtws+T2kyS2Z+EEEKIUoqMjGTNmjVFggqA9PR01qxZQ2RkZKUcNzU1lT179jBr1iy6du2Kl5cXbdq04c033+SRRx4B4MKFC/Tt2xedToednR0DBgzg2rVrxjKmT59O8+bN+fzzz/H19cXCwoJhw4axc+dO5s2bh0ajQaPRcO7cuUo5B3F/um8Ci0WLFuHj44OlpSUtW7Zk9+7d1V2lu/pm2mRM6rYiu54vhjJciXZ5/vTJDaFrbjB9ckMYmNOhSFABkE4mR/L/SV5KR2Y8EoqJVkMPrx7M6TIHV+uied2s3ZjTZQ49vHpUxGkJIYQQtZJSitzc3FL9ZGdn8/PPP9+xvE2bNpGdnV2q8pRSdyzrVjqdDp1Ox/r168nJySm2XSlFv379uH79Ojt37mTr1q3ExsYycODAIvnOnDnDmjVrWLt2LceOHWP+/PmEhoYyYsQI4uPjiY+Px9NTZogUpXdfdIX65ptvGDduHIsWLaJDhw589tln9O7dm8jISBo0aFDd1SvR6d92kZ3rSqLlzTLva40ldQ2OJW5TSqGyUpjf0BlXB2umPRZEr4c8jNt7ePWgq2dXjiQcITEzERdrF0JcQ6SlQgghxAMvLy+P998vPvX7vUpPT2fmzJmlyjtlyhTMzc3vnhEwNTVlxYoVjBgxgk8//ZSQkBDCwsIYNGgQTZs25ZdffuGPP/4gLi7OGBisWrWK4OBgDh06ROvWrQHIzc1l1apVuLj8Nb7S3Nwca2tr3N3dy3i2QtwnLRZz5szhhRde4MUXX6Rx48bMnTsXT09PFi9eXN1VK5HBoOfnJf/hvOXNgrESpV3EWoGNssDd4FDw8W9vNwo/r7FZQ9eRT7NnUrciQUUhE60Jrd1b08e3D63dW0tQIYQQQtQy/fv358qVK2zYsIHw8HB27NhBSEgIK1asICoqCk9PzyKtDUFBQTg4OBAVFWVM8/LyKhJUCFFetb7FIjc3l8OHDzN58uQi6Q8//DB79+4tcZ+cnJwiTYd/7xtZ2S5HncTJuQWpmuzS73TLAO3CNShyFVjcEpSkalNY5PEtZzwS2NSiKyba0kYsQgghhDAzM2PKlCmlynv+/Hm++uqru+Z79tln8fLyKtWxy8rS0pKePXvSs2dPpk6dyosvvsi0adMYP348mhLGayqliqTb2NiU+ZhC3EmtDyySkpLQ6/W4ubkVSXdzc+Pq1asl7vPBBx8wY8aMqqheiTJSU9CbmwGlDywsMaNDXiN8DK4opchSsD47kWt195NjncR10zQirWMxaBRz2syRVgghhBCijDQaTam7I/n5+WFnZ3fHl5N2dnb4+flV+tSzhYKCgli/fj1BQUFcuHCBixcvGlstIiMjSUtLo3Hjxncsw9zcHL1eXxXVFfeh+6IrFFAsMv97VH6rN998k7S0NOPPxYsXq6KKRjoHR0xyS7fgHQoslRmDcjriY3DFgAINrHTayA9t/8MWj03stI/guE0MLjauMghbCCGEqAJarZZevXrdMU+vXr0qJahITk6mW7dufPnll8axFN9++y0ffvghffv2pUePHjRt2pRnn32WI0eOcPDgQYYOHUpYWBitWrW6Y9ne3t4cOHCAc+fOkZSUhMFgqPD6i/tXrW+xqFOnDiYmJsVaJxISEoq1YhSysLDAwsKiKqpXonqNg7mR8REaW9+CHk6367H0Z/enDnmNMP0zBixcJbv/Y0N5u8F7MghbCCGEqCZBQUEMGDCgytex0Ol0tG3blk8++YTY2Fjy8vLw9PRkxIgRTJkyBY1Gw/r16xkzZgydO3c2BkELFiy4a9kTJ05k2LBhBAUFkZWVRVxcHN7e3pVyHuL+o1Flmd+shmrbti0tW7Zk0aJFxrSgoCD69u3LBx98cNf909PTsbe3Jy0tDTs7u8qsqlHMgb389v1ezllmFCSUEFyYKC2ds/05rznCwboF3Z2S6tzgjbaTpFVCCCGEKKfs7Gzi4uKM09Xfq+pYeVuIinSne6Esz8m1vsUCYPz48QwZMoRWrVoRGhrKkiVLuHDhAi+//HJ1V+22/Nu2L/jH93s5b5lBkehOgbe+DnY5SRzp2pjQ5n7UyU6SVgkhhBCiBtJqtfj4+FR3NYSodvdFYDFw4ECSk5N5++23iY+P56GHHmLjxo2lmoWhOvm3bY9f67ac3rWToz9GkG9qiZWCmx45+IU/QfvAujKzkxBCCCGEqBXui65Q5VUdXaGEEEIIUb0qqiuUELVdRXWFkg6AQgghhBBCiHKTwEIIIYQQQghRbhJYCCGEEOKBJr3CxYOuou4BCSyEEEII8UAyMSmYZTE3N7eaayJE9crMzATAzMysXOXcF7NCCSGEEEKUlampKdbW1iQmJmJmZiZrT4gHjlKKzMxMEhIScHBwMAbb90oCCyGEEEI8kDQaDR4eHsTFxXH+/Pnqro4Q1cbBwQF3d/dylyOBhRBCCCEeWObm5vj7+0t3KPHAMjMzK3dLRSEJLIQQQgjxQNNqtbKOhRAVQDoTCiGEEEIIIcpNAgshhBBCCCFEuUlgIYQQQgghhCg3GWPBX4uCpKenV3NNhBBCCCGEqDkKn49Ls4ieBBbAjRs3APD09KzmmgghhBBCCFHz3LhxA3t7+zvm0ShZxx6DwcCVK1ewtbVFo9FU+fHT09Px9PTk4sWL2NnZVfnxxb2Ta1d7ybWrneS61V5y7WonuW61V0VdO6UUN27coG7dunddRFJaLCiYZq5+/frVXQ3s7Ozkpq2l5NrVXnLtaie5brWXXLvaSa5b7VUR1+5uLRWFZPC2EEIIIYQQotwksBBCCCGEEEKUmwQWNYCFhQXTpk3DwsKiuqsiykiuXe0l1652kutWe8m1q53kutVe1XHtZPC2EEIIIYQQotykxUIIIYQQQghRbhJYCCGEEEIIIcpNAgshhBBCCCFEuUlgUUUWLVqEj48PlpaWtGzZkt27d98x/86dO2nZsiWWlpb4+vry6aefVlFNxd+V5drt2LEDjUZT7OfUqVNVWGOxa9cuHnvsMerWrYtGo2H9+vV33UfuuZqhrNdO7rma4YMPPqB169bY2tri6upKv379OH369F33k/uuet3LdZN7rmZYvHgxTZs2Na5RERoays8//3zHfarifpPAogp88803jBs3jrfeeoujR4/SqVMnevfuzYULF0rMHxcXR58+fejUqRNHjx5lypQpjB07lrVr11ZxzUVZr12h06dPEx8fb/zx9/evohoLgJs3b9KsWTMWLlxYqvxyz9UcZb12heSeq147d+5k9OjR7N+/n61bt5Kfn8/DDz/MzZs3b7uP3HfV716uWyG556pX/fr1mTlzJhEREURERNCtWzf69u3LyZMnS8xfZfebEpWuTZs26uWXXy6S1qhRIzV58uQS87/xxhuqUaNGRdJeeukl1a5du0qroyhZWa/d9u3bFaBSUlKqoHaiNAC1bt26O+aRe65mKs21k3uuZkpISFCA2rlz523zyH1X85Tmusk9V3M5Ojqq//73vyVuq6r7TVosKllubi6HDx/m4YcfLpL+8MMPs3fv3hL32bdvX7H84eHhREREkJeXV2l1FUXdy7Ur1KJFCzw8POjevTvbt2+vzGqKCiD3XO0n91zNkpaWBoCTk9Nt88h9V/OU5roVknuu5tDr9axevZqbN28SGhpaYp6qut8ksKhkSUlJ6PV63NzciqS7ublx9erVEve5evVqifnz8/NJSkqqtLqKou7l2nl4eLBkyRLWrl3L999/T2BgIN27d2fXrl1VUWVxj+Seq73knqt5lFKMHz+ejh078tBDD902n9x3NUtpr5vcczXH8ePH0el0WFhY8PLLL7Nu3TqCgoJKzFtV95tphZUk7kij0RT5rJQqlna3/CWli8pXlmsXGBhIYGCg8XNoaCgXL17ko48+onPnzpVaT1E+cs/VTnLP1Tyvvvoqf/zxB3v27LlrXrnvao7SXje552qOwMBAjh07RmpqKmvXrmXYsGHs3LnztsFFVdxv0mJRyerUqYOJiUmxN9wJCQnFIsdC7u7uJeY3NTXF2dm50uoqirqXa1eSdu3aERMTU9HVExVI7rn7i9xz1WfMmDFs2LCB7du3U79+/Tvmlfuu5ijLdSuJ3HPVw9zcnIYNG9KqVSs++OADmjVrxrx580rMW1X3mwQWlczc3JyWLVuydevWIulbt26lffv2Je4TGhpaLP+WLVto1aoVZmZmlVZXUdS9XLuSHD16FA8Pj4qunqhAcs/dX+Seq3pKKV599VW+//57fv31V3x8fO66j9x31e9erltJ5J6rGZRS5OTklLityu63Ch0KLkq0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", "text/plain": [ "
" ] @@ -347,7 +1408,7 @@ "outputs": [ { "data": { - "image/png": "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2hYAADgHmW0MRTgAwNQYVQcAwDWQ2cZQhAMATI1ABwDANZDZxlCEAwBMLUN5WOSlQHsCAAByQ2YbQxEOADA1q9Vq+DFfPA4MAADnIbONoQgHAJgaU9sAAHANZLYxbs7uAGAWXp4WvTWshpbObqRpb9aVv1/WMar72wRp1YfhWjilgRZOaaDmjcrYXmsYWkofTG2gD6eHacy/qzuy63CA9evXq227CN3Xpq2WLv1Pltf37dunDh066t772mjatGm2/cePH9eDD3XVvfe10WsjRhTpUd/8smb8b7XVG23Wojy3DShCjGR29aolNH9SfW1a3kJNG5a27ff0sGhEdDUtmtZA8yfVV9UqxR3ZdTgAme08ZLYxeSrCK1eurGrVqiktLc22LywsTBs3bszXm48aNUopKSn5OrZ169ZatWqVJKlPnz6aPn16vs6TV7/++qseffRRValSRbVr11b9+vU1b968An/fypUr64cffrhhu9DQUP31118F3p/C6IH25XTqzFX1eHanNu84pycfqZhtu683nFGfF3arzwu79d3OPyRJJYp7aFDfOxU98oAiB+zSpNm/OLLrKGBpaWl6861xWvzhIq38YoVmz5mjCxcu2LUZOWq0YmIma+2ab/Tt+g06/PPPkqTxEybohUEDtWH9tzp37g9t2LDBCZ/AtWWOqhvdcB2ZTWYXZkYy+9yf1/T2tMNauznRbv+DHcrpr7/S1Wvgbr02/icNePpOR3UbDkBmOxeZbUyer4Rfu3ZN8+fPvyVvPnr06HwHujMkJCSoefPmioiI0NGjR3XgwAGtW7fO7i84mbLb5whxcXG67bbbnPLerq5ZozL6Zv0ZSVLs+jNq3rDMDY74n3atArVuc6L+OH/9z/OFpNQC6SOcY9/+/apataqCg4Pl6+ur1q1bafOWLbbXz5w5o/S0NFWrVk0eHh56oEsXrf92vaxWq/bujdO9994rSera9SF9u369sz6Gy8qw5m3D/5DZZHZhZSSzz/6RoiNHL2f5i36lkGLate+8JCn+zFWVKeWl0iU9C7zPcAwy27nMktnnz59XZGSk/P395e/vr8jIyCyDMf/0+eefq3379goICJDFYlFcXFyWNteuXdPAgQMVEBCg4sWL64EHHtDvv/+e5/7luQgfPXq03njjDV25csVu/8WLF9WvXz81atRIderUUVRUlFJTrxci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4apYmA1FzoULF3T58mWNGTNG48ePV8mSJfXWW29pxYoVmjhxolq2bClJSk1Nlaenp5N7C0dKT0+Xu7u7UlJSVLJkSfXp00czZsyQJHXu3Flubm567733FBIS4uSeAkDRQGYjJ2Q2XBlXwlFkZI43lSxZUkeOHNGFCxf02muvKSkpScOGDdMjjzyiqKgobdy4UZII8yLI3d1dkuTl5aVdu3Zp6dKlio6OliStWrVKly5dUt++fXXt2jVndhMACj0yGzdCZsOVeTi7A4AjZD7SJCkpSf7+/mrdurX8/f0VExOjoUOHavz48Xr55ZeVlpZGkBdBmX8+du/erdOnT8vLy0vt27fX7t27FRoaKnd3d73zzjtav369du3aJW9vb2d3GQAKLTIbuSGzURgwHR2FXuaX9Zo1azR+/HgFBATIx8dHH3zwgeLi4jRt2jSlp6drypQp8vf3d3Z34SSxsbEaNGiQOnbsqM8//1y9e/fW0KFDdebMGVWtWlUvvPCCJk+e7OxuAkChRmbDCDIbro7p6CjU0tPTZbFYtGXLFg0YMEAvvPCCXnzxRR07dkytW7dWaGionnrqKVksFp08edLZ3YWTnD59WiNGjNDs2bM1ZcoULV++XEeOHNHs2bN155136uDBg+rQoYOzuwkAhRqZDSPIbBQGFOEolOLj45WRkSF3d3elp6dr//79euaZZ/TAAw+oSZMm2rRpk65evar//Oc/at68ud59913VqlXL2d2Ggxw9elTTp09Xenq6pOurq1aoUEH169eXJIWFhenxxx/X4sWLdeHCBd1zzz1q3769mDgEALcemY3ckNkojCjCUeikpqZqxIgR6tKli23lzPT0dH3yySe2x1VIUsOGDW3/Xrp0aWd0FU5y9uxZjRgxQjExMcrIyFCxYsX066+/auTIkbY25cuXV+XKle3uJbNYLM7oLgAUWmQ2boTMRmFEEY5Cx9PTU4MGDZK/v7969uyp9PR0RUZGqkGDBpo6daqOHj2qn376SVu2bFGFChWc3V04WEZGhho1aqTVq1drxowZGj9+vLy9vbVy5UotXbpU3bt314QJE/Tss8+qT58+uu2225zdZQAotMhs5IbMRmHFwmwolKxWqw4ePKjXX39d3t7eWrx4sbZt26ZFixZp+/btKlmypKKjo/XQQw85u6twoMwFf86dO6eAgABt375dTz75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2r17tyIiIuz2R0REaNu2bdkes3379izt27dvr127dik1NTXbY65cuaLU1FSVLl06rx/fMIpwAICpWdwstkee3GijCAcAwHnyk9khISHy9/e3bePGjcv23OfOnVN6erqCgoLs9gcFBSkhISHbYxISErJtn5aWpnPnzmV7zNChQ3X77berbdu2ef34hrE6OgDA1HjcCQAAriE/mX3y5En5+fnZ9nt7e+d+nMX+/FarNcu+G7XPbr8kTZgwQR9//LE2btwoHx+f3D/ATeBKOADA1IxPazP+WJR/utUrrf744496+OGHVblyZVksFsXExGQ5x6hRo2SxWOy24ODgfPUfAAAzyE9m+/n52W05FeEBAQFyd3fPctU7MTExy9XuTMHBwdm29/DwUJkyZez2T5w4UW+99ZbWrFmjOnXq5PdXYAhFOADA1FxxpdUrV67ojjvu0Ntvv51rYV2zZk3Fx8fbtgMHDuS5/wAAmEVBZraXl5caNGigtWvX2u1fu3atmjZtmu0x4eHhWdqvWbNGYWFh8vT0tO1755139MYbbyg2NlZhYWF56ld+MB0dAGBq+ZnalpycbLff29s7x5H1v6+0KkkxMTH65ptvNHPmzGzvS/v7SquSVL16de3atUsTJ07Uww8/LElq2LChGjZsKOn6vWU58fDw4Oo3AKDQKOhbyKKjoxUZGamwsDCFh4drzpw5OnHihKKioiRJw4YN06lTp7Ro0SJJUlRUlKZPn67o6Gj169dP27dv1/z58/Xxxx/bzjlhwgSNGDFCH330kSpXrmy7cu7r6ytfX98899EIroQDAAodo4u8OGql1ZwcOXJE5cuXV5UqVfTYY4/pt99+y9PxAAAUJT169FBMTIzGjBmj0NBQbd68WatXr1alSpUkSfHx8XYz2apUqaLVq1dr48aNCg0N1RtvvKGpU6faBs2l67ekpaSk6JFHHlG5cuVs298fY3arcSUcAGBqebnXO7Od0UVeCmKl1XLlyhnqa+PGjbVo0SLdfffdOnPmjMaOHaumTZvqxx9/zHKfGgAAriA/mZ1X/fv3V//+/bN9beHChVn2tWrVSnv27MnxfMeOHctXP24GRTgAwNTyM7Utc3EXw+9RgCut5qRjx462f69du7bCw8N155136oMPPlB0dLTh8wAAYBY80cQYinAAgKkV5Kh6Qa+0mhfFixdX7dq1deTI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rF+/Ho6Ojir3j2X9SuA9ZURERJrHzCYqfViEE5VRISEhGDZsGLZt24ZWrVppujtERESUC2Y2UenCIpyoDDtx4gR0dHTQpk0bTXeFiIiI8sDMJio9WIQTER9pQkREVEIws4lKPhbhRERERERERGrChwoSERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URUbE6dOoUePXqgWrVqkMlk2L9/v6jtQkJCYG9vDwMDA9SuXRsBAQEqr69btw6tW7dGpUqVUKlSJXTo0AHnz5/PdX8LFy6ETCaDp6fnBxwNERFR6bRw4UI0bdoURkZGMDMzQ+/evREdHZ3vdvnl9bt27twJmUyG3r17q6xPS0vD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IsqxvL29MWHCBKxZswb16tVDXFwcEhMT4enpiWLFiqFWrVqqDpGIiIiIKBUW4USUo/n4+GDkyJHYvHkzateuneqZ75SfNz4HTkRERETqgkU4EeV4fn5+6NevH3bt2oV69eqpOhwiIiIiogyxCCeiXMHb2xtaWlpo0KCBqkMhIiIiIsoQi3AiylU4DRkRERERqTPO20NEuQoLcCIiIiJSZyzCiYiIiIiIiJSERTgRERERERGRkrAIJyIiIiIiIlISFuFERERERERESsIinIiIiIiIiEhJWIQTERERERERKQmLcCIiIiIiIiIlYRFOREREREREpCQswomIiIiIiIiUhEU4ERERERERkZKwCCciIiIiIiJSEhbhRERERERERErCIpyIiIiIiIhISViEExERERERESkJi3AiIiIiIiIiJWERTkRERERERKQkLMKJiIiIiIiIlIRFOBEREREREZGSsAgnIiIiIiIiUhIW4URERERERERKwiKciIiIiIiISElYhBMREREREREpCYtwIiIiIiIiIiVhEU5ERERERESkJCzCiYiIiIiIiJSERTgRERERERGRkrAIJyIiIiIiIlISFuFERERERERESsIinIiIiIiIiEhJWIQTERERERERKQmLcCIiIiIiIiIlYRFOREREREREpCQswomIiIiIiIiUhEU4ERERERERkZKwCCciIiIiIiJSEhbhRERERERERErCIpyIiIiIiIhISViEExERERERESkJi3AiIiIiIiIiJWERTkRERERERKQkLMKJiIiIiIiIlIRFOBEREREREZGSsAgnIiIiIiIiUhIW4URERERERERKwiKciIiIiIiISElYhBMREREREREpCYtwIiIiIiIiIiVhEU5ERERERESkJCzCiYiIiIiIiJSERTgRERERERGRkrAIJyIiIiIiIlISFuFERERERERESsIinIiIiIiIiEhJWIQTERERERERKQmLcCIiIiIiIiIlYRFOREREREREpCQswomIiIiIiIiUhEU4ERERERERkZKwCCciIiIiIiJSEhbhRERERERERErCIpyIiIiIiIhISViEExERERERESkJi3AiUoqFCxdCIpFg3LhxP2zr5+cHe3t76OnpoVSpUnBzc0u1PiEhAXPmzEHp0qWhp6cHGxsbnDx5Ms3nvHr1Cr1790ahQoWgr68PW1tb3Lhx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HTqE7du3w8nJCZMmTYKuri7i4+Nx8OBBTJs2Ddu2bcs2F3chIiLNY15/P2Y2UdbghdmIvlOdOnUA8HyhjIqNjYWBgYFimyUkJCBXrlzIlSsXAKB+/fo4f/48du/eDSEEJk2ahBw5csDS0hI7duxAqVKlNFg9ERFlN8zrzGNmE2UtTkcnyiIMdNU9evQIrVq1wrx58xAVFYWYmBgUKFAA1tbWOH/+PD59+gRDQ0O4u7ujVq1auH//Pl6/fg0g6WqlDHMiIsos5nXGMLOJsh6PhBOR5B48eAAvLy/cuHEDt2/fhomJCaZMmYJq1arhn3/+wblz5+Dg4IB169Zhw4YN+P333xEQEICCBQtqunQiIqKfCjObKOvxSDgRSa5mzZoYMGAANm3ahD59+sDS0hJVq1ZFSEgI9PT0kD9/fty6dQtbt26Fjo4OXr9+jXz58mm6bCIiop8OM5so67EJJyLJ5c6dGwCwcOFC1K5dGzNnzkRQUBBCQ0Nx6tQpPHnyBAsXLsSLFy/Qs2dPbN26NdveW5SIiCg7Y2YTZT1eHZ2IJJV8QZyoqCj06NED7u7uWL16Nbp27Ypx48bh1atX+PDhAypWrAhfX18YGBigRIkSmi6biIjop8PMJlIPNuFEpBGxsbEYM2YM1q1bhzVr1qBHjx6Qy+XQ0UmaoJOYmAhdXV0NV0lERETMbKKsxenoRKQRBgYGGDZsGOzt7VO9dyjDnIiISDsws4myFptwItKYYsWKoUGDBjh69Cji4uIUe9SJiIhIuzCzibIOp6MTkUbdvHkTUVFRqFatmqZLISIionQws4myBptwIiIiIiIiIolwHgkRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEExEREREREUmETTgRERERERGRRNiEE1GWOHv2LJo3bw57e3vIZDLs378/1XEPHjxAixYtYG5uDlNTU1SpUgWvXr1K83X37t0LV1dX5MqVC8bGxnB2dsaWLVuUxiQkJGDSpEkoWLAgcubMiUKFCmHGjBmQy+WpvuaAAQMgk8mwZMmSzP66RERE2daff/6JsmXLwszMDGZmZnBzc8OxY8cU6+Pj4zFu3DiUKVMGxsbGsLe3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LMKJSGOqVauGdu3a4ciRI0hLS1OeUSciIiLtwpxNVHDYHZ2INMrf3x/Jyclo2rSppkMhIiKid2DOJioYLMKJiIiIiIiI1IT9SIiIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJi3AiIiIiIiIiNWERTkRERERERKQmLMKJiIiIiIiI1IRFOBEREREREZGasAgnIiIiIiIiUhMW4URERERERERqwiKciIiIiIiISE1YhBMRERERERGpCYtwIiIiIiIiIjVhEU5ERERERESkJizCiYiIiIiIiNSERTgRERERERGRmrAIJyIiIiIiIlITFuFEREREREREasIinIiIiIiIiEhNWIQTERERERERqQmLcCIiIiIiIiI1YRFOREREREREpCYswomIiIiIiIjUhEU4ERERERERkZqwCCciIiIiIiJSExbhRERERERERGrCIpyIiIiIiIhITViEExEREREREakJ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69YOrvThmM1m3b59W35+fipUqJA2b96sfPnyyWQyacqUKXr//fe1ePFiNWvWzNGlptnt27fVuHFjHTt2TEePHpWvr68kKTIyUr/++qt27NihF198UWXKlHFwpQ9n/PjxGjp0qNasWaPAwEDr+tatW2vQoEFq0KCB44oDAABAMoRwpKu7QfXKlSuyWCzy8/OTJHXr1k1r167V7t27rUE8s87ePGXKFP34449q2rSpvvnmG40cOVKvvvqqZs6cqcGDB+v7779X8+bNHV3mQzty5IgCAwPVs2dPjR492rp+0qRJqlChgho3buzA6myT2vfWtWvX1Lp1a+XJk0erV692UGWP7u65/fnnn7pz547y5csnb29vTZkyRSNHjtQPP/ygRo0apboPAAAAHI/Z0ZFu7l7or1q1Sh9//LGKFy8ui8WihQsXavbs2erZs6dKliypEydOqGDBgpkyFISGhmrVqlUKDQ3VtGnTVKpUKb3wwguKj49Xz549lS1bNj355JOOLtNmd79me/fu1cWLF5UjRw41btxYO3bsUJUqVeTs7KyRI0dKkvr3759sH6P6d30//PCDrl+/rtjYWA0cOFDLly9Xx44d9dxzz2nJkiUOrvThmEwmrV27Vu+9955KlCihsLAwffHFF3r77bdlMpnUqlUrrVy5MtmHJUb+egEAADxuMv8NrDCMuxN6DR06VPPmzVP16tX1008/qWHDhpKkmTNnqkOHDjp69KiDK314efLkUceOHTV69GgtXbpUy5YtU/bs2TV37lwdOXJEXbt2zVQh/G6ge+mll7R27Vp17dpVw4YNU4ECBbR7926NGjVKH374YYp9jOzu4J6pU6dq7NixMplM+vrrr9WrVy9J0s8//6wTJ06oU6dOjiwzze6e15EjRzRgwAB99dVXWrp0qQYNGqRPP/1Ue/bs0VtvvaXPPvtMDHACAAAwLoajI93ExsZq9OjRevXVV3Xy5EmNHTtWCxYsUIMGDfTEE08km9jL6L2pkhQeHq6jR4+qYcOGmj59usqWLSs3Nzc1b95cZcqU0fbt2yVJ8+bN05gxY7Rq1apMN7HXhQsX9Oyzz2r8+PEKDAzUr7/+qgkTJqhu3brq37+/Dh06pL/++itTDK/fvXu3ihUrprx58+rChQvq2LGj5s2bpyeeeELR0dF6/vnnVbJkSU2dOlXXrl1TTExMpvh6HTt2TImJiSpXrpwkKSwsTBMnTtS3335r/Tnq16+fLly4oEWLFll/rjLDzxgAAMDjiJ5wPJK7n+GcOXNGzs7OGjRokPLly6dp06Zp5syZKlKkiDp27Kg9e/bot99+s+6XGcLBnTt3NGTIEDVv3lyzZ89WsWLFVLNmTY0fP1579+7V+PHjNWTIEH3++edauHBhpgh0p06d0oIFC6yvc+TIoSJFiqhatWqSpFq1aqljx46aO3euIiMjVb58eTVv3tzwPatr1qzRSy+9pA0bNshsNisxMVF37txRnjx5JEkeHh4aP368Tp06pdu3bytv3ryZ4uslSTt37tSVK1d069YtSZKzs7NWrFihVatWWX+O6tevr4CAgGQ/V5nhZwwAAOBxRAjHQ7vb07Zy5Ur17t1bJ06cUO7cuRUbG6tTp07Jzc1Nhw4d0tWrVxUWFqaaNWs6umSb7Nq1S6GhoSpcuLCeeeYZhYSEqG7duipcuLASExP1+uuva86cOYqMjJSHh4cWLlxo7aU0uqioKAUEBOjq1asym83KkSOHjh8/br3vW5KKFCmiYsWKKXv27NZ1Rg50q1ev1ocffqg5c+bopZdekpOTk4oUKaKKFSuqR48e1nb79u2Ts7Ozoc8lNd26dVOVKlXk4eGhrVu3qkKFChozZowGDhyoyZMna9myZfrkk08yxYR5AAAAYDg6HlFoaKj69++vL7/8UnXq1LGuf+utt7Ru3Tq5uLho9OjRat++vQOrTJvPPvtM3377rebOnStvb28dPnxY77zzjl599VV98sknkqSIiAhrL2tmk5CQoCeffFLdu3fX0KFDderUKdWtW1dNmjRR1apV9d1332nEiBF69tlnHV3qA92+fVtdu3ZVz5491bhxY0VEROjEiRNas2aNatSoobFjxyo6OlrPPPOM1q1bp/nz56t8+fKOLvuBbt26pcuXLysgIEC7d+9W5cqVFRwcrHHjxmnjxo2qUaOGFi9erJkzZ6pgwYJ6/vnn1apVK4agAwAAZALMjo40uXXrlnLkyGF9vWfPHnXv3l116tRRXFycnJ2d5eLioqlTp+rPP/+UJOss6UYPB8eOHVNAQIB69+4tFxcXvfnmm/r888/Vtm1b5c2bV506dVK2bNlUpkwZffrpp9qyZYty5colJydjDyiJjY3VgQMHVLt2bW3ZskXe3t6aO3euevbsqRw5cmjgwIHav3+/vvjiCyUkJGj8+PFq3LhxpviaSdLFixd15coVRUdHa/Dgwbp+/bpOnjypnTt3qn379nJ1dZWPj4969OihEiVKOLrcB7JYLDp8+LAWLFggLy8vrV69WrNmzdLQoUPl7Oys+vXra/PmzWrfvr1at24tV1dX636Z4esFAADw2LMANjpy5IiladOmlmPHjlnXvfXWW5ZXXnklWbstW7ZYvvnmG0tiYqK9S3xoy5Yts9SpU8cSERFhSUhIsFgsFktwcLClevXqltDQUIvFYrHs2bPHUrVqVUuTJk0sYWFhjiw3Tc6ePWvp1q2b5aWXXrJUqVLFsmvXLovFYrFs3rzZUqxYMcuECRMcXOGjmTdvniUgIMDi5+dn6datm2XNmjUWi8ViWbBggaVNmzbWr2dmEhERYXnppZcs7u7ulnHjxlksFovFbDZbLBaL5dNPP7WYTCbLjh07HFkiAAAAHhI94bDJsWPH1KVLF73yyivy8/Ozru/fv7/at2+v0aNH6/3339eOHTvUo0cPffnll4bvIb5r/fr1Gj58uCZPnqxLly7p7bff1pQpUzRkyBBJ0sCBAzVu3DgFBgZq69atio+PV+7cuR1bdBoUKVJExYsX17Bhw/T666+rVq1akpIm85o9e7Y6duyohIQEDRo0KFP2pL766quqWbOmwsPDVb9+fZnNZklJE+u5uLgoLi5OOXPmdHCVaZM7d25Vq1ZNuXLl0u+//65Vq1apVatWkqSgoCB5eHjoxo0bji0SAAAAD4V7wvFA165dU9OmTfX222+rW7du1vVHjhzRk08+qT179qh3794qXry4Ll68qOHDh1sDg9GtXbtWH374oSZMmKDAwEAtW7ZMa9askZOTk4KDg+Xp6anx48frq6++0jfffKP69es7umSbWf43PDkyMlJnzpxRSEiI1qxZo7p162rEiBHWdvv371dERIQCAwMdVmt6W7BggSZOnKjZs2dninvApX++XufPn1f+/PllNptlNps1YcIE/f777xo8eLBy586tKVOmaMqUKXJycmIIOgAAQCZECMcDnTp1SoMGDdKSJUskSV988YV27typn3/+WV26dNG7776rYsWKKTIyUgkJCSpYsGCmCAeRkZEqWLCgPvnkE7377ru6dOmSXnjhBfXs2VNbtmyRi4uLxowZI09PT02ePFlt27ZVsWLFHF22Te7+/69evVrvv/++Nm7cqHz58mn9+vUaPXq0mjVrptatW+utt97SihUrlDt37kzxNXuQK1euaNasWfruu+/0ww8/ZLoAvnLlSgUHB6tixYry9PTUgAEDlCNHDk2dOlXLly9XeHi4pk6dqpYtWzq6ZAAAADwkQjge6ObNmypfvrwCAwP1xx9/yMfHR7Vr11bNmjU1dOhQtW7d2jp0O7MJCQlRUFCQBg8erEmTJumFF15Q3759tXnzZn3//feKiYnRtGnT5Onp6ehS0yw0NFRvv/22Jk2apCZNmkhKGqK9bds2DR06VBEREQoODlbbtm0dXGn6SUxM1O7du+Xn56eAgABHl5Mma9as0fDhw/Xjjz8qODhY27ZtU+XKlTV+/Hjlz59fhw4dUlxcnPWZ7gAAAMicCOG4p3/3jO7du1fTpk2Tl5eX3nvvPXl5eSlXrlz6/PPPdePGjWTPmc5sNm/erGeffVbdunXTxIkTJSWFuU2bNmnFihUKCgqSv7+/g6u03d2v29ChQ1W4cGH16tVLCQkJcnJyst6nf/v2bV24cEFPPPFElugBz8wSExNlNpv1xhtvqFevXvr77781fPhwffTRR5o0aZLy5cun0aNHq2TJko4uFQAAAOmAidlwTyaTSevWrVNYWJiGDBmir7/+Otn2HTt2aNasWfriiy8cVGH6aNCggVauXKm33npLO3fuVO3ateXs7KwmTZroqaeeSvZItszgbqA2mUzat29fssfKrVu3Trdu3VK7du30xBNPJGsPx7h+/bry5cunyZMn69q1awoKCtKKFSuUP39+LV68WImJiYqNjXV0mQAAAEgnmWP6atjV3cERBw8etPYEf/bZZ9bt4eHhmjdvnnr06KFx48apUaNGjio13dSrV0+TJk3SG2+8oS1btljXZ5YAfvdr9tdff+nKlSsym81q0KCBrl27pq1btyoqKkr79+/XoEGDrM+VhuPc/XodPXpUJUuW1KpVq5QzZ065urrKbDZr//79Onz4sC5duqSPPvpIlStXdmzBAAAASDcMR0eq1qxZo3fffVcTJkzQ8ePH9dFHH2nw4MEaMWKEzp49qwkTJqh58+ZZboKo9evXa8SIEdq4cWOmCeB3rVmzRsOGDVP16tX1+++/a+fOnRo1apSOHDmiy5cvKy4uTh9++GGWugc8M1u9erV++eUXbd26VX/99Ze+/PJLtWvXTu+//7727dunP/74QxMnTlSbNm0cXSoAAADSESEcKVgsFgUFBalSpUp6+eWXJUn79u1TtWrVNH78eA0YMEC3b9+Wm5tblryfODY2NtM8V9psNsvJyUnbt2/XW2+9pYULF2rTpk0aM2aMjh07JldXV129elXXrl2Tm5ubihYtmiW/ZpnNwYMH1bp1ay1evFg+Pj7asGGDPvjgAy1evFj169fXmTNnFB0drQoVKvD1AgAAyGIYjo4UTCaTrl+/ru+//966rkqVKurUqZMGDhyoUaNGyc3Nzdo2q8kMATw8PFw3b960TrR26tQpffLJJ7p48aLmzJmjkJAQubq66pdffpG3t7dKlSqlokWLSsqaX7PM5vz586pUqZKqV6+ugIAA9ezZUy1atFD79u21fv16BQQEqEKFCpL4egEAAGQ1hHBY7089c+aMjhw5IkkaNGiQcuXKpY8//lhS0uzohQoV0vr16zVs2LBk94jDvmJjYzVz5kz99ddfMpvNkiR3d3cNHDhQ7733npYvX65ixYppy5YtGjNmjM6ePevgivFfZcqU+f/27j4m63r/4/jzErkRuRAGYgFihIHWagUyERGRpNaKRlOpGURmBRqSBgsxZA0YoaIWm46biYuwINkaNylGUohUa5MJM1DmiLJS00zBiDuvzh/nSJ3z6/zOzm+T79Xvej3+g/HH64K/Xnzen/eH8+fPU1tbO/G9Bx98kNjYWPLz8zl//ryB6URERETkVtJ2dMFkMtHY2EheXh633347N27c4JVXXiEhIYHCwkKam5u5cOEC27dvZ/ny5Zw6dWriBFYm37Rp09iwYQO//PIL69atY/v27YSFhTF37lweeOABhoeHOX78OGlpaeTm5uLv7290ZJt2c5z82LFj9PX14ejoyMMPP0x8fDxNTU2cPn2aJUuWUFxcTEFBAVVVVTg4OBgdW0RERERuEd0Jt1E37xIDtLW1kZGRQX19PXV1dZSUlHD8+HGcnZ2xWCz09PTg7OyMv78/Y2Nj2NvbG5zedv3xfnBLSwslJSV4e3uzbds2Wltbqauro729HW9vb1JSUnj88cd1p9gKHD58mFdffZWcnByefPJJSkpKiImJoaOjg9LSUsxmM1u2bGFoaIj09HQaGxvx8vIyOraIiIiI3AIq4Taop6eHXbt2sWvXLsxmM42NjZjNZn7++WcK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", + "image/png": "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9ZWvr6+ioqJ09uzZPNtfvnxZL774ourWrasyZcqoUqVK6tWrl06ePFlofQQAwCzOktfFAYU4AMB0mfpnutt1t0LsR48ePRQbG6tVq1Zp1apVio2NVVRUVJ7tL1y4oN27d2v06NHavXu3vvzySx0+fFidO3cuxF4CAGAOZ8lrqegPnjM1HQBguoJMdUtOTs6239PTU56engXuw4EDB7Rq1Spt375djRs3liTNmTNH4eHhOnTokGrUqJHjGF9fX61ZsybbvnfffVdhYWE6duyYKleuXOD+AADgbJxpanqPHj30559/atWqVZKkp556SlFRUVq+fHmu7a8ePK9fv77OnDmjoUOHqnPnztq5c2fhdjYXFOIAANMVJNiDg4Oz7R8zZozGjh1b4D5s27ZNvr6+tiJckpo0aSJfX19t3bo110I8N0lJSbJYLCpXrlyB+wIAgDNylkK8OAyeU4gDAEyXabUo087HnGS1O378uHx8fGz7b+RquCTFx8crICAgx/6AgADFx8fbdY5Lly5pxIgR6tGjR7a+AQBQHBQkr42ewSYVj8Fz7hEHAJgua4Td3k2SfHx8sm15hfrYsWNlsViuuWVNSbNYcv5xYbVac93/b5cvX9YjjzyizMxMzZgxo+DfDAAAnFRB8jo4ONh2H7evr68mTpx4w/0oDoPnXBEHAJiuMKe6DRo0SI888sg121SpUkX79u1TQkJCjtf++usvBQYGXvP4y5cv66GHHtKRI0e0du1aroYDAIqlguR1fmawjR07VuPGjbvmef/73/9KKvqD5xTiAADTWf+3wqq9bfPDz89Pfn5+120XHh6upKQk7dixQ2FhYZKkH374QUlJSWratGmex2UV4b/88ovWrVunChUq5K+DAAAUEQXJ66yZa/YoSYPnFOIAANNZrRZZ7bznzN52+VWrVi3dc8896tevn2bNmiXpygqs9913X7Z7zWrWrKmJEyeqS5cuSk9PV7du3bR7926tWLFCGRkZtilx5cuXl4eHR6H0FQAAMxR2XpekwXPuEQcAmK4g95wVho8//lh169ZVZGSkIiMjVa9ePX300UfZ2hw6dEhJSUmSpD///FPLli3Tn3/+qZCQEFWsWNG2bd26tfA6CgCACZwlr68ePN++fbu2b9+ufv365Tp4/tVXX0mSbfB8586d+vjjj22D5/Hx8UpLSyu8zuaBK+IAANNl5mOqm73tCqJ8+fJatGjRNdtYr/rLokqVKtm+BgCgOHOWvJauDJ4PGTJEkZGRkqTOnTtr+vTp2drkNnguSSEhIdnarVu3Tq1atSrcDv8LhTgAwHTO8lxSAACQN2fK66I+eE4hDgAwnTMFOwAAyB15bRwKcQCA6ZxpqhsAAMgdeW0cCnEAgOkYYQcAwPmR18Zh1XQAAAAAAByIK+IAANNlZl7Z7G0LAAAcj7w2DoU4AMB0THUDAMD5kdfGoRAHAJiOYAcAwPmR18ahEAcAmC5T+ViFtVB7AgAA8kJeG4dCHCWeh7tFY5+rpduqeCvxVKpenvSTkpLTs7W5t02gBvapplN/p0mS5n78hzbvOC13N4tGDKmh6lXL6PJlq95495B+OXLejI8BA61du1avT3xDmZmZ6v/UU3r44Yeyvb537169+OIIpaalqWuXBzR48GBJ0tGjRzXk2aFKTk5Ws2ZN9er48bJYLGZ8hCLHarXKaufQub3tABQ/N5LZkREB6tE1WJLk4iJVCS6jjj23KuVceo73QdFAXjseeW2cfK2aXqVKFdWsWVPp6f/8wgoNDdX69esL9OZjx45VWlpagY5t1aqVVqxYIUnq06ePpk+fXqDz5Ndvv/2m7t27q2rVqqpbt64aNGiguXPnFvr7VqlSRT/++ON124WEhOjixYuF3p/ipHP7ijqRcEkP99+hjdtPqWe3yrm2+2Zdgvo8u0t9nt2lzTtOS5Luv6eiLl7MUK/Bu/TypJ816MnbHNl1FIL09HS99vpELfpooZZ9vVSzZs/W2bNns7UZM3acYmKmac3qb/X92nU6dPiwJGnS5Ml6dshgrVv7vU6dOq1169aZ8AmKpqypbvZuuD4ym8wujm4ks1dvSLTte2fub9r7cxJFeBFGXpuDvDZOvh9flpqaqnnz5hny5uPGjStwqJshPj5ezZs3V2RkpI4cOaL9+/fru+++y/ZHTpbc9jlCbGysSpUqZcp7F1XNwiro27UJkqRVaxPUvFEFu4+9Nbi0du49I0mKS7ikCjd5qHw590LpJxxj7759ql69uoKCguTt7a1WrSK0cdMm2+sJCQnKSE9XzZo15ebmps6dOmnt92tltVq1Z0+s7r77bklSly4P6Pu1a836GEWONfOflVivt1mZ62Y3MpvMLm5uJLOv1rq5v77flGhk1+Bg5LU5yGvj5LsQHzdunF599VVduHAh2/6UlBT169dPYWFhqlevngYMGKDLly9LkiZMmKBatWopJCREISEhOnr0qAYMGCBJatq0qUJCQpSYmHjNc/z8889q3LixGjRooMcee0yXLl26bl937typ8PBw1atXT2FhYdqyZYvttY8++kh169ZVvXr11LFjR504cUKStGDBArVr104PPvigQkJCFBERoWPHjkmS3nvvPbVo0UL9+vWznad8+fK2z9KnTx8NGTJE99xzj+rXry9Jmjx5smrXrq26devqscceU1JSkiRp+fLlqlevnkJCQlSnTh19/fXXeX6v/u3XX39V27ZtbccvXbrU9prFYtG5c+ckXRmRHzdunJo2baqqVatqwoQJ1/x+paamKjk5OdtWEviV99Rff6dKklLOp8u7TO53bLRrGaAP32mol4fVUFnvK21+O3JeLZv4yWKRqt1aRjdXLCX/Cp4O6zuMl5iQoKDAQNvXQUFBSkhIsH2dkJiowKCcr585c0a+vr62qW0V/3Ucro0R9sJBZhfPzC6peS3dWGZncXWRmjf20/qtpwq9vyg85LU5yGvj5LsQb9CggVq2bKlp06Zl2z98+HC1bNlSO3bs0N69e5Wenq7p06frzJkzmjJlinbv3q3Y2Fht3bpVgYGBmjlzpiRp69atio2NVUBAQJ7nkKSoqCgNHDhQu3fv1uDBg/Xf//73mv1MS0tT165dNXbsWO3bt09Tp05Vt27ddP78ef344496/vnntWrVKu3bt09NmzbVU089ZTt28+bNev311xUbG6uOHTvaQnvXrl0KDw+/5vtu3rxZX3zxhX766Sd98803mj9/vrZs2aL9+/erTJkyeumllyRJL7/8smbOnKnY2Fjt27dPEREReX6v/u2xxx7TQw89pH379unzzz/Xk08+qePHj+fan7Nnz2rr1q3asWOH3nzzTdsfL7mZOHGifH19bVtwcPA1P2txYc8tQZt3nFb3vj+o95BdOnbiogb/bwr68jXxSjmXrvkxDdX7oco6+EuKMjL4rVOU5RYaFlmu08CS631Q2Y7DNWVa87fBPmR28czskprX0o1ldpaG9W/S73+c19mky4XUSzgCeW0O8to4+S7EpSsjwDExMTp9+rRt39KlS/Xmm28qJCREd911lzZt2qRffvlFPj4+ql69unr27KlZs2bp77//lpeXV67nzesc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r9akSZPk5+cnLy8vffjhh4qNjdW7776rjIwMvf322/L19TW7u3CQVatWaciQIerQoYO+/PJL9e7dWyNGjFBCQoKqV6+uZ599VtOmTTO7mwBQYpDXyA15jeKMqekotjIyMmSxWLRp0yYNGjRIzz77rIYNG6Y//vhDrVq1UkhIiB5//HFZLBYdP37c7O7CQU6ePKnRo0dr1qxZevvtt/XVV1/pl19+0axZs3TbbbfpwIEDuueee8zuJgCUGOQ1ckNeo7ijEEexExcXp8zMTLm6uiojI0P79u3TU089pc6dO6tJkybasGGDLl26pM8++0zNmzfXW2+9pTp16pjdbRSSI0eOaPr06crIyJB0ZeXVW265RQ0aNJAkhYaG6tFHH9WiRYt09uxZ1ahRQ+3btxeThQCgcJHXuBp5jZKGQhzFyuXLlzV69Gh16tTJtspmRkaGPv30U9vjLSSpUaNGtv8uX768GV2Fg/z1118aPXq0YmJilJmZqdKlS+u3337TmDFjbG0qVaqkKlWqZLu/zGKxmNFdACgRyGv8G3mNkoZCHMWKu7u7hgwZIl9fX/Xo0UMZGRmKiopSw4YN9c477+jIkSP6+eeftWnTJt1yyy1mdxeFLDMzU2FhYVq5cqVmzJihSZMmydPTU8uWLdPixYv10EMPafLkyerfv7/69OmjUqVKmd1lACgRyGtcjbxGScRibSh2rFarDhw4oFdeeUWenp5atGiRtm7dqoULF2rbtm0qV66coqOj9cADD5jdVRSirIV/Tp06JT8/P23btk09e/ZUv379NGLECCUmJuqdd96Rr6+vGjRooDZt2tiOAQAUPvIaEnmNkotCHMVC1i/kc+fOydvbW5L022+/afjw4fL19dX8+fPl4uKiY8eOqVSpUvL39+eXeDGW9W+7YsUKvfXWW/roo490yy23aOvWrerVq5f69Omjl19+2exuAkCJQ17jauQ1SjIKcRQbq1at0qRJk3TzzTerUqVKmjx5sn7//XcNHz5cXl5eWrRokVxdXQn0EmLFihV6+eWX9dZbb6lNmzY6f/68ypQpoz179uihhx7S008/rejoaLO7CQAlDnmNq5HXKKm4RxzFwg8//KA333zTdu/Q119/rccee0zVqlXTpEmTZLFYbL/ECfXi79KlS/r000/1wQcfqFGjRvq///s/tW3bVi+//LLq1Kmj+fPna9SoUfr+++/N7ioAlCjkNa5GXqMkoxBHkXf48GGNGDFCjz76qB555BG1bdtWu3fv1t69e/Wf//xHt99+u/r27auLFy8qLS3N7O6ikGRN7jl79qy8vLxUunRpdenSRb1799aff/6phx9+WIcOHdJvv/2m5s2bq2/fvoqLizO51wBQcpDXkMhrIAuFOIqsrF/kR48e1cWLFzV37lydP39eklSmTBk1bdpUFotFLi4u+v3337Vz505dunTJzC6jkGRNX1y+fLmio6OVkJCg2bNn64UXXtCrr76qF154QQ888IB+/fVXZWRk6JdfftHBgwcVFhZmdtcBoNgjr5GFvAb+wT3iKHKyfomnpKSobNmykqS9e/fqjTfekLe3t8aPH6+kpCTdf//9+uCDD9SsWTP95z//UdWqVXXnnXea3HsUlhUrVuiVV17RO++8o+bNm0u68jgUFxcXff7555owYYJeffVVde7cWZcuXdKFCxd4Ji0AFCLyGrkhr4ErKMRRpGSF+urVqzVlyhSVL19eZcuW1Zw5c7Rz504NHz5cx44dU3h4uAYNGqSmTZua3WU4wKVLl9SzZ08NGzZMd955p9asWaMvv/xS/v7+eumll/Tee++pcePG6tSpkzIyMuTq6mp2lwGgWCOvkRvyGvgHhTiKnA0bNqhfv36aNGmS/P399dxzz6lcuXJatWqVduzYoQULFigzM1MzZ86UJFZdLQEuXryohx9+WKVLl9bZs2fVuHFjlSpVSr/++qvGjRunoKAgVuAFAAcjr/Fv5DXwDwpxFDlvv/22rFarhg4datsXGhqql156SQ888IDWrVun999/X1WrVtWkSZPk4sJSCMVNVkAfOnRIFotFN910kzIyMvTFF1+ocePGatSokfbs2aNevXpp6dKluu2228zuMgCUOOQ1yGsgb25mdwDIr8uXL+vzzz9Xz5495efnJ0lq3LixbaGXu+++W+7u7qpevTqhXkxlLfQyfvx4BQUF6a+//lLPnj01aNAgSdKyZcs0ZswYTZw4kVAHAJOQ1yCvgbxRiMOpZY2knjhxQunp6QoODtajjz6qo0eP6u2339bTTz+ts2fPasuWLerZs6ckycXFRS1btjS55yhMBw4c0EsvvaTFixerYsWK+vHHHzVw4ED5+vqqe/fu+vTTTzVhwgR17NjR7K4CQIlAXiM35DWQNwpxODWL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oKZNmyowMFARERHavHmz3e8LAICRimNe//LLL6pUqZKqVq2qRx55RL///vuNfpuUlJQkHx8fubm53fC5gOLAYrVarWZ3AkB2rVq1UlJSki2kJWnUqFFasmSJDhw4IIvFIkmaMWOGXnzxRSUlJcnFxUUNGzZUjx49NHz4cHXp0kWNGjXSuHHjdOrUKZ0/f14VK1bUgQMHVLNmTdWrV08PPvigxowZY1efEhMTlZycfM02VapUsStgrVar7r//fp05c0abNm2y7V+8eLG8vb1166236siRIxo9erTS09O1a9cueXp6avv27QoPD1f58uU1ZcoUhYSEaOHChZoxY4Z+/PFHVa9e3a7PAgCAEYpjXn/zzTe6cOGC7rjjDiUkJGjChAk6ePCgfvrpJ1WoUCFb2z/++ENVq1bVnj17FBISkuf7nT59Wg0aNFBUVJRtQAIo6RiSApxUaGhotq8PHDig8PBwW6hLUrNmzXTu3Dn9+eefqly5slq1aqX169crOjpamzZt0oQJE7RkyRJt3rxZZ8+eVWBgoGrWrClJGjJkiJ5++mmtXr1abdu21YMPPqh69erl2Z+AgAAFBAQY8tkGDRqkffv25biS/fDDD9v+u06dOgoNDdWtt96q//znP+ratattGl///v31+OOPS5Luuusuff/99/rggw80ceJEQ/oHAIC9ilted+jQwfbfdevWVXh4uG677TZ9+OGHio6Ozvf5kpOT1bFjR9155512DyYAJQFT0wEnVaZMmWxfW63WbKGetU+SbX+rVq20adMm7d27Vy4uLrrzzjsVERGhDRs2ZJvmJkl9+/bV77//rqioKO3fv1+hoaF699138+yPUVPTBw8erGXLlmndunW65ZZbrtm2YsWKuvXWW/XLL7/YvpakO++8M1u7WrVq5WtaPAAARimueX3156tbt64ti/MjJSVF99xzj7y9vfXVV1/J3d093+cAiiuuiANFxJ133qklS5ZkC/itW7eqbNmyuvnmmyX9c99ZTEyMIiIiZLFYFBERoYkTJ+rMmTN69tlns50zODhYAwYM0IABAzRy5EjNmTNHgwcPzvX9x48fr+eee+6afaxUqVKer1mtVg0ePFhfffWV1q9fr6pVq173M58+fVrHjx+3FeBVqlRRpUqVcjz27PDhw9lG8AEAMEtRz+t/S01N1YEDB9SiRQu7j5GuXAlv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u5e2bdvy008/YWtry/79+/H19cXf35/169eTIkUKTp8+TcaMGY3uqoiISJKlvBZJmlSIiyRiW7ZsoWfPnkyZMoVy5crx9OlTgoODWbduHZkyZaJ06dJGd1FERCTJU16LJD0qxEUSua1bt9KpUydmzZqFt7d3uDVlYf/9tc5MRETEWMprkaRFhbhIErBt2zZatmzJggULKFeunNHdERERkUgor0WSDhXiIknEli1bsLOzo0KFCkZ3RURERKKgvBZJGlSIiyQxuuWJiIhIwqe8FkncVIiLiIiIiIiIxCPdjFBEREREREQkHqkQFxEREREREYlHKsRFRERERERE4pEKcREREREREZF4pEJcREREREREJB6pEBcRERERERGJRyrERUREREREROKRCnERERERERGReKRCXERERERERCQeqRAXERERERERiUcqxEVERERERETikQpxERERERERkXikQlxEREREREQkHqkQFxEREREREYlHKsRFRERERERE4pEKcREREREREZF4pEJcREREREREJB6pEBcRERERERGJRyrERUREREREROKRCnERERERERGReKRCXERERERERCQeqRAXERERERERiUcqxEVERERERETikQpxERERERERkXikQlxEREREREQkHqkQFxEREREREYlHKsRFRERERERE4pEKcREREREREZF4pEJcREREREREJB6pEBcRERERERGJRyrERUREREREROKRCnERERERERGReKRCXERERERERCQeqRAXERERERERiUcqxEVERERERETikQpxERERERERkXikQlxEREREREQkHqkQFxEREREREYlHKsRFRERERERE4pEKcREREREREZF4pEJcREREREREJB6pEBcRERERERGJRyrERUREREREROKRCnERERERERGReKRCXERERERERCQeqRAXERERERERiUcqxEVERERERETikQpxERERERERkXikQlxEREREREQkHqkQFxEREREREYlHKsRFRERERERE4pEKcREREREREZF4pEJcREREREREJB6pEBcRERERERGJRyrERUREREREROKRCnERERERERGReKRCXERERERERCQeqRAXERERERERiUcqxEVERERERETikQpxERERERERkXikQlxEREREREQkHqkQFxEREREREYlHKsRFRERERERE4pEKcREREREREZF4pEJcREREREREJB6pEBcRERERERGJRyrERUREREREROKRCnERERERERGReKRCXERERERERCQeqRAXEavZvn079erVI0OGDJhMJlasWBGt/bZt20axYsVwcnIie/bsTJs2LdzzM2fOpHz58qROnZrUqVNTrVo19u/fH+XxRo4ciclkonv37m/wakRERBKvkSNHUqJECVxcXEiXLh0NGzbkzJkzr93vdZn9ol9//RWTyUTDhg3DbQ8KCmLAgAFky5aNZMmSkT17doYOHUpISMibviyRt4YKcZEE4tmzZ0Z34Y09fPiQQoUKMWXKlGjvc+HCBd577z3Kly/PkSNH+Prrr+natSvLli2ztPH19eWTTz5h69at7Nmzh8yZM1OjRg2uXr0a4XgHDhxgxowZFCxY0CqvSURE5GWJIbO3bdtGp06d2Lt3Lxs3biQoKIgaNWrw8OHDKPeJTmaHuXTpEl9++SXly5eP8NyoUaOYNm0aU6ZM4dSpU4wePZoxY8YwefJkq75GkQTNLCKGqFixorlTp07mHj16mNOmTWuuUKGC2Ww2m319fc0lSpQwOzg4mD09Pc19+vQxP3/+3Gw2m82rVq0yu7q6moODg81ms9l85MgRM2D+8ssvLcdt166d+eOPPzabzWbzxYsXzXXr1jWnSpXKnDx5cnPevHnNa9eujZfXB5iXL1/+2na9e/c2586dO9y29u3bm0uXLh3lPkFBQWYXFxfzvHnzwm0PDAw058yZ07xx40ZzxYoVzd26dYtN10VERMJJ7JltNpvNN2/eNAPmbdu2RdkmupkdFBRkLlu2rHnWrFnmli1bmhs0aBDu+Tp16pg///zzcNsaN25sbt68+Zu9CJG3iD4RFzHQvHnzsLOzY9euXUyfPp2rV6/y3nvvUaJECY4dO8aPP/7I7NmzGTZsGAAVKlQgMDCQI0eOAKGj2W5ubmzbts1yTF9fXypWrAhAp06dePr0Kdu3b+fPP/9k1KhRODs7R9mfDh064Ozs/MrH5cuXrfo92LNnDzVq1Ai3rWbNmhw8eJDnz59Hus+jR494/vw5adKkCbe9U6dO1KlTh2rVqlm1jyIiIok9s/39/QEiZOuLopvZQ4cOxd3dndatW0d6nHLlyrF582bOnj0LwLFjx9i5cyfvvfdetPsr8razM7oDIknZO++8w+jRoy1f9+/f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RERExIrUiIuIiIiIiIhYkRpxEREREREREStSIy4iIiIiIiJiRWrERURERERERKxIjbiIiIiIiIiIFakRFxEREREREbEiNeIiIiIiIiIiVqRGXERERERERMSK1IiLiIiIiIiIWJEacRERERERERErUiMuIiIiIiIiYkVqxEVERERERESsSI24iIiIiIiIiBWpERcRERERERGxIjXiIiIiIiIiIlakRlxERERERETEitSIi4iIiIiIiFiRGnERERERERERK1IjLiIiIiIiImJFasRFRERERERErEiNuIiIiIiIiIgVqREXERERERERsSI14iIiIiIiIiJWpEZcRERERERExIrUiIuIiIiIiIhYkRpxEREREREREStSIy4iIiIiIiJiRWrERURERERERKxIjbiIiIiIiIiIFakRFxEREREREbEiNeIiIiIiIiIiVqRGXERERERERMSK1IiLiIiIiIiIWJEacRERERERERErUiMuIiIiIiIiYkVqxEVERERERESsSI24iIiIiIiIiBWpERcRERERERGxIjXiIiIiIiIiIlakRlxERERERETEitSIi4iIiIiIiFiRGnERERERERERK1IjLiIiIiIiImJFasRFRERERERErEiNuIiIiIiIiIgVqREXERERERERsSI14iIiIiIiIiJWpEZcRERERERExIrUiIuIiIiIiIhYkRpxEREREREREStSIy4iIiIiIiJiRWrERURERERERKxIjbiIiIiIiIiIFakRFxEREREREbEiNeIiIiIiIiIiVqRGXERERERERMSK1IiLiIiIiIiIWJEacRERERERERErUiMuIiIiIiIiYkVqxEVERERERESsSI24iIiIiIiIiBWpERcRERERERGxIjXiImIR48aNw2AwMGDAgBeO3blzJyVKlMDJyYkcOXIwY8aMOMsfPXrE6NGjyZkzJ05OThQpUoRNmzbFe56rV6/Stm1b0qdPj7OzM0WLFuXw4cPmeksiIiKvjaioKIYNG0b27NlJlSoVOXLkYPTo0cTExDzzMdevX6d169bkzZsXOzu7BDM+MZk9btw4SpUqhaurK15eXjRp0oSzZ8+a+y2KJGtqxEWSiYcPH9q6BLP57bffmDVrFoULF37h2AsXLlCvXj0qVqzI0aNH+eSTT+jXrx8rVqwwjRk2bBgzZ85kypQpnDp1ih49etC0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Ivq5MK+JNIuzphOR2qTOuhofH49u3brB2dkZq1atQufOnTFmzBg8efIEYWFhqFq1Kq5evQpdXV2UK1dO6rKJiIh+KsxrIs1jI05EapeYmIiRI0di7dq1WL16Nbp16wa5XK68ruu7d++gra0tcZVEREQ/N+Y1kebw0HQiUjtdXV0MHjwYRYoUyfDSJgx1IiIi6TGviTSHjTgRacQvv/yChg0b4siRI0hKSlJuXSciIqLsg3lNpBk8NJ2INCYgIADx8fGoVauW1KUQERHRZzCvidSPjTgRERERERGRBvFYEyIiIiIiIiINYiNOREREREREpEFsxImIiIiIiIg0iI04ERERERERkQaxESciIiIiIiLSIDbiRERERERERBrERpyIiIiIiIhIg9iIExEREREREWkQG3EiIiIiIiIiDWIjTkRERERERKRBbMSJiIiIiIiINIiNOBEREREREZEGsREnIiIiIiIi0iA24kREREREREQaxEaciIiIiIiISIPYiBMRERERERFpEBtxIiIiIiIiIg1iI05ERERERESkQWzEiYiIiIiIiDSIjTgRERERERGRBrERJyIiIiIiItIgNuJEREREREREGsRGnIiIiIiIiEiD2IgTERERERERaRAbcSIiIiIiIiINYiNOREREREREpEFsxImIiIiIiIg0iI04ERERERERkQaxESciIiIiIiLSIDbiRERERERERBrERpyIiIiIiIhIg9iIExEREREREWkQG3EiIiIiIiIiDWIjTkRERERERKRBbMSJiIiIiIiINIiNOBEREREREZEGsREnIiIiIiIi0iA24kREREREREQaxEaciIiIiIiISIPYiBMRERERERFpEBtxIiIiIiIiIg1iI05ERERERESkQWzEiYiIiIiIiDSIjTgRERERERGRBrERJyIiIiIiItIgNuJEREREREREGsRGnIiIiIiIiEiD2IgTERERERERaRAbcSIiIiIiIiINYiNOREREREREpEFsxImIiIiIiIg0iI04ERERERERkQaxESciIiIiIiLSIDbiRERERERERBrERpyIiIiIiIhIg9iIExEREREREWkQG3EiIiIiIiIiDWIjTkRERERERKRBbMSJiIiIiIiINIiNOBEREREREZEGsREnIiIiIiIi0iA24kREREREREQaxEaciIiIiIiISIPYiBMRERERERFpEBtxIiIiIiIiIg1iI05ERERERESkQWzEiYiIiIiIiDSIjTgRERERERGRBrERJyIiIiIiItIgNuJEREREREREGsRGnIiIiIiIiEiD2IgTERERERERaRAbcSIiIiIiIiINYiNOREREREREpEFsxImIiIiIiIg0iI04ERERERERkQaxESciIiIiIiLSIDbiRERERERERBrERpyIiIiIiIhIg9iIExEREREREWkQG3EiIiIiIiIiDWIjTkRERERERKRBbMSJiIiIiIiINIiNOBEREREREZEGsREnIiIiIiIi0iA24kREREREREQaxEaciIiIiIiISIPYiBMRERERERFpEBtxIiIiIiIiIg1iI05ERERERESkQWzEiYiIiIiIiDSIjTgRERERERGRBrERJyIiIiIiItIgNuJEREREREREGsRGnIiIiIiIiEiD2IgTERERERERaRAbcSIiIiIiIiINYiNOREREREREpEFsxImIiIiIiIg0iI04ERERERERkQaxESciIiIiIiLSIDbiRERERERERBrERpyIiIiIiIhIg9iIExEREREREWkQG3EiIiIiIiIiDWIjTkTfzN/fH25ubihSpAhkMhn279+f4bjAwEA0b94cxsbGMDQ0RI0aNfDkyZPPPu/evXvh4OCAfPnyQV9fH7a2tti6dWuaMSkpKZgwYQJKliyJPHnyoFSpUpg2bRrkcnmGz9mvXz/IZDIsWbLkW39cIiKiHGnlypWoXLkyjIyMYGRkBEdHRxw9elS5Pjk5GWPGjEGlSpWgr6+PIkWKoGvXrnj+/PkXn9fZ2RkymSzdrVmzZmnGhYSEoHPnzihYsCDy5s0LW1tbXL58Wbk+NjYWgwYNQrFixZAnTx6UK1cOK1euVO0vgSib0ZG6AKKfVVJSEnLnzi11Gd8lLi4ONjY26NGjB1q3bp3hmAcPHqB27dro1asXpk6dCmNjYwQGBkJPT++zz1ugQAGMHz8e1tbWyJ07Nw4dOoQePXrA1NQUjRo1AgDMnTsXq1atwubNm1GhQgVcunQJPXr0gLGxMYYOHZrm+fbv34+LFy+iSJEiqvvhiYjop/Aj5HWxYsUwZ84clClTBgCwefNmtGjRAgEBAahQoQLi4+Nx5coVTJw4ETY2NoiIiMDvv/+O5s2b49KlS5993r179yIpKUl5//Xr17CxsUHbtm2VyyIiIlCr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//77L86cOYPKlStj7dq1WL9+PWbOnInIyEjY2trKHToREX0gmK/fjfmaSL14RpyIVKp58+YYPnw4Nm3ahMGDB8Pc3ByNGzdGTEwMtLS0UKlSJQQEBGDr1q3Q0NDAkydPULFiRbnDJiIi+qgwXxOpFwtxIlKp7PvhLlq0CC1btsSsWbPw4sULxMbG4sSJE7h//z4WLVqE4OBgDBw4EFu3bkWFChVkjpqIiOjjwnxNpF6cNZ2IVCZ71tWkpCQMGDAALVq0wKpVq9C3b19MnDgRISEhiIiIQL169eDv7w9dXV04ODjIHTYREdFHhfmaSP1YiBORyqWkpGDcuHFYu3YtVq9ejQEDBiAzM1NxX9eMjAxoamrKHCUREdHHjfmaSH04NJ2IVE5XVxc//PADypcvn+etTZjUiYiI5Md8TaQ+LMSJSC2qVauGtm3b4vDhw0hNTVX0rhMREVHxwXxNpB4cmk5EauPn54ekpCQ0adJE7lCIiIgoH8zXRKrHQpyIiIiIiIhIjTjWhIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIE9F7CQ0NRd++fVGmTBmULl0aTk5OuHr1qmL9wIEDIUlSjkfDhg3fus+NGzfm2kaSJCQnJyvarFy5ErVr14aRkRGMjIzQqFEjHDlyJNe+bt++jS5dusDY2BiGhoZo2LAhQkJClPcGEBERFTM+Pj7o3LkzypcvD0mSsG/fvlxtpk+fDnt7e+jr68PU1BStW7fGpUuXcrRZs2YNWrRoASMjI0iShJiYmAK9/ooVK2Braws9PT3UrVsXZ86cybE+rxwvSRIWLFgAAHj58iV++OEH2NnZoXTp0rC2tsaoUaMQGxtbpPeDqDhiIU4kk9TUVLlDeG/R0dFo0qQJtLW1ceTIEdy6dQuLFi2CiYlJjnbt27dHWFiY4nH48OF37tvIyCjHNmFhYdDT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sD9BeQ3PiBORSjVq1AiDBg3C77//jn79+sHCwgLOzs6IioqCnp4eSpYsiYCAAOzYsQM6Ojp4/vw5SpQoIXXYREREpEHYn6C8hoU4EalUxrVvly5dCjc3N8yZMwdv3rxBdHQ0Tp8+jUePHmHp0qUIDg5Gnz59sGPHDhQvXlziqImIiEiTsD9BeQ1XTScilclY1TQhIQG9e/eGq6sr1q9fjx49emDChAl49uwZwsLCULt2bfj7+0NfXx+VK1eWOmwiIiLSIOxPUF7EQpyIVC4pKQljx47Fpk2bsGHDBvTu3RtyuVxx/dW0tDTo6upKHCURERFpMvYnKC/h0HQiUjl9fX0MHz4cxYoVy/bSIUyaRERE9CXsT1BewkKciNSiYsWKaNq0KY4dO4bk5GTF0WsiIiIiZbE/QXkFh6YTkdrcuHEDCQkJqF+/vtShEBERkZZif4LyAhbiRERERERERGrEsRxEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRERERERERGrEQpyIiIiIiIhIjViIExEREREREakRC3EiIiIiIiIiNWIhTkRERERERKRGLMSJiIiIiIiI1IiFOBEREREREZEasRAnIiIiIiIiUiMW4kRERERERERqxEKciIiIiIiISI1YiBMRERERERGpEQtxIiIiIiIiIjViIU5ERERERESkRizEiYiIiIiIiNSIhTgRERERERGRGrEQJyIiIiIiIlIjFuJEREREREREasRCnIiIiIiIiEiNWIgTERERERERqRELcSIiIiIiIiI1YiFOREREREREpEYsxImIiIiIiIjUiIU4ERERERERkRqxECciIiIiIiJSIxbiRKSU+fPno3bt2jAyMoKlpSXatWuH+/fvZ2l39+5dtGnTBiYmJjAyMkK9evXw7NkzAMDbt28xfPhwVKpUCQULFkSpUqUwYsQIREdHf/a1z549i9atW6NYsWKQyWQ4cODAZ9sPGjQIMpkMK1asyHa/EAItWrRQ6rmIiIiIiHIbC3EiNUhOTpY6hG/m6+uLH3/8EZcvX8bp06eRmpqKpk2bIj4+XtHm8ePHaNCgAWxtbeHj44OAgABMnToVBgYGAICXL1/i5cuXWLJkCW7evImtW7fixIkT6Nev32dfOz4+HnZ2dlizZs0X4zxw4ACuXLmCYsWKfbLNihUrIJPJlHznRERERES5SyaEEFIHQZTXuLq6olq1asifPz+2bduGqlWrwtfXF76+vhg3bhwCAgJgbm6O3r17Y86cOdDT08Phw4fRs2dPvH37Fjo6OvD394eDgwPGjh2L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OSXiIiJiODMmzDYm2La2ExEREcmqlIiLiIjhNDRdREREchIl4iIiYjg9vkxERERyEiXiIiJiOAu2V7otGRuKiIiISIZTIi4iIoZTRVxERERyEiXiIiJiOM0RFxERkZxEibiIiBhOFXERERHJSZSIi4iI4SyAOQ1tRURERLIzJeIiImI4VcRFREQkJ1EiLiIihtMccREREclJ7IwOQERERERERCQnUUVcREQMp6HpIiIikpMoERcREcNpaLqIiIjkJErE5aF8A8ri4pjL6DDSTXSVcKNDSHenI4sZHULG8DI6gPTnnsfV6BDSTWzUnXS7ltmSuNnaVkRERCQ7UyIuIiKGU0VcREREchIl4iIiYjjNERcREZGcRKumi4iI4SyWtG0Z5datW3Tr1g03Nzfc3Nzo1q0bt2/ffuA5r776KiaTKdlWp06djAtSREREsj1VxEVExHBmTJhtHHJua7tH0bVrV/788082bNgAQO/evenWrRurV69+4HktWrRg3rx51te5c+fOsBhFREQk+1MiLiIihssKQ9OPHz/Ohg0b+Pnnn6lduzYAc+fOpW7dupw8eZJy5crd91xHR0e8vB7D1QVFREQkQ2houoiIGO5RhqZHREQk22JjY/9TDHv37sXNzc2ahAPUqVMHNzc39uzZ88Bzt23bRuHChSlbtiy9evUiLCzsP8UiIiIijzcl4iIiYrikVdNt3QCKFStmncvt5uZGYGDgf4ohJCSEwoULp9hfuHBhQkJC7ntey5Yt+eabbwgKCuKjjz5i3759NGnS5D9/MSAiIiKPLw1NFxERwz3Kc8QvXbqEq+vfz2V3dHRMtf3YsWN5//33H3jNffv2AWAypRz2brFYUt2f5Pnnn7f+u1KlStSoUYMSJUqwdu1aOnTo8MD7ioiISM6kRFxERIyXhjni/NXO1dU1WSJ+P/379+eFF154YBtfX1+OHDlCaGhoimPXrl3D09PTttgAb29vSpQowenTp20+R0RERHIWJeIiImK4tDyWLK2PL/Pw8MDDw+Oh7erWrUt4eDi//vortWrVAuCXX34hPDycevXq2Xy/GzducOnSJby9vdMWqIiIiOQYmiMuIiKGS3p8ma1bRqhQoQItWrSgV69e/Pzzz/z888/06tWLVq1aJVsxvXz58ixfvhyAqKgohgwZwt69ezl//jzbtm2jdevWeHh40L59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YUOuX79Oo0aNMJlMLF++nMqVK1O8ePFsX+0XERERyUlMln9mGCLprFevXixZsoTjx49TpEgRAO7evUvdunWZN28e1apVMzjCh/vnYlgrV64kNDSUsmXLEhAQwLx585gwYQIzZsygVatWBkeadmazmZiYGDw9PSlatCjbt2+nUKFCmEwmPvnkE9555x2WLl1K8+bNjQ7VZjExMTRt2pQTJ05w/PhxChcuDEB4eDi//PILe/bs4fnnn6dChQoGR5p2U6dOZdSoUaxfv56AgADr/latWjF06FAaNWpkXHAiIiIiYjMl4pJukhLWsLAwLBYLnp6eAHTv3p0NGzawf/9+azKeHVd6/uSTT/j+++9p1qwZX331FePGjeOll15i7ty5DBs2jG+//ZYWLVoYHeYjOXbsGAEBAfTq1YsJEyZY98+YMYPKlSvTtGlTA6N7sNT+W7px4watWrWiQIECrFu3zqDI/pukfp09e5Z79+5RqFAh3N3d+eSTTxg3bhzfffcdTZo0SfUcEREREcnatGq6pIukBGDt2rW8//77lCxZEovFwpIlS5g3bx69evWibNmynDp1iiJFimS7ZGHbtm2sXbuWbdu2MWvWLMqVK0eXLl2Ii4ujV69e5MqVi9KlSxsdpk2S3quDBw9y5coV8uTJQ9OmTdmzZw/VqlXD3t6ecePGATBo0KBk52Q1/4zru+++4+bNm0RHRzNkyBBWrVpF586dad++PcuXLzc40rQzmUxs2LCBt99+mzJlyhAcHMzHH39M//79MZlMPPfcc6xZsybZlyRZ8T0SERERkZSy98RWyTKSFvsaNWoUCxcupEaNGvzwww80btwYgLlz59KpUyeOHz9ucKSPpkCBAnTu3JkJEyawYsUKVq5cSe7cuVmwYAHHjh3j1VdfzTaJeFKC98ILL7BhwwZeffVVRo8ejY+PD/v37+eDDz5g5MiRKc7JipIG9Hz66adMnjwZk8nEF198Qe/evQFYtmwZp06domvXrkaGmSZJfTp27BiDBw/m888/Z8WKFQwdOpSJEydy4MAB3njjDT788EM0oElEREQke9LQdEkX0dHRTJgwgZdeeonTp08zefJkFi9eTKNGjShVqlSyRb+yanU1SUhICMePH6dx48bMnj2bihUr4uTkRIsWLahQoQK7d+8GYOHChUyaNIm1a9dmq4W/Ll++TNu2bZk6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8eN56623uHr1Kl26dKFXr17s2LEDBwcHJk2ahKurKzNnzqRNmzb4+fkZHfZDJf3c161bxzvvvMOWLVsoVKgQmzZtYsKECTRv3pxWrVrxxhtvsHr1avLnz5/l36sHCQsL48svv+Sbb77hu+++y1ZJ+Jo1awgMDKRKlSq4uroyePBg8uTJw6effsqqVasICQnh008/5dlnnzU6ZBERERHJAErE5YHu3LlDpUqVCAgI4I8//sDDw4M6depQq1YtRo0aRatWraxDubOToKAgRowYwbBhw5gxYwZdunRhwIABbN++nW+//ZaoqChmzZqFq6ur0aGmybZt2+jfvz8zZszg6aefBhKHbe/atYtRo0Zx69YtAgMDadOmjcGR/ncJCQns378fT09PfH19jQ7HZuvXr2fMmDF8//33BAYGsmvXLvz9/Zk6dSre3t78/vvvxMbGWp/zLiIiIiKPHyXikqp/VkoPHjzIrFmzcHNz4+2338bNzY18+fIxbdo0bt++nex51NnJ9u3badu2Ld27d2f69OlAYnK3detWVq9ezYgRI/Dy8jI4StskvV+jRo2iWLFi9O7dm/j4eOzs7Kzz9WNiYrh8+TKlSpXK1pXw7CohIQGz2Uy/fv3o3bs3165dY8yYMbz33nvMmDGDQoUKMWHCBMqWLWt0qCIiIiKSwbRYm6TKZDKxceNGgoODGT58OF988UWy43v27OHLL7/k448/NijC/65Ro0asWbOGN954g71791KnTh3s7e15+umnqV+/frJHtWV1SUm1yWTi0KFDyR41t3HjRu7evUu7du0oVapUsvaSeW7evEmhQoWYOXMmN27cYMSIEaxevRpvb2+WLl1KQkIC0dHRRocpIiIiIpkg6y9tLZkqaYDEb7/9Zq0Kf/jhh9bjISEhLFy4kJ49ezJlyhSaNGliVKjp4qmnnmLGjBn069ePHTt2WPdnhyQ86b36888/CQsLw2w206hRI27cuMHOnTuJiIjg8OHDDB061PoMaslcSe/R8ePHKVu2LGvXriVv3rw4OjpiNps5fPgwR48e5erVq7z33nv4+/sbG7CIiIiIZAoNTZcU1q9fz1tvvcVHH33EyZMnee+99xg2bBhjx47lwoULfPTRR7Ro0eKxWkhq06ZNjB07li1btmSLJDzJ+vXrGT16NDVq1GDfvn3s3buXDz74gGPHjhEaGkpsbCwjR458LOaEZ1fr1q3jp59+YufOnfz555989tlntGvXjnfeeYdDhw7xxx9/MH36dFq3bm10qCIiIiKSSZSISzIWi4URI0ZQtWpV/ve//wFw6NAhqlevztSpUxk8eDAxMTE4OTk9dvOMo6Ojs8UzqM1mM3Z2duzevZs33niDJUuWsHXrViZNmsSJEydwdHTk+vXr3LhxAycnJ0qUKPHYvVfZxW+//UarVq1YunQpHh4ebN68mXfffZelS5fSsGFDzp8/T2RkJJUrV9Z7JCIiIpKDaGi6JGMymbh58ybffvutdV+1atXo2rUrQ4YM4YMPPsDJycna9nGS1ZPwkJAQ7ty5Y1187cyZM4wfP54rV64wf/58goKCcHR05KeffsLd3Z1y5cpRokQJ4PF7r7KLS5cuUbVqVWrUqIGvry+9evWiZcuWdOzYkU2bNuHr60vlypUBvUciIiIiOYkS8RwuaUDE+fPnOXbsGABDhw4lX758vP/++0DiqulFixZl06ZNjB49Otmccckc0dHRzJ07lz///BOz2QyAs7MzQ4YM4e2332bVqlX4+fmxY8cOJk2axIULFwyOWAAqVKjA1atX+fHHH637mjZtSuvWrfnggw+4evWqgdGJiIiIiFG0anoOZzKZWLNmDePHj8fb25uEhAQGDx7MSy+9xIcffsjmzZsJCQlh8uTJPP300/z+++/Wiqxknjx58jBgwADu3LlDv379mDx5MnXq1KF06dJUq1aNmJgYdu3axcCBAxk3bhx+fn5Gh5zjJA0t37FjB2fPnsXR0ZHmzZvTpUsXNmzYwIkTJ2jQoAEzZ85k4sSJLFq0iNy5cxsdtoiIiIgYQHPEc6CkOcYAO3fuZMiQIaxatYqVK1cye/Zsdu3aRd68eTGbzRw/fpy8efPi5+fHvXv3yJUrl8HR5zz/nDscFBTE7Nmz8fHxYdKkSWzfvp2VK1eye/dufHx86Nu3L23atNF8Y4OsX7+eYcOGMXr0aJ5//nlmz57NM888w8GDB/n8889xcXHh3XffJTo6mrfffps1a9ZQuHBho8MWERERkUymRDyHOX78ONOmTWPatGm4uLiwZs0aXFxcuHXrFhMnTmTJkiXWIc7169fH3t7e6JBztKSEOiIiAldXVwAOHDjA9OnTKViwIIGBgeTNm5dr166RO3du3NzclIQbJCQkhC5durBgwQLOnj3LkCFDWLNmDT4+PkDie3nv3j2CgoJ45513WLBgAVWqVDE4ahERERExgsYY5yAnT57kpZdews/Pj7i4OCDxGdRdunRh6tSpbNy4ET8/P7Zs2cKbb77J+fPnjQ04h0tKqDdt2kTHjh154YUX6NGjB9WrV+ett97i5s2bDBkyhPDwcAoVKmRN1JWEZ56k7zFDQ0OJi4vjySefZM+ePbz33nt89913+Pj48OWXX7JhwwZMJhO5cuXi7NmzLFmyREm4iIiISA6mRDyHuHLlCp07d6Z///68++67FCxYEIDXXnuNdu3akSdPHsxmM6tWreLtt99m/PjxlCpVyuCoc7ak+cb9+/fnjTfeYODAgZw4cYJnnnmG6tWr07dvX+Li4hg1ahRxcXFKwA1gMpnYsmULffr0IV++fBw8eJBBgwaxevVqypYty6+//srUqVOtc8FNJhOvv/465cqVMzhyERERETGSEvEc4sKFC9SsWZPu3btjNpv56quveOmll6hYsSKlSpUiLi6Orl27MmfOHCZOnEirVq3QrAVj/PPnHhwcTN++fWnXrh316tVj9+7d3L59mx9//JG6devSrVs3rl+/TmRkpIER51yHDx9mwYIFDB8+nIIFCzJixAhq1qxJ//79mTVrFr169WLKlCk0adLE6FBFREREJAvRquk5hIuLC99++y01atRg9erVODs7U6ZMGerUqcOiRYv48MMPCQgIICoqCmdnZ0BDnI2QtJDeunXrMJlMmEwmvvvuO7p160ahQoUAqF27NiaTCTs7OywWC0ePHiU+Pt7gyHOeiIgIPv/8c9auXcvIkSMBeOqppyhbtiz/93//h9lsZvr06TRp0kTz9kVEREQkGS3WloMsWrSIefPmUbx4cUaMGEHRokXJmzcvffv25cknn6R3797JVlSXzPPPRO3333+nX79+TJw4kdKlS/PBBx9QoEAB+vTpQ2RkJF27dmXWrFnUq1ePc+fOkStXLooWLWpwD3KWs2fPUrJkSY4cOcKoUaNwc3NjypQpeHp6Gh2aiIiIiGQDSsRzmJiYGJycnKyvd+/eTc+ePfnqq6+oW7eugZHlXKdOnWLJkiWYzWaefPJJFi1aRPHixZkyZQoAK1euZP369ezduxdXV1fefvtt2rVrpyprJkv6eZ86dYq33nqLp556ihEjRnD48GE+/fRTAMaNG4eXl5fBkYqIiIhIVqdEPIe6fv06O3fuZPTo0Xz44Yc899xzRoeUI508eZIuXbrQpUsXNmzYwJkzZ6hQoQIRERFMnz6dBg0aWNv++eef5M6dm8KFC1vnkSsRz1yrV6/m008/JSYmhrt379K6dWvee+89Dh8+zNSpU7G3t2fOnDnWxdlERERERFKjRDwHMpvNHDlyhHHjxtG9e3dat25tdEg50qlTp+jYsSPvvPMOL774IvHx8Tz11FOUK1cOT09PoqOjeemll6hTp47RoQpw7NgxunTpwvLlyylWrBirVq3ihx9+oHbt2gwZMoQDBw6QK1cuPZZMRERERB5Ki7XlQHZ2dvj7+/Pll19SoEABDXE2SEREBOfPn6d69eoAODg40KRJE6pXr06JEiX47rvvmDNnDoCS8SwgKioKDw8PihQpgpOTEy1btmT79u0sXLiQ3LlzM3DgQKNDFBEREZFsQqty5WAFChQANLzZKEkr2Hfq1Iljx44xd+5cNm/eTL169ahRowadO3fGxcUFFxcXo0PN0U6cOEFsbCy+vr7kz5+f7du3ExkZiYuLC08//TQNGzbk559/5vLly0aHKiIiIiLZhIamixhs69atvPzyy7i5ubFx40aKFCliXb0+IiICV1dXo0PMcZJGiZw8eZLhw4dTrlw5Jk2axIwZM9ixYwfly5enVKlSzJw5k5kzZzJx4kSmTp1K5cqVjQ5dRERERLIBVcRFDNa4cWO+//577t27R2RkJID1EXJKwo1hMplYvXo1r7/+OrGxsQQFBfHee+8xaNAgunXrRnx8PD/99BNfffUV+fLl49q1a3h4eBgdtoiIiIhkE6qIi2QR27Zt45VXXuGbb77hqaeeMjqcHOmfjyjr1KkTP/74I2XLlmX16tUsXryY8uXL895772Fvb8+9e/dYtWoVY8eO5ZtvvtEibSIiIiJiM1XERbKIgIAA5s2bh9lsNjqUHCc2Nhb4e72E+Ph48ufPT/78+QF45plnKF68OD/++CPjx48nPj6eXLly4eHhwXfffackXERERETSRIm4SBbSpEkTGjZsiAaqZJ5Tp07Rvn17Jk+eTHR0NDExMRQvXpzChQuza9cubt68iZOTEwEBATRq1Ihjx45x6dIlABo1asQTTzxhcA9EREREJLvR48tEsiCtZJ95jh8/TlBQEAcPHuTIkSM4OzszevRo6tevzw8//MDOnTspUaIEc+fO5auvvmL8+PGEhYXh5+dndOgiIiIikk2pIi4iOVrDhg3p06cPX3/9NT169MDDw4N69epx+/ZtHBwcKFasGIcPH2bRokXY2dlx6dIlihYtanTYIiIiIpKNKREXkRytQIECAHz00Uc0btyYDz74gBs3bhAeHs7mzZs5c+YMH330EefPn+fVV19l0aJFFClSxOCoRURERCQ706rpIpJjJa2SHh0dzSuvvEJAQACzZ8/mpZdeYvjw4Vy8eJHQ0FBq1qxJcHAwjo6OVKhQweiwRURERCSbUyIuIjlebGwsQ4YMYe7cuXz++ee88sormM1m6/PcExISsLe3NzhKEREREXlcaGi6iOR4jo6ODBgwAB8fn1QfRaYkXERERETSkxJxERGgbNmyNGvWjHXr1hEXF2ethouIiIiIpDc9vkxE5C99+vQhOjqa3LlzGx2KiIiIiDzGNEdcREREREREJBNp7KWIiIiIiIhIJlIiLiIiIiIiIpKJlIiLiIiIiIiIZCIl4iIiIiIiIiKZSIm4iIiIiIiISCZSIi4iIiIiIiKSiZSIi4iIiIiIiGQiJeIiIiIiIiIimUiJuIiIiIiIiEgm+n+y7gScgtnBHAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -469,15 +1530,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.426\n", - " -0.222\n", - " -0.149\n", - " -0.142\n", - " 0.126\n", - " 0.347\n", - " 0.440\n", - " 0.716\n", - " 0.910\n", + " -0.285\n", + " -0.211\n", + " -0.154\n", + " -0.117\n", + " 0.135\n", + " 0.384\n", + " 0.814\n", + " 0.966\n", + " 1.190\n", " \n", " \n", " HashJoin\n", @@ -485,13 +1546,13 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.718\n", - " -0.683\n", - " -0.713\n", - " -0.726\n", - " -0.673\n", - " -0.347\n", - " -0.063\n", + " 0.304\n", + " 0.337\n", + " 0.351\n", + " 0.403\n", + " 0.497\n", + " 0.577\n", + " 0.823\n", " NaN\n", " NaN\n", " \n", @@ -501,7 +1562,7 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.527\n", + " -0.653\n", " NaN\n", " NaN\n", " NaN\n", @@ -517,8 +1578,8 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.304\n", - " -0.315\n", + " -0.405\n", + " -0.442\n", " NaN\n", " NaN\n", " NaN\n", @@ -533,15 +1594,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -2.116\n", - " -1.993\n", - " -2.153\n", - " -1.999\n", - " -1.768\n", - " -1.389\n", - " -1.083\n", - " -0.898\n", - " -1.023\n", + " -2.051\n", + " -2.026\n", + " -2.004\n", + " -1.916\n", + " -1.740\n", + " -1.443\n", + " -1.081\n", + " -0.891\n", + " -0.870\n", " \n", " \n", " SeqScan\n", @@ -549,15 +1610,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.086\n", - " -0.019\n", - " -0.195\n", - " -0.307\n", - " -0.291\n", - " 0.146\n", - " 0.394\n", - " 0.684\n", - " 0.392\n", + " 0.377\n", + " 0.389\n", + " 0.387\n", + " 0.319\n", + " 0.227\n", + " 0.483\n", + " 0.737\n", + " 0.861\n", + " 1.007\n", " \n", " \n", " Sort\n", @@ -565,15 +1626,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.619\n", - " -0.627\n", - " -0.722\n", - " -0.719\n", + " -0.546\n", " -0.647\n", - " -0.359\n", - " -0.245\n", - " -0.307\n", - " -0.407\n", + " -0.666\n", + " -0.628\n", + " -0.564\n", + " -0.349\n", + " -0.087\n", + " -0.276\n", + " -0.364\n", " \n", " \n", " Filter\n", @@ -582,15 +1643,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.426\n", - " 0.222\n", - " 0.149\n", - " 0.142\n", - " -0.126\n", - " -0.347\n", - " -0.440\n", - " -0.716\n", - " -0.910\n", + " 0.285\n", + " 0.211\n", + " 0.154\n", + " 0.117\n", + " -0.135\n", + " -0.384\n", + " -0.814\n", + " -0.966\n", + " -1.190\n", " \n", " \n", " HashJoin\n", @@ -598,13 +1659,13 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.293\n", - " -0.461\n", - " -0.565\n", - " -0.584\n", - " -0.799\n", - " -0.695\n", - " -0.503\n", + " 0.589\n", + " 0.547\n", + " 0.505\n", + " 0.521\n", + " 0.363\n", + " 0.193\n", + " 0.010\n", " NaN\n", " NaN\n", " \n", @@ -614,7 +1675,7 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.101\n", + " -0.369\n", " NaN\n", " NaN\n", " NaN\n", @@ -630,8 +1691,8 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.122\n", - " -0.094\n", + " -0.120\n", + " -0.231\n", " NaN\n", " NaN\n", " NaN\n", @@ -646,15 +1707,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -1.690\n", - " -1.771\n", - " -2.004\n", + " -1.766\n", + " -1.816\n", + " -1.851\n", + " -1.799\n", + " -1.874\n", + " -1.827\n", + " -1.895\n", " -1.857\n", - " -1.894\n", - " -1.736\n", - " -1.523\n", - " -1.614\n", - " -1.933\n", + " -2.060\n", " \n", " \n", " SeqScan\n", @@ -662,15 +1723,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.339\n", - " 0.202\n", - " -0.046\n", - " -0.165\n", - " -0.417\n", - " -0.201\n", - " -0.046\n", - " -0.031\n", - " -0.518\n", + " 0.662\n", + " 0.600\n", + " 0.541\n", + " 0.436\n", + " 0.093\n", + " 0.099\n", + " -0.076\n", + " -0.105\n", + " -0.183\n", " \n", " \n", " Sort\n", @@ -678,15 +1739,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.194\n", - " -0.406\n", - " -0.574\n", - " -0.577\n", - " -0.773\n", - " -0.706\n", - " -0.685\n", - " -1.023\n", - " -1.317\n", + " -0.262\n", + " -0.437\n", + " -0.512\n", + " -0.510\n", + " -0.699\n", + " -0.733\n", + " -0.901\n", + " -1.242\n", + " -1.554\n", " \n", " \n", " HashJoin\n", @@ -695,13 +1756,13 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.718\n", - " 0.683\n", - " 0.713\n", - " 0.726\n", - " 0.673\n", - " 0.347\n", - " 0.063\n", + " -0.304\n", + " -0.337\n", + " -0.351\n", + " -0.403\n", + " -0.497\n", + " -0.577\n", + " -0.823\n", " NaN\n", " NaN\n", " \n", @@ -711,13 +1772,13 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.293\n", - " 0.461\n", - " 0.565\n", - " 0.584\n", - " 0.799\n", - " 0.695\n", - " 0.503\n", + " -0.589\n", + " -0.547\n", + " -0.505\n", + " -0.521\n", + " -0.363\n", + " -0.193\n", + " -0.010\n", " NaN\n", " NaN\n", " \n", @@ -727,7 +1788,7 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.192\n", + " -0.958\n", " NaN\n", " NaN\n", " NaN\n", @@ -743,8 +1804,8 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.415\n", - " 0.368\n", + " -0.709\n", + " -0.778\n", " NaN\n", " NaN\n", " NaN\n", @@ -759,13 +1820,13 @@ " NaN\n", " NaN\n", " NaN\n", - " -1.398\n", - " -1.310\n", - " -1.440\n", - " -1.273\n", - " -1.095\n", - " -1.042\n", - " -1.019\n", + " -2.355\n", + " -2.363\n", + " -2.356\n", + " -2.319\n", + " -2.237\n", + " -2.019\n", + " -1.905\n", " NaN\n", " NaN\n", " \n", @@ -775,13 +1836,13 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.632\n", - " 0.664\n", - " 0.518\n", - " 0.419\n", - " 0.382\n", - " 0.494\n", - " 0.458\n", + " 0.073\n", + " 0.052\n", + " 0.036\n", + " -0.084\n", + " -0.270\n", + " -0.093\n", + " -0.086\n", " NaN\n", " NaN\n", " \n", @@ -791,13 +1852,13 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.099\n", - " 0.056\n", - " -0.009\n", - " 0.007\n", - " 0.026\n", - " -0.011\n", - " -0.181\n", + " -0.851\n", + " -0.984\n", + " -1.017\n", + " -1.031\n", + " -1.062\n", + " -0.926\n", + " -0.911\n", " NaN\n", " NaN\n", " \n", @@ -808,7 +1869,7 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.527\n", + " 0.653\n", " NaN\n", " NaN\n", " NaN\n", @@ -824,7 +1885,7 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.101\n", + " 0.369\n", " NaN\n", " NaN\n", " NaN\n", @@ -840,7 +1901,7 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.192\n", + " 0.958\n", " NaN\n", " NaN\n", " NaN\n", @@ -852,11 +1913,11 @@ " \n", " \n", " NestedLoopJoin\n", - " -0.559\n", - " -0.194\n", - " -0.021\n", - " -0.026\n", - " 0.223\n", + " -0.59\n", + " -0.57\n", + " -0.094\n", + " 0.093\n", + " 0.248\n", " NaN\n", " NaN\n", " NaN\n", @@ -872,7 +1933,7 @@ " NaN\n", " NaN\n", " NaN\n", - " -1.589\n", + " -1.397\n", " NaN\n", " NaN\n", " NaN\n", @@ -888,7 +1949,7 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.441\n", + " 1.031\n", " NaN\n", " NaN\n", " NaN\n", @@ -904,7 +1965,7 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.092\n", + " 0.107\n", " NaN\n", " NaN\n", " NaN\n", @@ -921,8 +1982,8 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.304\n", - " 0.315\n", + " 0.405\n", + " 0.442\n", " NaN\n", " NaN\n", " NaN\n", @@ -937,8 +1998,8 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.122\n", - " 0.094\n", + " 0.120\n", + " 0.231\n", " NaN\n", " NaN\n", " NaN\n", @@ -953,8 +2014,8 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.415\n", - " -0.368\n", + " 0.709\n", + " 0.778\n", " NaN\n", " NaN\n", " NaN\n", @@ -965,11 +2026,11 @@ " \n", " \n", " NestedLoopCrossJoin\n", - " 0.559\n", - " 0.194\n", - " 0.021\n", - " 0.026\n", - " -0.223\n", + " 0.59\n", + " 0.57\n", + " 0.094\n", + " -0.093\n", + " -0.248\n", " NaN\n", " NaN\n", " NaN\n", @@ -985,8 +2046,8 @@ " NaN\n", " NaN\n", " NaN\n", - " -1.812\n", - " -1.678\n", + " -1.646\n", + " -1.585\n", " NaN\n", " NaN\n", " NaN\n", @@ -1001,8 +2062,8 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.217\n", - " 0.296\n", + " 0.782\n", + " 0.831\n", " NaN\n", " NaN\n", " NaN\n", @@ -1017,8 +2078,8 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.315\n", - " -0.312\n", + " -0.141\n", + " -0.206\n", " NaN\n", " NaN\n", " NaN\n", @@ -1034,15 +2095,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 2.116\n", - " 1.993\n", - " 2.153\n", - " 1.999\n", - " 1.768\n", - " 1.389\n", - " 1.083\n", - " 0.898\n", - " 1.023\n", + " 2.051\n", + " 2.026\n", + " 2.004\n", + " 1.916\n", + " 1.740\n", + " 1.443\n", + " 1.081\n", + " 0.891\n", + " 0.870\n", " \n", " \n", " Filter\n", @@ -1050,15 +2111,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 1.690\n", - " 1.771\n", - " 2.004\n", + " 1.766\n", + " 1.816\n", + " 1.851\n", + " 1.799\n", + " 1.874\n", + " 1.827\n", + " 1.895\n", " 1.857\n", - " 1.894\n", - " 1.736\n", - " 1.523\n", - " 1.614\n", - " 1.933\n", + " 2.060\n", " \n", " \n", " HashJoin\n", @@ -1066,13 +2127,13 @@ " NaN\n", " NaN\n", " NaN\n", - " 1.398\n", - " 1.310\n", - " 1.440\n", - " 1.273\n", - " 1.095\n", - " 1.042\n", - " 1.019\n", + " 2.355\n", + " 2.363\n", + " 2.356\n", + " 2.319\n", + " 2.237\n", + " 2.019\n", + " 1.905\n", " NaN\n", " NaN\n", " \n", @@ -1082,7 +2143,7 @@ " NaN\n", " NaN\n", " NaN\n", - " 1.589\n", + " 1.397\n", " NaN\n", " NaN\n", " NaN\n", @@ -1098,8 +2159,8 @@ " NaN\n", " NaN\n", " NaN\n", - " 1.812\n", - " 1.678\n", + " 1.646\n", + " 1.585\n", " NaN\n", " NaN\n", " NaN\n", @@ -1114,15 +2175,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 2.030\n", - " 1.973\n", - " 1.958\n", - " 1.691\n", - " 1.477\n", - " 1.535\n", - " 1.477\n", - " 1.582\n", - " 1.415\n", + " 2.428\n", + " 2.415\n", + " 2.392\n", + " 2.235\n", + " 1.967\n", + " 1.926\n", + " 1.819\n", + " 1.753\n", + " 1.877\n", " \n", " \n", " Sort\n", @@ -1130,15 +2191,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 1.497\n", - " 1.365\n", - " 1.431\n", - " 1.280\n", - " 1.121\n", - " 1.030\n", - " 0.838\n", - " 0.591\n", - " 0.616\n", + " 1.504\n", + " 1.379\n", + " 1.338\n", + " 1.288\n", + " 1.175\n", + " 1.094\n", + " 0.994\n", + " 0.615\n", + " 0.506\n", " \n", " \n", " SeqScan\n", @@ -1147,15 +2208,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.086\n", - " 0.019\n", - " 0.195\n", - " 0.307\n", - " 0.291\n", - " -0.146\n", - " -0.394\n", - " -0.684\n", - " -0.392\n", + " -0.377\n", + " -0.389\n", + " -0.387\n", + " -0.319\n", + " -0.227\n", + " -0.483\n", + " -0.737\n", + " -0.861\n", + " -1.007\n", " \n", " \n", " Filter\n", @@ -1163,15 +2224,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.339\n", - " -0.202\n", - " 0.046\n", - " 0.165\n", - " 0.417\n", - " 0.201\n", - " 0.046\n", - " 0.031\n", - " 0.518\n", + " -0.662\n", + " -0.600\n", + " -0.541\n", + " -0.436\n", + " -0.093\n", + " -0.099\n", + " 0.076\n", + " 0.105\n", + " 0.183\n", " \n", " \n", " HashJoin\n", @@ -1179,13 +2240,13 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.632\n", - " -0.664\n", - " -0.518\n", - " -0.419\n", - " -0.382\n", - " -0.494\n", - " -0.458\n", + " -0.073\n", + " -0.052\n", + " -0.036\n", + " 0.084\n", + " 0.270\n", + " 0.093\n", + " 0.086\n", " NaN\n", " NaN\n", " \n", @@ -1195,7 +2256,7 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.441\n", + " -1.031\n", " NaN\n", " NaN\n", " NaN\n", @@ -1211,8 +2272,8 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.217\n", - " -0.296\n", + " -0.782\n", + " -0.831\n", " NaN\n", " NaN\n", " NaN\n", @@ -1227,15 +2288,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -2.030\n", - " -1.973\n", - " -1.958\n", - " -1.691\n", - " -1.477\n", - " -1.535\n", - " -1.477\n", - " -1.582\n", - " -1.415\n", + " -2.428\n", + " -2.415\n", + " -2.392\n", + " -2.235\n", + " -1.967\n", + " -1.926\n", + " -1.819\n", + " -1.753\n", + " -1.877\n", " \n", " \n", " Sort\n", @@ -1243,15 +2304,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.533\n", - " -0.608\n", - " -0.528\n", - " -0.412\n", - " -0.356\n", - " -0.505\n", - " -0.639\n", - " -0.992\n", - " -0.799\n", + " -0.924\n", + " -1.036\n", + " -1.053\n", + " -0.947\n", + " -0.792\n", + " -0.832\n", + " -0.825\n", + " -1.138\n", + " -1.371\n", " \n", " \n", " Sort\n", @@ -1260,15 +2321,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.619\n", - " 0.627\n", - " 0.722\n", - " 0.719\n", + " 0.546\n", " 0.647\n", - " 0.359\n", - " 0.245\n", - " 0.307\n", - " 0.407\n", + " 0.666\n", + " 0.628\n", + " 0.564\n", + " 0.349\n", + " 0.087\n", + " 0.276\n", + " 0.364\n", " \n", " \n", " Filter\n", @@ -1276,15 +2337,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.194\n", - " 0.406\n", - " 0.574\n", - " 0.577\n", - " 0.773\n", - " 0.706\n", - " 0.685\n", - " 1.023\n", - " 1.317\n", + " 0.262\n", + " 0.437\n", + " 0.512\n", + " 0.510\n", + " 0.699\n", + " 0.733\n", + " 0.901\n", + " 1.242\n", + " 1.554\n", " \n", " \n", " HashJoin\n", @@ -1292,13 +2353,13 @@ " NaN\n", " NaN\n", " NaN\n", - " -0.099\n", - " -0.056\n", - " 0.009\n", - " -0.007\n", - " -0.026\n", - " 0.011\n", - " 0.181\n", + " 0.851\n", + " 0.984\n", + " 1.017\n", + " 1.031\n", + " 1.062\n", + " 0.926\n", + " 0.911\n", " NaN\n", " NaN\n", " \n", @@ -1308,7 +2369,7 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.092\n", + " -0.107\n", " NaN\n", " NaN\n", " NaN\n", @@ -1324,8 +2385,8 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.315\n", - " 0.312\n", + " 0.141\n", + " 0.206\n", " NaN\n", " NaN\n", " NaN\n", @@ -1340,15 +2401,15 @@ " NaN\n", " NaN\n", " NaN\n", - " -1.497\n", - " -1.365\n", - " -1.431\n", - " -1.280\n", - " -1.121\n", - " -1.030\n", - " -0.838\n", - " -0.591\n", - " -0.616\n", + " -1.504\n", + " -1.379\n", + " -1.338\n", + " -1.288\n", + " -1.175\n", + " -1.094\n", + " -0.994\n", + " -0.615\n", + " -0.506\n", " \n", " \n", " SeqScan\n", @@ -1356,15 +2417,15 @@ " NaN\n", " NaN\n", " NaN\n", - " 0.533\n", - " 0.608\n", - " 0.528\n", - " 0.412\n", - " 0.356\n", - " 0.505\n", - " 0.639\n", - " 0.992\n", - " 0.799\n", + " 0.924\n", + " 1.036\n", + " 1.053\n", + " 0.947\n", + " 0.792\n", + " 0.832\n", + " 0.825\n", + " 1.138\n", + " 1.371\n", " \n", " \n", "\n", @@ -1397,14 +2458,14 @@ "NestedLoopCrossJoin Aggregation NaN NaN NaN NaN \n", " Filter NaN NaN NaN NaN \n", " HashJoin NaN NaN NaN NaN \n", - " NestedLoopJoin -0.559 -0.194 -0.021 -0.026 \n", + " NestedLoopJoin -0.59 -0.57 -0.094 0.093 \n", " Projection NaN NaN NaN NaN \n", " SeqScan NaN NaN NaN NaN \n", " Sort NaN NaN NaN NaN \n", "NestedLoopJoin Aggregation NaN NaN NaN NaN \n", " Filter NaN NaN NaN NaN \n", " HashJoin NaN NaN NaN NaN \n", - " NestedLoopCrossJoin 0.559 0.194 0.021 0.026 \n", + " NestedLoopCrossJoin 0.59 0.57 0.094 -0.093 \n", " Projection NaN NaN NaN NaN \n", " SeqScan NaN NaN NaN NaN \n", " Sort NaN NaN NaN NaN \n", @@ -1432,86 +2493,86 @@ "\n", "row_count 1024 2048 4096 8192 \\\n", "a b \n", - "Aggregation Filter -0.426 -0.222 -0.149 -0.142 \n", - " HashJoin -0.718 -0.683 -0.713 -0.726 \n", - " NestedLoopCrossJoin -0.527 NaN NaN NaN \n", - " NestedLoopJoin -0.304 -0.315 NaN NaN \n", - " Projection -2.116 -1.993 -2.153 -1.999 \n", - " SeqScan -0.086 -0.019 -0.195 -0.307 \n", - " Sort -0.619 -0.627 -0.722 -0.719 \n", - "Filter Aggregation 0.426 0.222 0.149 0.142 \n", - " HashJoin -0.293 -0.461 -0.565 -0.584 \n", - " NestedLoopCrossJoin -0.101 NaN NaN NaN \n", - " NestedLoopJoin 0.122 -0.094 NaN NaN \n", - " Projection -1.690 -1.771 -2.004 -1.857 \n", - " SeqScan 0.339 0.202 -0.046 -0.165 \n", - " Sort -0.194 -0.406 -0.574 -0.577 \n", - "HashJoin Aggregation 0.718 0.683 0.713 0.726 \n", - " Filter 0.293 0.461 0.565 0.584 \n", - " NestedLoopCrossJoin 0.192 NaN NaN NaN \n", - " NestedLoopJoin 0.415 0.368 NaN NaN \n", - " Projection -1.398 -1.310 -1.440 -1.273 \n", - " SeqScan 0.632 0.664 0.518 0.419 \n", - " Sort 0.099 0.056 -0.009 0.007 \n", - "NestedLoopCrossJoin Aggregation 0.527 NaN NaN NaN \n", - " Filter 0.101 NaN NaN NaN \n", - " HashJoin -0.192 NaN NaN NaN \n", - " NestedLoopJoin 0.223 NaN NaN NaN \n", - " Projection -1.589 NaN NaN NaN \n", - " SeqScan 0.441 NaN NaN NaN \n", - " Sort -0.092 NaN NaN NaN \n", - "NestedLoopJoin Aggregation 0.304 0.315 NaN NaN \n", - " Filter -0.122 0.094 NaN NaN \n", - " HashJoin -0.415 -0.368 NaN NaN \n", - " NestedLoopCrossJoin -0.223 NaN NaN NaN \n", - " Projection -1.812 -1.678 NaN NaN \n", - " SeqScan 0.217 0.296 NaN NaN \n", - " Sort -0.315 -0.312 NaN NaN \n", - "Projection Aggregation 2.116 1.993 2.153 1.999 \n", - " Filter 1.690 1.771 2.004 1.857 \n", - " HashJoin 1.398 1.310 1.440 1.273 \n", - " NestedLoopCrossJoin 1.589 NaN NaN NaN \n", - " NestedLoopJoin 1.812 1.678 NaN NaN \n", - " SeqScan 2.030 1.973 1.958 1.691 \n", - " Sort 1.497 1.365 1.431 1.280 \n", - "SeqScan Aggregation 0.086 0.019 0.195 0.307 \n", - " Filter -0.339 -0.202 0.046 0.165 \n", - " HashJoin -0.632 -0.664 -0.518 -0.419 \n", - " NestedLoopCrossJoin -0.441 NaN NaN NaN \n", - " NestedLoopJoin -0.217 -0.296 NaN NaN \n", - " Projection -2.030 -1.973 -1.958 -1.691 \n", - " Sort -0.533 -0.608 -0.528 -0.412 \n", - "Sort Aggregation 0.619 0.627 0.722 0.719 \n", - " Filter 0.194 0.406 0.574 0.577 \n", - " HashJoin -0.099 -0.056 0.009 -0.007 \n", - " NestedLoopCrossJoin 0.092 NaN NaN NaN \n", - " NestedLoopJoin 0.315 0.312 NaN NaN \n", - " Projection -1.497 -1.365 -1.431 -1.280 \n", - " SeqScan 0.533 0.608 0.528 0.412 \n", + "Aggregation Filter -0.285 -0.211 -0.154 -0.117 \n", + " HashJoin 0.304 0.337 0.351 0.403 \n", + " NestedLoopCrossJoin -0.653 NaN NaN NaN \n", + " NestedLoopJoin -0.405 -0.442 NaN NaN \n", + " Projection -2.051 -2.026 -2.004 -1.916 \n", + " SeqScan 0.377 0.389 0.387 0.319 \n", + " Sort -0.546 -0.647 -0.666 -0.628 \n", + "Filter Aggregation 0.285 0.211 0.154 0.117 \n", + " HashJoin 0.589 0.547 0.505 0.521 \n", + " NestedLoopCrossJoin -0.369 NaN NaN NaN \n", + " NestedLoopJoin -0.120 -0.231 NaN NaN \n", + " Projection -1.766 -1.816 -1.851 -1.799 \n", + " SeqScan 0.662 0.600 0.541 0.436 \n", + " Sort -0.262 -0.437 -0.512 -0.510 \n", + "HashJoin Aggregation -0.304 -0.337 -0.351 -0.403 \n", + " Filter -0.589 -0.547 -0.505 -0.521 \n", + " NestedLoopCrossJoin -0.958 NaN NaN NaN \n", + " NestedLoopJoin -0.709 -0.778 NaN NaN \n", + " Projection -2.355 -2.363 -2.356 -2.319 \n", + " SeqScan 0.073 0.052 0.036 -0.084 \n", + " Sort -0.851 -0.984 -1.017 -1.031 \n", + "NestedLoopCrossJoin Aggregation 0.653 NaN NaN NaN \n", + " Filter 0.369 NaN NaN NaN \n", + " HashJoin 0.958 NaN NaN NaN \n", + " NestedLoopJoin 0.248 NaN NaN NaN \n", + " Projection -1.397 NaN NaN NaN \n", + " SeqScan 1.031 NaN NaN NaN \n", + " Sort 0.107 NaN NaN NaN \n", + "NestedLoopJoin Aggregation 0.405 0.442 NaN NaN \n", + " Filter 0.120 0.231 NaN NaN \n", + " HashJoin 0.709 0.778 NaN NaN \n", + " NestedLoopCrossJoin -0.248 NaN NaN NaN \n", + " Projection -1.646 -1.585 NaN NaN \n", + " SeqScan 0.782 0.831 NaN NaN \n", + " Sort -0.141 -0.206 NaN NaN \n", + "Projection Aggregation 2.051 2.026 2.004 1.916 \n", + " Filter 1.766 1.816 1.851 1.799 \n", + " HashJoin 2.355 2.363 2.356 2.319 \n", + " NestedLoopCrossJoin 1.397 NaN NaN NaN \n", + " NestedLoopJoin 1.646 1.585 NaN NaN \n", + " SeqScan 2.428 2.415 2.392 2.235 \n", + " Sort 1.504 1.379 1.338 1.288 \n", + "SeqScan Aggregation -0.377 -0.389 -0.387 -0.319 \n", + " Filter -0.662 -0.600 -0.541 -0.436 \n", + " HashJoin -0.073 -0.052 -0.036 0.084 \n", + " NestedLoopCrossJoin -1.031 NaN NaN NaN \n", + " NestedLoopJoin -0.782 -0.831 NaN NaN \n", + " Projection -2.428 -2.415 -2.392 -2.235 \n", + " Sort -0.924 -1.036 -1.053 -0.947 \n", + "Sort Aggregation 0.546 0.647 0.666 0.628 \n", + " Filter 0.262 0.437 0.512 0.510 \n", + " HashJoin 0.851 0.984 1.017 1.031 \n", + " NestedLoopCrossJoin -0.107 NaN NaN NaN \n", + " NestedLoopJoin 0.141 0.206 NaN NaN \n", + " Projection -1.504 -1.379 -1.338 -1.288 \n", + " SeqScan 0.924 1.036 1.053 0.947 \n", "\n", "row_count 16384 32768 65536 131072 \\\n", "a b \n", - "Aggregation Filter 0.126 0.347 0.440 0.716 \n", - " HashJoin -0.673 -0.347 -0.063 NaN \n", + "Aggregation Filter 0.135 0.384 0.814 0.966 \n", + " HashJoin 0.497 0.577 0.823 NaN \n", " NestedLoopCrossJoin NaN NaN NaN NaN \n", " NestedLoopJoin NaN NaN NaN NaN \n", - " Projection -1.768 -1.389 -1.083 -0.898 \n", - " SeqScan -0.291 0.146 0.394 0.684 \n", - " Sort -0.647 -0.359 -0.245 -0.307 \n", - "Filter Aggregation -0.126 -0.347 -0.440 -0.716 \n", - " HashJoin -0.799 -0.695 -0.503 NaN \n", + " Projection -1.740 -1.443 -1.081 -0.891 \n", + " SeqScan 0.227 0.483 0.737 0.861 \n", + " Sort -0.564 -0.349 -0.087 -0.276 \n", + "Filter Aggregation -0.135 -0.384 -0.814 -0.966 \n", + " HashJoin 0.363 0.193 0.010 NaN \n", " NestedLoopCrossJoin NaN NaN NaN NaN \n", " NestedLoopJoin NaN NaN NaN NaN \n", - " Projection -1.894 -1.736 -1.523 -1.614 \n", - " SeqScan -0.417 -0.201 -0.046 -0.031 \n", - " Sort -0.773 -0.706 -0.685 -1.023 \n", - "HashJoin Aggregation 0.673 0.347 0.063 NaN \n", - " Filter 0.799 0.695 0.503 NaN \n", + " Projection -1.874 -1.827 -1.895 -1.857 \n", + " SeqScan 0.093 0.099 -0.076 -0.105 \n", + " Sort -0.699 -0.733 -0.901 -1.242 \n", + "HashJoin Aggregation -0.497 -0.577 -0.823 NaN \n", + " Filter -0.363 -0.193 -0.010 NaN \n", " NestedLoopCrossJoin NaN NaN NaN NaN \n", " NestedLoopJoin NaN NaN NaN NaN \n", - " Projection -1.095 -1.042 -1.019 NaN \n", - " SeqScan 0.382 0.494 0.458 NaN \n", - " Sort 0.026 -0.011 -0.181 NaN \n", + " Projection -2.237 -2.019 -1.905 NaN \n", + " SeqScan -0.270 -0.093 -0.086 NaN \n", + " Sort -1.062 -0.926 -0.911 NaN \n", "NestedLoopCrossJoin Aggregation NaN NaN NaN NaN \n", " Filter NaN NaN NaN NaN \n", " HashJoin NaN NaN NaN NaN \n", @@ -1526,44 +2587,44 @@ " Projection NaN NaN NaN NaN \n", " SeqScan NaN NaN NaN NaN \n", " Sort NaN NaN NaN NaN \n", - "Projection Aggregation 1.768 1.389 1.083 0.898 \n", - " Filter 1.894 1.736 1.523 1.614 \n", - " HashJoin 1.095 1.042 1.019 NaN \n", + "Projection Aggregation 1.740 1.443 1.081 0.891 \n", + " Filter 1.874 1.827 1.895 1.857 \n", + " HashJoin 2.237 2.019 1.905 NaN \n", " NestedLoopCrossJoin NaN NaN NaN NaN \n", " NestedLoopJoin NaN NaN NaN NaN \n", - " SeqScan 1.477 1.535 1.477 1.582 \n", - " Sort 1.121 1.030 0.838 0.591 \n", - "SeqScan Aggregation 0.291 -0.146 -0.394 -0.684 \n", - " Filter 0.417 0.201 0.046 0.031 \n", - " HashJoin -0.382 -0.494 -0.458 NaN \n", + " SeqScan 1.967 1.926 1.819 1.753 \n", + " Sort 1.175 1.094 0.994 0.615 \n", + "SeqScan Aggregation -0.227 -0.483 -0.737 -0.861 \n", + " Filter -0.093 -0.099 0.076 0.105 \n", + " HashJoin 0.270 0.093 0.086 NaN \n", " NestedLoopCrossJoin NaN NaN NaN NaN \n", " NestedLoopJoin NaN NaN NaN NaN \n", - " Projection -1.477 -1.535 -1.477 -1.582 \n", - " Sort -0.356 -0.505 -0.639 -0.992 \n", - "Sort Aggregation 0.647 0.359 0.245 0.307 \n", - " Filter 0.773 0.706 0.685 1.023 \n", - " HashJoin -0.026 0.011 0.181 NaN \n", + " Projection -1.967 -1.926 -1.819 -1.753 \n", + " Sort -0.792 -0.832 -0.825 -1.138 \n", + "Sort Aggregation 0.564 0.349 0.087 0.276 \n", + " Filter 0.699 0.733 0.901 1.242 \n", + " HashJoin 1.062 0.926 0.911 NaN \n", " NestedLoopCrossJoin NaN NaN NaN NaN \n", " NestedLoopJoin NaN NaN NaN NaN \n", - " Projection -1.121 -1.030 -0.838 -0.591 \n", - " SeqScan 0.356 0.505 0.639 0.992 \n", + " Projection -1.175 -1.094 -0.994 -0.615 \n", + " SeqScan 0.792 0.832 0.825 1.138 \n", "\n", "row_count 262144 \n", "a b \n", - "Aggregation Filter 0.910 \n", + "Aggregation Filter 1.190 \n", " HashJoin NaN \n", " NestedLoopCrossJoin NaN \n", " NestedLoopJoin NaN \n", - " Projection -1.023 \n", - " SeqScan 0.392 \n", - " Sort -0.407 \n", - "Filter Aggregation -0.910 \n", + " Projection -0.870 \n", + " SeqScan 1.007 \n", + " Sort -0.364 \n", + "Filter Aggregation -1.190 \n", " HashJoin NaN \n", " NestedLoopCrossJoin NaN \n", " NestedLoopJoin NaN \n", - " Projection -1.933 \n", - " SeqScan -0.518 \n", - " Sort -1.317 \n", + " Projection -2.060 \n", + " SeqScan -0.183 \n", + " Sort -1.554 \n", "HashJoin Aggregation NaN \n", " Filter NaN \n", " NestedLoopCrossJoin NaN \n", @@ -1585,27 +2646,27 @@ " Projection NaN \n", " SeqScan NaN \n", " Sort NaN \n", - "Projection Aggregation 1.023 \n", - " Filter 1.933 \n", + "Projection Aggregation 0.870 \n", + " Filter 2.060 \n", " HashJoin NaN \n", " NestedLoopCrossJoin NaN \n", " NestedLoopJoin NaN \n", - " SeqScan 1.415 \n", - " Sort 0.616 \n", - "SeqScan Aggregation -0.392 \n", - " Filter 0.518 \n", + " SeqScan 1.877 \n", + " Sort 0.506 \n", + "SeqScan Aggregation -1.007 \n", + " Filter 0.183 \n", " HashJoin NaN \n", " NestedLoopCrossJoin NaN \n", " NestedLoopJoin NaN \n", - " Projection -1.415 \n", - " Sort -0.799 \n", - "Sort Aggregation 0.407 \n", - " Filter 1.317 \n", + " Projection -1.877 \n", + " Sort -1.371 \n", + "Sort Aggregation 0.364 \n", + " Filter 1.554 \n", " HashJoin NaN \n", " NestedLoopCrossJoin NaN \n", " NestedLoopJoin NaN \n", - " Projection -0.616 \n", - " SeqScan 0.799 " + " Projection -0.506 \n", + " SeqScan 1.371 " ] }, "execution_count": 7, @@ -1639,7 +2700,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2026-05-31T16:16:05+03:00\n", + "2026-06-09T23:41:04+03:00\n", "Running ./build-release/bin/benchmarks\n", "Run on (8 X 4200 MHz CPU s)\n", "CPU Caches:\n", @@ -1647,59 +2708,59 @@ " L1 Instruction 32 KiB (x4)\n", " L2 Unified 1280 KiB (x4)\n", " L3 Unified 8192 KiB (x1)\n", - "Load Average: 3.38, 2.81, 1.77\n", + "Load Average: 1.09, 0.80, 1.04\n", "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", "-----------------------------------------------------------------------------------------------------------------------------------------\n", "Benchmark Time CPU Iterations UserCounters...\n", "-----------------------------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time \u001b[m\u001b[0;33m 532418 ns 521056 ns \u001b[m\u001b[0;36m 1116\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time \u001b[m\u001b[0;33m 508270 ns 501445 ns \u001b[m\u001b[0;36m 1089\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time \u001b[m\u001b[0;33m 4068856 ns 4010747 ns \u001b[m\u001b[0;36m 156\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time \u001b[m\u001b[0;33m 997566 ns 988471 ns \u001b[m\u001b[0;36m 786\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time \u001b[m\u001b[0;33m 529187 ns 520615 ns \u001b[m\u001b[0;36m 1000\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/4638/4638/real_time \u001b[m\u001b[0;33m 1026885 ns 1016820 ns \u001b[m\u001b[0;36m 714\u001b[m lhs_rows=4.638k\u001b[m model_cost=640.044k\u001b[m output_rows=4.638k\u001b[m plan_cost=1.56764M\u001b[m rhs_rows=4.638k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time \u001b[m\u001b[0;33m 875389 ns 866351 ns \u001b[m\u001b[0;36m 804\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time \u001b[m\u001b[0;33m 527338 ns 522288 ns \u001b[m\u001b[0;36m 1107\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time \u001b[m\u001b[0;33m 507202 ns 502389 ns \u001b[m\u001b[0;36m 1000\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time \u001b[m\u001b[0;33m 861315 ns 854085 ns \u001b[m\u001b[0;36m 818\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time \u001b[m\u001b[0;33m 6698145 ns 6632289 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time \u001b[m\u001b[0;33m 1503435 ns 1491454 ns \u001b[m\u001b[0;36m 442\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time \u001b[m\u001b[0;33m 702024 ns 697631 ns \u001b[m\u001b[0;36m 968\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/7246/7246/real_time \u001b[m\u001b[0;33m 1406982 ns 1398061 ns \u001b[m\u001b[0;36m 445\u001b[m lhs_rows=7.246k\u001b[m model_cost=0.999948M\u001b[m output_rows=7.246k\u001b[m plan_cost=2.44915M\u001b[m rhs_rows=7.246k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time \u001b[m\u001b[0;33m 1204952 ns 1197240 ns \u001b[m\u001b[0;36m 548\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time \u001b[m\u001b[0;33m 735577 ns 729661 ns \u001b[m\u001b[0;36m 851\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time \u001b[m\u001b[0;33m 1552618 ns 1542405 ns \u001b[m\u001b[0;36m 398\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time \u001b[m\u001b[0;33m 2615187 ns 2600696 ns \u001b[m\u001b[0;36m 253\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time \u001b[m\u001b[0;33m 24615070 ns 24428312 ns \u001b[m\u001b[0;36m 28\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time \u001b[m\u001b[0;33m 5716537 ns 5678245 ns \u001b[m\u001b[0;36m 122\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time \u001b[m\u001b[0;33m 2528047 ns 2507421 ns \u001b[m\u001b[0;36m 253\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/23478/23478/real_time \u001b[m\u001b[0;33m 5300551 ns 5262456 ns \u001b[m\u001b[0;36m 116\u001b[m lhs_rows=23.478k\u001b[m model_cost=3.23996M\u001b[m output_rows=23.478k\u001b[m plan_cost=7.93556M\u001b[m rhs_rows=23.478k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time \u001b[m\u001b[0;33m 3440769 ns 3423785 ns \u001b[m\u001b[0;36m 199\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time \u001b[m\u001b[0;33m 2294554 ns 2274793 ns \u001b[m\u001b[0;36m 241\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time \u001b[m\u001b[0;33m 4220053 ns 4185107 ns \u001b[m\u001b[0;36m 169\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time \u001b[m\u001b[0;33m 5592034 ns 5560841 ns \u001b[m\u001b[0;36m 126\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time \u001b[m\u001b[0;33m 51498743 ns 51127846 ns \u001b[m\u001b[0;36m 14\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time \u001b[m\u001b[0;33m 12802465 ns 12732765 ns \u001b[m\u001b[0;36m 50\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time \u001b[m\u001b[0;33m 5687200 ns 5655535 ns \u001b[m\u001b[0;36m 118\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/48986/48986/real_time \u001b[m\u001b[0;33m 13564179 ns 13440945 ns \u001b[m\u001b[0;36m 51\u001b[m lhs_rows=48.986k\u001b[m model_cost=6.76007M\u001b[m output_rows=48.986k\u001b[m plan_cost=16.5573M\u001b[m rhs_rows=48.986k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time \u001b[m\u001b[0;33m 7198310 ns 7163077 ns \u001b[m\u001b[0;36m 93\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time \u001b[m\u001b[0;33m 6012240 ns 5936779 ns \u001b[m\u001b[0;36m 87\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time \u001b[m\u001b[0;33m 7610143 ns 7525813 ns \u001b[m\u001b[0;36m 83\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time \u001b[m\u001b[0;33m 10313976 ns 10227032 ns \u001b[m\u001b[0;36m 63\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time \u001b[m\u001b[0;33m 90203371 ns 89533850 ns \u001b[m\u001b[0;36m 8\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time \u001b[m\u001b[0;33m 26495662 ns 26260681 ns \u001b[m\u001b[0;36m 22\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time \u001b[m\u001b[0;33m 15047581 ns 14860662 ns \u001b[m\u001b[0;36m 50\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/88768/88768/real_time \u001b[m\u001b[0;33m 25706484 ns 25401595 ns \u001b[m\u001b[0;36m 28\u001b[m lhs_rows=88.768k\u001b[m model_cost=12.25M\u001b[m output_rows=88.768k\u001b[m plan_cost=30.0036M\u001b[m rhs_rows=88.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time \u001b[m\u001b[0;33m 12686905 ns 12628552 ns \u001b[m\u001b[0;36m 47\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time \u001b[m\u001b[0;33m 12634892 ns 12474012 ns \u001b[m\u001b[0;36m 52\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time \u001b[m\u001b[0;33m 18734465 ns 18479865 ns \u001b[m\u001b[0;36m 37\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time \u001b[m\u001b[0;33m 26934394 ns 26755899 ns \u001b[m\u001b[0;36m 28\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time \u001b[m\u001b[0;33m 202987386 ns 201290217 ns \u001b[m\u001b[0;36m 4\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time \u001b[m\u001b[0;33m 74202993 ns 73103763 ns \u001b[m\u001b[0;36m 9\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time \u001b[m\u001b[0;33m 48595095 ns 48139275 ns \u001b[m\u001b[0;36m 16\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/188478/188478/real_time \u001b[m\u001b[0;33m 52584297 ns 52158890 ns \u001b[m\u001b[0;36m 14\u001b[m lhs_rows=188.478k\u001b[m model_cost=26.01M\u001b[m output_rows=188.478k\u001b[m plan_cost=63.7056M\u001b[m rhs_rows=188.478k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time \u001b[m\u001b[0;33m 25448562 ns 25343677 ns \u001b[m\u001b[0;36m 26\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time \u001b[m\u001b[0;33m 30993358 ns 30600644 ns \u001b[m\u001b[0;36m 27\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time \u001b[m\u001b[0;33m 309954 ns 306993 ns \u001b[m\u001b[0;36m 2231\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time \u001b[m\u001b[0;33m 407352 ns 405145 ns \u001b[m\u001b[0;36m 1738\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time \u001b[m\u001b[0;33m 3320695 ns 3294023 ns \u001b[m\u001b[0;36m 197\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time \u001b[m\u001b[0;33m 720259 ns 716718 ns \u001b[m\u001b[0;36m 971\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time \u001b[m\u001b[0;33m 348253 ns 347048 ns \u001b[m\u001b[0;36m 2013\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time \u001b[m\u001b[0;33m 246864 ns 245902 ns \u001b[m\u001b[0;36m 2845\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time \u001b[m\u001b[0;33m 697766 ns 693468 ns \u001b[m\u001b[0;36m 1046\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time \u001b[m\u001b[0;33m 399168 ns 395553 ns \u001b[m\u001b[0;36m 1705\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time \u001b[m\u001b[0;33m 380590 ns 377409 ns \u001b[m\u001b[0;36m 1982\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time \u001b[m\u001b[0;33m 657861 ns 654417 ns \u001b[m\u001b[0;36m 1094\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time \u001b[m\u001b[0;33m 5492013 ns 5446973 ns \u001b[m\u001b[0;36m 129\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time \u001b[m\u001b[0;33m 1165643 ns 1159924 ns \u001b[m\u001b[0;36m 598\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time \u001b[m\u001b[0;33m 531581 ns 529216 ns \u001b[m\u001b[0;36m 1293\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time \u001b[m\u001b[0;33m 396404 ns 394343 ns \u001b[m\u001b[0;36m 1798\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time \u001b[m\u001b[0;33m 982848 ns 978044 ns \u001b[m\u001b[0;36m 711\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time \u001b[m\u001b[0;33m 592521 ns 588477 ns \u001b[m\u001b[0;36m 945\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time \u001b[m\u001b[0;33m 1145653 ns 1137800 ns \u001b[m\u001b[0;36m 602\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time \u001b[m\u001b[0;33m 2130491 ns 2118603 ns \u001b[m\u001b[0;36m 333\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time \u001b[m\u001b[0;33m 19355047 ns 19193728 ns \u001b[m\u001b[0;36m 37\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time \u001b[m\u001b[0;33m 4048476 ns 4028779 ns \u001b[m\u001b[0;36m 172\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time \u001b[m\u001b[0;33m 1831355 ns 1822600 ns \u001b[m\u001b[0;36m 389\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time \u001b[m\u001b[0;33m 1297606 ns 1289387 ns \u001b[m\u001b[0;36m 539\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time \u001b[m\u001b[0;33m 2799041 ns 2788075 ns \u001b[m\u001b[0;36m 249\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time \u001b[m\u001b[0;33m 1823392 ns 1805263 ns \u001b[m\u001b[0;36m 377\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time \u001b[m\u001b[0;33m 3559425 ns 3523442 ns \u001b[m\u001b[0;36m 206\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time \u001b[m\u001b[0;33m 4628039 ns 4602719 ns \u001b[m\u001b[0;36m 134\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time \u001b[m\u001b[0;33m 38239999 ns 37998344 ns \u001b[m\u001b[0;36m 19\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time \u001b[m\u001b[0;33m 10169495 ns 10119187 ns \u001b[m\u001b[0;36m 72\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time \u001b[m\u001b[0;33m 4172917 ns 4152985 ns \u001b[m\u001b[0;36m 174\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time \u001b[m\u001b[0;33m 2975624 ns 2955759 ns \u001b[m\u001b[0;36m 204\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time \u001b[m\u001b[0;33m 5785900 ns 5761548 ns \u001b[m\u001b[0;36m 121\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time \u001b[m\u001b[0;33m 5343956 ns 5282506 ns \u001b[m\u001b[0;36m 131\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time \u001b[m\u001b[0;33m 7067011 ns 7008813 ns \u001b[m\u001b[0;36m 94\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time \u001b[m\u001b[0;33m 8754703 ns 8704815 ns \u001b[m\u001b[0;36m 83\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time \u001b[m\u001b[0;33m 74966988 ns 74476933 ns \u001b[m\u001b[0;36m 10\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time \u001b[m\u001b[0;33m 19754016 ns 19632989 ns \u001b[m\u001b[0;36m 35\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time \u001b[m\u001b[0;33m 10917472 ns 10837185 ns \u001b[m\u001b[0;36m 70\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time \u001b[m\u001b[0;33m 6093819 ns 6031366 ns \u001b[m\u001b[0;36m 106\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time \u001b[m\u001b[0;33m 10007416 ns 9965044 ns \u001b[m\u001b[0;36m 70\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time \u001b[m\u001b[0;33m 10467055 ns 10353758 ns \u001b[m\u001b[0;36m 70\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time \u001b[m\u001b[0;33m 16761908 ns 16627441 ns \u001b[m\u001b[0;36m 42\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time \u001b[m\u001b[0;33m 19593865 ns 19459568 ns \u001b[m\u001b[0;36m 36\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time \u001b[m\u001b[0;33m 159555687 ns 158424515 ns \u001b[m\u001b[0;36m 5\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time \u001b[m\u001b[0;33m 56860476 ns 56499320 ns \u001b[m\u001b[0;36m 13\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time \u001b[m\u001b[0;33m 34235903 ns 33978390 ns \u001b[m\u001b[0;36m 21\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time \u001b[m\u001b[0;33m 15134376 ns 15002297 ns \u001b[m\u001b[0;36m 47\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time \u001b[m\u001b[0;33m 21153397 ns 21080711 ns \u001b[m\u001b[0;36m 31\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time \u001b[m\u001b[0;33m 22172263 ns 21945666 ns \u001b[m\u001b[0;36m 31\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", "\u001b[m" ] } @@ -1710,10 +2771,820 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "1c313f56", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'context': {'date': '2026-06-09T23:41:04+03:00',\n", + " 'host_name': 'nixos',\n", + " 'executable': './build-release/bin/benchmarks',\n", + " 'num_cpus': 8,\n", + " 'mhz_per_cpu': 4200,\n", + " 'cpu_scaling_enabled': True,\n", + " 'caches': [{'type': 'Data', 'level': 1, 'size': 49152, 'num_sharing': 2},\n", + " {'type': 'Instruction', 'level': 1, 'size': 32768, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 2, 'size': 1310720, 'num_sharing': 2},\n", + " {'type': 'Unified', 'level': 3, 'size': 8388608, 'num_sharing': 8}],\n", + " 'load_avg': [1.09375, 0.795898, 1.04199],\n", + " 'library_version': 'v1.9.0',\n", + " 'library_build_type': 'release',\n", + " 'json_schema_version': 1},\n", + " 'benchmarks': [{'name': 'OperatorCostMatched/target_cost:640000/SeqScan/6400/real_time',\n", + " 'family_index': 0,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/SeqScan/6400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2231,\n", + " 'real_time': 309954.099962947,\n", + " 'cpu_time': 306992.77498879423,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640000.0,\n", + " 'output_rows': 6400.0,\n", + " 'plan_cost': 640000.0,\n", + " 'rows': 6400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Filter/6400/real_time',\n", + " 'family_index': 1,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Filter/6400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1738,\n", + " 'real_time': 407352.46718984947,\n", + " 'cpu_time': 405144.89355581126,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640000.0,\n", + " 'output_rows': 3328.0,\n", + " 'plan_cost': 1280000.0,\n", + " 'rows': 6400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Projection/29091/real_time',\n", + " 'family_index': 2,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Projection/29091/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 197,\n", + " 'real_time': 3320695.1267884923,\n", + " 'cpu_time': 3294022.7258883254,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640002.0,\n", + " 'output_rows': 29091.0,\n", + " 'plan_cost': 3549102.0,\n", + " 'rows': 29091.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Sort/4476/real_time',\n", + " 'family_index': 3,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Sort/4476/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 971,\n", + " 'real_time': 720258.5479141482,\n", + " 'cpu_time': 716717.8671472706,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640068.0,\n", + " 'output_rows': 4476.0,\n", + " 'plan_cost': 1087668.0,\n", + " 'rows': 4476.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/Aggregation/1255/real_time',\n", + " 'family_index': 4,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/Aggregation/1255/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2013,\n", + " 'real_time': 348253.45255807874,\n", + " 'cpu_time': 347048.28315946314,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 640050.0,\n", + " 'output_rows': 1255.0,\n", + " 'plan_cost': 765550.0,\n", + " 'rows': 1255.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time',\n", + " 'family_index': 5,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 2845,\n", + " 'real_time': 246863.73918773918,\n", + " 'cpu_time': 245901.98066783816,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 1620.0,\n", + " 'model_cost': 639900.0,\n", + " 'output_rows': 1620.0,\n", + " 'plan_cost': 963900.0,\n", + " 'rhs_rows': 1620.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time',\n", + " 'family_index': 6,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1046,\n", + " 'real_time': 697765.7963460343,\n", + " 'cpu_time': 693467.9225621414,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 96.0,\n", + " 'model_cost': 645120.0,\n", + " 'output_rows': 96.0,\n", + " 'plan_cost': 664320.0,\n", + " 'rhs_rows': 96.0},\n", + " {'name': 'OperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time',\n", + " 'family_index': 7,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1705,\n", + " 'real_time': 399167.8293283668,\n", + " 'cpu_time': 395552.58651026443,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 78.0,\n", + " 'model_cost': 632736.0,\n", + " 'output_rows': 6084.0,\n", + " 'plan_cost': 648336.0,\n", + " 'rhs_rows': 78.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time',\n", + " 'family_index': 8,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1982,\n", + " 'real_time': 380590.1458114292,\n", + " 'cpu_time': 377408.647325934,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000000.0,\n", + " 'output_rows': 10000.0,\n", + " 'plan_cost': 1000000.0,\n", + " 'rows': 10000.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Filter/10000/real_time',\n", + " 'family_index': 9,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Filter/10000/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1094,\n", + " 'real_time': 657861.3775062938,\n", + " 'cpu_time': 654417.0466179174,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000000.0,\n", + " 'output_rows': 5120.0,\n", + " 'plan_cost': 2000000.0,\n", + " 'rows': 10000.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Projection/45455/real_time',\n", + " 'family_index': 10,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Projection/45455/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 129,\n", + " 'real_time': 5492012.674357135,\n", + " 'cpu_time': 5446973.124030996,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000010.0,\n", + " 'output_rows': 45455.0,\n", + " 'plan_cost': 5545510.0,\n", + " 'rows': 45455.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Sort/6993/real_time',\n", + " 'family_index': 11,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Sort/6993/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 598,\n", + " 'real_time': 1165643.4515340838,\n", + " 'cpu_time': 1159923.8896321051,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 999999.0,\n", + " 'output_rows': 6993.0,\n", + " 'plan_cost': 1699299.0,\n", + " 'rows': 6993.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time',\n", + " 'family_index': 12,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1293,\n", + " 'real_time': 531581.1461662803,\n", + " 'cpu_time': 529216.385150812,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 1000110.0,\n", + " 'output_rows': 1961.0,\n", + " 'plan_cost': 1196210.0,\n", + " 'rows': 1961.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time',\n", + " 'family_index': 13,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 1798,\n", + " 'real_time': 396404.3103330183,\n", + " 'cpu_time': 394342.85817575123,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 2532.0,\n", + " 'model_cost': 1000140.0,\n", + " 'output_rows': 2532.0,\n", + " 'plan_cost': 1506540.0,\n", + " 'rhs_rows': 2532.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time',\n", + " 'family_index': 14,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 711,\n", + " 'real_time': 982848.244728049,\n", + " 'cpu_time': 978044.4992967627,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 120.0,\n", + " 'model_cost': 1008000.0,\n", + " 'output_rows': 120.0,\n", + " 'plan_cost': 1032000.0,\n", + " 'rhs_rows': 120.0},\n", + " {'name': 'OperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time',\n", + " 'family_index': 15,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 945,\n", + " 'real_time': 592520.8222362454,\n", + " 'cpu_time': 588477.2994708995,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 98.0,\n", + " 'model_cost': 998816.0,\n", + " 'output_rows': 9604.0,\n", + " 'plan_cost': 1018416.0,\n", + " 'rhs_rows': 98.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time',\n", + " 'family_index': 16,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 602,\n", + " 'real_time': 1145653.0216108216,\n", + " 'cpu_time': 1137799.9152823885,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240000.0,\n", + " 'output_rows': 32400.0,\n", + " 'plan_cost': 3240000.0,\n", + " 'rows': 32400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Filter/32400/real_time',\n", + " 'family_index': 17,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Filter/32400/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 333,\n", + " 'real_time': 2130490.6636592583,\n", + " 'cpu_time': 2118602.5795795773,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240000.0,\n", + " 'output_rows': 16384.0,\n", + " 'plan_cost': 6480000.0,\n", + " 'rows': 32400.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Projection/147273/real_time',\n", + " 'family_index': 18,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Projection/147273/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 37,\n", + " 'real_time': 19355047.134701412,\n", + " 'cpu_time': 19193728.13513518,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240006.0,\n", + " 'output_rows': 147273.0,\n", + " 'plan_cost': 17967306.0,\n", + " 'rows': 147273.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Sort/19636/real_time',\n", + " 'family_index': 19,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Sort/19636/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 172,\n", + " 'real_time': 4048476.3313691285,\n", + " 'cpu_time': 4028778.8023255784,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3239940.0,\n", + " 'output_rows': 19636.0,\n", + " 'plan_cost': 5203540.0,\n", + " 'rows': 19636.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time',\n", + " 'family_index': 20,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 389,\n", + " 'real_time': 1831354.6143687665,\n", + " 'cpu_time': 1822599.7814909993,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 3240030.0,\n", + " 'output_rows': 6353.0,\n", + " 'plan_cost': 3875330.0,\n", + " 'rows': 6353.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time',\n", + " 'family_index': 21,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 539,\n", + " 'real_time': 1297606.244909617,\n", + " 'cpu_time': 1289387.3710575104,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 8203.0,\n", + " 'model_cost': 3240185.0,\n", + " 'output_rows': 8203.0,\n", + " 'plan_cost': 4880785.0,\n", + " 'rhs_rows': 8203.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time',\n", + " 'family_index': 22,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 249,\n", + " 'real_time': 2799041.2047922043,\n", + " 'cpu_time': 2788075.1244980027,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 215.0,\n", + " 'model_cost': 3235750.0,\n", + " 'output_rows': 215.0,\n", + " 'plan_cost': 3278750.0,\n", + " 'rhs_rows': 215.0},\n", + " {'name': 'OperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time',\n", + " 'family_index': 23,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 377,\n", + " 'real_time': 1823391.5596992883,\n", + " 'cpu_time': 1805262.946949611,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 177.0,\n", + " 'model_cost': 3258216.0,\n", + " 'output_rows': 31329.0,\n", + " 'plan_cost': 3293616.0,\n", + " 'rhs_rows': 177.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time',\n", + " 'family_index': 24,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 206,\n", + " 'real_time': 3559424.834906856,\n", + " 'cpu_time': 3523441.9902912695,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760000.0,\n", + " 'output_rows': 67600.0,\n", + " 'plan_cost': 6760000.0,\n", + " 'rows': 67600.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Filter/67600/real_time',\n", + " 'family_index': 25,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Filter/67600/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 134,\n", + " 'real_time': 4628038.888062184,\n", + " 'cpu_time': 4602719.089552247,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760000.0,\n", + " 'output_rows': 33808.0,\n", + " 'plan_cost': 13520000.0,\n", + " 'rows': 67600.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Projection/307273/real_time',\n", + " 'family_index': 26,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Projection/307273/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 19,\n", + " 'real_time': 38239999.21013111,\n", + " 'cpu_time': 37998344.315789424,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760006.0,\n", + " 'output_rows': 307273.0,\n", + " 'plan_cost': 37487306.0,\n", + " 'rows': 307273.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Sort/38409/real_time',\n", + " 'family_index': 27,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Sort/38409/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 72,\n", + " 'real_time': 10169495.055177119,\n", + " 'cpu_time': 10119187.347222218,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6759984.0,\n", + " 'output_rows': 38409.0,\n", + " 'plan_cost': 10600884.0,\n", + " 'rows': 38409.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time',\n", + " 'family_index': 28,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 174,\n", + " 'real_time': 4172917.143655834,\n", + " 'cpu_time': 4152985.063218387,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 6760050.0,\n", + " 'output_rows': 13255.0,\n", + " 'plan_cost': 8085550.0,\n", + " 'rows': 13255.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time',\n", + " 'family_index': 29,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 204,\n", + " 'real_time': 2975623.8137077373,\n", + " 'cpu_time': 2955758.84803921,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 17114.0,\n", + " 'model_cost': 6760030.0,\n", + " 'output_rows': 17114.0,\n", + " 'plan_cost': 10182830.0,\n", + " 'rhs_rows': 17114.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time',\n", + " 'family_index': 30,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 121,\n", + " 'real_time': 5785900.01658852,\n", + " 'cpu_time': 5761547.933884307,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 311.0,\n", + " 'model_cost': 6770470.0,\n", + " 'output_rows': 311.0,\n", + " 'plan_cost': 6832670.0,\n", + " 'rhs_rows': 311.0},\n", + " {'name': 'OperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time',\n", + " 'family_index': 31,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 131,\n", + " 'real_time': 5343956.488694726,\n", + " 'cpu_time': 5282505.534351162,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 255.0,\n", + " 'model_cost': 6762600.0,\n", + " 'output_rows': 65025.0,\n", + " 'plan_cost': 6813600.0,\n", + " 'rhs_rows': 255.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time',\n", + " 'family_index': 32,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 94,\n", + " 'real_time': 7067010.638569085,\n", + " 'cpu_time': 7008813.021276589,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12250000.0,\n", + " 'output_rows': 122500.0,\n", + " 'plan_cost': 12250000.0,\n", + " 'rows': 122500.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Filter/122500/real_time',\n", + " 'family_index': 33,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Filter/122500/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 83,\n", + " 'real_time': 8754703.24080011,\n", + " 'cpu_time': 8704814.783132503,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12250000.0,\n", + " 'output_rows': 61440.0,\n", + " 'plan_cost': 24500000.0,\n", + " 'rows': 122500.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Projection/556818/real_time',\n", + " 'family_index': 34,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Projection/556818/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 10,\n", + " 'real_time': 74966987.99950537,\n", + " 'cpu_time': 74476933.0000004,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12249996.0,\n", + " 'output_rows': 556818.0,\n", + " 'plan_cost': 67931796.0,\n", + " 'rows': 556818.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Sort/65536/real_time',\n", + " 'family_index': 35,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Sort/65536/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 35,\n", + " 'real_time': 19754016.400215086,\n", + " 'cpu_time': 19632989.22857157,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12255232.0,\n", + " 'output_rows': 65536.0,\n", + " 'plan_cost': 18808832.0,\n", + " 'rows': 65536.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time',\n", + " 'family_index': 36,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 70,\n", + " 'real_time': 10917471.60036383,\n", + " 'cpu_time': 10837185.385714322,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 12250200.0,\n", + " 'output_rows': 24020.0,\n", + " 'plan_cost': 14652200.0,\n", + " 'rows': 24020.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time',\n", + " 'family_index': 37,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 106,\n", + " 'real_time': 6093818.783037418,\n", + " 'cpu_time': 6031365.8490565615,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 31013.0,\n", + " 'model_cost': 12250135.0,\n", + " 'output_rows': 31013.0,\n", + " 'plan_cost': 18452735.0,\n", + " 'rhs_rows': 31013.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time',\n", + " 'family_index': 38,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 70,\n", + " 'real_time': 10007415.528525598,\n", + " 'cpu_time': 9965044.400000015,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 418.0,\n", + " 'model_cost': 12230680.0,\n", + " 'output_rows': 418.0,\n", + " 'plan_cost': 12314280.0,\n", + " 'rhs_rows': 418.0},\n", + " {'name': 'OperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time',\n", + " 'family_index': 39,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 70,\n", + " 'real_time': 10467055.214186465,\n", + " 'cpu_time': 10353758.299999984,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 343.0,\n", + " 'model_cost': 12235496.0,\n", + " 'output_rows': 117649.0,\n", + " 'plan_cost': 12304096.0,\n", + " 'rhs_rows': 343.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time',\n", + " 'family_index': 40,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 42,\n", + " 'real_time': 16761908.238376714,\n", + " 'cpu_time': 16627440.904761907,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010000.0,\n", + " 'output_rows': 260100.0,\n", + " 'plan_cost': 26010000.0,\n", + " 'rows': 260100.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Filter/260100/real_time',\n", + " 'family_index': 41,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Filter/260100/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 36,\n", + " 'real_time': 19593865.166017268,\n", + " 'cpu_time': 19459568.388888985,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010000.0,\n", + " 'output_rows': 130052.0,\n", + " 'plan_cost': 52020000.0,\n", + " 'rows': 260100.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Projection/1182273/real_time',\n", + " 'family_index': 42,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Projection/1182273/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 5,\n", + " 'real_time': 159555687.20237353,\n", + " 'cpu_time': 158424515.1999994,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010006.0,\n", + " 'output_rows': 1182273.0,\n", + " 'plan_cost': 144237306.0,\n", + " 'rows': 1182273.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Sort/131364/real_time',\n", + " 'family_index': 43,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Sort/131364/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 13,\n", + " 'real_time': 56860475.53899698,\n", + " 'cpu_time': 56499320.46153886,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010072.0,\n", + " 'output_rows': 131364.0,\n", + " 'plan_cost': 39146472.0,\n", + " 'rows': 131364.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time',\n", + " 'family_index': 44,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 21,\n", + " 'real_time': 34235903.47630948,\n", + " 'cpu_time': 33978390.333333306,\n", + " 'time_unit': 'ns',\n", + " 'model_cost': 26010000.0,\n", + " 'output_rows': 51000.0,\n", + " 'plan_cost': 31110000.0,\n", + " 'rows': 51000.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time',\n", + " 'family_index': 45,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 47,\n", + " 'real_time': 15134376.276809564,\n", + " 'cpu_time': 15002296.74468074,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 65848.0,\n", + " 'model_cost': 26009960.0,\n", + " 'output_rows': 65848.0,\n", + " 'plan_cost': 39179560.0,\n", + " 'rhs_rows': 65848.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time',\n", + " 'family_index': 46,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 31,\n", + " 'real_time': 21153396.581329647,\n", + " 'cpu_time': 21080711.03225805,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 610.0,\n", + " 'model_cost': 26047000.0,\n", + " 'output_rows': 610.0,\n", + " 'plan_cost': 26169000.0,\n", + " 'rhs_rows': 610.0},\n", + " {'name': 'OperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time',\n", + " 'family_index': 47,\n", + " 'per_family_instance_index': 0,\n", + " 'run_name': 'OperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time',\n", + " 'run_type': 'iteration',\n", + " 'repetitions': 1,\n", + " 'repetition_index': 0,\n", + " 'threads': 1,\n", + " 'iterations': 31,\n", + " 'real_time': 22172262.903393038,\n", + " 'cpu_time': 21945665.74193559,\n", + " 'time_unit': 'ns',\n", + " 'lhs_rows': 500.0,\n", + " 'model_cost': 26000000.0,\n", + " 'output_rows': 250000.0,\n", + " 'plan_cost': 26100000.0,\n", + " 'rhs_rows': 500.0}]}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import json\n", "results = None\n", @@ -1767,7 +3638,7 @@ " Aggregation\n", " 1255\n", " NaN\n", - " 0.529187\n", + " 0.348253\n", " 640050.0\n", " 765550.0\n", " 7.812500e-05\n", @@ -1778,7 +3649,7 @@ " Filter\n", " 6400\n", " NaN\n", - " 0.508270\n", + " 0.407352\n", " 640000.0\n", " 1280000.0\n", " 0.000000e+00\n", @@ -1787,12 +3658,12 @@ " 5\n", " 640000\n", " HashJoin\n", - " 4638\n", - " 4638.0\n", - " 1.026885\n", - " 640044.0\n", - " 1567644.0\n", - " 6.875000e-05\n", + " 1620\n", + " 1620.0\n", + " 0.246864\n", + " 639900.0\n", + " 963900.0\n", + " 1.562500e-04\n", " \n", " \n", " 7\n", @@ -1800,7 +3671,7 @@ " NestedLoopCrossJoin\n", " 78\n", " 78.0\n", - " 0.527338\n", + " 0.399168\n", " 632736.0\n", " 648336.0\n", " 1.135000e-02\n", @@ -1811,7 +3682,7 @@ " NestedLoopJoin\n", " 96\n", " 96.0\n", - " 0.875389\n", + " 0.697766\n", " 645120.0\n", " 664320.0\n", " 8.000000e-03\n", @@ -1822,7 +3693,7 @@ " Projection\n", " 29091\n", " NaN\n", - " 4.068856\n", + " 3.320695\n", " 640002.0\n", " 3549102.0\n", " 3.125000e-06\n", @@ -1833,7 +3704,7 @@ " SeqScan\n", " 6400\n", " NaN\n", - " 0.532418\n", + " 0.309954\n", " 640000.0\n", " 640000.0\n", " 0.000000e+00\n", @@ -1844,7 +3715,7 @@ " Sort\n", " 4476\n", " NaN\n", - " 0.997566\n", + " 0.720259\n", " 640068.0\n", " 1087668.0\n", " 1.062500e-04\n", @@ -1855,7 +3726,7 @@ " Aggregation\n", " 1961\n", " NaN\n", - " 0.702024\n", + " 0.531581\n", " 1000110.0\n", " 1196210.0\n", " 1.100000e-04\n", @@ -1866,7 +3737,7 @@ " Filter\n", " 10000\n", " NaN\n", - " 0.861315\n", + " 0.657861\n", " 1000000.0\n", " 2000000.0\n", " 0.000000e+00\n", @@ -1875,12 +3746,12 @@ " 13\n", " 1000000\n", " HashJoin\n", - " 7246\n", - " 7246.0\n", - " 1.406982\n", - " 999948.0\n", - " 2449148.0\n", - " 5.200000e-05\n", + " 2532\n", + " 2532.0\n", + " 0.396404\n", + " 1000140.0\n", + " 1506540.0\n", + " 1.400000e-04\n", " \n", " \n", " 15\n", @@ -1888,7 +3759,7 @@ " NestedLoopCrossJoin\n", " 98\n", " 98.0\n", - " 0.735577\n", + " 0.592521\n", " 998816.0\n", " 1018416.0\n", " 1.184000e-03\n", @@ -1899,7 +3770,7 @@ " NestedLoopJoin\n", " 120\n", " 120.0\n", - " 1.204952\n", + " 0.982848\n", " 1008000.0\n", " 1032000.0\n", " 8.000000e-03\n", @@ -1910,7 +3781,7 @@ " Projection\n", " 45455\n", " NaN\n", - " 6.698145\n", + " 5.492013\n", " 1000010.0\n", " 5545510.0\n", " 1.000000e-05\n", @@ -1921,7 +3792,7 @@ " SeqScan\n", " 10000\n", " NaN\n", - " 0.507202\n", + " 0.380590\n", " 1000000.0\n", " 1000000.0\n", " 0.000000e+00\n", @@ -1932,7 +3803,7 @@ " Sort\n", " 6993\n", " NaN\n", - " 1.503435\n", + " 1.165643\n", " 999999.0\n", " 1699299.0\n", " 1.000000e-06\n", @@ -1943,7 +3814,7 @@ " Aggregation\n", " 6353\n", " NaN\n", - " 2.528047\n", + " 1.831355\n", " 3240030.0\n", " 3875330.0\n", " 9.259259e-06\n", @@ -1954,7 +3825,7 @@ " Filter\n", " 32400\n", " NaN\n", - " 2.615187\n", + " 2.130491\n", " 3240000.0\n", " 6480000.0\n", " 0.000000e+00\n", @@ -1963,12 +3834,12 @@ " 21\n", " 3240000\n", " HashJoin\n", - " 23478\n", - " 23478.0\n", - " 5.300551\n", - " 3239964.0\n", - " 7935564.0\n", - " 1.111111e-05\n", + " 8203\n", + " 8203.0\n", + " 1.297606\n", + " 3240185.0\n", + " 4880785.0\n", + " 5.709877e-05\n", " \n", " \n", " 23\n", @@ -1976,7 +3847,7 @@ " NestedLoopCrossJoin\n", " 177\n", " 177.0\n", - " 2.294554\n", + " 1.823392\n", " 3258216.0\n", " 3293616.0\n", " 5.622222e-03\n", @@ -1987,7 +3858,7 @@ " NestedLoopJoin\n", " 215\n", " 215.0\n", - " 3.440769\n", + " 2.799041\n", " 3235750.0\n", " 3278750.0\n", " 1.311728e-03\n", @@ -1998,7 +3869,7 @@ " Projection\n", " 147273\n", " NaN\n", - " 24.615070\n", + " 19.355047\n", " 3240006.0\n", " 17967306.0\n", " 1.851852e-06\n", @@ -2009,7 +3880,7 @@ " SeqScan\n", " 32400\n", " NaN\n", - " 1.552618\n", + " 1.145653\n", " 3240000.0\n", " 3240000.0\n", " 0.000000e+00\n", @@ -2020,7 +3891,7 @@ " Sort\n", " 19636\n", " NaN\n", - " 5.716537\n", + " 4.048476\n", " 3239940.0\n", " 5203540.0\n", " 1.851852e-05\n", @@ -2031,7 +3902,7 @@ " Aggregation\n", " 13255\n", " NaN\n", - " 5.687200\n", + " 4.172917\n", " 6760050.0\n", " 8085550.0\n", " 7.396450e-06\n", @@ -2042,7 +3913,7 @@ " Filter\n", " 67600\n", " NaN\n", - " 5.592034\n", + " 4.628039\n", " 6760000.0\n", " 13520000.0\n", " 0.000000e+00\n", @@ -2051,12 +3922,12 @@ " 29\n", " 6760000\n", " HashJoin\n", - " 48986\n", - " 48986.0\n", - " 13.564179\n", - " 6760068.0\n", - " 16557268.0\n", - " 1.005917e-05\n", + " 17114\n", + " 17114.0\n", + " 2.975624\n", + " 6760030.0\n", + " 10182830.0\n", + " 4.437870e-06\n", " \n", " \n", " 31\n", @@ -2064,7 +3935,7 @@ " NestedLoopCrossJoin\n", " 255\n", " 255.0\n", - " 6.012240\n", + " 5.343956\n", " 6762600.0\n", " 6813600.0\n", " 3.846154e-04\n", @@ -2075,7 +3946,7 @@ " NestedLoopJoin\n", " 311\n", " 311.0\n", - " 7.198310\n", + " 5.785900\n", " 6770470.0\n", " 6832670.0\n", " 1.548817e-03\n", @@ -2086,7 +3957,7 @@ " Projection\n", " 307273\n", " NaN\n", - " 51.498743\n", + " 38.239999\n", " 6760006.0\n", " 37487306.0\n", " 8.875740e-07\n", @@ -2097,7 +3968,7 @@ " SeqScan\n", " 67600\n", " NaN\n", - " 4.220053\n", + " 3.559425\n", " 6760000.0\n", " 6760000.0\n", " 0.000000e+00\n", @@ -2108,7 +3979,7 @@ " Sort\n", " 38409\n", " NaN\n", - " 12.802465\n", + " 10.169495\n", " 6759984.0\n", " 10600884.0\n", " 2.366864e-06\n", @@ -2119,7 +3990,7 @@ " Aggregation\n", " 24020\n", " NaN\n", - " 15.047581\n", + " 10.917472\n", " 12250200.0\n", " 14652200.0\n", " 1.632653e-05\n", @@ -2130,7 +4001,7 @@ " Filter\n", " 122500\n", " NaN\n", - " 10.313976\n", + " 8.754703\n", " 12250000.0\n", " 24500000.0\n", " 0.000000e+00\n", @@ -2139,12 +4010,12 @@ " 37\n", " 12250000\n", " HashJoin\n", - " 88768\n", - " 88768.0\n", - " 25.706484\n", - " 12249984.0\n", - " 30003584.0\n", - " 1.306122e-06\n", + " 31013\n", + " 31013.0\n", + " 6.093819\n", + " 12250135.0\n", + " 18452735.0\n", + " 1.102041e-05\n", " \n", " \n", " 39\n", @@ -2152,7 +4023,7 @@ " NestedLoopCrossJoin\n", " 343\n", " 343.0\n", - " 12.634892\n", + " 10.467055\n", " 12235496.0\n", " 12304096.0\n", " 1.184000e-03\n", @@ -2163,7 +4034,7 @@ " NestedLoopJoin\n", " 418\n", " 418.0\n", - " 12.686905\n", + " 10.007416\n", " 12230680.0\n", " 12314280.0\n", " 1.577143e-03\n", @@ -2174,7 +4045,7 @@ " Projection\n", " 556818\n", " NaN\n", - " 90.203371\n", + " 74.966988\n", " 12249996.0\n", " 67931796.0\n", " 3.265306e-07\n", @@ -2185,7 +4056,7 @@ " SeqScan\n", " 122500\n", " NaN\n", - " 7.610143\n", + " 7.067011\n", " 12250000.0\n", " 12250000.0\n", " 0.000000e+00\n", @@ -2196,7 +4067,7 @@ " Sort\n", " 65536\n", " NaN\n", - " 26.495662\n", + " 19.754016\n", " 12255232.0\n", " 18808832.0\n", " 4.271020e-04\n", @@ -2207,7 +4078,7 @@ " Aggregation\n", " 51000\n", " NaN\n", - " 48.595095\n", + " 34.235903\n", " 26010000.0\n", " 31110000.0\n", " 0.000000e+00\n", @@ -2218,7 +4089,7 @@ " Filter\n", " 260100\n", " NaN\n", - " 26.934394\n", + " 19.593865\n", " 26010000.0\n", " 52020000.0\n", " 0.000000e+00\n", @@ -2227,12 +4098,12 @@ " 45\n", " 26010000\n", " HashJoin\n", - " 188478\n", - " 188478.0\n", - " 52.584297\n", - " 26009964.0\n", - " 63705564.0\n", - " 1.384083e-06\n", + " 65848\n", + " 65848.0\n", + " 15.134376\n", + " 26009960.0\n", + " 39179560.0\n", + " 1.537870e-06\n", " \n", " \n", " 47\n", @@ -2240,7 +4111,7 @@ " NestedLoopCrossJoin\n", " 500\n", " 500.0\n", - " 30.993358\n", + " 22.172263\n", " 26000000.0\n", " 26100000.0\n", " 3.844675e-04\n", @@ -2251,7 +4122,7 @@ " NestedLoopJoin\n", " 610\n", " 610.0\n", - " 25.448562\n", + " 21.153397\n", " 26047000.0\n", " 26169000.0\n", " 1.422530e-03\n", @@ -2262,7 +4133,7 @@ " Projection\n", " 1182273\n", " NaN\n", - " 202.987386\n", + " 159.555687\n", " 26010006.0\n", " 144237306.0\n", " 2.306805e-07\n", @@ -2273,7 +4144,7 @@ " SeqScan\n", " 260100\n", " NaN\n", - " 18.734465\n", + " 16.761908\n", " 26010000.0\n", " 26010000.0\n", " 0.000000e+00\n", @@ -2284,7 +4155,7 @@ " Sort\n", " 131364\n", " NaN\n", - " 74.202993\n", + " 56.860476\n", " 26010072.0\n", " 39146472.0\n", " 2.768166e-06\n", @@ -2295,59 +4166,59 @@ ], "text/plain": [ " target_cost operator left_rows right_rows real_time_ms \\\n", - "4 640000 Aggregation 1255 NaN 0.529187 \n", - "1 640000 Filter 6400 NaN 0.508270 \n", - "5 640000 HashJoin 4638 4638.0 1.026885 \n", - "7 640000 NestedLoopCrossJoin 78 78.0 0.527338 \n", - "6 640000 NestedLoopJoin 96 96.0 0.875389 \n", - "2 640000 Projection 29091 NaN 4.068856 \n", - "0 640000 SeqScan 6400 NaN 0.532418 \n", - "3 640000 Sort 4476 NaN 0.997566 \n", - "12 1000000 Aggregation 1961 NaN 0.702024 \n", - "9 1000000 Filter 10000 NaN 0.861315 \n", - "13 1000000 HashJoin 7246 7246.0 1.406982 \n", - "15 1000000 NestedLoopCrossJoin 98 98.0 0.735577 \n", - "14 1000000 NestedLoopJoin 120 120.0 1.204952 \n", - "10 1000000 Projection 45455 NaN 6.698145 \n", - "8 1000000 SeqScan 10000 NaN 0.507202 \n", - "11 1000000 Sort 6993 NaN 1.503435 \n", - "20 3240000 Aggregation 6353 NaN 2.528047 \n", - "17 3240000 Filter 32400 NaN 2.615187 \n", - "21 3240000 HashJoin 23478 23478.0 5.300551 \n", - "23 3240000 NestedLoopCrossJoin 177 177.0 2.294554 \n", - "22 3240000 NestedLoopJoin 215 215.0 3.440769 \n", - "18 3240000 Projection 147273 NaN 24.615070 \n", - "16 3240000 SeqScan 32400 NaN 1.552618 \n", - "19 3240000 Sort 19636 NaN 5.716537 \n", - "28 6760000 Aggregation 13255 NaN 5.687200 \n", - "25 6760000 Filter 67600 NaN 5.592034 \n", - "29 6760000 HashJoin 48986 48986.0 13.564179 \n", - "31 6760000 NestedLoopCrossJoin 255 255.0 6.012240 \n", - "30 6760000 NestedLoopJoin 311 311.0 7.198310 \n", - "26 6760000 Projection 307273 NaN 51.498743 \n", - "24 6760000 SeqScan 67600 NaN 4.220053 \n", - "27 6760000 Sort 38409 NaN 12.802465 \n", - "36 12250000 Aggregation 24020 NaN 15.047581 \n", - "33 12250000 Filter 122500 NaN 10.313976 \n", - "37 12250000 HashJoin 88768 88768.0 25.706484 \n", - "39 12250000 NestedLoopCrossJoin 343 343.0 12.634892 \n", - "38 12250000 NestedLoopJoin 418 418.0 12.686905 \n", - "34 12250000 Projection 556818 NaN 90.203371 \n", - "32 12250000 SeqScan 122500 NaN 7.610143 \n", - "35 12250000 Sort 65536 NaN 26.495662 \n", - "44 26010000 Aggregation 51000 NaN 48.595095 \n", - "41 26010000 Filter 260100 NaN 26.934394 \n", - "45 26010000 HashJoin 188478 188478.0 52.584297 \n", - "47 26010000 NestedLoopCrossJoin 500 500.0 30.993358 \n", - "46 26010000 NestedLoopJoin 610 610.0 25.448562 \n", - "42 26010000 Projection 1182273 NaN 202.987386 \n", - "40 26010000 SeqScan 260100 NaN 18.734465 \n", - "43 26010000 Sort 131364 NaN 74.202993 \n", + "4 640000 Aggregation 1255 NaN 0.348253 \n", + "1 640000 Filter 6400 NaN 0.407352 \n", + "5 640000 HashJoin 1620 1620.0 0.246864 \n", + "7 640000 NestedLoopCrossJoin 78 78.0 0.399168 \n", + "6 640000 NestedLoopJoin 96 96.0 0.697766 \n", + "2 640000 Projection 29091 NaN 3.320695 \n", + "0 640000 SeqScan 6400 NaN 0.309954 \n", + "3 640000 Sort 4476 NaN 0.720259 \n", + "12 1000000 Aggregation 1961 NaN 0.531581 \n", + "9 1000000 Filter 10000 NaN 0.657861 \n", + "13 1000000 HashJoin 2532 2532.0 0.396404 \n", + "15 1000000 NestedLoopCrossJoin 98 98.0 0.592521 \n", + "14 1000000 NestedLoopJoin 120 120.0 0.982848 \n", + "10 1000000 Projection 45455 NaN 5.492013 \n", + "8 1000000 SeqScan 10000 NaN 0.380590 \n", + "11 1000000 Sort 6993 NaN 1.165643 \n", + "20 3240000 Aggregation 6353 NaN 1.831355 \n", + "17 3240000 Filter 32400 NaN 2.130491 \n", + "21 3240000 HashJoin 8203 8203.0 1.297606 \n", + "23 3240000 NestedLoopCrossJoin 177 177.0 1.823392 \n", + "22 3240000 NestedLoopJoin 215 215.0 2.799041 \n", + "18 3240000 Projection 147273 NaN 19.355047 \n", + "16 3240000 SeqScan 32400 NaN 1.145653 \n", + "19 3240000 Sort 19636 NaN 4.048476 \n", + "28 6760000 Aggregation 13255 NaN 4.172917 \n", + "25 6760000 Filter 67600 NaN 4.628039 \n", + "29 6760000 HashJoin 17114 17114.0 2.975624 \n", + "31 6760000 NestedLoopCrossJoin 255 255.0 5.343956 \n", + "30 6760000 NestedLoopJoin 311 311.0 5.785900 \n", + "26 6760000 Projection 307273 NaN 38.239999 \n", + "24 6760000 SeqScan 67600 NaN 3.559425 \n", + "27 6760000 Sort 38409 NaN 10.169495 \n", + "36 12250000 Aggregation 24020 NaN 10.917472 \n", + "33 12250000 Filter 122500 NaN 8.754703 \n", + "37 12250000 HashJoin 31013 31013.0 6.093819 \n", + "39 12250000 NestedLoopCrossJoin 343 343.0 10.467055 \n", + "38 12250000 NestedLoopJoin 418 418.0 10.007416 \n", + "34 12250000 Projection 556818 NaN 74.966988 \n", + "32 12250000 SeqScan 122500 NaN 7.067011 \n", + "35 12250000 Sort 65536 NaN 19.754016 \n", + "44 26010000 Aggregation 51000 NaN 34.235903 \n", + "41 26010000 Filter 260100 NaN 19.593865 \n", + "45 26010000 HashJoin 65848 65848.0 15.134376 \n", + "47 26010000 NestedLoopCrossJoin 500 500.0 22.172263 \n", + "46 26010000 NestedLoopJoin 610 610.0 21.153397 \n", + "42 26010000 Projection 1182273 NaN 159.555687 \n", + "40 26010000 SeqScan 260100 NaN 16.761908 \n", + "43 26010000 Sort 131364 NaN 56.860476 \n", "\n", " model_cost plan_cost matching_error \n", "4 640050.0 765550.0 7.812500e-05 \n", "1 640000.0 1280000.0 0.000000e+00 \n", - "5 640044.0 1567644.0 6.875000e-05 \n", + "5 639900.0 963900.0 1.562500e-04 \n", "7 632736.0 648336.0 1.135000e-02 \n", "6 645120.0 664320.0 8.000000e-03 \n", "2 640002.0 3549102.0 3.125000e-06 \n", @@ -2355,7 +4226,7 @@ "3 640068.0 1087668.0 1.062500e-04 \n", "12 1000110.0 1196210.0 1.100000e-04 \n", "9 1000000.0 2000000.0 0.000000e+00 \n", - "13 999948.0 2449148.0 5.200000e-05 \n", + "13 1000140.0 1506540.0 1.400000e-04 \n", "15 998816.0 1018416.0 1.184000e-03 \n", "14 1008000.0 1032000.0 8.000000e-03 \n", "10 1000010.0 5545510.0 1.000000e-05 \n", @@ -2363,7 +4234,7 @@ "11 999999.0 1699299.0 1.000000e-06 \n", "20 3240030.0 3875330.0 9.259259e-06 \n", "17 3240000.0 6480000.0 0.000000e+00 \n", - "21 3239964.0 7935564.0 1.111111e-05 \n", + "21 3240185.0 4880785.0 5.709877e-05 \n", "23 3258216.0 3293616.0 5.622222e-03 \n", "22 3235750.0 3278750.0 1.311728e-03 \n", "18 3240006.0 17967306.0 1.851852e-06 \n", @@ -2371,7 +4242,7 @@ "19 3239940.0 5203540.0 1.851852e-05 \n", "28 6760050.0 8085550.0 7.396450e-06 \n", "25 6760000.0 13520000.0 0.000000e+00 \n", - "29 6760068.0 16557268.0 1.005917e-05 \n", + "29 6760030.0 10182830.0 4.437870e-06 \n", "31 6762600.0 6813600.0 3.846154e-04 \n", "30 6770470.0 6832670.0 1.548817e-03 \n", "26 6760006.0 37487306.0 8.875740e-07 \n", @@ -2379,7 +4250,7 @@ "27 6759984.0 10600884.0 2.366864e-06 \n", "36 12250200.0 14652200.0 1.632653e-05 \n", "33 12250000.0 24500000.0 0.000000e+00 \n", - "37 12249984.0 30003584.0 1.306122e-06 \n", + "37 12250135.0 18452735.0 1.102041e-05 \n", "39 12235496.0 12304096.0 1.184000e-03 \n", "38 12230680.0 12314280.0 1.577143e-03 \n", "34 12249996.0 67931796.0 3.265306e-07 \n", @@ -2387,7 +4258,7 @@ "35 12255232.0 18808832.0 4.271020e-04 \n", "44 26010000.0 31110000.0 0.000000e+00 \n", "41 26010000.0 52020000.0 0.000000e+00 \n", - "45 26009964.0 63705564.0 1.384083e-06 \n", + "45 26009960.0 39179560.0 1.537870e-06 \n", "47 26000000.0 26100000.0 3.844675e-04 \n", "46 26047000.0 26169000.0 1.422530e-03 \n", "42 26010006.0 144237306.0 2.306805e-07 \n", @@ -2425,7 +4296,7 @@ "outputs": [ { "data": { - "image/png": "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+1WiRAk1dOhQ9eeff6r169er1NRUNX36dKXRaNSgQYPUli1b1MaNG1WDBg2UtbW1OnPmTIY6OnTooH7//Xe1cuVKVbZsWeXu7q48PDyyPa7Hjx9XXl5eqmbNmurgwYPq4MGD6vjx40oppSIjIxWgli5dqis/adIkBagKFSqoadOmqR07dqiPP/5YAer9999XFStWVN9++63asWOHGjhwoALUhg0bdNvHx8erGjVqqKJFi6q5c+eqnTt3qm+++UbZ29urZs2aKa1Wm2WsJ06cUID66aef9JZHRUUpc3NzNXr0aF3cFhYWqkWLFiooKEgFBwerVatWqX79+qmoqKhsj4eHh4cqUaKEKlWqlFqyZInaunWr6tOnjwLUnDlzdOUyOzYhISFqzJgxav369SokJERt2rRJdezYUVlaWqp//vlHV27Pnj0KUJ6enqpPnz7qjz/+UL/88osqVaqUKleunEpNTc02xiddv35dubq66h3PtWvXqkGDBqmzZ88qpZS6c+eOKlGihCpWrJhauHCh2rZtm3r//fcVoN59911dXb/88osC1IgRI9T27dvVzp071cKFC9XIkSN19cyYMUMB6vvvv9edL3fu3Mk0tosXL6rvv/9eAWrGjBnq4MGDuvN21apVClBvvvmmCgoKUmvXrlW1atVSZmZmat++fbo60s83Dw8PNW7cOLVjxw4VFBSU5fFIP7ZPvhZz21Z4eLiysbFRnp6eauHChWrXrl1q5cqVqnv37io2NlYppdQ///yj3n33XbVmzRoVHBystmzZogYPHqyMjIz02lQq6/eAp6W/b1lbW6upU6eqv/76S23YsEF98MEHavfu3UoppR49eqSqVaumrK2t1Zdffqm2b9+uPvvsM2ViYqLatGmjqys0NFRpNBrVs2dPtXXrVrV79261dOlS1a9fP6WUUjExMbr3i//973+65/DatWvZxvi8r/vo6GgVEBCgVqxYoXbv3q22bdumxo4dq4yMjNSyZct05Q4ePKgsLS1VmzZtdLGlnzO5Odfz8tpasWKF0mg0qmPHjmrjxo3q999/V+3atVPGxsZq586dunI7d+5UxsbG6o033lAbN25Uv/76q6pTp44qVaqUys1Xp/TXTK9evdQff/yhli9frry8vJS9vb06f/68rtyAAQOUmZmZKlWqlJo+fbravn27mjx5sjIxMVHt2rXTq3PIkCHK1NRUjRkzRm3btk2tXr1aVaxYUTk7O6tbt27pyvn5+SlHR0fl7u6u5s+fr/bs2aNCQkKUUrn7vLt48aLq2rWrAnTPx8GDB1ViYqLSarWqZcuWysTERH322Wdq+/bt6ssvv1TW1taqZs2aKjExUVePh4eHcnV1VV5eXmrJkiVqz5496siRIzmer6Jwk8RCvNSeTCzSPzxOnz6tlFKqTp06KiAgQCmlMiQW6V+WnvyQU0qpo0ePKkD98MMPmban1WpVSkqKCgkJUYA6ceKEUkqpe/fuKUDNmzcv23jzmlj0799fr9zVq1eViYmJGjFihN7yhw8fKhcXF9W9e3el1OPEyc3NTfn4+Oh9Kb98+bIyNTXNMbFQKuMxS5ddYvHVV1/pla1Ro4YC1MaNG3XLUlJSVLFixVTnzp11y7744gtlZGSkjh49qrf9+vXrFaC2bt2abaw+Pj6qYcOGest++OEHBahTp07p1RUeHp5tXZnx8PBQGo0mw7YtWrRQdnZ2Kj4+XimV+bF5WmpqqkpOTlblypVTH374oW55+vn75BdCpZRat26d7gM8twYNGqRMTU1VRERElmXGjx+vAHX48GG95e+++67SaDTq3LlzSiml3n//feXg4JBte7/++muGL+7ZSd/XX3/9Vbcs/Zz19vZWaWlpuuUPHz5UxYsX13t+08+3iRMn5qm99Pjy0lazZs2Ug4NDlolSZlJTU1VKSory9/dXnTp10luX28Ri6tSpClA7duzIsszChQsVoNatW6e3fNasWQpQ27dvV0op9eWXXypARUdHZ1lX+ntfdufu0573df+09OM2ePBgVbNmTb111tbWeu+R6XJzruf2tRUfH68cHR1V+/bt9cqlpaWp6tWr6/1wVa9ePeXm5qYePXqkWxYbG6scHR1zTCyioqJ0idKTrl69qszNzVXv3r11ywYMGKAA9c033+iVnT59ugLU/v37lVKPk6/Mnotr164pS0tL9fHHH+uW+fn5KUDt2rUr2ziz+rxTSqn33nsv0/3ctm2bAtTs2bP1lq9du1YB6scff9Qt8/DwUMbGxrr3mnS5OV9F4SVDoUSh4efnR5kyZViyZAmnTp3i6NGjWXadbtmyBQcHB9q3b09qaqrur0aNGri4uOjNHvPvv//Su3dvXFxcMDY2xtTUFD8/PwBdt7WjoyNlypRhzpw5zJ07l7///jvDcJJn0aVLF73Hf/31F6mpqfTv318vbgsLC/z8/HRxnzt3jhs3btC7d2+9GUo8PDxo2LDhc8eVlXbt2uk9rlSpEhqNhtatW+uWmZiYULZsWa5cuaJbtmXLFqpWrUqNGjX09qtly5a5ms1n4MCBhIaG6g1rWLp0KXXq1KFq1aoA1KhRAzMzM4YOHcqyZcsyDA/ISZUqVahevbrest69exMbG8vx48ez3C41NZUZM2ZQuXJlzMzMMDExwczMjAsXLmQY9gDw1ltv6T2uVq0agN7xysmff/5J06ZNqVSpUpZldu/eTeXKlalbt67e8oCAAJRS7N69G4C6desSHR1Nr169+O2337h3716u48iL9HO2X79+GBn930ePjY0NXbp04dChQxmGfjz9+sjvthISEggJCaF79+45XlO0cOFCfHx8sLCwwMTEBFNTU3bt2pXpc/ykJ8/31NRU3XVUf/75J+XLl6d58+ZZbrt7926sra3p2rWr3vL0YZXpw3fShzl1796ddevW8d9//2Ub05OUUhlifNqzvu7h8ZAXX19fbGxsdMdt8eLFOR63dLk519Pl9NoKDQ3lwYMHDBgwQG9/tVotrVq14ujRo8THxxMfH8/Ro0fp3LkzFhYWuvpsbW1p3759jnEcPHiQR48e6Q1/BXB3d6dZs2aZDrvq06eP3uPevXsDsGfPHuDxe6hGo6Fv3756sbu4uFC9evUM76FFihShWbNmGdrJzedddtLfN57et27dumFtbZ1h36pVq5Zh4obnOV/Fy08SC1FoaDQaBg4cyMqVK1m4cCHly5enUaNGmZa9ffs20dHRmJmZYWpqqvd369Yt3ZenuLg4GjVqxOHDh/n8888JDg7m6NGjbNy4Efi/C800Gg27du2iZcuWzJ49Gx8fH4oVK8bIkSN5+PDhM++Tq6trhrjh8Rvv03GvXbtWF/f9+/cBcHFxyVBnZsvyi6Ojo95jMzMzrKys9D5805cnJibqHt++fZuTJ09m2CdbW1uUUjl+me3Tpw/m5ua6cf0REREcPXqUgQMH6sqUKVOGnTt3Urx4cd577z3KlClDmTJl+Oabb3K1b9kdy/TjnZnRo0fz2Wef0bFjR37//XcOHz7M0aNHqV69eqYXKjo5Oek9Njc3B/J2UePdu3cpWbJktmXu37+f4fwCcHNz060H6NevH0uWLOHKlSt06dKF4sWLU69ePXbs2JHreHIjvb2sYtJqtURFRektz6xsfrYVFRVFWlpajsdy7ty5vPvuu9SrV48NGzZw6NAhjh49SqtWrXJ83p4+55ctWwbk/jl0cXHJML1p8eLFMTEx0e1n48aNCQoK0v0oUbJkSapWrap3TVpWQkJCMsT49Oxfz/q637hxI927d6dEiRKsXLmSgwcP6n4QerJcdnJznNLl9NpKf3/t2rVrhn2eNWsWSikePHhAVFQUWq32md9fczr/nn4/MTExyRD70+89t2/fRimFs7NzhtgPHTqU4T00s7Zz+3mX076ZmJhkSMQ1Gg0uLi4Z9i2zOJ7nfBUvPxNDByBEXgQEBDBx4kQWLlzI9OnTsyxXtGhRnJyc2LZtW6br06en3b17Nzdu3CA4OFj3qw2Q4SI0eNwbkD7l7fnz51m3bh2TJ08mOTmZhQsXAo8/yJ6+qBKy/mL69BeGokWLArB+/Xo8PDyy3L/0D6Fbt25lWJfZMkMrWrQolpaWLFmyJMv12SlSpAgdOnRg+fLlfP755yxduhQLCwvdRf3pGjVqRKNGjUhLS+PYsWPMnz+fUaNG4ezsTM+ePbNtI7tj+fSH/pNWrlxJ//79mTFjht7ye/fu4eDgkG2bz6pYsWJcv3492zJOTk7cvHkzw/IbN24A+sd84MCBDBw4kPj4ePbu3cukSZNo164d58+fz/Y8zIv0Y5hVTEZGRhQpUkRv+bPeLyC3bWk0GoyNjXM8litXrqRJkyYsWLBAb3luflQ4evSo3uPSpUsDuX8ODx8+jFJK71jcuXOH1NRUveewQ4cOdOjQgaSkJA4dOsQXX3xB79698fT0pEGDBlm2UatWrQwxpiefz2vlypWULl2atWvX6sWf2XtkVnJznHIr/XjNnz+f+vXrZ1omfTIIjUbzzO+vOZ1/T7/fpaamcv/+fb33maffe4oWLYpGo2Hfvn26hOlJTy/L7LWTl8+7rDg5OZGamsrdu3f1kgulFLdu3dL1RmQXBzz7+SpeftJjIQqVEiVK8NFHH9G+fXsGDBiQZbl27dpx//590tLSqF27doa/ChUqAP/3pvf0m/KiRYuyjaN8+fL873//w9vbW2+YjKenJydPntQru3v3buLi4nK1fy1btsTExIRLly5lGnft2rUBqFChAq6urvzyyy96U9ReuXKF0NDQXLVlbm7+wqb+a9euHZcuXcLJySnTfcrNDf0GDhzIjRs32Lp1KytXrqRTp05ZfnE3NjamXr16uplNshvKlO7MmTOcOHFCb9nq1auxtbXFx8cny+00Gk2G8+ePP/4o0O791q1bs2fPnmxnk/L39yciIiLDvi9fvhyNRkPTpk0zbGNtbU3r1q359NNPSU5O5syZM8Cz9ao8rUKFCpQoUYLVq1frnbPx8fFs2LBBN3tTfshtW5aWlvj5+fHrr79m22uW2XN88uTJTGeYetrT53r6F8XWrVtz/vx53dCSzPj7+xMXF5fh/g7ps7/5+/tn2Mbc3Bw/Pz9mzZoFoJtNLqvn0NbWNkOMZmZmOe5Xbmg0GszMzPS+XN66dSvDrFDp8WV2fuXmXM8tX19fHBwciIiIyPL91czMDGtra+rWrcvGjRv1elYePnzI77//nmM7DRo0wNLSkpUrV+otv379Ort37870eVu1apXe49WrVwPoZsdq164dSin++++/TOP29vbOMa68fN5ldb6kx/70vm3YsIH4+PhM9y07WZ2vovCSHgtR6MycOTPHMj179mTVqlW0adOGDz74gLp162Jqasr169fZs2cPHTp0oFOnTjRs2JAiRYrwzjvvMGnSJExNTVm1alWGL5gnT57k/fffp1u3bpQrVw4zMzN2797NyZMnGT9+vK5cv379+Oyzz5g4cSJ+fn5ERETw3XffYW9vn6t98/T0ZOrUqXz66af8+++/tGrViiJFinD79m2OHDmCtbU1U6ZMwcjIiGnTpvH222/TqVMnhgwZQnR0NJMnT871UChvb2/WrFnD2rVr8fLywsLCIlcfTs9i1KhRbNiwgcaNG/Phhx9SrVo1tFotV69eZfv27YwZM4Z69eplW8ebb75JyZIlGT58OLdu3dIbBgWPx8Dv3r2btm3bUqpUKRITE3U9JNmNY0/n5ubGW2+9xeTJk3F1dWXlypXs2LGDWbNmZfuFt127dgQGBlKxYkWqVatGWFgYc+bMyfXwjWcxdepU/vzzTxo3bsyECRPw9vYmOjqabdu2MXr0aCpWrMiHH37I8uXLadu2LVOnTsXDw4M//viDH374gXfffVc37nnIkCFYWlri6+uLq6srt27d4osvvsDe3l7362P6dSw//vgjtra2WFhYULp06Wx7cp5mZGTE7Nmz6dOnD+3atWPYsGEkJSUxZ84coqOjc/W6Loi25s6dyxtvvEG9evUYP348ZcuW5fbt22zevJlFixZha2tLu3btmDZtGpMmTcLPz49z584xdepUSpcunek1CbkxatQo1q5dS4cOHRg/fjx169bl0aNHhISE0K5dO5o2bUr//v35/vvvGTBgAJcvX8bb25v9+/czY8YM2rRpozuvJ06cyPXr1/H396dkyZJER0fzzTff6I2fL1OmDJaWlqxatYpKlSphY2ODm5tbvvVOZCZ9qtHhw4fTtWtXrl27xrRp03B1deXChQt6Zb29vQkODub333/H1dUVW1tbKlSokKtzPbdsbGyYP38+AwYM4MGDB3Tt2pXixYtz9+5dTpw4wd27d3W9UtOmTaNVq1a0aNGCMWPGkJaWxqxZs7C2tubBgwfZtuPg4MBnn33GhAkT6N+/P7169eL+/ftMmTIFCwsLJk2apFfezMyMr776iri4OOrUqUNoaCiff/45rVu31k3d7Ovry9ChQxk4cCDHjh2jcePGWFtbc/PmTfbv34+3tzfvvvtutnHl9vMu/fkAmDVrFq1bt8bY2Jhq1arRokULWrZsybhx44iNjcXX15eTJ08yadIkatasSb9+/XJ8HnJzvopCzDDXjAuRO0/OCpWdzGY4SklJUV9++aWqXr26srCwUDY2NqpixYpq2LBh6sKFC7pyoaGhqkGDBsrKykoVK1ZMvf322+r48eN6M6jcvn1bBQQEqIoVKypra2tlY2OjqlWrpr7++mu9qQyTkpLUxx9/rNzd3ZWlpaXy8/NT4eHhWc4KldV+BQUFqaZNmyo7Oztlbm6uPDw8VNeuXfWmQ1RKqZ9//lmVK1dOmZmZqfLly6slS5aoAQMG5GpWqMuXL6s333xT2dra6qb2VCr7WaHu3r2rV8eAAQOUtbV1hrr9/PxUlSpV9JbFxcWp//3vf6pChQrKzMxM2dvbK29vb/Xhhx/qTZWYnQkTJihAubu76832o9TjWVM6deqkPDw8lLm5uXJyclJ+fn5q8+bNOdbr4eGh2rZtq9avX6+qVKmizMzMlKenp5o7d65eucyOTVRUlBo8eLAqXry4srKyUm+88Ybat2+f8vPz0zsnM5spKas6c+PatWtq0KBBysXFRZmamio3NzfVvXt3dfv2bV2ZK1euqN69eysnJydlamqqKlSooObMmaN37JYtW6aaNm2qnJ2dlZmZma6ekydP6rU3b948Vbp0aWVsbJxjvFntq1KPz+169eopCwsLZW1trfz9/dWBAwf0ymR1vuXU3tOzVuWmLaWUioiIUN26dVNOTk66qT8DAgJ0U2cmJSWpsWPHqhIlSigLCwvl4+OjgoKCMn2tkctZoZR6fO588MEHqlSpUsrU1FQVL15ctW3bVm+a4vv376t33nlHubq6KhMTE+Xh4aE++eQTvWk9t2zZolq3bq1KlCihzMzMVPHixVWbNm30ptVV6vFseRUrVlSmpqa5ijM/XvczZ85Unp6eytzcXFWqVEn99NNPunqfFB4ernx9fZWVlZUC9F47OZ3reX1thYSEqLZt2ypHR0dlamqqSpQoodq2bZth+82bN6tq1arpzomZM2dmGntWfv75Z9329vb2qkOHDnpThj95LE+ePKmaNGmiLC0tlaOjo3r33XdVXFxchjqXLFmi6tWrp6ytrZWlpaUqU6aM6t+/vzp27JiuTGbPQ7rcfN4p9ficf/vtt1WxYsWURqNRgIqMjFRKPZ4Gedy4ccrDw0OZmpoqV1dX9e6772aY1jv9ffVpuT1fReGkUeoluNWvEEIYkKenJ1WrVmXLli2GDkUI8RoJCAhg/fr1uR4uK8TLTq6xEEIIIYQQQjw3ucZCCCFeEkop0tLSsi1jbGz8zLMlCSGEEAVJhkIJIcRLIjAwMMNF6U/bs2ePbqYYIYQQ4mUiiYUQQrwk7t+/T2RkZLZlKlSooLsPixBCCPEykcRCCCGEEEII8dzk4m0hhBBCCCHEc5OLtwGtVsuNGzewtbWViyKFEEIIIYT4/5RSPHz4EDc3N4yMsu+TkMQCuHHjBu7u7oYOQwghhBBCiJfStWvXKFmyZLZlJLEA3YWQ165dw87OzsDRCCGEEEII8XKIjY3F3d09VxOHSGIBuuFPdnZ2klgIIYQQQgjxlNxcLiAXbwshhBBCCCGemyQWQgghhBBCiOcmiYUQQgghhBDiuck1FnmQlpZGSkqKocMQwiDMzMxynGZOCCGEEK8vSSxyQSnFrVu3iI6ONnQoQhiMkZERpUuXxszMzNChCCGEEOIlJIlFLqQnFcWLF8fKykpuoideO+k3kbx58yalSpWS14AQQgghMpDEIgdpaWm6pMLJycnQ4QhhMMWKFePGjRukpqZiampq6HCEEEII8ZKRAdM5SL+mwsrKysCRCGFY6UOg0tLSDByJEEIIIV5Gkljkkgz9EK87eQ0IIYQQIjuSWAghhBBCCCGemyQW4pU0efJkatSoYegwhBBCCCFeG5JYvCBpWsXBS/f5Lfw/Dl66T5pWvbC2Q0NDMTY2plWrVi+szRdJo9EQFBSkt2zs2LHs2rXLMAEJIYQQQuQDrTaNa2dOcvZACNfOnESrfbmvc5RZoV6AbadvMuX3CG7GJOqWudpbMKl9ZVpVdS3w9pcsWcKIESP4+eefuXr1KqVKlSrQ9lJSUgw+a5CNjQ02NjYGjUEIIYQQ4lldOBzK7sAfiXtwT7fMxrEozQKGUq5eQwNGljXpsShg207f5N2Vx/WSCoBbMYm8u/I4207fLND24+PjWbduHe+++y7t2rUjMDBQb/3mzZspV64clpaWNG3alGXLlqHRaPRuBvjTTz/h7u6OlZUVnTp1Yu7cuTg4OOjWpw87WrJkCV5eXpibm6OUIiYmhqFDh1K8eHHs7Oxo1qwZJ06c0Gv/888/p3jx4tja2vL2228zfvx4vSFMR48epUWLFhQtWhR7e3v8/Pw4fvy4br2npycAnTp1QqPR6B4/PRRKq9UydepUSpYsibm5OTVq1GDbtm269ZcvX0aj0bBx40aaNm2KlZUV1atX5+DBg8903IUQQgghntWFw6FsnjtDL6kAiHtwj81zZ3DhcKiBIsueJBbPQClFQnJqjn8PE1OYtPkMmQ16Sl82eXMEDxNTclWfUnkfPrV27VoqVKhAhQoV6Nu3L0uXLtXVc/nyZbp27UrHjh0JDw9n2LBhfPrpp3rbHzhwgHfeeYcPPviA8PBwWrRowfTp0zO0c/HiRdatW8eGDRsIDw8HoG3btty6dYutW7cSFhaGj48P/v7+PHjwAIBVq1Yxffp0Zs2aRVhYGKVKlWLBggV69T58+JABAwawb98+Dh06RLly5WjTpg0PHz4EHiceAEuXLuXmzZu6x0/75ptv+Oqrr/jyyy85efIkLVu25K233uLChQt65T799FPGjh1LeHg45cuXp1evXqSmpubxqAshhBBCPButNo3dgT9mW2bPsh9fymFRMhTqGTxKSaPyxL+eux4F3IpNxHvy9lyVj5jaEiuzvD1lixcvpm/fvgC0atWKuLg4du3aRfPmzVm4cCEVKlRgzpw5AFSoUIHTp0/rJQ7z58+ndevWjB07FoDy5csTGhrKli1b9NpJTk5mxYoVFCtWDIDdu3dz6tQp7ty5g7m5OQBffvklQUFBrF+/nqFDhzJ//nwGDx7MwIEDAZg4cSLbt28nLi5OV2+zZs302lm0aBFFihQhJCSEdu3a6dpzcHDAxcUly+Pw5ZdfMm7cOHr27AnArFmz2LNnD/PmzeP777/XlRs7dixt27YFYMqUKVSpUoWLFy9SsWLFXB1vIYQQQojn8d/ZMxl6Kp728P49/jt7Bvcq1V5QVLkjPRavsHPnznHkyBHdl2kTExN69OjBkiVLdOvr1Kmjt03dunUz1PH0sqcfA3h4eOi+5AOEhYURFxeHk5OT7noHGxsbIiMjuXTpUq7rvnPnDu+88w7ly5fH3t4ee3t74uLiuHr1aq6PQ2xsLDdu3MDX11dvua+vL2fPntVbVq3a/71AXV1ddTEIIYQQQrwID278l6tycdFRBRxJ3hm0x+KLL75g48aN/PPPP1haWtKwYUNmzZpFhQoVdGWUUkyZMoUff/yRqKgo6tWrx/fff0+VKlV0ZZKSkhg7diy//PILjx49wt/fnx9++IGSJUsWSNyWpsZETG2ZY7kjkQ8IWJr50JwnBQ6sQ93SjrlqNy8WL15MamoqJUqU0C1TSmFqakpUVBRKqQw3PXt6uFVuygBYW1vrPdZqtbi6uhIcHJyh7JPXZ+RUd0BAAHfv3mXevHl4eHhgbm5OgwYNSE5OzrjDOcisraeXPXnRefo6rVab57aEEEIIIfJCq03j1K6/CFm5NFflbRyKFHBEeWfQHouQkBDee+89Dh06xI4dO0hNTeXNN98kPj5eV2b27NnMnTuX7777jqNHj+Li4kKLFi10Y+wBRo0axaZNm1izZg379+8nLi6Odu3akZZWMGPPNBoNVmYmOf41KlcMV3sLsrpfsYbHs0M1KlcsV/Xl5c7HqampLF++nK+++orw8HDd34kTJ/Dw8GDVqlVUrFgxwzUJx44d03tcsWJFjhw5km2ZzPj4+HDr1i1MTEwoW7as3l/RokWBx0Ovcqp73759jBw5kjZt2lClShXMzc25d0+/e9DU1DTb59rOzg43Nzf279+vtzw0NJRKlSrluC9CCCGEEAXpxvl/WDVhNDt//oGUxEcYGWf/Y7KtU1FKVKqSbRlDMGiPxZOz8sDjC3CLFy9OWFgYjRs3RinFvHnz+PTTT+ncuTMAy5Ytw9nZmdWrVzNs2DBiYmJYvHgxK1asoHnz5gCsXLkSd3d3du7cScuWOfcsFBRjIw2T2lfm3ZXH0YDeRdzpKcKk9pUxNsp9wpBbW7ZsISoqisGDB2Nvb6+3rmvXrixevJiNGzcyd+5cxo0bx+DBgwkPD9fNGpWexIwYMYLGjRszd+5c2rdvz+7du/nzzz9zTHKaN29OgwYN6Nixo64X6saNG2zdupWOHTtSu3ZtRowYwZAhQ6hduzYNGzZk7dq1nDx5Ei8vL109ZcuWZcWKFdSuXZvY2Fg++ugjLC0t9dry9PRk165d+Pr6Ym5uTpEiGTP4jz76iEmTJlGmTBlq1KjB0qVLCQ8PZ9WqVc9yeIUQQgghnltCTDR7VwdyJngnAOZW1jTs3hdrhyJsmTczy+2aDhiKkVHeRrK8CC/VNRYxMTEAODo+HhYUGRnJrVu3ePPNN3VlzM3N8fPzIzT08TRbYWFhpKSk6JVxc3OjatWqujJPS0pKIjY2Vu+voLSq6sqCvj642FvoLXext2BBX58Cu4/F4sWLad68eYakAqBLly6Eh4cTFRXF+vXr2bhxI9WqVWPBggW6WaHSL7j29fVl4cKFzJ07l+rVq7Nt2zY+/PBDLCwsMtT7JI1Gw9atW2ncuDGDBg2ifPny9OzZk8uXL+Ps7AxAnz59+OSTTxg7diw+Pj5ERkYSEBCgV/eSJUuIioqiZs2a9OvXj5EjR1K8eHG9tr766it27NiBu7s7NWvWzDSekSNHMmbMGMaMGYO3tzfbtm3TTbUrhBBCCPEiadPS+Hvb7yz5cJguqajSpDmD5i3Cp3V7KjR4g7dGT8DGsajedrZORXlr9ISX9j4WGvUsc5gWAKUUHTp0ICoqin379gGPh6r4+vry33//4ebmpis7dOhQrly5wl9//cXq1asZOHAgSUlJevW9+eablC5dmkWLFmVoa/LkyUyZMiXD8piYGOzs7PSWJSYmEhkZSenSpXP8Mp2dNK3iSOQD7jxMpLitBXVLOxZIT8Xzmj59OgsXLuTatWtZlhkyZAj//POP7nnKTy1atMDFxYUVK1bke93i+eTXa0EIIYR4nV3/5wy7Fy/g7tXLABQvXQb/Qe/gVj7j8GytNu3xLFHRUdg4FKFEpSovvKciNjYWe3v7TL8nP+2lmW72/fff5+TJkxnGwUPuLrp9WnZlPvnkE0aPHq17HBsbi7u7+zNEnXvGRhoalHEq0DaexQ8//ECdOnVwcnLiwIEDzJkzh/fff1+vzJdffkmLFi2wtrbmzz//ZNmyZfzwww/P3XZCQgILFy6kZcuWGBsb88svv7Bz50527Njx3HULIYQQQrxM4qIesHfVUs7u2wOAhbUNb/Tqj7d/yyyTBSMj45duStnsvBSJxYgRI9i8eTN79+7Vm8kp/b4Et27d0k39CY+n/0wfTuPi4kJycjJRUVF6Y+vv3LlDw4aZdxOZm5vrhvq87i5cuMDnn3/OgwcPKFWqFGPGjOGTTz7RK3PkyBFmz57Nw4cP8fLy4ttvv+Xtt99+7rbTh0t9/vnnJCUlUaFCBTZs2KC7VkYIIYQQorBLS00l/K8thP66iuRHj0CjwbvZm7zRsz9WdhmHrBdmBk0slFKMGDGCTZs2ERwcTOnSpfXWly5dGhcXF3bs2KEbO5+cnExISAizZs0CoFatWpiamrJjxw66d+8OwM2bNzl9+jSzZ89+sTtUCH399dd8/fXX2ZZZt25dgbRtaWnJzp07C6RuIYQQQghDu3bmJLuWLOT+9cf333IpWx7/ge/gUra8gSMrGAZNLN577z1Wr17Nb7/9hq2tLbdu3QLA3t4eS0tLNBoNo0aNYsaMGZQrV45y5coxY8YMrKys6N27t67s4MGDGTNmDE5OTjg6OjJ27Fi8vb3ll28hhBBCCPHCPXxwj5AVSzgXuhcAC1s7GvUagHfTFmiMXqq5k/KVQROLBQsWANCkSRO95UuXLiUgIACAjz/+mEePHjF8+HDdDfK2b9+Ora2trvzXX3+NiYkJ3bt3190gLzAwEOMc5gAWQgghhBAiv6SlphD2x28c2rCGlKRENBojqrVojW+Pvlja2OZcQSH30swKZUjZXe0uM+EI8Zi8FoQQQoisXTkZzu6lC3lw4zoAruUr4j/oXZxLlzFwZM+nUM4KJYQQQgghRGETe+8Owct/5sLhx/dPs7J3oHGfgVRu1PSVHvaUGUkshBBCCCGEyKPUlBTCtmzi0Ka1pCYloTEyombLdjTo1hsLaxtDh2cQklgIIYQQQgiRB5F/H2N34CKib90EoETFKvgPeodiHqVz2PLVJonFa6hJkybUqFGDefPmAeDp6cmoUaMYNWqUQeMSQgghhHiZxdy5xZ5lP3Pp2CEArB2K4Nd3EBXfaJLjzZtfB5JYvCjaNLgSCnG3wcYZPBpCAd+SPSAggGXLlmVYfvjwYSpVynjb+HQajYZNmzbRsWPHAoxOCCGEEKJwSElO4uhvGzj623pSU5IxMjamZuu3aNClF+ZWVoYO76UhicWLELEZto2D2Bv/t8zODVrNgspvFWjTrVq1YunSpXrLihUr9kKm4k1JScHU1LTA2xFCCCGEKCiXwg6zJ/BHYu7cBsC9SjX8B72DU8lSBo7s5fN6XapuCBGbYV1//aQCIPbm4+URmwu0eXNzc1xcXPT+/P39sxz25OnpCUCnTp3QaDS6xwC///47tWrVwsLCAi8vL6ZMmUJqaqpuvUajYeHChXTo0AFra2s+//zzAtwzIYQQQoiCE3XrBptmTSFo9jRi7tzGxtGJdqPG0e2z6ZJUZEF6LJ6FUpCSkHM5bRr8+TGQ2a1CFKB53JPh1SR3w6JMraCAx+8dPXqU4sWLs3TpUlq1aqXr2fjrr7/o27cv3377LY0aNeLSpUsMHToUgEmTJum2nzRpEl988QVff/213KBQCCGEEIVOSlIihzf9yrHfN5CWmoqRsQm123WkXucemFlYGjq8l5okFs8iJQFmuOVDRepxT8ZM99wVn3ADzKzz1MKWLVuwsfm/Kc9at26dbflixYoB4ODggIuLi2759OnTGT9+PAMGDADAy8uLadOm8fHHH+slFr1792bQoEF5ilEIIYQQwtCUUlw8cpA9y3/i4b27AHhUq0mzgcNwdCtp4OgKB0ksXnFNmzZlwYIFusfW1tb06tUrz/WEhYVx9OhRpk+frluWlpZGYmIiCQkJWP3/C5dq1679/EELIYQQQrxAD25cZ/fSRVw5+TcAtkWL0bT/EMrWbSCzPeWBJBbPwtTqce9BTq6EwqquOZfrs/7xLFG5aTePrK2tKVu2bJ63e5pWq2XKlCl07tw5wzoLCwu99oQQQgghCoPkxEcc2riWsC1BaNNSMTYxoc5bXajbsRum5hY5VyD0SGLxLDSa3A1JKtPs8exPsTfJ/DoLzeP1ZZoV+NSzeWFqakpaWpreMh8fH86dO5cvSYoQQgghhCEppTh/aD/BKxYTd/8eAKVr1qZpwFCKuOTHcPfXkyQWBcnI+PGUsuv6Axr0k4v/363WauZLlVTA45mhdu3aha+vL+bm5hQpUoSJEyfSrl073N3d6datG0ZGRpw8eZJTp07J7E9CCCGEKDTuX7/K7qULuXr6JAD2xZ1pGjCUMrXqGTiywk+mmy1old+C7svBzlV/uZ3b4+UFfB+LZ/HVV1+xY8cO3N3dqVmzJgAtW7Zky5Yt7Nixgzp16lC/fn3mzp2Lh4eHgaMVQgghhMhZUkICwct/ZvnHI7h6+iQmpmY07NaHAV/9IElFPtEopTIbo/NaiY2Nxd7enpiYGOzs7PTWJSYmEhkZSenSpfWuJcgzA9x5W4j8lG+vBSGEEOIFUkrxz/5gQlYtJT7qAQBlaten6YC3sS/uksPWIrvvyU+ToVAvipExlG5k6CiEEEIIIV4bd69eZveShVw/exoABxdXmgUMo3RNmcWyIEhiIYQQQgghXimJ8XGE/rqK8L/+QGm1mJiZU79zD2q164SJqamhw3tlSWIhhBBCCCFeCUqr5cze3exbHUhCTDQA5ev54td/MHZFixs2uNeAJBZCCCGEEKLQux15iV1LFnDz/D8AFHErSbOBw/CsVtPAkb0+JLEQQgghhBCF1qO4hxxYu5KTO/5EKS2m5hY06NoLnzZvYWwiw55eJEkshBBCCCFEoaO0Wk7t2cH+X5bx6GEsABUaNsav3yBsHYsaOLrXkyQWQgghhBCiULl18Ty7lizg1qULADiVLIX/oHdwr1LNwJG93iSxEEIIIYQQhUJCbAz71yzn1O7toBRmlpY07NaHGi3bYWwiX2sNTZ4BIYQQQgjxUtNq0zi58y8OrFlOYnwcAJUbNaVx30FYOxQxcHQinSQW4rkEBAQQHR1NUFBQvtUZGBjIqFGjiI6Ozrc6hRBCCFE43Th/ll1LFnIn8hIAxUp50mzwu5SsWMXAkYmnSWLxgqRp0zh+5zh3E+5SzKoYPsV9MDYyLtA2s/rSHxwcTNOmTYmKisLBwaFAYwBo0qQJNWrUYN68ebkq36NHD9q0aVOwQQkhhBDipZYQE83e1YGcCd4JgLmVNb49+lK9RRuMjAv2O5R4NpJYvAA7r+xk5pGZ3E64rVvmbOXM+Lrjae7R3ICRvZwsLS2xtLQ0dBhCCCGEMABtWhrh27cSum4lSQnxAFRt2oJGvQZgZe9g2OBEtowMHcCrbueVnYwOHq2XVADcSbjD6ODR7Lyy00CRPXb//n169epFyZIlsbKywtvbm19++UWvzPr16/H29sbS0hInJyeaN29OfHy8Xpkvv/wSV1dXnJyceO+990hJScmyzaioKPr370+RIkWwsrKidevWXLhwQbc+MDBQrydl8uTJ1KhRgxUrVuDp6Ym9vT09e/bk4cOH+XMQhBBCCPFSuH72NCvHf8CewEUkJcRTvHQZek37kpbvfCBJRSEgPRbPQCnFo9RHOZZL06bxxZEvUKiMdfz/ZTOPzKSeS71cDYuyNLFEo9HkPeBsJCYmUqtWLcaNG4ednR1//PEH/fr1w8vLi3r16nHz5k169erF7Nmz6dSpEw8fPmTfvn0o9X/7tGfPHlxdXdmzZw8XL16kR48e1KhRgyFDhmTaZkBAABcuXGDz5s3Y2dkxbtw42rRpQ0REBKammd/I5tKlSwQFBbFlyxaioqLo3r07M2fOZPr06fl6PIQQQgjx4sVFPWDvqqWc3bcHAAtrG97o1R9v/5YYFfDQcZF/JLF4Bo9SH1Fvdb18qet2wm0armmYq7KHex/GytQqT/Vv2bIFGxsbvWVpaWm6/0uUKMHYsWN1j0eMGMG2bdv49ddfdYlFamoqnTt3xsPDAwBvb2+9+ooUKcJ3332HsbExFStWpG3btuzatSvTxCI9oThw4AANGz7e71WrVuHu7k5QUBDdunXLdD+0Wi2BgYHY2toC0K9fP3bt2iWJhRBCCFGIpaWm8ve23zm4fjXJjx6BRkO1Zi3x7dkPKzt7Q4cn8kgSi1dc06ZNWbBggd6yw4cP07dvX+BxkjFz5kzWrl3Lf//9R1JSEklJSVhbWwNQvXp1/P398fb2pmXLlrz55pt07dqVIkX+b2q3KlWqYPzERVSurq6cOnUq03jOnj2LiYkJ9er9X2Lm5OREhQoVOHv2bJb74enpqUsq0tu4c+dOHo6EEEIIIV4mV0+fZPfShdy/fhUAl7Ll8R/4Di5lyxs4MvGsJLF4BpYmlhzufTjHcmG3wxi+a3iO5X7w/4FazrVy1W5eWVtbU7ZsWb1l169f1/3/1Vdf8fXXXzNv3jy8vb2xtrZm1KhRJCcnA2BsbMyOHTsIDQ1l+/btzJ8/n08//ZTDhw9TunRpgAzDlzQaDVqtNtN4nhxC9fTy7IZ55aUNIYQQQry8Ht6/R8iKxZw7uA8AS1s7GvUOoGqT5miM5PLfwkwSi2eg0WhyNSSpoVtDnK2cuZNwJ9PrLDRocLZypqFbwwKfejYr+/bto0OHDroeDK1Wy4ULF6hUqdL/xanR4Ovri6+vLxMnTsTDw4NNmzYxevToPLdXuXJlUlNTOXz4sG4o1P379zl//rxem0IIIYR4taSlphD2x28c2rCGlKRENBojqr/Zmobd+2JpY5tzBeKlJ4lFATI2MmZ83fGMDh6NBo1ecqHh8a/z4+qOM1hSAVC2bFk2bNhAaGgoRYoUYe7cudy6dUv3Jf/w4cPs2rWLN998k+LFi3P48GHu3r37zElAuXLl6NChA0OGDGHRokXY2toyfvx4SpQoQYcOHfJz14QQQgjxkrh88m92L11E1I3Hoybcylei2aB3cC5dxsCRifxk0P6mvXv30r59e9zc3NBoNBlu5KbRaDL9mzNnjq5MkyZNMqzv2bPnC96TrDX3aM7cJnMpblVcb7mzlTNzm8w1+H0sPvvsM3x8fGjZsiVNmjTBxcWFjh076tbb2dmxd+9e2rRpQ/ny5fnf//7HV199RevWrXPdhlarxcTk/3LYpUuXUqtWLdq1a0eDBg1QSrF169YsZ4QSQgghROEUe+8Om+fOYMP0z4i6cR0rewdaDf+QnlNmSVLxCtKorAa9vwB//vknBw4cwMfHhy5durBp0ya9L7W3bt3KUH7w4MFcvHgRLy8v4HFiUb58eaZOnaorZ2lpib197mcSiI2Nxd7enpiYGOzs7PTWJSYmEhkZSenSpbGwsHiGvXzMEHfefllUrFiRt99+W2/2KVH45NdrQQghxKsvNSWFY79v5PCmdaQmJ6ExMqJmy3Y07N4HcytrQ4cn8iC778lPM+hQqNatW2f7y7eLi4ve499++42mTZvqkop0VlZWGcq+bIyNjKnjUsfQYbxQd+7c4c8//+TcuXP4+/sbOhwhhBBCvAD//n2UPYE/En3rJgAlK1Wl2aB3KFbK07CBiQJXaK6xuH37Nn/88QfLli3LsG7VqlWsXLkSZ2dnWrduzaRJk/SmJhWG0apVK6Kiovj222+pWbOmocMRQgghRAGKuXOLPct+4tKxxzNnWhdxxK/vICr6+uX7DX7Fy6nQJBbLli3D1taWzp076y3v06cPpUuXxsXFhdOnT/PJJ59w4sQJduzYkWVd6fdqSBcbG1tgcb/Ojh8/bugQhBBCCFHAUpKTOPrbBo7+tp7UlGSMjI2p2fotGnTphblV3m7sKwq3QpNYLFmyhD59+mQY2/3k3Z2rVq1KuXLlqF27NsePH8fHxyfTur744gumTJlSoPEKIYQQQrzKlFJcCjtC8LIfiblzG4BSVavRbOA7OJUsZeDohCEUisRi3759nDt3jrVr1+ZY1sfHB1NTUy5cuJBlYvHJJ5/o3YMhNjYWd3f3fItXCCGEEOJVFnXrBnuWLiIyPAwAG6eiNOn3NuXr+8qwp9dYoUgsFi9eTK1atahevXqOZc+cOUNKSgqurq5ZljE3N8fc3Dw/QxRCCCGEeOWlJCVyeNOvHPt9A2mpqRgZm1C7XUfqde6BmYWlocMTBmbQxCIuLo6LFy/qHkdGRhIeHo6joyOlSj3uQouNjeXXX3/lq6++yrD9pUuXWLVqFW3atKFo0aJEREQwZswYatasia+v7wvbDyGEEEKIV5lSigtHQgle/jMP790FwKNaTZoNHIajW0kDRydeFgZNLI4dO0bTpk11j9OHJw0YMIDAwEAA1qxZg1KKXr16ZdjezMyMXbt28c033xAXF4e7uztt27Zl0qRJGBu/HveIEEIIIYQoSA9uXGf30kVcOfk3ALZFi9F0wBDK1mkgw56EHoPeIO9l8SJukCdEYSevBSGEeL0kJz7i0Ma1hG0JQpuWirGJCXXe6kLdjt0wNZfPgddFoblBnhBPatKkCTVq1GDevHmGDuWVpNFoMtzdXgghhHiaUopzB/cRsmIxcQ/uA+DlU4cmA4ZQxMXNwNGJl5mRoQN4Xai0NOIPHyFmyx/EHz6CSksr8DYDAgLQaDTMnDlTb3lQUFC+dV02adKEUaNG5UtdL7LuvEhOTmb27NlUr14dKysrihYtiq+vL0uXLiUlJcUgMQUGBuLg4JCnbW7evJntne6FEEKIe9eu8Ou0T/njm9nEPbiPvbMLHT+eSKdxkySpEDmSHosXIHb7dm7P+ILUW7d0y0xcXHCe8Al2b75ZoG1bWFgwa9Yshg0bRpEiRQq0rVdRcnIyLVu25MSJE0ybNg1fX1/s7Ow4dOgQX375JTVr1qRGjRqZbmdmZvbiA86Gi4uLoUMQQgjxkkpKSODg+tX8ve13tGlpmJiaUbdjN+q81QWTl+zzTLy8pMeigMVu385/H4zSSyoAUm/f5r8PRhG7fXuBtt+8eXNcXFz44osvsiwTGhpK48aNsbS0xN3dnZEjRxIfH69b/8MPP1CuXDksLCxwdnama9euwOMekZCQEL755hs0Gg0ajYbLly8DEBERQZs2bbCxscHZ2Zl+/fpx7949XZ3x8fH0798fGxsbXF1dM531KycbNmygSpUqmJub4+npmaGOqKgo+vfvT5EiRbCysqJ169ZcuHBBtz79V/+goCDKly+PhYUFLVq04Nq1a7oy8+bNY+/evezatYv33nuPGjVq4OXlRe/evTl8+DDlypUDHveuvP/++4wePZqiRYvSokULAEJCQqhbty7m5ua4uroyfvx4UlNTdfWvX78eb29vLC0tcXJyonnz5rpjHxwcTN26dbG2tsbBwQFfX1+uXLmS5fFYsGABZcqUwczMjAoVKrBixQq99RqNhqCgIAAuX76MRqNh48aNNG3aFCsrK6pXr87Bgwfz/DwIIYQovJRSROzbw9IPhxH2RxDatDTK1qlPwNwfaNC1lyQVIk8ksXgGSim0CQk5/qU9fMjtz6dDZtfHKwUobk+fQdrDh7mq71muszc2NmbGjBnMnz+f69evZ1h/6tQpWrZsSefOnTl58iRr165l//79vP/++8DjmbtGjhzJ1KlTOXfuHNu2baNx48YAfPPNNzRo0IAhQ4Zw8+ZNbt68ibu7Ozdv3sTPz48aNWpw7Ngxtm3bxu3bt+nevbuu3Y8++og9e/awadMmtm/fTnBwMGFhYbner7CwMLp3707Pnj05deoUkydP5rPPPtPNJgaPE59jx46xefNmDh48iFKKNm3a6A1fSkhIYPr06SxbtowDBw4QGxtLz549detXrVpF8+bNqVmzZoYYTE1Nsba21j1etmwZJiYmHDhwgEWLFvHff//Rpk0b6tSpw4kTJ1iwYAGLFy/m888/Bx4PTerVqxeDBg3i7NmzBAcH07lzZ5RSpKam0rFjR/z8/Dh58iQHDx5k6NChWQ5h27RpEx988AFjxozh9OnTDBs2jIEDB7Jnz55sj+Onn37K2LFjCQ8Pp3z58vTq1Usv8RFCCPHqunslkrWTx/Pnd18RHx2Fg4srnT+ZQoex/8O+uPRyi7yToVDPQD16xDmfWvlQ0eOei/N16uaqeIXjYWisrPLcTKdOnahRowaTJk1i8eLFeuvmzJlD7969ddcylCtXjm+//RY/Pz8WLFjA1atXsba2pl27dtja2uLh4aH7km1vb4+ZmRlWVlZ6w2wWLFiAj48PM2bM0C1bsmQJ7u7unD9/Hjc3NxYvXszy5ct1v+wvW7aMkiVzPw/23Llz8ff357PPPgOgfPnyREREMGfOHAICArhw4QKbN2/mwIEDNGzYEHicJLi7uxMUFES3bt0ASElJ4bvvvqNevXq6OCpVqsSRI0eoW7cuFy5coEmTJrmKqWzZssyePVv3+NNPP8Xd3Z3vvvsOjUZDxYoVuXHjBuPGjWPixIncvHmT1NRUOnfujIeHBwDe3t4APHjwgJiYGNq1a0eZMmUAqFSpUpZtf/nllwQEBDB8+HDg8dTN6cO1npzS+Wljx46lbdu2AEyZMoUqVapw8eJFKlasmKt9FkIIUfgkxscRum4V4X/9gVJaTMzNqd+pB7XadcLE1NTQ4YlCTHosXhOzZs1i2bJlRERE6C0PCwsjMDAQGxsb3V/Lli3RarVERkbSokULPDw88PLyol+/fqxatYqEhIRs2woLC2PPnj16daZ/Ub106RKXLl0iOTmZBg0a6LZxdHSkQoUKud6fs2fPZrgJoq+vLxcuXCAtLY2zZ89iYmKiSxgAnJycqFChAmfPntUtMzExoXbt2rrHFStWxMHBQVdGKZXrC92frCc9xgYN9Of49vX1JS4ujuvXr1O9enX8/f3x9vamW7du/PTTT0RFRQGPj0dAQAAtW7akffv2fPPNN9y8eTPPx+PJfc1MtWrVdP+n363+zp07udpfIYQQhYvSajkdvJOlH77D39t+Rykt5ev5MnDuAup16i5JhXhu0mPxDDSWllQ4nvOwnYRjx7g2dFiO5dx/XITVU19Ks2r3WTVu3JiWLVsyYcIEAgICdMu1Wi3Dhg1j5MiRGbYpVaoUZmZmHD9+nODgYLZv387EiROZPHkyR48ezXJWIq1WS/v27Zk1a1aGda6urnrXOTyrzL7wPzlULKthY5ltl1nikL6sfPnyOX45T/fksKicYtRoNBgbG7Njxw5CQ0PZvn078+fP59NPP+Xw4cOULl2apUuXMnLkSLZt28batWv53//+x44dO6hfv36m7WfWVk5JkekTHyLpZbVaba72VwghROFx+9+L7Fq6kJvn/wHA0a0kzQa+g0e1GoYNTLxSpMfiGWg0GoysrHL8s/b1xcTFBbL6cqfRYOLigrWvb67qe94pYmfOnMnvv/9OaGiobpmPjw9nzpyhbNmyGf7SZzUyMTGhefPmzJ49m5MnT3L58mV2794NPL77edpTU+em1+np6ZmhTmtra8qWLYupqSmHDh3SbRMVFcX58+dzvS+VK1dm//79estCQ0MpX748xsbGVK5cmdTUVA4fPqxbf//+fc6fP683pCg1NZVjx47pHp87d47o6GhdD0vv3r3ZuXMnf//9d4YYUlNT9S5yzyzG0NBQvSQnNDQUW1tbSpQoATw+l3x9fZkyZQp///03ZmZmbNq0SVe+Zs2afPLJJ4SGhlK1alVWr16daVuVKlXK9HhkN3xKCCHEq+9R3EN2/vwDKyd8yM3z/2BqbkHjPgPpP2e+JBUi30liUYA0xsY4T/jk/z94Kin4/4+dJ3yCxtj4hcTj7e1Nnz59mD9/vm7ZuHHjOHjwIO+99x7h4eG6axNGjBgBwJYtW/j2228JDw/nypUrLF++HK1Wqxu25OnpyeHDh7l8+TL37t1Dq9Xy3nvv8eDBA3r16sWRI0f4999/2b59O4MGDSItLQ0bGxsGDx7MRx99xK5duzh9+jQBAQEYGWU8He/evUt4eLje361btxgzZgy7du1i2rRpnD9/nmXLlvHdd98xduxY4PG1Ih06dGDIkCHs37+fEydO0LdvX0qUKEGHDh109ZuamjJixAgOHz7M8ePHGThwIPXr16du3cfXvYwaNQpfX1/8/f35/vvvOXHiBP/++y/r1q2jXr162fa+DB8+nGvXrjFixAj++ecffvvtNyZNmsTo0aMxMjLi8OHDzJgxg2PHjnH16lU2btzI3bt3qVSpEpGRkXzyySccPHiQK1eusH379gxJ0ZM++ugjAgMDWbhwIRcuXGDu3Lls3LhRdzyEEEK8XpRWy8ld21gyahgndmwFpajo68fAeQup81YXjE1k2JMoAEqomJgYBaiYmJgM6x49eqQiIiLUo0ePnr3+v/5S5/2aqIgKFXV/5/2aqJi//nqesHM0YMAA1aFDB71lly9fVubm5urJp/7IkSOqRYsWysbGRllbW6tq1aqp6dOnK6WU2rdvn/Lz81NFihRRlpaWqlq1amrt2rW6bc+dO6fq16+vLC0tFaAiIyOVUkqdP39ederUSTk4OChLS0tVsWJFNWrUKKXVapVSSj18+FD17dtXWVlZKWdnZzV79mzl5+enPvjgA13dfn5+j6fOeupv0qRJSiml1q9frypXrqxMTU1VqVKl1Jw5c/T29cGDB6pfv37K3t5eWVpaqpYtW6rz58/r1i9dulTZ29urDRs2KC8vL2VmZqaaNWumLl++rFdPYmKi+uKLL5S3t7eysLBQjo6OytfXVwUGBqqUlBRdrE/Gni44OFjVqVNHmZmZKRcXFzVu3DjdNhEREaply5aqWLFiytzcXJUvX17Nnz9fKaXUrVu3VMeOHZWrq6syMzNTHh4eauLEiSotLU0ppdTixYuVk5OTXls//PCD8vLyUqampqp8+fJq+fLleusBtWnTJqWUUpGRkQpQf//9t259VFSUAtSePXsy7IdS+fNaEEIIUfBuXPhHrfxklPqye1v1Zfe2aunod9XV0ycMHZYopLL7nvw0jVLPMIfpKyY2NhZ7e3tiYmKws7PTW5eYmEhkZCSlS5fGwsLimdtQaWkkHAsj9e5dTIoVw6p2rRfWUyEyFxgYyKhRo4iOjjZ0KHk2c+ZMVq5cyenTp19Ym/n1WhBCCFEwEmJj2P/LMk7t2QFKYWZpRcNufajRsi3GJnJZrXg22X1PfpqcZS+IxtgY63q5m1ZWiKwkJCTwzz//sHTpUlq3bm3ocIQQQrwEtNo0Tu78iwNrlpMYHwdA5UZNadx3ENYORQwcnXidSGIhRCHy448/MnXqVJo3b87EiRMNHY4QQggDu3H+LLsWL+TO5UsAFPMoTbNB71CyYhUDRyZeRzIUihczFEqIwk5eC0II8fKIj45i3+plnAnZCYC5lTW+PfpSvUUbjGSotchHMhRKCCGEEOIVpE1LI3z7H4SuW0VSwuMpz6s2bUGjXgOwsncwbHDitSeJhRBCCCFEIXA94jS7li7k3tXLABQvXQb/Qe/iVr6iYQMT4v+TxEIIIYQQ4iUWF/WAvSuXcHZ/MAAWNra80bM/3v5vYmQkw57Ey0MSCyGEEEKIl1Baaip/b/udg+tXk/zoEWg0VGvWkjd69cfSNvux7kIYgiQWQgghhBAvmaunT7J76ULuX78KgEvZ8vgPeheXMuUMHJkQWZPEQgghhBDiJfHw/j2CVyzm/MF9AFja2tGodwBVmzRHY2Rk4OiEyJ4kFuKl0aRJE2rUqMG8efMMHcpz0Wg0bNq0iY4dOxo6FCGEEIVEWmoKYX/8xqENa0hJSkSjMaL6m63x7d4PCxsbQ4cnRK5I6vuCaLWK/85Fcf7oLf47F4VWW/C3DwkICECj0TBz5ky95UFBQWg0mnxpo0mTJowaNSpf6nqRdedWYGAgDg4Oedrm5s2bcldsIYQQuXb5xHGWjX2ffasDSUlKxK18JfrOnIf/oHclqRCFivRYvACX/r7DvrUXiI9O0i2zdjCnUY9ylKlZvEDbtrCwYNasWQwbNowiRYoUaFviMRcXF0OHIIQQohCIvXuH4OU/c+FIKABW9g407jOQyo2b5dsPgEK8SNJjUcAu/X2HbYtO6yUVAPHRSWxbdJpLf98p0PabN2+Oi4sLX3zxRZZlQkNDady4MZaWlri7uzNy5Eji4+N163/44QfKlSuHhYUFzs7OdO3aFXjcIxISEsI333yDRqNBo9Fw+fJlACIiImjTpg02NjY4OzvTr18/7t27p6szPj6e/v37Y2Njg6urK1999VWe923Dhg1UqVIFc3NzPD09M9QRFRVF//79KVKkCFZWVrRu3ZoLFy7o1qf3RgQFBVG+fHksLCxo0aIF165dy7bdBQsWUKZMGczMzKhQoQIrVqzQW6/RaAgKCgLg8uXLaDQaNm7cSNOmTbGysqJ69eocPHgwz/srhBDi1ZCanMyhDWtYOvpdLhwJRWNkhE/rtxg0bxFV/PwlqRCFliQWz0ApRUpSWo5/SY9S2bf2fLZ17Vt7gaRHqbmqT6m8D58yNjZmxowZzJ8/n+vXr2dYf+rUKVq2bEnnzp05efIka9euZf/+/bz//vsAHDt2jJEjRzJ16lTOnTvHtm3baNy4MQDffPMNDRo0YMiQIdy8eZObN2/i7u7OzZs38fPzo0aNGhw7doxt27Zx+/Ztunfvrmv3o48+Ys+ePWzatInt27cTHBxMWFhYrvcrLCyM7t2707NnT06dOsXkyZP57LPPCAwM1JUJCAjg2LFjbN68mYMHD6KUok2bNqSkpOjKJCQkMH36dJYtW8aBAweIjY2lZ8+eWba7adMmPvjgA8aMGcPp06cZNmwYAwcOZM+ePdnG++mnnzJ27FjCw8MpX748vXr1IjU1Ndf7K4QQ4tXw799HWTb2PQ6sW0lqchIlK1Wl36xvaRowFHMra0OHJ8RzkaFQzyA1WcuPH4TkS13x0Un8/OHeXJUd+o0fpuZ5vxFOp06dqFGjBpMmTWLx4sV66+bMmUPv3r111zKUK1eOb7/9Fj8/PxYsWMDVq1extramXbt22Nra4uHhQc2aNQGwt7fHzMwMKysrveE/CxYswMfHhxkzZuiWLVmyBHd3d86fP4+bmxuLFy9m+fLltGjRAoBly5ZRsmTJXO/T3Llz8ff357PPPgOgfPnyREREMGfOHAICArhw4QKbN2/mwIEDNGzYEIBVq1bh7u5OUFAQ3bp1AyAlJYXvvvuOevXq6eKoVKkSR44coW7duhna/fLLLwkICGD48OEAjB49mkOHDvHll1/StGnTLOMdO3Ysbdu2BWDKlClUqVKFixcvUrGi3C1VCCFeB9G3b7Fn2Y/8G3YEAOsijvj1G0zFho2lh0K8MqTH4jUxa9Ysli1bRkREhN7ysLAwAgMDsbGx0f21bNkSrVZLZGQkLVq0wMPDAy8vL/r168eqVatISEjItq2wsDD27NmjV2f6F+hLly5x6dIlkpOTadCggW4bR0dHKlSokOv9OXv2LL6+vnrLfH19uXDhAmlpaZw9exYTExNdwgDg5OREhQoVOHv2rG6ZiYkJtWvX1j2uWLEiDg4OemVy025W5dNVq1ZN97+rqysAd+4U7DA4IYQQhpeSnETor6sIHPMu/4YdwcjYmNrtOzPo64VU8vWTpEK8UqTH4hmYmBkx9Bu/HMvduBDNlu9O5Fiu3fvVcSvnkKt2n1Xjxo1p2bIlEyZMICAgQLdcq9UybNgwRo4cmWGbUqVKYWZmxvHjxwkODmb79u1MnDiRyZMnc/To0SxnS9JqtbRv355Zs2ZlWOfq6qp3ncOzUkpleDN+cqhYVsPGMtsuszf17N7oM2s3pw8GU1PTDNtrtdpstxFCCFF4KaW4dOwwe5b9ROzd2wCUqlqNZgPfwalkKQNHJ0TBkMTiGWg0mlwNSXKv7Ii1g3mGC7efZFPEHPfKjhgZFfwvFjNnzqRGjRqUL19et8zHx4czZ85QtmzZLLczMTGhefPmNG/enEmTJuHg4MDu3bvp3LkzZmZmpKWl6ZX38fFhw4YNeHp6YmKS8RQrW7YspqamHDp0iFKlHr+5RkVFcf78efz8ck7YACpXrsz+/fv1loWGhlK+fHmMjY2pXLkyqampHD58WDcU6v79+5w/f55KlSrptklNTeXYsWO6YU/nzp0jOjo6yyFKlSpVYv/+/fTv31+v3SfrFEII8XqLuvkfewJ/JDL88bWDNk5FadLvbcrX95UeCvFKk8SiABkZaWjUoxzbFp3Osswb3cu9kKQCwNvbmz59+jB//nzdsnHjxlG/fn3ee+89hgwZgrW1NWfPnmXHjh3Mnz+fLVu28O+//9K4cWOKFCnC1q1b0Wq1umFLnp6eHD58mMuXL2NjY4OjoyPvvfceP/30E7169eKjjz6iaNGiXLx4kTVr1vDTTz9hY2PD4MGD+eijj3BycsLZ2ZlPP/0Uo0zuKHr37l3Cw8P1lrm4uDBmzBjq1KnDtGnT6NGjBwcPHuS7777jhx9+AB5fK9KhQweGDBnCokWLsLW1Zfz48ZQoUYIOHTro6jI1NWXEiBF8++23mJqa8v7771O/fv1Mr6+Axxedd+/eHR8fH/z9/fn999/ZuHEjO3fufN6nRwghRCGXkpjI4aB1HPt9I2mpqRgZm1C7fSfqdeqOmYWlocMTosDJNRYFrEzN4rQaVhVrB3O95TZFzGk1rGqB38fiadOmTdMbJlStWjVCQkK4cOECjRo1ombNmnz22We66wAcHBzYuHEjzZo1o1KlSixcuJBffvmFKlWqAI8vSk7vIShWrBhXr17Fzc2NAwcOkJaWRsuWLalatSoffPAB9vb2uuRhzpw5NG7cmLfeeovmzZvzxhtvUKtWrQzxrl69mpo1a+r9LVy4EB8fH9atW8eaNWuoWrUqEydOZOrUqXrDvJYuXUqtWrVo164dDRo0QCnF1q1b9YYlWVlZMW7cOHr37k2DBg2wtLRkzZo1uvVarVav16Vjx4588803zJkzhypVqrBo0SKWLl1KkyZN8uX5EUIIUfgopTh/+ABLR7/L4U3rSEtNxbO6DwO+/J5GvQZIUiFeGxr1LHOYvmJiY2Oxt7cnJiYGOzs7vXWJiYlERkZSunRpLCwsnrkNrVZx80I08bFJWNuZ41rO4YX1VIjMBQYGMmrUKKKjo7MsM3PmTFauXMnp01n3Or0u8uu1IIQQr5L7/11jT+CPXDn5NwB2xYrTZMAQytauL8OexCshu+/JT5OhUC+IkZGGEhXkzteFRUJCAv/88w9Lly6ldevWhg5HCCHESyb5UQKHNq4l7I/f0KalYmxqSp23ulC3Q1dMzeXHF/F6ksRCiEz8+OOPTJ06lebNmzNx4kRDhyOEEOIloZTiXOheQlYsJi7qAQBePnVoOmAoDi6uBo5OCMMy6DUWe/fupX379ri5uaHRaAgKCtJbHxAQgEaj0furX7++XpmkpCRGjBhB0aJFsba25q233sr0DtNCPC0gICDLYVCjRo3iwYMHrFu3DkdHxxcbmBBCiJfSvWtX+HXap/zx7Rzioh5g7+xCx48n0mncJEkqhMDAPRbx8fFUr16dgQMH0qVLl0zLtGrViqVLl+oem5mZ6a0fNWoUv//+O2vWrMHJyYkxY8bQrl07wsLCMDbO+12qhRBCCCGelJSQwMH1qzj+5+8orRYTUzPqdupGnfZdMHnqe4kQrzODJhatW7fOcfy6ubk5Li4uma6LiYlh8eLFrFixgubNmwOwcuVK3N3d2blzJy1btsz3mIUQQgjxelBKcXZ/MHtXLiE+OgqAsnXq06T/EOyLOxs4OiFePi/9NRbBwcEUL14cBwcH/Pz8mD59OsWLP56iNSwsjJSUFN58801deTc3N6pWrUpoaGiWiUVSUhJJSf9307rY2NiC3QkhhBBCFCp3Lv/L7qUL+e+fCACKuLrRNGAYpWtknBpdCPHYS51YtG7dmm7duuHh4UFkZCSfffYZzZo1IywsDHNzc27duoWZmRlFiujPtuTs7MytW7eyrPeLL75gypQpBR2+EEIIIQqZxPg4QtetIvyvP1BKi4m5OfU79aBWu06YPHEfJCFERi91YtGjRw/d/1WrVqV27dp4eHjwxx9/0Llz5yy3U0plO3f0J598wujRo3WPY2NjcXd3z5+ghRBCCFHoKK2WMyG72Ls6kEexMQCUr/8Gfv0GY1e0mIGjE6JweKkTi6e5urri4eHBhQsXAHBxcSE5OZmoqCi9Xos7d+7QsGHDLOsxNzfH3Nw8y/VCCCGEeH3c/vciu5Ys4OaFcwA4upWk2cB38KhWw7CBCVHIGHS62by6f/8+165dw9X18ZRutWrVwtTUlB07dujK3Lx5k9OnT2ebWIhnFxgYiIODQ4G34+npybx58wq8HSGEEK+vR3EP2fnz96yc8CE3L5zD1MKSxn0H0X/OfEkqhHgGBu2xiIuL4+LFi7rHkZGRhIeH4+joiKOjI5MnT6ZLly64urpy+fJlJkyYQNGiRenUqRMA9vb2DB48mDFjxuDk5ISjoyNjx47F29tbN0vUy0KrTeO/s2eIi47CxqEIJSpVwcioYKfDDQgIYNmyZQCYmJjg7u5O586dmTJlCtbW1s9UZ48ePWjTpk2+xRgYGMioUaMy3E/i6NGjzxyjEEIIkR2tNo3Tu3ewb81yEh8+nsCloq8fjfsOxNaxqIGjE6LwMmhicezYMZo2bap7nH7dw4ABA1iwYAGnTp1i+fLlREdH4+rqStOmTVm7di22tra6bb7++mtMTEzo3r07jx49wt/fn8DAwJfqHhYXDoeyO/BH4h7c0y2zcSxKs4ChlKtXsD0r6fcBSUlJYd++fbz99tvEx8ezYMECvXIpKSmY5uKiNEtLSywtLQsqXJ1ixWQ8qxBCiPx38+I5di1eyO1/Hw+rLuruQbNB7+Be2dvAkQlR+Bl0KFSTJk1QSmX4CwwMxNLSkr/++os7d+6QnJzMlStXCAwMzHCRtYWFBfPnz+f+/fskJCTw+++/v1QXYl84HMrmuTP0kgqAuAf32Dx3BhcOhxZo++n3AXF3d6d379706dOHoKAgJk+eTI0aNViyZAleXl6Ym5ujlOLq1at06NABGxsb7Ozs6N69O7dv39bVl9lQqN9//51atWphYWGBl5cXU6ZMITU1Vbc+OjqaoUOH4uzsjIWFBVWrVmXLli0EBwczcOBAYmJidHdWnzx5MpBxKFROcaXvz4oVK/D09MTe3p6ePXvy8OHDAjmuQgghCpeE2Bi2L/qW1f8by+1/L2BmaUXTAUPoO/MbSSqEyCeF6uLtl4VSitQn7oORFa02jd1LF2VbZnfgIkp5V8/VsCgTc/NsZ7vKDUtLS1JSUgC4ePEi69atY8OGDboeno4dO2JtbU1ISAipqakMHz6cHj16EBwcnGl9f/31F3379uXbb7+lUaNGXLp0iaFDhwIwadIktFotrVu35uHDh6xcuZIyZcoQERGBsbExDRs2ZN68eUycOJFz5x5fMGdjY5OhDaVUruK6dOkSQUFBbNmyhaioKLp3787MmTOZPn36cx0zIYQQhZdWm8bJHds4sHYFifFxAFRu3IzGfQZi7VAkh62FEHkhicUzSE1K4tsBXfOlrrgH9/luYI+cCwIjl63H1MLimds6cuQIq1evxt/fH4Dk5GRWrFihG3a0Y8cOTp48SWRkpK7XZ8WKFVSpUoWjR49Sp06dDHVOnz6d8ePHM2DAAAC8vLyYNm0aH3/8MZMmTWLnzp0cOXKEs2fPUr58eV2ZdPb29mg0mizvrg6wc+fOXMWl1WoJDAzUDZXr168fu3btksRCCCFeU/+dO8uuJQu4e/lfAIp5lMZ/0LuUqFjZwJEJ8WqSxOIVt2XLFmxsbEhNTSUlJYUOHTowf/58fvjhBzw8PPSuZTh79izu7u56Q8kqV66Mg4MDZ8+ezTSxCAsL4+jRo3pf3tPS0khMTCQhIYHw8HBKliypSyqeRW7j8vT01Lv+xtXVlTt37jxzu0IIIQqn+Ogo9q0O5EzILgDMra3x7dGP6s1bY/QSXYMpxKtGEotnYGJuzshl63Msd/3saTbOnJxjuc7jJ1OyUtVctZtXTZs2ZcGCBZiamuLm5qZ3gfbTsy5ldWPB7G44qNVqmTJlSqY3LLSwsMiXC71zG9fTF59rNBq0Wu1zty+EEKJw0KalEf7XFg6sW0XyowQAqjZ9k0a9+mNl72DY4IR4DUhi8Qw0Gk2uhiR5VK+JjWPRDBduP8nWqSge1WsW2NSz1tbWlC1bNldlK1euzNWrV7l27ZqudyAiIoKYmBgqVaqU6TY+Pj6cO3cuyzaqVavG9evXOX/+fKa9FmZmZqSlpeV7XEIIIV4v1yNOs2vpQu5dvQyAs1dZ/Ae9i2u5CoYNTIjXiCQWBcjIyJhmAUPZPHdGlmWaDhha4PezyK3mzZtTrVo1+vTpw7x583QXSfv5+VG7du1Mt5k4cSLt2rXD3d2dbt26YWRkxMmTJzl16hSff/45fn5+NG7cmC5dujB37lzKli3LP//8g0ajoVWrVnh6ehIXF8euXbuoXr06VlZWWFlZPXdcQgghXg9xD+6zd9VSzu4PBsDCxpY3evbH2//Nl+bzVYjXRaG683ZhVK5eQ94aPQGbp264Y+tUlLdGTyjw+1jkhUajISgoiCJFitC4cWOaN2+Ol5cXa9euzXKbli1bsmXLFnbs2EGdOnWoX78+c+fOxcPDQ1dmw4YN1KlTh169elG5cmU+/vhjXS9Fw4YNeeedd+jRowfFihVj9uzZ+RKXEEKIV1taairHft/Ikg/feZxUaDRUa96KQfMWUb1Fa0kqhDAAjVJKGToIQ4uNjcXe3p6YmBjs7Oz01iUmJhIZGUnp0qWxeI4ZmQxx5+2CsGjRIqZNm8b169cNHYp4wfLrtSCEEM/r6ukT7FqykAf/XQPAtWwFmg16B5cy5QwcmRCvnuy+Jz9NhkK9IEZGxrhXqWboMJ7LtWvX2Lp1K1WqVDF0KEIIIV5DD+/fI3jFYs4f3AeApa0djfoEUNWvORojGYQhhKFJYiFyzcfHhxIlShAYGGjoUIQQQrxG0lJTOLYliEMb15CalIRGY0T1N9vg270vFpncWFUIYRiSWIhcu3v3rqFDEEII8Zq5fOI4u5cuIurmfwC4VaiM/6B3KO7plcOWQogXTRILIYQQQrx0Yu/eIXj5z1w4EgqAlb0DjfsMpHLjZlneW0kIYViSWAghhBDipZGanMyx3zdyOOhXUpOT0BgZUbNVexp26425lXXOFQghDEYSCyGEEEK8FP49fpQ9gT8SffsmACUrV6XZwHcoVsrTsIEJIXJFEgshhBBCGFT07VvsWfYj/4YdAcCmiCON+w2mYsPGMuxJiEJEEgshhBBCGERKchJHgtZzdPN60lJSMDI2xqdNBxp06YmZpZWhwxNC5JEkFkIIIYR4oZRSXDx2iOBlPxN79zYApapWp9nAd3Aq6W7g6IQQz0oSCyGEEEK8MFE3/2N34I9cDg8DwMapKE36vU35+r4y7EmIQk5uU/mCKK0i8VI0CeF3SLwUjdKqAm/zzp07DBs2jFKlSmFubo6LiwstW7bk4MGD+dZGfHw848aNw8vLCwsLC4oVK0aTJk3YsmVLvrUhhBCi8EtJTGT/muUsG/sel8PDMDI2oW7Hbgyau5AKDd6QpEKIV4D0WLwAj07fI/r3S6TFJOuWGdub4dC+DJZVixZYu126dCElJYVly5bh5eXF7du32bVrFw8ePMi3Nt555x2OHDnCd999R+XKlbl//z6hoaHcv38/39oQQghReCmluHD4AMHLF/Pw/uMbrXrWqEXTAUNxdCth4OiEEPlJo5Qq+J/OX3KxsbHY29sTExODnZ2d3rrExEQiIyMpXbo0FhYWea770el73F95Nsv1Tn0rFUhyER0dTZEiRQgODsbPzy/TMjExMXz00UcEBQWRmJhI7dq1+frrr6levbquzMyZM/n6669JSEige/fuFCtWjG3bthEeHg6Ag4MD33zzDQMGDMgylqSkJD777DN++eUX7ty5Q6lSpRg/fjyDBw8mLS2NoUOHsnv3bm7dukWpUqUYPnw4H3zwgW77gIAAoqOjeeONN/jqq69ITk6mZ8+ezJs3D1NT0/w5YCJHz/taEEK8fu5fv8buwEVcPRUOgF2x4jQZMISytetLD4UQhUR235OfJj0Wz0AphUrR5lxOq4jafCnbMlGbL2FW1gGNUc5vsBpTo1y/EdvY2GBjY0NQUBD169fH3NxcPzalaNu2LY6OjmzduhV7e3sWLVqEv78/58+fx9HRkXXr1jFp0iS+//57GjVqxIoVK/j222/x8vLS1ePi4sLWrVvp3Lkztra2mcbSv39/Dh48yLfffkv16tWJjIzk3r17AGi1WkqWLMm6desoWrQooaGhDB06FFdXV7p3766rY8+ePbi6urJnzx4uXrxIjx49qFGjBkOGDMnV8RBCCPHiJD9K4OCGNRzf+hvatDSMTU2p81ZX6nbogqm5/DAhxKtKeizIe4+FNjmNGxNDX3icblMbYmRmnOvyGzZsYMiQITx69AgfHx/8/Pzo2bMn1apVY/fu3XTq1Ik7d+7oJR1ly5bl448/ZujQoTRs2JDq1auzYMEC3fr69euTmJio67HYu3cvffr04fbt21SvXp033niDrl274uvrC8D58+epUKECO3bsoHnz5rmK+7333uP27dusX78eeNxjERwczKVLlzA2frz/3bt3x8jIiDVr1uT6eIjnIz0WQoicKKX4J3Qve1csJi7q8bBbL586NB0wFAcXVwNHJ4R4FnnpsZCLt19hXbp04caNG2zevJmWLVsSHByMj48PgYGBhIWFERcXh5OTk653w8bGhsjISC5detzLcvbsWRo0aKBX59OPGzduzL///suuXbvo0qULZ86coVGjRkybNg2A8PBwjI2NsxyOBbBw4UJq165NsWLFsLGx4aeffuLq1at6ZapUqaJLKgBcXV25c+fOcx0fIYQQ+efe1cv8OnUCW7+dQ1zUA+ydXej48UQ6jZskSYUQrwkZCvUMNKZGuE1tmGO5pMgY7i89k2M5p4FVMC9tn6t288rCwoIWLVrQokULJk6cyNtvv82kSZMYPnw4rq6uBAcHZ9jGwcEhT22YmprSqFEjGjVqxPjx4/n888+ZOnUq48aNw9LSMttt161bx4cffshXX31FgwYNsLW1Zc6cORw+fDhDG0/SaDRotTkPRxNCCFGwkhLiObh+Ncf//B2l1WJiakbdTt2o074LJmZmhg5PCPECSWLxDDQaDZpcDEmyKFcEY3szvdmgnmZsb45FuSK5usYiP1SuXJmgoCB8fHy4desWJiYmeHp6Zlq2UqVKHDp0iP79++uWHTp0KFdtpKamkpiYiLe3N1qtlpCQkEyHQu3bt4+GDRsyfPhw3bL0HhMhhBAvL6UUZ/ftIWTlEhJiogEoW6cBTfq/jX1xZ8MGJ4QwCEksCpDGSIND+zLZzgrl0N6rQJKK+/fv061bNwYNGkS1atWwtbXl2LFjzJ49mw4dOtC8eXMaNGhAx44dmTVrFhUqVODGjRts3bqVjh07Urt2bT744AMGDBhA7dq1eeONN1i1ahVnzpzRu3i7SZMm9OrVi9q1a+Pk5ERERAQTJkygadOm2NnZYWdnx4ABAxg0aJDu4u0rV65w584dunfvTtmyZVm+fDl//fUXpUuXZsWKFRw9epTSpUvn+zERQgiRP+5c/pddSxZy41wEAEVc3WgWMAzPGrUMHJkQwpAksShgllWL4tS3Uib3sTDHob1Xgd3HwsbGhnr16vH1119z6dIlUlJScHd3Z8iQIUyYMAGNRsPWrVv59NNPGTRoEHfv3sXFxYXGjRvj7Pz4l6YePXpw6dIlxo0bR2JiIl26dOHdd9/lr7/+0rXTsmVLli1bxoQJE0hISMDNzY127doxceJEXZkFCxYwYcIEhg8fzv379ylVqhQTJkwAHt8HIzw8nB49eqDRaOjVqxfDhw/nzz//LJDjIoQQ4tklxsdxYO1KTmzfilJaTMzNqd+5J7XadsREpv8W4rUns0JRsPexSKe0iqTIGLQPkzGyNcO8tP0LG/6UnyZPnkxQUJBuVijx+pBZoYR4fSmtltMhO9m3ehmPYmMAKN+gEX59B2FXtJiBoxNCFCS5j8VLSGOkwaKMg6HDEEIIIfLk9r8X2bVkATcvnAPAsYQ7zQYOw8O7hmEDE0K8dCSxEEIIIUQGjx7GcmDtCk7s3AZKYWphSYOuvfBp3R5jExn2JITISBILkSeTJ09m8uTJhg5DCCFEAdFq0zi9ewf7fllGYtxDACr6+uHXdxA2jk4Gjk4I8TKTxEIIIYQQANy8cI5dSxZy+98LABR196DZoHdwr+xt4MiEEIVBnhOLy5cvs2/fPi5fvkxCQgLFihWjZs2aNGjQQC7oFEIIIQqhhNgY9q1exuk92wEws7TCt3sfqr/ZFmMT+Q1SCJE7uX63WL16Nd9++y1HjhyhePHilChRAktLSx48eMClS5ewsLCgT58+jBs3Dg8Pj4KMWQghhBD5QKtN48SOPzmwdgVJ8fEAVPHzp1HvAKwdihg4OiFEYWOUm0I+Pj7MnTuXvn37cvnyZW7dukVYWBj79+8nIiKC2NhYfvvtN7RaLbVr1+bXX3/NVeN79+6lffv2uLm5odFoCAoK0q1LSUlh3LhxeHt7Y21tjZubG/379+fGjRt6dTRp0uTxnbCf+OvZs2fuj4AQQgjxGvrvnwhWfvIhu5csJCk+nmKeXvScMptWwz+UpEII8Uxy1WMxbdo02rZtm+V6c3NzmjRpQpMmTfj888+JjIzMVePx8fFUr16dgQMH0qVLF711CQkJHD9+nM8++4zq1asTFRXFqFGjeOuttzh27Jhe2SFDhjB16lTdY0tLy1y1L4QQQrxu4qOj2LtqKRF7dwNgbm2Nb49+VG/RGiMjYwNHJ4QozHKVWGSXVDytaNGiFC2au7tJt27dmtatW2e6zt7enh07dugtmz9/PnXr1uXq1auUKlVKt9zKygoXF5dcxyiEEEK8brRpaYT/tYUD61aR/CgBgKpN36RR7wFY2dkbODohxKsgV0OhnnT8+HFOnTqle/zbb7/RsWNHJkyYQHJycr4G97SYmBg0Gg0ODg56y1etWkXRokWpUqUKY8eO5eHDh9nWk5SURGxsrN7fq+jOnTsMGzaMUqVKYW5ujouLCy1btuTgwYPPVW+TJk0YNWpU/gQphBCiwF2POM2KcSPZs+wnkh8l4OxVjt7Tv6LlOyMlqRBC5Js8T/UwbNgwxo8fj7e3N//++y89e/akU6dO/PrrryQkJDBv3rwCCBMSExMZP348vXv31rudeJ8+fShdujQuLi6cPn2aTz75hBMnTmTo7XjSF198wZQpUwokzqxotVquXLlCXFwcNjY2eHh4YGSU57wuT7p06UJKSgrLli3Dy8uL27dvs2vXLh48ePBM9aWkpGBqKjdFEkKIwiLuwX1CVi7hnwMhAFjY2NKo1wCqNmshw56EEPlOo5RSednA3t6e48ePU6ZMGWbNmsXu3bv566+/OHDgAD179uTatWvPFohGw6ZNm+jYsWOGdSkpKXTr1o2rV68SHBysl1g8LSwsjNq1axMWFoaPj0+mZZKSkkhKStI9jo2Nxd3dnZiYmAx1JyYmEhkZSenSpZ95Ot2IiAi2bdum1zNiZ2dHq1atqFy58jPVmZPo6GiKFClCcHAwfn5+mZa5evUqI0aMYNeuXRgZGdGqVSvmz5+Ps7Mz8PhmeEFBQYwcOZLPP/+cy5cv069fP5YvX65XT2RkJJ6engWyH+LlkR+vBSHEi5GWmsrxPzdzcP0vpCQ+Ao2G6s1b4dujH5a2WX+GCiHE02JjY7G3t8/0e/LT8txjoZRCq9UCsHPnTtq1aweAu7s79+7de4Zws5eSkkL37t2JjIxk9+7dOe6Qj48PpqamXLhwIcvEwtzcHHNz83yPNTMRERGsW7cuw/LY2FjWrVtH9+7dCyS5sLGxwcbGhqCgIOrXr59hf5VSdOzYEWtra0JCQkhNTWX48OH06NGD4OBgXbmLFy+ybt06NmzYgLGxMR4eHly4cIGqVavqLpgvVqxYvscvhBDi2Vw5Fc7upYt48N/jH/pcy1bAf/C7OHuVNXBkQohXXZ4Ti9q1a/P555/TvHlzQkJCWLBgAfD4V+v0X7rzS3pSceHCBfbs2YOTk1OO25w5c4aUlBRcXV3zNZYnKaVISUnJsZxWq+XPP//Mtsy2bdvw8vLK1bAoU1NTNBpNrmI0MTEhMDCQIUOGsHDhQnx8fPDz86Nnz55Uq1aNnTt3cvLkSSIjI3F3dwdgxYoVVKlShaNHj1KnTh0AkpOTWbFihV7yYGZmJhfMCyHESyb23l1CVizm/KH9AFja2dO4dwBV/PzRFPDQWyGEgGdILObNm0efPn0ICgri008/pWzZx7+ArF+/noYNG+aprri4OC5evKh7HBkZSXh4OI6Ojri5udG1a1eOHz/Oli1bSEtL49atWwA4OjpiZmbGpUuXWLVqFW3atKFo0aJEREQwZswYatasia+vb153LddSUlKYMWNGvtQVGxvLzJkzc1V2woQJmJmZ5bruLl260LZtW/bt28fBgwfZtm0bs2fP5ueff9YN/0pPKgAqV66Mg4MDZ8+e1SUWHh4e0iMhhBAvsdSUFML+COLQxjWkJiWh0RhR/c02+Hbvi4WNjaHDE0K8RvKcWFSrVk1vVqh0c+bMwdg4bxeCHTt2jKZNm+oejx49GoABAwYwefJkNm/eDECNGjX0ttuzZw9NmjTBzMyMXbt28c033xAXF4e7uztt27Zl0qRJeY7lVWVhYUGLFi1o0aIFEydO5O2332bSpEmMHj06094PpZTecmtr6xcZrhBCiDy4HB7G7sAfibr5HwAlKlam2cB3KO7pZeDIhBCvozwnFk+Ki4vTXW+RLi+zBjVp0oTsrh3P6bpyd3d3QkJCct1efjE1NWXChAk5lrty5QqrVq3KsVyfPn3w8PDIVbvPq3LlygQFBVG5cmWuXr3KtWvXdL0WERERxMTEUKlSpWzrMDMzIy0t7bljEUII8Wxi7twmePlPXDx6CAArewf8+g6iUqOmuR4yK4QQ+S3PiUVkZCTvv/8+wcHBJCYm6pan/9L9Onzh1Gg0uRqSVKZMGezs7LK9T4adnR1lypTJ96ln79+/T7du3Rg0aBDVqlXD1taWY8eOMXv2bDp06EDz5s2pVq0affr0Yd68ebqLt/38/Khdu3a2dXt6enL48GEuX76MjY0Njo6OBT51rhBCCEhNTubo7xs4sulXUlOS0RgZUbNVexp26425lfQwCyEMK8+JRZ8+fQBYsmQJzs7O8stINtKncM1sVqh0rVq1KpAv5TY2NtSrV4+vv/6aS5cukZKSgru7O0OGDGHChAloNBqCgoIYMWIEjRs31ptuNidjx45lwIABVK5cmUePHsl0s0II8QL8e/woewJ/JPr2TQBKVq6K/8B3KFrK07CBCSHE/5fn+1jY2NgQFhZGhQoVCiqmFy67+XkL630shMhvch8LIQwj+vYt9gQu4t/jRwGwKeKIX7/BVGjYWH7cE0IUuAK9j0WdOnW4du3aK5VYFLTKlStTsWLFF37nbSGEEIVXSlIiR37bwNHN60lLScHI2BifNh1o0KUnZpZWhg5PCCEyyHNi8fPPP/POO+/w33//UbVq1QwXFFerVi3fgnuVGBkZUbp0aUOHIYQQ4iWnlOLisUMEL/uJ2Lt3ACjlXYNmA4fhVMI9h62FEMJw8pxY3L17l0uXLjFw4EDdMo1G81pdvC2EEEIUhAc3/mPPsh+5HB4GgK1TMZr0H0y5er4y7EkI8dLLc2IxaNAgatasyS+//CIXbwshhBD5ICUxkUOb1hK2ZRNpqakYm5hQu31n6nXsjqlc0ySEKCTynFhcuXKFzZs36+64LYQQQohno5TiwuEDBC9fzMP7dwHwrFGLZgFDKeJawsDRCSFE3uQ5sWjWrBknTpx47RKLPE6eJcQrR14DQuSv+9evsTtwEVdPhQNgV8yZpgOGUKZ2PRkNIIQolPKcWLRv354PP/yQU6dO4e3tneHi7bfeeivfgnsZpO9fQkIClpaWBo5GCMNJTk4GwNjY2MCRCFG4JT9K4OCGNRzf+hvatDSMTU2p81ZX6nbsiqmZuaHDE0KIZ5bn+1hkN0VqYb14O6f5eW/evEl0dDTFixfHyspKfkkSrx2tVsuNGzcwNTWlVKlS8hoQ4hkopfgndC97VywmLuoBAF616tK0/xAcXFwNHJ0QQmSuQO9jodVqnzmwwsrFxQWAO3fuGDgSIQzHyMhIkgohntG9q5fZtXQh1yNOA+Dg7ErTgKF4+dQxcGRCCJF/8pxYvI40Gg2urq4UL16clJQUQ4cjhEGYmZnJTR2FyKOkhHhCf13N39t+R2m1mJiZU69jN2q374yJmZmhwxNCiHyVq8RizZo19OzZM1cVXrt2jatXr+Lr6/tcgb2MjI2NZXy5EEKIHCmliNi7m72rlpIQEw1A2ToNaDpgCHbFihs2OCGEKCC5+vlxwYIFVKxYkVmzZnH27NkM62NiYti6dSu9e/emVq1aPHjwIN8DFUIIIQqDO5f/Zc2kcWz74WsSYqIp4lqCLp9MocPYTyWpEEK80nLVYxESEsKWLVuYP38+EyZMwNraGmdnZywsLIiKiuLWrVsUK1aMgQMHcvr0aYoXlzdOIYQQr5fEuDgOrFvBie1/opQWE3Nz6nfuSa22HTF5agZFIYR4FeV5Vqj79++zf/9+Ll++zKNHjyhatCg1a9akZs2ahXb8dV6udhdCCCGepLRaTofsZN/qZTyKjQGgfING+PUdhF3RYgaOTgghnk+Bzgrl5OREhw4dnjk4IYQQ4lVx69IFdi9ZyM2L5wBwLOFOs4HD8PCuYdjAhBDCAGRWKCGEECKPHj2MZf+a5Zzc9RcohamFJQ279qJm67cwNpGPViHE60ne/YQQQohc0mrTOLVrO/vXLCcx7iEAFX398Os7CBtHJwNHJ4QQhiWJhRBCCJELNy+cY9eSBdz+9yIARUt54j/wHUpWrmrgyIQQ4uUgiYUQQgiRjYTYGPatDuT0nh0AmFla4dujLzXebIuR3NtICCF0njmxSE5OJjIykjJlymAi40mFEEK8YrRpaZzY+ScH1q4gKT4egCp+/jTqHYC1QxEDRyeEEC+fPGcECQkJjBgxgmXLlgFw/vx5vLy8GDlyJG5ubowfPz7fgxRCCCFepP/+iWDXkgXcvRIJQDFPL/wHvUuJCpUMHJkQQry88nzjiU8++YQTJ04QHByMhYWFbnnz5s1Zu3ZtvgYnhBBCvEjx0VH8+f1c1kz6mLtXIjG3tsZ/0Lv0/eJrSSqEECIHee6xCAoKYu3atdSvXx+NRqNbXrlyZS5dupSvwQkhhBAvgjYtjb+3bSH011UkP0oAoGrTN2nUewBWdvYGjk4IIQqHPCcWd+/epXjx4hmWx8fH6yUaQgghRGFwLeIUu5cs5N61KwA4e5XDf/A7uJatYODIhBCicMlzYlGnTh3++OMPRowYAaBLJn766ScaNGiQv9EJIYQQBSTuwX1CVi7hnwMhAFjY2tGoV3+qNm2BkZHM9iSEEHmV58Tiiy++oFWrVkRERJCamso333zDmTNnOHjwICEhIQURoxBCCJFv0lJTOL51Mwc3rCEl8RFoNFRv3grfHv2wtLUzdHhCCFFo5TmxaNiwIQcOHODLL7+kTJkybN++HR8fHw4ePIi3t3dBxCiEEELkiyunwtm9ZCEPblwHwLVsBfwHv4uzV1kDRyaEEIWfRimlDB2EocXGxmJvb09MTAx2dvJrlRBCvGpi790lZMVizh/aD4ClnT2NewdQxc8fjVGeJ0gUQojXRl6+Jz/zne3u3LnDnTt30Gq1esurVav2rFUKIYQQ+So1JYWwLZs4tGktqUlJaDRG1GjZlobd+mBhY2Po8IQQ4pWS58QiLCyMAQMGcPbsWZ7u7NBoNKSlpeVbcEIIIcSzigwPY0/gIqJu3gCgRMXKNBv4DsU9vQwcmRBCvJrynFgMHDiQ8uXLs3jxYpydnWWKWSGEEC+VmDu3CV7+ExePHgLA2qEIjfsOotIbTeQzSwghClCeB5ZGRkYye/Zs6tWrh6enJx4eHnp/ebF3717at2+Pm5sbGo2GoKAgvfVKKSZPnoybmxuWlpY0adKEM2fO6JVJSkpixIgRFC1aFGtra9566y2uX7+e190SQghRyKUmJ3Nw/S8Ejn6Xi0cPoTEyolbbDgz8ehGVGzWVpEIIIQpYnhMLf39/Tpw4kS+Nx8fHU716db777rtM18+ePZu5c+fy3XffcfToUVxcXGjRogUPHz7UlRk1ahSbNm1izZo17N+/n7i4ONq1aydDsoQQ4jVyKewIgWOHE/rrKlJTkilZuSr9Z31Lk/5DMLeyMnR4QgjxWsjzrFD37t1jwIAB1K1bl6pVq2Jqaqq3/q233nq2QDQaNm3aRMeOHYHHvRVubm6MGjWKcePGAY97J5ydnZk1axbDhg0jJiaGYsWKsWLFCnr06AHAjRs3cHd3Z+vWrbRs2TJXbcusUEIIUThF37rJnmU/8u/xowDYFHHEr99gKjRsLD0UQgiRDwp0VqjQ0FD279/Pn3/+mWFdfl68HRkZya1bt3jzzTd1y8zNzfHz8yM0NJRhw4YRFhZGSkqKXhk3NzeqVq1KaGhorhMLIYQQhUtKUiJHflvP0c0bSEtJwcjYmFptO1K/S0/MLCwNHZ4QQryW8pxYjBw5kn79+vHZZ5/h7OxcEDEBcOvWLYAMbTg7O3PlyhVdGTMzM4oUKZKhTPr2mUlKSiIpKUn3ODY2Nr/CFkIIUYCUUlw8epDg5T8Te/cOAKW8a9Bs4DCcSrgbODohhHi95TmxuH//Ph9++GGBJhVPerorWymVY/d2TmW++OILpkyZki/xCSGEeDEe3PiPPYGLuHziOAC2TsVoMuBtytVtKMOehBDiJZDni7c7d+7Mnj17CiIWPS4uLgAZeh7u3LmjS2pcXFxITk4mKioqyzKZ+eSTT4iJidH9Xbt2LZ+jF0IIkV9SEhPZtzqQZWPf4/KJ4xibmFCvU3cGzl1A+Xq+klQIIcRLIs89FuXLl+eTTz5h//79eHt7Z7h4e+TIkfkSWOnSpXFxcWHHjh3UrFkTgOTkZEJCQpg1axYAtWrVwtTUlB07dtC9e3cAbt68yenTp5k9e3aWdZubm2Nubp4vcQohhCgYSinOHzpA8Iqfibt/D4DSNWrRNGAoRVxLGDg6IYQQT8tzYvHzzz9jY2NDSEgIISEheus0Gk2eEou4uDguXryoexwZGUl4eDiOjo6UKlWKUaNGMWPGDMqVK0e5cuWYMWMGVlZW9O7dGwB7e3sGDx7MmDFjcHJywtHRkbFjx+Lt7U3z5s3zumtCCCFeEvevX2P30oVcPf14enO7Ys40HTCEMrXrSQ+FEEK8pPKcWERGRuZb48eOHaNp06a6x6NHjwZgwIABBAYG8vHHH/Po0SOGDx9OVFQU9erVY/v27dja2uq2+frrrzExMaF79+48evQIf39/AgMDMTY2zrc4hRBCvBjJjxI4uGENx7f+hjYtDWNTU+p26EqdDl0xNZOeZiGEeJnl+T4WryK5j4UQQhiWUop/DoQQsnIJ8VEPAPCqVZemA4bi4Oxi4OiEEOL1le/3sRg9ejTTpk3D2tpa16uQlblz5+Y+UiGEEK+9e1cvs2vpQq5HnAbAwdmVpgFD8fKpY+DIhBBC5EWuEou///6blJQU3f9CCCHE80pKiCd03Sr+/msLSqvFxMycep26U7tdJ0zMzAwdnhBCiDySoVDIUCghhHiRlFZLxL497F21lISYaADK1W1Ik/5vY1esuGGDE0IIoScv35PzfB+LQYMG8fDhwwzL4+PjGTRoUF6rE0II8Rq5c/lf1kwax7YfviYhJpoiriXoMmEqb42ZIEmFEEIUcnnusTA2NubmzZsUL67/AXDv3j1cXFxITU3N1wBfBOmxEEKIgpUYF8eBdSs4sf1PlNJiam5B/S49qdW2A8YmpjlXIIQQwiDy/eLt9EqVUiilePjwIRYWFrp1aWlpbN26NUOyIYQQ4vWmtFpOB+9k3+pAHj2MBaBCg0b49RuMrVNRA0cnhBAiP+U6sXBwcECj0aDRaChfvnyG9RqNhilTpuRrcEIIIQqvW5cusGvJAm5dPM//a+++46Oq0sePf6Ykk94rpBF66BA6EkooFrqC0l3dXddVV9FVV/dn2bX7lXWtu+66IL1IUUApoffeQycklISQhPRkkpk5vz8GBoYkkADpz/v1ykvnnnNnnnuYZO4z957zAPiGhNHvyd8T1rpdNUcmhBCiMpQ7sVi/fj1KKfr168eiRYvw8fGxtTk6OhIeHk6DBg0qJUghhBA1k8Vi5uKxo+RmXsXNy5uGLVthzMtjy9wZHFq3CpTC0dmZ7o+OpcPgIej0Fa7LKoQQopYo91/4mJgYwFp5OywsDI1Gc9v+zz77LH/729/w85NL3UIIURed2rmNddO/IzcjzbbN4OqKxWymuLAQgJa9+tB7/G9w8/Yp62mEEELUEZW23KyHhwcHDhwgMjKyMp7+vpLJ20IIUTGndm7j56kflNnu7ufPQ398mZCo1lUYlRBCiPutUpebLS8pjyGEEHWTxWJm3fTvbttHKUWDFi2rKCIhhBA1QaUlFkIIIeqmi8eO2t3+VJrc9DQuHjtaRREJIYSoCSSxEEIIUW4FOdnsWbG0XH1zM69WbjBCCCFqFFmeQwghxB0V5uWyd8VS9v3yE0UFBeXax83Lu5KjEkIIUZNIYiGEEKJMRQX57Pt1GXuWL8aYlweAX3gjcjPSKMzJKXM/d18/GrZsVVVhCiGEqAEqLbEYP368rLAkhBC1VLGxkAOrf2H3Tz/aKmb7hoTRY/Q4mnbuzundO267KlTfSb9Dq9VVVbhCCCFqgHItN3vo0KFyP2Hbtm3vKaDqIMvNCiGElamoiENrV7Jr6ULyrs2R8A5uQPdHx9K8xwN2yUJpdSzcff3oO+l3NO3ao8pjF0IIcf9V5Dy5XImFVqtFo9GUuYTs9TaNRoPZbL67qKuRJBZCiPrObCrmyPo4diyZT266NVHw8A+k+6jHierdD62u9KsPpVXelisVQghRd1TkPLlct0IlJCTcl8CEEELULBazmfjN69n+41yyr1wGwM3Hl24jH6d131h0eofb7q/V6ghtVfuuVAshhLj/ypVYhIeHV3YcQgghqpDFYubEts1s/3EuV5MvAuDi6UXXEaNp238wekfHao5QCCFEbXPXk7fj4+NJSkqiqKjIbvvQoUPvOSghhBCVQ1ksnNq9nW0LZpN+IQkAJ3cPugwdRftBD+NgcKrmCIUQQtRWFU4szp49y4gRIzh8+LDdvAuNRgNQK+dYCCFEXaeU4uy+3WxdMIsr584CYHB1JfqRkXR8cAiOzi7VHKEQQojarsKJxZ/+9CcaNWpEXFwckZGR7Nq1i/T0dF5++WX+7//+rzJiFEIIcZeUUiQe2s+2BbNJPn0CAAcnZzo9PIxODw/HydWtmiMUQghRV1Q4sdi+fTvr1q3D398frVaLVqulV69efPjhh7zwwgvs37+/MuIUQghRQefjD7N1/iwuHj8KgN7RQIfBjxA9ZCQuHp7VHJ0QQoi6psKJhdlsxs3N+g2Xn58fly5donnz5oSHh3PixIn7HqAQQoiKuXTyGFvnzyLpyEEAdA4OtBvwEF2GPYqrl3c1RyeEEKKuqnBi0bp1aw4dOkRkZCRdu3blk08+wdHRke+++47IyMjKiFEIIUQ5XD57mq0LZpGwfw8AWp2eNv0G0nXEaNx9/ao5OiGEEHVdhROLv/71r+Tl5QHw3nvv8cgjj/DAAw/g6+vL/Pnz73uAQgghbu9K0jm2LZjN6d3bAdBotbSK6U+3kY/jGRBYzdEJIYSoL8pVeftOMjIy8Pb2tq0MVdtI5W0hRG2UfvE82xfO4cSOLaAUaDS07NWH7qMexzu4YXWHJ4QQog6475W3S3P69GnOnDlD79698fHx4T7kJ0IIIcohMyWZ7YvmcmzzBpSyANCsWy96PDYW35Cw6g1OCCFEvVXhxCI9PZ3Ro0ezfv16NBoNp06dIjIykqeffhovLy8+++yzyohTCCHqvey0VHYsns/RDXFYrtUMahzdlR6PjSMgQua4CSGEqF4VTixeeuklHBwcSEpKomXLlrbtY8aM4aWXXpLEQggh7rPcjHR2Ll3A4bWrMJtMAES070TPx8YR1KRZNUcnhBBCWFU4sVi9ejWrVq0iJCTEbnvTpk1JTEy8b4EJIUR9l5+Vya6ffuTg6l8wFRcBENqqLT1Hj6dhi6hqjk4IIYSwV+HEIi8vDxcXlxLb09LSMBgM9yUoIYSozwpyc9izbDH7f11GsbEQgAbNWtJzzHjCWrer5uiEEEKI0lU4sejduzczZszg73//OwAajQaLxcKnn35K375973uAQghRXxjz89i7Yil7V/xEUUE+AIGRTek5ZjwR7TrW2pX3hBBC1A8VTiw+/fRT+vTpw549eygqKuLVV1/l6NGjZGRksHXr1sqIUQgh6rSiwgL2/7qMPcsWU5iXC4B/WAQ9Ro+ncXRXSSiEEELUCtqK7hAVFcWhQ4fo0qULAwYMIC8vj5EjR7J//34aN2583wOMiIhAo9GU+PnjH/8IwOTJk0u0devW7b7HIYQQ91txkZE9y5fw3+efZsu8GRTm5eLTIIRHXnyNCR9/QZPO3SSpEEIIUWtU6IpFcXExAwcO5N///jfvvvtuZcVkZ/fu3ZivLasIcOTIEQYMGMBjjz1m2zZ48GCmTZtme+zo6FglsQlRn1ksFhITE8nNzcXNzY3w8HC02gp/V1EvmYqLObx2JTuXLiTvagYAXoHBdH9sLC169kar1VVzhEIIIUTFVSixcHBw4MiRI1X6DZq/v7/d448++ojGjRsTExNj22YwGAgKCqqymISo7+Lj41m5ciXZ2dm2bR4eHgwePJioKFmtqCxmk4mjG+PYsWg+OelXAHD386f7qCeI6t0Pnf6ua5YKIYQQ1a7Cn2ITJ07k+++/56OPPqqMeG6rqKiIWbNmMWXKFLvkZsOGDQQEBODl5UVMTAzvv/8+AQEBZT6P0WjEaDTaHt98ciSEuL34+HgWLFhQYnt2djYLFixg9OjRklzcwmIxc2zzBrYvmkvW5RQA3Lx96DpiDK37DUTv4FC9AQohhBD3QYUTi6KiIv773/+yZs0aoqOjcXV1tWufOnXqfQvuVkuXLiUzM5PJkyfbtj344IM89thjhIeHk5CQwP/7f/+Pfv36sXfv3jKXv/3www+r7FYuIeoSi8XCypUrb9tn5cqVtGjRQm6LApTFwontm9n241yuXroAgIunF12GPUbbAYNxcJQluoUQQtQdGqWUqsgOt1tSVqPRsG7dunsOqiyDBg3C0dGRZcuWldknOTmZ8PBw5s2bx8iRI0vtU9oVi9DQULKysvDw8LjvcQtRVyQkJPDDDz/csd+kSZNo1KhRFURUMymlOL17O9sWziEt6RwATm7udB46ig6DHsHByal6AxRCCCHKKTs7G09Pz3KdJ1f4isX69evvOrB7kZiYSFxcHIsXL75tv+DgYMLDwzl16lSZfQwGgxTzE+Iu5Obm3td+dY1SioQDe9g6fxapCWcAcHR2IfqREXR8aBiGUoqLCiGEEHVFrZkpOG3aNAICAnj44Ydv2y89PZ3z588THBxcRZEJUX/oyzm52M3NrZIjqVmUUiQdPsjWBTNJPnUCAAeDEx0fGkb0IyNwqmfjIYQQon6qFYmFxWJh2rRpTJo0ye7EJjc3l3feeYdRo0YRHBzMuXPneOONN/Dz82PEiBHVGLEQdU92djZxcXF37Ofh4UF4eHgVRFQzXDh2hK0LZnEh/ggAekcD7Qc9TOeho3Dx8Kzm6IQQQoiqUysSi7i4OJKSkvjNb35jt12n03H48GFmzJhBZmYmwcHB9O3bl/nz5+Pu7l5N0QpR91y9epUZM2Zw9epVnJ2dKSgoKLPv4MGD68XE7eRTJ9i6YBaJh/YDoNPraRv7IF2GP4abt081RyeEEEJUvQpP3q6LKjIpRYj65sqVK8yYMYOcnBy8vb2ZOHEiycnJ9baOxeWEM2xbMIuz+3YDoNXpaN13AF1HjMHDz/8OewshhBC1S6VO3hZC1B/JycnMnDmT/Px8/P39mTBhAh4eHnh7e9OiRYt6VXk77Xwi2xbO5tTObQBoNFqievej26jH8QqUAp1CCCGEJBZCiFIlJSUxe/ZsjEYjwcHBjB8/3q5ujVarrRdLymZcusj2H+dwfNsmUAo0Glr06E33R5/Ap0FIdYcnhBBC1BiSWAghSjhz5gzz5s2juLiYsLAwxo4di1M9q72QlZrC9h/nEb9pHUpZAGjatQc9Hh2LX1hE9QYnhBBC1ECSWAgh7Bw/fpyFCxdiNptp3LgxY8aMwdHRsbrDqjLZaVfYuWQ+R9avwWI2AxDZsTM9Ro8nsFHjao5OCCGEqLkksRBC2Bw6dIglS5aglKJly5aMGjWq3LUrarvcqxnsWrqQQ3G/YjaZAAhv24Geo8cT3LR5NUcnhBBC1Hz144xBCHFHe/bsYfny5QC0bduWYcOGodPpqjmqypefncXunxdxYNUKTEVGAEJatqbnmPGEtGxdzdEJIYQQtYckFkIItm3bxurVqwHo3LkzDz74YJ1e4QmgMDeXPcuXsO/XnykutNblCG7anJ6jJxDWph0ajaaaIxRCCCFqF0kshKjHlFJs2LCBjRs3AtCzZ09iY2Pr9Em1MT+ffb/+xN7lSzHm5wEQ0KgxPceMp1H76Dp97EIIIURlksRCiHpKKcWqVavYsWMHAP369aN3797VHFXlKS4sZP+q5ez+eRGFuTkA+IWG02PMeJpEd5OEQgghhLhHklgIUQ9ZLBaWL1/Ovn37AHjwwQfp2rVrNUdVOUxFRRxc8yu7flpIflYmAN4NQujx2Fiad+uFpo7f8iWEEEJUFUkshKhnzGYzS5Ys4ciRI2g0GoYOHUqHDh2qO6z7zmwq5vC6NexcMp/cjHQAPAOD6D7qCVr26oO2HkxMF0IIIaqSJBZC1CPFxcUsXLiQkydPotVqGTVqFK1atarusO4ri9nM0U1r2bFoHtlXUgFw9/Wn26jHaRXTH109WT5XCCGEqGryCStEPWE0Gpk3bx4JCQno9XpGjx5Ns2bNqjus+8ZiMXN86ya2/ziHzJRkAFy9feg6YjRt+g1C7+BQzREKIYQQdZskFkLUAwUFBcyePZsLFy7g6OjI2LFjiYiIqO6w7gtlsXBy5za2LZxNxsXzADh7eNJl2KO0G/gQDo6Gao5QCCGEqB8ksRCijsvNzWXmzJlcvnwZJycnxo8fT0hISHWHdc+UUpzZu4ttC2ZxJTEBACdXN6KHjqLD4EdwdHKu5giFEEKI+kUSCyHqsKysLGbMmEF6ejqurq5MnDiRwMDA6g7rniilOHdwH9sWzCLlzCkAHJ1d6PTwcDo9PAyDi2s1RyiEEELUT5JYCFFHZWRk8MMPP5CVlYWHhweTJk3C19e3usO6J0lHDrF1wSwunYgHwMHgRIcHhxA9ZCTObu7VHJ0QQghRv0liIUQdlJqayowZM8jNzcXHx4eJEyfi5eVV3WHdtYvH49m6YBbnjx4CQO/gSLtBD9Nl6ChcPL2qNzghhBBCAJJYCFHnXLp0iZkzZ1JQUEBAQAATJkzA3b12fpufcuYUWxfM4tyBvQDo9Hra9B9M1+GP4eZTu6++CCGEEHWNJBZC1CGJiYnMnj2boqIiGjZsyLhx43BxcanusCrsSmICWxfM5syeHQBodTpa9Yml28gxePgFVHN0QgghhCiNJBZC1BGnT59m3rx5mEwmwsPDGTt2LAZD7VpqNf3CebYtnM3JHVsA0Gi0RPXuS7dRT+AVGFTN0QkhhBDidiSxEKIOiI+P58cff8RisdCkSRPGjBmDQy0qCHc15RLbf5zL8S0bUcoCGg3Nuz9A90efwLdhaHWHJ4QQQohykMRCiFru4MGDLF26FKUUUVFRjBw5Er2+dvxqZ19JZfuieRzdGIeyWABo0rk7PUaPwz8sonqDE0IIIUSF1I6zDyFEqXbv3s2KFSsAaN++PUOHDkWr1VZzVHeWk5HGzsULOLxuNRazCYDIjp3p8dg4AiObVHN0QgghhLgbklgIUUtt2bKFuLg4ALp27cqgQYNqfFKRl3mVXT/9yME1v2AuLgYgrE17eo4eR4NmLas5OiGEEELcC0kshKhllFKsW7eOzZs3A/DAAw/Qr18/NBpNNUdWtoKcbHYvW8z+lcswGY0ANGzRip5jxhMa1aaaoxNCCCHE/SCJhRC1iMViYdWqVezcuROA2NhYevXqVc1Rla0wL5e9K5ay75efKCooACC4SXN6jBlPeJv2NToZEkIIIUTFSGIhRC1hsVj4+eefOXDgAAAPPfQQXbp0qd6gylBUkM++X5exZ/lijHl5AARENKbH6HFEduwsCYUQQghRB0liIUQtYDKZWLx4MfHx8Wg0GoYPH067du2qO6wSio2FHFj9C7t/+pGCnGwAfEPC6Dl6PE06d0NTw+eACCGEEOLuSWIhRA1XXFzM/PnzOX36NFqtlkcffZSoqKjqDsuOqaiIQ2tXsmvpQvIyrwLgHdyQ7o+NpXn3Xmi1umqOUNzMbDGzL3UfV/Kv4O/iT8eAjujk30gIIcQ9ksRCiBrMaDQyZ84cEhMT0ev1PP744zRpUnOWYzWbijmyPo4dS+aTm54GgGdAIN1GPUHUA33R6uRktaaJS4zjo10fcTn/sm1boEsgr3d5ndjw2GqMTAghRG0niYUQNVR+fj6zZ8/m4sWLGAwGxo4dS3h4eJW9vsVi5uKxo+RmXsXNy5uGLVvZrjxYzGbiN69n+49zyb5iPUF18/Wj+8jHadWnPzp97an6XZ/EJcYxZcMUFMpue2p+KlM2TGFqn6mSXAghhLhrklgIUQPl5OQwc+ZMUlNTcXZ2ZsKECTRo0KDKXv/Uzm2sm/4duRlptm1uPn70mfQ0FpOJ7T/O5WryRQBcvbzpMnw0bfsPQu/oWGUxiooxW8x8tOujEkkFgEKhQcPHuz6mb2hfuS1KCCHEXZHEQogaJjMzkxkzZpCRkYGbmxsTJ04kICCgyl7/1M5t/Dz1gxLbczPSWP6Pj2yPnd096DzsUdoPfAgHg1OVxSfuzr7UfXa3P91KoUjJT2Ff6j46B3WuwsiEEELUFTV+iZZ33nkHjUZj9xMUFGRrV0rxzjvv0KBBA5ydnenTpw9Hjx6txoiFuHvp6en873//IyMjA09PT37zm99UaVJhsZhZN/2723fSaOg5ejxPf/lfOg8ZKUlFDZdblMuvCb8yde/UcvW/kn+lkiMSQghRV9WKKxatWrUiLi7O9lh304TQTz75hKlTpzJ9+nSaNWvGe++9x4ABAzhx4gTu7u7VEa4Qd+Xy5cvMmDGDvLw8fH19mThxIp6enlUaw8VjR+1ufyqVUjRsEYWjs0vVBCUqLLMwk/Xn17M2aS3bLm2j2FJc7n39XfwrMTIhhBB1Wa1ILPR6vd1ViuuUUnz++ee8+eabjBw5EoAffviBwMBA5syZw+9///uqDlWIu3LhwgVmzZpFYWEhgYGBTJgwATc3N1u72aLYlZBBak4hAe5OdGnkg057/4vM5V5bKvZ+9RNVJzU/lXVJ64hLimNPyh7Mymxri/CIoF9YP5aeXsrVwqulzrPQoCHQJZCOAR2rMmwhhBB1SK1ILE6dOkWDBg0wGAx07dqVDz74gMjISBISEkhJSWHgwIG2vgaDgZiYGLZt2yaJhagVzp07x5w5cygqKiIkJIRx48bh7Oxsa195JJl3l8WTnFVo2xbs6cTbQ6IY3Dr4vsVRkJvDqZ3bytXXzcv7vr2uuHsXci6wNmktcYlxHLxy0C5haO7dnNjwWGLDYmns1RiNRkMbvzZM2TAFDRq7vhqsSeprXV6TidtCCCHuWo1PLLp27cqMGTNo1qwZly9f5r333qNHjx4cPXqUlJQUAAIDA+32CQwMJDExscznNBqNGI1G2+Ps7OzKCV6IOzh16hTz58/HZDLRqFEjHn/8cQwGg6195ZFk/jBrX4nvl1OyCvnDrH18O77jPScXpuJiDqxazo7F8zDm5d2xv7uvHw1btrqn1xR372zmWdYkrmFt0lqOZRyza2vr35YBYQPoH9afUI/QEvvGhscytc/UUutYvNblNVlqVgghxD2p8YnFgw8+aPv/Nm3a0L17dxo3bswPP/xAt27dANBo7G8JUUqV2HazDz/8kHfffbdyAhainI4ePcqiRYuwWCw0a9aMxx57DAeHG/UfzBbFu8viS7lpBRSgAd5dFs+AqKC7ui1KKcXJHVvYPGc6WanWk0z/sAgad+7GjkXzytyv76TfSSXtKqSU4ljGMeIS44hLiiMhK8HWptVoiQ6Mpn9Yf/qH9SfQNfA2z2QVGx5L39C+UnlbCCHEfVfjE4tbubq60qZNG06dOsXw4cMBSElJITj4xre2qampJa5i3Owvf/kLU6ZMsT3Ozs4mNLTkt3tCVJb9+/fz888/o5SidevWjBgxwm5RAoBdCRl2tz/dSgHJWYXsSsige2PfCr3+xRPH2DjzvySfOgGAq7cPvcZMICqmH1qtjoDwyBJ1LNx9/eg76Xc07dqjQq8lKs6iLBy8cpC4xDjWJq3lYu5FW5teq6d7cHdiw2PpE9oHHyefCj+/TquTJWWFEELcd7UusTAajRw7dowHHniARo0aERQUxJo1a+jQoQMARUVFbNy4kY8//rjM5zAYDHa3mwhRlXbu3Mmvv/4KQMeOHXnkkUfQakuu/JyaU3ZScTf9ADJTktk8Zzond24FwMHgROeho4h+ZAQOTjeWjW3atQeNO3cts/K2uP+KLcXsSdnD2qS1rE1aS1rBjaTOWe9Mr4a96B/Wn94hvXF3lBXvhBBC1Dw1PrF45ZVXGDJkCGFhYaSmpvLee++RnZ3NpEmT0Gg0vPjii3zwwQc0bdqUpk2b8sEHH+Di4sLYsWOrO3QhSti0aRPr1q0DoFu3bgwaNKjM2/YC3MtXH6I8/Qpyc9ixaB4HVq3AYjah0Whp3W8APR4bh5t36d94a7U6Qlu1LVcM4u4YzUa2X9pOXGIcGy5sIMuYZWtzc3AjJjSGAWED6NGwB85659s8kxBCCFH9anxiceHCBZ544gnS0tLw9/enW7du7Nixg/DwcABeffVVCgoKePbZZ7l69Spdu3Zl9erVUsNC1ChKKeLi4ti61XqlICYmhj59+tx2LlCAuwGdVoPZUtosC+sciyBP69KzZSltYnZE+07EjHsSv7CIuz4ecffyi/PZfHEzcYlxbLqwiXxTvq3N2+BNv7B+xIbH0jWoKw46h9s8kxBCCFGzaJRSpZ+11CPZ2dl4enqSlZWFh4dHdYcj6hiLxcKvv/7K7t27ARg4cCA9etx+nsLW02k8O3sfWQWlFza7no6UtSpUWROze4//DRHtpE5BVcsyZrHxwkbWJK5h28VtFFmKbG0BLgHEhsUSGx5Lh4AO6LU1/vseIYQQ9UhFzpPlE0yISmQ2m/npp584dOgQAI888gjR0dFl9ldKMWN7In9bHo/Zomgf6sUTnUP5fO0pu4ncQbepY1HaxOyeY8bTKqa/zJGoQmkFadaCdYlx7E7ZjUmZbG2h7qG2GhOt/Vqj1ZScYyOEEELUNpJYCFFJTCYTixYt4tixY2g0GkaMGEHbtmXPWSgyWXj756PM3ZUEwMgODflgZBucHHQ8Gh16x8rb5Z2YLSrPpdxLtoJ1+1P32xWha+LVhAHh1hoTzbyb3fY2OCGEEKI2ksRCiEpQVFTE/PnzOXPmDDqdjscee4wWLVqU2T8918gfZu1j17kMNBr4y4Mt+O0DkbaTT51WU+aSsgW5OexcPI/9K2+amN03lh6jx5c5MVvcP+eyzhGXFEdcYhxH04/atbX2bU3/8P7EhsUS4RlRPQEKIYQQVUQSCyHus8LCQubMmUNSUhIODg48/vjjNG7cuMz+x5KzefqHPVzMLMDdoOeLJzrQt0XAHV+nrInZvcc9ib9MzK40SilOXj1pq359OvO0rU2Dho6BHYkNi6V/WH+C3e6tKroQQghRm0hiIcR9lJ+fz8yZM0lOTsZgMDBu3DjCwsLK7L/ySApTFhwgv8hMhK8L/50UTZOA269oZp2YvZXNc6eTdTkFAL+wCGJkYnalsSgLh9MOW6tfJ8ZxIfeCrU2v0dM1uCv9w/vTN7Qvfs5+1RipEEIIUX0ksRDiPsnJyWHGjBlcuXIFFxcXJkyYYFcR/mZKKb5ad5rP1pwEoFcTP74a2wEvF8fbvsbFE8fYOOt7kk8eB2RidmUyWUzsu7yPuCRr9evU/FRbm0FnoGeDnsSGx9I7pDeeBs9qjFQIIYSoGSSxEOI+uHr1KjNmzODq1au4u7szceJE/P39S+1bUGTmlR8PsuJQMgCTe0Tw14dboteVvTJQZkoym+f+wMkdWwDQGwx0HjKKzkNGysTs+6jIXMSO5B2sTVrL+qT1XDVetbW56F2ICYkhNjyWXg174eLgUo2RCiGEEDWPJBZC3KO0tDRmzJhBdnY2Xl5eTJo0CW9v71L7Xsos4Lcz9nD0UjYOOg1/H9aax7uUfauUTMyufPnF+Wy9tNVWsC63ONfW5mnwpG9oXwaED6BrcFcMOkM1RiqEEELUbJJYCHEPUlJSmDFjBvn5+fj5+TFx4sQyi8fsTbzK72fuJS3XiK+rI9+O71Rm1WxTcTEHV69gx6J5FOZZT3Qj2nWk9/jfyMTs+yC7KJtNFzYRlxjH1otbKTTfqBHi7+xPv7B+DAgfQKfATlKwTgghhCgn+cQU4i6dP3+e2bNnU1hYSFBQEBMmTMDV1bXUvgv3nOfNJUcoMltoEeTOfydFE+Jd8laaMidmj3uSiPadKvV46rqMwgzWJ61nTdIadibvxGS5UbCuoVtDW/Xrtv5tpWCdEEIIcRcksRDiLpw9e5a5c+dSXFxMaGgo48aNw6mUuQ4ms4WPfj3Of7ckADCoVSBTR7fH1VDyV+/SyWNsmCkTs++nlLwU1iatZW3SWvZe3otFWWxtkZ6RturXLXxaSME6IYQQ4h5JYiFEBZ04cYIFCxZgNpuJjIzk8ccfx9Gx5GpOWQXFPD93P5tOXgHgT/2b8qf+TdHeWjH7coq1YvYtE7Ojh4zA0cm58g+ojknKTrKu5JS4lkNph+zaWvq0tFW/jvSKrKYIhRBCiLpJEgshKuDIkSMsXrwYi8VCixYtePTRR9HrS/4anb2Sy9Mz9nD2Sh5ODlo+e6w9D7e1X3rWOjF7PvtXLsdiNoFGQ+s+A+g5ehxuPqVX2RYlKaU4nXnaWmMiKY6TV0/a2jRoaB/Qnv5h/YkNj6WhW8NqjFQIIYSo2ySxEKKc9u7dy7JlywBo06YNw4cPR6creYvSppNX+OOcfeQUmmjg6cR3E6Np3fBGnYPSJmaHt+1AzPjf4B/eqGoOppZTSnE0/agtmUjMTrS16TQ6Ogd1JjYsln5h/fB3KX3ZXyGEEELcX5JYCFEO27dvZ9WqVQBER0fz0EMPodXaT/BVSvG/red4f0U8FgWdwr351/hO+LsbbO2ndm5l05ybJmaHhlsrZsvE7DsyW8zsT93P2qS1xCXFkZKXYmtz1DrSo0EP+of3p09IH7ycvKovUCGEEKKeksRCiNtQSrFx40Y2bNgAQI8ePRgwYECJib5Gk5m/LjnCwr0XAHisUwjvjWiNQW+9olFiYraXNz3HTKBVH5mYfTvF5mJ2pewiLimOdUnryCjMsLU5653pHdKb2LBYHgh5AFeH0lfkEkIIIUTVkMRCiDIopVizZg3btm0DoG/fvvTu3btEUnElx8gzs/ayN/EqWg28+XAUv+kZgUajsU7MnvsDJ7dvBq5PzB5J9JCRMjG7DIWmQrZe2sraxLVsuLCBnKIcW5u7ozt9Q/sSGxZL9wbdcdJL1XEhhBCippDEQohSWCwWVqxYwd69ewEYNGgQ3bt3L9HvyMUsfjdjD5eyCnF30vPV2I7ENPOnMDeXHYvnycTscsotymXzxc2sSVzDlotbKDAV2Np8nHxsk687B3XGQetQjZEKIYQQoiySWAhxC7PZzNKlSzl8+DAAQ4cOpWPHjiX6/XI4mZcXHKSg2Eyknyv/nRRNuLeBvSt+YseiuTIx+w4yCzNZf349cUlxbL+0nWJLsa0t2DXYlky092+PTm4XE0IIIWo8SSyEuElxcTE//vgjJ06cQKvVMnLkSFq3bm3Xx2JRfL72FF+sPQVA72b+fPF4e1IP7WL6nB/IvJwMyMTs0qTmp7IuaR1xSXHsSdmDWZltbREeEbaCdVG+UVKwTgghhKhlJLEQ4pqioiLmzZvH2bNn0el0jBkzhmbNmtn1yTOaeHnBQVYeta5I9HSvRkxqAr9++CaXTh4DrBOze4weT+u+sTIxG7iQc8G6klNiHAevHEShbG3NvZvbkonGXo0lmRBCCCFqMUkshAAKCgqYM2cO58+fx8HBgbFjx9Kokf2tSxeu5vP0D3s4npKDo07Lu30DcTuyjAUzZWL2rc5mnmVN4hrWJq3lWMYxu7a2/m2JDbMmE6EeodUUoRBCCCHuN0ksRL2Xl5fHzJkzSUlJwcnJiXHjxhEaan/Cu/tcBs/M3Et6XhHBzooX/c6SPO3fXDJdn5gdS4/R43D38aumo6heSimOZRyzFaxLyEqwtWk1WqIDo+kf1p/+Yf0JdA2sxkiFEEIIUVkksRD1WnZ2NjNmzCAtLQ1XV1cmTJhAUFCQXZ95u5L4fz8dwWwyMUhzmtbndnIhPg+o3xOzLcrCwSsHiUuMY23SWi7mXrS16bV6ugd3JzY8lj6hffBx8qnGSIUQQghRFSSxEPVWRkYGM2bMIDMzEw8PDyZOnIif340rDiazhfdWHGP61gQa559lQO4eHPIzKAJ8Q8KImfAUjW6ZmK3MZvL37MV05Qp6f39cojuh0dWdeRbFlmL2pOxhbdJa1iatJa0gzdbmrHemV8Ne9A/rT++Q3rg7uldjpEIIIYSoapJYiHopNTWVmTNnkpOTg7e3N5MmTcLLy8vWnplfxHNz9nPqyBFGZWyngdE6Wds2MbtPLNpbEobs1au5/MGHmFJSbNv0QUEEvvEXPAYOrJLjqgxGs5Htl7YTlxjHhgsbyDJm2drcHNyICY1hQNgAejTsgbO+fs8tEUIIIeozSSxEvXPp0iVmzZpFfn4+/v7+TJw4EXf3G9+un07N4fnv1hJ2dgOj804DoHc0ED1kJJ2Hlj4xO3v1ai7+6UVQym676fJl6/Z/fl6rkov84nw2XdzE2sS1bLqwiXxTvq3N2+BNv7B+xIbH0jWoKw46KVgnhBBCCEksRD2TlJTE7NmzMRqNNGjQgPHjx+Pi4mJrX7M/gTnf/Y++GQfRYSnXxGxlNnP5gw9LJBXWRgUaDZc/+BD3/v1r9G1RWcYsNl7YyJrENWy7uI0iS5GtLcAlwLqSU3gsHQI6oNfKnw4hhBBC2JOzA1FvnDlzhnnz5lFcXExYWBhjx47FyckJAFNxEd9+O5Ps7b/Q2mIEoEFUO/pPeoqAiMjbPm/+nr12tz+VoBSmlBTy9+zFtWuX+3Y890NaQZq1YF1iHLtTdmNSJltbqHuorcZEa7/WaDXaaoxUCCGEEDWdJBaiXjh+/DgLFy7EbDbTpEkTRo8ejaOjI0op4rdtYfn3/0Gfl4ETYPIIYOQzf6BJx+g7Fmyz5OVxdc6ccsVgunLlPhzJvbuUe8lWsG5/6n67gnVNvJowIHwA/cP608y7mRSsE0IIIUS5SWIh6rxDhw6xZMkSlFK0bNmSUaNGodfrST51gjXT/8OV08fRA/k6ZwL6DOfp34xBp7/9r4YqKuLqwoWkffsvzGlpt+17nd7f/z4czd05l3WOuKQ44hLjOJp+1K6ttW9r+of3JzYslgjPiOoJUAghhBC1niQWok7bs2cPy5cvB6Bdu3YMHTqU3PQrbJ7zAye2WytmF2v0xPt25Olnf0PvViG3fT5lsZD9669c+ecXFCclAaAPDcWSnY0lO7v0eRYaDfrAQFyiO5VsqyRKKU5ePWmrfn068/SNcNDQMbAjsWGx9A/rT7BbcJXFVStZzJC4DXIvg1sghPcAbc2dKyOEEEJUF0ksRJ1hsVhITEwkNzcXNzc3Ll68SFxcHACdO3emX+/ebJn7A/t//RmzyYQCjrm1IKVpH75+ui8Rfq63ff68bdtI/b/PKIyPB0Dn54ffs3/A+9FHydmwwbr6k0Zjn1xcu5Uo8I2/VPrEbYuycDjtsLX6dWIcF3Iv2Nr0Gj1dg7vSP7w/fUP74udcPyuEV1j8z7DyNci+dGObRwMY/DFEDa2+uIQQQogaSKNUaV+x1i/Z2dl4enqSlZWFh4dHdYcj7kJ8fDwrV64kOzu7RFuPHj3wLc5nx+L5FObmAJDkFMJWn+60aduSfz7RAQ+nspdMLThylCtTPyNv23YAtK6u+Dz1G3wnTULreiMZuV91LMwWM/tS93El/wr+Lv50DOiIroxvyE0WE/su7yMuyVr9OjU/1dZm0Bno2aAnseGx9A7pjafBs9wxCKxJxYKJwK1/Iq/NOxk9Q5ILIYQQdV5FzpMlsUASi9ouPj6eBQsWlNnum5NO0YUEAIxu/qxy7Uyicxi/79OYVwe1QKctfYJyUWIiV/75T7J/+dW6wcEB7ycex++ZZ9D7+JS6j7nYRMKKXeRezsYt0INGD3dB51D+C4NxiXF8tOsjLudftm0LdAnk9S6vExsea43LXMSO5B2sTVrL+qT1XDVetfV10bsQExJDbHgsvRr2wsXBpcRriHKwmOHz1vZXKuxorFcuXjwst0UJIYSo0ypynlzjb4X68MMPWbx4McePH8fZ2ZkePXrw8ccf07x5c1ufyZMn88MPP9jt17VrV3bs2FHV4YoqZLGYOR9/hGXLfim7k1JkOLnh6+HJPt9urFcRODjo+ceoNozoUPp8CtOVK6R9+y1XFywEkwk0GjyGPIL/Cy/gGFL2HIwz+1PZPP8UeZlGwBEoxHXHTh4Y05TGHQLueDxxiXFM2TDFbpUmgNT8VF7a8BKTW00mNT+VTRc2kVuca2v3NHjSN7QvA8IH0DW4Kwad4Y6vJW5DKTi6+DZJBYCC7IvWuReNHqiy0IQQQoiarMYnFhs3buSPf/wjnTt3xmQy8eabbzJw4EDi4+Nxvek2lMGDBzNt2jTbY0dHx+oIV1SRUzu3sW76d2QWGikIb152R40G5WBgWYOHOWH0JMDDwL8ndKJDmHeJrubcXDL+9z/Sp01HFRQA4Nr7AQKmTMGpRYvbxnNmfyor/32kxPa8TCMr/32Ewb9vfdvkwmwx89Guj0okFYBt2/Sj023b/J39bdWvowOjpWDdvVAK0k5B4lZropC41Zo0lEfu5Tv3EUIIIeqJGn82snLlSrvH06ZNIyAggL1799K7d2/bdoPBQFBQUFWHJ6rBqZ3b+HnqBwBYPEq/JelWRcUm2oZ48t2EaII8nezaLEVFZM6bZ1069qr1tiKntm0JePnlchW0s1gUm+efum2fLQtO0aidP9oybrval7rP7vansgwKH8T4qPG09W8rBevulsUCqfHXkogt1v/m3VJjRKMFZbnzc7kFVk6MQgghRC1U4xOLW2VlZQHgc8s97hs2bCAgIAAvLy9iYmJ4//33CQgo/Rtio9GI0Wi0PS5twq+omSwWM+umf2f9fwcDxb7lSyY7NA7mg4ndcXK4cT+8MpvJXr6cK198SfFF6zfUjhER+E95CfcBA8pdHO7SqavXbn8qW+5VI8mnMmnYvOSVEouysDN5Z7leq19YP9oHtC9XX3GN2QQpB68lEtd+CjPt++idIKSzdSnZ8J7QoCN80wWykyk5eRtscyzCe1TBAQghhBC1Q61KLJRSTJkyhV69etG6dWvb9gcffJDHHnuM8PBwEhIS+H//7//Rr18/9u7di8FQ8n7zDz/8kHfffbcqQxf3ycVjR8nJSKPYOwBjQEPrxNnr6w+UkggoBTonFz6d3A/dteVelVLkbd5M6mdTMZ44AViL1/k9/xxeI0eiuUNxvOuy0ws4sSOFwxsu3LkzkJdtn3ycyzrHsrPLWHF2BRdzy3frjb9L9RXZqzVMRri033pL07mtcH4nFOXa93FwhbCu1iQivCc07Aj6W/5WDP742qpQGuyTi2vvs8EfycRtIYQQ4ia1alWoP/7xj6xYsYItW7YQcptJtMnJyYSHhzNv3jxGjhxZor20KxahoaGyKlQtsHvNSlauXoPZ1R0AXV42+qwMjMHh1g43JRdKWR+OHj2aqKgoAAoOHiT1/z4jf/duALTu7vj+9rf4TBiP1tn5jq9fVGjizL4rnNiRzMWTmRWKffhLHXAJh5XnVrL8zHIOpR2ytbnoXbAoC4XmwlL31aAh0CWQlaNWlrn0bL1VlA8X91iTiMStcGE3mG4ZRydPCOtx44pEcDvQlSOBLLWORUNrUiFLzQohhKgH6tSqUNc9//zz/Pzzz2zatOm2SQVAcHAw4eHhnDpV+n3vBoOh1CsZouZSSrFj2zbWbN2BxdUdLGYMqRdwuHoFDaCxmDAGhqEcbkzad3V355GHHiQqKgrj2bNc+cfn5KxZA4DG0RHv8ePx+91v0Xl53f61LYqLJ69yfEcKZ/alYiq6du+9Bho286Z510B2/nyWvMyiMp9D76746PxbbNm5BZMyAaDT6OjeoDtDGw+lT2gftl7cypQNU6yvedM35Jpr35C/1uU1SSoAjDmQtPPaZOutcHEfWIrt+7j4WZOIiF7W/wZE3d3Vhaih0OJhqbwthBBClEONTyyUUjz//PMsWbKEDRs20KhRozvuk56ezvnz5wkODq6CCEVlu3o1g7k//EBqpnV+jS4vB6fkBLTFN07kHXIy0edkYnJxp9jJg6HPT6FNi6aYr1wh+f+9RebixWA2g1aL5/Dh+D//HA53eH9kXs7n+I5kTuxMITfjxhUuzwBnWnQLpnm3INx9rBPBHZ31pa4KdT1BWBH8PxIuWq9QtPRpyZDGQ3iw0YN2FbBjw2OZ2mdqqXUsXuvymq2ORb2TnwFJO24kEskHS06sdm8AET1vXJHwa1bqrXF3RauTJWWFEEKIcqjxt0I9++yzzJkzh59++smudoWnpyfOzs7k5ubyzjvvMGrUKIKDgzl37hxvvPEGSUlJHDt2DHd39zu+hhTIq5mUUqz7ZQVbdu1GaTRgMeNtzKNTh/bsXFKyIN71N/LDL75Os1ZtSf/Pf8mYMQN17bY3t379CHjpRQxNm5b5msb8Yk7vTeX49mRSzt6Y1O/orKdpdAAtugcT2Mij1IndZ/ansmHeMQqzzLZtOY5X2RaxmLzQFB6JfIQhkUNo4t3ktsddkcrbdVJu6o2lX89thdSjJft4R1ybH3EtkfCOuH+JhBBCCCFs6lTl7bJW5pk2bRqTJ0+moKCA4cOHs3//fjIzMwkODqZv3778/e9/JzQ0tFyvIYlFzXMp8RzzZ80kq9h6kq4vzOeBzh3pNexRdHo9p3ZuI27av8m/mm7bR+vmzUNPPo3fiTOkffcdlmsriDl37EjAKy/j0rFjqa9lMVs4f+wqx3ckk3AgDbPJ+m24RgOhUb606B5Eo7Z+6B1LP7nPMmaxMmEly84u41DqIYKzG+NS7IHZyUibNo0Z0nQInQM716/koCKyLlxLIq4t/Zpeyi2Mfs2uJRG9ILw7eN7+dkghhBBC3B91ao7FnfIeZ2dnVq1aVUXRiMpWbDTy86zpHDl3AaXTgcVCuKcrj/3pBdy8bywxnBvckukh49AbzhGgN/L7ge3okp1K+l/fITUlBQDHJo0JmPIybn37lJqgpl/M5fiOFE7uTCE/+8ZtVT4NXGnRLZhmXQNx9Sx9Lk6RuYjNFzaz7OwyNl7YiMlinTeh1Wpp1DKQRxo/Qr/Qfrg4uNzH0akDlIKrCdcmWl+rI5GZdEsnDQS2vpZIXPtxu3PlciGEEEJUrxqfWIj6QSnF4c0b+GXlSgodnUGnw0mZGT58OC06drLru2T/BV5bdJgik4Xm4c35LDIP9eUnXD59BgB9cDD+zz+P57ChaHT2VwkKcos4tfsyx7encCUpx7bdydWBpl0Cadk9GL9Qt1ITEaUUB68cZNmZZaw8t5Lsohu3SjX3bs6QRkMYrIvBvcgFrXLEoLvzKlN1nlJw5cSN+RGJ2yAn2b6PRmddpen6ZOvQruBSvsKHQgghhKg5JLEQ1e5K0jmWTvsvF02AozMoRZsmkQwfO95WewLAbFF8svI4/950FoBJbplM3DUL43cHANB6euL3+9/jPW4s2ptW/TKbLCQeSef49mQSj6RjMVuvgmm1GsLb+NKiezDhrX3R6UuvZH0++zzLzy5n+dnlJOXc+Hbd39mfRyIf4ZHGjxB60YfMZWcozjpPxrV2nacjXkMa49zar9TnrZMsZrh81D6RyE+376N1gIadbky2Du0KhjvPhRJCCCFEzSaJhag2hbm5bJg3gz3HTmBy9wYduBscGTNuPCFhYXZ9cwqL+dO8A6w7nkp4djLvpm4i8MhuigCNkxM+Eyfi+/RT6K7d+6eUIu18Lse3J3Ny92UKc28sR+of5k7zbkE06xyIs7sjpckyZrHq3CqWn13O/tT9tu3Oemdiw2J5pPEjdA3qik6ro+BIGumzjpV4DnNWEemzjuE7vmXdTS7MxdZVmq4nEYnbwZhl30fvDKGdbxSjC4kGB7maI4QQQtQ1kliIKmexmDm8dhVrf15Kjqc/yt0bgG6doxkw+EG7qxQA59LyeHrGHrLOneeVE6vpl7QHjVKg0+E1ahR+f/wjDoHWe/Dzsoyc3HmZ4zuSybiUZ3sOFw9HmnUNokW3IHwbupUaV7G5mM0XN7P87HI2nN9A8bXaCBo0dAvuxpDGQ+gf1t9u3oSyKDKXnbnt8WYuO4tTlC8abR1Ytai4EC7tu1GM7vwuKM6z7+Pobl/VukEH0JeewAkhhBCi7pDEQlSpC/FHWDP9Oy4Wg8m3AQDenh6MfvyJUuuObD2dxqv/28yDh1Yx9OxWHK5NknYfOBD/F1/EENkIU7GZU3us8ybOx6dzfb6/Tq+lUXs/WnQLJrSlN1pdyVudlFIcTjvMz2d+ZtW5VWQaM21tTb2bMiRyCA81eohA18BSj8eYkIU5q+zCeADmLCPGhCycGnuVY4RqmKI8a/KQuM36c2E3mI32fZy8blr6tQcEtS1fVWshhBBC1Cny6S+qRHZaKhtnTePo4cMYg8NRLg5ogF69ehHTpw96vf1bUSnFzPXHif/6v/zzxDpcTYUAuHTpQsDLU3Bq25bLCdkcn32c03tTMeabbPsGRXrQonswTToFYHBxKDWeCzkXWH52OSvOruBc9jnbdj9nPx5q9BBDGw+luU/zUvcFMOcVUxifTu62S+U6fkvO7ZOPGqMw61pV62tLv17aDxaTfR/XAPuq1v4tQVv6/BQhhBBC1B+SWIhKVVxkZPdPi9i5fCl5PoGYQq3F4Xx9fRg5chQNGzYssY+xsIjZ73xFs5Xz6VxoXXnJsXlzAl95GUtUNEd3XubE4p1kXs637ePmbaB5tyBadAvGK7D0JV6zi7JZfW41y84sY1/qPtt2J50T/cP7MyRyCF2Du6LXlv5rYc4poiA+nYLDaRjPZoKl1G6l0pYxl6Pa5aVD0rWrEYlbIeVwyarWHg2tVyQirt3a5NtEitEJIYQQogRJLESlUEpxcsdWNs76nquFRRSGNEE5OKLRaOjRowd9+vTBwcEBs0WxKyGD1JxCAtwMhBzZwbmP/4/uVy8DUOgbSOjLU0gLjiZux2UuztluK7Gtd9TSuEMALboH0bCZd6lzGIotxWy9uJVlZ5ax4fwGiizWKwcaNHQJ7sKQyCHEhsfi6uBa6nGYs4wUHE0n/3AaReeybpT3BhyCXXFq5UvejmQsN00Ov5XO04ChkefdDeT9lpNiX9X6SslJ5/hE3qhoHd4TvMIkkRBCCCHEHUliIe67K4kJrJ/+HUnH4ykMDMXkHw6Ar68vw4cPt1VEX3kkmXeXxZOcVUibK6f5TfwKvK6exw/IMriRM+qPaEKj2b0xnWLjcdvzN2zmRfNuwTTu6I+jU8m3sFKKo+lHWXZmGb8m/MpV41VbWxOvJjwS+QgPRz5MkGtQqfGbrhZScCSNgiPpFCVm27U5hLjh3NoPl9Z+6P2sKxs5BrmWuirUdV5DIqtv4nZmkn1V64xSJpr7t7gpkegBHg2qPk4hhBBC1HqSWIj7piAnm63zZ3EobiXFLm4URrZCOVhvAerevTv9+vXDwcE652HlkWT+MGsfEVmX+NvRFXROPQHAVddgNrV4FI/AKNQlC1xKBUDvZSGwgxMx/Trg7V/61YVLuZdYfnY5y84ss5s34ePkY5s30cKnRanF70xpBeQfSaPgSBrFF3Lt2hzDPXBu7YtzKz/0Pk4l9nVu7Yfv+JZkLjtjN5Fb52nAa0hk1S01qxSkn7lp6detkHX+lk4aCGpjP9natY4uhSuEEEKIKiWJhbhnFrOZg2t+YduC2RQU5GMMDKXY2x8Ab29vhg8fTnh4uK2/2aL4es4mXtnzM30u7MeiM3A+uCfHw2PROQXgDqh8C1qD4qzvAQ54byTFPQEKIXBDIK93eZ3Y8FgAcopyWJO4hmVnlrHn8h7baxh0BvqF9mNI4yF0b9C91HkTxan5FBy+lkwk37RkqgYcIzxxaeOHcytfdJ6GEvveyrm1H05RvhgTsrDkFKF1d8TQyLNyr1RYLHDluH0xutzL9n00OutyrzdXtXb2qryYhBBCCFFvaZRS6s7d6rbs7Gw8PT3JysrC41qBNXF7FouFxMREzh07yomNceSeO43ZxZ3i0CaYtNY6FJEuQXRpHEXToT3QOVhP7E0ZGRz56B9oli0lx6spKUFduezfAa6d+FtQJOotHPM4x8Um32LW2c9d0GA9UX+6zdOczznP+vPrMd60/GnnoM4MiRzCgPABuDna16tQSlGcnHftNqc0TKkFNxq1YIj0wrmNH85Rvuhq4mRri9k6udp2RWIbFGTY99E5QsPoG1WtQ7qAofS6HUIIIYQQd1KR82RJLJDEoqLi4+P5ZcUKcvNu+pbfYrEtOaozOeKW3QLHIi8ADMVZdO1qIKg4gfOzl3PRqx0pgV0oMnjZdk/TWjjqaCbe0USu1oJrk4/ROtxSwbkMkZ6RDGk8hIcbPUywm30tDKUUxRdzbVcmTOmFNxp1GpyaeNmuNuhcS1+attqYiiD5gDWROLcVzu8Eo/2cDxxcILTLjVubGkaDQ8nbtYQQQggh7kZFzpPlVihRIYcPHmTRkiXW+/lvnqtwLalwKPTCI7MlWm6cpBv1HmzaC04FvhS2/bNte4FGcczBzFFHEyk6xbWLEehcEsqVVMSGxfJ0m6eJ8o2ymzehLIqi8zm2ZMKceVNBN70Gp2Y+1isTLXzQOtegX4HiAri490ZV6wu7oTjfvo/BA8K63VixKbidVLUWQgghRI1Qg86qRE2mlCJ+60aWrIoDra705UcVmB0K0Nz6trrWt9AlAIuycNbBwglnxQmtCXMpT6PVl+9KxYDwAbTya2V9aYui6FwWBUfSyT+ShiX7xiRqjYMWpxY+1isTLbzRGmrI296Ya70KcX2i9cW9YL6lkJ6zj/2KTUFtrOMvhBBCCFHD1JAzLFGTXU44w/rp/yYx6TyW8LKrUaMBi85IsWOW7TaoWyU6XWboswMwFpv5w6x9aLhRGkLjkIaj1x70XjvLFZe/wY/CU1etcyaOptvVktAYdDi3tCYThmbeaB3v08m4xXxjkrRboPVkv7wn+gWZkLTjpqrWB0CZ7fu4Bd5IIiJ6gV9zqWothBBCiFpBEgtRpvzsLLbMm8HhdatRSmFu0Khc+1m0RWW2jW3pTcfmAQB8O74j7yw/QJplDw5eu9G7Jtj6adCgKDn9R690dMhrSWx+dxr810xawZEb+zjrcY7yxbmNH05NvNDo7/MJefzPsPI1yL50Y5tHAxj8MUQNLdk/L81+6deUI3DrMXmGXUsirt3a5BMpxeiEEEIIUStJYiFKMJtMHFi1gu0/zqEwPw+TmxeaiKYUmcs3z19rKfuef48gL+ttVenx7M5ZjCbsF5yLrXUjNGjo0aAHI5uOxKIsvLrpVQAcLHo65rWkV3YHuua2wc3iAoDChNbVAedWvtYrE4090egq6dv9+J9hwURKJAbZydbto2dASLR9Mbq0EyWfx7eJ/a1NXmGVE68QQgghRBWTxELYOXdwH+t/+A8ZF89jcnHD0rw9Rq0ezAqDwVrPwWg0lr6zAq3FgEORZyltCoMpmx2RF3lt2WecvHrS1tTQrSHDmwxneJPhtmrYliIz3qGfc2H3CdpmNsFZ3VjpqNhF4dWugTWZiPBEo6vkb/gtZuuVilKuoNi2LZxc8rYmgIAo+0TCvfRq30IIIYQQtZ0kFgKAzJRkNsz8L2f27MTs5IKpUUuKnKwVrvV6PdEdu+BpCefA9qNc1h+y7nTz+byynmK7ZUeiUbe2WU++T3gvYuX+gwA4ah3pH96fkU1H0iWoC1qNFkuhifwDqRQcTqPw5FUaFjvQkNYAFLlaKGrmQHiXljiFe1Vu4blbJWyyv/2pNMoMaCC4LYT3ulHV2sWnSkIUQgghhKhukljUc0WFBexcPJ+9K5ZSrNFR1LAxxR7eAGi1WppFtsIlJ4yE5blYLBcBL7z0jcnzOE2x442T+1wcOaQimOirpTAxGzdnL5w0UKggOz+DEz6LWd3mMC18WjCiyQgejnwYT4MnlvxiCvZdsSYTp67CTbdb6XyccG7jh0trPxxC3OyWlK0UFgtknYfUY5B61Prfy/HW6tblMfQL6DixcmMUQgghhKihJLGoZywWRfKpTHKzCriSsJcj6xaSk5tDkV9Dir39uH6pIcQvEt3lhqRv0ZBODgAeWWdpeGkLDRwuc7jXQ3xj8gWLiQIc6N2hJf8bEEnSvp14mc14GG+8tdK9DDh17M1TMX8lyjcKc24RBQfTuXLkPMbTmWC5kUzo/Z1xbu2Hcxs/HIJdKy+ZyEuDy0ftk4jUY1CUe/fP6V2+ye1CCCGEEHWRJBZ1mMVi5uKxo+RmXsXNyxtjYQBbFp4hJy2R4vz1WFQqRr9giptEgMY66dnbKRhNcgOMKdbboHTmQoJSdtHg0hZ8/R04P2oMv8ttSNK1OhGdI7yZ3MeJI9mrmDovgZfOjS0Rh6/Ji367vHBReq6kH8KYkGU3XcEhyMWWTOgDXO5vMmHMtV5xSI23Xn1IvfaTd6X0/loH8GsGgVEQ0NI6R8KvOfzwsHWidqnzLDTW1aHCe9y/uIUQQgghahlJLOqoUzu3sW76d+RmpN3YqHFFq/PBbL5IkU8gRb5tQWetwWCweOJ8NQJ9sXXitXvueRpe3ERA6l5cI8PIf/EZ/pITxK6kLKCIBt7QL/oSZwpm8frOI2iVhukX3rO+DKUnBvm7L9v+36GhmzWZaO2Lg7/LvR+wqQjST99IHK4nEZmJZeygAe8Ia+IQ0PJaIhFlXbVJ51Cy++CPr60KdXPljWvPAzD4IylcJ4QQQoh6TRKLOujEjq0s/fdXKL0DGhd3dPk51tNhlU+huwtFfm1QeuvJs67YFdfcCByNPmgwEZSyjZCLm/HIScIpKgr9Sx/wZWEwC/dfQqlMnN2TaNnsGEnGHfx0oRAAvUbPeLdH8Td53zE215bg3uwK+iAgvG3FT8YtFmuycOs8iPRTYDGVvo9b4LUE4qYkwr8FOLqW/3WjhlqXlC21jsVHpdexEEIIIYSoRzRKqfIVJ6jDsrOz8fT0JCsrCw8Pj+oO554cPXqERfPmYdHdyBk1xUXoszMwuXujHK1LxmpNTrjmRmAo9LddYWh76Bv8Mo5yIljPsnb9ce86ibjjqeSZM3Dw3IdX4H4K1I2rDq1cWzLB7TE6FUahTuRhvlrGMrQ38XH4BBfdJuuD2xWXU8p6u5JtHsT125iOQ3Fe6U9u8Lh2+1JLCGh141YmV99yjl453EvlbSGEEEKIWqYi58lyxaIOiY+PZ+HCH0uc6Cq9A8W+1voJGlMxPpkFBFuiMGn9Sb/ptp5zgU58M0jL4TAFmrUUXTKh80/Fze0EaCzoTM70NkbziK4/LXMboT9uAQUmMsodo5arNx5cLy434t/g06jkPIj89NKfROcI/s1vXIG4nkR4hlR+1WqtDho9ULmvIYQQQghRC0liUUvdOjE7uHlLVq5caW289eRaowGl0CoYWdgFL7cbtRUKLIrDBWaSixWbo3I4EqG9dtsU+HrvpnV+E9qmjqCrsR3Beb43zZ+wANZVnAyRnjhGeJD1yzksOUVlRYyOdAzaozdtu5bULPldGftowCfyxvyH60mETyTo5K0rhBBCCFGTyNlZLWOxKHb9tIa9y2dSmHvj2399QDDZvg3L3lGjwaKBfAfwuunmNycNdHbRcSAzi1NFyXTPaUfbvKa0yW9KI2NDtGjtnuZ6ImGI9MTQyAudh6OtTeugI33WsdKiBjR4OXyHRmMpPT5nX2jQ/tociGtXIPyag+N9mNgthBBCCCEqnSQWtciZ/anE/W85uamL7bYrIPeWBKAsBZoiu0WNNBoNSinae7rTTvsp2gv2z3NOm4drZBDNOzfEEOmJzv1GIoHFAhkJtjkQzleO4+uvJTPtQczKz9ZNRzpeDt/hrNtedmAPfQJtHi3XMQghhBBCiJpHEota4sz+VH791yGMWatt2xRgcvemyC8Yi1P5vtl3xlBim0ajAY0ODZDkmMwhl1Mccj3JEZfTXLw4hll9onHxN0LKJjgUf6MuxJUTUJx/y/ODk+NCjNpOWNyj0LpoMCTPKPtKxXVugeWKXwghhBBC1EySWNRAFouFxMREcnNzcXNzo0HDhqybexSL6QIalYevUyhF7l6keugodrz2T2g2W/+r1ZY+gVmBKwaCLF5lvu6XQXP4xXuLrb+7Sc8iNZN2Cz8FY3bpO+kM4N/MOgfCvwUERKEJaImTZ6g1FosZPl8txeWEEEIIIeo4SSxqAItFcenEVc6fTOdM8mGSMk5QVHRj6dZibTG+xnaEOOpwazSKY46XydEWAOCgdHhm5VF4+RgmV3cKGza2zry+Obm4dj7frbgZ2jKK1wGcd7QuJau5tgLx3zKSaa8KwAho9dbicQEtwb/ljaVcvSNuP5Faq5PickIIIYQQ9YAkFtXszN7LHJxzgmxSuOB6EpO2ZJE3vdmBbK94zig9xmvtTsqBNqYwWpga4mjQc8DNCb3WEfIDOOJyhTxuJCYu6OleHEkji3+pMVhQpOmvctTlNAC+Jhh+1ZtGYQ9Dq843KlLrHUvd/46kuJwQQgghRJ0nBfKovgJ5CcvOYNp8kRT9FdY6HLZuvEMZBmflQDtTBM3NDXHA+i2/Uso6T+IaM2YuOp5Erz2Oj2U/jTT7KbJ0I734DaxXDG6eoG1dsSm9yVq2h3tQ5NiYTg170C3SH532PteEkOJyQgghhBC1Sr0skPfNN9/w6aefkpycTKtWrfj888954IGaW8gs79AV9FsuotUodjictG4sx3l87+IoQi1+dtuuJxVXCi7g6bCKcNf1hGsyrY1a6+1Hzrrt+PIBmcW/w8yNKxfXV2wK6f8m7Sq78JsUlxNCCCGEqLPqRGIxf/58XnzxRb755ht69uzJv//9bx588EHi4+MJCwur7vBKUBZFxlLrbUeXdVnkaYx32OOGIkreKnVdcdEGDntcZq1+ML8ZMRidfzPwioCvoyE7GWfddpy0OzFaWmHBGy1XMWjj0XgGyeRpIYQQQghxT8pX/KCGmzp1Kk899RRPP/00LVu25PPPPyc0NJRvv/22ukMrlTEhC02+CY1GQwHlTyqg9OVir/vYYzgvFj9H6Ih30LUeYS00Z3C1Tp4GQINGY8FJdxgX3SacdEesy8DK5GkhhBBCCHGPan1iUVRUxN69exk4cKDd9oEDB7Jt27ZS9zEajWRnZ9v9VCVLTpHt/2+XKNhR4GopfblYpRRXTUZSPB35dnxHBrcOtu9wffK0xy3bPRpYt8vkaSGEEEIIcY9q/a1QaWlpmM1mAgPtC6wFBgaSkpJS6j4ffvgh7777blWEVyrtTdWrgyxeuCqDdRWnMuZYKKVAA92Km6JR2PW73mYe3JhN/SLKnnAdNRRaPCyTp4UQQgghRKWo9VcsrtPcUhTu1pWSbvaXv/yFrKws28/58+erIkQbQyNPtB6OKKXQoqFbcTNrQxnrcxXpitgRsINZwT+R5pBp16b3MuA3Por2sY3uvIrT9cnTbR61/leSCiGEEEIIcZ/U+isWfn5+6HS6ElcnUlNTS1zFuM5gMGAwlPMWpEqg0WrwHtqYtFnxKKVoZAmgf3EbdjictKs/YbDosVhS2BKxjkdzcghzuIDp4U74+E+EXBNad0cMjTzR3O9lYYUQQgghhKigWp9YODo60qlTJ9asWcOIESNs29esWcOwYcOqMbLbc27th9/4KC7PPYLerKORJYBwoz8p2kwKMOJkNFJkWk5aNy9eb/UOOvdguXVJCCGEEELUWLU+sQCYMmUKEyZMIDo6mu7du/Pdd9+RlJTEM888U92h3ZZzaz/C/x5D/ukMzq7fjzkhCce8yzgHO6Lt0YwWPWah09eJfyIhhBBCCFHH1Ymz1jFjxpCens7f/vY3kpOTad26Nb/88gvh4eHVHdodabQaXJv50qZZbHWHIoQQQgghxF3TKKXKmDJcf1SkVLkQQgghhBD1RUXOk+vMqlBCCCGEEEKI6iOJhRBCCCGEEOKeSWIhhBBCCCGEuGeSWAghhBBCCCHumSQWQgghhBBCiHsmiYUQQgghhBDinkliIYQQQgghhLhnklgIIYQQQggh7pkkFkIIIYQQQoh7JomFEEIIIYQQ4p7pqzuAmkApBVhLlgshhBBCCCGsrp8fXz9fvh1JLICcnBwAQkNDqzkSIYQQQgghap6cnBw8PT1v20ejypN+1HEWi4VLly7h7u6ORqOpstfNzs4mNDSU8+fP4+HhUWWvW9/IOFcNGeeqI2NdNWScq46MddWQca4adW2clVLk5OTQoEEDtNrbz6KQKxaAVqslJCSk2l7fw8OjTrzxajoZ56oh41x1ZKyrhoxz1ZGxrhoyzlWjLo3zna5UXCeTt4UQQgghhBD3TBILIYQQQgghxD2TxKIaGQwG3n77bQwGQ3WHUqfJOFcNGeeqI2NdNWScq46MddWQca4a9XmcZfK2EEIIIYQQ4p7JFQshhBBCCCHEPZPEQgghhBBCCHHPJLEQQgghhBBC3DNJLCrRN998Q6NGjXBycqJTp05s3rz5tv03btxIp06dcHJyIjIykn/9619VFGntV5GxXrx4MQMGDMDf3x8PDw+6d+/OqlWrqjDa2qui7+nrtm7dil6vp3379pUbYB1S0bE2Go28+eabhIeHYzAYaNy4Mf/73/+qKNraq6LjPHv2bNq1a4eLiwvBwcE8+eSTpKenV1G0tdOmTZsYMmQIDRo0QKPRsHTp0jvuI5+HFVfRcZbPwrt3N+/p6+r656EkFpVk/vz5vPjii7z55pvs37+fBx54gAcffJCkpKRS+yckJPDQQw/xwAMPsH//ft544w1eeOEFFi1aVMWR1z4VHetNmzYxYMAAfvnlF/bu3Uvfvn0ZMmQI+/fvr+LIa5eKjvN1WVlZTJw4kf79+1dRpLXf3Yz16NGjWbt2Ld9//z0nTpxg7ty5tGjRogqjrn0qOs5btmxh4sSJPPXUUxw9epSFCxeye/dunn766SqOvHbJy8ujXbt2fPXVV+XqL5+Hd6ei4yyfhXevomN9Xb34PFSiUnTp0kU988wzdttatGihXn/99VL7v/rqq6pFixZ2237/+9+rbt26VVqMdUVFx7o0UVFR6t13373fodUpdzvOY8aMUX/961/V22+/rdq1a1eJEdYdFR3rX3/9VXl6eqr09PSqCK/OqOg4f/rppyoyMtJu2xdffKFCQkIqLca6BlBLliy5bR/5PLx35Rnn0shnYcVVZKzrw+ehXLGoBEVFRezdu5eBAwfabR84cCDbtm0rdZ/t27eX6D9o0CD27NlDcXFxpcVa293NWN/KYrGQk5ODj49PZYRYJ9ztOE+bNo0zZ87w9ttvV3aIdcbdjPXPP/9MdHQ0n3zyCQ0bNqRZs2a88sorFBQUVEXItdLdjHOPHj24cOECv/zyC0opLl++zI8//sjDDz9cFSHXG/J5WD3ks7By1ZfPQ311B1AXpaWlYTabCQwMtNseGBhISkpKqfukpKSU2t9kMpGWlkZwcHClxVub3c1Y3+qzzz4jLy+P0aNHV0aIdcLdjPOpU6d4/fXX2bx5M3q9/Kkpr7sZ67Nnz7JlyxacnJxYsmQJaWlpPPvss2RkZMg8izLczTj36NGD2bNnM2bMGAoLCzGZTAwdOpQvv/yyKkKuN+TzsHrIZ2HlqU+fh3LFohJpNBq7x0qpEtvu1L+07aKkio71dXPnzuWdd95h/vz5BAQEVFZ4dUZ5x9lsNjN27FjeffddmjVrVlXh1SkVeU9bLBY0Gg2zZ8+mS5cuPPTQQ0ydOpXp06fLVYs7qMg4x8fH88ILL/DWW2+xd+9eVq5cSUJCAs8880xVhFqvyOdh1ZLPwspT3z4P63baVE38/PzQ6XQlvvVKTU0t8S3MdUFBQaX21+v1+Pr6Vlqstd3djPV18+fP56mnnmLhwoXExsZWZpi1XkXHOScnhz179rB//36ee+45wHryq5RCr9ezevVq+vXrVyWx1zZ3854ODg6mYcOGeHp62ra1bNkSpRQXLlygadOmlRpzbXQ34/zhhx/Ss2dP/vznPwPQtm1bXF1deeCBB3jvvffkm/T7RD4Pq5Z8Flau+vZ5KFcsKoGjoyOdOnVizZo1dtvXrFlDjx49St2ne/fuJfqvXr2a6OhoHBwcKi3W2u5uxhqs385MnjyZOXPmyP3R5VDRcfbw8ODw4cMcOHDA9vPMM8/QvHlzDhw4QNeuXasq9Frnbt7TPXv25NKlS+Tm5tq2nTx5Eq1WS0hISKXGW1vdzTjn5+ej1dp/bOp0OuDGN+ri3snnYdWRz8LKV+8+D6tnznjdN2/ePOXg4KC+//57FR8fr1588UXl6uqqzp07p5RS6vXXX1cTJkyw9T979qxycXFRL730koqPj1fff/+9cnBwUD/++GN1HUKtUdGxnjNnjtLr9errr79WycnJtp/MzMzqOoRaoaLjfKu6vArG/VbRsc7JyVEhISHq0UcfVUePHlUbN25UTZs2VU8//XR1HUKtUNFxnjZtmtLr9eqbb75RZ86cUVu2bFHR0dGqS5cu1XUItUJOTo7av3+/2r9/vwLU1KlT1f79+1ViYqJSSj4P75eKjrN8Ft69io71rery56EkFpXo66+/VuHh4crR0VF17NhRbdy40dY2adIkFRMTY9d/w4YNqkOHDsrR0VFFRESob7/9toojrr0qMtYxMTEKKPEzadKkqg+8lqnoe/pmdfkPaWWo6FgfO3ZMxcbGKmdnZxUSEqKmTJmi8vPzqzjq2qei4/zFF1+oqKgo5ezsrIKDg9W4cePUhQsXqjjq2mX9+vW3/Zsrn4f3R0XHWT4L797dvKdvVpc/DzVKyfVbIYQQQgghxL2RORZCCCGEEEKIeyaJhRBCCCGEEOKeSWIhhBBCCCGEuGeSWAghhBBCCCHumSQWQgghhBBCiHsmiYUQQgghhBDinkliIYQQQgghhLhnklgIIYQQQghRS23atIkhQ4bQoEEDNBoNS5curfBzrFq1im7duuHu7o6/vz+jRo0iISGhws8jiYUQooSIiAg+//zz6g6jWvTu3Zs5c+bYHt/tH+m7NX36dLy8vKrs9UTNdKffwXPnzqHRaDhw4AAAGzZsQKPRkJmZWeY+8t66d48++ihTp06t7jCEsJOXl0e7du346quv7mr/s2fPMmzYMPr168eBAwdYtWoVaWlpjBw5ssLPJYmFEKJOq8jJ1PLly0lJSeHxxx+v3KDquNqcmL7zzju0b9++usO4o9DQUJKTk2ndunV1h1Jr3U2i9dZbb/H++++TnZ1dOUEJcRcefPBB3nvvvTITgaKiIl599VUaNmyIq6srXbt2ZcOGDbb2ffv2YTabee+992jcuDEdO3bklVde4eDBgxQXF1coFkkshBDimi+++IInn3wSrVb+NN5KKYXJZKrS1ywqKqrS17sXkydP5p133qmy19PpdAQFBaHX66vsNQW0bduWiIgIZs+eXd2hCFFuTz75JFu3bmXevHkcOnSIxx57jMGDB3Pq1CkAoqOj0el0TJs2DbPZTFZWFjNnzmTgwIE4ODhU6LXk01OIeqZPnz4899xzPPfcc3h5eeHr68tf//pXlFJl7jN16lTatGmDq6sroaGhPPvss+Tm5trar3/zt2rVKlq2bImbmxuDBw8mOTm53HH973//o1WrVhgMBoKDg3nuuedsbUlJSQwbNgw3Nzc8PDwYPXo0ly9ftrUfPHiQvn374u7ujoeHB506dWLPnj1s2LCBJ598kqysLDQaDRqNpsyTv7S0NOLi4hg6dOht4zx8+DD9+vXD2dkZX19ffve739mNxZ2O5U5jWR53imHy5MkMHz6cd999l4CAADw8PPj9739vd6KulOKTTz4hMjISZ2dn2rVrx48//mhrv35rzapVq4iOjsZgMLB582bOnDnDsGHDCAwMxM3Njc6dOxMXF2fbr0+fPiQmJvLSSy/Zxvy6RYsW2cYlIiKCzz77zO64IiIieO+995g8eTKenp789re/LfX4LRYLH3/8MU2aNMFgMBAWFsb7779f7vHZsGEDXbp0wdXVFS8vL3r27EliYiLTp0/n3Xff5eDBg7bYp0+fXqF/m4r4+eefiY6OxsnJCT8/vxLfNubn5/Ob3/wGd3d3wsLC+O6772xtt94KVZrp06cTFhaGi4sLI0aMID09/bbxFBUV8dxzzxEcHIyTkxMRERF8+OGHtvbMzEx+97vfERgYiJOTE61bt2b58uUApKen88QTTxASEoKLiwtt2rRh7ty5ds/fp08fXnjhBV599VV8fHwICgoqVzJW1X8bvvnmG5o2bYqTkxOBgYE8+uijdvEMHTq0xLEJUVOdOXOGuXPnsnDhQh544AEaN27MK6+8Qq9evZg2bRpg/du7evVq3njjDQwGA15eXly4cIF58+ZV/AWVEKJeiYmJUW5ubupPf/qTOn78uJo1a5ZycXFR3333na1PeHi4+sc//mF7/I9//EOtW7dOnT17Vq1du1Y1b95c/eEPf7C1T5s2TTk4OKjY2Fi1e/dutXfvXtWyZUs1duzYcsX0zTffKCcnJ/X555+rEydOqF27dtle32KxqA4dOqhevXqpPXv2qB07dqiOHTuqmJgY2/6tWrVS48ePV8eOHVMnT55UCxYsUAcOHFBGo1F9/vnnysPDQyUnJ6vk5GSVk5NTagxLlixRrq6uymw2220H1JIlS5RSSuXl5akGDRqokSNHqsOHD6u1a9eqRo0aqUmTJpXrWMo7lp6enmWOVXlimDRpknJzc1NjxoxRR44cUcuXL1f+/v7qjTfesPV54403VIsWLdTKlSvVmTNn1LRp05TBYFAbNmxQSim1fv16Bai2bduq1atXq9OnT6u0tDR14MAB9a9//UsdOnRInTx5Ur355pvKyclJJSYmKqWUSk9PVyEhIepvf/ubbcyVUmrPnj1Kq9Wqv/3tb+rEiRNq2rRpytnZWU2bNs0WU3h4uPLw8FCffvqpOnXqlDp16lSpY/Dqq68qb29vNX36dHX69Gm1efNm9Z///Kdc41NcXKw8PT3VK6+8ok6fPq3i4+PV9OnTVWJiosrPz1cvv/yyatWqlS32/Pz8Mv8tbjZp0iT19ttvl6uvUkotX75c6XQ69dZbb6n4+Hh14MAB9f7779uNhY+Pj/r666/VqVOn1Icffqi0Wq06duyYUkqphIQEBaj9+/crpW78e129elUppdSOHTuURqNRH374oTpx4oT65z//qby8vG773vr0009VaGio2rRpkzp37pzavHmzmjNnjlJKKbPZrLp166ZatWqlVq9erc6cOaOWLVumfvnlF6WUUhcuXFCffvqp2r9/vzpz5oz64osvlE6nUzt27LA9f0xMjPLw8FDvvPOOOnnypPrhhx+URqNRq1evLjOmqv7bsHv3bqXT6dScOXPUuXPn1L59+9Q///lPu5h++eUXZTAYVGFh4W3/jYWoDjd/Ziml1IIFCxSgXF1d7X70er0aPXq0Ukqp5ORk1bRpU/XnP/9Z7du3T23cuFHFxMSo/v37K4vFUrHXv58HI4So+WJiYlTLli3t/li89tprqmXLlrbHtyYWt1qwYIHy9fW1PZ42bZoC1OnTp23bvv76axUYGFiumBo0aKDefPPNUttWr16tdDqdSkpKsm07evSoAtSuXbuUUkq5u7ur6dOnl7r/nU7Ur/vHP/6hIiMjS2y/+Y/0d999p7y9vVVubq6tfcWKFUqr1aqUlJQ7HktpShvL28VbnhgmTZqkfHx8VF5enq3Pt99+q9zc3JTZbFa5ubnKyclJbdu2ze65n3rqKfXEE08opW6cqC5duvSOxxAVFaW+/PJL2+PS3j9jx45VAwYMsNv25z//WUVFRdntN3z48Nu+VnZ2tjIYDLZE4lZ3Gp/09HQF2BKoW7399tuqXbt2t42hNBVNLLp3767GjRtXZnt4eLgaP3687bHFYlEBAQHq22+/VUrdObF44okn1ODBg+2ec8yYMbd9bz3//POqX79+pZ5IrFq1Smm1WnXixIlyHqFSDz30kHr55Zdtj2NiYlSvXr3s+nTu3Fm99tprZT5HVf9tWLRokfLw8FDZ2dllxnTw4EEFqHPnzpXZR4jqcmtiMW/ePKXT6dTx48dtX9hc/7n+xc9f//pX1alTJ7vnOX/+vALU9u3bK/T6ciuUEPVQt27d7G5R6d69O6dOncJsNpfaf/369QwYMICGDRvi7u7OxIkTSU9PJy8vz9bHxcWFxo0b2x4HBweTmpp6x1hSU1O5dOkS/fv3L7X92LFjhIaGEhoaatsWFRWFl5cXx44dA2DKlCk8/fTTxMbG8tFHH3HmzJk7vu6tCgoKcHJyum2fY8eO0a5dO1xdXW3bevbsicVi4cSJE3c8FijfWN5LDNe1a9cOFxcX2+Pu3buTm5vL+fPniY+Pp7CwkAEDBuDm5mb7mTFjRomxi46Otnucl5fHq6++avs3cHNz4/jx4yQlJd0x7p49e9pt69mzZ4n33a2vV9rzGI3G275fbjc+Pj4+TJ48mUGDBjFkyBD++c9/VuiWvetmz55tN3azZ8/mgw8+KLGtLAcOHLjt+wSs9/Nfp9FoCAoKKtfvFFjHoXv37nbbbn18q8mTJ3PgwAGaN2/OCy+8wOrVq+3iDQkJoVmzZqXuazabef/992nbti2+vr64ubmxevXqEu+Lm48Jbv93ojr+NgwYMIDw8HAiIyOZMGECs2fPJj8/366Ps7MzQIntQtREHTp0wGw2k5qaSpMmTex+goKCAOt7WafT2e13/bHFYqnQ60liIYS4rcTERB566CFat27NokWL2Lt3L19//TWA3WoRt07w0mg0t523cd31D+myKKXskqDStr/zzjscPXqUhx9+mHXr1hEVFcWSJUvu+No38/Pz4+rVq3cVC1iP907HUt6xvJcY7kSj0dg+KFasWMGBAwdsP/Hx8XbzLAC7E3SAP//5zyxatIj333+fzZs3c+DAAdq0aXPHidalxV3a++PW17vV3b5f4Mb4TJs2je3bt9OjRw/mz59Ps2bN2LFjx22f91ZDhw61G7uhQ4fyzDPPlNh2t8cBpf9OlfdDvjy/e7fq2LEjCQkJ/P3vf6egoIDRo0fb5hfcKd7PPvuMf/zjH7z66qusW7eOAwcOMGjQoBLvi4ocU3X8bXB3d2ffvn3MnTuX4OBg3nrrLdq1a2e3jG9GRgYA/v7+t41PiKqSm5tr+7sDkJCQwIEDB0hKSqJZs2aMGzeOiRMnsnjxYhISEti9ezcff/wxv/zyCwAPP/wwu3fv5m9/+xunTp1i3759PPnkk4SHh9OhQ4cKxSKJhRD10K0nUTt27KBp06YlvrEA2LNnDyaTic8++4xu3brRrFkzLl26dN9icXd3JyIigrVr15baHhUVRVJSEufPn7dti4+PJysri5YtW9q2NWvWjJdeeonVq1czcuRI26Q0R0fHMq/E3KxDhw6kpKTcNrmIioriwIEDdlcXtm7dilarpVmzZnc8lvsxlneK4bqDBw9SUFBge7xjxw7c3NwICQkhKioKg8FAUlJSiW+wbv72tzSbN29m8uTJjBgxgjZt2hAUFMS5c+fs+pQ25lFRUWzZssVu27Zt22jWrFmp77uyNG3aFGdn59u+X8ozPh06dOAvf/kL27Zto3Xr1rbaJeV9v7i7u9uNm7u7Oz4+PiW2laVt27ZlHsP9EBUVVerv+Z14eHgwZswY/vOf/zB//nwWLVpERkYGbdu25cKFC5w8ebLU/TZv3sywYcMYP3487dq1IzIy0rbizN2qrr8Ner2e2NhYPvnkEw4dOsS5c+dYt26drf3IkSOEhITg5+d3T8cnxP2yZ88eOnToYEsCpkyZQocOHXjrrbcA65cpEydO5OWXX6Z58+YMHTqUnTt32v7e9+vXjzlz5rB06VI6dOjA4MGDMRgMrFy5slxfgtxMEgsh6qHz588zZcoUTpw4wdy5c/nyyy/505/+VGrfxo0bYzKZ+PLLLzl79iwzZ87kX//6132N55133uGzzz7jiy++sH1b8uWXXwIQGxtL27ZtGTduHPv27WPXrl1MnDiRmJgYoqOjKSgo4LnnnmPDhg0kJiaydetWdu/ebTuxiIiIIDc3l7Vr15KWllbm7QsdOnTA39+frVu3lhnnuHHjcHJyYtKkSRw5coT169fz/PPPM2HCBAIDA+94LPdjLMsTA1hX+HnqqaeIj4/n119/5e233+a5555Dq9Xi7u7OK6+8wksvvcQPP/zAmTNn2L9/P19//TU//PDDbV+/SZMmLF68mAMHDnDw4EHGjh1b4hvniIgINm3axMWLF0lLSwPg5ZdfZu3atfz973/n5MmT/PDDD3z11Ve88sorFTp+JycnXnvtNV599VXbrVs7duzg+++/L9f4JCQk8Je//IXt27eTmJjI6tWrOXnypN375fq3fWlpaRiNxgrFV15vv/02c+fO5e233+bYsWMcPnyYTz755L49/wsvvMDKlSv55JNPOHnyJF999RUrV6687T7/+Mc/mDdvHsePH+fkyZMsXLiQoKAgvLy8iImJoXfv3owaNYo1a9aQkJDAr7/+anvOJk2asGbNGrZt28axY8f4/e9/T0pKyj0fR1X/bVi+fDlffPEFBw4cIDExkRkzZmCxWGjevLktps2bNzNw4MB7PjYh7pc+ffqgrPOm7X6ur2rn4ODAu+++S0JCAkVFRSQnJ7N48WLatGlje47HH3+cffv2kZubS2pqKj/99BMtWrSoeDAVnhUihKjVYmJi1LPPPqueeeYZ5eHhoby9vdXrr79uN2Hz1sm3U6dOVcHBwcrZ2VkNGjRIzZgxw26iaGmTIJcsWaIq8ifmX//6l2revLlycHBQwcHB6vnnn7e1JSYmqqFDhypXV1fl7u6uHnvsMdtEZaPRqB5//HEVGhqqHB0dVYMGDdRzzz2nCgoKbPs/88wzytfXVwG3nWD7+uuvq8cff9xuG7dMhDt06JDq27evcnJyUj4+Puq3v/1tiZWmbncsdzOWt7pTDJMmTVLDhg1Tb731lvL19VVubm7q6aeftlvFxmKxqH/+85+2OP39/dWgQYPUxo0blVIlJwNfl5CQoPr27aucnZ1VaGio+uqrr1RMTIz605/+ZOuzfft21bZtW2UwGOzeAz/++KOKiopSDg4OKiwsTH366ad2z32nRQOuM5vN6r333lPh4eG25/rggw/KNT4pKSlq+PDhKjg4WDk6Oqrw8HD11ltv2VYDKywsVKNGjVJeXl4KsFu16nYqOnlbKetE4fbt2ytHR0fl5+enRo4caWsrbSzatWtne407Td5WSqnvv/9ehYSEKGdnZzVkyBD1f//3f3dcGKB9+/bK1dVVeXh4qP79+6t9+/bZ2tPT09WTTz6pfH19lZOTk2rdurVavny5rW3YsGHKzc1NBQQEqL/+9a9q4sSJatiwYbb9b32fKKXUsGHD7FY0K01V/m3YvHmziomJUd7e3srZ2Vm1bdtWzZ8/39a/oKBAeXh4VHhCqxD1hUapu7gRUwhRa/Xp04f27dvX2srIleny5cu0atWKvXv3Eh4eXt3h3LXJkyeTmZnJ0qVLqzsUIeqUr7/+mp9++sluYrsQ4ga5FUoIIa4JDAzk+++/v+MKR0KI+snBwcF2K5YQoiR9dQcghKj73Nzcymz79ddfeeCBB6owmtsbNmxYdYcghKihfve731V3CELUaHIrlBCi0p0+fbrMtoYNG1Z41QkhhBBC1DySWAghhBBCCCHumcyxEEIIIYQQQtwzSSyEEEIIIYQQ90wSCyGEEEIIIcQ9k8RCCCGEEEIIcc8ksRBCCCGEEELcM0kshBBCCCGEEPdMEgshhBBCCCHEPZPEQgghhBBCCHHP/j/2uAQWcTlmNQAAAABJRU5ErkJggg==", + "image/png": "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nJzM0aNHKVasmC6peBE5jcvb21uXVAC4ublx69atF25XCCFEwZP6+BGHf13HgV9Wk/ooBYCydYOo2yUUu0IyPk8IQ5LE4gWYmJszePHq59a7duYka6eOe269diPHUaxshRy1m1sNGjRg3rx5mJqa4u7urjdA29raWq+uUirLrlbZlcOTuwTjx4+nXbt2mZZZWFjkyUDvnMb19OBzjUaDVqt96faFEEIYnlKKv6J3smt5OPfv3gbArZQvDUL741bK18DRCSFAEosXotFocnSb1atSZWycCmUauP1vts6F8KpUOd+mvrO2tqZkyZI5qluuXDmuXLnC1atXdXcHTp8+TUJCAmXLls1ynSpVqnD27Nls26hYsSLXrl3j3LlzWd61MDMzIz392VPvvkhcQggh3hzXz/1F5JLvuXH+yXg8W+fC1O8Whm+d+i899lAIkXckschHRkbGvBPWn/WzJmdbp0Fo/wIzn3ajRo2oWLEi3bp1Y/bs2bpB0oGBgVSrVi3LdcaMGUOLFi3w8PCgY8eOGBkZcfz4cU6cOMHnn39OYGAg9evXp3379syaNYuSJUvy119/odFoaNKkCd7e3iQlJbFt2zYqVaqElZUVVlZWLx2XEEKI11/indvs+jGcv/ZEAWBqbkGN1h2o2rItpma5v4svhMhfMl1CPitVsw6tho7CxqmQXrmtcyFaDR2V78+xyA2NRkNERASOjo7Ur1+fRo0a4ePjw8qVK7NdJzg4mA0bNrBlyxaqV69OrVq1mDVrFl5eXro6a9asoXr16nTp0oVy5crxySef6O5S1KlTh//85z906tSJwoULM3369DyJSwghxOsrNSWFPauWs+ij/+iSivKBjeg9+1tqte8sSYUQBZRGKaUMHYShJSYmYm9vT0JCAnZ2dnrLUlJSiImJoXjx4li8xCwTWm06/5w5RVJ8HDYOjhQtW77A3KnIjW+//ZaJEydy7do1Q4ciXrG8ei8IIUR2lFbL6V072L1iMUlx9wAoWqY8DUL74eKTs269Qoi89azr5KdJV6hXxMjIGI/yFQ0dxku5evUqGzdupHz58oYORQghxBvm2l+niFz8Azf/Pg+AfREX6nfvTakadWQchRCvCUksRI5VqVKFokWLEh4ebuhQhBBCvCESbsWyc3k45/btBsDM0pKabTtRpWkrTMzMDBydECI3JLEQOXb79m1D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StSI7t27q2eeeaZMWdu2bdUbb7xR4fqvvfaaatu2bZmyp59+WvXs2bPGYmwoqlvXFYmMjFQTJ0683aE1KDdbzyNHjlR///vf1TvvvKOio6NrMMKGo7p1/euvvypPT0+VmZlZG+E1GNWt548++kiFh4eXKfvss89UaGhojcXY0ABq2bJl111Hroe3rir1XBG5FlZfdeq6MVwP5YlFDTCZTOzZs4chQ4aUKR8yZAjbt2+vcJvffvut3Pp33XUXu3fvpqSkpMZire9upq6vZbVaycvLw9vbuyZCbBButp5nzJjBiRMneOedd2o6xAbjZur6xx9/pGvXrnz44YeEhITQunVrXn31VYqKimoj5HrpZuq5d+/enD17lhUrVqCUIi0tjSVLlnDffffVRsiNhlwP7UOuhTWrsVwPHewdQEOUkZGBxWIhICCgTHlAQACpqakVbpOamlrh+mazmYyMDIKCgmos3vrsZur6Wh9//DEFBQWMGDGiJkJsEG6mno8dO8Ybb7zBli1bcHCQj5qqupm6PnnyJFu3bsXJyYlly5aRkZHBs88+y8WLF6WfRSVupp579+7N3LlzGTlyJMXFxZjNZoYOHcp///vf2gi50ZDroX3ItbDmNKbroTyxqEEajabMa6VUubIbrV9RuSivunV92fz583n33XdZuHAh/v7+NRVeg1HVerZYLIwePZqJEyfSunXr2gqvQanOOW21WtFoNMydO5fu3btz7733MmXKFGbOnClPLW6gOvWcmJjICy+8wNtvv82ePXtYuXIlSUlJPPPMM7URaqMi18PaJdfCmtPYrocNO22yE19fX3Q6XblvvdLT08t9C3NZYGBghes7ODjg4+NTY7HWdzdT15ctXLiQJ554gsWLFzNo0KCaDLPeq2495+XlsXv3buLi4nj++eeB0ptfpRQODg6sXr2aO++8s1Zir29u5pwOCgoiJCQET09PW1m7du1QSnH27FkiIiJqNOb66GbqefLkyfTp04e//vWvAHTs2BFXV1f69u3Le++9J9+k3yZyPaxdci2sWY3teihPLGqAo6MjXbp0Yc2aNWXK16xZQ+/evSvcplevXuXWX716NV27dkWv19dYrPXdzdQ1lH47M378eObNmyfto6uguvXs4eHB/v37iY+Pt/0888wztGnThvj4eHr06FFbodc7N3NO9+nTh/Pnz5Ofn28rO3r0KFqtltDQ0BqNt766mXouLCxEqy172dTpdMCVb9TFrZPrYe2Ra2HNa3TXQ/v0GW/4FixYoPR6vZo+fbpKTExUL774onJ1dVWnTp1SSin1xhtvqLFjx9rWP3nypHJxcVEvvfSSSkxMVNOnT1d6vV4tWbLEXodQb1S3rufNm6ccHBzU1KlTVUpKiu0nOzvbXodQL1S3nq/VkEfBuN2qW9d5eXkqNDRUPfzww+rgwYNq06ZNKiIiQj355JP2OoR6obr1PGPGDOXg4KC++OILdeLECbV161bVtWtX1b17d3sdQr2Ql5en4uLiVFxcnALUlClTVFxcnEpOTlZKyfXwdqluPcu18OZVt66v1ZCvh5JY1KCpU6eqsLAw5ejoqDp37qw2bdpkW/b444+r2NjYMutv3LhRxcTEKEdHR9W8eXP15Zdf1nLE9Vd16jo2NlYB5X4ef/zx2g+8nqnuOX21hvxBWhOqW9eHDh1SgwYNUs7Ozio0NFS9/PLLqrCwsJajrn+qW8+fffaZioyMVM7OziooKEg99thj6uzZs7Ucdf2yYcOG637myvXw9qhuPcu18ObdzDl9tYZ8PdQoJc9vhRBCCCGEELdG+lgIIYQQQgghbpkkFkIIIYQQQohbJomFEEIIIYQQ4pZJYiGEEEIIIYS4ZZJYCCGEEEIIIW6ZJBZCCCGEEEKIWyaJhRBCCCGEEOKWSWIhhBBCCCFEPbV582buv/9+goOD0Wg0LF++vNr7WLVqFT179sTd3R0/Pz8eeughkpKSqr0fSSyEEOU0b96cTz/91N5h2EW/fv2YN2+e7fXNfkjfrJkzZ+Ll5VVr7yfqphv9DZ46dQqNRkN8fDwAGzduRKPRkJ2dXek2cm7duocffpgpU6bYOwwhyigoKCA6OprPP//8prY/efIkw4YN48477yQ+Pp5Vq1aRkZHB8OHDq70vSSyEEA1adW6mfv75Z1JTUxk1alTNBtXA1efE9N1336VTp072DuOGmjZtSkpKClFRUfYOpd66mUTr7bff5v333yc3N7dmghLiJtxzzz289957lSYCJpOJ1157jZCQEFxdXenRowcbN260Ld+7dy8Wi4X33nuPli1b0rlzZ1599VUSEhIoKSmpViySWAghxCWfffYZEyZMQKuVj8ZrKaUwm821+p4mk6lW3+9WjB8/nnfffbfW3k+n0xEYGIiDg0OtvaeAjh070rx5c+bOnWvvUISosgkTJrBt2zYWLFjAvn37eOSRR7j77rs5duwYAF27dkWn0zFjxgwsFgs5OTnMmTOHIUOGoNfrq/VecvUUopHp378/zz//PM8//zxeXl74+Pjw97//HaVUpdtMmTKFDh064OrqStOmTXn22WfJz8+3Lb/8zd+qVato164dbm5u3H333aSkpFQ5rm+//Zb27dtjMBgICgri+eefty07ffo0w4YNw83NDQ8PD0aMGEFaWppteUJCAgMGDMDd3R0PDw+6dOnC7t272bhxIxMmTCAnJweNRoNGo6n05i8jI4O1a9cydOjQ68a5f/9+7rzzTpydnfHx8eFPf/pTmbq40bHcqC6r4kYxjB8/ngceeICJEyfi7++Ph4cHTz/9dJkbdaUUH374IeHh4Tg7OxMdHc2SJUtsyy83rVm1ahVdu3bFYDCwZcsWTpw4wbBhwwgICMDNzY1u3bqxdu1a23b9+/cnOTmZl156yVbnly1dutRWL82bN+fjjz8uc1zNmzfnvffeY/z48Xh6evLUU09VePxWq5UPPviAVq1aYTAYaNasGe+//36V62fjxo10794dV1dXvLy86NOnD8nJycycOZOJEyeSkJBgi33mzJnV+t1Ux48//kjXrl1xcnLC19e33LeNhYWF/PGPf8Td3Z1mzZoxbdo027Jrm0JVZObMmTRr1gwXFxcefPBBMjMzrxuPyWTi+eefJygoCCcnJ5o3b87kyZNty7Ozs/nTn/5EQEAATk5OREVF8fPPPwOQmZnJo48+SmhoKC4uLnTo0IH58+eX2X///v154YUXeO211/D29iYwMLBKyVhtfzZ88cUXRERE4OTkREBAAA8//HCZeIYOHVru2ISoq06cOMH8+fNZvHgxffv2pWXLlrz66qvccccdzJgxAyj97F29ejV/+9vfMBgMeHl5cfbsWRYsWFD9N1RCiEYlNjZWubm5qb/85S/q8OHD6rvvvlMuLi5q2rRptnXCwsLUJ598Ynv9ySefqPXr16uTJ0+qdevWqTZt2qj/+7//sy2fMWOG0uv1atCgQWrXrl1qz549ql27dmr06NFViumLL75QTk5O6tNPP1VHjhxRO3futL2/1WpVMTEx6o477lC7d+9WO3bsUJ07d1axsbG27du3b6/GjBmjDh06pI4ePaoWLVqk4uPjldFo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", "text/plain": [ "
" ] @@ -2456,7 +4327,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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RkZGNHfuXDp79iwdOnSIfvnlF/L395edPwBycXGhli1b0tGjR+no0aNUqVIlsrCwoLi4ONmx/P39SVdXlxo0aED79u2jM2fOUP/+/RVaOx8/fkyGhoZUvnx52rNnDx07doxatGhBJUqUUOlu465duwgANW/enI4ePUr79u2jatWqka6uLl25ckWWTtrK6+zsTJMmTaKzZ8/SypUrZZ/xt12kFixYQAKBgAYOHEgnT56kw4cPU506dcjIyIgeP34sS9evXz/S0dEhFxcXWrRoEV28eJHOnj1LRETr16+nRYsW0fHjxykwMJC2b99OHh4eVK5cOdmxPn78SGPGjJHrmhkUFETx8fFERDR06FACQKNHj6YzZ87Qhg0byMbGhooXLy7XWu3l5UWWlpZUvHhxWrNmDQUEBFBgYGCu1+u356HKe02keGf12bNnZGJiQqVLlyZfX186deoU9ejRgwDQkiVLZOnCwsLIysqKSpQoQdu2bSM/Pz/q06cPubi4KNwFmzt3LmlpaVFiYqLcsVXJQwICAggAFS9enDp06EAnTpygnTt3UpkyZcjU1JRev34t974puzvRr18/hTsspUqVUnr3SpXP+Vvu7u7UuXNnheVNmzalnj17Fulz9fLyIisrK3J0dKTVq1fT2bNnaezYsQSARo0apZB+yZIlJBQK5a41IkmLvrGxMY0fP15hm7xQdldy4cKFBIB69OhBp06dIl9fXypVqhSZmZnRixcvZOn++usvAkBdunShkydP0q5du6hs2bLk7Oz8Q94fZd+jESNG0N69e+nSpUt08uRJGjRoEAmFQrnvhjp5cG5UyfNTU1OpcuXKZGRkRMuXL6dz587RjBkzSFtbm1q3bi3b1/Xr10kgENDPP/9Mfn5+5O/vT3///Tf16dOHiCR3gKWfz/Tp02V53cePH4mIyNfXlwDQkydP5GJUp05ARLRv3z4CQA8ePJBbfvXqVQIg95k7OzuTk5MTlShRgrZu3Up+fn7Uq1cvhbs0ynooBAYG0oQJE+jgwYMUGBhIR44coY4dO5KBgYFct3npd9TFxYV69epFp06doj179lCJEiXI1dWVRCKRyp+XKnlCVFQUOTk5kY2NDW3YsIHOnDlDo0ePJgByd/327NlDAGjMmDF07tw5unDhAm3YsIHGjh0r24/0u7N27VrZ5xUVFUVE2efR0s+4ePHi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", "text/plain": [ "
" ] @@ -2555,514 +4426,514 @@ " \n", " Aggregation\n", " Filter\n", - " 0.552\n", - " 0.312\n", - " 0.478\n", - " 0.531\n", - " 0.888\n", - " 1.101\n", + " 0.359\n", + " 0.302\n", + " 0.364\n", + " 0.411\n", + " 0.733\n", + " 1.071\n", " \n", " \n", " HashJoin\n", - " 0.047\n", - " 0.021\n", - " -0.025\n", - " -0.149\n", - " 0.181\n", - " 0.637\n", + " 0.575\n", + " 0.525\n", + " 0.577\n", + " 0.571\n", + " 0.817\n", + " 1.048\n", " \n", " \n", " NestedLoopCrossJoin\n", - " -0.169\n", - " -0.206\n", - " -0.065\n", - " -0.220\n", - " 0.000\n", - " 0.277\n", + " -0.297\n", + " -0.267\n", + " -0.153\n", + " -0.412\n", + " -0.129\n", + " 0.262\n", " \n", " \n", " NestedLoopJoin\n", - " -0.651\n", - " -0.688\n", - " -0.479\n", - " -0.405\n", - " -0.011\n", - " 0.469\n", + " -0.834\n", + " -0.762\n", + " -0.592\n", + " -0.496\n", + " -0.090\n", + " 0.304\n", " \n", " \n", " Projection\n", - " -0.508\n", - " -0.718\n", - " -0.743\n", - " -0.668\n", - " -0.262\n", - " 0.103\n", + " -0.717\n", + " -0.798\n", + " -0.820\n", + " -0.680\n", + " -0.394\n", + " -0.006\n", " \n", " \n", " SeqScan\n", - " -0.180\n", - " 0.149\n", - " 0.307\n", - " 0.122\n", - " 0.501\n", - " 0.778\n", + " -0.056\n", + " 0.159\n", + " 0.292\n", + " -0.015\n", + " 0.257\n", + " 0.536\n", " \n", " \n", " Sort\n", - " -0.290\n", - " -0.409\n", - " -0.523\n", - " -0.541\n", - " -0.320\n", - " -0.188\n", + " -0.374\n", + " -0.434\n", + " -0.498\n", + " -0.620\n", + " -0.344\n", + " -0.279\n", " \n", " \n", " Filter\n", " Aggregation\n", - " -0.552\n", - " -0.312\n", - " -0.478\n", - " -0.531\n", - " -0.888\n", - " -1.101\n", + " -0.359\n", + " -0.302\n", + " -0.364\n", + " -0.411\n", + " -0.733\n", + " -1.071\n", " \n", " \n", " HashJoin\n", - " -0.504\n", - " -0.290\n", - " -0.502\n", - " -0.680\n", - " -0.707\n", - " -0.465\n", + " 0.216\n", + " 0.223\n", + " 0.213\n", + " 0.159\n", + " 0.083\n", + " -0.023\n", " \n", " \n", " NestedLoopCrossJoin\n", - " -0.721\n", + " -0.656\n", + " -0.569\n", " -0.517\n", - " -0.543\n", - " -0.751\n", - " -0.887\n", - " -0.824\n", + " -0.823\n", + " -0.862\n", + " -0.810\n", " \n", " \n", " NestedLoopJoin\n", - " -1.203\n", - " -0.999\n", + " -1.193\n", + " -1.063\n", " -0.956\n", - " -0.936\n", - " -0.899\n", - " -0.633\n", + " -0.907\n", + " -0.823\n", + " -0.767\n", " \n", " \n", " Projection\n", - " -1.059\n", - " -1.030\n", - " -1.220\n", - " -1.199\n", - " -1.150\n", - " -0.998\n", + " -1.076\n", + " -1.099\n", + " -1.184\n", + " -1.091\n", + " -1.127\n", + " -1.077\n", " \n", " \n", " SeqScan\n", - " -0.732\n", - " -0.162\n", - " -0.171\n", - " -0.409\n", - " -0.386\n", - " -0.323\n", + " -0.416\n", + " -0.143\n", + " -0.071\n", + " -0.426\n", + " -0.476\n", + " -0.536\n", " \n", " \n", " Sort\n", - " -0.841\n", - " -0.720\n", - " -1.000\n", - " -1.072\n", - " -1.207\n", - " -1.289\n", + " -0.733\n", + " -0.735\n", + " -0.862\n", + " -1.031\n", + " -1.078\n", + " -1.350\n", " \n", " \n", " HashJoin\n", " Aggregation\n", - " -0.047\n", - " -0.021\n", - " 0.025\n", - " 0.149\n", - " -0.181\n", - " -0.637\n", + " -0.575\n", + " -0.525\n", + " -0.577\n", + " -0.571\n", + " -0.817\n", + " -1.048\n", " \n", " \n", " Filter\n", - " 0.504\n", - " 0.290\n", - " 0.502\n", - " 0.680\n", - " 0.707\n", - " 0.465\n", + " -0.216\n", + " -0.223\n", + " -0.213\n", + " -0.159\n", + " -0.083\n", + " 0.023\n", " \n", " \n", " NestedLoopCrossJoin\n", - " -0.217\n", - " -0.227\n", - " -0.041\n", - " -0.071\n", - " -0.180\n", - " -0.359\n", + " -0.872\n", + " -0.792\n", + " -0.730\n", + " -0.982\n", + " -0.946\n", + " -0.787\n", " \n", " \n", " NestedLoopJoin\n", - " -0.698\n", - " -0.709\n", - " -0.454\n", - " -0.256\n", - " -0.192\n", - " -0.168\n", + " -1.409\n", + " -1.287\n", + " -1.169\n", + " -1.066\n", + " -0.907\n", + " -0.744\n", " \n", " \n", " Projection\n", - " -0.555\n", - " -0.740\n", - " -0.718\n", - " -0.519\n", - " -0.443\n", - " -0.533\n", + " -1.291\n", + " -1.322\n", + " -1.397\n", + " -1.250\n", + " -1.210\n", + " -1.054\n", " \n", " \n", " SeqScan\n", - " -0.227\n", - " 0.128\n", - " 0.331\n", - " 0.271\n", - " 0.321\n", - " 0.142\n", + " -0.631\n", + " -0.366\n", + " -0.285\n", + " -0.585\n", + " -0.560\n", + " -0.513\n", " \n", " \n", " Sort\n", - " -0.337\n", - " -0.430\n", - " -0.498\n", - " -0.392\n", - " -0.500\n", - " -0.825\n", + " -0.949\n", + " -0.958\n", + " -1.075\n", + " -1.190\n", + " -1.161\n", + " -1.327\n", " \n", " \n", " NestedLoopCrossJoin\n", " Aggregation\n", - " 0.169\n", - " 0.206\n", - " 0.065\n", - " 0.220\n", - " -0.000\n", - " -0.277\n", + " 0.297\n", + " 0.267\n", + " 0.153\n", + " 0.412\n", + " 0.129\n", + " -0.262\n", " \n", " \n", " Filter\n", - " 0.721\n", + " 0.656\n", + " 0.569\n", " 0.517\n", - " 0.543\n", - " 0.751\n", - " 0.887\n", - " 0.824\n", + " 0.823\n", + " 0.862\n", + " 0.810\n", " \n", " \n", " HashJoin\n", - " 0.217\n", - " 0.227\n", - " 0.041\n", - " 0.071\n", - " 0.180\n", - " 0.359\n", + " 0.872\n", + " 0.792\n", + " 0.730\n", + " 0.982\n", + " 0.946\n", + " 0.787\n", " \n", " \n", " NestedLoopJoin\n", - " -0.482\n", - " -0.482\n", - " -0.413\n", - " -0.185\n", - " -0.011\n", - " 0.191\n", + " -0.537\n", + " -0.495\n", + " -0.439\n", + " -0.084\n", + " 0.039\n", + " 0.043\n", " \n", " \n", " Projection\n", - " -0.338\n", - " -0.512\n", - " -0.677\n", - " -0.448\n", - " -0.262\n", - " -0.174\n", + " -0.420\n", + " -0.531\n", + " -0.667\n", + " -0.268\n", + " -0.265\n", + " -0.267\n", " \n", " \n", " SeqScan\n", - " -0.011\n", - " 0.355\n", - " 0.372\n", - " 0.342\n", - " 0.501\n", - " 0.501\n", + " 0.241\n", + " 0.426\n", + " 0.445\n", + " 0.397\n", + " 0.386\n", + " 0.274\n", " \n", " \n", " Sort\n", - " -0.121\n", - " -0.203\n", - " -0.457\n", - " -0.321\n", - " -0.320\n", - " -0.465\n", + " -0.077\n", + " -0.167\n", + " -0.345\n", + " -0.208\n", + " -0.215\n", + " -0.540\n", " \n", " \n", " NestedLoopJoin\n", " Aggregation\n", - " 0.651\n", - " 0.688\n", - " 0.479\n", - " 0.405\n", - " 0.011\n", - " -0.469\n", + " 0.834\n", + " 0.762\n", + " 0.592\n", + " 0.496\n", + " 0.090\n", + " -0.304\n", " \n", " \n", " Filter\n", - " 1.203\n", - " 0.999\n", + " 1.193\n", + " 1.063\n", " 0.956\n", - " 0.936\n", - " 0.899\n", - " 0.633\n", + " 0.907\n", + " 0.823\n", + " 0.767\n", " \n", " \n", " HashJoin\n", - " 0.698\n", - " 0.709\n", - " 0.454\n", - " 0.256\n", - " 0.192\n", - " 0.168\n", + " 1.409\n", + " 1.287\n", + " 1.169\n", + " 1.066\n", + " 0.907\n", + " 0.744\n", " \n", " \n", " NestedLoopCrossJoin\n", - " 0.482\n", - " 0.482\n", - " 0.413\n", - " 0.185\n", - " 0.011\n", - " -0.191\n", + " 0.537\n", + " 0.495\n", + " 0.439\n", + " 0.084\n", + " -0.039\n", + " -0.043\n", " \n", " \n", " Projection\n", - " 0.143\n", - " -0.030\n", - " -0.264\n", - " -0.263\n", - " -0.251\n", - " -0.365\n", + " 0.118\n", + " -0.036\n", + " -0.228\n", + " -0.184\n", + " -0.304\n", + " -0.310\n", " \n", " \n", " SeqScan\n", - " 0.471\n", - " 0.837\n", - " 0.786\n", - " 0.527\n", - " 0.512\n", - " 0.310\n", + " 0.778\n", + " 0.921\n", + " 0.884\n", + " 0.481\n", + " 0.347\n", + " 0.231\n", " \n", " \n", " Sort\n", - " 0.361\n", - " 0.279\n", - " -0.044\n", - " -0.136\n", - " -0.309\n", - " -0.657\n", + " 0.460\n", + " 0.328\n", + " 0.094\n", + " -0.124\n", + " -0.255\n", + " -0.583\n", " \n", " \n", " Projection\n", " Aggregation\n", - " 0.508\n", - " 0.718\n", - " 0.743\n", - " 0.668\n", - " 0.262\n", - " -0.103\n", + " 0.717\n", + " 0.798\n", + " 0.820\n", + " 0.680\n", + " 0.394\n", + " 0.006\n", " \n", " \n", " Filter\n", - " 1.059\n", - " 1.030\n", - " 1.220\n", - " 1.199\n", - " 1.150\n", - " 0.998\n", + " 1.076\n", + " 1.099\n", + " 1.184\n", + " 1.091\n", + " 1.127\n", + " 1.077\n", " \n", " \n", " HashJoin\n", - " 0.555\n", - " 0.740\n", - " 0.718\n", - " 0.519\n", - " 0.443\n", - " 0.533\n", + " 1.291\n", + " 1.322\n", + " 1.397\n", + " 1.250\n", + " 1.210\n", + " 1.054\n", " \n", " \n", " NestedLoopCrossJoin\n", - " 0.338\n", - " 0.512\n", - " 0.677\n", - " 0.448\n", - " 0.262\n", - " 0.174\n", + " 0.420\n", + " 0.531\n", + " 0.667\n", + " 0.268\n", + " 0.265\n", + " 0.267\n", " \n", " \n", " NestedLoopJoin\n", - " -0.143\n", - " 0.030\n", - " 0.264\n", - " 0.263\n", - " 0.251\n", - " 0.365\n", + " -0.118\n", + " 0.036\n", + " 0.228\n", + " 0.184\n", + " 0.304\n", + " 0.310\n", " \n", " \n", " SeqScan\n", - " 0.328\n", - " 0.867\n", - " 1.049\n", - " 0.790\n", - " 0.763\n", - " 0.675\n", + " 0.660\n", + " 0.956\n", + " 1.113\n", + " 0.665\n", + " 0.650\n", + " 0.541\n", " \n", " \n", " Sort\n", - " 0.218\n", - " 0.309\n", - " 0.220\n", - " 0.127\n", - " -0.058\n", - " -0.291\n", + " 0.343\n", + " 0.364\n", + " 0.322\n", + " 0.060\n", + " 0.049\n", + " -0.273\n", " \n", " \n", " SeqScan\n", " Aggregation\n", - " 0.180\n", - " -0.149\n", - " -0.307\n", - " -0.122\n", - " -0.501\n", - " -0.778\n", + " 0.056\n", + " -0.159\n", + " -0.292\n", + " 0.015\n", + " -0.257\n", + " -0.536\n", " \n", " \n", " Filter\n", - " 0.732\n", - " 0.162\n", - " 0.171\n", - " 0.409\n", - " 0.386\n", - " 0.323\n", + " 0.416\n", + " 0.143\n", + " 0.071\n", + " 0.426\n", + " 0.476\n", + " 0.536\n", " \n", " \n", " HashJoin\n", - " 0.227\n", - " -0.128\n", - " -0.331\n", - " -0.271\n", - " -0.321\n", - " -0.142\n", + " 0.631\n", + " 0.366\n", + " 0.285\n", + " 0.585\n", + " 0.560\n", + " 0.513\n", " \n", " \n", " NestedLoopCrossJoin\n", - " 0.011\n", - " -0.355\n", - " -0.372\n", - " -0.342\n", - " -0.501\n", - " -0.501\n", + " -0.241\n", + " -0.426\n", + " -0.445\n", + " -0.397\n", + " -0.386\n", + " -0.274\n", " \n", " \n", " NestedLoopJoin\n", - " -0.471\n", - " -0.837\n", - " -0.786\n", - " -0.527\n", - " -0.512\n", - " -0.310\n", + " -0.778\n", + " -0.921\n", + " -0.884\n", + " -0.481\n", + " -0.347\n", + " -0.231\n", " \n", " \n", " Projection\n", - " -0.328\n", - " -0.867\n", - " -1.049\n", - " -0.790\n", - " -0.763\n", - " -0.675\n", + " -0.660\n", + " -0.956\n", + " -1.113\n", + " -0.665\n", + " -0.650\n", + " -0.541\n", " \n", " \n", " Sort\n", - " -0.110\n", - " -0.558\n", - " -0.830\n", - " -0.663\n", - " -0.821\n", - " -0.966\n", + " -0.318\n", + " -0.593\n", + " -0.791\n", + " -0.605\n", + " -0.601\n", + " -0.814\n", " \n", " \n", " Sort\n", " Aggregation\n", - " 0.290\n", - " 0.409\n", - " 0.523\n", - " 0.541\n", - " 0.320\n", - " 0.188\n", + " 0.374\n", + " 0.434\n", + " 0.498\n", + " 0.620\n", + " 0.344\n", + " 0.279\n", " \n", " \n", " Filter\n", - " 0.841\n", - " 0.720\n", - " 1.000\n", - " 1.072\n", - " 1.207\n", - " 1.289\n", + " 0.733\n", + " 0.735\n", + " 0.862\n", + " 1.031\n", + " 1.078\n", + " 1.350\n", " \n", " \n", " HashJoin\n", - " 0.337\n", - " 0.430\n", - " 0.498\n", - " 0.392\n", - " 0.500\n", - " 0.825\n", + " 0.949\n", + " 0.958\n", + " 1.075\n", + " 1.190\n", + " 1.161\n", + " 1.327\n", " \n", " \n", " NestedLoopCrossJoin\n", - " 0.121\n", - " 0.203\n", - " 0.457\n", - " 0.321\n", - " 0.320\n", - " 0.465\n", + " 0.077\n", + " 0.167\n", + " 0.345\n", + " 0.208\n", + " 0.215\n", + " 0.540\n", " \n", " \n", " NestedLoopJoin\n", - " -0.361\n", - " -0.279\n", - " 0.044\n", - " 0.136\n", - " 0.309\n", - " 0.657\n", + " -0.460\n", + " -0.328\n", + " -0.094\n", + " 0.124\n", + " 0.255\n", + " 0.583\n", " \n", " \n", " Projection\n", - " -0.218\n", - " -0.309\n", - " -0.220\n", - " -0.127\n", - " 0.058\n", - " 0.291\n", + " -0.343\n", + " -0.364\n", + " -0.322\n", + " -0.060\n", + " -0.049\n", + " 0.273\n", " \n", " \n", " SeqScan\n", - " 0.110\n", - " 0.558\n", - " 0.830\n", - " 0.663\n", - " 0.821\n", - " 0.966\n", + " 0.318\n", + " 0.593\n", + " 0.791\n", + " 0.605\n", + " 0.601\n", + " 0.814\n", " \n", " \n", "\n", @@ -3071,121 +4942,121 @@ "text/plain": [ "target_cost 640000 1000000 3240000 \\\n", "a b \n", - "Aggregation Filter 0.552 0.312 0.478 \n", - " HashJoin 0.047 0.021 -0.025 \n", - " NestedLoopCrossJoin -0.169 -0.206 -0.065 \n", - " NestedLoopJoin -0.651 -0.688 -0.479 \n", - " Projection -0.508 -0.718 -0.743 \n", - " SeqScan -0.180 0.149 0.307 \n", - " Sort -0.290 -0.409 -0.523 \n", - "Filter Aggregation -0.552 -0.312 -0.478 \n", - " HashJoin -0.504 -0.290 -0.502 \n", - " NestedLoopCrossJoin -0.721 -0.517 -0.543 \n", - " NestedLoopJoin -1.203 -0.999 -0.956 \n", - " Projection -1.059 -1.030 -1.220 \n", - " SeqScan -0.732 -0.162 -0.171 \n", - " Sort -0.841 -0.720 -1.000 \n", - "HashJoin Aggregation -0.047 -0.021 0.025 \n", - " Filter 0.504 0.290 0.502 \n", - " NestedLoopCrossJoin -0.217 -0.227 -0.041 \n", - " NestedLoopJoin -0.698 -0.709 -0.454 \n", - " Projection -0.555 -0.740 -0.718 \n", - " SeqScan -0.227 0.128 0.331 \n", - " Sort -0.337 -0.430 -0.498 \n", - "NestedLoopCrossJoin Aggregation 0.169 0.206 0.065 \n", - " Filter 0.721 0.517 0.543 \n", - " HashJoin 0.217 0.227 0.041 \n", - " NestedLoopJoin -0.482 -0.482 -0.413 \n", - " Projection -0.338 -0.512 -0.677 \n", - " SeqScan -0.011 0.355 0.372 \n", - " Sort -0.121 -0.203 -0.457 \n", - "NestedLoopJoin Aggregation 0.651 0.688 0.479 \n", - " Filter 1.203 0.999 0.956 \n", - " HashJoin 0.698 0.709 0.454 \n", - " NestedLoopCrossJoin 0.482 0.482 0.413 \n", - " Projection 0.143 -0.030 -0.264 \n", - " SeqScan 0.471 0.837 0.786 \n", - " Sort 0.361 0.279 -0.044 \n", - "Projection Aggregation 0.508 0.718 0.743 \n", - " Filter 1.059 1.030 1.220 \n", - " HashJoin 0.555 0.740 0.718 \n", - " NestedLoopCrossJoin 0.338 0.512 0.677 \n", - " NestedLoopJoin -0.143 0.030 0.264 \n", - " SeqScan 0.328 0.867 1.049 \n", - " Sort 0.218 0.309 0.220 \n", - "SeqScan Aggregation 0.180 -0.149 -0.307 \n", - " Filter 0.732 0.162 0.171 \n", - " HashJoin 0.227 -0.128 -0.331 \n", - " NestedLoopCrossJoin 0.011 -0.355 -0.372 \n", - " NestedLoopJoin -0.471 -0.837 -0.786 \n", - " Projection -0.328 -0.867 -1.049 \n", - " Sort -0.110 -0.558 -0.830 \n", - "Sort Aggregation 0.290 0.409 0.523 \n", - " Filter 0.841 0.720 1.000 \n", - " HashJoin 0.337 0.430 0.498 \n", - " NestedLoopCrossJoin 0.121 0.203 0.457 \n", - " NestedLoopJoin -0.361 -0.279 0.044 \n", - " Projection -0.218 -0.309 -0.220 \n", - " SeqScan 0.110 0.558 0.830 \n", + "Aggregation Filter 0.359 0.302 0.364 \n", + " HashJoin 0.575 0.525 0.577 \n", + " NestedLoopCrossJoin -0.297 -0.267 -0.153 \n", + " NestedLoopJoin -0.834 -0.762 -0.592 \n", + " Projection -0.717 -0.798 -0.820 \n", + " SeqScan -0.056 0.159 0.292 \n", + " Sort -0.374 -0.434 -0.498 \n", + "Filter Aggregation -0.359 -0.302 -0.364 \n", + " HashJoin 0.216 0.223 0.213 \n", + " NestedLoopCrossJoin -0.656 -0.569 -0.517 \n", + " NestedLoopJoin -1.193 -1.063 -0.956 \n", + " Projection -1.076 -1.099 -1.184 \n", + " SeqScan -0.416 -0.143 -0.071 \n", + " Sort -0.733 -0.735 -0.862 \n", + "HashJoin Aggregation -0.575 -0.525 -0.577 \n", + " Filter -0.216 -0.223 -0.213 \n", + " NestedLoopCrossJoin -0.872 -0.792 -0.730 \n", + " NestedLoopJoin -1.409 -1.287 -1.169 \n", + " Projection -1.291 -1.322 -1.397 \n", + " SeqScan -0.631 -0.366 -0.285 \n", + " Sort -0.949 -0.958 -1.075 \n", + "NestedLoopCrossJoin Aggregation 0.297 0.267 0.153 \n", + " Filter 0.656 0.569 0.517 \n", + " HashJoin 0.872 0.792 0.730 \n", + " NestedLoopJoin -0.537 -0.495 -0.439 \n", + " Projection -0.420 -0.531 -0.667 \n", + " SeqScan 0.241 0.426 0.445 \n", + " Sort -0.077 -0.167 -0.345 \n", + "NestedLoopJoin Aggregation 0.834 0.762 0.592 \n", + " Filter 1.193 1.063 0.956 \n", + " HashJoin 1.409 1.287 1.169 \n", + " NestedLoopCrossJoin 0.537 0.495 0.439 \n", + " Projection 0.118 -0.036 -0.228 \n", + " SeqScan 0.778 0.921 0.884 \n", + " Sort 0.460 0.328 0.094 \n", + "Projection Aggregation 0.717 0.798 0.820 \n", + " Filter 1.076 1.099 1.184 \n", + " HashJoin 1.291 1.322 1.397 \n", + " NestedLoopCrossJoin 0.420 0.531 0.667 \n", + " NestedLoopJoin -0.118 0.036 0.228 \n", + " SeqScan 0.660 0.956 1.113 \n", + " Sort 0.343 0.364 0.322 \n", + "SeqScan Aggregation 0.056 -0.159 -0.292 \n", + " Filter 0.416 0.143 0.071 \n", + " HashJoin 0.631 0.366 0.285 \n", + " NestedLoopCrossJoin -0.241 -0.426 -0.445 \n", + " NestedLoopJoin -0.778 -0.921 -0.884 \n", + " Projection -0.660 -0.956 -1.113 \n", + " Sort -0.318 -0.593 -0.791 \n", + "Sort Aggregation 0.374 0.434 0.498 \n", + " Filter 0.733 0.735 0.862 \n", + " HashJoin 0.949 0.958 1.075 \n", + " NestedLoopCrossJoin 0.077 0.167 0.345 \n", + " NestedLoopJoin -0.460 -0.328 -0.094 \n", + " Projection -0.343 -0.364 -0.322 \n", + " SeqScan 0.318 0.593 0.791 \n", "\n", "target_cost 6760000 12250000 26010000 \n", "a b \n", - "Aggregation Filter 0.531 0.888 1.101 \n", - " HashJoin -0.149 0.181 0.637 \n", - " NestedLoopCrossJoin -0.220 0.000 0.277 \n", - " NestedLoopJoin -0.405 -0.011 0.469 \n", - " Projection -0.668 -0.262 0.103 \n", - " SeqScan 0.122 0.501 0.778 \n", - " Sort -0.541 -0.320 -0.188 \n", - "Filter Aggregation -0.531 -0.888 -1.101 \n", - " HashJoin -0.680 -0.707 -0.465 \n", - " NestedLoopCrossJoin -0.751 -0.887 -0.824 \n", - " NestedLoopJoin -0.936 -0.899 -0.633 \n", - " Projection -1.199 -1.150 -0.998 \n", - " SeqScan -0.409 -0.386 -0.323 \n", - " Sort -1.072 -1.207 -1.289 \n", - "HashJoin Aggregation 0.149 -0.181 -0.637 \n", - " Filter 0.680 0.707 0.465 \n", - " NestedLoopCrossJoin -0.071 -0.180 -0.359 \n", - " NestedLoopJoin -0.256 -0.192 -0.168 \n", - " Projection -0.519 -0.443 -0.533 \n", - " SeqScan 0.271 0.321 0.142 \n", - " Sort -0.392 -0.500 -0.825 \n", - "NestedLoopCrossJoin Aggregation 0.220 -0.000 -0.277 \n", - " Filter 0.751 0.887 0.824 \n", - " HashJoin 0.071 0.180 0.359 \n", - " NestedLoopJoin -0.185 -0.011 0.191 \n", - " Projection -0.448 -0.262 -0.174 \n", - " SeqScan 0.342 0.501 0.501 \n", - " Sort -0.321 -0.320 -0.465 \n", - "NestedLoopJoin Aggregation 0.405 0.011 -0.469 \n", - " Filter 0.936 0.899 0.633 \n", - " HashJoin 0.256 0.192 0.168 \n", - " NestedLoopCrossJoin 0.185 0.011 -0.191 \n", - " Projection -0.263 -0.251 -0.365 \n", - " SeqScan 0.527 0.512 0.310 \n", - " Sort -0.136 -0.309 -0.657 \n", - "Projection Aggregation 0.668 0.262 -0.103 \n", - " Filter 1.199 1.150 0.998 \n", - " HashJoin 0.519 0.443 0.533 \n", - " NestedLoopCrossJoin 0.448 0.262 0.174 \n", - " NestedLoopJoin 0.263 0.251 0.365 \n", - " SeqScan 0.790 0.763 0.675 \n", - " Sort 0.127 -0.058 -0.291 \n", - "SeqScan Aggregation -0.122 -0.501 -0.778 \n", - " Filter 0.409 0.386 0.323 \n", - " HashJoin -0.271 -0.321 -0.142 \n", - " NestedLoopCrossJoin -0.342 -0.501 -0.501 \n", - " NestedLoopJoin -0.527 -0.512 -0.310 \n", - " Projection -0.790 -0.763 -0.675 \n", - " Sort -0.663 -0.821 -0.966 \n", - "Sort Aggregation 0.541 0.320 0.188 \n", - " Filter 1.072 1.207 1.289 \n", - " HashJoin 0.392 0.500 0.825 \n", - " NestedLoopCrossJoin 0.321 0.320 0.465 \n", - " NestedLoopJoin 0.136 0.309 0.657 \n", - " Projection -0.127 0.058 0.291 \n", - " SeqScan 0.663 0.821 0.966 " + "Aggregation Filter 0.411 0.733 1.071 \n", + " HashJoin 0.571 0.817 1.048 \n", + " NestedLoopCrossJoin -0.412 -0.129 0.262 \n", + " NestedLoopJoin -0.496 -0.090 0.304 \n", + " Projection -0.680 -0.394 -0.006 \n", + " SeqScan -0.015 0.257 0.536 \n", + " Sort -0.620 -0.344 -0.279 \n", + "Filter Aggregation -0.411 -0.733 -1.071 \n", + " HashJoin 0.159 0.083 -0.023 \n", + " NestedLoopCrossJoin -0.823 -0.862 -0.810 \n", + " NestedLoopJoin -0.907 -0.823 -0.767 \n", + " Projection -1.091 -1.127 -1.077 \n", + " SeqScan -0.426 -0.476 -0.536 \n", + " Sort -1.031 -1.078 -1.350 \n", + "HashJoin Aggregation -0.571 -0.817 -1.048 \n", + " Filter -0.159 -0.083 0.023 \n", + " NestedLoopCrossJoin -0.982 -0.946 -0.787 \n", + " NestedLoopJoin -1.066 -0.907 -0.744 \n", + " Projection -1.250 -1.210 -1.054 \n", + " SeqScan -0.585 -0.560 -0.513 \n", + " Sort -1.190 -1.161 -1.327 \n", + "NestedLoopCrossJoin Aggregation 0.412 0.129 -0.262 \n", + " Filter 0.823 0.862 0.810 \n", + " HashJoin 0.982 0.946 0.787 \n", + " NestedLoopJoin -0.084 0.039 0.043 \n", + " Projection -0.268 -0.265 -0.267 \n", + " SeqScan 0.397 0.386 0.274 \n", + " Sort -0.208 -0.215 -0.540 \n", + "NestedLoopJoin Aggregation 0.496 0.090 -0.304 \n", + " Filter 0.907 0.823 0.767 \n", + " HashJoin 1.066 0.907 0.744 \n", + " NestedLoopCrossJoin 0.084 -0.039 -0.043 \n", + " Projection -0.184 -0.304 -0.310 \n", + " SeqScan 0.481 0.347 0.231 \n", + " Sort -0.124 -0.255 -0.583 \n", + "Projection Aggregation 0.680 0.394 0.006 \n", + " Filter 1.091 1.127 1.077 \n", + " HashJoin 1.250 1.210 1.054 \n", + " NestedLoopCrossJoin 0.268 0.265 0.267 \n", + " NestedLoopJoin 0.184 0.304 0.310 \n", + " SeqScan 0.665 0.650 0.541 \n", + " Sort 0.060 0.049 -0.273 \n", + "SeqScan Aggregation 0.015 -0.257 -0.536 \n", + " Filter 0.426 0.476 0.536 \n", + " HashJoin 0.585 0.560 0.513 \n", + " NestedLoopCrossJoin -0.397 -0.386 -0.274 \n", + " NestedLoopJoin -0.481 -0.347 -0.231 \n", + " Projection -0.665 -0.650 -0.541 \n", + " Sort -0.605 -0.601 -0.814 \n", + "Sort Aggregation 0.620 0.344 0.279 \n", + " Filter 1.031 1.078 1.350 \n", + " HashJoin 1.190 1.161 1.327 \n", + " NestedLoopCrossJoin 0.208 0.215 0.540 \n", + " NestedLoopJoin 0.124 0.255 0.583 \n", + " Projection -0.060 -0.049 0.273 \n", + " SeqScan 0.605 0.601 0.814 " ] }, "execution_count": 13, @@ -3226,7 +5097,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.7" + "version": "3.13.13" } }, "nbformat": 4, From e06b6df2c0e0e4616d73022802d1a93856919018 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 00:29:35 +0300 Subject: [PATCH 101/120] Update report --- report/cost-on-random-queries.png | Bin 0 -> 73242 bytes report/vkr.pdf | Bin 0 -> 920629 bytes report/vkr.tex | 44 ++++++++++++++++++++---------- 3 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 report/cost-on-random-queries.png create mode 100644 report/vkr.pdf diff --git a/report/cost-on-random-queries.png b/report/cost-on-random-queries.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd2a7f6e1a60a276b589e86caef6d7a89f6cc0a GIT binary patch literal 73242 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 literal 0 HcmV?d00001 diff --git a/report/vkr.pdf b/report/vkr.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9fa8361e7ecb1f697f1ce635c1fb6a1b35de9fed GIT binary patch literal 920629 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%0D&M8p*ZXPbViWby|wXaC55Gwsc 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®C6}2~qHa2-6eUV_P91OGaxgIN|lVOv( zEkVnl{HJoWW=J%E*yhNWUOe?!t@7u7q^^l`Q>GM~I38aNisVZ-Aw?JfXx^4$!CuT? z1PceT685opZ$9q1IMNr=mJ#=3MUk>8t#DF(R}J8z3bzLMv;=&6(F4uA2l(Hd6+reG7)zf_a zMDa?hpP!!04=-o3CZ=M>k)7f_8B7xUt#+wnI(+cxvVc{VqLm;#Nh98o0(j>$Fb9*DdRCCdxa z$A|vPf?P%(ZV9$l%k4zj-joYQMSR&Wg3t5PO#=-yz}`~a!UfoS4-O0fD{R19{s-~3 z4QDT&Q+QUcyyYITvm7T>c>fu$X+kYbQTXiJ;F|KGRmqyxCCJTd?5MA>7p=@xz)UEM#*4uwW2J)06@U_%|VL&shz z7gWsY=h2U7;OLj3f;$A5deB(~U{DfS>P)qL;1w7^z={5Exd(3Nm3s2TrqNJV!beZp z?*+ZZ*%)Ukc6BV3awkmVTHi)9#Wo4VN|>p9fmvx~MFrF7J{1@V=zP4X@{XMfpej{) z04f3CRHEPLDn|mStlZ|8U^>R(T9zFAGI&ISkM>SLLdMQ@&=g@nz4k-!$(6u3Hh@TY zFToZBXRPoJTJE*$sR=V7amTAPmX&WLX1a&eb|cIp)?`Iv79P^TCl$CWUV_e`NLyG= zs!KQcKlSo$`eF(aq&X?iZ9Nbz`>qOjJ|aMll#H1I+zQ@tA#7 zknsM4iNGs-QMTuVbD6ag^EfqVO-Q$LQ*phbD0)#K@P4la=T=iH16mdm+Wsqr6BvGk z{XUV@qbKmNb|GNIUM8sAp*NRj^CfqA`5Ku4? zr<}BSI|b%G8qZJAKnIu#{-#HZ$-4)*-~-+v)VV?_)DZN1hd$>`h1P^O487ER#M$LX z+AmQ%d+nsnx*ve(_75sb82+7GSv7Oa@kP^;LmGELtb#2?z4Uaa48qb+2kAhp|AcT2 zFkmyc+Ipp5e3S#6syB5ef|T_5hpt}@?AWP}4PpLsDmSr*OhiEpTx2TB`V|CZQn8ov zN?p}{$%p45IVE+w%}cZ2?SMK7*xAOHlpFwc`Q|P< zKt_K$bYsB1jjy!xIv;n_s$_u`wrhMgmE2_A z9S{8X(`HlXNuMJ&4G$3nk$hD8!N^;lKH;z&m5q^(=$`qbSK%4ChCPjFHQ+1Pri-sK68@Q2nZKHpIVi?((Je~ ziK=}$&Wh+Rji6BIAPt;;LEm2zqs}YP3_CcubNIO!XhMKmvhi<(Yh$B|5hr4hd62PW zxEwKG;jBRPY*BKcq&9RE8^p_<)9T^vN_9aNP{%^~gaQf9fO`Mu7r+-X!#e;81~C5p zCs?+zW!ve9m`e%E#K199h4mSv6c2FJF;~hZMI9(w3>&Q62SB3G+~#I{NJs-)HW=3d z;`rZ@2tdZ#nu%5OXXI~#utgi?=CP?qq9 zKqnRux!n636$pls5q)=9sDfVdA^Y;>S(5439+7WIa?V~-_(=eSJG=*29YcW_B}DOd zgwF2SC78@HkOlN_x46um5}~ce*NKblBU`q$fF=t^HZ)rQ?4rwmd&thbcOXF32D`IK zTl)JHL%!k#P^STpc_@&sgF!SYXh20evT^iR!O&uZB1#%2h=c?%&OxXjVWkA?Q)JJn z(02dJaQhIHTxmyIHoFN~fHn|6zg&FhP?>&~4GZ`c6yHZ5Us?m56|fmTaIT(oB=~1f zP4?t)c!@ny*_6{jPiJ$^_2c5?HJhOsNr2*9r!V`(#(^z}SD#Ek{ts$XzH_8R(#g<4 zO=HyvpCNA&gB0R~+)3%GWnIZ8EaoEWdYr|NSQ${eAUQ2$)T<((7n=pHu|AxP4BrIM zA8as~88l!xy@2`qem6$|jbU2&;YH@anp?bh;V6fQS0}BE9g3+E$?X26X(FTD_6>Mh zM=jriY8j*!IgD;kuRMYGpz{<2Opw*wcBk=3{(ak#Ty20_c$2=8gdBJx)=49?VQz_W z6;|@YY4VY+Z|u54by^7NNOHk}ZBI{OPw=u^h33!q{{0Djmq}b7(SBe1wtE>&ldaw& zf%%QT0PY`F&h9C0vQuG^xL1R=TAcHFX0(|!hc}$WX%2nLWwl-L!0v~>x^a!T_>yWiF%>10gK*k4%e&oGyhd?+5+&s|n{8PfL<99Xu z6dy?js61ALnS~j~k?VVFf*tL*t^IFhgfb{+*<9nYhm`=+M*4m7y+kmH!iY;;cG$`? zy%WZvd&jDzTvWJl>uW4+X%urHLpKE~T~J>W@Hp?X#1|QP(fr?a2$*O?OjJ7Q^rdmq zrs%UyDUDProGpr25n~>^Zzo)iO^+JR4qeXMnw2%g-WLjsh`XqxTYIl*I7PiMd`3QM zrTQqhzj%z@L*gbVmsjQV&i^*7GyLf!n}4ckoUy3hNuH@M0gwsY=FxL6=_N+!EZ8lU{%>vbzD}p;A&&0 z=NjjE*tps-UJW!uJdNM|b+>%Q7sP$@0`q=a-+hiv5syWz)`VsZKI$VRBcvgjT`#We z)_kwqIiKkwVazNnf3sAOx5`_q(w8@h2uOw`JjKN5WVWbKv{H-9R>Hr4Ie?`nUc2px3@50C$N1GZ~#yXKv;l+7vPi&UhyCPGSQBfKovx$ z?o}BQVxjz88!Bw z^j3ET9_zX6rJi(DYDomm7j`NQ8z1B8UjH^Ny(y8y#?8zcw{-q8U-a zCFMd3_r4ZK<>1#7znUxLcr(XgU6Ej#3V5u<#JimzCQyuo9rNG2Gss{b7tef?Ke^t= zl3C$4*gmpeE%A*?4riMyaqXO9L2|86T!H9-Y1N*sC3R3K{wq2Q{E?BeVZ@OVpj+e< zp2`CSs-3Ov>TNxvIz!z3^q=kD4SJsQz7A8m5(YjV(TOvbHVaS8Voq}Nv!R?TGU;sc z=prAO$o3SMiLJ+3?;$JHmadnjyzOU5ucAE@FogYE1df#mbm;FZhs?`*@+hij53g-B zCENN9gHID4tUzgzDv+i?^djtRs7eS7n>7s?<@8cS03Vn0lR)t^bRTgdR7o$^e=16F zF%4gFokWN@Lz1%#FE0+mr=;?honG(i*E%s^`OrKbqB)8GMx}In2nCu+gE6{b+Q3ra6GU$yKL2;!nMnh<`Jj^@{`)Y41SFrq zE0-MCOH<2j9tu!0kh8r{vmPz>Wo85GWa$U|_d`n%P;IX-&%}0GfW`+*{9*bJK%m>F zvxSXs!=kL$-fMW;W7Nx5@_JX8mnnCUI`{6hU@T&K?;f0Tl2d3na=6C5-IllA&RuQc1aB&syMizji8&dh z#-P_+95}D^eXLyi^tVQpNjIQoctiH((SCGbkm-2bM5GwKz1Paq%ty9`(h1g0^m$9l_y-b_^_RkFh?||;dD!~bgXlhu4 z19-7;I;W4}w|?}W_e+EXE8)L!z_jh$?E{9fp{F@BRcLcg~$JTb1#!ARYRTW-xbx=yj>I4YTTeQoM$G!FStH zc{~kI`Is0b)e6Io&afK=$yqq3N`|)`nM{vly(P6Ip1+;#V#_Wm9_Z8(#TQywBd3?9 zR+umqOX+O15}7@pSe1OQ*?TdIt)WPC8}gA+z{nd5&^-ZqOx3!;vGSXJ&8hB{b|=bX zLU_$0lAWtTR+T*kcsG?rd;jM26&PBnYaG(hAMk>4I^@^`&p_H~CVd%?ZpSSa>%=N+ zpXDLxp&3n5*Xhz}MbJW);wI!1tcvcACMz zzb)DK%ieN0_*>Dp3Blf$ju(FE=M;tsXi}tbxy-|Q+l$0up$&LLhIOUp8J*{GJDB9_ zv@+B+*konY(S@=tpoKuCJ`bcRzxvXSyp|t~|$8gXPiwj{^$(J8mMC1!mn@Wt;n` zb7W576hr4MDQnQvMGdRZ6=U5-5YxDip2n4|;^a%igTt#KnaKIqN6;(X%9afVdVy)G zM8EYhfUJFJD^_;8_q6Rte6&Fism=T=MX}|rpvxZ0n3~K;rPQ(_XMr4{@WO#LT0rZ& zGCzw)3Xi)Q08$zUQhu{-r#trX!tZFp{t@_wa9+CeK&d?g=!LD;K+r(?=W)K&r^=gH zi68>CEl3BKNcYf}I*fg!s@(vasWz%n;YHzSbECh&_MLZh;J~*N9H4z=1+;Ymn9vD~@=)W{IY2A~V>Jvq!$I#<|8fH8 zq2)FK2sRk(1qM&!v70MfTQmL!0>tc^8f#brKXp#ct9a9F!+k%n8GvV`q8Q@QIbJbq zkA3>S^L$ZQ!W91QnQ{rP@_a!*+|V-C`Twt0^Y;@+E`Juxq(bqP5bKgvtPKj%;1MiX z#2cF1?f%>@kRb-GQ>I+yYh9JJQ_2Z@aCfNW&NVeBe?}v&)oy@wvj&CT|a zfd`jh2kSA8HH!r4cS12XkFRlijc0jqyaC(cXT77cH^Jv5dOeqHyxJg#1--4u*7f(q z(zKuXWz%}ywlsn{mkHagpw9{Pr>##V8^@V2va*IJRDxMipwV;r0Cal*Y2*ZG&j1Ep zppX6jAF?dg1vNKQ1rFa<8c#&Ax4aI?H2~yD$1}1D`aGd@fIUJmxNS%x2EkIf*6r-p z`XrIJ3QXa_v$wO$L-PWog!Hls0R9I?jj?G^{$a`n%#$GB{jp| zZZWsG*t~L3q36s)6!0xbbRU44P%qF?J|((u+Vp?Wkpwthd&#Fql&{NN5Vn6<>(y!b z4@?Kh)9=kWf#4jE60ZeR2LvN23Tr`l9PWS++xR2&P2EU4itQL z>o(9VWV!pRfxWN@Ox-=U{J9KTc={1CM`1HLya3kTPY+RnHUmbU3X}9V4=i@jKq?pB zdyJg4_5^xZKkRbR=w288O7Gj{nHxJi1YMy5-imVfzj7ZA)Rzl;YsS|2u{gu zmqMM1E~8zf?fY=z_}R^aJ!QYioA#SCbhr1VfJjBA>MaBM3#ae!8Uxn}z3$RxE#hZo zpT(`lrB$z! z1Bu6J(+tKIH+6a3eR%T0`T>2K4lv?0CM@hV@$FRf{cG)3uv+irU4yNlR-1M&^tk5= zm$A%xFEUI<7lqbpdaqbqT2q7K!)JG~B5=Nz= zqWU`0lp)_2i%_!iAxz32S=v%Q7$ zf8bJ94lgbT-j7V#J$xcFw8y&$brx>eyK*};XoNO#gK2i-rJdksTA9i}5_ zQbG0xiRf6-W<=^0@C0d!;0!S{%2H#(%7NC4klog)|1W4LNc7v zK%*a+6{Y3M04gU|-R7?{X+q<1+;e{<)j*3F9Y=%ZqvtV+ar3D^L6+#9#E*U!PWA$L zDTfA$Ta4A=L_W&K>DIJtQEXwm1)QwFD#}ik^ACu6t7crrBKE`Fu1h4MXwTahpbSX# z8Zi3~2m>VH>b@TsJA0#p?$d?zH2E?Ek8UgX4;g%k>&#X&JP7NNe}(utv=G6iiTrDx zO!hcU4nf4KTrXyM`SAEhj{{;`euVwv4?`-uRFO%|rN+j*1ln$8%QPw5KS8y!37tU( zdj6&mVD;QgR2AZiK(fYj{u+Sw?FsCJ;Rk~jO|ZASMhtY=irv4K{Ex-J6jPR$|`bFUCwnlLx#{31d3co&~rl)KN1@WFb&r{4I5DDq#nxlYg zAE09G*N05NOsPLWpaeeBny*xKe1BHWC`-7(gi!M@^Sw@^4Zx^ERziEi_9oo(CcPhAb>ev1_DUfRSE?DthNcuD5lLYqHI{ry5ZU^oVu-=Lcn z=|5~Cii%#L5C%%1_p=dkL!Q5GeHHFOzVGzZt2?{6fDUM+zao^3-eP^MTpq7euz3T` z`TO2Eq%iFatt?ILl$k!s5Jgbe)>QcR4@C5 zGu!FK9&o$_ZhfhsJ=<*L+h6I-hYZW&@LUJ}tAxXY^Dvz>e&*!_*ShekMhURsEgpSw zdJB7@&f`kng_PeQE2Hx^5(gY7&6$RGp$Z&f4$=p|-2s)0=Rqe-`4-zBB$fcvPf^Q8 zHz}#_fS6@Fd_?ctjsH%GT#I7jW#4BCTNK}@{5Mwcpd(JeiP00P!7NQr&U0k920iyK*Uep@M;P zt5W|A^)y-tU7OvWG&2eWMO_5AL&hg2_7a8xLk7^E^q-YN0PiRDa`~Hqz67YbdsUtx z1*D4T=0M02iLF`KXy|9AxXfHVT&)TE4mu@3t|E6m7eng9_A~mSuLSom9J_Y@NcKnN zTWK8k4-K_n^Bn$st)rte#RMi8f}C6k6;TE5PTIZ3HO!+kvSM}%OADR}=XGM7P2u`> zvU;?M)LiPVCGd?h=LO3tcY@lTLB!Gkl}50DmEQS;9B2lhcN!N{kbiaq>z{A3Ir{J> z-&tQ+Ot6AhgHQKw+0k!WS?qF=2gC3JCrm<4u_dwz^@Ti>dsIvZ{#dU3mPaN2Jvsok z@^@O9)>zSc@``pNxq!^jCh5`B?ymfu`|u#74;-#1r^~JZ4w?(72evIiJGBeQ`+xz* zpEd&JZz@@eWPK|8dC6_ctqJ-&3}NSAWN@J!k0hu_FXF)@V8 z#BuvBT?GoEL#s|J3KiuyS~_D`WZLFN(`U`&iBICT9rxZ~lgVV8n_*z2iw2Q20G#+> zPQ(B&KLQxOC^^rDGoIV?Nh(&z!QGYc!_9wA!WN>U)y0a6uIUFgTFjM$L*z>#dn4K+ zkvJAdV$Z$KclM%pB-=_XWMXwZclJ?GZb`KzO z7CPfcaqQY14D>HI2-;?5;|KuWRr2DKO|mM(u@{E$|}DO;q-p0B#gu6!~UP!cR(0*BGD*F?kEIO?-K{z%Jkc z6q?m9)NBu}xbCYdzaa@vH~30t{`oEG!LHBouFoA?I%tF^7xPk9c3}KxbCsPCF_LeV zOKyuT3weUZNmI@y9@1TrJ=TxbA+>Qe}P zGby!0$$&(*FUE6%($B@0FV4GtlUj z5|h}l_QdJJ=gu4kT=7Z0aHIZ7)j(gNi9LXCy2;Bx1}uP&`Y6dI$R-OU&{QW$ zx2lH^8QJO^QQ_~IMcuBjXBUkicUL?%kp=|08JIwdKjGXCz+fVl?3F-E% z@k_uT0yY$2_NDFqqR6?rqGFkLgC{t1ET(=u`I{(eQ!ANOkGi&?BzFFgTVE&yyoI7n zCi_$5Hp{QkQ$yJNnueMt&vnnTu&)XPwvZ(6B7aLSiYb^Z3`|0}mm9s2z}(P3IJJ#E z4D=-_qgiV@Rx_>{-~QACv}qF+o-s@rfSk_gg`|MlUofQT&11pi3oncf?tou0Ib z7Xw#2v+uTJ;^J6N676n&u*C4jKqPrO$ilkC4WV3;@$aSL$0Rq$MB;gE=3nf2;#BK- zF|l9h`ZvIPF~teIB6;@U?Zane&psZ%$9YKh@fdDD(zrjeL7Sa>jK|@8_3gC6u!2@@ z6+h3_kX(&dt!QG(ha4TMZz(Br6%iSIYkm~jsq83^F_U52nfo5CLpw~r_ZoS6MlU`# zz|)6Op@<^KL`GGV`5u(-^R2^n#qUb^;C^7ks+|MA`A&K{50;b*PvGUg%|v1@ePwld zm-Ybyy`7^LN%T0CuydF+?R8o9!WUUhk*cz`xtP}~Up+&zm&t4#Exx3-F)2Y`?pk~m zL4~TJ?>$;mOE3bwR?%0@^rKP3a9FCq2d)gT+!EpL9zK~VEOn$ixSBS2Y z?ByA!g}JXt0m1C&Wyv*e;YWonN@-h1r|VM89b>7s89knRMmyoT#cAArsv{XADHem& zsO0NV47@#$lAEp^HI<>+h|m4N-aZPIH41f4y{ z#%U%tw4J=Bs8p6Qb-nc+!rje+_48BAjiih9>)NPN)><7w3Oxht*QPdLqzOwI%?A`j ze>#$`@8tqlTUH)jeSN}O*B5m+_|K_`f}FbO%0CceI+uNbkaQi9icw+O%1zjJjR=pe zN%b9X^&yTISikE|?;sx2aGEVpEv1`~yc~sLCQ?!#-668$(qb$vjy@5!W$AR=DVWH3 zG~~ph)=$BV0)CiZfQQQZ6h@_hm_IwtsupxW2xDNLSFdHpeMtTl^AP$0a-fCXEctn# z>k27JaAy2!4|ij`G3tgTFkKToSb`}tMQNw0e?d0`Z-zB zl@QHUh*$W9W5`d+#w=nn?k6fR0x&cmAV^`!mUUN-%rOKK(!gpA*!aMEdK!^}m)mWp z!ed`BH(W^Sn8nXCUG;o?h&)jd=k0VRnyreJ5hMCr^c0)qvaW7vW!~$brzL(8_oMsQ zw(MI69;`!~TUm3}2UlX%R6Zo%!+IIH@iiHhnC~*G?lL1kf6L=~#Y0t9wKtygAW!QG zxGBRuL`?J{L275VGO#J%_qVeAI+oymA-^+{o;=RQqVno>)Ag^2s^l#@E6B3W^TziS!(LY8zsvj{cg~~Eaq-aY%7v* z(TIhEo!ImmJ5nSS<6bgH?FZiMpBoV$z-8Zq-V=ZkXkdAwA9Dl!aV3yiA3mM_Z4r0V z@}`f}uVH)6)Pfhaj|{qsEc9_^BxTLX8CGw7lX;BsvYoU4=jD8M-C$u-sawTt*3aHy z(BiD50z(?@}M-zSg^ccjF(De}C&U1~ItN50eUrs>7q2 zk=QX<9K=jjm{IwI#1FCiPoEm5v$jL-&oHrP$A=ANM%6WqiCpJVb|-BgcYU|xRvmg@ zfTaQ^&M`(BG0yauOJs+2`#>Da8G^c7DkCRT_u(^fw(s420Pywiez%|o^7?fX&a6j( zIjYky)lSb3b1wuxV_@p~bd6B6bEcxOJ^1*jaByrw=b8*#2II37q19D#N^wD}@fthV z$P$!@e`wd3U}-$9^ib$by(6_Bm)oI?-b>G|l!}DvC0sCAoOiz$lLTEX%eHnC&FG|z z$@O5<$K8de-&ac@i)((Q8A$rTRgG0ZVZYH`0w!Z-zeTg9@cE{`Dn82?b&YG9ped0X zN6AsX{rN@?9eB8Tvljjf)n17lXvWaRS%ykUMJi@L&NW?I z-_ft6VJv68#EUFLJmqF_s8~e*_|v=hcpjPs4F^_p#RVN!G=O+ zUcQ}NaXjBHU1y2}rD-WAuM1+bI>28<7K7hMhbRQsk z=n@ltxNeWx?ePius~|#}<-baS?(>#@F&ZhB73>Q`D1n0x#U)|g)m;A3Sc zG6(XxGU5Dr-|L^rsH&#<>`g#x14Y=Q_oxz_8pZ8oxD;Hh?l;lAVVCg&IEJ&r!3J~f z%&U9E_;V=cT_&=Z{?Jp28eX+P8uxNcJ<8?KqpZ+8nY=@G9L?qhv|#V$DMJHtB?dW@ zG>0EQC*FsX1s-~nS^j!!$f63{5Il(!O_^qpnpT2Kcd*D6D|)@ADXbK3u#beGuTlgh z@l}?75COdZK#Kr?=u$Mh^qCJbI*eI;-;f@fB-&Q$hKMkW+Z$hAGrglYpT zY77x97%@QS-lfY5JSb_`T}L;oKmO1k6*cH?!cU&X>?=%)n;nth%q5m zK0zr4zo?PZ4CCLMc@vYfn6&L+FQ`IMXZCeoz;q<3QbROl`HKDReHfcwJJ@J_OSjvz*xgeGEGesZh>{QQj5|3a3$< zwU9MC%HP+NjS?{|*4jyfGndvjhf%4AhjW+ywR<1h&7s0`{a6Cean~^C9Bi^t@yHLu zBjpToXIVziHxH*Mw?CIjQ+Y}FsyTD;YL5~?<<2C`g_?xADE+V9g{6t^yzG-zdL`fM5u>MEg_$k$$%dAEJt%- ziaPEsc1@21Q-OR!dUi1el6}462@WG$2BB+BPXKp7ROtqd3w+x2{r?_$;CPPt0!2ot zJP%sTvGjP>C@D5l`L*XMw}b{bG}AX7CgN*F^qB%54?XiVHpBIBGEjOF5QJ*;ot-Dw zNYtx)3CUOde*Zi8>W^ofs&}UvHp%b9z(A*ydC`6{6j9!(_G@w2{%jt6UUrk*>b1WC zr%Inj1XiGL1!r=yc`IkVlg#lD)!DR4yuUhq%Wf2juK%5W zq`98in(M`>L@NDvKu^9x1vl>x zw_o;0)+8?+R8&v*(_K4G$g77bCs5Jf5XN4|bm+3iPAI%5-{MNGCmUV0+%$&AQom2M z2=mV1(LZb9HpMy6ij+fkK$lT2BUiI_`jjwqQn&U(fpZg0JWsNmA^7#YdEu|RI9x~A z8^6nS_ror z>Ed2*a&N5w1MCMYL~ce;)sS)D><<)M36&t)y{!2u+c?1P(CPWyYJ2y!V>y2o=RATS zX0#=lr)h|ajb~^6it8oJzhCus1(!of9PuDI!9H7 z$>8x%u6;56(VH+j72+6$=7jKyOepN|%?g=AT$<6$+W9mGvViyJ&v6Ddlxw*M<_T|8 z0O9h#0S)=fD=!26t-4tdg&j`1u5tvq^y->0qB9_f0kxrdHwDor4$mlS71etjx=y~9#a`iceZD1l}zR5Z3_?~#YU%o)zf-s(nQc%AYyYV9P ztJlNzNm5C6A1_Y%1x}fZn9f?T1|F$##3?!dcOMF12e;rLJKz$y)$np%4@8%IdG!p( zr$FueS*zqcKcCnsD_@0Y)SJjaEiubpgA|c>Om!58^w30VH z;^_WAqPYvXAIIZP3mF}TGH5L3g3ZI?uxkRD^38>ISI2TbvFlB1QBDL8LPJ|;5Q-n} z2FmHb5Xg{SN=eaq@UHfywcEpsd6?c$B2{d;7Q3l({(_ zj))A8>%oWIS0*a6Gyc*^2{hXc2hY#(@XFCUHw~V|Y-TSX3c*QCZ0y5_wS&DGI3yB^ zpPnbh$j{kA3Vowz|FYW1?u=l&-dx}2%yYFGY$7GII4Wt*{|W2rPSB_RLd{Qk5~kOX zdS$UcH{wZ1V}`&@?pSU!Rv*H(O8WBiSWHLYZGPAJ;+bN7m@+7iBA^Yex&q%@K0_=w z>X*d&&%@DO3E_?A95(aAiY1<#{uiBI?>0aUb|~Xo(>-60v>woEE2&>L?JY?bY61@> z(WlWi-7R5RRQ#WfQ30dBhv3=53bVW$CK{neusz;Bu(MAoryl~R($1VVy`Zy;T33`b0AIVi-Eg|a{BRi*sFjtBE@2SG^0n$%D_`LXgKuLJZ=I)4NjOi%_ zO2zc)vD1^P!JWusOHMr2BTZhFS1HnAr8olG6cP>n6T7crbAbD<9}A%rQ6?Xru*)&k zR*RlQVHT@Lyk;Fw%~FUL<|iqq*2mZ_L)F+?SBj=3W@J<_G;j5NQXly?hWLlH5EGCh z(SeGh1d`vdU12`CY3ac#uoTq%`hSn84Grv%GuRT+5$ac)279)jTAerq$JWZFj;@0r zvnm&qLENUv>6KmM@cBO#?Jh0!JWNXT&8m$Yuc!cSfpLHr8EEU&fIJ|(zc>GvsJ z+^1>!9-bjFj?=@kpV+VpH6Xa^gcwFA%Qmr7HB0K?4{fWyk?Vip-~qAe^R|@dDUs<# zr?D;)2RoswY0e?i?&x$av|X0x*V!d8-JdgQ2ouAr!5Pe&DcS-4{8ThF;5NXGEQ?|% zy*0VE76!i!Oj!?j-Mx<|y5^4%o>1s8$}yB`+uYxUg7l14q;F2uMkvi~x}%H|O-_+A zERko*y3cVwzyHB^zaJIhK{aKxW^2CgexvOXfq=ID88w~W-1}8{`N3Uy138Jfw1k92 zVfB8emB)qJP?@i<@9JwXL#TY(aZ-X~8gNW#Y#bbV++dm=7>`7|`OeMF?bR#TyU)%1 zPUVt0U@1)bjl>g2)w(VQ1*yECN_VHMUQ4^P6;bRj+>dMcrVYCAwzglqIw?qv{G{4H zX+qck;HdBY_lsQbhrW`mv_23W9+^)V@)t|X^B{JiID%xs`h5UMzd+zJXh6pdc{>Gq zzEo7kpL){J(_gnRxQB#=JxBMcy*i%My55gcwK(;d19~Dsj3MAj{W}hgx6doBLbNs& zF3&}}5B0CDzeuIWTN2|pWAkh`yrCaa5{Z>m6F?J|%j)oW z(KZ<_{BG~*RtYTovNnH-^Y6?E>G6=%0dv5!Y+!|c3dFT-9y4}*yg;FIWiq8!4b);? z)jqpt@Iqmlg~Du;TgNG4a*R(|W5ieOj62tS1t~fh`&0HV+BRbrSCA_iFZetm9H9_C zP&gjB$0vxJmAO6`z&-5WKK8z^F(OzdXFuFW+BIr4hPL%=y3X&kp1v`c4ECed!w0Xk zb!b`E@DH+SnN=f=O0C(hIL3@)R#(l1x_D#^Y0k2^wF{`a7I9G9q1pxlm^L+!!)JGH zf^JTO_V;ZssXQ})8~uLP6RCafoob8|vYm}8|F&1==9@QFtR4S1B~HLIzhbY#Gl-&% z7|5)wJj{}Rww1q0V;N%fKEu>B$dgX#ml`4}7L60xtS=AK-v*D7h<-jXROu9iu1G}Q zyoe4bi^Wx0^}=83qHidzFTf?>P2?&(J{<;OLXU9_Wv4j#jXgp)mO(|M_kActUgfc% zI>Q5RJb!oQr^uJ9z|$BAE0u@DGGI&>+*u~RVuhz_G;el+GCdkd}m z1!k*ct5e-cQ5B`BzRDNWa!7)ug49r=G?o0%+*UhwQ6QpLaa3~TB@%WaDLZaZp3jOo zs;q^vKYT3nX*~JoN+;wq)afy(kGx>@klJnUPbM>Znp#-21Z@NFbzrBSDDWNd8mRmv zNXOIdILDTf@|Tt-pAu%Sd%MuZ2fVe7skqYbO~BJ1K?4hBmyl#zctHhIR_Sr+**Gc` zNw;!_wn=eiV6>&>^kkM>Q|$#h%apd070sM`lCYYcr%Lm{jB^^?Wpe!-f<6p?Hg#=F z9In7e6hw1rBo*wsigKe#ruYQp!uMOLc7GgDCCh{>1kK_BGZVK(!E47th zj)Sj@qe>|%9L;bUzEW8mw{ILAkkiBs+Px0MzN;zqVep5XrS=(WPhoE=!0g2CFt>GT zHa4sXpecHCD)5nbs4*fVB4gZMdGAXWlcOx%#hA28(Doy_O*o}*ojD8o=-g0|_%h2D zo+$ESsD%XLBMaj6AxlmH@f<@P-kM@zByf=?G_V-2lH(;Qt;kZ!2zgyG-#4UUYxg7D z+S$om)Lm>>-EL$snDTcunn@*AZ@Mv^P;k1y@|1fm@#2j~E&Jn#;^jM*S}!dK2@X$J z>L4hjT?mxXU4hbC;-;6y$;A>T8V~=Lv)JEIa*K;?x~nUIGFJD?z`%fI&C$rsW#5h4 zYRZ?`*jPhF{<~*;6-NGZXO%xXt@>#EAvbt7g;_jA?`0o|hOGp-l2-3<*SmN-Dx}70 z@!0t#mqm!SXSSKrMWUWu} zxnnFpR2hM1oD8+BUKCv=cf+aA2O^Y4?MKnZJA?Ez*PG>Ut(l!CD!q%1HZwmx27Q1K zeSAq&eZtlN57&wvY@iB#kg$Cn z{;EZTL2y&@Ms?|hF!MUffeLoisM4Dyo#WJa3h$;ZKRy~J?!Zwo=0}@)4xy3>7OK#v z7YS#`Sh;1vImKL4NJgc<;dZ34y-lB$!dudZ$L)IacHTV)l`{Qk2F_=<>%3=vWqpK%!EUOWvn;D@o=Id- zOv>#1m9w^X9jgP=+I}2lP~H4f1pZn^gLc1+)bXfKR7$BnIeN&=yF2pIU7>xW$`vZz z!rT8~m})J?k{Cb;8HDGX6b3avnK|Kfa^mya9izj*CK0jDL zS}L#j>e7CBE;lSa<<8l8*W^C$*1k|P0WBK7!Z9iz7U5#O8eC7~e~c{r^eJ7SL{(h% z*Dib#ME@-6YUJEaur7o4m5Eo1%c2hY%1pFN0n+l~@&g3ONqf+{Tf8cqN2?$dH3CsC zif85JU<*$j`088v3S`u>11PvPlmdpm3gx{3f7WoDWd(c^!Iv@~W~X)N&$E4SG@mL? zkbdZgwcFDkz-4fkbN5t0jO1Zu zl@?OGwgdGqc8$3hHG!?mavcPuTb_yzieafD6Wpw<{>Me~S8eUkw4(v!*v7?OaSiOq zT(k&L5)srVEvraMW>unTE%Vmpy9S*z4WM4S+o`ui3wYfC*3;=BnXf&cMujy_Qora>@4Q$ttMVS)T0Er+fm!ngL6WRjsa=~47f}~m7QPh3+~mZ z;9x4Tu@9K$5)ld0HiV9;U$08TKWwGg(W}b!Fu*>T?p7>)AKFKO)FT%TSI(vr*REe@ zm_{B!b5mKQH%L7pOsP_pSD7zKe488sJ`?r<+vnu^Fan;Al{m=9moK$Mhj^>_8YMkk zM=Cjy4AwwC^9cj`pysI?drtNXv|CtmXuj&@Yve!G7?mp9#Ztv%rj9HMC8DMD6T}M=uR5^0BH58rqn4JwDl9mx zVj~``SEMmL7|YOK?$#Fw;Boxu-G=d&5=y!A9Q%YMqmp+G7AYZ$R#8F*J3~?H%|aS< zoJ{h$k}I9C7>qZL(uiyNC+H0UZ$SNacc(V~!;+r$8FC-^#p> z;yY0RseN53<+5_UdBXf!CwJ)&6hsT(#E)I;$?Fb_tklwP zJSG-%@gXbjS&B(AGCR z@f9Ky)xZws^?A|j|HSMk5_K&1*mpz>xF5lDUr^r$pgB=+-zBW<@HdIN^)6KdBl)t> zQVc1I7nEzlGuG=Q8A$&LkhkEFrMyb@rscwZ0N8N`k6ea(4@<-!;Ijk^<_>(P`376F z0L8dW^BCEcIDNyS`r_qaY1Pl%)uz21PqQC*X)X8%{ zbVu;PKRAg7i~P$zYUt0<>2!$BM$wBeBwY%w6s|8`0fLUvG4#gp(bDwR|3}$dhsCvQ z(Ss2nxJ&Q^P0--bSa1mLu7ThX+#zUif(L2b2@pJZAh^3raCi49a_@cbzWIJL-wgkB z(_i;FRds4t?b>^-z3}~!k)OX)n=Ygd>A{mClVtLNNMU=p zoobCF1_C&91xaspLQBfEdDUm{LSRl;P0tD})`lQVS1F>g`t61J6iGe0&1@7Lor&2E zst7nB>BB0(CT&Iw5^H~NImNsJ-qbGkEwiDA((fI7=9#11aFDP7O zE~-KmMH3li|LXK8W#u3+I2!Hn*>G6Z>HKSupdN`kJ9mQRIBF=Y0o= zG;JYlcJH5_oPms0=1?mxjkvv|74fqWi!Z7pQHnF^L(&rXRpOO3p8~{K0=Y)MjpG-$ zi?m|W1e@F#Bz~e-5Zplu{P1YxOaK?Wu;*Rg?3cIg^=EYbqE#Q2)WA{sVsz$l@@{NR z)`{G#<)G_k2-T_DBBgWqz0)c?ZA4TnwK!2@v6mE-!TRUgNw~G|G~`0ZaXVO^aC9AZ zXZ|somhfLrI@nMSd^LWf@;48DnO`GmLVtcCAYG00ke*xhY%56({XR1NT(^4G@5%PNozr89~=%OwM`r1%xtCh2{sGg>E~FJ>08@{K22q6x@`2?goPsY9g;6F#+<+hRxf^8}uOaOzX+gEko;hU@J2D(j@{* zcZ?%?QULqwhOIfu0tK`72be@Ds+<dUWK(wS>KKf95=!X=-plSs z1O+ef`Iko9T#7Q*aYLxZ%tOdto#oi^X#GT$zW)l@e8PpRM`YQBJ@tD-a%^Ky%iwiE z^vbv$byRlG?^h zxf^Plf2~9em^xh#;WH_T7Z_O5E-ybx$tr9gRiCE&iGXMc@7?b7tW+$kB@!~ghSc6e zHaOGB+v9O1zFhEayn=weJ3zgnm{X%REPRKG(x=)ro$@(BqBk8~dfAtJ0io5hU*xXI z!aE5LQT9)+-^gceJL&iQ_@7o!_VK&Qqn&&qw(e!(u3zjhfKo*CDxaeE)2g?W4~P;* z$eC^FQ*`9&$$IUF8@BDo8|)Z5uhODHxg|WMQ@4pUoobb(4MH*>Z?Y<~6qWmILLdGj^tHvj_LzSI2Qmr@NX-0qm?!&4dFKGefUB>YEDqP}hgh!9 zct{GpI_u>{?&1Jt$dJjqg7{EfoQXw*ir3c=)+(mseyVrrd~ORV_N%FJAg|}O$iflE zD>DBxQK@U}J&HJ)B;{H&6FxS92WRc3IGoQ}>P#@w3Yyw+-jeex3c_n9J{i*JwLArtzs7ieH6Is|rdV8GC|wtK z7c(XPcfgOs(q52^CV&3@R`yu@)#i}i1beP^N++4JDVma#m*QmUxgdv`KA#W{qW`z2 zDIn%P{-Kqg!CEhB9`uAF^xw zx@a<$gu8Xuq~3eN<>xz+ocXo4{(*CwU6sCLtiAKhvZ9jr zpOPl23Rbo#KZsd{9F48yy?1tEXbwR&1g`1sM506u* zV$gsz_6JmB&1tfZKekN8;*gR~LB;aZ{SciRp34J$>%p5{Yx0LiAEkiRbKP?o6CgTJ1JvD6}G?$WcZ9GqnT44-4BLPu&}| z0V<4yB;|N$3B?asZk~A%#bJ(J{d)NDU1`bPknai@=MFUa{wmW$A9#aOtG#dNJFhHA z5-!$K`b-u@M8XqaZM9%4I^^oxJ+>5~TAu42mpz)gI1vKw7C1%yeahK_`*HcqH$6pQ zUl_xUYD=)S)P2+ja>X^%8Ea5H2d^D^CeCB#hu@vzy|Q(d>0t0p$tr}Vw%=|S@7HUh z!uamdS{Y~<)oz>fquXzbgh(?LQbwd^Zy5YXw)sWYUi!Ry5rh#trG@vjVB2y}5&2Z2 zw)+jl+@f=}G#k5M&l809?>()*C-V>?_UTm!Kc&c@;aSfVu^{=GeAWc{rIXTp(Q$X> z<}`NafOj}YvD9=nfmdaE;3MUaQ>pKy%<&`^oIG_?^vPj%ZJYuAWKg$2doFbWqP{Zl znhIvP=5$s&)`u6bcA&x(ocak*$^P+~KBeIj2uLW^Vv(mmih5lp1NGP{%i^HP$Zc9Y zuG+EE{je*NDQDw0sj-9VS2g0 z+KOu-Xm!QZ@)Daw$2jC0hXyW;D*U7;=R|@MV_O|MGRh)GF?#2z#GH8le{KV81@f8)#D~F;-Qrx24?e8c>*vFaSlUp zMm9e%nmx5Uo8f74c!;8dNhpT~LJ&0?N_+I8&yjT;kEs6b1VHC+2CD5B4Q+31_0tag z^fCjiX$;Lwcue0s&j_UBv;m01-ZO2=r7nTo{V8oKS6AlNo;CjkrN&~6DIqZ5%#jWU$0_CSR{=A zA$%oqW{8=URjYS63v05l>^W`uS6w`Z*`}llXKsBXOq(wKcTzPkYF{ixH;lD7P|u*I zShr>UHo00yps8@6l@sf(xiYcC{deyh7H*C^XE)wNVEIc3V*`X+>$1R*QG*GZwiWM4 zPW~=47Y|-T=#ysjGYu4@@DiN;5)86}Dch8$OfsU#YiEb+V5zI<&x8-wRv8lq&;@78 zNK8pl9i%TDlF%@PP1bullE$;Xkc5ykN~iHTRUpW>w%50#$-HUe?a_|yyJ2l=2&YF4 z=TuK;h+);n+^(B>?pU=sIu(IY+vC-{qk&z@ZF+Zh_O{u7@$GYr^28Y3^RI$L`~X;mC2~A|Qj?(y;hxG! z&XNgwr`kUR9LBb23WThWtEI|wwB;JhK^eE%$gLu1dqs8Ds=H6?Bp6AouYL<_QmRHc zNn4OiDo<6CMIY+B5_ezjgY=|k(ty(*Lrzo5@Qt9tNH^WuUN^%i+`P&2u3AZ7Z%rtl zpF~3qj`n$dcqx|8E0?1weXmFIpL>}nb9UVLlP;}3&{kP80Ac6kyGpLv^iBSb@kswT z??^pGx^zq?DH`SZ7gfEM2bLlw(KKcC@xNNd4rs3}ak~|$5`WFc?L&UN zvi6ilYlBsokfP%o4gd@M_wd)m;T6^&NMhH8t^QciZt9#)O;8O}T8@%@URpJVvW#=O z6IYQzJV(5Vf9ygKb659SXNVK#e(=j1OSH{WArwkF6rEN)9N5x3v!hpp}J>+Mj~T#v0y zV%cgtExYM!3b2M~ke+cu94GU+G6yMEis?hwpm~$lBz?O}$(c$7 z9LvMX46{ZiQ|uWPBc^%rZ1Oer$gW9kDdWQH4B7Rwi(TWOX|LkeNr{FFWjE2TFCCvb zq-NIJHOlG=uA#{7Nv0>NiW=zeJQQ0a&yoA3aC4Z;zW!bt?k7bu3CikZ{WXkwJNBI3 zY+KJRw^z?jn=wz%?(*REBg);{7rkx&g^m{AC-EeUin|tw?AXs4tx3 zeG@qeE3x=V5;v^BQ{_BYVO7G=lycw=-v*XW?k}vLYv0m)pENv0vj0v~cnXa8+Caj| znwlZV+L;@ACr=_-JS0sKQoNwu#)8d(U_c8?82p1)6rQH)>mKQ$iJ*%V+^@H$&>d0? z$Edl>DEjP=ovZjGuM;SjG*i^5)jcvE^7HT+DY9m++`fnUI(2WYQ=3h?GCzk|xG~s! zC3jp=MAxsnuYdin^a(LA%n0{$&Va)d4xIO27#Q3ac`hPy=+W*+AW8ya{Fx3>(S5;I z39eF560aAL6gshO&Jgdb?!z2n93R=^nP11hMah(M<+H+wy1cincs@8pR~Sd}L1y`+ z7t$C%mLfr?@0JZWXEy0Ut|Oj`l_!4k2Sa=p4lQ-ONYNN6A(ys$(Z(AAwYQ7u&~&{) zc^Q>E+7_9NnUto3v7u#U=$O0EYfaUzv29C+dYKabuOiVM7=EP5dX4s>XPu9agxtgd zFrhwLMob)6vES+X$p|q$CEe~`L2+zCCbfoxbK0P!ULGrCpu9c(3jjyQ+AV7r%qbQ!{*=L$2QnERCocBOc7zPg<6LdfBpIQw+?3{(VX3h3bE^;)-fY@9L8 zM9gL0kn)P(Xw)&&9|WiLG6Wk>IJ!k-wRcszXP@k8T~c%E+c?7b79N+;gz8k;Vj zH|ffyJrsH5q>LDjE^;vd+;7OedJg2wf`$f z4fE@O>-TyoWIO3i1{qa)QB@E2oWFH2XGu;4on#iTQ_R^1Gf6?%a9+n9W`P*{ zP9E*5_k(R52mge4A=To3{rWlgYb%eqAAEb|*jvx?9pHmWrZvw^h>ZGzs-!9FSMiZ~ z)CA0YiMHcASr0BZ!>flk(DtbpN{iOcir4^JXE460J*ts$O{8NiIc`)Xmysyhu65#8 zxZF0Q%_fIWLkbm5Uaxi#-;p$Ue*cK<1Sfa=J4PQ#el%dB@TrkYQJ0mz%@n7sCrRq5 z-ZRuxD~)tsOX_#fi9qEC*{lB|W=GxYE;ZrmUF^reDVKiTg-t5G!%KokB6#vho@6_F zxi8RCN5+az0x;Rk5j@pHSn zkvQ|07G%4{&!3RxxjCYfP7<#%DA7QkU)yIpIzO@O=Bs_XcLw``OXDiJ(J=ZH5@Vtb#QSNSW<)`)|`Wc;zr~vano@yqxadh5rdfpL*9-Li9|t>k+*p=4 zfW>!y+rS>ueyfKohHgo}?4{l5vV^``7p=5ob1%W?CS_dLok(zx?_x}S)u%|gzq2Dx zP@0Jc37hG;B+UwVZ{7H1^h8}i%%*Ofl;~Y%w?Q{7H*GEO$8Uxt9P=JOGZQwKsdzbv z$T(UTeNpoCG_N@?_X5#_f5K#lFibF$n5|O4f=h|EeG(I)EZ0v4`)jb+xE7xlt>-Bx zio;o7OkBj#^s<=FJf&*&em zrZ`D%qZ8bgDN|XmAkN2m{}?UoEX3|U;oY_(LfHK*X*kgxa0hozaaGMj!t>Pohg@#b z(T=Bwd`Y~=8@SE!EU9^Hzm&1Qycz8;TGx@s)o$YU#nnl2_6j?wjQKFDS62G<^SV9D zkAR7$pw{-AzNp@HFX#Ig`oGkzJgV^vsh<-pZCl_ApIvhmE#TOdo7h@-zXx&h2}_3c ztx_DF0}6IDBJ!R=35;A`o4m)1BT>#<@y3uN&9NcmplZdDbqGimJCc3JC+#sQ77dvo zrOP-hO_PAX@ub^zr-j~GkXd%=cL&S{SZHvX!5B16C~A-d7HOx5JA+ftrq+6uE#F!7 zPehd?z#^~kTg z85E)}B|`zJVHWh1c&`eX`b}&U9N{9fxYG=wJ@&?}SVpq_9nWf|Y9_vQR<4}nrV@?7 z=`VtjOQ)S~aDYy9D2xFS{+(3JBUt~qRX&efG>JPpN8CClLVW_wI(KASHmCET`it5x zK!3s5u;hdXC*5t?Qj(y|8%tSd;>Bt#^Awr1_K9GX50!l1bNBj-#!8544+cqw6%j@i z?Uh*tDqml>1H#F>jxXm1j0~l_Ae9}D(hX8C4|4|w_7CewI_0~O^k7v{Xaq_AHG|*s zQ|xjEmk_7mbkC(XIBt}m*@f9uj4x2)dzsY+3;J_j=V_U~!Up<5^Sb0(32j6!3!_&u zaPOt92)jd5cBrCFHOicC9uvrFw2jcZL3P3hFZOak8sdY*evaR#c^^GEeauGA&Y%yJ zIs=<34kxuQ;ltLpG*Aa9Lywkeo}cD|bSQ|-yw?t-4w^_YEaDnEQ{p)--t}{HBJ&{w z!BHLPFD=`zt^ixeEegMtvI_%K=-$wvtlyWvOfe>Dc9HWl+k8=fq0jNWAP?u!#9G-y zApAeHfINJPhCb*pdTHTGbwR!XlF*CuD@L0Lf%=oBQYz%sI7)UhsVzI5c`@<%Wht`H zcoJNqaWt;bMm-aX!DVEl!-LkGb9TTVjH67Hb-Emd;}Lo)7OX$aR3>Fn%PB#hD}f;` zH&jAy>_UIe$uk6_%#!bI&Ysz}cLvQ{&S1Dvn-1c9=F#Y0f0;tu>Q*&TpCET!Jvj{s zfeeyabLE+i@=|@~hhyiv6l4rh8gNX{Xl6Y;dQFBlLTf#ZIe)LiuQtZ_Nm<9}iak8O z{~V(F3X}MsKpA|WY6?4NKmdkZ7rOaYlSp2ve@u25R#+NdBLmMdA+JA0prmTRlvSsl zXB9(yY~KnbRZ3EKF3p-`^9f6QyVgYM0oHpcH?7Cj#s|_S7okq>95-Pb(i;qG)@dm} zHFsCYq0#z|US5w!i*{ap%3tQ()bkq3&|5P3i$}+ zsh^UEYXbZkieFTh0udbuPEiFbfZ_d@mGsRd@#7*qJ{P1$>NCmJ%_()q49P=yPkp-8 zr&DUH&xe(XW_qQCqb0;AbSh=AocXM)F#1<|@qCXy2&wjPUbRAOaD+CHV5s9^jlvz7 zWlg_m@0b1jcNVlKsi}GIwZ%w|!YYjSW|>N$Ir(4N9XuNKIL0#?&s&NQuFNGfd%IEe zE5=I~Lca4qpVfQ=k?3uO?G*0mi#c(>&-p!=1O(xZXmx|804DmMjO3@ZoXNYlCa)Ug zF)H(dFV|}?xo5qX$@L#I%T}{CT{hgr!E+~!Tbv>os$uwx%Hk&WaJu?wzBjODc=}4yr`$f_ZKuDCb`f*`MHNC`Y*u$4KI5T9$o(9J zVT8U=88emQ@5%c1qf=&UqRF<}>6FW3NN0hdkOe~4+!<5rACBlfC|6fdk|RB7^nFnv z`7fBoAC|>d0cOmc6=^Litgk?HmmlBfoaACP!zg4dVuB{G-V`SO+q<{Cn#u1X0p#JL z_HNTLU1-EBndpp9u#Fz|e00XNsxG#{_wJ{mHdew8bz&@GFehO!1XFC>L@23s=O>Gr z;nmf-qlDKnz%~*OxUU(09MkxvoN?VrRFP1L zowunLDS8^(ZzVEWf@7yQs-)*hSUnlu_><>ucjg|f5X>2ch$~O`PJc`x7Fnd+MUAO4 z5SgyUSwyCnI(2%s+N2p=igjID*(Mf(L;x9ji3#PMh90!X7nDK@P3SDV0K>yEgEv+Q zHzoS@7ul?Tdi9|~>UPjx45_mW-S7boYxplDX@a{S;61D03S;Q`*23LW2TNCt!c7f9 zBygpzzSpdsEv&x_-^;KGps-q!C>2VV3(VYPT;Iq8D?tbU=gE>PRD*yQ7UT{I44Qt0 zn;pzMdFbB&h{-nCzcE+NFgC{OsMZ6p9hdkH<(r2PzunR)lhSAo4g1d|4g%m1cf*}% zY4$e}xwer^nJFzk`#7CC+G!exGIb{ULcvFFN$~9tNX!Rd=U+@bHpbhu6Vdksrx_*k z0)?(t+MJz&$9o1>9WLMYgIy3Rmt^t@xLdzyX3Dy@we??Vdy16UNxk(IuzvdiUv3lm zV)HwjF7RI?UgJrv@cLKES=%k5OsY@e$YLsL7@d-mV&C84he8wY?>q$rr@C;B*cJk- ztTLa{&a}jnz6_H0RC*Hxj`SxuRi;BJx9iXIl1$LdVygziOtwDaA9sqgSFEzW&e@n+ zI)Hg6I)2w>;vvjd#o;5s)$>InoEv+T8AN!JQ)3v-WwKGj(dP? zu40ic$!2XznZ}gGUZg$y!0|eBeJX)?UIH>q7V=w#M!9&~srvP`3=3Pn(o`{`fD{*h zWx$-}_e=}+c>V-3p@yGv^1tHn0K-m=GO%%S%d;TsSt-`IU}6Q{u@YlW;Aq`2rI%Vj zDb{kca{i31is9h73ewO}w7qf#Ijhi%`_hvTkLCW0Gd`G z-^cS7owx{X25QjH>SdEioB++;N?KyUcuC42sS-`bnkl057qsecUe#8?{A#G^NEP!P zOHc*%a{d5u_Di3{zCPV~7IECfhwQg~?ZRpVIlLELT0`vkkqQI^cOBj3YXG8+RbYxr zXTNt5L65dhe@4LPRijGi^vzOfP6rxWeYAks2Bzkezj&thT*T^>_E-a7YQrTD=}Rm) z{*70j?OCn}s^5Y`OLgk>y{fiA&4S6zlKs6a_I2n($HY zZ}R43Pig+7R{xGd9{Z(LxGrxIttlRkiakUh2$~p{dN0;UAAgNRf4fRV3|Tq++{ia_ zD6cX1-ev`4qrq9COa#L|QXS4l>4!z06dkOfP?psQhlo~hnqO5VwR&M$LSV-ofu!q4 z>pAl-eg1>xZK9;liIjYr{lZyYgi zJXWV}McfK&(eWCR1n$}6YggT=Gb(}S?XL0D3SINNoV+$1A#SCfsuA9kTyQRuhw9?l z#u29*z?_=$T?hR_fzKE`-#;dhk4GB~?5{8d;g&ALsISC%1q{CA=*ZIcrXV$SsFTIk z{WLw@{3HF-KTw2!cBzUzTlf5{%9tE#RK-+IVHdu9Q;`qbD;!%AqNXctvnJ?mp7CDJ z&KH#{Ie<(9f+;n|&klDh)^Hn<8AF&qRN<$;cl{cDNR=5;AI2_A!)x<(S)aoR!m|gf>EBGM^?Dqt9nWmq`{^Lp;85og zi8kq0+U>*u71z(k4Gp zVXR1V{q~gPo71(qUmlGTKO{yCnC+ZLUTDp^AYRMR78-I87ASau}N#JfW#%ntOJzEuv$Yy=TSlS9@T@UYsrgV6Shvk$ZGBJtee;{ZS? zxHF3X$ktLf?BkpSu0d7{JN?;wfz#mUejE_iCu)uzK%6w8wVGg%hA$skdPuIp2X@C% zDmXzcxn^?kEqmW+TZzzB@c4RP`BX`-Lr&Q_&T#jSiA0aKe)MaS@9%J)H!5Q$dBsr7 ztI`YSUNrhuv&Z{)SG_J;G)-rp5b)XPe02<_KxzLl?9pf>e6kxOeCdRHzEaIJB+xME z^*Z^+ve<4Eu zhS%iiw63DKJ4Mx+Xr2~nnpw>#*r_7x_aUqa8x1|>%~cP2iYYn9Pi6eMJpfCIl7r`I zv81&ZPk8;&^TU$5KoIwyC)Er=#VKb6oLf6n>XsxxodO{acpkn^6ipy)q37Ma%G>|m z5dR5b#c}jaAd4fj2#A_&my}YB_Rmz0&o&mpy<8~llCC+`QdM&PIQphlBQR}V22E(x z7?yaEO@)Wg+|}lsm{EVHwQjw#l~K_#*1>=c)a9_`9q3qqM%K2J=DHH4d}VI#4=!%S z*byjd;SPB*xQwQMMwVbSNC+?AhAZ{Jcc5j~1YlOc0Rj z!np-C-L#CF?T^Q_Zo%m-$ijhX00N_z=UX*K4in3%z$HqseLR&Xk(#>qHt5Y7@rD1;SfZwmnlmOWN;X1?ia4C2vItX4sF-vo}?mI;Z3rEr^h`>dODHx#iy{ie% zR(5IkZ_en}^-Q2c%*{QCDTDzjLIl zzEEp{-x4m5%B=*&Ou*Yn-&6Qv;0ik)qAtC+iQ!PtY~&d^T;`h3v5Qo-&`sV{OBe&e zh~+~el>13lFTjo@mWOe;j@zmZALW4#e#%2I3Mtx|1{r1MqSe7GiZdvNqr$>@0C~0h z!^Cox&LApO7&bn&ZrqE7f-hBR1hXtXXW~kJS9I=ndu|D_a&`t16#>vpo+N} zFPHnSvE;5%TfYYra;?qe*R)^c#TtIpi!uE&Bk;u=z%j-Tvkk4(k+AaIk^2Q=!RH<0 zclf0v#WMaD}%yX zfb*Ew6!hXC@0I!SIuy{3x7#skY9vT0Vak!9V^~9-!W%BNG+H zw_=bh_EJ!FbZj~}Sr#^0wjyjT-kx3}JJ?StlEcxum)G4cZ^wMyO_CW>F%&gf=}^$I zhtqC4mJ*`Qh+J~C1R~~=N~N$bu|(xUs<7l(K=AE+-&Y?mC#+42E@FC1!y^Nw@CJB) zHZVhIl+cG~yf3rlQCjKLq11$-3wY#r#C|CIl(zdGw3wN{$Jb@uljUZL!^3kam{Evc z1hPYy0g2d?DgQ8`wH++BU!QU7T9amKRyTV#3PrpE@J;SmW3nfb!V#6)Yj=?wX`c}P zau@#0ZHHgzqoz3@EUhk1r`)D`8^#0^+U|^Gel?+vF5pQ%=|3^DJQo=`*rKh|ON&-6(v`Ba3HVBt^|dF{04N9SZSV|a z!`-L&aw9S;^NSd~-c-;eT{;sPNh2B*1t?~Y)6~s4WtHvT?u>H`Z=|l3OR7!hFWg`R zyaYf@4+=>0c%sNm&^@2{-TC9AOdIS`9y+utIGZOD?q6P*MV=aPKTUrbX_}@uqD!pX zQp;%Ign4r~)jbeFR1(Z7w|Izqpwy0VE#MK;(X#Z}OR@8^;*&>k`c|F&Y79OP7GThP z^qF=|X=>2=Gcuv=bs$X z3UOqByWv6?9tw}>(HJY!VV9Ea&=^nbcqZyh#m1fEc^t0+7jOIqU6`JG_`?3lDVWya zv_LOyqGgv+WN%nZN|qfH5VGA$sc1Nc%|yqhT0EA0lHf#Z;(;)hEq65BfN(h zI;)9LG|X!XOylc+ukW35!hXJ!8iYf{DM880gFAz?}#c`)GNfIz`irE5tXis}z&k6*|8ysRBK zMCAaqC3=f8a2uU@%rW7RO?vPg9(zn8(KhI6ov(RP0+g`1J~P4{Kgt}?=^x8w>jpz; zm~M1K%q& zM*{rZqqn2=kgkz!P)w)8_{uTY|C>G*R%0?E!~s;HSw=%aL6L2hnOI8*tQ|D^sN_Uo z%9B5X2bRe{MK=CkD1FmDoK47U*A_^UX#1~Ycd{CP-BK#3uj&c?WM*Z3M*^8R*iyxC zy!tgVPTbX;62h>g_U6~)_DuK!cf;M^g|5fv z6^CKgRzD{t4(qbVizEcfasHH?`BV1kuSJX)1N)tl1e&ParjiRN>Ay91)9^RD<7!v2 zfu96{zztNe`&S7Iq_DJkKy$ypUAXrE>MJGYK8Ttba6C|jN+<0V9U zX8*yN>dD`zZ?Jmyv{1aFiFI9U@hAM0Ry^OgK>Z~_#X9W!2)(3hBiC~|!o~l+TSA(g znS}+6Ppt)%FTJJS(d~i5pS9ZK;pvb1Phb9^>TRKzN{Wgjw15CVvv7yYmYI=3b|t5w zF>MJ5@Sp@CFCf5!(ui;6Sn4jXDQS*7>Oi%(LTb8);$^G{QZWBr^y0P?(*lK;&UR;d zy1U!am27Md89fg}l9P!d#ZPvt7XZPvY1E9|8w*2j&drpWAndK&a>sYw;!5|bXAd>X z)*>9Q+Gzf_*C=o0oC$>F(D-i-)>FO0@9Wo7+^VeRAcTZ51M7s(rGa7_wBM>4O*_%2 zIjzf3FjYuVMwO0PA|MDgY=Qs700n>PK1o9R(JCJxKeSGEod7L~x9qGV_P;urix~bC zG^Fhj7BeRQAL=+c%wGktzJ7*TJ-@zR=D*9VuP5RM8Xy6HJ8sJkgF{Goea|4xoY3q3 z&=Imoc#p)~|A}-;cy6ilY(CS(t`-I;q8m-2r@wgW?4Ncr`~H8qtN(PszscULE+{}< zcJ^WJ%z=u3phV^V%*+g4B1(55`-uh5w~Ic^P-rMEy9=bYx!@6Csy-C8`a{|-`)DEe zT%fY5YDw&Tf5Gc~&S_w*#_A3KtET3R%ljGbvP5mQni|ED=s7-6gY9k8c@JEKYA<@K>i{P zd47LY%njPV_{J3Wh{x;unfsY%KcAad|Nc2|(p2Fx1XXeBb#u>o|GiE|nZFNdh1@d{ zVr*D`6H^l)j=tAsZh}zoYInRS`|%-^SJ|Mq(Cu6`+Ipk<2>k1tp(uw)OP& z-IgLxp?G6CaK#LrZiM*BTfAHLF*NFgB3)V)|N z(QrIUPQeDmoB@7CLa8oRjX^<5F3J%TQ_k2GP~e&6GHABKbY%1!kR1{e6QiXq1fno0 zoHk1@8%=mEeQBfy>MLC(>zBo2p;4l}y|?F^OG^eCI3^YXNE#--8KtoFC{EVcJ1(V&E4@Y15SJ5%t@x657X_o-;dZ!3V9R{#M8z4V3?K_rUe6mZ(|;7S zD_j|YfvFe_5p%-P*l2Ux7!7%MwB6LM>#-iqnTyw5uGrKSl)4`lUMpz%2J}<_DRw1B zD%1a+?Q|MV=dsJBy7x;21|1si&AEHe>%#qz{kcqKZxz^zG=KJ21e$|_gxC&pI43Xg zunBw`8^`SgUFxEfs`byEvPDFcs^q4?y}?s&M$^diB@;*(py_9PV}aCkcH$LR&3)=J z^!->jU!rRktA;uQmY(8O#uLz~lcj`#+IZbB6*d!W)p*K|QRuM^^z}c|zIfvQ>CB&} zjMU()6qUsICDEPN^f<+tWB-Vc8>%|oF{5xAgx#z_7z*wyAp@RZ9z`xnx4ZX}+c|Rj zvy(k9)v4G0m(~g1FGXA~-92)YAJdzpqXf5uA%YVjj=6l2-PXpXe=kFHpm2F#zI|Bz zP1Y&5T{qLuw;LDq8S)Cza}WrhBY;be#>6CBdy2d7#UAafu(H$s4vCuO*1Gw3S14ZD zy_1x*Yvje{Kd5%hy?-8kIust2%)@Xui#6nfi-|4&81x!5=8`4~dW3o>JA6FSW8PL5 z)~`jXWzo5~G{B2NZ}RfN5(Iq;CJ?qF3MmG-9obD=L%}UM6`Dqy-tb0~shRnLi_vtw zP7no8?=*&g-4srO6z0~;eG9^4GZe6`>bdxN@`jI?-el1f?#6fB0d_ho1vyLoFl7CcaDCEDxVdrw&Oa6u2-9|)=G=m&G1vlLNwCrQ1d#@O z3s8BYlXImqVd=rEan$jFWyOIMunQAqV0;fVKkU!kfxLRh2^#yad2Vwk_W#s44T29o zps0uKXjfNPwU?};qoakzx0?oS%L1+JC|J5a=2R=@?5H6Pq849Laxf}!knFbM*=Iuv zV!cYnmx(EFl+E&QkOd@t$H-m_mibWx!^NhJ%0GSd=n)Tm)GGodADY*%BZcB-O;Wg^ zP^fugaN&Qi+cuns_<60*91Z^A!dDL$)-ccK{!mcvE-m|&rt+&4Sf^klFl;}eRp*xJ zWR7f-T+zhR>6yk|+DE^R6TMHfQh#`!r;;JrHI?HEPXB2VQv&G!CoWLw+jXN*sq9m> z`r3$ejvB$OuZ+h3%P)Rriv7AVef03~d%<-dp$P(+b0DX_!btNlpn7ohCXYeS{!f2- ze4x_O?bWHBo!$0Wp{kr5x?pIH-FmpM?=Ma327kmbAe2!T%k;h-*}{Z^f&!V4T`G5^ zYyA}?BihRr@Pj$eOdzkc;C_rEgMD{*2ZXI`t1d1tW8>n;giC?)*U&JKdVZ)7LMX@h zih&_6Ic-?5+G>uOnfYVJgS@mvG*x6;XlZq|m=Bjw0CG@hXpDDnZ!d7A{GLZACDG=h zG%G}=qyWwAb0424HD|8Q&dGcp1k^37J@Kh7YY9Hg!jg`T>@sO2FI7FCJ^TD1Ju8So zNVvVb+u(8S2n?*iwpgo%+5O@pkD38cECjO3?Y?noEAMC#1TuW;>fE%nh-Caq8n4XG zcBafGCnh*3C}5}$*6o&BgMjY0!_MSkX$J|5DLWc6G7#6IE-EUzKHDv9WTagwpRIG+ zU+YWaZ;8k(@sB%P?&xT3<(Wn(z|}}(x1>=_aoei_%G8-6(lJIO2WJqkbZ*gG#r}xvI zc*gkc*e(}B0s@-z#v;vXQ8BRrDECBrI~5btkaHWjjlbb zu=weo(ob&yX+Ry%OCyGwMBJM8tE($B;~pSJJY-PT9g5G=c)iDMwInCjKLbXa-D;K- zU=@?NLFN9JLIJak=B^6#2uBlRW2a#JOqg^Uy+;L<6+_%TRPMWJxVWa8n*|!hGDYA( zZK|u2O>*0J@7{qKeGZ)J3=u+{m)Ga}>rsWKTy|@r$@B$L?m!C|$ikS&|KhNouh%`p z>d#H}OiX?Mc8<$hQ9;4*WHeuKdKMIhfpBy8{JcC~pPQX^J>R3J-UZWOD5HXP1x7gt zH(|0+m61zxCD|07U#8@4%J%oq$4n!@4!{pGMMezXJfE&Kr#_cvsA<=Tqt{$pS|VFe zBLqu$L5b1tpWYDYgP5JI>Jlod!)`s>-PBGZo4M=BhBsK5!O{)ZmPd5Z>aopYL9jRi z^M0`SwNp1fKECNZnOv5V1)=|ZKKQ2Vj|azPeS3Rr^!8Ro={A6slamtyah%7Ij`yUWf?62`ObSnz7-(GDONzX?Iwx*!ZvM`*KCDsQPVgV;9$aBUnjb6@u2c$7 zLIn8QC&~cOuDVdrpvkEzdfmqQii%Mlfd}=$2G>(FAS)Hmpbd(cfzm@`_G9lI4t@&& zWkW*3q@hf)+?*Vh3qjRlEqrcA3ozd`sw}un2Gf50;7m|cP$)ASD**B-n(FF6htK2w z_FTjHi}u!Fx^HD=4+d@%p_Z%t+8vDsZf@>i*HB-IxP-C zuVi@+{W#<4J0%M@k20{Rq`oZgPL^g~G8NQJ=k0vmNjc-Yy1Z-v_0X!Ss&;3pbxRHW zU3OUKQ7SWte$>^~)fbih0;EIN2Av|?n+u!BIH1e)4Cc|Jp9(%v;^gN`K%><2ay8zT z1qBh2Syqnu`4Q0@%5N8JmMcNS#i^)M?ZJnLsHMyxgF1A1kgIRtl zc=l=)XJmNTaPmf(;)`EEfLUf7dvR2ha5I=pB4Axi=2EoP78Mn>v9VE8``R1D8x#NL zIr199yKn;_T3trW^ujz0Xlv}xH{>zHTe9w2(6~$rnY%$5U&5A!_@36o;*DTb9~FjKDm@ zCr@aepVyI;vsF|@M8Hndr>b6SZwf|cZ?4Xmxj`{k#(bi9OcW@^dw6&l{Tvt= z7#UHVp*>#1wks9Lk)Amaz+XSkBlfVO!DuGk6_qL245`u z##RptCrU7;_`Slf#E!PGw4_u#d<;B`?=fjPvZ=*kqQb&J_c80ok4XvvP^rtlH4r08 z0vN*7H+7bpBS>iKMq;dg1Eh4LgQ~3;*lT3N=vP;{uF&rX&wxup_Ww2cq5=a!F! z@R*HqN}3@k0ylz!p%+JtBVk|#=_|W|k=H%AyZiA}>xEt7Yfc7L40x~A@iYEa& zIyxz76PVIqb(~-oke~vtpla+&X=!O0hOz|1jP+ctgNaFAD1%PD8tvKH`8gT_0$6W! z4GauE^nM*m7kU=Eker+h7G+SWt*or9SJ$Z72Uf#enUYY|w4=HCCGZw>mclsZ(Vqev zs?}9FoX?Zb1d0z?xw(Z4gnZ&Y-2($oAmDa#A_a@?h_u@s{gL zqaYet8QR&~8tGf2ApZHs+Q1A2k@F4fi#IR+yyf9xlrpk1wl{gf#LC3G4e!rsUh zyjtkn8wne|w>C6-!N>RFpKCZz7pYsyl5?Qn^_LuYaKQ?PcI@ZyX6f|2ELK`YRN#Lk z7)Zwo>1_F6N3?pePh8S~zD1#Dv+nYUKB>hl_k&>f1VPxttb zp9sqJ)62)n7twPy>C|Ya3wmSs1?GP^hX2aa2Q91LottbJU#YfTMY{XH*n1OjEWfRB zSfY}lGFFtQLMX%InQ1_V%u_Ot88c?40Yxbq5S5|9kXb?rq0Cce$`q0zGK2`>+xvd_ z(K+uq?|IMrzrOE(UEjI7?tSlj4{Pr=?6ucgdq4T0m(U~F@sDx*AL30RKbr%iizWyl=6++!<+;O&&j5PiUoX&G2&iHE*rv)H1UllU_1? z?)|Tq!dIUEz-UodoM7RWW8oI*VZbmHexH|lao2z-ohhuDm65Uapw5xEyS^N*c`ZAQ zdcCQ(gri;Z-jyV`xch2eRA`)OM3bKP%}vR12QOPEUC7i#1@KW%HQ1{LCW?zWpzW4b2AG+M(;plY%Vt?f;yqEUF??3{-zRB$1=Gn8UE8=B@3*xC zm~&tE1twmua@6U7QI84+>dU+iG zos)*xFtI|IoC4V?6ol&j(2#m_zFL`14Y2qm(%`Vd(Gi{b@Kg+d+ zf|}2BM`|RqrX`+HNcI<#NSk9B6Hb(R_5Hw#=)Hm|r4|am&KvW7nT>IN%&M^uu$Zl1 z`&3!SH|-(J^^`OwCSDO5-+c2$*-}Z?u6Tm>xwHy!2wCGF9>T;Li*qSecB)4E;l5vI z^SwUToPYfr-*F+?pY4v=*~_QdmKr-VUd7Heda2)Lo%|pZ$+$&^yHabm;91)@-WYm| zzyRmKmz{B??iHOq4(amQF-7@7i+HcG#W{^S4(0~8u`qY(pD&|=wiJb*JEIY;s8x`* z!{mF%w1s%VF2N*=u7oiediprN0{cshAyy+n8IRuw_j7oS{1n>RQ&7ts?`})^@1-^wz1`D}c+5sg0Ou7L&%8CWs->#SB!7u4j zFf*ak#aUttj*R+dn-Xlr`3?ttpbY=ut*&v$pNp00%*)-woo9xcBkRwpu)9vhoobh+6WlawL(*sJgAu;VAOOCS0&`{L;&)XSs^XEz_y6<);Os4*n? z-+A`Qsg>U4*fHV35EnfA#o1ySw>uK79r6UdUHE{y=XdWt74Ft8 zp*Z0aW}DwI5Qt5_?)q%rQ{MB@B5jgZ}MwF!Nj>Zk6X zs+CQCRT#_!zRf+H{9fUvhr`+yyN|+o;6YFR2lSi`9-w zuJlHgaXxG3mz=%Au+QdmR)R_l?LJX(GZYza7-rztwg3mUn5oIfz5f*o~ zB5t^iFNCPrbV^x9!qrcb^rCq_AP(f2h+58+7^^ zPe*fdmYL0W2d4|UN_qJ%{RZDD@Mi29k-g*G}DW9rc?wp zEj;g4)TrG5iCLsx-tgQh3)#FI-xy~!P{{lDvqo4l$ zCH8-3&)#MVocN}HxbQK5?Us5(l87J)Wq{h?A7O}VqN;}$#t5T`IJ_VRMZ}1Jl!V2A z=0p*KAQ6QYA&>+`P#^#TK@df-tMzCUjzjYgL=YAh#3N(jQ8>^Fq(mZsOTZBUC@fJJ^h1k?5K%;sCH@T#q`z>$ zV$pxrVgFKldU((i4+ewjA2a}cR((W0tS}nX0&@Wa=0?CHGXxmpz?@-@p{8@t|;s8C!>7O-!bp5l6AWQ_E$myRoe{{l#K<=y- zK@t!VLI4pEM&sb*$S+7&JQfdX$tk%dc}heK8h}_$5t$>SLLQrhCIA`}a2O~MBEo>l zL?Q{27>x(4CZdV3955e;A`ysCM8GIG6oDuLTN2QaF(jCxF@Pro6bXX^;7GzaFcqRO z6jE41LXn7QfGq5U$3h7vfMH<@c?Yn=t&T+k*g?@GieNy=MtuK^{00i*KzkzUzeqQ* z=1(cZ{3Rkl*n#*Xc;XQ%AbA2OJeVMc08<&|*R+c8=yw&L;L|tL09Ju`lFk0)W_>TL9kx$*vZg zID_DiwX+QnS$R5IncIUxQ0V|5IorZ9g}lt298f~QQ9uc~xPzRF zm6JKhTR6Bnp>V*4a<=vWiMbo>N_H}Y?5$zzbHJqlWzOby)~i`tb7wG|`2|-KTa=I` zh*!ZN6dvr{5@6E@J_x`ZB_s_ta+HuPFbPmXaws8rl#l{&Lr_9WC?RE(kP1pj6(yvG z5>f~L4oc_@N=OqWbQbtJzz;$R>7aykQ9`CpCg*I-UC4-=g8V8btL0=Wkif96_GW-= z=Nz2O!Eyss1YN`S$tW3X5#U0a+mQtsSa}u})+h|=UlCX==6^4#LKfC;fT#buu;Rg> z7hKJqU95o+{~wf55?Ia~1(XEF`F~X~(KsmT7S`54tKxuFLxlPRe4>Sg3BYh60WPh6 zqE{P&8uWT2G~n540};T+wJbnuExQgu1n7sgQn23EvUrq;@P%(Byhrs}OTx+n738F5^=tAjRZ2(NAzp`kQ$Oat2+Wf0#9UyicAa;HF z*mZzVVpd_}*Sq1@yW!Wn;n%wn*5^T3N0qRSDq$T}=<=)%L0BIG*pz>jt`9+2AA-0( z1h5j;+QPWdDlp>uXwXMqD_tLrxIP+jeY6d7L|h*Y`g5xgpyaP**GGf$zgD_F8r05f zrR$>sCH;4*bAyEsW&kZS5kLa?z`b{EXC`2Q)diRac4Z(!Sis-48es0D2%t4AUwdF3 z9#9(Y@vscO5s0h%{950C^j?DlVXQr{EeVW^2ZD_U0SRyv2rLye3NH+t0`Lv<@WB89 z#R83o$ALNGaL_FP`L(uSuCNa%L&gU61fW)7e~1Sj5A6|vHFz+98gS0=jRk#RdpNJP zIm0nv9=Y~+oC&};!UIV| zXpPiEcz|wT474yH(AvbYKq0|r?Hj&HfGAjDI3Qp+L>$N|1cpNh3Vbop1`Yy|f_aD_ z(jOp)1J7UIVE-f619(`#coLZ)$V5Ru1kM`s0mE>B7WiV%SSG%9@XcwqVh zVS&ttNRuBxFrYRep&?9&G?^f)1OVkEutI>g29;1E03tXNm4!HHe7g^T+9A`bIB?5vPK%tUgWC#W&K+xpx^5l|#o&psNgD_+e8v*_EZvRT{ zD(KbM#vXsxY#jT~nm@Y!S%nvYQAl$7XU!j-V2l*mZ6T6)Kr^_z!IT7O26iSSh1|md zF9Sa0+Eqe;Xch?1kyC`aWF*L=5=CH06;D7Sqo57gt3iwskP_r!EEPs=fe8dS143jd z93Do-!0rp%A%Qaj@TNiBO9TY>Kokvhf{`}Zi2za%I0M005cUP&fpsPVLE=DU2}~cE z4%j_Gdl2}8emMbrfPIt*av;g0(u|-<062j?8e#|PU^Ed4JR!Mve}!^khNnE@QgB)~8rxnL{;0WJ>^{srCwXb&(%AYjPH4j^g_<(GVt@n5~j zwE2U+h?@KNgpk~8BTTYLkjppbao~srn76B<0kI_@haW@`vIYx`j5A2Vnia+ZoQZ%& z(Ab2l6^BQTYCvCT)UpG*_^IE6^1{j98!~KnWNT$OMUqq;TeB-eW*S z8}Jpx{y_;6iN^p50HJ&!ePCo@{A0nP5;TAiX~IDn!2;OF9_R{Q{aLD9wTlC zQcCVg0#pav0J%T8d}B|foIKv&j|7}0=so@I&>$!VM-lafl?ZrW?+{p)CfMERy2L%9fmNfVmO=TC`y8jTT0h z%j%1K)JaY^_9CymzfXxkg@SYRze~aSJ=7tqFCwBGR#Ol|C4z^%KL2@2Rtf(~N`?dB zZhXk-5>Bj2-|C{_q znB)`t)$@GBt{~^3lL34OuqT5Q@ezms8(@22Af1R{LxB4jvJ>BvohX#>m_KwMA()(UV$5VM1bN6Z#*B?Cw&Fy!DC2=9czJiMfV*mfka z&;W&jMF8w2Pz@{);QWBaz9IdSfY62jK*&4*7X+Zq3@u3zCxl!9COr-Ztx1@IIU_vB zf+>;}1&pY|a(KrD`g(w=0AYY0=my9Ewr27M4Xy_Ow1H6!z#}Zhf=dy9bMXX3RM*TE zEV$$VjVGAmz@-bgZh+whpa6562C@jDR3qq?{3}UK*QyUyOECWsh!~>LpmcSqcT9gEDX5d9|fKGTstf7Mm zj6=kHB^z->#Iu6^F@SBLH4c&+F--m@A*(TRx-lO6ujDuOT{Xd=Xju(YqH_DF;$wm0 z0g4Hj*pSk231Y!o11aD&nU5Ht*gzdnvgCHa2M2~axClc4^ar=Gpwosd2!I20Imj*@ z8kQqVf_%vfDnQ)dNY8rQ2r*LuJ;`bp`6Anyf6<%-Yw@y{i)9^N1mmH-Z5u|U^BvOz+_fD2$a&=PB;Cj#~o z5g!fIBIP3Byazty9v~jGA-CQFgWPx{r>n64>Wu-r3_P+~gF&wU_tLf5!1wCBf#3qH zkd#~kvBZPG6Yw?2_#s!T;ARgN2M9M3fM|f25@-cg1`uy>umgKSeG3JRh!{$+o(zxN za}_oaRfQXXw>viPmlH2_$B$OW(xK)3^HGjiMx?nGn@oB%Er0=)+|cwlEBdJk|9wnx+j(9b{vLz4_G0u&#N zpg^@r0C5lyK>^zrFsKoCfgF{=BgQoZ0HZ0$<_7M&ft3xSRlr06YMpE~0Lce-5VQuN z!|@MO#L6WjK~|H0pRQ4VqqZY!ra#4PL-Yd)_kx2*Ffs;U02Tw-#(;GRbP!PHNL&d6 zR64M7khlumw&7+3tvc8So|nV+kQIQ4;1CoC`he{M;0xM;IzVO+?FJ+S_yU~(tS~?g z5Pt(>05=P?0i=Z+AURqA&f<|R9gl@fAt85(|2{<)jbAU{Cu0Nn{g{BY}CQ#Y^;Ilqxw zSR~L7++xIy1+xMXKgcB{&Ia@@;2tn2z-|H{g4rS*#sDl~bQf?Oa0%RZKMg`z{7?EH3j80Uz@J)hJ$MK#z}0(8KwGWunE%}y_JI#rpX(3kO9B@-K!6jhcqC2> zH3X6enj89^;DL@BSRtS-xKR%3fSv=_WMCgy|5rOS&;lR^unuR{(Loxn4uDJ?bV4Qq zE(1ZJNFE{qI)g3ZulL4sk+nXc4a`Fo1=}M?!}n@m47iEa{xvroP;Kz;(JC(R4Ll`yLpvHgy02tcM?>iKv{u0gm$nEuqxq$LoSSgH@xoz@>t|%5SR$OGzRGmX}Ko3CIjY9iqY(P{AAqY5DhJ@I-t}#Hq-~(c~e@z^@I|$_vz(Ej#atbDf1BMJ-f8@J~ zfOvniu0ccztYz@P3!EE)Wah)NRpCJHF(Ntv;0S2|=>+Sb4g+(BcN^g)Pk6792rq3yodoCsX$vp5 z!ucQ!0&5V`0absJxC1z>J&UKrRE{NF6K(?Xh571RrpZ6TTtt;P@4& z7BDsxczAab%nJ*3CKwA31Q4$6KR3|7g5Q7rmnlHpf!1C9Av}y(K*h8A2?HT(Kam$9 z3d3vI|Lu?DZF4reSQupC_IA2G{`A_evyQ1#S@iXoOVFJUccNXsyV!Q-PRvC+FE2is z`24csQ-1PbYVym$^n&sZX0GbFNZE6|$tSn9&>U|U~d)R@^M&Ss-(C6x_ zM`1J#3{Nf0zkH#h8rF#X)=Z)ONQd}~;-H(j&{KkVU0G*$TVp@x>F+%|r%&EH@#=bV z_zC)b`@}hh&)a>Yc>23ylA?no+P-;T*K%ZaaY;$Z)&}g$%^j3nX=AC;QOgtjM=w!a zxM)LQbD$8*dR4M=D@AY9Ciz)$1ty=&z*zc*?<@S3G?T`^KZXYSJ__@F6uATSjgpG8 zg+rk0n3BE^g`BMWR%fOhZ<-(8+cTS1M(fIdJxM;D*V(?L=Ph&%&?^67p`az20=$H@1;L3Ju z;=|1b-&6PbRNqN&TQQ{EOgrsuI&!wn;x&V~mKH^Yw}klC=@l!!KI1_v`!Qo0RcFk+ zEFIhQ3ezt_s;%i*@9Yb?Ur!2G_9lBT9$k6y!uZRe=@@mxIg8&z{=ZNC9$Mh6={?zz zl$%TJpnR43p*wYX;#N$|9YYGEEes3{6q}E1-QnXO>QDQwxVUa?rD*y?mx2EBo=4ty zr%&3-x9c_~^9f1{z+!ljh8FTeh+mzuCRRQFT^=Pux`~N0%F0O`|xoth*W-101bFP#K`rENA&9WQ9+=ZLz22~bjsd#riy=8vP_+HXc4 zij~oR@G~PnRC+g0&^2}j2d+TP8ZXzb^2@H-Etiswj|$S3D(w`^k6(-*f1c5{>wxO7 z?`+}u)g-;CoOYiPzl>Nv&cWWUE8e9`-WLxNdw7b*ZT62=A7VPr)rh;9Oe2L8Df64%^xSv^zvms#5sJkt#%7#wc@D|@(;|6w7YuldDdI2Cq4$( z>UZf#_&okC)3vg_M$XRaF004j&J+9C&Z~`PUn}-zInYx1<1*vEEvNF5Wj>w@a<1|p z_2W*~z+|W7`o){9+@hgQ8tgdjlNkSV;KFr6#kZ~97wR4=Z#m_WPA@WZOIYEGlN^Iw z#cWslM`t-ft^M)hR_P7A0tbp39&Pgo8~GG>RVG^~L(%u%6`saRFCOPtSsRus78pl5 zpRZson&aN>S8)Bs$*!ND9@b6Qop1bNSyNQ*mg>wQGwb^0R*zdy>yIu)&v(@Go!9tp zvc%`bKCj>NCLoWcSFkT#%#(5EhSRgoZFrYP?PPi1F}*Wi+j_csUJ2}p@H#X+lE@~u zc;*mYmCl{_LJAUeI>nL%GloUfoB%)QX`)^U6MZpZo3&2|_%Er+vQoQ~fPUvceA zKlDtu;pC*4Q0Mg9=ujU2YIPs+<^UJ&<^6`vr*`dVy=zob?6gHhos-}2Y`)BuvLGwL znPKC-?<5n?XD2SZr`|xt*f`N0?+ExQlP4Jboaf@Rkb|{;Y&+}fJ|8w80)JF(vA*_- zz(n!;YB${8V|zNTxi@n?)SuT9t^3R^f?Y9B*mFOpb0K+>ZQt>+yU`gBSemU?%<}S+ zoa9F38C5vWoxSci5#U43+V`7#cY}|_`F*IIaqTMo6=U`LKUv;xdC_2=nH{!rZ&yX- zyww@GIF)-ek50PyM3e4YKQ^M?HBj-j{KTg4YU4T+O`l@|XOiM#pJzrs84#mQ|Joc% zUni=sc%*9kamtpR?!p64cIl6I``Wo(xaLyWLoQp>9Gu@6}FJm&Dym&bC|MvS>)PMyFR^aF!gc%5&w8 zNgu!l6{af*oaVl|sRErI{@o$El^%V2NN4h)tI(I16x%e~ZtP>8`XMBUdT3T&cQByp zSl$fh!R|XFo(-F{s@fEhi@5X+b)80Uv*2Rm9ei4^r)oY{w zpd656lE9nZXv3sk))$cAbkoz2dCIUkqK2v6N7Q}rmvmGvg^-)>Re2kYGt)h4r;lFD zE)b^4s5z${d+ti+cCgH5`*`$!XCpx?tO;QSlA6@@v7IA+4j*^YpiocPy-R^qxhGl%F6D#wn9-RL9n(eg|a|@$M=2bc6 zm*$r@UuJji8sKrb{IN7u>|0vtj{;lX`T5=1&zd8{xl`P|>Z93uc!z)P&tbHF^06Y) zYH>*sx5fP_t)!~N7|Nkb=EAi1Pu922VSK}Hck;MfggkXR9(TO7`a*u?tHSy%BWIX1 zM#tVyJ4vd1Xw=Y3=7_bweJ%OXU8gUu7o@}o;$5B_vwoGm`^f8kv#{T6l?$b}l0)Nr zX50NdYF;_NjLn3ZciQvcF{^h@Ma76!jNSH;XI>b+t;qHxA|yXD(=esc|K;{4tRbOc zr$3(_<@(%I*?28``0ZA@(=rJPM-wi@+`QHwO7*q#o;RM<%f}T#IsC&>fN9i5`!z*S zh)U!2Z2>15xt{8^9u-KSP7$=1lCr-WB^AkKz!YZvJ7n>Z`z;HbUz7rz-q@ygC(8U? zN);CUe2$0Gw!aRu@9W5xI$3^9p1V1+pZY*U>R71p^Ix{KZ1h<-<8?wTsapgi%m3zbz;|B68_fXTgdHb+#O;@#h@xY(Y za^LP3lDijo>@>JAH_R1oA2gBbXB_(2&~uhAGBxl?=x2QCWu@6c3%R4gOrI(G48LKY zL=Q(T(FO@p$9BkjZR_fwMjv0g;hKqkTc^cFF@ryH@5+gypnXq0*^4dHJXufiTh`lc zyIGe%@>G4#u&CX+FfRYJ3t~h0*~fTZH9aZrD`hkYC2=xudLmpieLvw*$nuTlCwZAd zcl58jatATcjW3ULB~ZQ~bR^Wa6!k`0JAC0MiASO=rqrxSq}amC<~kCFGhdXe1%IZ@ zUzF_JpEO!LL~-$k`X&JryGZX(4aUTfVK%GEl&{xKqkc`v^gJE&pBQyY8Nj!1x&D*t zXF6?9!0_!LQL*cKJs}5nYbw+iEuXQE8R)xm`-xJJq6^TgQ|r@_MgS8qT6W^!W-) z{4`6^xaDWQk~e4MT%vU~MT@@h&CAcK$9n{O1lT0dXsh2_xgD)p-OiQacb}aGqsvp< zR6&Sa=uhAI(dET&vum0;R9t1>#!fZe6--b!^-~Q->kBSWprkfEh(F@vE}(KOburhR zB4sh}yAV@yV-(-mi5+|*#`d<74@fd9fzA`yX9n!D2Cp&*6!ne=G0!_T4R!7KZ6IGG zT3_1c7<=aW);lK`LIUJ3Htn5kLYW`AWN#Rt6By%j$HPjF%2e~?#fLGYn=ER~zV;oD z`TZ!6E-9dRSG<4BOJ;YPzR#J`?fyq~Yo{j921xPpv%7Y;u3XaEq$|ToU(M>YiQ&s~ z>(L7b?xjC3l-4xOl$P2#=IB$Rvb(-cO}D?mTw#PsVtbjxitD&zmSdlXLV$?yXX{fV zCSv0i>LJciXZ;vHeV;j`z%1pf?WvVrn5m*AXZ+$}cDB?TABL8zcW)11C3jYhDRMN% z{o1D-RMp(OXW>3URZexW%b9QUwZe0k`1 z+s_kGbMaXn;U>qIKNrUOy4JLDzHye%zbc{D6?y-POg>5Js~|;@JZjwV$xKNz%QA-u z%`wX`-$P7GVRh1V##B&c&uw><|Gtw3 ztNrcLyCxq#4bx5IqqVEg>-2^i+W!bls@6ZbWzSHG|F=r72RV=R-WXog@O(%g{H?|% zthGk1N$rJ{-qBmXzDjJdyOc|>zQGS=1{I}Ea(bgW5@hc+-mJW0oG?LsYABrhhIs;Ys|xLQg5Ajr zOvjE3h;_}lo&9O^l4GJec-s!sJ>9}4Tj=yycZ9wB6(xDn8~5JcfKotpDBj!f!?4rd z6U?SHUB4xFT#XGw_3EnUn&hU)clV8YtG%-i`58K0Rb^g86F4z;=srwlg`c9k&7{?vdd_bfOsUPWrcCdxHSuefSLgk4 z@t{(R!TA?yLWKgNRJ#-#T1N7eWOm))4!rX{{@O1a?cHfYzI7#Bt}R8|9{b+SMCS8V0I6#z8#LYdn=2Z_i9joyqL@~akoHIW~}q9-hDpy!*70uo$0D|JsLl9 zk;X){t64;Qd?qXO#4{lluNpm1re)cqQ(sNS?XG+g_GXafopKOs5|G%hg4MLMKPKMt zUA#4;f7eLo(bCPXsWQ@rU-N&wzK|Co@$i>QQ;M8m_fFxhTn{CfvwkTImTH$|RY}w+ zR?TFe|FU?Kbm=_XL!%TIdC7jiliTC8H*ssC<8x)dI=`5zY|OfRzkKmbPF_d2%(q<% z-*p_jvg9hGmvF_Dwf56J?lR-yM=$T4nd+kRay4p`#>5@la+9M$qer{*(sT-O4{-ztaZF1Y0W3;xkJLkhA{iLgoeKQW|H%)hj@%)no z?FT+x(8=>#Bt#t@Iezc3WomPhsCm?_J7LsWO?xnz!iT<~E^i}V+~%JuIkZeXDs@fv zL7;>|%cZ&qc^jIP*U#R&U%B1>Z938v{BfbE!-K&K(I0j1Fdjus8NJH)|7a5Mm7>|d zo8#iMd?69%Eh$okR~c=47g%o?y}dkp%zA67#-xjixgJl|+g&y#aW{;q1tldG&yR=D zwO@%=uv*SEJw9`FoS(Wr*5`A3+Nr@U-^8SgEl0G% z>ZQ*QshyL4M=Bmd@t=-vPZOkdFFb3Z8lqO)W?ywzEcvPUwufE6_TlRb-XBW}OU8OWpU18Ys!Vf+d>!SOipDS7I2g6LfhIH^F<|8QNAzzZZ+{nMWjH$6yr+kNU>#V zndJ)V6a!|y{RbcIx2{=FHkq@-rM04)jqL1p#lHQnOgFs{(8+C_10i_gwrrGke~9iyU|Og)L<>M^JNyqlX5U#J6Ye zSQ53U9$}6>X_t4CC0ut{=ho%$!{|Zl3J%fA=o7JCr+stx8i!wu-ThXJK5-h#!BorBCL{!%20xmng?2!_}VD&sYvDl3q_OI_tfqoCV;cl763s-?cj!M(w#0lAR|&X&Uw7RCFm_^v8G?R+r) zcC>ES;Ztni_V;boq&k*zf@z^h{-%V{B^Kpv3Y)bmvi&7k4iSHRKm3X(b)Tk~GRHIO z6FmjLN)MYSooqMF?7MP6M?!R`d$8?eo@in$Z{{?;S(?kf1JkC_p)Ae)`R-cNyItbw zdN+yjvqWA$$Q-(t;)TllbdTT}(L3z}FUo?nA{v*MkDhOq$T^X~le@DpiD;;*{9r#z z<+b;x@@<3J9k8We2ZWXDNqX{`JJi3JZu#<3;)F8yom^wJEBtc@9{M&XDkXg`^Z@?} zGO?NCU~Y%q(nwl*z>RYUj$Ut)kDSsSiB^01-BkSsebGeGynatWt4^D!7_F#&ZGWUt zP;7t9d9nHvn!|(pj73@1RqIE%KdG|LN2)ZahdP=OO1K zW^U209dB}m1QZXaC{*63)FDtabU4;J#MdZJ>8JeoM7%%djyg*%V0k+o9qwr@ZR!~( zzdN=d^TP6!bha%nbQ{ct@CofbdLWLG zf9Al9K!SCx_nmDPDN5(O9;x{>2%pTay^nhyken>mRlG^nLFDb&j@PL)JS zhH~F+wj~^LdAlv|ivGvUOHwUicC|j%S=mN1Bz7gQRNX5!iJdCP{VCHVGd(Ej(w$|- zwN=xbQj5(R6Q=!+Fz)R2>>Hwcc%?Ff`_VXGMB+qdDz6y*4$34=e<~-v@)c}?Ebp`v z>l9=7H5wV|`{&B{W}rP60{FujIyTMoGhTOKel@`(li`H_o%}+cae|ArEh1@e!%5<` zySvd1k5WF#>+9Y-x4HB})=GzSVGXf9`Nv74*^$Yhpx)F#HZ2d~M#q{2hRNW?WRYCf z#>)>M?yrd+GCTOjVOcsGA7B>}IC6=2^YXqWjp(3A!{_3@{1}ovn^IJ#eb_m0 z&?=7QYl041Ju^RU;^TelFn61s&PK%&?_T?FvNuqwJHg5q3`p8E51AlRM{V2s`!T%itZ#fon7I4mExN9T zPkXf!ukSQI_KCT;PVA!D+=cAtJI;#-8c3L7ACz=yvG{7YjVb?fc=gTydBSV}AB!4+ z*;cjb`fe=8p)c{6f&Dseq#KVlIwJLNy`@@d6D!{Lyho6d?yDE3{=@VaK0fhM%X^73}i(gEzev>fAE_ru}=N ztYL#x*1k>XV?D|*U7uWM{&t`FNv7N(l68dTG3i3vc9kCwYE19*=%V*Dm}g~|Mexhr z-8NJlnSE~Q;P})>cVnN&;bO~KRof&(ur347D3`(CGifSu9J{KaYO8OVwbR6TtHQf# z_Siems-E26#r{^=-@4iN?yMfwl`tk<`GyIvYo$%wMY4}h#0e#`9a za^>A;Z!^8Lmrly?j+ktr3|HDuihAXp_F5#L|7*9Ju6d*N>2r-2Ol_Yevzmrw`fI8h zzR#>z9Me*n*zu^!i0`Zx(;2xT4|e|mhG%w%uNED@U9p8jZtoi+@AQL!3AvlR6J|cj zrv#g}J*(v;)_*z`7OWN4m~MP=R^SU!O06V6KKa=smh{1s$eUch^*2gIM!CDJA!2W* zrS(m>cE>{tiw1`}=CVGP_i_f8@Bi)lQn2mmF2w`kd-TQ_w|#v!J#l7pSzz<4;Ggr3 zqHo?YXw&ImQDqJ73WTy7%Ak+sEUX)ML^bn%5K6 zX-ClVe*Bs2J07AlOk!4e~n$T3s%JYl4n6@$(sVY~S zOg9rzSAyN>C9aSH^oQrQ-yJnrkJi7=xn}2Xd=kr&AuV0}G&$|TvJ&f$-m*cZpx}J8 zlv+Y&O|P;bZPt0tf+$bY{P<7*g2tBSQ63R_4Z=(Dw?0 zDb8NXIxpr`H*|bVVUP4SX8C?i=@QSHJ?N&rcl2V;DC(F`s$Ep!Ws3T(#FYmAHoH*; zp^NYKxIU9WNVd$)?3V`ANh%qi-&(a+JX1=3q~OC-W2It%t#$G<4Dxe%nEv9Cbcgq` z0I9{D62CuZ++aWD#X$eF~9uUOVA4FSAEYGaPV@Pad)QW7%#sy z@cd&azo_t`b3(Q~Vpj8}hU&9%ayu6K+qQOi$$B4@U^LkBLZb1t(&<7MYG$?Tp#!vq zv~H;uJEsQyqLL{aWxMrN8-kgOrr4Z<&j`P4dPS@?N!=oH*ZLOSv&R}~ZjXGz?f2wu z3QuJt}Sxh0LoFcR6CO|D-?3(?lEFuxtF{yI|c8T7$R%#nBzT$x7K-p7Q#M zo1FKhQuWACV$=wf*P{nm%ss1&^~NrrB=U(=#6JjnUCiBT^XgX0!YAPgr|@lt5<4Zi zcT)b;*q*G+<2hd2UL1YuYnS2^I_2vTrfLrPDZLbjw%vE0%DA!AaM5C*3r{a-q@m26 zJnbZE6!?H4NQs3%rB~TZUv=p2G3F85nEsg;_ylU%+5IVZ6W&yO4lZ^|6e(9S*nIJ^6piui2f`5&>6Qr<)O_rlN@&=sX8EFz|3rb z$82t(t4GB?JsPDlgXCBfVoQd7Oa{Z9-QnFPJhOFaW!W>d$6}5qd&r?foGl&A7&SYn zKAhN+uSUJIr$13(jA}ZWXTR13$Eyu2v0Qc9dGy{lWao|3uWlvGzu%)}q@!VZ%+fH|BiuTGGaUYd+>6 zRF5uDJCx=M$XUqWV-c{Hr@g zeJZ|mbWI6d&R;;$dR3hHKCfR?6Kq)PxkJ7Ot9quMpD_C1_1mbNs?Bdc4t$9axx`i@ z!|YmFvO7y-zWZ`y27man%wQnbv8yajF}Xdj#a&PO?X?oic8br<`NZGA)0+GecT3Uu z!1SAE9{Q*F4ptlOj}-r)Kz)EsGl}Xc)$1Yw-yR)}XcgK6{S%&p+A9JY;vPvYr+*jW zr*eWad+AB-oA0$m8)0}NY?p`7We@2rLwvVzN<7rTrY%k`P#?SeW&C&N?zZw^Hm}0X zH8%BuZmOpkvyVKU%-H`;sAi^kZpP3=N6`2&Z*jK^KIW~L&Ri4YSW^cFdjG>#Gp)>i ztF-)+;;t6$K}F(pj88XfZEI(L^;of)z5h*#O?J1-KUY2Bb2Q6kaOWLc3mHOaf5>+%D=t4a?Jb9N+H^5mXX z%6u9!|NG9tU+CxG%?{&RKi4%cq*(1OJ{J4Nw8h-Or01+Xwm$LpLCpTyi6PzxH5FY$ zR~=g}oq2YGN+jWi>Tt{=9dCaE<8Ot9_ewP<4^JJ*IW;(3-hffsWOQ2urxnA-`&L)N zC4}+Zqs|-mkNxa8yLIOqp+~_64;zj1HVa?=Xje=xOc`<2{D%>h5yM!Rss7V>4R>Og zo5vmB^X!_O%2muqc9YK7f4%cu?zPqu>&qX$V_)YV>zo&odXn95q-|849n)@jqx>-K zW`&TZ^jhy`r}{AU(32(?bv57H2;Y=_5v;tTTT}6}Frzq3KTFK-!4b{-ZekI4UfH=t znf%rXy!SYA&zBBYquQhNjcw@{B41b=m2noFzc3$R`7B^A>GHh?Ii)q%R7h!UE?2tJ zeI37gJUP)6F^^BF?wu1b{wnT#s4~`pJ89ANmD=rRu~ttso0x*RE4^iy>Xv6`-m5*9 zeayo{dcGW)mN@!-?$X18ptmM7?ux7{!}mmgOyh@>mg@Pt)12dk-IURnC+fbwd>H*^ zUj^?{wB~G5&X`@S1-nvXXH#eH_pH1DuW@>=ycg5<+GQgrdrmAj?29j;-J(@{Ionh6 zAm7WeCwbEeV1w0olYQ|5cC!C7K~j2x>ttrJaecUJ*vF%F0Xu5>L-$KXdT2DAdsMcm z@|_L6<5mA(JHAbO+MSSdBV^YU&-n`sg2~?;+&e|gXIv&4WfK`13m>#z z>8*{^u#A~Bim?37$OL(bJ3Pp9{x z4$P!2ZlbFzi0QDu{?IgI!fMYhb-Y&8{qHJGSrlCxg8fUjn@?o;QhT%3}6 zPRfTWw0`H8f#z0SDz1AmANjYt8?%GIsx)&#vdnm;k5S^ZM?Kr8Zl1{C=2w;4hq&!u zM~XLz9{!LlepFv>v*Xog-0Tk%Bu|gsYR|5h=Frp%3eRJB6G=5@9N=~Ln(~8dT-C#m zT?H5=?1ioQ@VY^MnLWRzd^Gb;UYUGga7J|Ei0#M8pO(@XP1+o{r0o6NBOk1+=d!l^ zJe^%MfgSFnuYC=J%Fvt-J3jhiz3UZ0H_bs2C~EuRAH< zuy})kF`_%3w(L#Fb+IM-?ZK!+ZJTS1u0)ELR*oNx9qncN#|Xtacw(ZP)N`b zmtud2UEn+Sm`15&`|iwXZ!h+X#fpzZl%=%|JbEeik9<2T6`_7CSB;XTJiq&7jWd5q z#MA00IeQEIWcA#_JFb>1Jvi%yk=AsYb;};8QxK4kci?RkSJ9AB4Y*?zv*R|pMZd;e< zK_7%UYSKM<1wA<;exWr_j}MMU_;=)B=;r<3OB4+69g3?`(k^Eb5usXQ+ESm#sI^^j zv(D0e**0p~QW`$rotZS%7k19^%Ut^WrG_PWX8V(FuMfX@_%m_4{jF7O#NN-yT+;tF zSI%*RqdUeZ>u6VkXGZE!MS2vU!Qs=v=RX|oiaF@JkBXH|x^+IHiLzpdBPy{VWpTOi z@ZpiAs^I-gt@CF#VF)2-rj+*Z=Gkgh$o|9@QD*xUcIWy8e|;3VgmuaCJ2@xO<*Ir_ zqVQ~{SmOK>MLI4C-tJ=`2GcxTf6OXJOE!NHPtf~)t=F(rY?+FW;%xuNkbZTk)X?C~ z0+o6)I#s82pM;e3$_&T5lQw%_{rKpo>ylu%c#7S5x3e7TN%%8IK1|{HPUD}ce${<= z!;N#iI-b)e;~8F#FsN6SG=g3C4W94U{9{T2Lum6oU6j*xh_ z?8EQ!z2BzlP*uM}gwa^mR<^cuII)!CLuK;rdmrp?8T{ttx8UG6ur$x4}AY!qvo z^s(e6ZV_Y5lyH3P&v@2%dblyYSy)z;_eXc{N4<7_DZ`?7eLNjpt~#12@JQ_9(~AoR zP5Gp!XYajZ9(=OP$lg=(W$o$Xj;4kCJ{!4>KH)2^8$6a)By5XGNzWa2do{^@k~CUa z%3#2Gp^ZzbEbV0(rfFvo!@S3qvqQJ`=6rd$cVU#e%?z{snx=C|GmV9>_VvMh+x8;# z6n0U?pO|sp&VJ z)b%+snQGpXJX(Wa1U<3jYwsWbrFnD8UG82sLtvXRihZ>z@4~rCnyK$~ z=H~L^6-BCcrd3rrRE9UdUDhq+w~y}Z(JI244Gbq7Ub$X$nC4CFg}GMO{?{ibs;V9c zbv3{11}i~u$M1&U7x&e+y06&k8YsDB_g;_DDLU75{Zg!ZgVT=ugO|1Vf8F3=BWSdc z_-~o5@bZLj&LnXu9nKA6k5aTT^5 zicmgts5hy_Lw)!0g?irSzi&Dv1a3`z&3@M~BSZdR6vg~*?Xv#M3X}W^F8v?29=&bQ zufpzivzQ$>;T8QM`c+Q+rc>iCtWT(Bp31)6S(r;GD%qn&eO1nplwiU^=loS5C>%D4yrvl{6jP@j~0TLx6)b(yNs1b(O0^v_Vf;s zV!W*|y3Ed8=gy~QTgzX%i`iVsyi-$L@!UHFVWyskIot1F-V$3xx^zdEqEAZ=#hm3! zU46=1bxWwOYHfXyaXYP;eVmqYV6rT+&O+b7GoOc%UqblcQrp!RI`!ownGa*^;hDZ?@bPEQZl!W!k*Si?>93v*j#Z?xORV@HXv zr6N9TDa8}D4lw09TnSW2kV@*DUx^C0-@!0TBVUzS=FCxj7t>u6&PhL>K4TqDw_V

<+H=ORKEp2Y*lZo{UI~{C)+)VT@sI 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%0DW=dq$Ei|6o@N zo5AzX6`!aBRZ_>?;Ll$wGtvqoykDwk-JIY@#IUz zh77L6t-?p#!V)RqTo{R?T5dWPT9gS1b*?bf#7cY5Uxq_lT}I&OT9uUSAz#jl6Ll5vZ zPElnQGgzbP%(h{-3N6gAi4R6ttO&F(QKYL5jwhkXKmD{&wcwzQZHye99E|m?;h_I_ zU~6Cj2hGOHL`X;YzabYFK*`}cp(1OS2nA%HMI1Rx3!1Be480FnSHfHXh`APbNK z$O9AriU1{mGC&2O3Qz;+1N2SI&FSgr=vlubw(p4j|04#v@95t--~VPXFnmW$-x2e7 z#PS_|>oI)mF@EbYe(N!Q>oGF^e=g&05>ATZQRch2=YgsrgXKGe^_$E3&1L;w8|(MlSijfC`psbdX0U!USic#p z-wd{I2HQ7-?VG{&&0zaxuzfSwz8P%a47P6u+c$&#o5B9gVE<;Ye>2#>8SLK-_HPFJ ze;F+FjLZxG1Au{pzM-YD)BiB`jzOAy+q!SrRbA||&A03>+qUhuY}>Z0%eLKJw(Tz4 z#_9iBckjJ!+;iicFB$WR#F&whb3|l5zZ}EH)Xe$6#*Y6y`v7BrG0+BR_jhY+YX~p_ zm;(N_CIF_kCWcNH05gD@nI*u?($y4T26S-*m;)>T79RE%rgi{JfEBGLCo^+lIG-K`Ma!@i1_%3{xcb|{YNsAF|{*y zwqW|3KiHXw0RL9ZMC@$rT>qv1xy1jogNTET?Qhojdu?aae+p!lE@a;{H}(nCZO;J}*%yf<^#M`}`Klj0z{TxuPOahWir<3~A=x85BemM8Lr^ zKe#C#SwKTV;uJ^%MvbTd>d{XGf)DCX0fzKIWTGzC_CjKa6kC?%_4x_E1Lg$oucU

T1qdmkt$!{q`X{F58vu-OXZjC_KUkk%$lIR}T4aRJb!-SIQk_i!dwr}8 zP=jwy0butFO^^zFRD2*XNH3xg?e0W&?}BF^_$q1QYv$O5vnARry(*YZ9D24oY6 z2gEy|PA{s3JGG1)(^YU`RHQn(1@_6%yS48s1`<@yhnqf-U#!d6vDcx6Uwo^-caY!o zO$B&2A!K(L-Q>$c#|WolBCfaDp{d}AD9Fg^h#8RlJHYe#48;5OF|pn{1pR{g^bfOe z-e>J#IQ&0ku@(H%f7~C2Azy&r27)O_$d~cI@(1|k!UPC_KtPFsp64Sma_;sPZl@PK z`sDy$>_%GF)q}uH!!3z`xMqlObR{-8(uyx5AOr!?NH6xlgK{-(dOt$u6CS7Kaw-qprze2w&&Jw|5{{)n=A?uMY-O&&T z??Z5Baez(2EGQmh4ntRqhNBKIsl?+WL;NPxmCw z%AGW{a}QU|BxgEzD&HY(Ui3G`qW^wDTAV;V9D4&Npio59s4!f)uB6GqR0XJw;wYcAgBS z189mtix=?8gB8XYZ@iQTs(oBCb^@=qxYpg`Xp&w2Ry##lLBUfy9I{ZWg)>?P6`;+n zNEd1J>@y-j0fvX00u`U(BRCVb=x{8Nl>DG0%m8z>Hu>Hzw2Mmd=^}*Wk<0CCwWu_6spbD6FFRXjJDS1Lq#l_$W%y~i zbCR}9hYgB>+cv7b1?ZybxtABwQv}Ctsok=(HZVYLx8if|5#EVT5@2gzrG+X|8;y1o{ID>b;?}pazA}GX`q+BKGIm()8wru>S4b-=g1i5WV!Z?v=vS@Z%FMIU++e<_fLzY z$KBg>&Wdej-FRo&MSG3I&469AE*Usj={!z#pk>aIu7~NNAs05Z_~oM{iHpKK2N-pm zAoaX=sZBW8#jCH#cTDo6bIOUb=jhHj57M>|%7?d5lJa0KDQlvqxeeWZ%&00_9J1Kv z7=5p$h1dd|qjyCy7tZL_MiE1q>&2L-xLHwy5-KnKT6e{Qin~i&Ye2WeOVEo3eB`&; zppGgWFV*aHH6^Dl@S`8Quc|9{^1eE|?CW;T{WNa&ZE7K5&JHI`ALmiGy}gmjHuy3P z$?|Z#xLuF(-`=ST-ZDDV2wetrEtG32`b}BVs*EK&V6cE*jkY%WMyoxW4sIhrU$h(^ zH(bdQUUHp9!%y&c(e~Cl!q&3ZJw5WJjE^<)i;QLDt~vMVevMJXrJ)`!nYfCXsy$au z&Cc+puHRz#6HZ@e6Ut>9n}1j~ORfh_7L+3+jY`m-Pn|9gjYC7|q>^VULp%oJ%bVGG4JZFJRj9T*`3LU~YtNEuVW2vUb557!k!|5*62)n+3s+*x<(S$8v4U;7y&Cgdc8_uo_+Y6;S-RcB%Pt z(}PIKeJPZ;e(&QWkc+Ahr7-dbuUw{QUL{fO4#*YG`;c+%71v&v|Y z6RvOQHBw7m@9RytNQ8TlW?wrhwx8~I6yJYyMOM;+rAE`7C%Qc$7Jy7kZP1tQ< zT{dCdJ=~fD8GCupu?3S`xT=$f&FtzpQU%}=%}_9J0Jj%kl=%AezO*Zog( z>vbSP-xAZ9&==A$wi3*5ZXjJeLu>_0v{e;%>!M*NVJ^r!;`mpSluu@pdhVv{78s8K z8bz>`X8x&8>OZy{B+3vv{%PU{@yio6ZTxM>j4RPB5|rMDvY+y< zh|xvIVV=AAJ<#RIkOH_EHd}o<_UGpM@%WL!(rfKDY@b`#iHFRCSO*;duHX*J=K$;_ z2$Xgow;}XTQtK|$VD=EN&sfG+L#@Ns9XU2x$?1({MQIEj=)PVvB!=<${i#{nge%UZ z=}jYqiI4Re+s(Deohx_HwWMaID`(um`c6f&iZ zL!5Y)HDuAipU2+~gdFQHK1uA~-1Y82x7Dwy%f8vLK9m-nNEtk!EnV-BYF;W3Re1yJ z0UC&#k^DG-;3JDh-$E9-`{+Tj$~9O<*QZS zbL!TIconR%iBn%GH#-;_>OFVFg{E<{DU#)EL??@2RIDbl!f;2BEqOsL87NdUy=sVb zjoNC6xl=q@_lt^%SIZId=?PncMKe!{m5D3!G`#4pkM~I~sM1Ky89On_ar=7Lk!FQ^ zig%D#tv~WLoD9E@kKKYO17H`Uc*Zu+{5iqGFYro^e-H6AFIo?mcq zuwHVH&O5H?e6Cyc&6ZH-AIXx;b!4JcllC$|Zxcr}c29GrEJ@PiR?QjnKDcJCdihIb zmuxeLv93*k{f4nqNWUo+JPpm8i;v}Co0y@W^63)oAuwbL2iwv?~m4P2ls z6NbH4LW~QymnYn~savX&o>A`66r)mFS|J3hp7A>St#&oPSqhcH?tl-W` zn;}ZgWetrg>Fg zicT9}_Kk3yo)v-&f-xpU-AG=dYnpE8+!ET?jECHnzMc6}F`B-pD@FcWT(hS1z%5w{ ztEppaRm30}*qGomDG9)`M1%`@A#KIPHYh-jcw zb$0$P2XC!SeNgM?i>H?XVMAAtucw-ab++#yg6PK&mEjm>63j>H^eE=5;N{4;)RoC! zTDLCZ^1jN&94iM2r#U$pQBxeGf~Oi)Zqp@{d`r$Q97;B-J#9c+2EqQM48{-ywl*-v zEbIv%1mQ=56nq{720`bdOBdhZ?On^+TF8Y~7BT}QNi!BeBm zr9r3ywQISK;~F7$JR|8%AM9(`&Fv?OLl^Dp8u%f3CZUZthQE1`zGOPcx=yS`(i#tD z;f$8&@~ti(o8ZVP%TPM3SSmEC+kR(GIJ4}BaO`|A?6NM*!>R6h+rk8S*y5-k!_s-A z8vH$~aEyeV;euA$$kGCZ@+x)y_BV7IWMxMuj*+ktt=BMxpQPfzLx z0u@1wG22$1#u7Fh@pm2mloobdwPnZa%fJEnazugs4H2l zL=-sQ2Hso5%CiY^c~nSOZ>OpUd^8J}QnB%2|KzL9AkUs^(n)IkN2^K~)KkQ_UYMao z1sfL>0zOYpMwW)Pxt^H&eH9(&yI`eTq|JJ^;WVc>kaQovvMm~ za$w|BI)%|)Js63O&etsSZ6~aL22bmSBiDA6SsI@YOmfoh#2aZ^(?12YfDcweTV%w= zbl0Xvo#A=WIH*lJVxf0){EF8o4p3inWl~6#KT|UVfs6huu61Hw`x?90iYL(^jS}gu`IZjmXPG%wQ*?p#5s#MZO9GuS(+EDKj^X^;-if)nf zU`YTndy(}NQBNZ6Uic4slxI6<0$WH)Y}J&|da@|C;G%J-kc7G7y^kQO^RV^jyHu$_ zb=G@A!G!5F+$3Gpx)f(gW5)!pL`~zn#Y0?B3H@@7;T63X`no?ht~htoj1-K-DO^)x zI&FG*n(Ie-J3^6#Tz+nIu1p)*_pFsed6qhpJxLR+@(fY7Jrj1uPL{nkU5Myt87{Yx z_dL$g*yiaQ$!p#@N*Il~zUoGib9)l2?^xfQ=zAE-PP+A$l`>cf@6Pt6(JJgs*>mM% zQ&0Oh&(nY2=s%Dkt!sL~`{b2GG)9kMn^p7AnFd0VcIJ=aqb&!)n8_ek=RQW1R+ zh3YQHE8t(O+4Q80Srr58haU=Ivt5~IBC#E=u5Vgvf>(54-8r0}-Zu|T;NNX>m%jjih zDrvIY0v{>|#fP7ZkenpN-ayl)%ZLm9lFZ#Vun-NG=j)L5CTfk=n+*XGAx{!6)ckz) zW(yk{gFi7QorJj_hVIFzOL@I8Gf?q(WS(1Yr-HfB?yc`LiQsn#E~WU=GmZWVH=uEtZ~nRoT(_^f27zDHb58IW(>@}sSkdXWw$g1PDhAaz_Xsxg zhjYQ~y0?&$>1GIngB00$RlU4?j3@fVBd4kDSx<WIR)h5V1vEtPq|pE zK^rA8kG8Rw$o-RyIwc$MY;%TM|8qN$KPsN4Y0dJSp-^YKjU^yu9o=i2);{=)=cptS zCnIRn2lLhK$P?iVVk^j(S>B}CHHvTzITkA3d)M9Qb4R8wZ&PIW>xuXHUery<2| zg0QGLAXVmf_eLw*9zWHO-C?EuI%xq~4`(==y(#*1(MRV(LKFIDIOzChxy$aV_Zc=y zMwi3Xl`Z!ek9WcAll4pUU(t2q?*a$l2Q@haY>OJTzF!HUdlpvsX6)y80% zwGXJDW@Wd{m1#GqHDSYzak45#-*cfcm5vZoUT1z+Kg z*_QkkRCD5C;$tI+E(Ptp$Lx&zhxj?uPre6U=1NAep$hQX#ilTqdh!}XwEzb0uPuT;MG$<$NL##wXDmw8Y*^2ENUNbD5esUC$QsO)^Pig#TDV8!X6;m;a z;FW|DW<4#fXb%#eM4s_wd2B6Q{wzIs%?yeZlT1Xrxz@R-7%&U&vF{$Jx_~JxS!~Blc*A^#`Ec%R=?=a;XAZ-ITYoXU>MF52YZ?C~nq!Zccbc_=qdiL8gI- z$j8Ax{rdwKYw~j@ct^vb!}OmNE5q$fm}4KB={wqwYJ^(!ToUs$ZKGiGN7~{qj#LOaBZ#w?jRi2Om0*#d~JaUZVTlnz)0gKkM6K(z{^+`>*qP{?S!t z&xLxT*pZ3w_ne#l=J&6K} ze^95$$fFA&cv?p&Ra~7Hy1p8Z5VqOZl(LK-*;phSAMI1p%dW&8o`>ETHrkqWmAWaW z70Mx-P;oho+UKMcYnZaabc^AU<9PijnnfletDgH?5wTJobp#(B_on!M(cvX@C&Mf5 zhpW*{Y_b2Ody=x$6Of;q&ZK&JHo@h zPXO95JMfvnCqtRqmv@rqrEY2P(z^;=8rLbYxti{^=)2j8ruJ0&FY{s~mWa)A3&XG= z&a9##Lmoug7U@ueRw$^o$;s43xL=xChiqImn_6LyEE{JGJ zj>qU#5^>M?uGoTkJWD622^6XGR($~?LxO=}%(=Ft4>s+Zr|vbq4lYbG0jIP{uVv+9 zqnLuVy0B<-v0Aw5nAL_fEO!si(TG*?WcVrd-jh~029MMgfRm2$(8;h$`jyI8lMRwl zH@qooUS)r6cI0oBu5)k?&jN;@#Lxydq786`Gx8wC7Q|i>la0oI>zMgiN0)gi;!2C# zo$Nx+iU|sg7u3AU#Z~fne6A@S8w4Vgr7InoS<5gY#;*o=PxmF_4}pfIJ_WgfpGha0 zkqMn}SM~G}q*wXl*pTZ&OR4h?T*vfgh|&t%mpMwS4nX0IS09C~NsdlNe=sby?apA`V*eJS zO@g}}zf<16rPhc)0mD7bXPKd2;9Iz;fqwt-a=Qvf6`PtAu7cxvzxm)Qp&|1Lx-I81 zLb@!+GULlyn#nM%%}ldk>>;=1+^B)ma)q8m(77ReQU4Q!I~Sv)`B`O_D)_h9XWd5~ z)UKsvhiIsRCYtYWxo^X8C&<+z_5p{nVcGQcz5%S|^CZFEuPSqI7Uob%CbNq=!%HGPlmu#Bo`SxWP<4W*Ah-Y?eGYFqLNVw+$^aMSv3H=E^j3j1Uxob(cr&8%X1 zD|e#h@ldvPel5EfBgP8r&MbW!$f^fN%0=ayeu1 zl}&^4Y1R)(+Np8R6QSEnR_L(wFFz1TzZk#&UlN7=Kg{3%6N#cOB&i@OL@O*Ss_~aD z`QHL4%&dP=5-#??>D|8d$)ES>Ca3_bqZ{JW1sh_KsoQBolzhpz&HC-K`_+(f09D% zM@rEi9Pb~1wX_8A9lcDG`u7K-^br&FJ-q_l{DZ+qAZRREynUxfdfdR!!ksK0M4dT^+QxKT*vzgB`MTJp2w9kASiucK#tm;Ja(ZFph@yyoZ z%_`wB62v?vptAl zeoa~LSrSyIKV9z8<>2G=?wTOp47E<^S?w z_BBf{CLP#1i+j-*pD3vT)RL2qzsrw*sY*$4dxC8>*gJq}aC)qO;+=22gY+ChZ-2$y zLBV{M#`?X`2vp&L_6B{_Jb5U5m9KsfqB6cW5=Z-gA(osz%jhEe?|z$)S@Bq*&+X;> zq<#6Ze&HW{rJQ`Vl4x>xz4hKB_~E{P9S0y8c-8vR<(8j8`RIXT3?G^Lzw0aO z&TMy9f;B*Na=q(UgP}inA)z9lnM*a=+c!2iebGaAjs^Y@Oa=BSz-RSZ-nHtyJ^fk@ zBF^WCt=ZXDpJ>G7dHb6E0n7;5ykpyYotW%Z6<9t>3Ho%2?`1mnDF19l!VV89Jh-~} zv%d=oqO0StS2i8?73~fJ;$!`LKZ)6gx_g5*Y{5;gg?CsIy?ZalYIaF z5%UaUqx2=}jR(Ts&L581SMm=1L%ZT#5DbL9`HRHY6=Xe&KOC*E`< z!5eXsX5=T|ENjrD{$JQ`s@Css_D}wh@bG2 z5X}xGYqEFe&ZO_}uHv;1c)n$;FTk@-?r*~9E-9P%zh}+ieL?0m@_d|}b0yB-`Eq{# zEogD1^r?zHe0N;nx6}Ch4oC2d4KDU*Z{suYOBe~B12fJ1@x6I*dgA5V=UFaP0I%Tp zvM8t6??U}8F8vqFe|w@4(D9)C3a2bz_ROY33!xa90nM_K}ike}rfiD9-jcG&6DyC&%w0uj2pHYiCM6Q-LZrdWJEB^(o3KC&hc> zEgSWz(0QZv(9wNQJQe)lESh@RrJ|I5y;OWi1wnGto83%OZ5D5Mi({Wtj`lgRoS_}E zGa+?+)iC*bQut?tdJVUarNPTq^B8d7HPVn+N>94cM;Z6YPKpp6ff70hTd$HVoL9|; z@Qr=Wb)Zc<I3t=FGr_ACCm7yE=)= znAF=x`<1Ty^2ZHUH3CO_y4&h|JGY&e9;UcEzBNT;fsBuvI$CDV(C}vZJ=KF-HNR&_ zQAnL^a+z`~yO#?Oklp8eV;%&|3NK56`-_C9-zYlV0vLBenwk!_R+jwhU zr($mzL+n+4gT^Nt5NnmT$!gk- zEEeTcSZ;q}&h=pOC!{s*LEk4at@m;)IIiHRKx(ELk+?XdyS13nq=NcPaN8P5O>8qg zx*tR5Xkg9NuTy+f%?It?b+m{LN;eZP*&vOU3VR<#o!yTx`&h7 z>z=??6zXS8sC||ci7oyf@m|daqTGgKHlsZK?nIvv{u%p{Lo6qknbfvvs(7E9XJo9# zwwfjL0HT!hRiMe6F+_^>#j4rDz z^F4&F{SLkW@FW=Cin!!)Un5FxTfFUd%S%auzek!-4 zVtfUUd;HNc*@~ro+}Kuquxp8H;&zm)UbAtAZnou9EbCSwxR1vlt+%$pxA!Qz?rt2X z;d-fkOA}R^f(c?FTVza zJDy89B|bJ#8wo#=VOkdQm{*antk8vBg`k~a6BZ#Qkea08gDx+rLZ<*TyQO-nG@5wl znLmH#Ms4}^EIVeSQk#(cwtnIDJX1aHmAD8F6Gue0tpA^ylpN~1W5jkuZ<Yhn1%-E)_7MU%|#eEtDBsC__neWn9HY!RtOr_QUui9h)Fx|5UiU61Lm3 ziyWi~H_|a6=`C$(&B#>`>FUd9Q4(I#eFJM%%~U>h{oUhm6P&QGeo8yO{vL(>!sAE3wvZc`V7?wF6P46$2 z{!yLEyUJ+tI!jwfSoDMQ+4%~GB%m%4`vmKkDA%sB3~U*@-1-*zgB_xVYV}WP3dzK` zib>)vtg$f)5K30oVh}G*>a!dX<&Bft?!FQTXdpju@a&{3K{|FXMC)i*89mqWytKv>tD<(D~UEgAp^C2)uVHAl=W;SN1#A6^) zLtOAQmab}5&3_r@K?_-;DoksH!ik|HRD&(H_NY%-S%;Q0UXi(gh1?mffl&4{g1R9N z{Y~KjdsJru@CRpf(Sreg%MvAn_N^g8?s{dH08KZd%xk~$$1Te3MwoIE9L03+)G|A{ zitpd1kesZyN~#rB>dFVVw9osrLx~p56jM99=a3Z&kw51dF;G- zn+mhlk%xr(kyP=-Ao2qd;(52S)Klt6I96F(YM!#8|V91iV4&#Y*>y4l}*1U4FEXmt{5GTFwJ#&qOa)neWQ<{3~Z6bK^rFd7ov zc7*}#>-Pwvbf(Z|akL8KqZZzxJE@sqj$b60(@hu#0jgGXv{P8QBW3MAyFm zt&yXYwWk;m3(mVDoI5u6M;Em`LH3FON+oKv*MbN46O2w21oewI^HbAFaUSl zF@(hVJ2y0EX+HK;kVbY!f5%|jIq)EhBRjId=T+7I4tI(hV=Pq1TQorPoz7w!jbQ+5Z-6zH;)q42v)YNsQn3}mfb1h z`}_Tc9QeM)VQ$^(q0!5n zL05_Q;6`c(2T}MF7!F|-JbCY?C@Ua-Qc`_J@j50c3>+x>j;%^UCb_w71iXl1F*i;G zEhShpAC|SiY;1j3XT^zRx@S#Oh>)g9iG-^VDn7quhM)Gu-fE5AWyjTy%qcoOzuK+y z;VJFfvke?QaqR?W_}d;!F^@d%lpZ5R11%arZ!>kk^Ot4Au97}k`fmXSfEMVQz9&nI z7C)_uPctKH9_IO3ewIhyZKa~AveB>g#filY4hA02n}X?PQM_%|+2$O?OX0^<8+Uca zRINZ6;0yE{p`tarn4{TYU77&g=dXJ+oY3ZZLo{24E~}&a(AB7oBBB9%CRbqS>qeoptm+#MQ>v4?0$eO8gff2~@ zFgk_UCwLn&8{wP7Uj?HPwBKCaYVF#*1a_$ad`jBIy9`Wr~=Z3emukOc~XG{KMJOdq8#&>GV8A2s^~tENgE zlnMrL%L803S&>G({cH)`rc=i^#`KE^k|`@ra$ZXz6?Fu9LuXE68MHOoQ%L*-gAJOP zk;$2MfRHUc9gAj1XrnOKqx+%MvctRyBOsB>8ouqlww?PU)yhaX0%S@sCN?EjCrA@& zhY!=5FBQa=&-9KCdCkuuDmY;YFJ3%Gk@6S+SGN9N7yXs0+N6DU;Cz=agpz+GAS_?p z1=KC-K|{f>n#+a5S}*ah-c$-?xQu(}=<5uN=B994! zHujsy$z{VEia97P2acC3x6dRDcF7kUu_}ag`L!44n5#CpWF-LOy?aH%GNulZBFfx1 zl@W~F+($oA9g?_|`6XWcC+x}S=~RH)^Zaw(ojqlBPQOng<#V^2d?{xQ@M+RGYbv^PWItHIqPrDN`6nr*P>L5RnKH6;$>*XGIy?^>!@)2~apcf( ze!p0-PjgY$$fXwoU)MY^rUb)dWbDn_8T{kaQ7uv;*4~4J!DAg{W1cPku1tv1WfKcF!)v1?z+kCQaS$Xqel^jlqi^Em@wo{lcE4O)Le)97 z5H`F{(?E7lBp*shR8TnTAaP?}UeY}l8?XElD$?H0+Yd$e5{)z)sq%#NqJxNUPTyC< zcIj|FJhfmkqGno!wB^7eA#zY)pu=ptlGShtOhbYn@*I1DH{KpzvQs%~3n%t=a;)py zoqwP!tK~`DXA!o1!(iR8U00u3^U7;11^>`_LM`5wD0igAW~@C-3Fn zXe!j3BOi_X69#sxsnZmDyS5Br@SH35BwY{HFlR9qrwf6n*F2 zhs^LUYkwkJO=F=N@29;P95G5X0z~_P+f~;~{R^vZ_OZ~J1<5%>%kW@pJZ_Y7p+C*% zZZ|dHrd<3~fX}V`=x}kHYHntxV9fAcx%r$>?3WLPITFtz71nZ2@43M^g|MR1g5wUH z2=7_s8WeJ2D&zM^SvP2rT-18Pbbb~2O4##YspnXf1MC7@&kTd^?>DS5m(|{T*+#y>HaMAr0oX|#Ct12cV8QuJA{{2{avvTxmV4+*VmP4q=1k;Y9`%F;!!LYnuVMq*y z4>%*#H~O-B!4VwzWaF0=}F7X3tAe ziQ$H-M(HGYiBY&Q_X$m0Vg$2VD(CS%xU}WA;|Jmt4^TWefA?p~t>-wLyG@2$gd3@| z&vO90L=bt%@>R07=HLphnr4q3y=A6k!EcCLuArtlcv$J+$*7s^?0lC=>v=W>dR?|g zg@%*7jVh~L)?CZ+}j*-+!)qd=A3 zlYk4q$DUQrev?%d{Oke~^0W>P+H*0nt!Ep$&_r}vEAJ#9J~sPW@R^m+i?048<{wf) zZ-!X7jT81H;QeD$E5_k-J|~4OFu-afVjX#q<7h#T8-Xs2`D4}OoCY&?fn82n3%co} zl&6jkryb#^s0>;w)qL^r?`+;(_KP=4TRyldUb`P=r$D%xLon<~U!V8<8omYRKKrk| zNS=f+s`jlSG7EZ6WPQ`_HKuI54Dr}e85Ezn0Hbc z%4s6#R8vty>vy-}Pf{IWQH$Txxcfo4v9QEkDqxo_*4c~cduB5K(j9VP8d;{ z3oK?-56lfu6dned>s$Giy_I$57*k8|h2jMwVGQ=r}se?W+*08U^j@J1_C8{GD9TK0& zaSY@S^kL>S-50Owml620b(Bt`o7`f8-x2$MjA8GT-uZ1n`!Qgjj5*S=Xn#?`o6g

Hbwn`p; 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�Erp6>J4)d?9l})GbM*1K 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 N)5eYMdpMLg{T~AkX|ezS literal 0 HcmV?d00001 diff --git a/report/vkr.tex b/report/vkr.tex index 732a605..b2dc375 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1944,6 +1944,9 @@ \subsection{Дифференциальный анализ и тестирова повторений запросов SSB. Ускорение рассчитывается как отношение времени выполнения наивного плана ко времени выполнения оптимизированного плана. +Видно, что на стандартном наборе запросов оптимизатор дает улучшение в $1.2-1.5$ +раз, а на накоторых запросах в $6$ и более раз. + \begin{table}[H] \centering \caption{Результаты выполнения запросов Star Schema Benchmark.} @@ -1972,9 +1975,18 @@ \subsection{Дифференциальный анализ и тестирова \subsection{Калибровка стоимостной модели} Для калибровки коэффициентов в стоимостных формулах реализованы отдельные -бенчмарки физических операторов. Измеряется время выполнения последовательного -сканирования, фильтрации, проекции, сортировки, агрегации, хеш-соединения, -соединения вложенными циклами и декартова произведения. +бенчмарки физических операторов. +Измеряется время выполнения последовательного сканирования, фильтрации, +проекции, сортировки, агрегации, хеш-соединения, соединения вложенными циклами и +декартова произведения~\refImage{fig:operator-benchmark}. + +\begin{figure}[H] +\centering +\includegraphics[width=0.7\textwidth]{scaling.png} +\caption{Зависимость времени выполнения физических операторов от размера входных + данных.} +\label{fig:operator-benchmark} +\end{figure} При выполнении этих бенчмарков данные хранятся в оперативной памяти. Это позволяет уменьшить влияние файловой системы и измерять преимущественно @@ -1985,8 +1997,13 @@ \subsection{Калибровка стоимостной модели} стоимостью. Для этого размер входных отношений выбирается на основе стоимостной формулы оператора. Сопоставление расчетной стоимости с фактическим временем выполнения позволяет сравнить операторы между собой и скорректировать -коэффициенты модели. Благодаря этому оптимизатор принимает решения на основе -оценок, соответствующих характеристикам реализованного исполнителя. +коэффициенты модели~\refImage{fig:cost-model-calibration}. Благодаря этому +оптимизатор принимает решения на основе оценок, соответствующих характеристикам +реализованного исполнителя. + +Выведенные коэффициенты дополнительно валидируются на случайных запросах путем +сравнения полной стоимости плана и времени его +исполнения~\refImage{fig:cost-on-random-queries}. \anonsection{ЗАКЛЮЧЕНИЕ} @@ -2040,15 +2057,6 @@ \subsection{Калибровка стоимостной модели} \label{fig:cascades-tasks} \end{figure} -\begin{figure}[H] -\centering -\includegraphics[width=0.7\textwidth]{scaling.png} -\caption{Зависимость времени выполнения физических операторов от размера входных - данных.} -\label{fig:operator-benchmark} -\end{figure} - - \begin{figure}[H] \centering \begin{tikzpicture}[ @@ -2522,4 +2530,12 @@ \subsection{Калибровка стоимостной модели} \end{minted} \end{listing} +\begin{figure}[H] +\centering +\includegraphics[width=0.7\textwidth]{cost-on-random-queries.png} +\caption{Сравнение скорости выполнения и стоимости на случайных запросах.}% +\label{fig:cost-on-random-queries} +\end{figure} + + \end{document} From ea59a713c789becf744f9fbceef225830aa4ead3 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 00:55:47 +0300 Subject: [PATCH 102/120] Update title --- report/vkr.pdf | Bin 920629 -> 1080097 bytes report/vkr.tex | 94 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/report/vkr.pdf b/report/vkr.pdf index 9fa8361e7ecb1f697f1ce635c1fb6a1b35de9fed..7fcbf1707355ff26d582e2e16872f7cbea7ea79b 100644 GIT binary patch delta 515020 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%0AfK|KYpW|6x1fHQ?{5oQ5t`20s1 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�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%0A_0I*?oM zpd^oUv7H-DccO6VYG>wkh*6(!I|^=uht907Hc-e9Z= zR(O*lh|2u!*6>0yrY0n)@xXzH1~*QM=j$ut@!S551~sOniGfSC5e^PiblVtMdNwQzlA*y+Qc z$o=;jx9xgQ?+)BXE!dOLet~q}>I7BI`}^KcM2VqHbj(xI^~Bcu>Ft}}I-Tziv0~K5 z8{Lj&2O%UQJg=YvHE5q_K6%LeBY+i8!SmUMRASNu9xioCct5!p${5Emm525VLCdIX z&ht*Bi8fKF1YDan*8lp8$(@ZfGl1~-fx4U43`tinBjO+OozdqZDaH>yM-mDrC$Up7 z+K<3nNv@8DGLAp0erVfhRm(rB25X2?7TV{VjqQJHJ*wG0eqLFN&M?{Y{SP6gobQ>T zjP7XCRR@F>_ zvOYO(nrFJexvc2-4Akt)JP_X*x4x^M1A*G$8{)H;KXdiZiFg9ib*Smi`rgvPR}f4n zFgWzx0L7`xAVe=SL=<=Zx*2Ez29!mM+2B=8Kvm=g_rHFv@qs1?aITybVG2s^6<`Ml z4~mOM$8;v3wmN+sAlY+zXL*v?x4zT5S`!!hR1hZ2@}!$ z{IFGO_joxI7`E}Q^1BaYO8Rnc#69p0a|Uqv?pdViXE#d^^UH5BK%^grmz=Wd#+-pi zcj#d2AHuBqKLTD32dl0o$f}-2P-0(PAeq)mLFo2(SBu@DKj-LU}y?CNOx}LTx2fy z11V@BdvhW?t(~Smh6Z=8`O|>8f7+I?3-Alk)r21vjc*;<@D!L)hvBU6VG!8vm)Scm zd@=&cc0rk_S0-Y7K2uwu98wty@koB+nbzP^@=xdHD8X)&BR_zAVDg>qbGpvsN_@oy*xcu(Xq*sC4| zcBGP9LOJL$6o8==Dj@Y*;8(sS3=S^^j};KXyB~#Bxssvu7_Hg4?Bw~Fi&VZ4zc(V; zv)$^755#Ye7@4hI|7J>Y!f&lGSr|i;(3JIX*h(3Y;*E$m=gHWKz@b;9diqGJbU}s5z7<^Ijt;c+*&)cq3H{TyNsH< zi{d_eLRRPeg}1PPUnn&j|3$?8dbf?zR@Ey6gpw8|cyGdoE~~-e+D8e`P^$Oevl%u1 zSnNM~GD$&;WG8jr|CICO@~@vjuLrA%PuNql#y96jlr>RZ{N5rt<0mbuAvs;9J27kFir&t6%xl%Q>rG?e)Vj1N=zjWNb=k# zP-yE65}bziN7N@gywlT3<(fG}iU+DnSDch*N7QSrUu0O3><+tgkdP2eJeHzvC_B3^ zYGb(5!(7O(1v4>OT{2!dd)LB>l8T0YD%*Fi$S_{{*h@UJ?0b#(PhmDHw`V|#lgq0f zmi1{_bL3Eug8e|LVr;`Rpi@N30}36h%9kqOkmUevW>xt{ z1!?+{XjA-96c#pEct<&?K@5ys8^1WBk34%DV6h|GwP3MO8G z%F`%H$F+@#y!wQv)$!A$Z)XXN6uMvw%zEy{TXMS&K07x7pqfe%Uml7xiF{1BS#Cs6 zS>#-Hq-N+1hOm4mmq{S>iRvKT*ssTk^`F6tA~c0hniLkkrK)Et%<4S@L}=DTI>lcf zRq3UqEpwprh~IAO;rMC)m<{l5KJfCdGQHK4A~fAixBM%o!#V~n&5>m`h|_yhqqOmE z{o`mrd(0Na{E8&dA5qxPB5i`3;p*7eFJBq@`cvYIvM3D-v|9NRFRynlwfOeu^BILik^``v4-g^7@`)UeG^5nPG z{{6lh;s3m^_RP}IV^jfZ*uA)bqpYQ$NGdrpOm&L7;?)DgG2)bxc33{$bhg%Eu(D34 zXW`L-+8<2`Vx9M!ZwEC8-`YN4R}TuQHfx^OKBD<+y|y-8QBzluL%#UKhpClb`|u~R zd?(bxxmGlo8e_LFJP#}m{>{+)n4rNad;4O_S^ccu-j>Df+APz&%Jroa(P}Qv&fhmY zD;)Yo8RT8QNUPgS`}`UIBZ%eLA*fs~?v0M0yLs971~>piWq}PT1ffj(F1hX#l%S zeHvr8a@T8}l=$L%!?k-fsCTgw)Mq|fS2Z4}@x=1QCx2#-a1>H|g26Jum!$|9jHl!s zNdA{TyrhWuWQ8x6dn;Z2sl$*vPOqy+a#p?~@{!hU+*ag?Z2B_?Oq27DDQCVKnA{0t zy(KG2dxJ7~?3R5+*-~qbVL;+THIt_lu?@VnLqVZ>v?&&}MF*SeS4Osm9q?cPJ*7yPSSXuT zGe}JQp{~-ZjT6C*wG|aA?5?}I4G^zq9eb7HjgE3^zxDRy$AZEZ^i!kF?4!pDi={aX zukfmt(mF?Eu zBANF!&*ZpcpT1AvQP|G8k}z##MnC{8Ez}aH?`p}h5YAV6D_pAq^@bc z?2;*6bhs-`byq&3GG8jaP0Z-|^GX-n?;2^3W%S+S>0OzkZ;k2p>Gova(KaUJwoM;y z$(_k|yW!F5Z(^6p{C)uo=VZJ}e!GlKLKE_L+-A+Ddd01Wi=oLKQpaUU@oJ}Cn+g9D z51Dm^O*o#lo`akE?lrLg9z2_n8(&gnTDxfXyBG(2k*cNUiVxqjl0}WWBd15YWrPQD zN+T}FKc7G9Chq2LyxesZ$rvSo5Bs%=o*Kk9DqA&&llZk-io{QfWaM06u{iFp5|l6K zgSSQB6S6||8TDwkDV*bqXIC)yw3obCGP3B5&fBVDffw~uo}D7qe-z*85GxrO!_rF1uob1^0t3R(Kc*k7R~1)_p8vQn;BIRjWR6)8(Df)RvpxTNh{Mc$b#k z#UEpQ@pc7HK_Ryfl8TCsH~zr-DznIsYXnCW@*HNma`e_(wVczh*4Mw$e@*v(!Ov44 za7nk@UL1s5);@Lq@^iTR()~c$9_fY(Ik5VZ@lfBar z$801whcNEp&4o8e&zp~r7&_DC)kG>uzh{_MW}f@hS4H*7QrDM%^LCMKrw=x#E~&22 zrRQFKP^!&QF>j--1`Ql{XvF1WZe`R&f@tv?ed}!OsfJD5YYCiunR68(o#e?D*IT9U znoV~k*6M!ELcVOM!1TcPqaR+G`a2*^#Rih7Xxa7kj&_STy&jcejJB zBlb*6p+xcT$Y8Asqie^{SE4#jF+^wIPZyFH;lsD5oQRTANbfmg+@0QXVmegt?$XJ) zof4YKqV22Vb<>L&{hK4j%miDrBe7z^TSqP4CwI8_bX=yBSXF(P`0mtEyO&mikLPqB ze8Fz?>_w0o?wzIo6=T-_pd@^)gp_2;G=jIXrxSJUs*C6p)>);!R{5cnIAK>0br6Ts zEa@a~$eu5_Ud0h29@8!#qL)ScD-#d%t?1y za>h0!wHF?zWTUE9o-7+OvX3!GX-90$eNMC7p-Bp?iE`-dl%h{HJ? zN>YCsZfwr8D5pG$!#T?Yvvc+ysn|N43pbBkc_%7C|E7^f`D4~`)0JY)iR%qRrTyto zBzi@PEbr^K`y}gFOZ$0`de|mr&nnpOjn6@)wwu)SaR}i?6jMvf(6e6krLxXqam|4= zo9We6_XFDPrn}Mq>Eq<3|I^1Q$;tlX;{NqcHvRwjxYRH#B`d-BHM3et$9@wTi=e|XTAd85A#U%KWa_r{}hhI z?y3(xx<}_wuGzRth`o9CcD90E&o@cMjIH49?9cW6!-y0ct1X1S8tu6ox%pRT#u{!S z7N6PnC`;wIYD+tXBR4I*UXXC70h zF$>z~Sy&3&C*dx8MYlH9;SD~-(2E#;`5c4gkmrz>RcjH;UBGciUO#X}qz(AvA1lE3 zIi>Qu9nvUH!=i+E5BPGGutW(`R^P>?qIoze|}ZGh!c2Rl>G1Oh(7* z7_oXuOy8AfgU?N0_fB6*N0xAw@M#mL{+tQt>z|u{9QX2%^|>c=><1s8H@3cGn6gn~ zShTl{q*UyQkv3_+eT>&>_RY`!JFXnf-^Cmm-7Md~O*)r*j$m+Yf>}IW`o=vP6&f8O zC)8EBPV<)cZG#+9pWX|ib%oM689&jta0rQVHrKtla(1(ggLTHC&83Bdf4=F;M#t?k zj=c;-ZlowUTWGT+;H&qb2L~CO1@E2rQ9msS2Ah_IXiM+@tSc#?F#zY?&)2k&v3c6! z;U?GT^iNF$dp%JEap)!YSw=C04!1JL#_MTKUPsY`+|r|mIUUi5?^zC|bB`WMr-IYo z=)<-5(T9%)q7N4|JR{2e}@Y1EO8j;UxRC<_6oe<{TKret1vvfK_v*7%tn1 zx1|5cR}L=N#^CoNvuGQwQ(S)CKX1zOlP@Eh5cpv&XF7m;Dzf(M7INM8JRw-w(`;tl ztA0EElhlq0Rq)k?{?_2e)zM8^pXKOX|5g_&DjNCgfAo{@=j!$K^Kn89k_eS2Tc)dDds3e^y=_&HoXT zwxA#zsV($V{eZwfwrq1k#Jo~E5#pe6+R|&hv+43clUwtkBz-s=VNk9>r1MFuND_jEUJHTJ#UtX0nU zzQ@xCj0_bQ(i3BvsuQQ582qq@K{Smc^F;$Jx&!838l2$-5oE}0+@Q)kx zV@bxw75SD^HhXC|*uLCbk`a9$dyhI#d%-MLzAGi_%ZX}g&oHrf@kev}kG;5MREl_^ z{Mpw8J9CNt1}vC@CVXWIHxfy2rRe#g^j8sDSb>FV_OwXA%ztljIz9SLOxOTH%`Y$`^%E1MhM3bI(eL1~v-GkxG| zY}nh}9GQ@0U{O7Bi=F;e+`=Wy9b*$O%ZGPGibTcc6avcX8TD2OX`v#tE6B5konSYQJp4# z-~_!()_i)o+8L({e+nPc<37qN9iy@sJfT~j^y;&xypyKGwt>fb&2Li7T5yjo;({GS zaSj<8*Ty?r6jkUms6;rfS)S?T`hqeG=l1NlHgD`3Pi@569O@dJURrr1V&}>^ty6=y z=rmJrCbyrwpvXsSR-=D$H0nBDKU!^(O*yeO<@~U4v5r9@)qaL)`x%tdz3UX4NslG6 zosF_tsRD=2(w#&PtcS~~%{=qIBK`&&R`uQJ6mAZknmLcGiCK zrm=(tr#2qEJzK}8lx9ELd=2*}%%Y|Ic`84fYKXCvT)kQE`&GHFU4G-`$4dot3b zxB?sfC*w+)RXZAEm*eMN=$o`1nXA%YWXr5?6I*<=QD0@(Ur!kAvEme#aOaEy?J$j-~05RSHgan)f@%)`!@1#?09M~cvmKGi9bsJ zef+1v3kSab-BS*WqRsMNlPn$^pN6AezesU8*8jTP)6ng4oc7pdf+0&}--U1;*($WX z4u3K2Ba=r@4p*~(Ao(i(*pMphaR(FmV-eS%&}EHtY4tvwb9GKiw&Gd8S1qr}lXXDt z-2TGxKXDN3Mf*=6RFeMZ12G`w{$D_t8k0|r`oADJmTKrRBE{Ic`kPH-7*Wf{ml(`b zc69It&ikexSO4zTe%PXRTfB;KU5TL;O*EU~g=M}r&F8f<&5GyL_cgROEwp{@{+P5j zkFmEV=eXO?7tM4Pr7~SF%#h{zWy(Xah?n;r^y)pXTV&$6qbnx-I^YE1)sdXWmXPDL zBxLK5+OdbuwCyUtZob=YICE(x@Md~ScfU<<^pvIWMZ3L`>eSJ-{hdD9BUyGP=Z~w6 z@)foE*%xv8Xh?6{i9hZHa@)1=m9;QcoSoj6cI)F$;lkt$Q7RJa?(c8m+4=!bp5>`mI_?gf zYB<8Vt^F-HLEus@Q(*Bs88LFH}6qQ7*aP&Fa?ZG5bS#2KnH14KcR?OF976jhEMN6n7R z$fwO#7ZzE*wpOxb-U*xIktU4m{;)Gnk(_UAINZ$p z);H$UjElQ>E)!ypZN%r5Pf;Z5S!R^iOZ45nb0}EhO>ZN_7^VOfB2~j3c-!yiy}N3_ zlQnbpDMip#%p;nKa5LFdRL(P@PJ?9mka6dhx)CW1p+Y1P#8yV?_9BKDv|2iq{ z((QWokZ@zZVx;Eb_8znDBqKqwCfdsDtCoPp{?8$i#0RF@VZq<>3@AF`66!n5(KWu! z65Z>^eTO7}XDd=|N=youwp4$%UO^}nslHVBFSh{c#s7Rw>i^f(WdD_P{PP{C|2^p~7fN%2tg(i* z$D?(h!@yq$e)ZKON#%`Ht(e;Hh zyYBw__Q$S($n>n1(badasV|kRMAZr1Q5JsoM}h73g$v$$bgVatX1>%K5#uSrXP$)( zUEDyb39HzaX?13M;3iE>xzjXKnKp7{2>%m?<$?s@xDoyV&A% z^y|auv;Is0C&VS7#rGDg7sQXha=|>-dXqELh^$*5iT5A`?``}xnp4^@9kpoesn1n^ zIeO_uTz7rPj|@SToj>(|OkOmpng<)E9F^2r9rIqzC~*|Ii8~_iL4tLzD)^BIOa0t2 z=(tjaPuA5}K26?-1gZsOXZgL`LVK)Z4m1%7f{-HiL29=W%2Jle&hP2t;k&Fi69b31 z`%itby`D@HRnjKtR?IYOjG!K>csf2e_f@#m*S4Ddt>>Tpfh>!pnbRFJ$634Q6V}Ep8O@s+-fC^b&XC zqmB3(j|7X)9Vf(TjE>~(yL_UJvOIr7-hkG=)WFG#T1s2AO^@}|oB-uz$NjzESp+AZ zzTiX;S=oF_oXh(&=!CRaHA3|qyo9GKbhpzLM+FM5$(?%oi#{bShSh(@!r!S!P>zd( zXV=5Z_i-M#c+iKHQ<!B(&ar1pAh39*vVzj zOi?&m7WHrv{S9pc&m|nI{wSJU^0wu4E{bA0M}zT7P5t?A+2}x-fw6|JXa}P+wwUwR zFO7B$EvSA={~UYnNO7OR50AuWcYfS{pgCQBr09s7WUBa$DDCLQL{UBGw%{%nX}Gt> z_NMVY!(&NNUBguBjGlQyVNRo6cftt7#m~_<*XGAG7PSkcxkhwLVl#i^tPX7qe{ncY zbYG&b8ILZ@EEMK`9_7Y2+?j?w(p^^^GSrWeD^plFXi4+RIJBi`7HIioxYu3w=4?-N zskFN~Z{Q9|Q0T!?6*bRF7Aapn7s}F*sJ_>U-@ccmsoxV(?6}HF7SF`N=r$`gd;LHCi>}Ax1XzE{h67MyFTqnuj0%+ z7B7Scux9>nWVjNxoqDsL&kMTFnY=ImsHfT{5Z^lG7+@3}F z2n;duU~PXuY=1;3E55~!$kcSay{*7nc>3kNFO`#9A35}`K721UlBG$|kL4Q0C^dhQ z9drma2u5gX58S9Rh;a^fJI!M=p?bZoxjjkTd_vo2P+aw4yE`t^L3(=JrHfFT+lNM-Ufd{I>b3YJi!xiI1tK8n6>dV=jC%Pyl>kkxp0n~qHi2El3^L*B&{B$f^}sa z#G>Q95SR9RSYG+P&iP3!i@N^8(d43>&z1VuR)^8~V>C}pzePxCdL1m=A!{;E@hkK& zw@|*79xKbgf7hr;_G#ezpUnS{uWt;}Bv6(e+qQRX+qP}(*fTr+# z`rJ6@zW&h>{ja;Dqbn=3Ds$RkbASq-CjX>z0Y+@# z*s?ynyT?s9J0deUyu1AuNTLX={rp!ohVx(57%t}jEMx!fHAwnDycUf6#=mJdxEx45 z7aEsJAY>u6#J>`Cw1-oV9f3&!wKJs(6<%MzNIOsD-F_XtY(5+>^B`uY2tTj~vAB40BlZT^scEEi0OULp7-zU} zfmP98%Pk7E1&|5(sB?IKeVwCpt1o4d|M|A~^xN}Glc+@&;w zH>-2_1o;-LKFY_LQ`=(`#QBJRLko`TpwOI43=d42)9e+g#83J(4ZBKVDYf9y#YTz1 zcz_S*Nh53l4n)GZKNV~>pqx&X*!1Ty^2z9ExaFg;uQbtMCV8LO_sK38{Yk@5d?`|U z&UTg*hx~_5o9!W~79aYI2v-Wt~}6~6s7q5z;s&;|<8sKZTjllIFB0E#bZVaTMzJ317} z9*d!~@9jD?qcS&+=u-%lRKF^k^J1N7L>h^UJL$6g)9>$vg;X$J7+H-6Byfx5v;p?{ zA0lV8iyCE3%$tH$6dtT(^x>Yf=+x;F^6@#6%SJmnTl(M#RJ~5Nl2#q)`IvU$uL(UU z=-c@An%!K{??%>vpp)kstFoKNXf>S=~-$vkSs`-*Iqy$l{E z9@J&L+cZ_ZVsUtsG&a7I#0FC`t-_8&V0?S5^Isn?v(BN2rJZswX=Q3(QAd3Gx&fZs zJ$QwZRvZP~eq>V*S@KZCv|QU5WXmddwkXtMWzlJbWVKEWfB^7IZx5jov<4!b3+Fh| zHnlIgW-Q2$GQ=@vvUvrekUPwcqW;QuqQ_%7>p>A`w>Ar_;RK@milx&i@L3Qw4Oq*{ z)~eeXv-<>~drPVEDl!*o5M~f_gR~k^Pq3RcEy>|Xv}R5*)=KOrPx_O0_x;}wp;*wH zY>9t2tcE}b0dg(vp&X#tnT_e^ZW2qZ$ha+rKPFUL($HjV_Me&4iqQ77*cv8dS|I3; zC;9LXd@glsnXZWn8d-{sQVm!TL}7lJ&GNb-^iJV0rT`nse7*Q}7dF~H2!q$2)gz-# zO;yHg0{^5Wp&{}B(WB4UsTDpnUeHejO=Rw5IFHBS1!x~<4KZ_L6dM->t2-fZGjLpF zzGk>_1=uX-UYp~OaEMzcts10R)M+xrhI+kqv4+o(D-`YF`>LmSzTqG*IX_yXQp?M; z>JYt{-piD`j$>Cjn(9q~sonM54v78=&WuuKk&~8k&ro2zYbpsx$*oDqv$SAZ0?1K_ zd-pO#0eVeh9LHMJn+7utgUwq$vF8^t{V$-tX6& zEkj3|r7p`hTG2OjeT;ivA`|(ofshn1)%3$!!&4_tjWXv8_kq9Ze-+T*xZAqe$mC&ICF#{D0VMsaGqwrTc^ZS*^xw-AexwG9Hnuixp9vRj+TKzPC{u;=c-EJwey%0Z3 zaACv2t+N(Si?7`v9ewy~KrO9O0Rwd_?0>eD2L@O2ez19b7kSwe5_`i#H8uC^ySQ+- z1JDn9`}?f++USAnrW_YaOy4}LD*$05I(2ZDNm8sC*VVNxr$wXOdaygMY*NdesqBjy zLz&WKrKU=baOm-XW>&$sKX%3t1ySL7VeW7$*-%V>k?%ej1L0Mspx1Y50@wCO@h!qg zxhw4`Wjm)Ij1_j%mSv(fx?5SNQ+boe0^o`jU5Ab(^X+vhlw!olM5b{6b1N6@{C>0y zb2fMGRLgue_=xzKzJBSMy0wD+Wo>6}vzX7A<>oo!Q^`cR;pu~!+uxET(B7ZI+DrTP zee3IaxQ0L0rbzY@M@GA>H~KvkkUW8q-9W<1%004WQRmL-%lYMyLt`1c3HZeO zG`aukR2jS9d^fNo|C{J`aOTdk{QjORup?R2`m6NaK;TL^@}$)s(3}4D^>}dCB<%y$ zp3dzcM|4DA0uQ1oB%w;6AGb6}NggkE#+x~yVwH3*R5piz--Y2*Ml~Mm`)o7z^$qGA zob&n5)$FfJ?mrsv{%6a?%*@32kLB!tlOf&OGKqL>a6LD*w~nn5>@7zWqpHAaS(*qN+F9{WXCHq=L12mY=vWmmNc||A1Z|aUu-S7S0;f^X9zyx{uFgg5Qq{@o;RaT?C z|0+`o-1&{b(qQcqe2!iH$nQ)Sqvr8o@*!BWH-N|IW~DX_3xp#=ZfQZvVM5EuBIS)f zLC+_#hgtSWr+&A$GHpuNVqAjft6n$Y18Bv^4~VcY6A_8-YxIVHkHQ!6Px`5r``e#; z)QWg%QN2Jn0Q4UpPl}=Em>2i$-NKtksa=(V7s4I@wltzy$;7O)6x^ifQTkm8c(CF} zvtprGq|6I&w6$3C0#}~aCDa@kRG^5V1`z)4ji7`(ZdNFLCnp1bGJe)B4Xe;h*bjhj z)#-=t^_em8Sz5J(f};}d7(GpDz{qexeSk>kXxzH!-`F)j2eD1GpWmra2#q-?K6a#L2}#B)ibW#y6e zXa}aHfJ_bT0_&GUyiic1WNy81N|C)^zgeyULXq!nA=;rb+aq98?ux`TqpY-AP2-#9YBX6(6rlD__L37oLgnU4s)ns5-<9%Q?=I&;Y7&)B97KCQHeT< z3&E-@TLZDpH^SaJ{PurZwVbbR&*NNIK*=i7bM~k3stxIAZ$u?op;nnZ! zb|DYpn*J$y!JY0vkso~6Jo^flUys%a7>1sNV0q6yrXQu0k?j`IGWK}SQls^>qGgT> zm?5A!@R?}Hm z#?;p>^9NS=pl1tnFz0eL4B^0u}kV9qMtGcG*ump|inR5ByO)9XxuQKLxSoX$~;K zJVr@@u$Uh}ldg%VmtEr^YUL^L ztD&8`VS&N$kO^iIK~!dXYpo0W%JdabZcPC9Cr}X8Unyl|y_^#jei z)uwqnCUOUwvBPEi41P;Mp%w(mZM~X^yJrd~uPdNwJOx`>*cnb2hJX_TsCKo+ArEHJ zo8m2)>}qrt#@!X)LTrT#hZL_VEM&Bg#DuL4!8eZ@ibonHhA6!CxovzZO8^l)3n@#D zEbwz_qZPKcDRz^Ss#L6caHyEYCMV1)`5ZHveqca2{)`GK9|U5gSI^f-K8;NNzWF5lCc@j#=9_-S7k!SO?~sH`Xg`3lLl2dHA1(Ezq8 zImQ5-F2PN+d&n={^-2Tbf&Q)R0h4zJlvW$6we2CD}gH?33?OMCOU!eD6rNt^aG zbzxXPDpzkk`06a;XI)?0ELxwJTmcEoS6(0IYchPdYw&ba&oWjFAQYzGM{_a-?+fsc zN#a*JLd~Ph6Dipny-q-u0y5t?q3c*Ny-PaxnS^U&oIx&mfpgqM=+pvl#ba)WK!$fl zf!EW$v7FX>HA%Nx+0nI*)f@e+2&Qq}EN-i=>Rf7wAw*Xcn2RzB9_#}}p6%yYAPi?8 zKM3{Qx((8czZg~r1blV}C7A~b!TxZ~U+eiu&pNpqDL;tf-@SGm`SqcB-QnpN<)w{2 zz`f38t5<&qx8id; zmf%c#OW%iuL{&;oW?~`W^2pdrP8(Q06cUkCKmgIr< zlh$%M*bNgm5-l4@2R!o0RdaE@ZMJ826MwxrxNhN{q@rE)%8Mt(o~BZ@j&0293c^rimdv&W|U zAm^awbnlxAz;dLH?NyD|IOl>yw@6)pH#cynZR;+T89}A!zFH$xEFoYmAjICQA5q+ zagVZ|yg^LYc%up^MXkoOApSQvLeX_!T%ko>{JY=?fcc^We-YW^GZXBdicOWd@viRi zC7hFEwQQE_PBl=RaB>uJ6G-w~{E?tm6ix#seH3u6pEck$EQq^90{yX zEPlBSSb;6Rg`c^sCTj7{Et;{J0?ihuRv5pYp;SLtvGWI|UlV2$P}(6?2miQo%;YP> zt78hV05Wb}e+S4pC9BehMXP;4U`RA7P;&O>p{D@BCUA;wy% zZys`UBZSnQp?9ja1%IWRl_~HOti90IiXh-xP(UA;ul!8itIdT8Ove#xF7f_ZGE_^b z0ijrYH0fqMoX-fA4&)K`3VbgNR&qiKy$k4wqI$VZ|{=zaQ*=uS+RazVZ~0zs#$5`14o zB0vXE{qTpL4f1aPnlUzahPxhHyG-I{kC*9rHq%e%l0%*FvCYGYc7MYl0$Ufvx=+KT z_A2UneOo7lQC&^R8iZUzt#XKTZ-wT==LMK_tua}owi+0hZpY7rR_PI`c%^sVnQP+v zW`b4v-(y3vssfB1w_LBNb~YC~zX}zTcL33+orA3X>0hW!XJ{2*uQ5pFE?0zN0;jCf z?M@DV_Gn3SSa>pFWwbwh`4cJ;p?8`+Ti z2LIJ3!|~6&4>JoV)Bg>Wo3&+P$y(uiW^2n#*chwPf1I;L!v94Z{zRefZgwpEYx-Wm zqqsa{#ACgPPbn3}6&X)&jHfx&QblF4hY}ULynJ7vDY4(}2a}`03;9lZy(GYEd$+Saj)gZM;63IU0uhPUwJ$S_b9YNQcMpb1~{yl4y^3?Zsd6fG?F{ zfx|DooTKlDLZy*(DAvgLlT`cMFLCNUkOVGPA@K02j3a7)|9GW9O3fbOx+HT02b_Fa z&;4BzpBGZmtnh+~`~dSc_XvLoQMK8^LBuk z3_jaa=TpOA1@)Ig;aHeytpz*q6lLag3I)WIN0#Ok#FuxMQsZx=Pt^Eh4;C=u$89oH zwR}gfh!eI3ixQ;~VO*=f~gbm%rg{7PvD55gud@1k{YV z>LMS%3wxmALA;>{NIZ2?)K^!g?^;;~jm*`Q-RB*7xb91ah4M;zq3bBl+?0cJfCv zVwkBk_*nt|=MY{^0B|`HRcd}TFd6{XQodELMNe=fNTri;fSbim>6A)lK|k?B}1?M0ED?BB>p^h}9N< zsnVwZb%RySiXy?&J!{>RBv9=sh`HE>PmNIqsP6-%4zbjjUf)g8i3eSI8yuBTkv5TM zTpN0(!6HFh%hbpUyOpGn@w^gqKe9M1hlosq76Ksu1z~y z@dsv$dCqRf%EG#7U_{jxtr@PYx?C~4JUoi`K;%9MQA)T(tocMln-TOp3elsxjS4t{ zL#}q~wgO$RE@8EHb&`v`ny(OZ9HpQPpq7e+mxg*hg_6Q6646}^O+O%H-?GBqgI2p$ zW^J&v#tnyQI8~+D>|JWZZ0sX&$A&h(N<`MM`bRsrPquH&$O!?&kbNRJ!c&(}d<3MXimIOjs=rkqUn29Z?8M$!5?5K}e2%eR0faPr3j~h7HS(J~uo}*f9BmQh6A>2B?o~75Z4W29Q z)WO+={fJvWyNs$JYEPMD9$1ZxaOfIotsu#zbzzF8x>(jhkdfvPz8&-P(_k*#D(S!z z9c#V7Mg0D1FkO zHeofkZEd`WxC;+^`fJemoiALAu!r!>kq)JgX<82Q(01%0b@Il%8komgOG>Vo$?fZr zr?t)!5o@HJ+DoqXqH%F>g~Y0~Myqvx$?>@8vap;RSuWTms>_KZYXJ(TjbebxKe2qH zB*OLiEVLM32Zi9t&%U+2`fWOy_e8!e1Erg(EO_n!(COt7+!-5K@;DyN7|+Xh|R8H zxhY5ZxRB#!YG9AXvPj!PZ(aYfGR?f%#1|HQ439wCwremycN@7C>Dt{arBij>2x00{ zA~20?W^NRUr@tlRt`A`t!pQOo;*PY|=q@0CAH=10ZIOvz0*@%F0c*_?gQaoz>dpk&`qaZ`9^X-zg3 z6jY0_-|M(zgLgX^!#_VUe~rt)t~+LHTD z02;5!Hu_Rk(Os6kdi2uCsYO3++*eSy2@G(>Ez{9LsNA|qHLfQ z0G-|f@{8|u|1rgp)`Rq28#j`K$&-+(#`83bb$Q-R^VzDQwsMN}&Co@Go2zJh=%otj@Ro4VZq%|Jt2UU1D4vi}CtBKkW5oU4!T;{>C z884wL3r+-e)nxkX>y}cHUzJp3F4;A8OA?hW3Sr4~YiynxhLXO~je|yDfBf}h5npaO z$F<_NlF`!Cu~wd!A4NXY)=bxgSB-G;eZvl;(Bh~8vfE)t^7sgjT6=!@U@ji2zD>N~ zvk)&(Cg5f0!S9RL@CKB2S(O$HFdK`Md3N$t$Bf;d;v6jf0V|=l&9ThHOT>=2Za|%b z?;n}q-$vpvKi1n!iZi1`Z>Vx2P0Pty$yWDGfRDZ?JUgrTKIc~Ab+m0oQwP;;8cb7bXZ)YK`e1?>ozudp(DgTbr&iWhqH(T|xnuSEo3bK+CAL+w^ zk4Q_B%kj(^Sa6Ty<)Cj8$<++AdP_R3j*rlfo#o^>ivP}0YBCLbMKH#R&q3pS)*T9(mYt-NMCG4G+}KJ z_d(4W5RKm#wZP|&I~&zLfsQPHE@bbs?&}M+!E5jB;e+%Y`(7I}8L6?`tLyuE{I#4q zmjg@&P)M;l1v1|I1EmIKo1pxJoqaDWjeLy6eN)<5s*RJlqp)1YQ0Fy**9ME3NS{J) zP!u{kb7sK#aqr8rOW2(U6H`fl0sU|SeKQj;>8&F<)X73-tU?o5NK4k$HBs6`RbHNcQ*DX!hnh-U_#fmd9{l_l7bMfDra8EZG9vO$A`y| z-zb!b&yxP66}0`lt^MKL7BNMfIr#7)b?@F5G1dRFrS0Pv!)=TQIFF_{k-wm{vt27H z=H>`5%YGgF1|hZTl{z@ynhz6$+RGF|k%X8(o`^j4cvq3h_awMoqahXv==M{9TemJg zpeK}be(*PnEoO8i7<32Af$bAX(EX}dkvJNbdGRIFwmQJ# zfuD-(&0F&86wM%(W_p+mJ$AP&W1`%3S!cgVoHg4hkZ^%KfTjgB?^pytUs-s7=!`$^ z^7SBCw#ZjakjV3hldEdY^Nm<&1?^c4I6Zh($&iuT!>tj8e9~vCSuzjTux~NgX!7Hy zuy(1Xswu2Bun0as9r1=-1G%afK&9@oD$oxhE#xMp|JgPuUMJ_E)dTsg!sn~a_uX8V zYP7*ZKP6G*`bVGh%{+{+w2vMxli=F>y3*Nn z!fi+PInmf-%7jFMcj54(POV(oX+EgX)omeUuUr77bNo9Iw(vuV>g2}RGbELmDx6g1 z;F7zd;IGU+&*}UYFd26qP$^HzO(H?uP6_lylyMAr)}0Ge5ITW-jc_E}2klO{6%sJ=w!#VLoDUKY zJB)f?mjag$voP#*ke(~;w~U}1rxKCBQyOq}%9xj0w}dw;+IKSSmrE@#P;uiDqoksD zCOu?E6B#?2q8vX`P6(Vpff61^M?rP_vBEsD5916FrO*K5glPu}J`FMXqcqM)?Z`ruM#`Q%;cmDH zp*{}~Wp^5Yw-Y~RBtb2<;%vu(2cD`|lN}0)RGo+S+*5!aFt+)D6=KK`;ehEZw1m?O zc2X9;%|-{KlaP^OgJ?B4WQ+5Jj1(+d$!0S^y!V+|L*e&s-Iqv8@Ckm5DMi`H>DAM=Uw4NyTo*lv^hq?Y4-f zu{@thQFylrkey*LC)`S;KzK5nXYGEUEiI3<`|$p9^nHC^JhV9<5s>}%ab)*-xW}$| zFrdI>`GvyE2>yZS{znBh*C5BB`6`=-es3r8VtswznBO`?OON%SXcN8WFweQypbHcr z=|Dj=9=~j<@=Y^Qs<5rpaXCML+@bzyzYu)h`1&-(DLNz4YACd=TCsl|+t~Q}y7U&$ z5^{C3|&b z6Z%-Jr?(sNxg7(^JM#Ul@$rpu`Hcnmme>$@YUo{C1V4&-)sVaJs-bB!XpjB1HCGzz z?4m@Fj(e@>YQV9nw9LaI%0O(mS??6DpHtt~1h3N0s$s7rB`;AfqeEjcT*yXntx**Cz0U^jgmZ7aZeNH z>icPn7 zXBzF4!wMr#Zy#uj`SiZ~u(&y3)KRO|L_oe0Rysy!Tl`J|;PpLwrd7GOTzjajySrfo z_^^BPFcQvtdTsD-mIC2$nsH5a=8tiv@8%Rp8DsNky?1zVPOW?2YWMDUj_u8zK8B5C zu>36vtG^+EVhL*-xrIR|vcPEnb4hN#Be+GoX}O>p!?xL?QcQ<#!)hL&E@Rhx_`gq= zb&I?Z$Ke+*k;iYdn2mtwI9~eM($vW&=C8#+%YR;>*)YZNyzfPe{zOoWhx7d)^PKJx z?@!xzo``$jxjGCK(3Q*FdX`YwO@AUl3tic7AA*lj^pSJHj1e+4eNwiB7m*PnE6Oy| z?KL0;cxcidTKBIFg!RCqsc|;pg`hzC2_Ir(|BMFLDW*MQOnJQ3EK;q-r}Re{+ygc= z^ah*22|YX~ed!|sH58h|xH627GCcp?%ng(h78Ic682y7de`s^t4R!{}D5yE{=XOw& z;=NikMILZKxJ+MElTn!UBhw>P2`>;vc@FzJAlLbJYgXL@O2=`6-_;!WI6$*B$1kJ~ zJ$yBd-LJq{Tbd6TKJHUlt_SrDZ%Af-utx>LFMw7hu%@1@THo&B;71&=Y*LtyEI!s6 z0eW~SWw^*6dr?Xg-wi`(O-T*@C^H~^661CoUXGMgm4rb>2#1X@E+UsM_6E;o&(cyj z05E8}fSXaD%IPg@ddMwWg=v37KT5*MSZF=m9#v4^bVG>nusq(|6o_RSB?&~_3`rKF zl;iT>TO@+g+UO5 zRkhVhF`JC>@v5M+)EY5MPx-+hqm|MDpiO_bt>>jEALfrKcb>@H^}h5g3{zFk!B4F<~3I8r=Vm;^~tu`r+Ya zTemZ${)}>AL<{O3Lv4E%%c?_PFsKRPfFqX{K43myV1c;AP-Pm&f+bwC%l)SepxG{| zAm|vjh$!1`2`X7f80Yj-;Pv-Xlx1`#9CX)Fx0N^;a(yqcnw*CMq23RLE6Oad+Xud( zxi!^ckCP1nNoq>dX*D{xjtC#}jSvWWd30l2X!9(T0H}b+nq0@{^BP0W@&+9q|5ZOq z`Rvo!M#rsfQ5O!`<3OKrrsWDe^Rjqp6nu<^mpHIfa4GE57?jr!0L7n$j8I2QC)^rV(O% zXY%uFwZwg=x5-xIF5P+x%P>Krw7|Lr17C>r;{oRL1?kZN)QlHcC7w*(PN3m7shshn zlrn?X2*{f6@R9_(8WG~>mM}e z)|U$k7%?%$hNJ%9u*n?}MgI(inEvLi|I_*nGYj+o$JVA>TgQI84cYglcCHXi6fSg- zxLnW1-^MG!xL%BX#xioB6H(~kaCoPq6FB1I9e;;Rx?pCQ{mp?$izL)J*IwMWz4r?| zgQ3@8{8)xGlcVw?_PsK-w%QJ8IIr6FITzPY2+ql(3OxUD?oxm)6hrLA2=KkwX4~5P zc7uLfZR7W%4IC8BCNIf2-Fs7uKxq09Zt%4v=^tqQg_*L$ArFHCx4Xl3Q@f+4@Y9%c z@8c0S$vsfqt?YH@mT&zr@r%n~8s2JH96(s(n~(`72>j7H;(B}aD`Dbj#)sQD2Szn=Wv9Il6YA> zQU28&T4m3TCu7U!jDc*|n)fR|{}iOMBM~=nU`F;Y!c@AZ+8~xA4DD^B=eO!3S@N7?a*zmSu$VPHW<@EfalPziycp(^FA zulP0pkW}|k#E^2$G1DmWKHGa;^9$E)b&Y@N*PDiY&FXZ2wMTG#c2bU(-xf&QJESbKurjsD1$*L3UIOWaP*j-~? zjaK@b>SBBx5W#NV)%wFdK=T0>3-BuGj8X(8{kI)NO6rgHRRTs(6Yyy>aigumS;4iC zEJe8KSR$K2nqnSEBV5o+2rJPw0?SuVTW+}EHJ2Tbe89cRo7N+s7PUEnU!I-eF-;DiGOWy*8&bPM?Wg|XuPo;PDqR(i3F0FhVwihrkZhSrbn{{ z|JWVKLRymMAq~XNvcB!w7~Z+naL$yfgdWQqgY$Idu&gJOqe0w(q*1J?A9|N5u1o1 z@ELd5*)2l#mrjEW=V;@|=u6SZ+Z18A63gOVbnL9hWOZLpx)5BJA-g3KY?o zm^&+}CKZYyoT*xa0Y(+Tp2BeLHF0?D3$9t{*0AJ2hK{0mXH+K0g`-V)@+vEf1@R5p zn2PDtCuIf#A=ubMRGcLwm~4P9`S*KH1c1vSUVDgEmYb)3;~AX0%mS&37usk2WJV*z z*pQ#MRl8z;m!dsFjMg^6Yq|W{r2y-?6Z>!4673bc$8m_w)>Xi|-fZV~@n%EyW)w6F zYz|Fi;-Jo6iY-jVpqV9kNa2;ikXak89a$*accc#98TkCTL13rbFhCdC zBkuTegBut5f{x7aCFTRJhGvkF6hG|&haNR$@3hKMe00!Bpdfd)V0yFNBmFd;G)f!A$q%7fq$6u<%jvaKMgMPEq`@TN8{=9iQ z93*FMg~|+_#hvQSTO95abfdvcHn-cudUu@h@JM_a;&J~BFLc?}5@j2it?N;Zq3AY&p50YJlDa^vuY>7Z{f;6uCl>U7|v4lCZYw3Is=> zuA_1Vi68pn1~k30g!@oyhQ#vb6mlU8SWCf-uyTnwf6L-T7Te?T`Po1>)ImGy( zE!`bRH%#6T-td1t(|tWr0P^b%DkI#u46Ns|D!9BWOt-FSzTx}dzTxtlC%fN9aTz3& zYWe-fNc1LVwMh_M1>Nc6+ZM$cGiO?nO9y8E?WoTbQ-sPJ<@LcWa)eflrHfX_ zdp&DA`A17k9Lth|AcB6fw#gjf3xyDSv@9Nx`zh9}dBv3d&QurS@Yl=soD;?wYtycG zEl%UON8-aW?^HTYKX;f_pU@aM-yiK*OJ7JUSf@{5euZQ2e@0r&jQ>bG{nyk!$6w2( ze?R_X(fNN%X;*)d7Je(T?`rK@*A;LVtNmakXsH9ty4YMnGhGp40wJ81qmpF#1sdi3 z&HG&o*^5K0DLU1MBH2CHPd9T;j+x-CQcU|Vl9Jfoth=*=p;8Tr++Bk#J|D}czhc_P z#@T+U6x1y5OJZ|?)KzID;^Gm2cK!GEFe1&mOFPo)L-PK;G_oF5;ce(mhyj%xG{*OB z=8#c5nZFzc;5cvKSM^=!ZU%*W9$BCQvbyJ6!Vnp&%ElPc(h&*UbnOEvmyjr_9NMZT zxxc8aQ)18&wA?Q|w8RNHnLxMUaKzONdvQ1tA;sbFSC6+cJi}6ir>j>0;Vb|EOly0L zDbTZVlsfK(s5{f!)$8+(z2x-u6hv8=T$ruj^ZJlGqP`?NGm8Klr7jR+6U6jj@a^yg zA^Gsi*EJQgs-8)5*#xB=1M#Z8%^;v(j~r-@4v zxjJU$i|(s^OsN_#F)|0JILbP+)nXDeE{a-Gpk5d1MCoF6`MWO6*v2YS7+>^ykR}fu z-6jozmJN(-ZT_{r)}jznKf@O|jr_1u-Orz5;V&{45{v#+ivNm-{u*OEv$4xL(ONVs z4z^c>jSXze>&)e>M<8sfAH(s+na?O(LUdg0E6J}lPmrvzBX$Sa!8cyx-IelTDgdkQ z|DDbz9UO`iqpqkad`u=5gSuSd!Uf386TZj5t#lVQuR2 zMFjUV78eysoS3(oC50WAMXeg($etsiU6gU{_zaaMM#aTDqZ2vkiZ1J>B+Kr;DrlA2G+7vtR*)uB*2-FyQz2pHU#-mM zSPneK^qK~UXleZn7DJ7urou~h(HbXFhzV~ab9y{XG(yo$Xx%hq^V zgz?$7k`AE+K0A?mj9WBLG7l*(0!m&0)Yx-CUEkqTxKy*!n(9W%vpPk#PV}%#Va{}TsB^pjEy^0*J{a^Yq zIN2|N4vgu%^~=jN#EhtA2g>xqq5T$+2MiwZ@)>I-D`)E5u*y&stT*n`j&^XmI;_W9 zj9u?l;G4%rFCnr;3r-vJm(5%G5Fy+i(xJPuxtIN2_&{MA^R^F$_bVl`ol8~8u@~b| zYECa+PY+OJ^^%&k$25L9f*)NIxyswK z=uKzY2jMuwNg0;T?Fs6% zKAk~!Dyc|v9ZR|j&vsRSdSkvrP8`JCH@t%t(nwWE%*7}-NP;FNd-DiBouT{ z-24P$!7+7*Ade|DLm=cP((Qh>aY3KH}& zR~jE+h>(rG@EYRfp{&zCwQ(c>Nz)Yn%DGlLhvk~OT6WGB;r-FSk zGwYRB5?ZYulA+1oqbv%s-t`j!51=d8EA>~yrm36IG)i{UE2MV>*z~GOMNPRTb|rJa^=%PcqXNlaEIO7w1wu3=1egHjGDb z=R9kt%fK8?kzb4}?26S>?CZ$d5&HvK^#c0!ML-)w8x3Axg=v9y0|I$~jssjJl#i-Q zRP&q$&54rypc<_KAf!85m+r1QGz%}Ta^&mI)>lyDi}D&u#67UTBo6}FKOndos9BsT zuT}5dQ$fKniguGU_H3>%PO^ZJw8G7>rRzRNd)f+sW)C^s336RXy(dC)rkNWGNDE3Z zsI`Y~Y@LU)#BAs~;-~DL*V9-|Eh-rAxG3=YNXRkWE|OTws>P#AanW>X+_+=c=r1bXly+Hk^T3 zmrH04rZOsRh;o`Xq&+`*nsRcRvb>tRImD&R91nb|@fROZD8OxM2<<=Rk89wRcoZ(W zXk_wW(yBKDekO(QK6AUcgs$a?)%2$#6 z3GV6rTWTJDCnHho&z(gesI9DD!Rx&U2itC8K(7M>M)Y@y*e8$6I<`87f5p1DA+9of^(K0->L;UHy92%&q2_+;-RgdC|KMx)B+8&+Ma11f-H)Zn82LJ!@ zb&k)K1^ku{I<`BuZQHhO+dQ#tqhmYi*tTuk*7Tj4nVMVm*8L0i`LI9y&f04|507^3 z9iWFdhw$=M_VE>JJ?U}56#6qGckc)2s1)I~qdf14xc=6mp>BCZ0YDTLPSYu=qV0t> zfr4>iT97ML5xz6zlj#}iL=@j!6NwS!ah03oDuI8gf~EW2QDLGSTwa(jF`x0?ww=-w zR5bDSczlN4^o$uD>6e5~8t{iZX9`b36QE6dcBYM-OGoO>HHBIdzE9*#B&hQM@g*}u zq#WwSrfjvxshj+wg;YMh%#Cp-o(A?ay01X6Xb`_FX(LRtQ(9TPm6H}q@WHjxPriZS zmF1K?zB=(v%#GcTE0`Pt{HH{^%kGZb)d?=bYed2@IP9uM)?^5D3eaw_J&VG-;KGd5Pz^l$RTfGbal z6%$W(-uxz@)qcJR0uqciuG_*_&(30(xQ4zmN9AQgwxXCA+}kes!!ce=Gbi{DWfVkP zRrDLst{fmWbrM)+;+|dU%AkB&|F1i@f^w8oKKJ0O=xeKX8w&)41@t7nK<%geuCAO15V#bGT0qtHWx}iwsTpeNa`V^_RKzoUewFqT}U| zA8_^Ku@k)*w?|VDtrYpzRPSc7i{y;kxdK} z$wFf@eneVsA21aFL-UCd;;t>zI{a`p)3rN{h~fFzdC4Y%tl0{~MBN0FET(IfIOmrB zdXUy_!WWnfY%9txdn=iK|C|?z(ZcAoh*?+~hz>XDd0TxMUW!N?g8Iu00yT|VDmHnU zAqaB8*l+UyoPgjeIwNCLS62KQB|6y}$TSo`E>)5dJgXT%<9t?T8|4_8kv3Z>fM`nn z%$t!&rpWYaODgL%&w7w}BRTNM1v*ROv3}C`af<9Hnx8`Ks508^9OBUK`^@=}|a@=V2g$v%Y?c z_%eORI%x3YU~$4c5wq#7#PQQrG-yla-z?GiuhJGm;*D7_Ye^k_<}kN}C9Bq1-N&jv z^#qb5(;PRBM#@%B%Dy88Xm#e{oh(=^=h@Yy4K--MDY11(c{9(r!PKNyP*r~Cm5Hb> zsN^nZS-Dr5U_tG+tIrs@p3(=Lf}Uwk+4ty$8? z%lOysEeVm~wv3*^Mr8gICruBe3i|ug5@<~>X(-|qrs0>Z^dd4=>!^JzBOQBXPtf#*jk~*jf*5sw-Z0xCH zQDu<06A@(!hkuf}1rZ_pB`vS9Pa~VD>6u*sNP*K;rVD9#9b{6MjqIkXyvLCHIK99B zPDj1TJnRiulbWCzShFE4z1zOO!$D5y$!5l{1b8W4FH6-lfvcOJL{KDAXMs?Phbz#;3-*ab!UP55se6I&h!8COGP-Zbm?5CGjn`AmksFB2aToVJ75hdz; zAe@7=f>(2PYlLD2mUZTotsT>ZUBTFiZ$lPn1Z*TvRZyOA0is6H%WUW!rDXciVSG89 zd$7AI4Be~V_6D!NHsZNG4+@%3Y0Y*33)z#D7t~bvknI*ZfJrz`3)sm{Z3GEZ`b0H=HJrfB{qiNoKA}7%U zN5e1Etj(nqlvW_c3RzV?a;L`YpY;~G&f&3!lcA7JvyT3(ZI-2twI8B~P|9Pi3BJdf z5rd;;NU%N}bf`DHV2W~$*?t8;ji`1$B@u)#lVjIc*-fOEi=XtKf>oj z2knjiqVb)eBj&c3t40ByQrZV>w#V3cj)fx5zgW2c2u%RI638S!6N~cTg!hjBPzQru_nUdzYZV^xzc_4nT7($ALHd9|sN@w%GM^F0jbmeFYqm$fPD=4sm7oM%SxXTeZ~V zblD#8sKh{XV2&w#xspBBT-w#5r-rG2ajD~oFFIdog4x5yFuVX#H-F%=VY}Mk8ql28 zl?H$9qP9)L0BQZk{R)uZwopkloFI4!^;1HeXco7}E$F(R^OYX|QX@dTJHgLT&r!vh zo&)0o+YNYj_->z%tHr&DK*~8Ce)99skQeyy#_HxRqwD3I?K7$p z$sR9M4HeTnC>i9^;Qa<)BD`4r4<{A#|9?{bzl(~K^MAUiq?1tFkp6dRzjcc?xm+D8 zjGnBQEr7SO5Wd-KQR!AY3k#<%^Ip(~=&9u1spIP^xkUmN z{2yq3`}<{r9^qdOU5X}+w0#MG5QC7nv*r6ezm=-V?9}<;2MFE@lXu7WYx`K`*K!H) z@N<63qlS!g3WO>`+U^G&!a_f~d41fSPsKTTVeoZl7b*DV`o&1|%dL;sxxml7EFh@w z(1&XPyE(1H#6M7CISK8V_Y@dZp~?BefgKBCzH>?v7_pc`&s_p7{UYdOMA8>PWD~ef zMo7Ofap&g&JbkWBeOn0J_+bR-0*xW-czvq{I{Xc?Ck4i0^iBehc-+0e+eiEu)t>>3 zE$NO-sbjK3g6+xR^ZgBq6|>V;0AJq71RsiCCHRdU(|OyGt^5g1KiwbtUUwspUxGZJ zO<}kIED#6A5A0u62(d8d*n|dOG)?Z-zpgpqi+*Ss2{egCtP!t4LH4`-unQd8AaPLz zC>HgRu)706AUFX;z!r2+PNfYf9($$=5%c{V+6_t4YrzdkeO*G(2W&r~lSdQ-!BwWh zEztL~+O0Z*oFjAev(PE(3TzEb=H=P-HgX7kV(4drU`Kvwe3Z;!Y_#j64bJ`4thhng z3A#ulwO(z+8o3V~tP@UFB)~Y#csr|^;mwm!8QX2yJhT9qgmgWSJrlVj&MvG~==<_K z0%j&o`3s+_5@S~`ixS~0ytCfq2?Q{wb>u!64TD+z@C0#ax8cUW!JdQKX1HvlGADz^q^M?|cycJq zedtuIRBZu@{V7_7f1q)tgOhBR?Z+>CMjlU$8AvOvRxRnV!k6Y427Ts zTOnC+FuJPU|3x6}rwi(RB7_5Vs6jnk1JBd;qnAySh@&RZQ--Enl%qJ@oahxy)lF@X zG3J?8v1&tz`4+a2l zY=&Do_2xl|T6Kn|DXT@@%|4=9+_I8H z#ReHlm{rmGOy@%{FbCaoRo-%NXF2P5Lnc5Zr*6AYfWR7D+0 z#E@w{>YqZU4y<5~{o*CAi+;9%@PE5Q_u}XFjv~Nr_@z!Z1{Bv9Qis|F#bCoQ>3s93_9wC8a99% zn-0BFN(^JCq^$KCZ0bDIf@xfh#B*Xs{t+3*y$yRaD%BuXbKSy76T1X4tV$KwEW2P7 z@8DQ727hs}%`{TNG6QW|UCy0?!$FdA`J~XSd@CUT>*rkUu*3Wdx5j3+5*cqx=8KH0 zHE6P?zl2=y0xT4L12VZSf{8cR+z?=U`);;252BpT_31V`J$Zn=M#f?vi$o{xq|i<6)ZYdY(y$RPs3q=U&?XBD0OK`24;x69c;HF0fM@vI0+zvN zY0GhW->ju*N^$<$t~j{w`?lG>VjTKthL}HUEwizN>bG06w?hZnaf-zZ^)MhImB>gf zQ-nL79EdxPMd*+)K2_m0B15XRP55LmEi3w#brgMmkZU-{AZZvEGOB?mYV2r}E%I3f zr4aJ+PykQC7v@IWR^jm=^aYpgm=MN;5Qcm}E>I@+jbSG`?&Bd1Y6CfdUY;YXS@gD{ z&XU^_YtUm0-MzOwxjS9A^f#cf^TcFJQLPF>S;vjd)(vpTQh9wzvk2P%K6HAiDNk+i zYqA?RCq$!2yiX?}9RpbOX_j4xy9bgYY$82OQz8cDxE5lvFc9zItM@akM)%qQ(cM^| zFS=tf&0P>0EwJU>CgfHkSpu)1SWC+Zft9|9vCHrbng#Lqs&*io%npD91|Qz`Z&Mr! z8RsriXZp!hlMs6hiF+u2p_WR@9P211^MU z+M;YF-A3rpod}RN_=a271|s!Eb^$x7q;CfH<6J_`VZ92HI%|*=PQ>~J_mY$Y5qzcf zap#l-Fw@SUV~rglvl8IpO3=`2_YiVO2gB~q0j;=oEdyJ%+0sJ5KRv7fd`-T3g!4dQ zTAu+S#l9r}-fSS-UG+c3;u~6#GhJbzi$XNjP?Ae=zU9G0bSJLox>>)To5M8~v)H(< zRO)Ba2wLW!w3{hvF@TMLxCQlx@OUAc-%DCv&nI)W=iBYxLI5DGwd*kv2m$0l+ai0E z6;w21^hI2zi#tH7_Rv}H$;lS34Q`O zBhKM6;ZBG2LlJJX(7g%(x%>H{2z@$lCP@z{B*M_Up{Cq{xm40VdPD9oW-FFx!73|e zbL`-6kIVUNp&h_uI+KFdmdjL>G=#Cly=zg9_<$|z#HBJzDz{#_W6?|JQWsg;mM-zF zglsCzq}JEEwwudJgx`u;aq<*z&a7R$DMK{BPoHzi>+dTC3|OIJ1pfjx&R^MIhCH!i zhOQhF#MS_^R2q8n!y1%=s=yQK5Ah~r5xg6dDb zrrS6u7!0)|aN;;x%5Bu-cJ zcj?Z5Hygc)vx}3dq3wU2Z}vu3&`d1<0qVxg{@-ITwExB^UBX(k!(qSQN;_W$rUXb} zar$FKR4LYLU_`k(c5?upnPqx>JqSv7$T)p_-r-(rvkm5lA&CzTal$PO+yDCAjs$D$ z$U{8^pmKq8e{mwcTE3?(i?TGW`(_jVM#{POb5av{lz>e}9lkhCh>71d@B(o1zGgzz z!!oCbPi`G1WJxpm_ZHtT0J{I?iUHoRV!|Uec&GHJ3j~o;{$Zni?sC{E!fv4fc|X=h zEcTuM&{}VmXG7Ov`uv~Wc_}F!;`aJIYd=okkgac&`FwO&^Zi&Rh9UP{_P`l)EHZK; zwV(x}1-*n$0zqUn>K2$t~P()`E(e>Q#&Zme1^wY98J z`7E&2aOcK-<(9`~PfD&gNa(49G@4alCIBYwDE!sX^$m8G{-p|MQ@;0YmC9;YGIGoF zuF>W*BoAds%>r)AR}-Bg?AltrGZbG5XP&Za80HYubS48PHOn^}3f>aVoCDP`yqD-K zMN#T#p%4^mijX`BMnAQ^cf8n*u(u3`r+p|Dads3T!w|@j_mL4 z%*~k!QqZC)Gb0%?^D{OZddeT*2`Hp~q!OIdZ;nF?N2CV9^AI^I?CbH0NA06HTZmvi zjlRaMT9j$%yR*}ZSj5JkL=XX$?@B5IrU!q+{-o;T6+;%?t3V3a4Te`j*z_WZN~L7Z zMr*^$S3MZ6SU0s@+BfOyrdeK}LVYhuD?&C9Q7`4xf|URr68^#PzsI|61OyIij7`yf zKkOZBTui)3vup3t?W-ZRk8O6+5cQN*<7LCrfOBC}fVjwkvq4Hrc4IDx4JNUMu%mG+65Mf~efx?xCtX*J@J_T6B*)C-NQ_qmWT|eb>Zkty1~V#rA{&<*sb+eW z9VhKMnv;_UMqYfpISt=@CHKhmdClMr*NHZ!brrPZ>{};Ah0l_2>8kQQOf0rbR8k|E zl{4zjA%5V4DI+}B39%*6m_;|u;Mx99OPfzw*1r!KuRe z)UWyopzxEinnw`*0V{YZWLI74h8!P2SkxvFvZ#o8_te6iK7&O(VmKdbR6iq3e+)Ii zU^9@VIWXjGMRV$q_&wtGV6?g?1xuU%V8+x-?ICEqYR81|qkR@@=j*kL3SF{iZ+vym zMf^r(h<`C$z0l69kHT4_3o>Tw-PHV7uZVEp$WIDJ#jiVS{nsHS3L-JjQhQN(r`JF7yT99Ly@_>8JzX3dkh`L}(qGpM zT(h7B21U^gMe&-jYPH%d_5DeVv$s2OpOm#=AsPF+;j$87p%IqDV=+hyl(VzLVqsWk zu;3UIz0Jge28865#|6uC`5H9Z%Htn9xlNn}36X~b=QQB+0j27wl^Z?+t>XL!YYCc< zpD;o))i&P_XrB`fdM*ru*BS(zZlg6U#)b)aZ0 zC2F*XfO}qAj-JXN^0w^o1byD#ewji7eP@d|G)7s?Z>FbS?6{6G{k`5pbv65CxB~wOT*KEk{43-Yx~$x~DB8xA^*1v0qL(rHA9II@HLEfNK z8xA#f6aa%iZe$OOx?BjF?7f6usH#5oP|>63x`$!8(qPzwmG9Gujp84p*(XYWyDNe% z9A0fWv}{0(q$?*_<3(WoH?yp&I*qqn`8J>2a3IC$u&V@uBF{nPew%^!-xFjIQp+YR zR0j285ri@aD-GR%kcl1Rxt@C04N#iXaW#_60T2bz@cn}Z>sU>y$_a74*e<{e)JwIho zKoFjM(EEXKP~g+bH0&Z3Nvw`K5@TggF6Qo!{d`YYw;#j93&Qa=3}mz5!f!=IHLFU7 z3NIJfFiC0S7D_Mb3~dyM*Fx#a{af)PGFfubbV^L%0QzDlPfVy;u?#qK6|&hEo?)gE zT$${(-$RwdhpIQ!gBUt_oQQl8mL|m#fJbV+tD1_kdB+5n2=lq1Z||RtWPYAXtn!e5 ztY{#+k1RP*`|3Z)d6|jlx)7op4Nm04X<5he+vnqBnn`fihgWbX`TVHEk|Uw>oFn4m zv=;;IW2m7nQe@Qq}YX}RA zj?iaBVM0cgT%aLHgM(1mWP6OZWFy{w&##wR4_`KYm)&1?Z*Ot@clv4eeqG&%znhoO zrirSXmC&=o|XJ8`+6ugY`J_gf>KkG9}ElrZM| zOBd>%N0ot@1Q4>0=Df=#`4OqhdE=-C^;Ixys6U^3mus4;#5tDl2bI~yy`zjl3F`oA z>qo2Y>Z|F0Lp5*p?RwiB?#h-Hcyz(x)sM~I18KJ(R1Q##1J!cc z$J(#`+<9bDXi-F2%fYLZ^&?n4f~<%mLi&>;J*d=pI}_c8rGM6jgO( zb_OW9n>H+&F&<9T;rwaRBa0EgmZnEuD!oO!YTA{+$);SP{t`|vKm!VlO_W7%Gtp(c z>gl<_i0h8hDaK=QuAN(bqRUJCTAb;b;)JQ->cv^)X%}-xy@6EVSeG2ThfjW7>}|803s$`qeMjy?olvZzWZH6=U1$s^Zn*G8($O_^1vTbSMMI{x#_7@D*m!+t8tPT5Nh)9bxcYC5Iw`)Cyyiy-g279`H(ct z5)xCl4WnDoEhBN?0&GvS@+>(s;nH_8_QP&}I9hZuA<0%Rzz8mvfnY5ZuHGHo4BX=C zMEnGCe?TkG4gP$?RVwAn5ga9rwBCvL(W{iQKQkvL&7i(31JWBM0GvbP+IpCyQ7I z*s}wnuI7>&fE`=s*LR_;eM#R!;O9#DLLeerC{cuoD*=V%s)OVbj6Rr}EaVLaXcF0< z2_i=Y<`xyk$J3iMF*zO12}Im-bh`ezj#wM`WK0c`IkyU>{IcHC{iBN8^+^Fl-}BiP zY2dZjywAiP$C5H)iLfNJjx@+fOqa=fJw)b@Ku@^krJ()AKC5%>`)nF zL~(!j@2PT7&mPp-jXeZvu~(4_A)Q5!ud$Pc@>nA_Dwt%FrGsFCYiATe2EiX7rqf8#DDxy!$8Hn|-A5JuMyBpZHN09E_Q? zcRlOFr5CK$K$*UlmygLjC7X^1e}npXUD3Di0om?3$5Zz4&=p9s`K-erzyt#Yw#urx&#NN(ke#LpD*7Q#(7cb4D(XckG5y2N%X2UI zfJUDmL8m$oA5HK$Z@7D)EqCYmQjt32uog{UZzN(^xb^aSi_lqbGb+)vJJwN@35oli z&JPV=J%$RJ6zMUYW@2aB`qYgCD?_jQ7eiK*-G<6!Jxx8lu1iLtqQ`+GnA%oxWn;FR zq*&_#n$HP3jeFX?y(J@kOR;lN?qBHAj@>>O^9Y4UaJbDEG;p+nHe^`t$GqC;-Ul*3N|6h-}6{kQi z^F=zc`HHpIBQSmFS&ee z_m3Q{{kJP&8heyZH|Iz7ZLQ9tQ4z{=`j92LQS`)AM-+f=_uXu)3PUL!b?Y8*6EaGF z-*ZF{qmi=QFVSOh5yBElLJ?s8Wd7;%V3$$sPB;fyJkSuDFQODt zN2ktDH#w}MUYmBYKwa2ReK1LFOzPJ$fnSr$|FvE&8ZgEw3sb9p^>x;9PZ3NSdFYF7 zSzxd@D-diFDIjWtF;kQ2wP6b=*o>;-0j-0F>@=t=l1Qb&<*OODPDoVkm7yx=T1FBI zbkKXR`%PVRZ}s-%*7h1XfUNDVJBi2Uo~7EKX>edfIk13tAPErW=r$u@Pw@7AU&!^pSin%{|2c_bJ~YQ|A=IhUfMB?W;n68> zj=cWvJs9;w5Xa2v`r_E_Lh9=&())RQC*1vcdrsT&mYGUoo^?VDoFCP*@Q4upi{dfSFt&zwmt5px6z|E)P-m+ zvFMVV(;8q`Qa3PHJYp>9IDiAgrTE||5Z)RZ>&G}c%;mp+S7KrxmjR&)KW->aqM*k+ z8nRBt5I+LrS23H8`n9o+m;tZR=W~_M{?bnfv_+PTm=?T%6xstIX7XI#lPB+)GNJwx zHSg-g*U~3hj3JW7uGbb3`j-KI&NV5Gc})bVdahf__D~=qS*YIDgokf5{%e|xb$!Z2 zkl4Hc+Hy#Y9~wxKD?6xLwy=(m-PN*$?Py1C(T?nfG2bzkT;$ugC6N_mo}T?=fDkEv zUE4+EAN9mXU?E?laKYO^tYKP!MR-3*z3|Nul3b*5q zu`MiASg^z$6o0s^%L-<_G^`x)LWr2MO1%yl<*^5o_X6E`RPKaYOy{=yHmHn0!LY;db?*yn^zlpi*~VI8rW*-L@A3g;kdD|)4(iC%#KT^s0(1RA*DFv~?qcJ1Ra;F`d|1j@gE zPke#?`6GFQsumc`Sby>Hk6vhK8)o;-=~n!89a_(1zQxW{;G%`R{*aF6DHgAlBW@)c zi9#4$c%1c?er1umac>(~_Fr%DjTC-@kfwF32<>bzIA8}S+rFB(O@i+ke%h!syaw0Jo5xzD0aQZcrKd_lye!sa} zPf3d6ugnzqOjKrJQ#uc|d|IX2%W0_+lEGqt8nucAZb*YE$uxsZO3FgD#TZ)VlCWCF zp&VdG_CW@2&d4QRKe)~^KUL;gm^cW46qIPO(unmNpyFt_nWLzJ88bFg{%+gy2OhZn*CKn8+kB}{|bygV&ZEl8BOZJzXT7+rK0_` z(e*eQ6m_X2cC~m8v!r@ql+*^g?FLccOD1pH#)KRC4e~Q4G#kd2jZm1-2pIq| zWs^5IT9RE*N;elFj>bB)6BAjrXPWG;$;~M4^X@|K^y!=T!|UbSbN}(->JhMm{ zfR%u6$lR>p=m?&ZH^<{(rFjm>RDWe`p7#7aouAyuF7QyMi&6TR&>~@_O*S=ZZioC0 zQ{p;#Rr#=Rz85p6o{RDxbfnTXQ_@ zCQH=J_*haV_}M@-GRCDZ8q%uKWM^(g*LEfKv`^3IS+TT6f4E;CYsw4I(Z~i$eQIeZ zVB#jR_dG;YWtM@h1C@6lJWHz-DJBX+nDa93A)C2m7WOs9#`vzrkGX`UQYNLPKM0Yu z6L+VqpWI|esuDmVW~@@Wddt0mz{hGy4u0xfMriG+JfFTldR#Kq)O;B-TWyq$+1H=J zYjlpH4KLI?p1)q%JO%nPNWla>wP;wH@?!Qo+Zt8so`Mk3@r^Qa_xkr_NvNVh`xJdGEd z#Zu6a2j;fwk;pM|TT-Z{m~;>&PLAf} z`P06CB4x$EN%jROo_1L=HT|udG{jd<9b~Afhl^vM9kC}3oAu9fXC@Kl(?*HvG~Zm( z$WYXhST(7@RfQEvd<6Dzlxvm6<5X4XSpH`&^=8=Q z>S7ObLv75)tIJ|6=np)t`}mztKLvK(v2mr+iv78MEW0ZJu~n69gWs&c0N!Xg(-@H5 zeVJD3o1klPhWn%Ae^~q`@+^X zt1kW8jCXgT7jJVxn|>~59Rj6+6{XF@KGTV@J>><2H**ijC(OiL0xPMuU^gEmZeIN@ z+*q~K-e^f&z16?Q>ur)NqEQP9(>`ncbQurS?A&@J^~{AG`cn~Wwq3YBNZYRorLb2M z$&%3;Gn!NAlAf_eR^f(#;?33uY?SjktN!dkg)5R#OW!5Vt&HKcPZgzmF&Y{{7S*JB zWoQRjlb>YFhWC2)9JtEY%&TbGD-mo~Vo2hH8QVJDz?F{0V(T^9v@B&2_nxiFIK^A7 zQq|<1(n=5=#>g#%%F*)QdRBsmD3s)Y2BywyqJ?-#3o#|w(C~$6@&J^>=h> z<>Vfa@dbj*$S_L(Gcn7FZhOVw0@+F=Z9gS(mX$EKfRT6p6rzL#Mb%#$j{Le{P(tLr{+^MV zw2A9$UqsQu9LKZ?)gvz-)f{zqdqC4d*bKYbJ442q_S?tt_3;urr_3_F_NZt3hi`+M zHd~`C=f+ToZTp99d)|&`*7lph#0WsAW;&w*`GGr6=1rTgFGZdv&mTbS+d$89XCY29 z{*LXjZad6dQ1dFSadFeYZ+-~FgYuA=beN<|f93fe&q4p`+yMHnE{BHb0D* zeoF-fSz(F_RUS~juBfi~c5#%}aZ_4}Fp*jMXFBmbg-(up6t1(w+FK9$L*YtYj8*^f4;`UDr%7h4+~CtK~Ed zKa+z1N$P%s$<6QdSX$+q;w?ZcPce4z2Vvzhwi-y1uzHl*iJaaul{`-)fmfv(Uh>k5 zKk9n=g@w#>d@q*MYr+orE#h*QQdA!Zzo@=Y45?y#)JlBWWfBWy7&)b_+m2t8G@)n5P%ibge)IB@Y|)E_-F=bWNKiKF_c2a&*Z^anz81j-e@!n<)S zh-5?Ohlf-UZH2%?xh0(ia?8V&BGqNb>S!=xA^&k2?ej`hMH5wW9$m{tRu%Qg{n>ua zMVQE-0S;so|C`Y1udqiK9HIwxaqXLvsq{jRzdh)R9XvXpsA+&IA>t|hS4s$(*eL*U zvH2f^2`YN7d%;Ne?I)1G0o()`*NINjDm1bWJ7r4AD(uTaq|oH>)jr`zpreK_T2h1} zH_Z1j1fs(B7QiKy>-Y2$ikGufpZ9>*Pb=_C+M&Q(2_B-W!P;2-)d%#jR1Mnt=D0{rS%~ zC4&`y1bpdsDu#DkTA}=!X|ek)cuG@;83T4Hxs(xidq08_jFXeF8HAp1U(J)3r%ryc z^{xj}xj!M(c56C!$MGDmeZqh9QTIP8{LYlldwTd~UXK7*t?b$GMgQcJJ(~>#SluE$ zBL_Lo)+FKq3N#&5Y>ed-N~aPba%%}cBTvJ1w}xbqq!uA@iS0*Ne*PRI#In>gf7|hZ zIMsmXIWL1Mf}YhG=!U-Oto+76Zej%sYdQoeebrfV` z&sGf}vQz={&4$@Jl>M8Xz<&nI%J!z=&=eF%rIQHdg{7yBf95sm)3A)#D?jzQH00&1 z(*I~Q_*|^Z)o4~wnzR=2mUGf9GBCHero5{KE4UR#m6GckSL;On;;ILSVtgbDn#bE} z%?awYcBsWO#KEAUBMdlrHNHnIU^8)RK!?^&t0V2M*YVi_nR;>l}v zsbG;c(^EBgJf`1Km$nk|bF&@*v&4wUafe~ zCx`{;KOm-M#}O3NQtJcH@|w%d{sq}J`l^0rE!nMD9(EBIFf|mkQ3>FNMX7T%F;sWu zAz0fig+RYu6?a!9em+0XMTj?OfQAlu$x7YCl#E+JNXWDE>^SA=JvCS_lFKK*4o^l+ zRQ_^QcM(@Xbj=&}3B*fAhCrl?vMSYlD0&8*n%Rb}y`e9Ki~LaxiCF(o!Ni+d@Y=SE z9~Jar;7zS*iE7v?Q;-J(K9Pqwy*Zg^pUV68`MJ=~gEmLO8_4tvV|A2{s~VV%hfxz4 zKlvj$!7V20?GUQcL8Y)vbxjV>LlvfvMR9rLElB)6>i>Z`M;gz0vB&-mVq7LzI3oyH zK|Knad&phAar^4*xf!6SMLoyITKMMzwA7D=u3mA5U6yWw%=z zR6gjDlf#*l_6UbX3rzKIb0`s#y*JJ&nx3xAGkwYv|}2wA*YDlpA39y#v%6E zlobtBXte8=Z|lusmggw1d9|WCTaf^`@jH-2qO3U4&5);|pw`Zowyesf+9%d7amO=~ z8Zm<&x`q8q9V`_P^yYD<0y3e}S2W$j_P$BCa&G^Iz82@;w&Dzy!*3L3jjU*npWrMo zjT*}v$_$@T!>o)9Z)X=87z8ZN0I7t$KYlGTc2+p`-8z2Y-U}aqxb>@B6q7ywDb>yJ@fL~z5qjrabQ7%O#)ASc*PX8-+-4{#6d3~g2AI__~4+aYtgeL@w7 z)=7w5q0Z*;+3a2>nRzCQY;@J2GF&GBU+HMg*yLV_bMd)K*l-j11Bsv`hrAbb7x}m( z2e+4Bp5*5qFRjl-eo`n|`@il+!bKgi3Fj{pZ99LJo-uOj?X98nL)*3#u0t2BJ$Ybm z&xv0KHr$@9vCBSFB*xUV<&&_5$Akuic>Y15#&h*IZ2VTq>o18__s!!5x;-`!k!e6l zgqS$upTv^eLxn$f^D(iif5@#?ddzym(Xit?uJxsGpMd8PIBq1;XgAK5GVBf06KMy$yb-R+gG{? z3c!yq?(GD=y}pT%e4K($_gz8V*x1OY1~dXvvs;>IT6#~CuT)2;$y?4a!n`oB2kDc&8LVys$`8%t@RPL zJk=CGT47k_!$M*xppsP?8s?prUv`{=sc7`&Vc_Wefa&}BXy@kEl{V8mF=y0ec{SdQ z*-G*E9o^_;J9yB_kmgZtUIx`9QBE$X@7zFA-m9MgcM#IHO1WYfCBM|rSYyXOiL0?h zg8!kaD55-_Y0zl+eq+XFb6AF~7cqO}0Qh=Cd#ljI%vaDRK*~pZ6!%J#pl5zs1Q}M~ zm!AAbGS6FbS%7ko5-QMVAC>v%W!92ElWMu(oiP!5>qk0JfaV1`8K)=5X^>qK9W3!WuPp1a=vV|$*Imz){ zvQ#T_DbED)VU#G?Sl_(sqKfIt?K#i6rMjdmQY9RUgo_+kB+Z8|Y;SK;F)ei)*50_g zi9W62U{k?HjWfH3Vmc`y7Yb^p63tL4PN`=thg4A!;4?BAI)67$rJOTVB_n^^iRyjY zXq1NM8kx7F=(4G88yYD2Pqg}RAh{A4y}hFYE5mK76=Fg13678X=4e16*&haZn#o|V z#pa_x8n8kEslb^@wu8wp#2Q>GOc9Q8Ta!kp64< zvMD1tfK3aG@d!zgTaHnGGZ5*x+%k;{tU`IAe|vTTPH?umb+FYapGP7l;tYJRhX>+- zPa_F(y$t2fG^!Zw&DDN*IU&j+G6$?%?(vW?R5l#+8iDyN0kbGN*8*W=L23zdIt538 z>AhJkIkE9kX zMUO+I0mEJ6DG?&N0z%ahDxsfSBKHb-$q)naN&|1W<|2maV>?v9O;9FBZnDa|BL$6- z%q*HjI{eNN`hh4sBibNTr7TRkGD$+yUV8+5g)2yR%_M4yaF0(E2+2L;3?9B~w+JcVR5{_dI*;%lW+nS_JJ&sqbpJNo80|a4W5lN9obE%Q@<#F_T&=c zk|@I!CaY6pUn6Br>Cf&spUpUgN2Fv#MYir_<*)?WFP&zgnj>N5`8!HVPfShNlV&+M zR6@JLmUcR6$&SR{jN|GTB!@oOVR_FWz-}FnuC1N8{!`s63m=Yi=e5%zycI4d#uMfa z4#PfVzTljo=TZ=QUddHtF|1b#vHJ6@3nOC;eZsW;nNsMRPk!sz^6|4N5|Y4o2|eW+ z(dcJ(>(Fm!8kb6RozCkCSb`ISA2y*>VT9TO%4+Ej>y#N+Igq9>I6wb^=w`MGz))rd zZuIDqCiQZEm91{g2;3N5KUZN8`by1%o+=0Gv<-KJLM6H6aRM4Ld`hY&3~cmqod9(M z-eY2-vvpLf zyxg3mIh<3Gt5^kX7x|eZluh0=fQ?D+fwe^_@?b;uwm?;ju8sunXafZ4bC((N2++e; zeLv5$H+RiNa(0>L-z>`BOQIk}cb%3ZEn~+9N^#JwVkWYs7)A+G0Mh^=mE&?D%7a(! zXu_^gq0GspY+Tr0D9E23Z~prqI=U;%K}YaOw8mdtHJK$^=+dCrc? z*JVsu;^rWU2D*+sY^yt1(8Gmi+>>&&_K17h#rg0J0B})KhV6MxyY1$tQOddwdBbXy zt)tZll?0V~{)p$D?n9=m!daWDvVxY`AhR;s#B16(DH>H(?wZEb=gc!RRC#(HFyMLK z0&F~P7T9kaZ?*8~zx`$ksDdlRp~_ABxT1(vbI6qI;=OBz#;!4YQf4wsGiuH0K}Y1A z9IhMVaKM47*rf$0(A@@{D$m(U98}0d(m92HfzpH)cYLt@rK~D|D4*hP_KYk6>ox52 z`kOxSmxZ^i+4^diIu-@8Jb|&@VozP`>0GSwmn0JD_9(4ul+eF*uaP=?#;My-vw%WO z(-R5u4l{2df6?61nV}n$r}du-P^^q;oxH`>C98(bHJiXi^Tx6D=NjAg>Wj0vy*`zi zj2b1Fnyo(N$<<_d!-e2bEs)JPR@?pSq0GVZopB$BpLI0^X`+>Sme2gu&C2o^ein-Z zkld(;Cde4xs^8<4fOX_Exv2ufL01;Y1896xMjz})8*mL;2>cyHE&i2KR;!L!>DC;W zJ69wcba!%M_KBeD$zT@OGfvg!q_nP#+Sq-G=!ka6NO!KuV{@Qh{4S=v|lK$EbLiY!4)Hm5kS5D1TnaqBZGzm-ZE99U1*L{G+ENtw5$WYih z|Gx?S|J{2rFfsj~z1M#-BjWtGCULRmzxfyYf9au5jpeO|(}G|?=mD^K-8yG`3;AKC zFW(=x@8^9Czu}_RamZPqxmC z1mnIRpWoM{09x-{zX^SMX(eR~h~{RQ}N59&z@#>bb0l0beg zMXsY0ILxT!T?sX>x_|Z#e3*jf7)u1Vo?0PU6TFknZ^{Zo6b!K_e|7>pv>H`Su%_dx z!jyR0?=^#pOHmZFW*fCh__ zY8h>T#JCwKr$K@IJ2=+#{WdZKNN}8|{_BJ7UM9&?X;7Qnd9 zIneO|luzFjro70KyZTjK$G+m*dfxt0LVEvYRTchI(N=a~ce3hiEi)Ze#n*pdPVZ5ttm8fLvTPTDe8}dj2nyv`U6ofhxG_^9xgh zBVAE!wFSI`#>XOSYacC~lzluIOc(VwW^_gvva)Ivl=U@CksT3(d-oZb9?JBF&1GU1 zT77v}Ul55PzZaXR_m_9i>qon1;F+#By^goNfL@8$ zlh^!qU`qH9cTVTp`v?{atwX2 zDLrgaYt2D1j8&DN#JF%TSpCXu8UlN}MuDaZ;KF5XwZZxbVc27Tj{3^Cg&TQp?py0= z3bimDWkvQQq7clB|zQ-4D8RNHqWd>fM}6z_ep z1!Uyj0LPu8hb-Pt+kruZZ8Fc$@e-ORK_=h&6rF7}T^7Y(=kTNyNnD&`hO7G5fP8KM zTF?qwFWb7p?w{tCAX?mm$HsPSTWx?^oaIY%X*x1#RpX z9B_JKS*(c|-}!xBjz7B*3H!;+e{IwP%A`y3ku(0SYotDUG~fPu97)s+1oAh+m$bJ= zXQe-96%DRqDj7aWtvX9G;7^8)x!Qu}gS&(CXf4xXICL7{)Q1j2L<9LEDm1D)HO`+^|ho zocn~mA`-!zq}HjtFUX-ZkW}_KB*l$vIhPPu9s-N~HCuO3m&8<3noL%SgUVP@AcCD> zok;3bUVVcZj1}(#PxjMcsg6J4%f{NhWXkMG=@4~M1iP=)OO~Wc2|{iP53Oj)FsKgM>wKi5L*foaNbE6C9R@8NI#afgeNmM zq@QH|{B-rO+Dc4xywYRw)kmf1F8Q0}We$NA+}*#JKc`QZd%!(a=K}gFEm8Fr zv-4IRh;9e{?SG)3EVvgb;ZTTd9&s1pC++>jOT;ISdsT z#U4wMXSO~*KUZQh9DA%w2qX^uU7svTkGWz^?0PanSWI1?I$zffY>Dey0V`{pp@Nrn ztufybg5^W)=RT}e7`r&QUx_>_ScJQm3R@Vf2MCn)tuHN86%V1lawRi*q?8HU;40_i zz+5_@JV8H9YB2365qF-x7`1|0hagKI(!fm#8|O;&358RMx{{by|Cjfb1o`@zh8Owz zqd(VqHRl$g6Je}U6V>c+a{>Ru#A{bG} zEY-;cOFT2ateIjJ5O@X{&IpN6d}(D1r-(@kBdQ~cW{La2q9qDm95|Z!bnGBy;CfH} z`Y=a;fJYtw-tOL)tJnMT_15oGQ@!=#JrZcVU@#v^#}t{!oY*xd0FfgL_yIAt1ZFhO zsP^tCaFchgt>*~a8&LkZ4VZ#x&FWQ7>ZD0oG+FCJL|vPaL~$V(v=@vGDd;~&ZrNro zlxdkJ52~$tq(Zc;I@KzADuv0dpz-5iW8g8k)!=Gz5h6Wh__+OjMrPP12ED7Gz03Z1 z&jdwaempMg2y|Bq0PWv>YX5wN_5{R*`b06VMRnnxHLq~7GzC0OIz{|~e$TT}WmG@W z&DV3M?@aS`lj2{uT~nFlziV$~Fz_s|l0coI?+iS9ADlM-m3T#qGrpgZg6>1LU`FvD z*Tkqd1)41f5OD7zw&=elx6p= zfY4;gQ%|*NJ(9K+;mox3qr*AQ6wrE+X@q*wX~c3@^2=(psX;3l;nE($O7dNCrqI+* zO8+Sa(OIi^L$NN8AqC*I0-4zL^AgXD#2VY75$_QNbDL z$aeYNRN8-^K3Zo~x2i!M)LOpjeP?19MJPSav?j7x)d5wHCai^3tzKQ*IK)8i zX1B3vZN%h(Ux?s>PoKhIjZ!J0_1AY`wIF5DmWdmX0lYl_=>wE}5a2aJQ;ZtpjhU_SHtN@gvwWQ^G#-8d@qm z8!I|h0;>+#YFZ)bHu~#N!!zegGpEB*UPl`CC^2=JP<@X$jeOH%$yNg-DV$ z%p7Vmo{N#-HG^ag@V4wlHm|g`vo_bcw1FOls0G}T6G^A!F{2J`w*c`YK3CqEJav0G zKmkV;);4Q+U1SD$Z)r@-eJzzO#gum+u!K2ZZ)QyKPHInVgsgvlF2Wl3<)jO?20Dyz z+>3}geDiI@-fn+Bea&@z^PCb3`B#-3@3~s0$?Ims`+k#Ki7v)!fbvL&sY=cx$*3!c zqRK)rpXSM#1}nP#W>`_j$^j__r_Gc!Af6q!K{l=YVv^N+Q09izdbFU&&WAE$!Bia} z;yAgPt+W2Tf|sJC+Dd?H4sp4F@H_kQ^$rbk>)AM6*OwlO-J{7xYn#Yee9Hn)qFfJ! zzz22f?;<>oIl#y7pI>$vRe?tAuc_K~v&M`g7lr&?IEm}*0KB0bXqW!$Wv;O~Kw|D; zxy8?GLwrqD^QgbLl6}H1xG+z_G~8iivceo7XSV(H^l=~1Zr^L{2vI3tyiEkI^OD_Z zbhAl7F!SzX)^4{ehp+m@Zsdz>IIkY& zU>v;?b5E14T)GF^=3Qqwk<`v^QUD4i;G!^q_VK) zn^6bgVry4uB_f4yzyxswo=U2RJ(h5Ttu+_k>|r+K%gpODC%2z>7xHk1Fx>6qX~JnX zryw_0Mk5|bC@?_=2R=v#;B&?)ftI*8-ubeXMIF%(4VPflAWTO-#*I6`6EBR{Y(7-O zBb6RN&A#{NtHcsZkN_?A+yB!?#zWaX5&XEoM;+RZa^jCMX-cXb@kAvtIERa~a?KNQ zVg|`Kmj#P^;-l6GN&DbklD91kl<;Ly^-4e{>86k}MpvxM#1BRoAn$^P&Orfaou;m3 z7%Gtc;{%5`#a40Aywu$Ai!D+`YBQ#yYMlsjguf_$xUz?QP#1-Q5Qs)cg_=8{=dpt` z;9sJYjwvNWT@EEFmXob{Zik5`$n1g1Z}_L=TC4+$0cvC{V*5j?g5QtVJKbN*b#T94 z$%TuTS*oUlL4iL?05HzOS0zQ}@-pritde{oNwtl9HPC5j1uK7+TGcUBU*J-h#;V-hm%ChpB9d(6=h3>Q(Z=N{O}=>X7Q%A{H1Hxsp;;o@nwLR6jxl zR9eik$Cs);0ZIhVM-?2HTNMQZzQ1N5199^Ya4Hn96uXVj?^QhqC#H?%F+D)M&hGeQE=(-aPNbivZa znHr!BtF_?0bT_Rb<11!~_pAQfoCLQ}d(0fONFg#Yg%S%>>DirE8!vx#dXcpU&2G`fzki@bYp6jH0xU{&MOD&O59yjU}>2Sffcmj zEPfvTfD}3?R^mW=#MU?X3i)eibd^roka-QJ005ahXI(YfeNi68c!W=t<09qhnF-=; zHAMclP${<!T0Vz4?a=jVCtZ7MYp6S>uX!XlYBpo4vm<9&so3ezT_BZeFrV60(1()J z>U9z(W_`zxfuM=e}ErY2HSQ}g^$K{@~l=T)_RIhw*`h3GD zPEX|Q`7LkbmRZL}u_MNaDY}~)u-m1GU>rq6ez~UxfRKUWqO7dEaIGk5J*@CL5M<|+ zrW}5MKKI_@<0tBQvEJ!vBSTO7naBSHn;y5uA7sI$eU!~^If?d*y9?xl^)i9d1{h&4 zX_!9HA;pUo38fKrYe};NH)vXZ2wm4nu_RHhawZvM6ne4aV%W<}JT&m-_vVEq!eUAi zov6hca~rKEt6fqES9~&pG~(bUK;hG=@?t{UgDlIcm)^mI@L3dkhvY%m`Qcd+eOeLh zWqrYPFVlLxi$YJd#liQ7jjo{51NxW$%uC~9nU}}x$>|-my-n#^-0Ko8dEB_EUOaqO z9c%S;HC%1i(|v?n&_cUxGgf;9xk=}mX-htW=(DX+Y{E52SM{i#hI8a?Hx;@TwU%xg zSi%l-uvP!^klZK@YpMC=UdR4B34ZfoW2?LRX?2zDxWzU_g>zVEJ0jy56Hv&E;m914 zDZDum<{P*k5t17#C2;n{acoCk$hN$DgcMVGF}AUs;Y+u4JPq4LtLXn9 zG%9u+w0ef%Z0PXRtJN-*hc3h_02VIviI5D_3QP~bdh8%6ZZ@q0cRpabv8Zda&vSE$ zC##=X&U~T%zJ-}?Mw)L)#`X1>NHSWw_cyh-$gYmx-_bxToTsOKPL98CQQ%)Lo`Qm$ z2qjeX(lh#f_v6ereoHz0|J3rIW1;^!L$k0k{nvZ-f7p`G;K(PCv)>5x7sWrde6mCx zlBvg@fCMKYMIc{*s=N?r3=|n};9CnH+@>J%I#;RG?=ppq6smus{C57Zr(`7T_qQ#} z5AZK6&!^z;t=yXgx_uueeHbLElxmCcqWlW); z|3^`bAu0egu5)Uojzaj7CFcIpPB$yS*D!#0cs|p~H;8qni(a9{`ox5JUy%!ye4kkU zlC9QPXftQwUvQT_&Z33VIBXAdDrlGzB1j9uWZ58E4?Ib&B5TyYg3BvG!v1);zF_4+ z`n0GrBe!V~0j@a69zEsmEChh%7WU%#q?|=MJ=#1JGsny_EAQs0S_Sbt34!j*w67PB zJGybvjDg+QKFrJ@#$c-ZOBIAL?tyPvT`s=x{qrwO%b9a6?WZL0n7)sEu}m$HhS?D{ z4DKk##)j#GDjjgz?dnlmuh2f4Bs_e|?$8rQKRouPDI3O3NhaGSV|Owu?! zT%GO1W6fDP2z4|jGDpC>TPw~9r+JmLYvKA4*o ztX*g3E}kwd>kMLn@|AN)R43z_Cg#8-qq7t|ryBXjStn5s0Fz7e_GX{woSv;>g)^xM z!Ff)Bk~GlK3a5bZ=0q_~h_kU6^(REPN6AnSDB&T4AVjbv z3@%dI0sC#g%2d}V1XP8lp0zhtoXaVF4R_?J-os!RQ# zZx-7pMm}};PKaP>Z`j{Ts#{+)bii3eLp98~`2c4)%jlAMo$0U7WDgIs!ahebulVE* zqTaK`Y`h8hQj24g4rb$#3(1&t>2^G_H{b@jA(h6QO|+%8H5OW-VVOg?H#{iwnd8%! zwpGSS{smZQ`tJ1jw&c*mjQ=$zorwR+~J{? zHUMCIq?RTc-{%LR&;~*Jg8l_sH?U}jT#c^D_#u+e+igrm=!ehPGkKU8i0BIqA7q-~ z%G?kWxzk89I2^}**v?mhZnA66l#c&|3hNq|+3q}HzurwKr)#;@1LA(kZqJf?nUzzj zXjEKsb7fm>PGF;cQ!hzY@oWDCosG_y#Q^hRZ!9&iwV`EM zDJ6m0>>0;o4QP?g2&{C%Et6UKd2euw#4ZigUe!raHf0_ZEPI4BRLkGtBGlW&k*I=O zQWz2}Y>-+4%fAbo7YJ_tI-f8yMfzUtM=zj~UYShS;cKWcEhJ32gvs92T>m6%2?1}6 zGHMT9zqTU-l;ifg{-C`(ZcYsfsEKuf+{4Ra_ZR=I%OHH49Yfqd!4NXmsP(Rhy9^3{#=Lr9j!&_*)nBPY=4|U zqdxZ273_qf&^ufy>d?d2n0D$g4+20lU(V*)Xb)6wcBCbc{cyE$9A$z9MrVWtKKplaE zzTDBTsFH_%_2i6rdb+DA{#(zRjESS-@+q{Y<2!9Zs%=NkF`Tc(IS>NCL zdH=m<;FP=f9gygY!%zDFvCzuX8`JG18I|YAS|ivGOQaU?z^zi9AK&aws$l3+oDU*MCh>}k>wyr0(kM-D4qI>W+$70VisFEh^6zp z5bRm?9qx#Q^wIZ(h()j7<@&Wn-sG{oZX=0hhj7l;Ci1yjaJB4a_yY95$a~toeyP02 zyUV|?To1R?dQTaEVlZ|a&z!ehR*q$n zq=3pF^K7(Ju&*@gv;e3V3>rKpmKrgZ&K<(atBB94?cT7PNhb{wOa{WO0bXV|W+&ZK12 z33hpG&O5m3fAdjuVrabbMfWQC$EsTxUy)irPaCb(Y1eOoTLWhNs^c8&q8UzNL{{WB zW1Ighp5yG%|(;iA0!*moayjWQTJftZHd0j>_>1yq(|Bwr+ibcz-A$Lz-Oj2Ed)ibG;5N1_@+sn{EW!E4}N z$yV7461yxQhkP>K>b+M1M^fhk=^DCB6xPP6Fnc3dnpbg~T^h5KHkn2RNE-C+iJ^P7 zm_b_AXWu;uv=!s0y}`qzZLvwYm?jS_O0K4A+{|(WcLQtzFAt3pQ{ujN1DEqT2hH$z ze=+h@jM z_f7Ucp(m9?HiD)&kp&R;nYWbg8tK);cW&|cOQMP0E;i@n8I?dY-$KKlTEAo6Ep_6R z5|-DnkcNA!5XM9>D{=j7S#V0c^>eEqAW8vE{o8Y2+Ss2c=V3aFdVi9_KZkH*NR!AP z?);#D*i@V<-L1Ud8_8j{*EV(1sUDaDrZ__n!;)f6%U4Fjk$0qIW{T3yNDHpd{37qy zKUJ7VKS-TI3a5&Np=^O6y&9BkO2*VB{j;7YgVpo-kdf%%<*`3>1}%dUy=?L z9xWFMjh0z;#tVxx){;Id!TO+;Bgw{}s^=G;ESr*sG0rR)$FlniZ2i@hW7Jc5(E~OC zV1~mLMtCN7l1Tm>p~>ip*3ZC_EDX-H zctlJmRZvR?&U{mXKWAgv2(etBd;9fakL#cjsA2tN(kAW zM6~?^9&c;>_+t$}F}P+@a{{FOYX@q3LGHYj?=D5pu*!g;DMmpAIU8b+{)aqXArVF6 zH|`S0vas#K9-dPfFtsp!W=$6!xx7SW{_n`o33&#~%xkB>W}=hNpkZ^0BvYC$7QA*PcDYsa>cN_%_xo8LAc4g4Kb zJ1Fr-t)X5%GU}RTEN`b%z=C>$+rYSrl0Ti&jCpmI$DM2YI`-90#=XG+JOGoy3e~tJBg)sZAH2SQ4qFW7$@ese$41Df#%Q>#Y2Z6KF1nNJ8=6X+ zoOY&wZr{D9iNeryTKJy<#NN2U!YHg+jfaYwEKb%yA?#sg^nUqLT}@`u+^4_g2pG$R z7N1ZN{0*>2jfm)qMF9T^U$t=Ev|AYkW=rVyN>$EQAk!qG1+M>AIcspDdJ zvF+yc=dj>71A5_}oSz0X^;F`k#-3h_sd}+>mPKVR7y`S#2I$vI(t4jb<5Q;$uM$4$fOrs>nGuZ|N_am6qwXke%1_ zG$BcqF(^Mm-R%!xU;6W|^n45dKnkB#dT^lpJKe5i9$)Gy3x%;}(cfWr-Zx^Jta%Hh zk>u}zA?%JxB5@R?@J-2IAEU~y;+QY~B*&@dZ-WZ>`1XofZCyYLsMPL8Se7}a$9hk; z)Q0++#|r*^D_TmHb+dTN``SC{bdKZRcWWohztC&zW-tT5b;R($!sb($fL5CKPkYax zI+D$H+iTaU{ac}7?+;^J-OmXckaNbiP7n1|qD~t%zptCyy7&~RNxeE!pL=GxuCWBc zCw2A3&(o>96+v6gOA^OXx*aDt=V}>r?X8Pl2=4SL8=K+j;O`N>EyHcRmFvd*$=1y~W4R=wfvr_05k`xH!uJZ3 zMO10q!Y^cmHtt@l*-Zdq@I5@_NBTv`{6mNml0fo7JIr3-OR4XebL{$u+uLW%S~5Fa zB+w}SeKS2~(I+V%N|UfgH0@lvj9GOyJ*C{kz>^Ij#0e~$ShWSyg%<^>cx*Cu{^MMK z1{QM&>1!f-bjAIl*s-!(c##d|0|fVG1<^O5(hK1p)X)BUMGBBpUR0Iy>x2I#w)8c= zYkB{$?$b&Km%l7u4g{or)X0M^sbnN-(+=AJ8nyybqJ>RbV3wquji5;EzAt=6gX#B% z^mQxIfqN>I)kqwRGEU%Kl5})Qe-K+xS;;v}5A43z&SmH9#Eg{A6Ha{cyEb-v3q!r} zigSn*`y!BHaWUX(tqY4>~x&W%nuEoiwAz5d23<^S0IBKp> zb`CPEJvp7t1o|;O#ELSW_Te;C64b%ur`eEgYDA5b!}#v{#?!nZc=zO9%@g3#Hz(_P_7P8H`MU)`&=^A4pB9ST2KE z2bBXs+W~FyqH{5nLir_gH+T0(1M&O;>GoR>svt*csr zXbw()8S$aQnH1emEg5q&AbUqXkm~W=kvtT7jseQqN`n$xL>3DU{fJXm=wn?vq8V=e zMeVr~0uDBGE&mqmvvHoYhsiGHO}%g-ntpQ0%h`fA0;ePs)KX1XJnJJ1w#ijM|K+Au zWI;Xx$DpsDtc$RF)}N?5 zF!qTW=vg^7&Q-qL-=J=g)$hb2OkEFOvmF4FK@)5?Zm--<@(=XX1A)Lrbs|eBVaaql z4W>zLlXe)DU>UQ{Wu5_jw5<@YEFl_e;KtnlW-I!)kJ%FwTKX4Kc=SdIg3KB5MRKbO>10W;Y*zstrjC4Pkr*gG9DF4u?N=-JVU7D=9qxW z3u>vOcd3;ZheHH<#VLylsR`b#@*l!-6`R*eL+7KXX`uN^CEP)H(kC7|_>D~hLr}Ln z!NS<*jseI1!O<2ep;U|cz4Q8%FtU_Kv2S27j40e?w_o3azNdhN45#>kaqS@gXI1_p zu-I!}BG7VoT>h#2JB@QTJm6 z;hQa}2vQ}v0l;RL@beB&EL0ud39oP&4S7?n9-b{)*DFT~bUYr#rqFhy40O$!dI_O@ z+S3nqEtNFi>9e!-^;h38#ai1p)mp5c;&Rse+|rIc1GEu5*qcytU@Fzm(FtI_u7B&_ z!@u7$$8!5dDAIpzD@Q@1VB%xgm=-mBzI8};->FH3uJzsn@vCYc1FE9XdDc%qZ`xl@ z2^~)y%5oH*h3rTy(xq9Vu`SI8U8FHu&6|(UNGuBRv=6~?kh0|%em@<_{I1Q@J%19z znl`W)3`v5pq%AfghsOjHF*OAQJ`j>Yg$~{@o_yXqFnD|$V1VlmH(qbEltP5vf(~#b zfQ^bwxEKzYphQ*3HN`x1(dK607Ss4^&Q2kLd#{OW_tpUF#%r!jQ$al{;~&w=!3tSa zoy9Y-<{{EA7cZ|1q?io9B9yPJl&;z}g$Hd&2w+Rba6}29VCSo%V+sIYYnu5tp6#wl zf6NYF@{yqaq9L9A4m2v%^7e3Z&(!GDawB0$XT~pOF)KTdJpa(2>IhSkL{;9NL``N= z-DRl~8@9`Wji*Cr)~JmQZx!=ngQ_7N37QnO^Mf`z#*41n`q?3VeAxh41xd;{dM=S0 zlu}*5;KZ|{1I^_KF(!u?XNRDusq+)I~>Muk5%LcAwvdB8}PV;M+15qzCS8((#l7ZZp$m?ylRKSzBt`6pKJPb8LxIgiJS-^{q)%?9eB!$|=c0sl0OJPIzp03fqV5p{3iguy< zcDCzX3M>E|&!6W@KYk3Oa9ER4y(sm^D7l`Q@rIeA`Q9Gsr%e}+XTRQNvT;c_|k;B*Mqk(eY`B(12ML6 z)@R1-#l^ye1r#LCPLfXUE&{xykTFw?rh=o(UzcwST+>)7TwWN4m}2I#Z%}wrri1_K z|Cs+v-f zIZ=8aHUD&U23om+!mD+vWRKW7dT@4Ejz`Q?`4t>T73qYzDZ8b8-ah(pHF4vq;8;`P zYk|)G1%m(cbcqO;b`e~Rk{ek($v`odhG#p(-YEvYcBK;EQ8h(;sH3OgRjZLv-GMbu zoq@e_h6d0VA74gs8s!yR6*^_!K>a&*#u0uY)zKxDm=qiY4O*VL5a^`h3rk~`tR35- z+VV%aRe{-L#B_3%2opPZG;&wGCWwJ0i8k7HNC`RDvH}PD0Uc*V3m=jymJ?sKk)g@d z;a!D|W!J=mZncr@H+KPRd>hRfoQ-RvG*mkLX8~YPVcdf5BGgo94jf)pX&wm|4VKQt zHjqJVbeWuT)U3c9Myn+g3cjYMRvo6T1=};TP)j9)Y>BQcc!p_zn!$Rq?vDht7d0f? zh{5D~xe=prNJXxo$FzfKH>;_n%>a9rl}ND(_44y_y6l8G`Lt&76u7^Hc{ySSrrUErI#-HPDV0qPsO91-HGDSQ}JsM$&;y9DFSa z$~!n81JKg1 zU$rE}z>G_|rWIu5$hPQp(?kq| z+5Of6_S@H?CyoLDD?5aY88}y6hhN7h5PFL=9NFKC+cg4pj5yus?d<_JyN2|AhW;+6 zW$INExHr*>j8F6ux-|=7NxwBd0NuwfVFYu!1gvS#5)S!uCzgbJ_M6||T{>R?j_-ih zfW4Y6wVTkpEe)ox`!N#HRJ{M;yIUd3<5PO_7ie8d|&o^DF~Qc$4nPKtay}-~nr+hEIoM z^dgRMY@Fo{Ug!}^JF)xs7(e>Z`}|JWJA%lI)AsMLI`x)m>>)I*-v#dt9PQ6QT9S9N zgsUeS^5lBq?x4oeC)XQ!Enc9D zB?`r%OGHfg!oMnySvXH<0ZcEacJ1vV%$g(X54+?uNk$|mWatQN_+lcsZqR%*K&n|1 zd5xl)kqjXHD}dkj^YaYJfd4vjkLD){-Boe4G#32IsZR?EFW^l?>6(x~^cT7~t%o&YFz~+j;!3qbfODy$sQjyw?osD?cnVhMy zt+f|TR((znK03B*oG)i?X9P7gr@q&vwCMhP?6^Pv766E2&l&P>#HSRbi+R&LtiwaS z$9rW+y)hpt-<AO9hFhK#UkXPrh7$db&!;24N>S?kfEZ2RAc*2?1CyRG+8;@4q4AGYhdopc5&!=nhMwzr>#*-sH_#T;(`Ya13G2?c2- zQbymZwXkCwKbQ39%3SXbR71ydc6XNQ?oqGElni$q2ym-%_T;nhvHIb5KWEXYr&J5- zFv~`8&A-8rL=;-K?|rfCkFh;^p$Y2E#uG8x`O$E&z1rh*R#PrUp7sY@qEdT{C`jfB zPRT0U8BWif+Cb9DgFcKYP-9U36Z^80)Piz2FOmOq+}RlP&$BdH70xXbPo1C z&?q0dHP&(@?~1>35?Gs;zlG^K3d@-hgzrMSoOccfB2{bBl*-w%R|dZyk$+=LRhCHo zRa-`sRDaH)Y?aX|0DhLR7j*cS#c`BECGTazQwb%uN10V&n#4^N?1C=5OebC~gB`|g z9UxnkfI6BeJ(v`;&dAj+KalIsD_NAFOJC=TvC?1-VujHvD7qX-Qe|xNjMA^Ms4}~l zY{>};C#%XilnmsJ0D!dSwQ8OVBYzx^uV2ZI6V`g1KLT4+Cs%BQn4w2Ep~rOY4=~={ z_rs0OYWE#xybtJ*>0Bv23R1U$pDKXQ9k2nZSC;JGzhXe0!-guFGrdj%-T1`Jj5epS zL?O;r0O_*$5)`#n1#Gs&uoYy$ zbpKulUrOs5w|8M|CFNQ`31kl=py^=yUh!%SKUhIgG3#PJhaff2<)?oz{=DP|C;SYq z9n!W3i^fGAFI9t7D>Wn8Pq^-5h*MC=2LulZ;soCp8J}Dld%Oueo9{Ncr2RjQ7%R(v zDDz?FX8Ui9=4u7W%>>?c1wy0t-(ki6py z>u3M4Hm#GBgG)Pj#?s{y(5Oj)B`rqe5q!D?H&-6y4Ahji2RXp1p~e)fnWt4)>(ln) za4EhhFT%|7Ui0op|26@MLY*?#HvTreRb7XrNVcyqaDCrmW0xV5%!o6Z=Xgsr=1SU$c6~ zCeC4yCh*QF3buCUh792E$cl4vhW^#l(0770?T|avOq%MP3#oxCklJ@ ze6UG=1GDU^w?%(G(pt?l-rA#lqfN4IUj-hf6@~#5#5!Jjn_Ze->9udCU#*|9FwmLv zXA?)d4o2hHT83*U)IsQ2v`g>EIlwN3TWgdhu@>Jqxx}Yi5hPM}i%NGT?)^k~-)u7c z_L7Wbu1&}4iK*&z$bUX9w1?KF4v>#qZPdq29jz5#onV15@Eg+%aiGaw{nyo999K65 zhl|f24l&`=c%gE=YY+?Uk>NypZcLgaW(Qs52_c0`Vzn<8sN&;?z~)h z52U=HKtxq>erE3%if8!5Usoj6$5EvSbhV>w?Bz~sef1Joa(+p*Xs;QF_-TdM8k_h6 zUfNoQwA$WN1w^|o&$Qj`Vq{v%Q8{Q*V&HtGE$50MgQeO|NH}@L#lKCPo zIq8*LkZ(2F2&K6yU#XRbw zwE(nDUvyP`!>PMZJ)ZIIXd{m-2foqCx{?_mkfjU$$`y}ZKKwZFh1^-KKh3SSY$tHO z+r6|z=~M7bMKI;I_>OIFqC?e&l$(;G9BycLQD*2RW_>h5S*(6Z&Q&6ni~@%!rGZ1r z!J_lVRIYJ4r8CE08-RiHwt;0F`}tsFTl-eNLGOW9#lL6Vu$kH7K1!Y5Rf)2RU`!5u z{<28j8M`G#<=f;MvTIaCM@=t`7p5yg1dOyYVfi5D)g*Jyo>X0vBL&3`pWSJwRX6jc zicJd?3^S68N)Va}HQa-pA?nJ7>@o(LlERf-Hw_euxIm2r2!Nh6g3exTe#`y(sudh? z^dKc~kZzpZg<2{{%o0R`SdwbIltxr(I(kh|>Rau~JMPEmG#1V~6_=YD<=M+Cj$zn( zdYO@9f@-t^9&;suj2xPqdI5J61LI3T_cN1r!dzDM#u@n=$=OEn2a3MOM+=x*sD7sN z3q6-#b`iI`CBXmD#k$+F+KV-&DW1M-TWk{M_2!hY`Ref4Ya#m*hWNVfok!hugW^l2 z7mh8vkVa&OfC#?zi}lT*KWWKuHuzWLjr~u4Qd90G;155ZB$Q3W4|{w8~`1UajTMPR>^z)ufdEYITB6b zs^vA|=$;-t!cZNDv=?DPvp3AyzX?8mseF#3vP#EKMGZX#1;MNw_Va9;q5GMqZnN;j zc%3X4m5X)b-F3K)txavF914(Mt-u@Kztx(4&&=dXS8N+@7 z`i3rPykmJQl;0Q222+54CWEbgK+eHG=aoBpke=6VX}L+7T$ zTc{yml;8PZZ+Be!ntu6$wH?#{&<#}^p%1$g5;7v>K-{=J9|fDNLX`f49J2n0qgfWF zpBV7}`M~_2z%R`ImBS1bc@RxNNbd3>-0XE-z@EGXn$Ipbr6l;{&BgG|j#F)1=cHbsvS43_)sy zkquV+)QO(*at{nxZ!;rwx|)8(ae(}ONrv_idC0SLoM#fnYU5ZN*)j?6td0^|++yLw$S`C)xLB;Z4QGxl{9y>9gvHV-TE}N0{q-w*ez?%_Re0nal&)#FKRQ@k zu)Rq?s|<_L=|gs5q`U=?3;k8&36r;x3ouPV1lJxl@XdZx<5|pSaf?$-*NFH78e4aLVF=`iCqB1bC6=0M9dPo7;KMG zN~r~d5P`02WiWaLO45#L&M^XfS~HmNochJhH&Nn}Wz?|^5sJh975783CLv<#lvt7T z+jnRszE2{(P9c46OmbA@%X-Yv@Y;p;I&Ajf~O~^y_t%v zk|$kL4h$Z+Q{p0_BS2NtP4Rn8w}i=g%BQ#@(;E-w6)bc%_kU;C=bKRYdOu!&mRk_; z+L$xBWt2~G3P_>DWwaai6buXc+CzThtv!8GRpcJm)x5^@O(J z>Uoq_60;R`fVnQdg5X1U3;5q{cU@BXxLN#{SX6N!F}@#62Jp~G9#<`r0#cdw z=0A994|k1*aa28eRm9l@=M7VSsT)vNgm!cJq3VW=0AzTz_w=iwJ75!+Q29kKfdw};iwvT=t|JM&TDdjin`ljGm|z#?2`oDH zvpVRl0Kk#ZqU9uUxcoQ^G3-E)ilvdq1!yir%suNCPntoY<9dhbd-;v$pJIB;;#CauJKe*%}PdC3FxovCCT3bf;`}yk46wq1`@-)y?h|ABS8(qC% z6oh_BGqiB{Ib|@U=CN8s`-3LFcq13m)k{p)0vds?Co|$tm5$3BXG6b0;sb2@dE$Md zL7Q;hN`ZSd%?qa|#>nVc8<(bdw4X9L8+@~2MppG|2MUwwv{kuK8$OoGdOZesYtH1R zUFv>3QcNV$x9U@<$!#Mt9vUP2GNR~*0c52W_{iZ)Wo}ROs9F=Q z+f5)1Nb^?XqjRMBzUfq~!r}zc*fAdjJOOGi=|YROldKbN-B9*&N{CYZA@3EO37V!< zcYY|awR=fBdq!4ZNqL->``1isrOoK4fG0_QQU+xf+Ay>+n%etLQxbEd?dbg>xv&r+ zw0zbd)ik4SX1vVah3gk&kbl%n;0c10&S#>_YHXS$20-nEzXu91btu>9>-PMTdhOb2 z&&P$2aFQx-%0OcHEHBVBd+xGw+k8ormsl_Ce?#DThOo5tN*X(jf%wSyN25bL0lFiX zcx54l{s!J1hslddk|i)yWiq5+MQZZN?$It_!5uQg*K+CodP_+pK7pb1wE1z6-Kh9Z zb`KYYnN^i2!3=h<6^ za3g59KJ=bnDdBI^I`ouL7Utn?GRhpiHp{73)gOFt(dFAB>AIS?M9VN8(*aM(9p)b- zzjl%yJHdc$-CJex@}lRI8Q#GCjWAVfi0ZNwgOm4z{5hSbAp5f+L!I~070|27>alti z*|{+RuOyUB@=KkIu_z}iVZBtqHT(;UgeIq%~lcEfianDT%9ubG!UsbW_wz1)3mayJ8%mv@R_U%J8c=E`9sGV)tVA6FI3W@51)W@y)^T zOI@W%%JECBQY;T8AquuPmx^{*EgYsIA<%OK?CFx7LA~>K+^cr-#mBD%2J=95MO8_P zCOo%5K(n{-2a>+F&4XMO4-nI8p%d!_pxVWPcYc>f)kHn>oYLWDwT}=`9oq{onARN5 zs<}|?aE%!6UE2oK08@89Yz?77HYP)Fzskw1mx)>lJi^Y&94DkJ$yrbp)gIceMtY`Z z1W9tEK)D#Oi*W#ow{;#m3OaXeRz!gWsLP&wuk}DMYh0Z06^pQowL%WPUg6dNG^rJW zWWnX!2?cvn8?)&?RcPjr{+Iw3-@L0?gRv1TUAIeYRjVu+D3kpz)k)XlmsTqFsSHmn zBY`2{5HDT{N30R-p^jL?3tC6NYq@ z3A{M>Ew?;?#^X{WZX)Hw1oP7b2;@|$Rp1@dc-Hpa@DkX{2w}rx7tttD%#DwIK+|e3 zWVO8m?sl<-r>DoU{B`w1=(r&wlZd4pxgN3?G=R+=jmcoJ$&d|th5O*w@``+yRKnos zuigAh7YvYA2_u7yeyvzol+KA9h-W5Is`!!p%q={cNUmcACN;z(Lp#O=#HmPxH-9o2 z2V8~q)I#BKc((#0iif+PM&d-Ez_$yn_A!|v7@%n}Uud(jbQAy$)2gvvMw4p3ud9Z z292^st!4%la%E{PUTZr5oI4b5{jCJovwM10dLQKgd+pl^xFyrkDgN=Q?1r|MGEYiU z^|C|z!gPKz*QlW=vATvU0Jc|!`kh_mrrOf`onmwQtV$k)M}juI&<;qE8@w)o6;RM5 z@rFp#8RW2K8&dnAbQ0^3a*-ofsdKuPo71L37-h%G%#r`)c^ezx8MFv5otc`Kl_0=| z++h&}r?Qv!Oaj^{NiFA{t~z>|hnc#%9-95)k?O zeQ9#s7JLXD@(@`-pSmF^VWAW{dM;FG>oulZh=Zjf8ho~1ph5xv6>&{#j*W&NPoqJ56_q?P#gHG#t&2J(x&->Z91AnSb z*B1KhF**B*(WAkq5A;vD0KN|dYeY%UU*c6o&$LB?i3K?TW`fr%^WkV4$87~GTF89e zmt*%bI-uRFpy$c+Ze_AF43A| zQfr|n&`rFqADT~J`O*6`)(#lq`rcz|=abP8hIv-<<$#tjy(ey%imvNdpTN!^$e6P{ z>whY)|G@NP=3xE*zqS8=a}iE7A02fz&R*5s5VyjCpaamxY0`p4|C%ofr0BkXuGNN3 zePynzJDqM5Y?^BNKDj(ydCt^~ z)bA4`Oj`f~f$S|0HvD7+3;qq2NpBPJ5pq#Ds?S=Fsyjaob(#m%^9D-CQ^>W(6;ob^2Q83W;7j*3JNkI8WI@5(W3Ou z6vr3y@(yE2XbgUj`J$+XYKL?(_9sLbI_`Y9K`H=)83(C>FHqB7CxrzBWu4;)REV(Q z#39+Qcq7UlZhPERwV+~&o1j^wY-Bi%lqhYC@#mD|Ttnm*Kz3s^PqhbfOKqjY{yT1= zU4)RSYeXk1s#gU;Zi{+QP_SIBq%w`_Y_V=7+4I9-*MlZ2dx4531&jBnUc8!ihO@pa zje(3C>w@^Oh$VIpUo4FM0HeRuD;Z!+mP9g;3Z$Vh$s;0o8vc&kNehIwl`62UoV`3> zt^ziBzKlr_a8aeOT&+$Xs5)9HoUYtNPw!ugSyzJCb6n zQo?;~Y-o&cqkZzuQjgRzCCH25R|9lgbNT3NGK!t*M@!GaPg@2)bqAePtjXuF0>knV zJvd9alOe=4+BO-o=nJnxQ|i{B<6-Hk{&!&gNX}UTG!~!A<{4bS!^o5nuCUM7boPN_ z1#0ntSHb43E1Y2|BiOZ?Ettg%NJh_1jb?yw+zVVe$GhJn{9H&0RhA+rq+7vwvdMQ!b{SsxfK9rwk)rA&p zVGq(}S}a%}JMTpvI*zfXJZ4-9848{g57wMCG`%BltPNH#q-jD`^tKoQifvwruH~7m z7G!UOo1`taJ>IGmJyq~sJFAXluctQBTp2S1w5$~&+10s-FO1$iSD|e4X=mDPNB?nF ztf@_bZQHbXPz#|f@xVY#7a8N2t(d45g}Iu0lk8yFHD`*kh{uihMRM9hyk?S5OkqVC zqd_VLRoy=0NUyEvL@snc&2?;nt;+6V^Sr!qC&X!li#NS}j4({hO&W1QQ{$0AS(tVN z$U3*>SpHm@z2y1P_Jk%axTCPcyD;Y%w&2%-@OvN(jaOUZhtQ7wvF_sPIqqr>LclDo z-8Jq*Xre1uCvu7jIG+Z7!7UG3fvHR3hDB<#_dpY}3i#0ZZxw6O+snyQs+o&+s*qsV z%AWAP^BTnFTE}CvZpxjC=YZSbqVly@z}jgGd7oTOQ7>N%hQc?0thu$~ckJC`JaOl5`eZ9huukNPy+b8@!;9$l(98NI z>Ke_R=G{&bt38gL^Q!ATpXWa&Va|W^aK(_H8#`XdJ~Y2UeSr@`{?)E%3~m3PpY}#p zFsy9<;051u9LAKD0F_|H%ApeqK3T>xmKae48b|P)-Y|DsSjz9JM@C$Y zX;Q`CZ`xDTMPwV7tUGDK}PL*28KjtZv*%0Q2-2Iym zsG(l|Ab$IGPcMcIZO3Q=-zvkve-F8%pomEniLFzy%tv%^2qW{awi@RuoJ+SlV!*yy@N zjq*)=L|j9SNG71w8f6pZ^nWXfY;mP_j-*!OYrvUn?l+8TiI_I<8S2Lzn=!d+g#t0n zf8=IllUUZTHw=T%+S~a`rjVNUpSEL%4po5j!Ntzlx zsO1XPonP61uKzYx19-Jr&?j!UDP|2FPpTJo@m><%oXFC?Uw`GPVkn+<3Hof|QDl&z zH!`knr4eH}x!wYkdyDF)o{Gx$9XpM5N^0Q-VGXe=>r9)_zUsh|$IuwO7ztl@uN_bjdDsZPZ4Cb+)v9wc8BwumHbrcMbjl~~x>>YN zctb%}38R%D-GdHiqG=;;1muZbShh=gQF5XDT&{uA`LhXuW}#}OT~>P|hS9=4IJ50A zujz|10LD3oa;8<&;6n$F>uiRPjI%c^F(T1l`p$B$kEupaym1b&xicBay5TxLv)3Yh zz1>gJr4s zf*e`($kF6G>(WL857ZxuzxFwaVtlK)2^q(b0g@wV4JLl|1s=ptWz@^5#j?{CjY_18o0YFauZwA*jWUM=SH)PFS1NX1 z1GcY!yDkMiSo~oE$Cas$;;`DiibF*Oe$f+18u-d)8+ZQm8DBq>Lf)kB<2rH}wVCqp zX?0t|x_5te@99Tm&7MSb_I3P9pF3ldnUrVQX&-M}v#*?Tfa`Dkrh$)J?`9uvRVl86 ztJviTS-%W_rvIs);uFy)HnZU9w5(5hG(s58s5i8Rt?@q6+U}et=WQb3pp1$ zf`I1las4#o3SMZLz0ylU_KzTE3G$Kk!lBlz*sCZwJ)Tlz`?n$)vL@86z{5p#V8X~y zb+&}4r;sw?(bm{$ogtf4)zDbJX(|auN(P-u@4$-v_`6;YE;0b32}xu zwwhPsH?+4Qu`lIz20k5`4kez)0=N!ZO3VxHgei{=c0G8=tXJrEM8B11^r>rKly{Ge ziD3^aBI?X#br=Xi!2hB=$0Kkt62`rh8J{0%xGBT$dR{7#C|&7*AtPpMHYGu)$8)=Q z*N;R4p~`||a*E1`iH59bjHYBWAFYMEG}>W!&4QJTGPju(OPNymr>8<7BdSf4FpxB0DlfUIave5s=na$)25M+>Gb2v-6X# zCbjIWq7;F}CPcKeOOVhyoe>4mq~R9!Hm8H3`P0(jk0hF@;lKVwS|he=;hqomG0AaX zX-1gE&f%tiro4*CQ8=qM2RKut*hgHV+@jAUMooKytiVe#4p|KhcOT-3$f9gO`%uFe z*Yn}iWPeI8$XN>R_-E6XoN4w*oLDf+^lmPmMoc~`|Us_}- zC@kQAbw3!7jhw&Xe*Xi@|x^vlh0IL5d9;lB<&NPNcj8A z&@fIu0ZrV`$78qe>pd!`*U#I$v@R*bFZsgV{$}Spe(-SG219CTb9V{F?Ds0QxL_C5 z(&ouoTvpch*D|>C$0@xJ;E{M|;K+OYWnovf15w}`yEHOn(j+o?HN6h$e))L!+U_DU zJ@0KYMiV`)$ZpLVjvK`NpmGkLPZK~BD`a?I^2&tC8-X3*rTTci^AiHXtD>&dNk z;-pD%up40iE_DxJd?Ep}X_tJBNu!9h2;$yi9q`}6+YWc}0}s26Rj zB*s)D8Gp07XE%nrs7MH@nbG%zgoGMV4RK)kobFrYW7^d#W?EJPdm0wSa+Q!&#EE?2 znbFjFF-&B)mNvvbz_woJmtPxqvYAhEPFox#vmc1loK&sJd(qhPCD(>w^Y4x2Ej6U} zF6XuYr=~%-58PIx=EF_~X2cS2t80bN>P1Hvmqj8crqrg8om$$>7N&l!A9jaC5`NUi zdv41MS-z?o1~RlGwnsv=frC(vh2z&0Eb?Wtdq24$eD`9C0G7U<2nl%XcM>nnnA+8{ zM)V^drQ8)3SnK@v%aIfcVdDW^EKyc0MyQul{G{|jZuz9R_|P>v(zNy3EuJKCHV#MT z!|DAT=t=R035rZ|s68O#piFcO!uP^QSnx-|SRU1bo3Rj9j)(_ftgLOdIm+-+4tphf zNer@hMMX>>7Kb*H1;CK8zWSNyUt(sV3||$0xi;Gt z9FM0Mkvnl%^y=gqUG9Ah)FC!f1ujlU(Hmlw#WD9>K~rqSl!_8OHci5Y%D{SR>7y!` zVl+KuhEXU!^yY2+LW&bd8*7XroG;BqHUIVbjEA2d$+@$IQc`hfM0LZUK+cYEA&;)? z>BQ8u1Rx2$2sfTI*uYQqEKVV#NkIx{YWX!+AER#NxczA^p0hN+DxoSr1?mix5tNCT zf>dZ3f{de3&XD`ZjtyH$gD~8o{|G1y%9V<-{R7#iYY$Qm40zqI{18dAMQya@17tmD_Rh2+H5PyO5{NcQ%VRFIM4 z6aaPr^)bd$SoRmKb)5S{n#UX}D2BBLN)RCyY@v;Alc z_1WIE_1Jklu8Z3I=3N8xqee;d^YbVVV0gh<>FQ2KZ6kg6oMPo!IY$Gr^*J7_1f1CgEwp^qGF+uq4MRC}ENMpVO_g$rXdotpe@;6Xp*-Rl|u;q>-^$nW!ZBMtu( zg5BrvCXZ2(k+2ZAIcJVxbpPH{>$CdOGhBIYG$(9ocj)5P%vV=%e+Ht*Z#v5rARriI z{~mm1VyjgVq_bNthreoHci$9_H$Wy6=d^@NozPj$kVl1Py{f`9-|>l` z#DB5dkSO*pB)Mo^xAQ)I)0{7{K8t3}|H}2{`sNyQJ#otY9zvRa345KY;34}iR61jy z#1KyTez}}Io)k4I=ZKxKCASg{IBiTlUzs1kZQ~*A{?t<~pi!ktgjU~Rab=lrn&?%) zDIO_SV&#XJ2(baRF#7X2?77cF-lb(0^~k=!(hpt;ToAa}?<6_zqreSr>W|9HvF{Xa zo)RM;2ve#T1P( zZqB!~fmvdrAja+hH=tJS0cS<+xHdccHRddhZ~4eOlth$O!3q~u*AWY)Wt`?eSkSaHFS95jqyh`&a-0@~41ZXuGPJ3HbX4hx zXI7b9+YWB1gSE9{ReyYmH+G5t$F(ZP97Yo(n?sU0nE=)l2#;-n-}OWjDd<_IajD7{F-73atTbA*{;WY)5 z!TmUk2mKcLW~Wwg+FEA!O7x7y(1m3K)Cx9x@67D{@KFN+5azRl_ojG8np#O%H$)9| zcOj~p!y@VI#cHFJU`@c)TcJikwFmtH3uv{()zl;6)l8GaIrl-kjS^DzzOJCeQ4X}M z%@A;zt{0OoStJN|jHPpj0b9PR99W6bS0);nSy2=21Ng0_9G>{3my6$5mW#QXR$l3W zQR6Y_c7vM(dY|V>oj~|Y6KBgzI|4CiIz22lXs@VCP=9jrL1Zc?H5dyTU(JBzv@6w= z2OC_(bc3DmyJ7RN28gcaLEj{L`{cNU0GW!&-+J9oKF#i&N+Yq$OHx}AEDwxo+HOy& zx5^JFLfRJN(lNX!t&9^I?7rptI;p#5f0+&IqGOlu-qkAm4%2qJzQNdEAGhLw9`FpbX~Jph+peoNu6KM{o@d7i zfZ#IY%}%>NhFs51*10`d@SM0`U`Sp^MwRj25NXUX5^j0U+v!Wob=Cp&Ufg*9+WIEBu zJURV}{ooCu9Vn`*aKcxoFC^K5^J3n7XN`$9iS7Z{zIO9z8qf=fC418TcF=Ku+#ob% z$1R)tn;O8M9hi%G)P%U=60!R;_YWj4f4R#)Rr-GrtXNo?|3k3)_XS{|CkQ7<16A6q zCkP%0yjvQE7YI9mKFb2AL;;QMv6larm2T`vD*FEvYcd*q8HKvm9maS4fRif-?2Zm*s&k;O!{#Jey< zRj&&WODRf|_6DH`_yj(a<&nA5r;^7>j4wTz$sXe!De^Hu%#C8oA1r{>G-+2YXvml^ zQSw5sbJR`iz-VO0Nb@jlBqV5L+5^#EbJRp^uz&!NFli#-mUtcS;auRN7LV?(m}JP5m~#|>dh{69 zV!|YY8oWR!hb{W{o1B2A*QTD6nk z79a-r;v3Ps!u^p}aM&LBTVbv!(^$r?+5;jrw7*yZvx?bUR2HtlgC?=b=c9ddgkg_I zpcFj`Vb(1Bj%GVJ44Ds=k~18?cnnXT7m+?fbLN&(JQ!`k7AzY?HhWJxCpaARO3nKX zE~b=~Cb--1XzwbU9{EexRQ5S#0o3buGp~D;rP(mWI!nV~9n2!#EculGAA^Xdc zE*87A-eJcU|BJjd2(oQdqe>u5CIByFU*IKRG7J~C-@6x~KKKy`y@~tKtRzu0PUtCq zoQSBi*7U-PN<&Gz%(sn3-WqFz9hq>Cfkx@dSJj}^q7_0voF-=W+voCivC;pW{PqO` z%poVSpJSq><}I_*ABB(1*X2)sCJgfoq9A3xb2YnG<@IZ z9X0%hn?sTo{xshA*(@Le)di=5H+k-NifLL2)d_Q>MSM-&uPB{$k>VX=vyRG!S_GPFISp&phZV%NpUb+k z@eWm^vrECH<^K{8bNtFh#V`WOBHEWD<_03?OtMlPp{Kn+kOv}Ru`Bc=BffVP4wZCD? zi4*(xZI^+CGmGWG} z_lh@Zal1jaou+Th9jgpdFzX$Ukf_jH=Y>~q3RmmZ3Gh9ONF((Jaklmz{KCLJd|Kmn z$Pr3NQVzcVduCSUtpu!fS+<9v-ChOp8gmJz%PL9*yzVR#8vS})S82ZOB}q#Y(FHXw z!-;VJuHMN=!Zs~OQW@`JVeLGv5GUAkL4e2Tlx~W@_e=X6kz$Nwh&Z*fl`joA0AvB+ z<&_xf^g*WVXZsOs_QIR-6>MFV>OyGV%bkfl+UNK2(!P4o-l^!6*u&g^E0sC-A)VT54GHWN{HV9LLD`sKmz zc_xy=siAV(Eho_tcFpez@r;*J<2+6Sfpiipa<>hJ$A3|O<&}J1t0R4Pp2~PPh2Z{S zUt+tPL1TOLi4$l8bu@~UK9dPlH)_o8x}N|iHI3evnfPjvg;QqgIN32k;flCnPa^r21uO*t+s?{E(#=oPjSiREzP~}X36ZP^YqX>J0sO>qY zu)kDF8Gk>VGW$weo-FgZq0yQM?X2lks$QRyzbjn;@G`G>82%ybpc?+$7sirD4MPCs zuRsp_nrOi5eRYti?OSSEgVfStk?A3~;axsd_Sa`DSR9-1TWuyN7jh{;8&*csp+Ga} z`jK=6sd876Jjm~+HKJ1>?^@A>B%YJA6lY3XR6(0IMr@}K@d ze;K9!#YJQ0=3@GH0}9E1ETaELqW&u|hH5}R#9n4>%|SP9Djb9YgR!;E-t?tj5OrIW zvNP-R+sXU+Af+u0G6F;aKp4#Y*S2EggCddTc)u;tr94YDKH=)S;72o6g~SXTg1vgm5~bpDy$%AGNh;K(x!pILtkfkn=&&dqfl z*RG}N0Suwd7PJQCMd;q?(YX)5Z*o?RZ=xkXO3E800|8e(n z2pyJiNebtTME8fU%_oR9pGyP-BdrhQs;n;@^b|p0@xwe0#3Bz+N2ZJ* zON!b1dyi!_6+fl*YLn)nCb3NkBqS=VdN--SYOE687jgoo)i||B2Xro%UmCTB9YBWQ zB6ASj8gD`_zhQ(6xFh2t*55J{#%ESYFMDxl`P@OT3V!m?UCAKk%=#$Q2BAA6CCom9 z56C%-|G^?X!+^mUhzSmb(!C&4OiCeLEvTn=YlpOEz~*7Re1Rxu?@F zWWdDZ87Tr|I}SRsoE4V`!Ts_w+*>d6vf|HGjjdihJ1VjdKwOC40D5mux@EoWJ)InH z>NMcNypta#h0%Ajyu4G>Hn9ek(p6!KXnf0H6ZeboBL9~2QQzWjD91Vz*~5+qaslc= z9SMjOzeh@&JLG(NU?l;UIXH*PotG#RRI(L7wgaV9WtuS*K{H3x(RX#I;U_+mi5DDM z7dB5AQp2VM+)XcFx?Yg~bS*Woz9U$__&d1KB_ICEQY6nixd!6pJYsBDiz4)khjAf&w$R0t ztSZc=boJ?o=BLzt@+*=>Y$f^B66vMa+tBlqt(?xd?(zUdadwbSu?PACp$d7$`WVX+ ztxT<6A9!XmJ?hLVnh8fa1~xP^R)ZR0P(eF#sX?AHQ4}pO5hOU&M$0W4#a(5n zI(5uD06WQ&bxk$ghPJI-Q9cknZ#nt+UO^7zZu7{ljj;HtFPiZst}7~2`;!9Ga_tR- zNG)Qk0~M%LH{sx(Wm8*Ob+Jv=$?1T671*!!c-?hLd9ef<8dO4 z7KWG6^Qay@>q2%Ma#@DafOT}S7jmLMc8Mo~5LcaFhb&qpPNe)MnDbY~d6$M)unIkY zhCN-*st4iA7m}h=%-BV!lyB1}KV0wk13|A{*u2wr(8LX+(BVkxR2pIo2mzRpS+!0Z za|{R!Fu>axqgB2gjCAJqK-5Mfq}VJ4N1GVOU|>@hIpVh`GL^|s9M{fUl@R!>;wB`& zS6##jkPBi+V>>^iK=9zTNcgV^yp z@Gu#idG*Iq4}7@mShNZbX2q|R)NOAu{H<1nQ2@BA+G#pdq3DxuLqrYrzU+i?pK9s% zjT9>DxmT%ATS=JWm;AX$^B^@QtY4XB{ymx}Czy`}Ztc0W)P06SxKTwchtJVl$%Rjs zGKR|vc|WsiQ9h*kX!Z2a61R%$y{d42l@6$}$IGCLS^GJqc}?aK2Jt?Aj4^hVrQA&n zxB%dJS!fh53){v;GOhgPcr4pNvS#lBXk!Es?ycD0l}dk7`Qs<&6gdUTjl9EIdwP$J z8v3A71h5>5)KKZ%f<7?f*$~L)h!G%P(D@r0lZ4`J4(Ob;Cv|6Y%Ga~bi2ELiTybAX zLlgZuPqO*hnAe>8U`NSdv3WmB1fG&NV+pWbLNXnH?(=c?_1@+f7#eE4yF@uL-UZ$vljmp!phwk#!$W&sma-P1wIpfsg53h4N(Z=b@YQHM~ z`Sc5bW%UVAWrptgzBKxC*C`M~VxRfM_+;9pTj#L1eBW7BSs}(mRTB zK1lwH>k@Avh%xiY?BU5vTIO@rT=9US$i+|_eGkYxnyTYCN!91jD~^Wstr{|(fT^4W z^2E7~ER(pVgXKZa|o){k-W-I{8ZVA9{<3UV(zr z*wJ3$D{rR{BP7wlKo<2UN%q z;3k1Ut6ET|JEn@<^J9T%bDH~~B23L0X}RL8@nOf^8oaoXvPG`T@GAvFyjRmUL2>3C z%lkf|ig_$?m^b4ZMrS?QI&0rR-x%z=4Fx3u^wrNGVHB+?blJ7~Z=HRAJ9764L^X&u zJ-|EPU25CtKU^I7sM;IYC{9E2cH=fR%V|89yEz2I+>1z=(Yy#{yg*9v)B|+u>PY=p z!pq7Ozcz^CTQm$es~Y_7v<0AeGCzN5iX+at!{&08Z(N1j+HsWN9MR&1=nGT(Fx z835}ksi)I=ak$|TP# z<6vex7qHON|X3+kGS2L`5A*VVW0V}xl9IO-$VEw7s0rDxr!FoNY#!1y28~eh&{3rup$qI%m2U&{2c}$lvVcLjF!#nJ z={g;kx=1(*Pa$x?hy4pKJW($UaQ#Lp0(f7h(p+;?;8T*zzS#E~gCrLGa# zJ9D}sEYyoT)@@@aFfN|yYmq&RSDxLAZ98+SO};US^j)v?S*5;Vz{2)30PCyGm6uq~ ze+c1O1ONBDg!+GPO}YNTc*erS`9JUB|N9*NPf@W($JYL@sQ4%MXMti6|1g~=U!uwi zx9Xyf?!J3JnA&{wli zwRJHYx$3_A+POUMlZHerl?$9lM#>7=M9wQ66rlSn+tV@aDQ}vE-vR6H8#M0&yjQ0? z+RQnYN{>3+UUZwHpZxFUrJkXCW3Sqas3~XgU(uy)Y$y@+%c`~%cRQ?ZkFz+rN1v*t zEnu`$HRl=JBXXV;Fr4h;{P@g2Ys*vkJHB!ZnTy(xh>Ae zy_VrnAgeQZ#BDjI_QBRB!ePRdJ7>}%n>oK$N;HftUBK#*x&y8e7JT`^)7E(`blpfJ zTg-8C*KS4JWEji%YJf>Z6_B)j(DAAHSceoM;G~Y2Wq!rT*`?OjD_g^=@E2;(v#kmz z)60~5AB3Vrgq15N+u>5IxoNE?B|Tf$k=lcnIM=s~e&I?bq>Zi}ro?NLQnL)Js=!Ga zWZrD_gHlcevI4Gp3Ux*o1S%CX_&PjX=(@m(LbOSKn&)CMH|g5Sul?eVD6FownlX>p z{p6k@4Rl`TYTV88IOIIq3lB^JEd%8RPj6O@R1OTA;tvgjLj#vu$hu~coGH3cc6|(m z4U@SIm`2o_jG3h%WHQTgzfaH4pB{E4fHgGY&dM4Oasnic&`oI>%%M$-F)Qo)njU{9 zlS#!=3Sz5Mp%ru8R()(@)1N1u+@+|#4Jy{r@N3KKX)D-49;ce!lgx}f>(c8*KM0pH zzGt9pjAaPinBy$(={B*vS(~@r1Lke}rV!|PK>hHRhGT8WxvRR&N-S4`&frqy|Abax z-R)!M9RPBBb1jOK@eR(lAaN&@Gm>F&b{0@Cx~2)?G5J|!pQUeY{3f&0(SrmjTN?z0v8|Q)JKyb>NKCG|Qd{8^|qJ zzLvsaqe!mMgi~io70u3TGC+RS4js zBV|irN(OMvju4Pt)L>)us1fyV8u_p#VgOUQTQ_pr`_II3b&!~tKaMTkTQ;SvMNC&9 z@JCO8pvWIIrrHvuXE35&-zc#Z(M=+gWYgP2V@ET~>rC$p)m^9Z)O^XH3#vFR$x&2@ z(DX|(PY!^lt?Zm0o$Wra^vVgRx5u>QrWtdeD?C|nd*s0!Zr?p!;Fp$qm z9Sbn|I%pO86~E%w24?AQTl%$2nbVolxO5oKcPKQ5NH zhwktF_OEfGr!khAj1w1MY%LV@Z$+D}Q zfP})Zq%)5lz1P?k%bM6j`OajK3bhxT>l1VHhmo|fktOGQ3PS!lqsL&Wjrk_TAp{lz zElm!YtNeYfMr4MKYm-L)t=g4`5Jm5(x3IZ1cg3NlnXmWb=XbVHVZ~3nQ^5Ps%$3ib zYuaN`fqO|=v|Y16sxc0dLW${pAAY~2^A*U;4=I{l#PADIDJB?}uEl4qb5PNUQq`Lg zU&VGjhS$-*--a|t=qi>Rj=w4Ynf7(G={g@$CQ>0yGSav_yZm&yO@pW6vS^{<9=GW; zF0Hr1jmW4em>x zwtP+P3DB)cy*oF1Fm(K|Z0Xe@6aB^t^Xt^L^C2z{??e@Y*fXzZQHggwoh!^wr$(CZQJQ| zkM17t)8F&;@AL1Bd+fFMT-TfvjZJQ7-@SqhW4a++Qz1})1GtzUQf|kPT2>(4exi0M zDw-joOh`E0<`6-Yq9Pj3W4-RPxMXc$KEIxED;ti*(G^AA&i7xaUPo9uLvH>s+Z{s2 z%fBcVjS2Tzb9nqS&Mz|%&CUk(Z(v@tzC$JY{FY|pFptY1ndNUt7uy)6|MG5Q|8Mdk z3(NmcZ0?VI7>*+f`$I9E7$Uf?J<27T*h|^M`ttqqSfA|G8^+iJv(&x2o-d12D$Bac z(g`+RUA6w9C-&zJb$EYFg7`e%Ubg+iy>K><*U`}k)c_F;&x|S`Hm)yrt+|6eC%y+o zpYxj+Z&$2rL+9z=N831nEW@$8@A7%}1G?@Yrf(5&kP}QOUxJTO za{O6FD+71;q}(s*U6oiJG`nQh5z;n_QZaFRc=Pm4au97A6)$9&KSTk@IwC5W%3?VZ zbG}{L@HIS=IcTZWzm>6Fcs_4m#w~9hZjg(@)e;xVNR{^7V~;}su}ay(#H>xE?ixJc z^le(O@};?_swLv@Vkq}ECXg>te-~uCyD?_k8z+>i@budV zbanm5g5zECwZcAWl2>n$) zB?<9C96n<}^O#AYdTXaqEs6Jyivz|sFKKozD3Knr=QG^`scpmYRF9D|+RYVm;+a=k8913<9u~z5b zP`Jek%ss5PE2qFwY}q-}>X_fT5BLp=daaIjK+f(gnbCIu9><+V^yANrD1?5~s9wFp zl*%;5nOUa*n7$W;4$lqd!*rE-EW6S*2=lr{7=-W0;I#^&)a+Tt7!KeO)Ac!Z1m-MC ziu-VkC)SCpxM5p?>qzPk@XSb(p{A~Gi$?{C(>r+foNFDl>s?B?YmFLP{qE? z$7^$n^QMY){;NpH!yp_>^*)voJASm#w_|-9Hz}C?j*kg&z1v}d<;z`==BRU#mbSiPdQ@ucJ@c{JKaLSmO; z`4RN@PKfsR5+QtAM2rBh&(@H&2&=47N>Wrux>q(P+wp7l-yIO8&dz<&Eg2wTkxkwa zOQ8Q%_o`=3mRs)akl`sshaSpcNQspwUZ?Q}P@te>6^-}mOxu!m&BnjuE~Q2MtySo8 zNn+=9#-1q^Y-g`w4qf2bX<59K@b}{=-COZ#CuZ>A8LN2Mfp~kpvn#>(2E5a8p;||O zbY1a{%@f;-?X4;c&F_mvmQfRLh2Kcjnl1h7pJK7U3_{e9!}|4pMZ@r#dAfm_5)B*y zz$SiW!mF3V!Cf+lky&X%7=5%t$)+G{oma!KSR9mC(xN!t0w=4wVlP#4+U?XSXHR}X zr8g8DC%z)CuiMK&T%4``gTtbBwxm~DSnc!dEZ=^bMY*I=Ak`Tjy~CVRsZ#l?hD5o^ zTx1+hX-gCjtv-d{QAc|SE$yJm#7c`2AlX^v@9a$9obl#}koqPfg>GdcS$7P-Tf*#O zI?>)hFB=V4RIX*^7N=gPEDSRUbpc(8R(9I(`ejy7Iv9)?;HmUc z8h$TGMz(Cg!rpiCqyvru^ zytqF2{AIqK_L}$e^Qu~Q`^)S8alLr@y2~qNFhX}Z@76qH$*%u6E!!eQj}><&`!#!ePB;$GZUE)6|Wr}lE6&5f%ZBsiL`9GBG&tM zL|mk&&fopKLweY;(w0rZojRoI7V(d0G9n_geZffK4D@`cqt40ZzAqEbs1hQ6j{)N) z#A|;xY^L`yRSv($ee@Cjd>`pt+V#@8clzUKjPT_^ZneZuKo{46w!ORI%Qb7X3a}w zn$3nJijZ(67MxJcyN*==@l|acjP#(pxV^lr{YVQcm0$o*QCn5j%jsf2{64v;{mnD4 zy5XoYnC+AKYoU%jS8eqDt#LBlg49TylE_2rPiN z7*KP%$fz9h(!fQ3%FO-v_AogpE1q>7q39n?KklIOSj*`kl6oSyRmhkWFk?sOx`2>* zJLX1K*2QzbcB$jp(b?7dJuPm#; z^>og&&nPVob+YuGZi#&rp#{96LH3#m2(&MQnVg!pruvv$!RRfRF*yW_wE4wFp^^xo zkeA9s`;EqrHT)slG|w3Ta`Yd_8S>=b!B-xt1&1Kz)}%8XSr{xvS^jksNr(y7L=X37 zN&I(zWiRC#b7D3Espp7{BL^(CaK`|*xVIQeG%O2QqMcG(1xAJxvae=V` ztA7I)C90#8Kk1C&k25wzRVyvtztTiwRrFx_;snHpfc!}AE=1jJJa=nkhC1#u0eZfO z!n4>rU!tPfCaP!#V@l*Ow{L|2`vgts!)Wr_uw;yYJ|&P$lmwtDFJq7))LXXXWsoj3 z%3|5W62Y&6V`7H$@X7DlDzt$*2L%Y>2%9olzzTU%h+wOf3ZC(+Z2X5~#Eg>Th3}PL zah*|PizPp-;Bj$C%n@?hI$wWg6E7wo^Vx_MUFm{-2@G4H!I~)VVVRiP}f(m zWf7sh*E~y_ZwWxuR&>&9-+L6HX%D>)si);6fmJC<40Pwc){dRK)Tmn+6AR;`xz@ii z_(cPRuMXyNE7=LFP*E>}p9_L2LhfH4E#$U~BpnC0ozSA(CvUp}eviV8yF~i>y8ih7 z{N6wPUOlepaU-4w?_Q3pW&?hA%618c#2N2(UVr6m{|%V0Y8!igu}vMEf+mkAx+ z!G0Hu-cB0EEs&o=F(N){;_%D1CekE@E)msW{qG?k$(Og=m=v*BBW2Y*xoSSguc-nV929*e7stDRMnk1+}z#((SqxJLN zN3iKJxt>$E$J@Jsf*~!>I=_srL+ITs(Fd;5_IewV*08Suzm`!}6i+G;@G7UUs=VH2 zNr(+WV9SHJddjLEsO!BvX3G)J@z3S_J8!!xX?IkL4?~PASmA!nprDHi+$Y^WBEfYI zexI+?jR>Y`6MI6-MX2zqANDzi;R2!nltq3p%8u6_nvwuqMBj9CFs+S^VhpLRIe3NV zM=^lS{Xnhh=;r8klD$Kyzk@~O|?H8D1!$O$`dt>i{) z`PQ#Bi>5-TIXB0WdFClO^t7SFpZT$H^RBPl>Yb;#2+f4+njI+odDYj)NHVNoQdGdd zE{}D$I-yP|Qn1n@kPk_V*xoSav%y++v(SfPRsT)pd}N%7-hqQGyt44c7ZJhbR183H znL$f-3v_H+qcY$oSF5U=dHvhUf83;n{SnK|#>#cr42rVu&1g=kznWX+YTvb{{*uag zS6307kE>7=7T%d^0Kp++KeR09lJXck{Klu_Rw+x=hxiJrvx=KYYX7c#zyg=-jQTJA zI~2zDx?zLId5L&olDdsPh9Fr3ij}j1IsF@0C0NDtzfJM~woIg_`;UzAzyHCsRAQ}K zW3%3D>ehP2V}9!O=CeL(j71?0Blj- z>MR>cBr%3{_D<80mLPFxrt7%pvopkbYb(rW&dhaA!xd&5pAT%U#>!gV7NskdlDyIk z@(TU+aZrtXB#dy|o4novA_s_oLAR|`AY@d?0d*FuA(OsM>r%6B>{yE;4I7=Uj$R+^ z-^+e==it`#%B&u?d~kkj$mrCxYNGk)tyZ0d*NxzDz2SnN_&E*eRI$(qxj-Q4n&br| zEYF_g<(rN1B!bM5`19TD>pi^nIPZMuT{;T_e#hat!Ktt1<(#*o6$@A&v_ERvW`E5= z)OoDuO?hH@Z*Ua7>WsBWG_VqZpZ(sJk?jfr|b^8e{#|?)(btfyN)(H%B zAHO+fpwtTn(IY0JjdU9Fd~eW!fJa*&O`rTQY0P+}v}Pl=GLe90SHc;!4m^J&M{aqo z&c5muTX*~?h=HOcng>{?`?FWsiDtty&Dxq@I%~q2E|V;a;6T^=xOa4h*Ej2Y4~pl` zn8~BnKh|s($C<#I;@^arKrnY=2nBpKjYWOy+;|1eac|SJzR&TIVj}N+chv9c(bT57 zp|#!Z^1)lhDqXF_*qN?mw!+G>T!S{}sz!UOMhV_VA>MFgg0$-Hfj#;WV{I`~;(g06>n-PP0o z=!qG)OYIv8&k)kf)i4NTE`;GxP(YMIB4H>|6|p010#5U1AuJYq_#4j&fuwGbG#DjM z(wWFfQAVQjNf>am%eHQmj08RQw@_Y3!zZ-2oYTbLxu$z>Np{v=+v^~)QBbs>+=>wf zDkynaqJD#~v+TKOb@%5V6qJ!WtevA;wpCnCF}V*zZLoFPMIJ5ANnTcd+RRPv9cX;@ zXVXm@9?Q{6LTp%T+`wajn4d8L^<$!(jJ4L)5(^QxtOmHjiL4c+3&I(Vn{H@j0~6}> zvKL_eyNsc9^}5pjcTWF*HfZW4ArUKCggGKy3+T?WtYt41d0fek4;Nn+l>=PqcbV{A z-hRt&MZlEj6>lcDsaqFs%wo;{=^HC1-j(uljc2|}uk1SW+!r#Ny|_4D)O$%XOv{Xa zNqN=LkO3s&=hjzzEB@s-o?p_)rocCy^KZ{pa*AY@rx#%rNmFuulrcY>pL;7I@1%&C zWH!nOz!A!iZS<96&MbJ91eqky%7@m4I7y}78;7Ql;J8%1O&)28hm10#j5wEQ`3S~+v}P&GJ>61JX$H&2?nJc zp_G}6q{QFfeoC@7dg)XC%enbuN%{Y>fUpD%bpPo|{GU!0sm`A?YHAocA&1GZds<;) zs6(gR#6QeDEi^O|G8nP>^zjWH2U1%0;8~!aYh0*DrG31%-KY-J zV7Oj9-^hpIAZ(?9OCmhz1#^Qbpum%vACmBMP_dQ+>ZdE@(<-@qlbLe-!lzqgXDYvJ zm1GFKlVyY};Tox^0n;@!75rjh(FtxOvGr&==4WpAEi5O8r4tgvs};-)ktRtt)(rPr z2Wt|Cc5XaSrZFh6rf}xAzoPL#cs~>e)KDUiEk}IJ)LAXfR4j_+cMLK`qh}43wOOR8 zjFECqLNuLP@9Pz2W0u16X!sCm5+d_p4j>MT=eM`BqlV&C0Eg>IpcD za_sQ3(vRibtv&|B8DXsvJ@R>Yh1o{l_nF|XZPf)sYjHc$|J(W_pI-80s;#@Zy8IMHxDG!S_fu~ zpZ-x<;eJgg<)m4^rbyo<3PneV&{j}E`U&Rw7i~cxq(fYV#RWTA@Q@#?Fpj(I6((cQ+L%)! z`_jqD3?$D|(Qc*aY(wA{wB=zl(u2=rm>wW_^^8OTKqngAz>-n2u2PbwfLhXS&uPAp zxn988iixdm=az(-xEW;%-lH=m@LposMO|D?SDirf zeW_)M))$p_v4DfoSgX>$2q}Dy7(XHtKLQ^w1*i(ZSY*j6s zpO*_d-qb=JhBw0_$pJIYgKV2)Jl4yHS&mr=c!xbeV`Mkz6I^i2aNIPdr%e}OUl5OC zpIVncSQeY^t%Pw*)m9iPMq>mE-me|c)6_Upu>!Nu^}43|<@m4MvC_S(ccsd5e1@fr z&`H5>Xy`AP1XlrAy-|0GgNLQ$p`9l#hia13x3`12O14%Bx5vea)CZJs0UTvhQYEqk zprA$svpHNKaeYnUwTn#YLqyaN7Sz!OmsuD_ubdN&&Zzyyz`HK~u^i#T$W1%hH2m=G z^D}wy&Z23f5zwpdMB-h~mCR@lZI-PU_N59@^)IxS zuo8dfFe#jPOI7?j!+dx<%*SGObV~kUKw6?i{wZ7ZqsUqf&45be5|QzH zy`JAMh!j%hQVKL|xU4;Tl6vZFnb5X)cA88kodJ?aXJR^=CuSPIFD*fmI#?^` z-dTQi{S}^OJO=VJmbdr&d>c_8U2|V6g2Vz9xnE&b)k1boE{?aUXv;51fBkOS02E*K z1ulU-XA0%e-P7Uq`Q6x3D8R}D^s$X+`}{B>XJyuQF=G=yiS&dga!`3fi_^Vm$z%03 z^IUozKm?5mO?1GOwPMO6m48s5?OHT+Wl6$=A20X3!=z6>9!Hml7cUnbzn~Cy=N}DT zO_-7hupTWL*hS|K_tz&cKR9qW0BLx?W*{lIhN^t|K8-GL$cY%@1Aw1Fz3z><;?hFeyvR)8Li!b&W~$-ui)+1X>O*#8)mNkT zPgV}?8QRZ!*cEEn={p5^H&QDBLk}_V>#K{)tD6s-j@+5FGgho1m8;!q_1?E-9uc$`4#@l z+bIuBB5sZA5dOdoRzP8T)vsDCdI=+AHY?4#IAZ?$=%C!LYDo|$mYwQb??7~k7kJrL zM-EhG+&+;1)*+-YXO+0n0eVIn%1)3wF5&Nw4^Q4sXWAdj7r%k4COFZrhmK7N?@Gzl zU%q-*N=VxwDYyHk%hKe^vO=uqv#uYsg=KrWe-eb#@h6m*xEf zoloEb=$`_bUZ8LU05)oJL%|Qv@73-6yY!Jur(K%NSM8tTWD(j}!47Lqb7#C2Q3SB5 z`^<(|miLw&%sW9^fZ}(()8a+g2^7|e5UhBxH9J`U4;CVL=|1CtL)7X;HJ+C>J78G3 zwf;U*F0&2kW77N6&!~5ZaZV}n3xZWyG}Hq2xb{vc_n~!2Go7fQ&=9@-u3cuEsp2{A zdWv~4Dt5B;rZGNZA?KK=`<0ug81ulejwjrSObDWwV`TbiT>>Ea)lOg`We*7YtiJDZ zKOdA`T*LmUT`>z^(b;w=1KYGidpMa{EwUYlf_5WKY4Li&K7QN&e0#O2RZ2Fvu zUTQhKiZZ6?l+@b6yO$0h-4(T3Y*WD4B-Vb-zW{Dk%)f0u>RDbezcTN#XD$;lKH&Ge zS8uLABy!Le%LJhh1iRNdWH>NuyQwNk|s4(H9-@$Y$#fSDkVqgHbj#U`r^yp(E zV;%jaQPx~?BRTu8lGjf;9)*>#z;=zva}7Uh?qk>YueYjo!S}bTx83DvR>*>?{^K(4 zanTVPXd^0){w(ZjS1?7tKVtB`2FsR4X!LNmOaz{wTJ)S4_M-?J0V<{TaIBaX?74($7hN)FIuj z??WKQ)Tm%kaU^b~dd1j3r)2S9iQj8d!Xhq#99aYNIXk{$s%Tzn2{$5}%^(uaG^E)V zA6t(QlUgoWl2Z($Ng}BElP`6rF8rJ?v9nPoSf;7X<5zs0wpDq59w(9OC2{aMU#^6_*SuAC0|qDNNW2L{%68+a#*Gq~FQh+wl)doF z3GwP1w%N1xMuz}$Hr8k4V+m(*Pw7ztncQcB=t@m#kNbGzFPTTJbOVyR@qtwt`_L2; zo4s;hi(U7qFw?U=_Hj%iQ`jO}?qLC6C1fqXItM)2>O3zBi=x;(bpI&f$$xqs5YTd< zi>5-rC)H`hSfuKC{AE^xE(DrId@?QNYV|U8Y3%ui^!redPp9LVAm8nALUJ%b3& zAkbAib7h7B0k)YSWi$05PWj82U!VAqI{G8yY!P{zlYkXSx>@FNUo^73N?T&8m zpUf{B!5E&595w3UdoqnP=q7NPJbpK8R?u(@7~<&Tl|*EsOggXJ@@(yJ&NmlAHmTI7aqRUpZUyl@ zE(h3pkPF;~W(3yY>R`iPsZU=wukN@D!-8xeDVu;95E+&uB~N)#uq6`Wx%jLd81`0D z0h6V|rPhn|H|nF0tdQPgt=KScTeUT$c`c(pU-T^-Xj(08=#CDXFkJyiKNE6Xn6X$7 z&1R&#SW@O7BdTVgmZaM;s3(PWMQbuwP-O(nGCx#yd7{HCNQH9LX`a7zS|OW?LLs(H z^2&e*j#nN$xQKAQ%ulJ2!uD{=zM8zm-xRk>y#t)H0o}t0a6BDujp-)rh@ps(QoDEo z!|;pI|FR=lI;)*{R7CI#f~tNm8HbTu*%NWTwTDuHY2bwC>=jU@Pr(LI_Hc?w2yoF) z8de!?t|FRH@?+V}QG*=TX#+Yoyw>G_Znm#>Q425yxZ_&I{zb1Gu zU{o(Hy2Z|kq0&K)lW8CMro6UX+GJ%JnLaw{4`9f1MzB19#2il@4t{coYf;)AO%Z^w znd`3}%^#2bROdTMDI;X$SFs17HFpc>9c(kh=6&J43j&M6gq z0-%xq7P-$j1UjeOZzvzVjHU}Vh@0rOF?X_7Gix@RP(m#Q5hZEW#z?yE-$%>Ky`MG5 zXUiV2T9SvAGtbA}js4hMy#Fp2vP$TQy;3fork=#p?2MGT4VXHDY3cxy;bN7uwbd!u z3nF%Mt73hkikGQll^%5ZEpYA&JHbeMw!5uf7S2wHUWpN}7YEHtiY@D}TB} zS=ko>lRv^ILBZz@f&jTI#kZ2PRP1O%I7AWysNkB7e4os2L=fiWJ9cERx+sze%0)bb zCOAH*V?+M@AI1$vBUuF;^A#`afm^!Y9Zy_4=C_U*i~xp+^Op4BcquhpBD$e#d(%3+ zY5hc%Q!aAk=`iV^8X$0GS@ypo%q248*^0%`=aoboO)y3MS=~+ zc-%tJ8O@!fp8Z&OlKd7*Gqq7Iu<)3m>m7@kZe7&BJ))m{j+Y0aE X2^*7em+;lQ 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 n7oyh$N@& z3OqRi&q&F_HZghI>=iJ9tiP0)uIT&7@$;TLV}DTpitA`yC>G^Sbti@ysKH+)2XOw= z4>4}BTpFqMtM-ZhNJ&N&uLeiEe|)u4Kyk1q?G%q+PO;T!bf1vk`1Rc|#f>HxJE8cS zZ#1fX^xV#hc&>Sf{Dh#-~^C906#j8|q_O8yqFNk^OJd+G(1@k&I z)u$Di&NnTSjl26&ZpTlCt5(?oW+fO{dCi1#pS5yiDz*q3iKUVID;3HLO{z%aK^Z00 zn5;8o*CZlHauM#B$YrKYa}SPV0<#`JMTwGz2m;P;ck^hTSzhm(Px8VMRu0XbNPn0V zgk0^|Q8^xZVfBM8W#E({^mbQ7Ei{PH9xU{lHET_E2Dd4IxtFBDto#0jg%BAo9DswIC>xC6=H>A(~tMiM~C z)N5xaL-2>jQm`^`akgHym;&S0mm`3L8cAi6v|LTsvwP46JI=;HxNSeslubFFj;aIQ z~vNQ_RIS9nR_e?kTR@+J)BNt_!XMtm1$Dv0bl5M>ntDa6qz9i>F=j~RQBpec( z+x~APk5H6Sf%*?wta<)*?SE%*5mqKrYcXz;AoROL`SqCZGC{@3X}j%%TzPP|&D|uP zreF8zDi->KKT%w-GHy@57>`XjC(67{5iHH52GPs&aIHdmc27kip|K{}q~S;^tErk-CnUVV!C(P4=H5FJwz% z!{#si;VDH)MVc8c%xRj*1U?bE{nqLw6Uohm^@oZJ47pCHxys4-{Hc@H7y03h;n+lP zW>)p`b^d{&k6yPNk3yuFygQH6f4>o=iH+9|MLLWBN<)tn(tp69iM=dThCrH~e0P-# zmbqe_3uo9`0B{G}vpzl{AaTqfL3R5vudXpC-=%-nbb7@eb%M)yx)aytfVty5E9k>T z%c2yK-j_Yxmr|W9yh$^_aEo9@?GKeSfx$pJB;S!ts*=Ccwniv-8>}bCgV^?b9ajAC zaQx+|{>voR|9_J8lP2$5=t7aB54`)Qc_SIm!L;d7uD&)q;0F16Kl94f5K}RU9+n=V zpk%Ne9P!l9^&~9TcmGmi>XiLFPXZfdUs7kIm_>|w%)G2AxvY(R_k8F)z3)%H7Pf4s zTW~dPXsU0H@)gf@>(7RA`@W~@JBn1Py)@;6BpYH#1Anx9VbGmmaFGniW$Zog7`fk0 zT_g(S^=-XIM|3^u{=jC@4ppu@#lsgI5N#@N9@(yhbte?|1d+T$tZjjKkKGxU>1X|& zpZHx?xT(ZiH+%jP@TgMO?phU~+Gt4^3gD_#S(mQLCxVDC``@qy5~UPlFyoxnS&!1a z)*H{qIDh3h>Gr&OUhw1~Oe1odi(b})^Qm4f4MY)1j>t*{8@UBaM$9M|W*B+jWLuZZ zD?1!Y^469r&N|y_tz?l6^}SfLNELN4ScTDz-gKwtV%aVBS@XE7J07YMt!hYdTjU*@ z-ww1{vI$OJ3wakazF;Vzf(Z0EDwH+26@SF@*?+xz>koe8UU(V^LUMF(P5h}DdjQOq z=rDBJ($qt+T~w|^G;|k#fj+kLf0f37G1+nUcKdX16lPVrJkcd(*wxzo!Do6lxnO%k zacs7FatRg2G--9Fgvi{$HN<3Ok#}IPMw51$eyj99;2xS&jWFDggQEY6EYU8lZuJil z_kR?V3y0KZ!$91EQ=Pz3AK8q4(W0Lt-&y4g5^&)CA=X^ro%0h;!NTr4^;^s(60luk z|8)R)g<<+oC*CwJ4~Yh=g&;dPWJcb6_=$oOC~~MECee^St!u5i;(v^1>h-JL{Zj&-G-W8|m9&n}|47(vH{3jM zB2Wy?u%mRS&(~Gse(#2hMtM=~of=1@7cy+1vc6hzF4q!PE!O^j0=*zY-!CM(eFh5^ z#c}5LLkobUl45>IjhaUY-{=L_vkgvN82cN#Fdv7L01G#+`nOA_Ab;?x30DLAkHw2?yKmHuPw$QO)`c2j{6Z)VSuG7h zk!~;H{LvnpUY&!g4YfKvi-IBIpe_?+1?6kKD_(0_bm0&n!974|#2^$m2` z+f6i&!ctD{ZcM_I&`b;w;SQ8s6n|-2j;_!2q-9s&7*y`y!+2TvgKo+m!K#9=I$+Qb zf~sj{R};xm8amd=M5-pyMuNdIXP~>y0mH8A7J7*JOJ!2@80yty)jy;J8x4L)D2A#T zlNOMXU$+@n9aO0gTx#1Nq12Z`NVK7&w<7JB+v4>uj#crg=6}MBEcetp z+=0^&SI~q8dK?kCQ~nuF%8>wEPP|#q12ZF~InxdTTi@+u*>9ZxzRiJ6%%ShwG2M3L z@}dtB1!W9_AWb6U|-ARb}z<+`HWr*nN1wn$r+ft-U(vEa51%(`z@ z|B*G!jdmdV#V$`U^=b`92!Gsu?&yB38mB5Ka58y}wWsFkpYIy6)8hw^drpRf*A11_ zpZcwqJc$dfYR9vp*7qT_&%Mn58|^T=70vTtQE3h3d1g4!jk`Yes0N~;+AFQPe$b;# z)c!7Tm!;Y)V7V9gg6gIv2Nkq&@^$*8F!|ar6;W0MC*x9*{J1;@fq&?dOV4R+|5bKp zA6lH!odiD%yPHjKYIMj{PgJV;kS~efNMf!lwYz=xxiN1B&C=Giv*6wH#FBPvP0>IY z+*>p=0vLA<6uc^OHaHKm@vCntzi00{ykl7y)e zMTi`RVOxFy2pMQitbh2n2U(W*%_#y)fl1%e<3R6A%DQp6)fvIsTERpC0!w0blZWl-i77BPHCF$`2H^_E2Z#c36UBUfN&|`hOmM4p;2BV$020z^?43>Pd_8 zdB1>K;ly~ybXFM=yd6K}OfKE@!aj`jEvG9!U23qM&oDBVCDp_?kRR;d<7c5fvC1Q( zFn@KMRa(x_wxFg|Mn^VF{Hj6V#Aw!Zfu@KlsKqeSU$>i>_5-N%9dTq+0^at`K1xon z80?G2rhm!cRJ52*dwP$q$nakX%juQds8!7QqK{{Jd7)AY!4mwWXErIIBA~l*Rp?N| zBjGK|Lp!j^oo0l?WryAbo`6Klru*AO7&1lC-6=C_TzZTIRm~cSYCdWFBghpMGAzJE=gD}NRK+Y3Ah37G`YS4Lr{Srn8q1W5rN z`j&*Nu$dho6k|vA;50}w|8R76Jk$S9ucKS9pOaQm*T4u+-l5v55j z27lL*QJc2*r=lw!dD7qsy?w$VQWsXuEzxM>2;Hp`MgSfxn4ac{O_Lghp&t;RCFye6;04KYm`%fht}%DGP$`LuAciP^%n1W(l(wmtx|bX;94y7 zdjSLOEkYJwY^N7YLVNFAqI4i8Pj+zQ>3_3Dk0&cbGi0k^b89|oeV1E7aW|(RSxniU z@h{WOk?SEkl2i~>#&8Y&io+BHu9-Hps@54&tPH!Sq2Fj=VLcyOygG6gqs}=Z7R-2} z5G*Fr^Z#5)D+VZ+7obhlYh1aRPgd5QXeM`F)^Q&Z13xFNsiMt^y1P(sv48xC z)X0REAceIqxXg1}{Wq-x+k%DJ4Y`7foQTh^;e)==X?mE%6U`(p%KI&DukZvAy z|0;mL0PR4Qi?>eB&z4pH+WVA&Vw&zYNEQc2X=49)L|VndCHJNyiPlt5=}pQn$>5ev z^x+JWt6ufU8BfLe3Afio^Jn0ipUWcozGU{=l3wDKD&tEDkbHqth<~W`Yze=zh$Fk} zVrZd?Jzb%(RfXf8gI-{wo3_)ym(g`~-$_*W(|BL)wVaH8B zV(Fm+3GjRxOw+XHMD?%vxvcxglUO$qIyO8weN|-+ctk*3-+!n~6foe-(bXC8RRNJ) zdGnHbY4)U-HfVH_L)1RvIJrQ8Z*AR5Sc1|kf{g0N0|JrqJY7`wlbJd!_Sp1OPA^{WVqC32k%sQ1MLu_yab{gdkx0 zKs6{J^1bcmtq}86>K9OKPzE^4u66kKl}(I&Js5vhB7FOdfQ?o^**8C$ayaRB&c5F;dOar+Fm1QQAUTOHEPZAY_>Jos z7M;cG0Dr#Gjxwp&{qCI0Ic2>k+hFt{>@84NtfXzvjj~;JS;!)_KadNZVgAk;&m$qx zwwy`8*&zgSJCljPk)PliHPez`D33G#5m?cQ#9$%>umz<};p5KhEj|JlXO!a+Gh>F^ zTO^)-N2}P4oQ_tcuTMPbVP|u^Aw4vG-1Bfnaer6ftOPdhimg6^k9Nvr)m|XgvgPY- zz&rX--L<82+7{qWIriGoOJ5W0EnanE)>T?QA+v=rEF zmLoMLmB_@Np1q)Pk*kYi01Mcj*Z0+sZ>K;i){{GQX$|Pl^HGEvTw2T{d=n z_r?&$4yeNC5)wzf#V6b8lfT|DfS4f83o;Cko|xN7@X2f@iVRgtm0~RUf@UHza(`kB zhRY}#fHtCu_l!Ba%m?$Mf-J%zp@Z@Rkso;sOMWB;I^ZciF2h{IKLgrlOjkos&g?g1 zzv_Wx>w|wGHvw>2DX}Ze#Sv3b8xSRY%?$77d6E#=zlBtbwb54HxYEiEX;qs%y~Ee* zE}tM&0hl%hRh4O=5-t~cSY^&1H-AY5)EO=m5;M(;>Bd~zd-KvhPn-u2HiXPBIMq_E zjRBYkcfW>jG(ur&Ojd#7s8bV4faX+R%(RF7>$CRE;5VEl{-K+L{}{UEvPaiDofbu& za-tJC6!#j9vGX=$F{ytN#dya1ehX~E27uxG7?()>n+=eej@CvDgzIaz<$rv=ZBAc^ zFG~}YkrmsJr@+l7s+PEJPeOoHyU?h;R)`%-Jusj8)%7jkN>yM-S zPX={?WI;4q1vAt|I2wL~-Xz{RZ4~G|u5U>U^atzgHvzjQ3&-VOJ{~o!XHv4kUzD;} z5|rX|_t!r0+Y75Kq-SXeSAV9BudXc`#niL!f@X)MWMxAn=>MD*Y@q|NK;ou$m`lpf zrbj1pp~_M$A-V0#b#9mexR&5vE666vtmwA&VVTSt8E|TOKvZJ*AmD`s5MM4lqeJGf z){xIc&mG2+q63(xTZYWbgup;Wh_=r6&OaRB5biRNbM z?)gSV|eH6*H1NrG#!L<-zlo;j-EDTW%yWq{21)`r<^KI%rf8CRMftCXP5W zbrytR9=^wKDx1tTt*`LpTNa%wl@CV*CW3V6AzP!TbXk{5rhnYcaWxBGte8Ps9p4Y1 z(GY{<-NPqhY@Jhgpk26SV^?h3wry8zvx179yfG@aDzQ3A0BxT0cQ6HXJ zm`36kvZV1SY zSUJ=|=MbZy&xCTEqSLaD`E@eJ)2nKiXsOG@GcOKMD9gF>eVTcBwOz-ft{G89;g5TP-&PCTEqkzg2 zx=e9{McUj3n~rzI)0`psrC^D6j_|--s`Mw6k8d-0?EqRL zD;wza<&(?t6TJL$-rJ%Wx`%U4Q!bjk;OX|#&q&Y9-jRT0PHjc++P@bp@Oq9Nj~)M= zZhwE1_Lj)7++Y)=D1Rl1`a0D!C#%OiGiYoq)KGcigdN!|Z4-(=se^07T3RC#E^U~H z%K^y{Jh@ye_w1_w`~cd+DU4Sk7Ycfz&YTl!2nmc84_+&6refR4HURL_UN`Dl49TZG0joEaK6BiIY zG?6(lFQvJ(7Kf5uFZ-&{fU(t%vVl-C(a2Hah0VD;cJz;vgz5Gu_}A*Oa^kx(H;RwQ zLPZ2+he}z%&luC{f9_S9foF9}7(hFmhKe`pbynO7B|b_9=A3w#A}y0lCmqZKt07i1W2~uRgcqJn25rej4=Tk^ z>$2WQURX8TJE6TKtF75xrwq3@%fa6}UojAp(Z+;uJzZ-odJ`n>9Q~E$MP-4RApqDw zKf7L+n#auG5(o1gRwrXbfpu!k|4K-th|%lG5zV^h|FXv11fS{Jg_i)?lwB_>NRdyQ zph`@|w|+F=^d(cKt*tkN%fAM}hag({idSVeiXNm1YM$`<61~DR)?w5vsdG?%k3V1H zB$SBy`aGm#n^_93z@TwuOj+l=(Z4TRA@y0#Ptd;I6+Fn=Cc_8&>xP1TqhscybjZDZ z1!$T!=;!UTcvYB#&Xkaj|xZddBLDslp;}7YbMg0mj1~c{p zd)$W=i99d0k1320A+QtMovJfY>RtKKv5{Bw;R+>E8Omc0%Fy}MiN|nEwv!!P~rBq zp~gx5$8hw^0B`3IJI%5~Xt4A#JL2W99xfdSo&0#GFmUgFnaLwC=@$QQ)ohe7BZ<*1 zzE)6k`rx3vL`bmKD z$D<2i`c>V`!y@fbw)CD3HSTMc>a{hlOOylY%OG4_h?+Reow`u$#e$=l^FdSCuHUcH z%pJrs;mBy>lo8jt$61fDeQ_wh3^Sb zV-uu-pppCzR}Ap0cAcm|45bRjSRyMeZb1%(vEdD=rcQIwx8`{4({`ZlhFJd2( z(BkjuPXkOjvmo;nhk0nMSamAP>uH&|4l8fH3t!C}-qGnm8TV}w-q6KBz=GFB<`OfstJ3PmS2OSvZ z0ms=GG}lDT$!|aA@`)eYLaFcLFtgfICg$PIk%7FQe%ocBJ0Ild@1B*(4|BBN7$Oe{ zlxS<3_$ZD60_NUZES|L1bk|NwW26(`8MJjV(K%CDj+!tUI`aVHya3XAZ!C{B*&<@O zH$fgwPG}ohInpAokzTt_hltoco=Aj^D6zp=EG{I0>zEOWjMVMTY6->5uWN3R*tMH_ zEC6g=OR=Foa(`oBv%L%R!Od5Angeg^gDSz}=Nc-?pNFB@z>%64F=X#}4*RU?>`dm| z)n|e)(>}RPJtthM+ssZ?-^{$(wH#HpxP+g$=@5gT3K=lR4?7ZEyR?*r>Btxn*6+|k zvo%~x_KxMW)QV}+a*$dymUUBb$8$9{cYxA6lp2=M>L)AzcG6&I)y9$%<(P3yZJm2# zVBl)UM#;31E%?!%LF}W=XGju9+xN71|GbI>rk!DtOaDsTF7wKTNTH%XHM-gtXA6VIdByc5M z=WOKLYZZI*VJ=104o5w3uuT)4^2k&Wy1bbQ9=2i=Bm9~`Wa-77RkntSA(=^yx0L_V zDmdBu_iWlmVX<4J5Zr_+l9Ui0iF;$xix%Hfc`ii;smgyo_W5z7QK5yMXpDFFLMPvU zlKSGx+nOoUrks!cvW!K(E{+!07zi~&q!cAXPb~uzl{0YHSL!oU4}O6OqBo+QrxK-I zLiXAhqIB)=NdQZWR5_|;Pp-Q0LiNYIMIIgJdu&~9xZ<6`zP(-IdkntIUU4+!rKj^1 zb3qFm;s}&4N44X3IcPBTH_;{cg6pWK(J9<5!mUi~;C9rN=KBFTZEE^-0NjljPB45u z-b|d5iRm3pClkZ=#oS+iRVJAlu;SLXKVhp0xNahZ$7Pd$J=G9 zX}nufRW1}tS-zxYX@lRj0Q*TUoW+Ab7qAp&={~3;N~@}8zx-bv^IKPsMCgu++Aab~ za#!c0Ho}dzB&Qg0R%j?i?RePiQTz)M4sH#1lVW;!%$X0fPtaK!4B(9KL4sRs5A`*X z70bSJB4B{&8yk|IU}?Pu9~=95OuiGe1Cd?|xp(e)^(brUg)K#1G+M?ax>D0r7~|V` zSi;C<(q#+-rw{TUe8%A$ot~H=`WkK^NJq%mHRIXhkQo}EK~{FSWrh`_SDTd-78Vt# zGjXu@S{0+fiE;5;5@b=?c3#saf1+2?b>EaS~>tM0`clV9x z4D~fQ>w%q9lSY?Y*2KoWHCEtwrBsH$_}Na{r0(;ef&YQ+v(TNmuKMdZE1uK5@cCsF znm8vZsRH~LY`Uh%ndU}{M11wuPe6(vys)WVf^M)uIPpuN4`9QEr1verExU1jp;6_2 z$-UYqdKVOP&;}EvgZYQ>lcqFrx$pLlUGpB^*@Idx7*B|#`Nwq|;R{}>oPa${AllB$ zcNy!vWZ|^OO`7cu*||I^^OnA8*Ue5LDw@F=mva*5x%zm}mKXHYZ0K@_)}CMIa*?FP zm5J#uAauaO5O6V}qT`2R!QU+TDS5KQh^)_XW5YNVjH3K84R*abJY!b_TP?O#eCf{3 z3d{#xBN9Sl%4g_@i3I4~3Av*KdQcx9j5Cl&s*QevjK}#grW-!Q4&!Z1Pv!}$_U25=Ee+U zrcgWC?(^j}y0WT2Vw3|Xu5FT34z^>FMpr~=F@E^N4*&E+SooVV6Hl4V{uuw%T7l`a zmf$a`GLLiF5pR@tDEoW!rQ6vb1Hou8=RD%k;$tT~NTbMkc=q73MKAveZ8V!AIJq(? z<(^Od7jR+-b0xd*in=`CPr1Yj67Sw?JI4*W*qd#{Q1vi@Pny6se?l*`yT17D9({Y- zXTrQ~o|uB~%;%k49u@hK!+V*)LU3>)F^R3!leVWZ1>;A(w#rTQaq_MkJ)9xU1YVa3 z!n#}oV@>KXW9aVW+y08r?tavS@@Xp`_yt<^3D6vxnH$|_^Xn~jzN@q8aGkf`AD^&R z#%RyVNU=x$Cw~N%*g?nQESqvKES5`U*DtSf8a*O@X*Cd!Yv*pZT9j|UH1G%Izujy< zc|4CbEk7S@ygTd0@`v$`L0q8xXR9_0>_(-a{w=bPtoOpGjEluXsY6>J7lw?*u4%&G z1+=1a7er<)U96bk_7}DX+5RjSCW&N6$k_DwGpzT^Cnae92RYGpE zR)wTId8>z&(}6s)(f!IjlVwOrjg>IPN9XI5PDZgl1kgewY4cM_D<<9 zaZRovYZzz}h7SEJYVd*mg9@h#I~^>flmPwV;M7P=`^#}s`8`BcIKD>)EvK6-K!T2D zT`daFIIAeaz1lrOG_ICw)yqhF?Di#h95G6a29TF>i7jx_-`q(N3O*Hl^TZQWRt(o) zj2gT{vQ|6e@MXN|1H;=XF8S-c*7NP*-XSO)6HVYI@N>UDiNQ1BT#l>>?Z+u%-xIS`=*X}i|N$T?k*TzJl zBS9(!`Cz2kP;};@hL4^p%|8p)!53m4;f2w(FO@S~8OD9J>* z8Z^FToA2-}CWHUWSCir$6wx%wtv&+k_e>QaHG`>$tRfBq&WF53C-KxEp@*so_v{>T z*}jk3Ug?RZZ^Tc2Te5hggT`k&jRI?2Q}~%=i3U=US`<*^SM^0hS8z=DER>3pP-8x|qpGRMlk7F1aJx1BL; z+Krbm`h>Phsbvax6&%cp?+;Z#$dnHcC-oJUaknqA+Wx@qwDoJVa+#0haG!Z1%EI5d z&(3QijY*CBlHdks z;OKC0f`V|)E>7mgcBvoc&@O<4x*5mfLD@Iiz{=o5k90zFv77(*G>2Q=caD!HniLg0 zpYDGehawu#7)q#Nx8^0n?_^5LV_Rc0uw3QaS}qojml4$FhG&OHW;XXDuu&cCbi6bz z@T939_?HSGYv__|Ng$L^k{b5@xlIur5zxYGvjaop(~m^bFWbliLU90RNO?j#Cj|$G z@ZjKB|0JgHQ|#_96FbY_rY7ef+iH@Eii-CB839cZ7{ZhNYyDea-&OsiKalI{9NZp2 zYMHfGzG__0#%tr|{bJ+)CcFTa z?u5F_hJ?=2fDg6^NoKqXH_45@lv8b-=|^nOf_YNh%ix{-Nqe%*{ghoqfWDMH5W!V* zETYheaLRh$IK(NZR(4cRK&Y^*g^x`<2BBzQ491xH95LExg^phfbTN3e?E`L;`T7Wv z>JS#f&i-f{%sq~b2`law!dqiB3vo2NRn4Ex6K9V-;FJI8&4k(a`Pul{`>WC%B;bYp zlsp=hI_~OxSAVNQ5Gs134t3k)97NeDg~U-Z z0|8eh6E5oIW0$G6J5v8#77-N9u!?x2ESW7wvw5%j)vjgT#~1Z8g~0?$D{(O1+^l;! z^)j7j=pEUO&%bz2boBUZRa*kh>X?3zo@sRhnqFY9mFJ1gB--i(P_;#-4TGo?V!~@} znmK(QkBSt$wh{E2SE);hzmH|SrB$@Ax9Gijj6CRn5_`*$^7 zPcK-uql+kQ*{ z%KFbN=>$hZKK#^mRSh#0X$I!S0u2{GJD2Tg`7ge3t0mfz%~Wk*hW7+lT4avc1H`1x zH4S)Lmd{j?SWBp!j>%yy8hVuMysAR|{!^Yh)Gm+Xmddw+6sh$rexXa?#xTzUl+f_p zTjLm|pY7&0l(NJ-4f3V$kY(7loqAwoP)aQh0w-<74W!@jC0GIRf69)8_i-sF1?DBP zY{;G`cpH;D3ozZl*>`V`SjcpGUhog3h9x8=_P!$WDa4VLq<U{SYAJF*cMn@^MF)9^~FJ#v1|LZ%oOeVcC(6oOEXArtJkCZo2=a^KhG?;BOCL=t~MPide9nx$m zTLFdTifZ`L+>*2o!m|z1<>vH$#!$vVC~J}R$wWK&kAt>*o1oi_-J*@BPI$TC@{}3& zgC5ZUt*GpTJ=8B|sMA0JAb%DpO_0!Q){-*(@i+#zHI?1{mH7vQ$s2ZE=oAiS9Vx-a z)|t#2Gpl|wAnZ?R!0ca2!F1EwgLx*5cJ3dK2|l4?81EV4tu$QEu({g5H;AJzZ)_`v-FOt1ph|~pcM!TdDsRZ-fc1_Q7B2Gatlf)V z>rmAUKmH^lk)4G5>HJgWPzYzg4~z-Sa^XAb|Qev1{peQQzX7dv1Q+ZrK4g`gi>v82EYXYM#k+@oX+n0{jM1 zReAU&RX>||WUS_rqZgPPSL?}T*j?`2ZVY>g4T9J|7`isp*!!D5tgKtB)0S_;(wFLd zLCf@&`cJ+PX@=kbJ#*W!{T-|_kp!t^1guEAtyPznBFZ;ifWNS=cQ#LE=%EWg5I)>a z{V3`5u!OM*y*DGnR2(V~KHhhd&o<#$oex0tOitJ|!lmW*W}>D1@1cvaqv`J3Su_Kz zqcb`7z^bWUn9Qe~R{yLHQUxKLwOUbTVN)7RW$;Ed=5L|6X!v&(4Qr|>-Jj-<9WX^V zq@-0dh|Rsn0y)9$0?d<;THV$55bv-=;k(2Q669%a-cN-BSyXjJ5JG294_LLH25Bfn z)sKX+M@NX>S1ESS-kR~V&yLM2O~Zm;_FO1E&1kQ3UxRrb*c@t8#pEo8Ywi@p^f_#H zU{9a}Fkwd^^3HhHE!n5gFH&xQV-TfAWUywIu;gwk0U|R^O{DN{WoR=;=~;M(1~s<^ z^GJN=p*I;)qb+gM-F>-r`>gEVj)omJ=hW?YGs9_|w1~Yl$ z#AO9`eT5StuP2~rp(ZQLif4tM>-~ZDkM6bK#tX6r=bK`ajS|LlP5`Ro-y(7*pTAJR zJAoq|;Bw1A%UAveh0eJ9#zePN6tFs)C4hcNxmKEG+o@;=n?;bPa40|vQu61Zn;xzAt|KTYAIYFnqKZlG>uv+%zE< zzD0MaXSUh?n+m@4uS{sAlDvMg=$Q(E6IKcua9S`5i(KG$lBR@?ckKHM@Gc8xt*wxu zvO}T>9@i|C;fH|v1KE4g=lndyqD^uE|N7zGiS_vEyQ7`#)a8tTjVpLA2Doowd42-l zvcbb6-Agrs&TK@dsvoODN;v|DFreu&t?1pCoG_Nb`|H5{t_solwUN=NQ&!Ga@I*JT zq`{I`6Tp)02{CdC%@L0R3-Q~qr1e>esjW!7GX;;uQ5s9Un;x3)xO`2CWS7UBfoCTOtVrab4|YzuhyNXafo+*P+EnYpHBwfAwyAkQ(T4U^{!k(Y4`l6 zu;v#JkL8n?IM1r=gUEy0MQ*>P(J&#PsPI!;U*1q~lmIsut~d8?l=UfdUp&GLB3i>_ zZV!g-$P?Wq@v5mXWq`k)%@fd~9xaLfLnnJtSyu7Hr=`w9hHE$bG}}@htFn<9K>2~S zCSE9;ibP&*A}8UF6g-b$O)Lv1I8jwmDXS=}b}dDkKZp0M_>#eAF?)}r5VZ(U9Fo`H zN%6n203JK-Dr8BsMehvqdyFtT8(C9VD3Ag#l$MDBjqJl zN${YYw&k0a!f^>GO1I~?*nR;1McIsa?n^&?=$!5&(yhJ}ZQV@%t9KJR4WPxa%qN8k z7FUsbt!~0GOCicJpN|jeu6t+?N?{7HQ)O$cfv~d#hR}=u>N41v=`d+Tq zi%vzOMz~~iZ$AM8Ac^F^F3(ksiBlFV8H-jdErWHCh(#=odluKq0oeYG|F~}6`C$uM zk_O$cjIrb2@Vop9aGiuD|6;H0e0wq*2=!&#`oI45Xkc<(ueJ=n>cn1L{msvcy)<*Z zt`-R|N4=LPq)TYl$`1vSB^0^f_aUrw2CkN;WF2C0Jd3t&slOXbGqUv><>-zjYE5P7 ziPTsr?<1{j9fa#2f*QK@+~H@FlGeBZ{4gufD~aP2r@^&Rr`e@IdU@5_2dZN4eh0xM z)mrF1i3{@%Up1$Kz(#|@l_~3{rdJD1F=n|F$%J9J<&tx9A#UI~1V4+%T1T-@^T5~V zm!OM}2s(`S+*JolX+iD#K|d^XNDh#ve`=U>-<={KvSQS4J8O#Q)@Nzer1-)YtgNd> z_%ks7$HO0CQnO3RyA#=6>9S0p`RU^058)hf+aH|F$z&L{JL7*3wTe zn@fr9d*YKyEgkJd&ok9YOrWfWKSGg*3ca54n>B-Si5C+L1c&Y|pB0QAxRiF#9vS)@ z7OrfucpC-Eg0agGB%BY*6&V>%_UZN=5ek2G79Co~F#+V%UtR}9h6rfhp=3@PfT&YF z_URBLw`#j9{};tfXC4U;YD5JFYBYzsXCCy`yui7v6ZhIKZ z*#a(!vezzgXOel!{kR>xF~cnkZ8&!jyh zWW^XokDFKgZKUzL3uA4pyTD-G;tI$jeYZENDghz~{=6hl6jaL`ppWy2QF?6PlxPec zc*5-J0?j6^KAt@FkTqnLpH@bt1j{Q#m{LY?suojA++3;(3GPK71Qu#rFZX zoCmlS@m1_Mnmbtl0*icqcz;#zOBmy%zqPC89_fs;VN>;-c4o{>8(9^LL?Bog?%%V) z&%YsGQS6S_nL@xV8+oMTqfkf;M_|Htr*rL1ic$FnVP|*l1${AiB@I{6{o5{o!OzZ| zy2S;24k(A$TQ@TQtG5=kbg}wZizGQtbq&BHYh)WyW!=?dI1cnmRbI)W2|3nzxy~J_ zhkteiW5;^_A)`(U;!EhIW<47K&$RmKHyHC5-_DM1XcY>78-#$^X|rB6 z%r$fW22n!&wmoAM*P!@9Rp<+=A_#cQET%z85S#$XzKG){I?Ihr;&qvhhi^s!^+W54 z%0ty06TdFS^G57OTcRMTJ<2&YXv~?aSePmgwg~Gj%6JL+^>RAJa~R4g<~ zf-a5>gaaAIT!fh>py%|7DP*b7n zAFU`h&cs|#4w@~t^pE@7u;ERJ*OD6ql+~@+L3n}{|Mqc91;_04$j-mPCGfz`TaOFZmf7{>rmp7RvPp{|Zj2Za z!hNF_*v%MAuHfRA54@S!@g9JLgph|99+ZC21Jzft0OQl>@kp0~CktuwmWoRNuRCwa z(nTwGZ0hDRmQZ7smuj978X2O{^7U1?YgcKBn9J2vxjH*w-9Vqt9b)4W7wkL^6d;s68on@MfsiKS+#%ORx;0$-j_NBvdY4BXu}Cd?pJ zjBDJ(HC`Y+LA~5K{^z-v!Dx*!3;d;aBpvfoGRF0m4rm*iZH*m8@yDk2BSW6>$s#_% zMs>XqV)%A3J97w6A}r94Xzp>)KQwP=s1Jv=y^A)3K>4iJUJ{Sfq0+hVAcbDxl2Y~+ zsiM1se4(=0gII6^8J*az$Qp4^JGM3w5q8tMz8v5us*RXV7G=5fMhqKjwODX_bm_95 zfAWwc>n>OExrk*Nn*}vl9^o|Jr4Yh*GR6eKyiR`zVf|$Rdj@P*5Yz^f!f8p(xmz#f zrdipZY=)<89f=MGlw#Hp> z{jOhb5kX_BdzqdTADg>Uj^yw`d3OVoMEzSni!tN>wTi4b=IA|NlSX^mOgh6)(b`~e zx)E;~PR!-P#|seLnGUtJxtc4xNe0W6G@k0ZV#4BN1w7-A5{X_zWymn#Y7C-Km1llJ zzTEgynJ3P&OF^9McDl#czj{#CnOwjN!S|ior!xwSr+c0%>Cdh$X(mA08-VB6#- zs>+g(QkMTkqkTP8r$uj!naVo!MI9v@9qL?Ci*hgABlM^rCwK5ILeV~RGmD9-@c})j z+i*QXq~xvHTXF=MvN!5H4PJ-ZoP9F%kYG*Y1&`^)=8H~jT}UGwn14y-!n92JdWX{s z+qqFTc7S^l-4c^dP^CwrEaYPghbQozfw;#mGCkrJzN$jg{|s9f*IvC@)`tLM$bUZvp&$n(rXqhO3E4{lk1?f8xz3aGa4ZU0*r)v3W)Mvvo94lG0_h|^n` zTbXhk;S9*n&CLlq3m8i8G7iL($L3sbfsFOM%dT&1lld>Tx*N82ShYzd%@ohfp}K8B z4Fm=6y#I%}DSgKumRv zBjSTyJxx`*QJC}4{@e1rgI-pHV)~JB>L+t;-X{=PiT`mAW&>NJT)iRAf-ze=gcb@y zf87MKSIT^n>hf(f|Lr1v1aC)oVDk81srpk{G5xHMWpNiQF9vaV)wC!f{N#xoad1ma z;y_87@t%g(99#P|VkGy-=3h!JIol{GH~CDUsvT$ee9st(6T(2o`;Y2B+|KfIRQ!xA zwG>acnWa;OVRjVb;~;u@WIQRYR1L7E8Qtd$U$#Rh41OX3nM>PvAmSEH;MVddK5)^3 z>zqY!?25#h(=V__mP@SkABe9bF#WHwIBH^GUq3Q@swkBRxvD#<6_gGO#Tb_XD`stv-?pFcY&A40W8T{}54)}-wYhDh8r7BUq zc>pzA#`de1YaYC2C$7)IjjC233Al5z|H_Am$>FkYQ!Xo2x+?_XyxyAJYHY*HHTz^G zd(dTDo9KTfKRq_XEEA{~l+`KHJK`P{XECQemynsmGuEeSI$ioOOZH8}rOl>FJEUY! z*Ibmu0nz@V6+PuS4;_I$c28&A&GRY~>HJGH(Vr}&Bk=wrUIrTEBmZlY7HG!Qz%jv9 zX!5F|3~Aqe)$JvKhPH{B%byv5<22A=Oss%Y#{-M+ib^IvTNnVWF<9@BLl96*zpl!S%^;OnE#+py`{FNyKvZt|#)ZexO6#`~`$5UAFq~6qO+M?LT8gbyNEN+zk zQU^)ut{eEF+8s&2Hi`!xP(E`a@#~@dpwOd8?@-bHX`1klW5R7fIc^dI4GZ?cuaZ<$ zx9pqsyj@)Z!7OnY0AtdWK&$r4^7pFyX4Xa39kj5ryZ1eMbCx(eUw=yY#PF$%1c}g6 z6_0sLRHv!u^aO2f?+03b{&p59ee08LDOZ!kajDt{zhHHnotO>{6r}!*|TYzrG^Ao zhYhwqjlLP$6$=s3S&QaOn>P7=<)iyARjz!_PR{0A^#{ZyuKC3|1)MD*q~0M4k7x1M zl1?d%8dmfiP`M-li1|WtjrX$)Mdx6|D>QM#I(19m$(*gQ)k|%Tr{Iv=rEy^Z52}x1 z4aqDGy}!Uaxt{J~OFS#_*`LR5NuU?pGzklOcL~P|GH06nPlpiOwuv4 zhbTJKn&h3lRVaH-#eaqI#q!x0UA~PJFXMr!>Y0pi5*cL!gDL3Q<%SOFO zYmZbfqxfQjqv-x(KU|geU%h3K^<7`e6{*9Arlj}*@DBf>jb7HD5BoEEyNY$z8~Ys4 zk)Xp9PK}ewn~Y(6hHl`$zx2{RH=wjt9`KSkq4B#Lc*4x-Z1uX?mv7 z@xxym^7l-5@DUa>#6DU-=bLead(Fjm#$9rp!)5A!Gxxzz^h8;B;0*zWI| z%^gii0imuO9Uj$~_FC$i{Gk2aXY(&SE6fjmQJj-t;ooD>aJsJF6d*Q*#^zpV>^U

^Bb>=6%jb4-dXEK=HwQGfgG5wo3bhP?WlSO@eN-(`l4XlmutdF2MODFI-GOW zkX`z3&zq2#1|dm>dXgVLD6l!rF^pc%;|K2)0B+l zx8nK*exXK+{|qLnJhKOQu%3>?S_#_Ce;ORf^bPgc&uLqysn9XQ4K`bD9+gdqN|7vG zF`H);R04M;0K7!EJg8*E_X;D7U;@!&A^Al=JAi;*s{F0`zZ{)6IHZ4UyX)4qNQ_!? zZFQo=PF1{9)?YyOaQOz+zL$({(+SN2H(2t zN4eRoHpb)eA6l+gK_oey1l#L-GKcJ`*cMcKCaSD{ElzsMPuUXMSCRgANAK-uOVvP} zCa*LeRo%6sz8zI4_B=~Sm;G9gj`+xoe+L@P`dO{^ofP=zSY*mvaSj*2IRtg17?Oi< z>eTJABQAH1Jp@uWe_-zH_v)*g$uCB@1&s)h~n&wwmr{eQD z=x}HcAS8;!33!Zl&R;kH#1cd8^U$w6P}uVhTGJh<_oXG=ZR*=)jSn8N=XL~503GT< zm&(%A{GZBRBZ3g{&4P?#hh#i4Oy=i`eo0oa z>dwMzbdFn+QQn$QxrQIu0D-h6>6~3l#9Ps?D=@Rj`cZjrdM|_i;09m zNKPLUr-~%sw?rT4nPgsjpML$vF;RQf@+zJpV9H2Y4%+YlX9?9zgd=fUb3)s@Bj|jR zVJkm_OKt-`8-gJC{s=hcKEa!K3xXRThf-dt2tHIl@Jt}^x-{a$dRgP+l|vu*E$00@ zItE|$x8z(Zhqeg$qU9h&F>a}sR3B=FScbj3nr)!GXXA;`$AN|H)b#x`Tz>cOR2>1#G>n!y-Br_4;g7}JWJNK*j2v_B zOvm8Pesy)nZk!xe2jKIh}V`@*@vn4uRwRmQ0zd*B0-Jg8coyHgmq^xOwPWVmF<$a)A zKLM*dtiJVETl$3zh`fl8Vy@ip4|0o6<*GF36h{~eG8LvYAEdJS8h%F_&XI#Vo(ZYQ zaUT!d%+3FN#N_Nj0%lU!`;Eo`Se6A3T=0D>;2m;tm<$zmq36`BngWf#s(sRsCRDAJ z@8?yv`|>;ny|0!99WiVR38^?YzTRE&LlrxMSYZO49|b_Y+Om5H)tE`EM%Ft+vN1`E z1e2!OUDZ%?zrMzhEw6SdE<8fC{f45^S?NtMIHA_l)M6sFC-Ul`x|#n?_QZ~-T*r|I zbm_hyu9&7i2wWS84-A(&;B5UF!^5;&wqbx`_;H0`qw3jnTom&Wy|Wl(=$ll0w^E#Y zWFPnB#*Ul6C~{7T{GrjisTU8y?^VK$T_TAA5gRO%s}BExO@<~&9BtR5yB1G4m)-4< zrx!)XBj<-6*h#u{ut`9r$5R=Sq}6Hx_#nZiqNSag%I{l$ge4>Hl3BVFM-%S2T2GZfm~GaAyKi+noqmD5P(G*nhvqrEoL)2y(2`Co zBF}V^`&n}?R&B(tTvIc{hsYONZ(v?dW5&Yg_SY^-W}p`$_zXb3DL5y}c9ZdqZDJm> z5mS&xl-N~+e(%Al-JeW5hcR6CoXi1{3Ng_)(o4zpLZZ1^gP~41YM<|R;cB9lsLs*; zP5rjhzl*N*Wb;>P^76)At|SM6-)7-XA+^Ru)W_IlP{(5V^D>}@_O%PP|NItG9pGn0 za3Y8sR^%-etYaMiJYDuBw}W#z#XYg7TlkAY@48T$N#m{L7}OB)v<#G8nS63=f0MK~ zGn&$VE?Z^!xID3l#Dp@K)O0N5=k=Brf=Iv&7X4%W#+n7IW*&Z2PohW$y6S&B5|AT8 zaTyl>D0(t&V7C7Q|hn2SOhr*@PXR5$Pk=+2~I|!L=3e6Cbk#!LXMH< z4B^oQ%}NQX1GgB~9I<`|mJDZ#`QT^c82CnJuv~3^aifX&@uPe-FBS((1FHD6#?%L> z8&d0q&0jKSB`8{&bEr$w#7{^;^?WF!VoO-yY)@Tt$xhE{v#hQV27QwfSe^egh=&-DiZT2u85EbZ0PWk>%c8yhT$g zUien32AKtvL}-=@|tn#NsGW0z0w+$|f7`wJFxS>xDcp?J9k zsx);z4ar_;loa`YV)$KMYYN?M!21q#IGQib3fBpa3bG{@^}Tm}$~*>b%_T;r6m`}r z+Ddo=9gA>{TVW2uYJz_Iq?o=lrxb$uaF5(^0^wWI&od3y`YWX{$WrFuyBjHJ%0X1ZVS*yTi{98so$KYDINVB zm}`p8F$qKMX~~4XcKdE_{_B0Ar$eshd%QyAI5*8jR0>y86HAFs*P|?#Q34i!_TrP*X*6Su^BjK-c$+1+!VjKX z`>tn=^=c=ywVrf3V1It4MMqz|j;Gn!4Qh}i&8>z|Y}l@Ed7wsmE(~ZHuy64~2fL z6|@eKI0OqZ5s85R=5pVtxfB|{#5i~!;vp}yzi=NhEVzj}F%@R1=mpJLI7I6OoC%R- z+baYhWgv{iT9XX*`%)}qJ$j>OCWhEK^`Py8s>`0fbg+EfYbO%7`DeqjbomzkHIAO> zotrn5SoXZm>$Fia1Yr2;yshY!H`C8271g_JAfb_4dt!AuF$YUC(+EIKJ2wXxbvZLe zxupF|uRdVxl^G9z@B}F?fjJNa;^Fm=Z7x?o!^mtZJxlWV63r2!u9Y58bP~~DFwXMd z!y=+hNt5JLq`8$nh2eTI;)5BLh#}(qL4TD)fi|x%DQ##&W(`66_(tm0=j@ODbzFN} z!$FZI(D0#SYcl#FM^6|O)!j%Jl^qG~?Z=*%C>M6+9~H^W=g>N+%tNOjJ!Jyr+3!+TvVf zWg!vjdJt7~%9z=0U{}4-bBTHL4~4lz*u~=ZG_!N0` zabgi~J?&@(-sHuCPSOkkl-U&aUy$gDF&`v!BCtG3`ZDuKA6PY!RSaQzJ97ktpDqYv ze6hMUG2l8o5C;xFBk)ZrJNwfTm8wNNNrQ8=9p-3F6os00$*6{Vk@ol)o}S)3s(hh@ z2wMKbzlW@nQ?bL%OW43g8wO;OLNCP4xGibNJVOU}66-Lt8-$*Ktudx(wc&&7Q{tkUB@DicIiD$3(A_Hvk2g#e`hIpB7*0grF?+OTi=X|iL5?tO=w zS}bMsrtDvlGv~culF*ZTNt9lq)PLy;yAne0o??_w8nE`&JYH~%gIC=3+to6L+UhR4 zxt#Te=$=p;LFyQ&q)tvcGCOd8B%ru~{G(!{QeN~#A>4_jYVfDihI$%WF2c+oMR=Eu zwAm831HQWu^;)t<&Y=%KQB5(H8UiGzS)n9i5BoN`#sc@?WgR;nAQBC zf2d(wF+;N23JVE+fCMQ<A#L3xU zip6f3h-Nn|9&VtMFDVis}C{HzHDlw9pYe8FkNTi>0^#CfGCJ=zh$UI)V>XV$su%^uf3dN~<9j7)34-XS^gN+Vj1#Ir0^{HBtXL)0012ZP6^ zW=tNz+s!u%Au{pJFRPMz9%)`BEB$6^zYUasiaLs9WvN*ccyS(cIS~{x%QdUJxGsmk}e`r zu5jH)6>8dbNWL_G04T$T2V-*tRHG07Eo;NjvY7Le)`{H{N>z+6&j?kofHIjy)Xwky zi+jdiK2@B^Is%&5@aFOZfsoh#0Gj;jFIf#UZ@DPa&k&OFYNm5PzCuKyMyGF`t9_`} z@XjIymYqB!pd!;f3vNs(W8ms$`9FsGyhLaJvJ+3Vg-V_#ud$W^7l0t#c|&~2o3=zb zoX*hwxcclJ#a>RKfZ{)2-XDa_%7a?i$DMKkWv}eUr-`z z>@vmNg!O%6n`9WCgDX_B0r>G#(JUHxz01nCnf12q(K74jo8j6x>Bd>7zb`|IoI&VF zNcy-{=9-aDmO;t`DkdBPAjF+tL|$A?gq@GWtKySP<`V3@w(pLQ>AccTWe~6p4Nu`R zTLsd^!aC}ZU2eUd1!a+>hLA~)zipiVsGW+J8>Qnuw(otffPX(I17ey3w4sGIm`jW6 zhH5iGY@Af<0d1azy+RNngW<3gp_fc=geXE?jY}hQC|51>k=GXam+VPa*%c4nqEf6S zdsXz@hiu$E{dA^A@B=jeYWZu-5KUMM_mKrWl;Sznn^psBDM{x2#)sNz^0MGmjIN?Z zAKqFj`xv!85yi_804-;+B#gj&xk8Y&F&NNFvVi5UU-tbd_}D_fyNWA?mC7iYH+o%x zkbL@heudFaJ?2jwGB>a3Z4Tbf#i0=J8E^(YHoxoA>xFp9WQG?3V+Eb->a{ehwoX5; zkYatln9kQsW@jR%NH^@NjNN})J|T_~l>WYCttjj4yGgm+0`kPE0|_ z{L%KY6oI0&T<8%bQHO)EV+rR9eY9?rxA`a&C?4Ga+E=lOq^|n3Rrp{VLoP+^x+R#b zn8e)Q_pLlgi1o`1@9}O~jFI2nS0pFD6-f|$w_;gN?VUNtPRs~J&0ZZa!5A2}E`g>W z*$qpmTKIBv07Tr2fZxOFKzjtNQ<(>d^#p1}xY76DL+<}e)4`Q01dHGCTnGcV zT@kE1QN6CMrVgi1l@5BPW6^V2v@Jm~>rLz6p|~Qa4dfcNV{~5`Qb1h{N!6yml1+t~eLBnxa^2#x{^?f)T6J zLD#Jo0s!G7mycvUtKXtpL#}jIv9m>Urhq*Nh6fyB59LV`d=hT+#S4x}7im>l%rIQU zu2R{yWKkIRFceZJX8*iec9FS;@|)(zgJX{GL|dx&$p`EIbfsW}%^A^64IUkm7FOsZ zWoaZr`xhC9grIZ``perwayYXe!-}wNkKS#<07hxJRX8Iuh;MwnI6_rZ5wK-GS%%IN zYRM;So;bJhDhQGon}1|1DkEsEU=m%X$3uv@V_(9-zh-FgTpT-hAy8<`HNKqh#ZV@j z3+!=$(cJ&w@mJS9$zZh*z-N3Atzkphed4CNL%RkT!RtOBr4`IVki2!ig|qLl7rCUI z0wlkxyKO!Evgp#A67=f}VdFNH)`GoDUR+(p`rcz{69HQ*kYV(##L$PS)w#{`qN~Vq zHo}t##S-Ub2_CK3DAaxk9;_QYR^jT~!o4DWt{dw(y9uomyE3oRCo-Kn6bTHyhA(>G z3%>o@@$TInLpepdS8&Qq;j3ARv~C2(fGJ9fJZu3!dLUuCXgG%@XwvKlj#a%svXE55 z<9uN(owIIc=Bcnd;dH1V_)ZJ(Ll{Hd?NO@M-dI)hk}ErP7#O~89SXk=9W}>K~(-OVi+Ta(8+O(>k+ej?4{698*=MA5hDGnd~y=uiFUfWb@5{5c*P@-t!*ql%hOJ+?%d*iPR1@F-CpW}-)g$G8?Ocyadk1K zdB=SVgL??}^l}OlOiQeo#@T92+7#J`S8qj;20?2T>I76D;pR5X6>)&%^Y>Z532xaL zUmQYbR7NbL{Mc+&SK`<#{u~?iui;jX;BY&Q=~to(znGyC+erLYwv$WO1SBSzA~Ka! z=@mtTo#5*eM?4I81Js@^tw&2%ZZ$oL3!W6OyK+oQ-z5{)_&V$I7?!)P)%QT}0v$CZ zK5!a*VvQDDh?2+2q@cYd`Et>ZcEJMNS``96GTTVDtFkeC0%)3zX&@tL4ZxG39wI{1 zRdsgG8JpiniK_HTH=HMN0D!5(``=9yz0zRJFB&JJ)v@qj#o@Hj$5ZyWmSLaUvCQ0E zrXq8MpTU;$$3cQnGQ1E;@qc`6iHz!{S8-CNCRW0aKibapk4$(8p$hYgZow{O;N3|l zAy(vt_iNk%GlNo>8s)<`_Ov;kldP({=1K1uY=zU<7Vvk$63BSk01XIWy&>3dcByXW z?BHkt{$D5Yf`D{}mS!nn{%h|39*lr}ubu=I12U?ZC_&pu+H(Wcy} z`s%M-eVC{Nlfo9q5Irc>TDU((XNsP7+N(HGfh`R(=Q-WZD~*z9K@ z5BB-ko~Ujlb^b@PfT3hTfKBkfA_a@%kIc^)TCpn}LIsJfDJi5M@A>h<9Pv@5y#EC^ zV>OSLFduz=+I?nQL=u@DEW=gz?QW{soU2t9--K0OfnZ#HUSZ0@1QFdg;@2_}IOv~< zN8`805Ln7KJEVvlF50+8&JNw}XG=8SVy2e5Z%(Z8AcLgI){tDFzpR`iI4o-Z055vFH7&8nqFXv)4< zSRDq1dvE~*RF-V-@rKN7j2h6quh@f>pfFEY0c(Agm%LN%dq3olp%}3v<$?#| zLMt^peG|;P_$x^zxtS5IjrpwV_w6YD@F&*ORi={t0J#al=HQ?ltlA4>B@(MduIgx| z8!A)1?k}Z~Wm%;sXVPA*=t6u_Elx2n@!K78<_o^J;kkl}=%nk*uwQqEgAhyonS(

tY4q`<#)%Db?j_w`)j>$J)O=4NxbG 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≻mV|^7&JXUk)W+yS?3!tLzt$JKt$m{8s;kZt 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 Z?d<7m?XV;QYe$cK=XajEaQf(x{|9|##E}31 diff --git a/report/vkr.tex b/report/vkr.tex index b2dc375..efffa67 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -5,7 +5,16 @@ \addbibresource{biblio.bib} \usepackage{svg} - + +\newlength{\lblwd} +\newcommand{\titlefield}[2]{% + \par\addvspace{1.6ex}% + \settowidth{\lblwd}{\small #1}% + \noindent\small #1\hspace{1em}% + \underline{\makebox[\dimexpr\linewidth-\lblwd-1em\relax][l]{\small #2}}% + \par +} + \begin{document} \sloppy @@ -61,6 +70,89 @@ }% } +\begin{titlepage} + \thispagestyle{empty} + \newpage + + \vspace*{-30pt} + \hspace{-45pt} + \begin{minipage}{0.17\textwidth} + \hspace*{-20pt}\centering + \includegraphics[width=1.3\textwidth]{emblem.png} + \end{minipage} + \begin{minipage}{0.82\textwidth}\small \textbf{ + \vspace*{-0.7ex} + \hspace*{-10pt}\centerline{Министерство науки и высшего образования Российской Федерации} + \vspace*{-0.7ex} + \centerline{Федеральное государственное автономное образовательное учреждение } + \vspace*{-0.7ex} + \centerline{высшего образования} + \vspace*{-0.7ex} + \centerline{<<Московский государственный технический университет} + \vspace*{-0.7ex} + \centerline{имени Н.Э. Баумана} + \vspace*{-0.7ex} + \centerline{(национальный исследовательский университет)>>} + \vspace*{-0.7ex} + \centerline{(МГТУ им. Н.Э. Баумана)}} + \end{minipage} + + \vspace{-2pt} + \hspace{-34.5pt}\rule{\textwidth}{2.5pt} + + \vspace*{-20.3pt} + \hspace{-34.5pt}\rule{\textwidth}{0.4pt} + +\titlefield{ФАКУЛЬТЕТ}{<<Информатика и системы управления>>} +\titlefield{КАФЕДРА}{<<Теоретическая информатика и компьютерные технологии>>} + + +\vspace{3em} +\begin{center} + {\Large\bfseries РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА}\\[1.5ex] + {\Large\bfseries\itshape К ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЕ НА ТЕМУ:}\\[1.5ex] + {\large\bfseries\itshape <<Автоматическая оптимизация планов выполнения SQL-запросов>>} +\end{center} + +\vspace{\fill} + + + \newlength{\ML} + \settowidth{\ML}{«\underline{\hspace{0.7cm}}» \underline{\hspace{2cm}}} + + \noindent Студент \underline{\text{ИУ9-81Б}} \hfill \underline{ \hspace{4cm}}\quad + \raisebox{0.42ex}{\underline{\parbox{4cm}{\centering Старовойтов А. И.}}} + + \vspace{-0.5ex} + \noindent\hspace{9ex}\scriptsize{(Группа)}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(Фамилия И.О.)}\normalsize + + \bigskip + + \noindent Научный руководитель \hfill \underline{\hspace{4cm}}\quad + \raisebox{0.3ex}{\underline{\parbox{4cm}{\centering Непейвода А. Н.}}} + + \vspace{-0.5ex} + \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(Фамилия И.О.)}\normalsize + + \bigskip + + \noindent Нормоконтролёр \hfill \underline{\hspace{4cm}}\quad + \raisebox{0.15ex}{\underline{\parbox{4cm}{\centering Алексеев С. М.}}} + + \vspace{-0.5ex} + \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(Фамилия И.О.)}\normalsize + + \vfill + + %\vspace{\fill} + + + + \begin{center} + \textsl{2026} + \end{center} +\end{titlepage} + \setlength{\tabcolsep}{3pt} \setcounter{page}{2} %---------------------------------------------------------------------------- From 07935e1c83c7e420f96639d5a4465939b683d640 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 02:07:18 +0300 Subject: [PATCH 103/120] Fix --- report/vkr.tex | 103 ++++++++++++++++++++++++------------------------- 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index efffa67..f829f83 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -64,12 +64,13 @@ \ensuremath{% \begin{array}{c} #1 \\[1pt] - \xRightarrow{\,#2\,} \\[1pt] + \xRightarrow{\,{\small #2}\,} \\[1pt] #3 \end{array}% }% } + \begin{titlepage} \thispagestyle{empty} \newpage @@ -154,7 +155,9 @@ \end{titlepage} \setlength{\tabcolsep}{3pt} -\setcounter{page}{2} +\newpage +\thispagestyle{empty} + %---------------------------------------------------------------------------- % ОТСЮДА --- СОБСТВЕННО ТЕКСТ %---------------------------------------------------------------------------- @@ -185,6 +188,7 @@ \section*{АННОТАЦИЯ} оптимизации запросов и итеративного развития набора правил оптимизатора. \newpage +\setcounter{page}{2} \renewcommand\contentsname{\hfill{\normalfont{СОДЕРЖАНИЕ}}\hfill} \tableofcontents \newpage @@ -192,11 +196,11 @@ \section*{АННОТАЦИЯ} В эпоху стремительного роста объемов данных системы управления базами данных (СУБД) являются важной частью информационных систем. По данным аналитических -исследований, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено -как расширением круга решаемых задач, так и усложнением структуры обрабатываемых -данных и увеличением их объема. Реляционные базы данных, работающие с различными -диалектами языка SQL, продолжают занимать доминирующее положение в сегменте -обработки транзакций и аналитических запросов. +исследований\cite{DBReport}, объем мирового рынка СУБД ежегодно увеличивается, +что обусловлено как расширением круга решаемых задач, так и усложнением +структуры обрабатываемых данных и увеличением их объема. Реляционные базы +данных, работающие с различными диалектами языка SQL, продолжают занимать +доминирующее положение в сегменте обработки транзакций и аналитических запросов. Одним из определяющих факторов конкурентоспособности между различными реализациями СУБД является качество оптимизатора запросов. Оптимизатор @@ -252,10 +256,10 @@ \section*{АННОТАЦИЯ} \section{Исследовательская часть} Система управления базами данных представляет собой программный комплекс, -обеспечивающий хранение, извлечение и модификацию структурированных -данных. Несмотря на разнообразие существующих реализаций, архитектура -большинства реляционных СУБД включает ряд типовых компонентов, -взаимодействие которых обеспечивает выполнение пользовательских запросов. +обеспечивающий хранение, извлечение и модификацию структурированных данных. +Несмотря на разнообразие существующих реализаций, архитектура большинства +реляционных СУБД включает ряд типовых компонентов, взаимодействие которых +обеспечивает выполнение пользовательских запросов\cite{petrov2019database}. К основным компонентам СУБД относятся~\refImage{fig::dbms_arch}: @@ -388,7 +392,8 @@ \subsection{Реляционная алгебра} R \subseteq \text{dom}(A_1) \times \text{dom}(A_2) \times \ldots \times \text{dom}(A_n). \] -Среди основных операторов реляционной алгебры выделяют следующие. +Среди основных операторов реляционной алгебры выделяют +следующие\cite{silberschatz2020database}. \begin{enumerate} \item \emph{Фильтрация} \(\Sel{p}{R}\) --- возвращает подмножество кортежей @@ -768,29 +773,29 @@ \subsection{Обзор архитектур оптимизаторов} ограниченной расширяемостью, ориентацией на левосторонние деревья соединений и независимой оптимизацией вложенных подзапросов. -Volcano~\cite{GraefeMcKenna1993} развивает стоимостный подход System~R, но -делает оптимизатор расширяемым за счет правил и структуры Memo. В отличие от -System~R, пространство эквивалентных выражений задается не жестко встроенным -алгоритмом, а набором правил трансформации и реализации. Поиск выполняется -нисходящим динамическим программированием и может учитывать требуемые физические -свойства. Преимущество Volcano состоит в модульности и возможности добавлять -новые преобразования и операторы без переписывания всего оптимизатора. Основной -недостаток заключается в разделении поиска на фазу генерации и фазу стоимостного -анализа: предварительное раскрытие всех классов эквивалентности может приводить -к избыточной работе. - -Cascades~\cite{Graefe1995} является развитием Volcano и сохраняет его ключевые -идеи: правила, Memo, физические свойства и стоимостный поиск. Главное отличие -Cascades состоит в том, что генерация альтернатив и стоимостная оптимизация не -разделяются на две независимые фазы, а чередуются через систему задач. Благодаря -этому оптимизатор может порождать только те альтернативы, которые нужны для -текущего поиска, раньше применять отсечения по стоимости и удобнее -распараллеливать независимые ветви. Недостатком Cascades является более сложная -реализация, так как требуется управлять состоянием групп, задачами поиска, -правилами и физическими свойствами. +Volcano~\cite{GraefeMcKenna1993,graefe2002volcano,Begoli2018Calcite} развивает +стоимостный подход System~R, но делает оптимизатор расширяемым за счет правил и +структуры Memo. В отличие от System~R, пространство эквивалентных выражений +задается не жестко встроенным алгоритмом, а набором правил трансформации и +реализации. Поиск выполняется нисходящим динамическим программированием и может +учитывать требуемые физические свойства. Преимущество Volcano состоит в +модульности и возможности добавлять новые преобразования и операторы без +переписывания всего оптимизатора. Основной недостаток заключается в разделении +поиска на фазу генерации и фазу стоимостного анализа: предварительное раскрытие +всех классов эквивалентности может приводить к избыточной работе. \subsection{Архитектура Cascades} +Cascades~\cite{Graefe1995,XuColumbia1998} является развитием Volcano и +сохраняет его ключевые идеи: правила, Memo, физические свойства и стоимостный +поиск. Главное отличие Cascades состоит в том, что генерация альтернатив и +стоимостная оптимизация не разделяются на две независимые фазы, а чередуются +через систему задач. Благодаря этому оптимизатор может порождать только те +альтернативы, которые нужны для текущего поиска, раньше применять отсечения по +стоимости и удобнее распараллеливать независимые ветви. Недостатком Cascades +является более сложная реализация, так как требуется управлять состоянием групп, +задачами поиска, правилами и физическими свойствами. + В следующих разделах подробно рассматривается основные элементы архитектуры оптимизаторов Cascades. @@ -1079,11 +1084,9 @@ \subsection{Дифференциальный анализ физических запросов. Следующим шагом сгенерированные запросы транспилируются в диалекты SQL целевых -промышленных СУБД. В качестве эталонных систем рассматриваются PostgreSQL, -DuckDB, Umbra и Microsoft SQL Server. Эти системы являются зрелыми, имеют -документированный формат вывода планов и представляют разные архитектурные -подходы. Затем для получения физических планов исполняется аналог -\texttt{EXPLAIN ANALYZE}. +промышленных СУБД. В качестве эталона рассматривается Microsoft SQL Server. Эта +система является зрелой и имеет машиночитаемый формат вывода планов. Затем для +получения физических планов исполняется аналог \texttt{EXPLAIN ANALYZE}. Полученные физические планы промышленных СУБД конвертируются в формат сериализованного плана разрабатываемого оптимизатора. Современные СУБД @@ -1180,9 +1183,10 @@ \subsection{Модули синтаксического анализа и пос Модуль синтаксического анализа SQL-запросов отвечает за лексический и синтаксический разбор поступающих на вход SQL-запросов. В качестве основы для -грамматики выбран диалект PostgreSQL, так как он широко используется на практике -и имеет открытый исходный код. Использование готовой грамматики из официального -репозитория~\cite{PostgresBisonGrammar} гарантирует совместимость. +грамматики выбран диалект PostgreSQL\cite{PostgresDocs}, так как он широко +используется на практике и имеет открытый исходный код. Использование готовой +грамматики из официального репозитория~\cite{PostgresBisonGrammar} гарантирует +совместимость. В рамках работы поддерживается подмножество диалекта PostgreSQL, достаточное для исследования оптимизации запросов на чтение данных. В него входят операторы @@ -1497,7 +1501,7 @@ \subsubsection{Правила трансформации и реализации предотвращает повторное выполнение одного правила над одним выражением и ограничивает образование циклов при заполнении Memo. -\subsubsection{Стоимостная модель} +\subsubsection{Алгоритм поиска} Стоимость физического плана зависит от количества обрабатываемых кортежей. Для получения этой величины используется класс \verb|CardinalityEstimates|. Оценка @@ -1507,8 +1511,6 @@ \subsubsection{Стоимостная модель} операторов. Фрагмент реализации стоимостной модели приведен в листинге~\ref{lst:optimizer-cost}. -\subsubsection{Алгоритм поиска} - Класс \verb|Optimizer| реализует алгоритм поиска. При создании объекта исходное логическое дерево помещается в Memo. Поиск запускается для корневой группы и требуемых физических свойств результата. @@ -1753,9 +1755,8 @@ \subsection{Руководство пользователя} Все команды далее выполняются из корневого каталога проекта. -\subsubsection{Сборка программы} - -Для выполнения конфигурации и сборки следует запустить команды на листинге~\ref{lst:build}. +Для выполнения конфигурации и сборки следует запустить команды на +листинге~\ref{lst:build}. \begin{listing}[H] \caption{Конфигурация и сборка проекта.} @@ -1770,8 +1771,6 @@ \subsubsection{Сборка программы} \texttt{build/bin/sql}. Для повторной сборки также можно использовать цель \texttt{make build}. -\subsubsection{Запуск программы} - Пользователь должен создать отдельную директорию и поместить в нее CSV-файлы. Имя каждого файла без расширения считается именем таблицы. В заголовке каждого файла для столбца указывается имя и тип через двоеточие. Поддерживаются типы @@ -2036,8 +2035,8 @@ \subsection{Дифференциальный анализ и тестирова повторений запросов SSB. Ускорение рассчитывается как отношение времени выполнения наивного плана ко времени выполнения оптимизированного плана. -Видно, что на стандартном наборе запросов оптимизатор дает улучшение в $1.2-1.5$ -раз, а на накоторых запросах в $6$ и более раз. +Видно, что на стандартном наборе запросов оптимизатор дает на $20-50\%$ раз, а +на накоторых запросах в $6$ и более раз. \begin{table}[H] \centering @@ -2386,7 +2385,7 @@ \subsection{Калибровка стоимостной модели} \endlastfoot 1 & Коммутативность соединения & - \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{внутреннее или полное внешнее соединение}}{\InnerJoin{S}{\theta}{R}}\) & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{\scriptsize внутреннее или полное внешнее соединение}}{\InnerJoin{S}{\theta}{R}}\) & Перестановка входов соединения. Позволяет рассмотреть оба порядка вычисления. \\ \hline @@ -2501,7 +2500,7 @@ \subsection{Калибровка стоимостной модели} \hline 2 & Сканирование по индексу & - \(\TransRule{\LogicalGet}{\text{есть совместимый индекс}}{\IndexScan}\) & + \(\TransRule{\LogicalGet}{\text{\scriptsize есть совместимый индекс}}{\IndexScan}\) & Индекс должен быть совместим с предикатом или требуемым порядком. \\ \hline From 815e14c9200d23f63250a583687ea9f90447d679 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 03:02:02 +0300 Subject: [PATCH 104/120] Fix --- report/vkr.tex | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index f829f83..f9a7168 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -15,6 +15,33 @@ \par } +\renewcommand{\sectionfont}{\normalsize} % Сбиваем стиль оглавления в стандартный +\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % Точки в оглавлении напротив разделов + +\renewcommand{\cftsecfont}{\normalfont\large} % Переключение на times в содержании +\renewcommand{\cftsubsecfont}{\normalfont\large} % Переключение на times в содержании + +\setlength{\parindent}{1.25cm} +\setlength{\cftsecindent}{0pt}% Убираем отступы в содержании для \section +\setlength{\cftsubsecindent}{0pt}% Убираем отступы в содержании для \subsection +\setlength{\cftsubsubsecindent}{0pt}% Убираем отступы в содержании для \subsubsection + +\renewcommand{\anonsection}[1]{\cleardoublepage + \phantomsection + \addcontentsline{toc}{section}{#1}% + \section*{#1}\vspace*{2.5ex}% +} + +\usepackage{scrlayer-scrpage} +\clearpairofpagestyles +\ohead{} +\chead{} +\cfoot*{\thepage} % page number centered in footer on all pages +\pagestyle{scrplain} +% tune vertical position inside the 2 cm bottom margin +\setlength{\footskip}{1.25cm} + + \begin{document} \sloppy @@ -1740,7 +1767,7 @@ \subsection{Модуль исполнения физических планов} узлов плана. Для реализации каналов используется -\verb|boost::asio::experimental::concurrent_channel|. Данный класс обеспечивает +boost::asio::experimental::concurrent\_\-channel. Данный класс обеспечивает потокобезопасность, буферизацию, асинхронную передачу данных и совместимость с корутинами. Такой подход позволяет единообразно организовать взаимодействие между операторами независимо от конкретных алгоритмов для их реализации. @@ -2132,7 +2159,7 @@ \subsection{Калибровка стоимостной модели} \renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} \clearpage {\catcode`"\active\def"{\relax} - \addcontentsline{toc}{section}{\protect\numberline{}\refname}% + \addcontentsline{toc}{section}{\refname}% \printbibliography } \newpage @@ -2510,12 +2537,12 @@ \subsection{Калибровка стоимостной модели} \hline 4 & Хеш-соединение & - \(\TransRule{\InnerJoin{R}{\theta}{S}}{\theta\ \text{содержит равенство по ключам}}{\HashJoin}\) & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\theta\ \text{\scriptsize содержит равенство по ключам}}{\HashJoin}\) & Хеш-таблица строится по ключам равенства. \\ \hline 5 & Соединение слиянием & - \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{входы упорядочены по ключам соединения}}{\MergeJoin}\) & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{\scriptsize входы упорядочены по ключам соединения}}{\MergeJoin}\) & Требуемый порядок может быть обеспечен явным оператором \Sort{}. \\ \hline From 8483013fb14734fc30a4a5b85ca1c3b56d2f91f4 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 03:12:10 +0300 Subject: [PATCH 105/120] Done --- report/vkr.pdf | Bin 1080097 -> 1081868 bytes report/vkr.tex | 510 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 477 insertions(+), 33 deletions(-) diff --git a/report/vkr.pdf b/report/vkr.pdf index 7fcbf1707355ff26d582e2e16872f7cbea7ea79b..2682c3f8f2b5000e1d54c27b1a82768541be8a44 100644 GIT binary patch delta 212628 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

u$N;=;{+$&N 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 delta 210901 zcmZsCV{j%~(`{^<6Wew&v2A-Yv5hCTZR3e;+n(6A&AI1&zx!3)s(XIys z_3G$gk%DJo6bdCV2?iEME;x$0Kf|kVERF0?0B}%_1Qbh9&LmJUEl}?NK%Re~HYjrv zF}M{d%YQNJe=*yCG53G*e{!_ISXutb2V-UZ&jpk<0oe+SmE(T`T>lMl|L2lqM}nA^ zs|f+!Xo469mZXS?-uQ_u1fFz;jNYh#P6?63hmP48fh_=m#ZAmiY;R%($IlPPBxi1C z;qsf9g^fE66$_FEFs&t@v?+$reN%gS&<6J+VLIAU-%Sk2TL?R9f{VjOT z8y?2r~*ZpyUw8;m3{Sn2sZs>4I?uj^Vxydi((A(Af zaWGS(LOnaG?&%-#2U?xB6{hfgDA2e63;AZ=_v2#={$u3|Pg&2@s1^Es9{K3b@t(o@*0h+9~slWc!d>3;q<`j&ES1#e9uhJ;;rU3NKv|0IHpdgq)FZE zu@2Y%K7(w$=KS8Y!jp!V6+%!Oo9<0%<0=8C&0o)6tRi_H^{dMqLg2zp3Rc{9Xlb$u zd#rBJskFbWlp>71>T;N+Khc=(rKYD9LmK*4Nr$xrAWTNQL{B9BUTEpk@hYfEQr(`ad3*h^F zJJZY%uvU~C{*bF#+uvPpF-!PbNAcpW{noPq`jX{sNmx_ibbzd*p5qBCuw_r%(Y($gNnA|o~l zWo~x{B_Matxr-$*0E^z}5$yn#Kfo56$>y94a5|bFHeYmgY0DA>rcUMrJ_Z7s2GxWa z+lQ+asz0ICfKZ30Tnh)0=gRSh04ynSyFsYO(t5VKKIpcg>K1~_;FOi8jM7WJeig$L z>&lD;2CRAfRl~!XPl{zHkSr0bLGh5%PPEah_pw3CVfL=C&RMD>=a+A1`AOpjcB0b) z5Y_xZe;7tv!V1yCP7PzmF|5qro;62%j{d3ln<;nIZBGGyaQ_=uB$Lnp{B7FAfX1_B zyA9p4)zVuO_*{iTmKQpG-a^=kk;*ksx)c=xRJXkgzG(L{?bU6^f_IwE><=AdAnsdd zK>R@frsO^Qi%dx^X<^!H4n~CbAgdk;U|17&`}7mMdR3%25Gu0|&N4{!WCqb9Xd2Ba zGS=nq&;H-4$aucW>)b3awU&}L?_i6kqNB>qRp&pN4P0uZY(J&No9SfqOugUsN6pRo zs|RBk9X`@k@J%X9i%_c5S1WxHs&0qH?D5Q%BRAU*qpl8vcw`WxvnZbaj(Se1zVg&Ds2@LS%2Re!4eR62Jngg>SZ3z zY>Qc6NoSp9C{a6UFP0Z+&VHc@ng|2opN9OHm^ylD*8_t8IJ(2B`#@ku%vSrb4o$+B z4(&ogLc3)^tLtw1ewoB37Pias2LD!+c3`R2ZfxD0ZGy>)%Zd@y=z5!M=9d5I<=PqW zf*i>u!VPC`XXfnUWNvH=muABX37h0V;tI+cbW9RH7x1m??!M=oqLN9X z4x)7`^uT8A&On&snQahFjjN1U@BD;-?Tgs~m!8yX?fvE_j3J6knZgb+qvX#ap+E}O zVa`Sn=P({{*BY({37OOtX=HC>X`cj4%M!#&%+50%ax{gd|MaAO4kOKnlm159Juyp_ z{v)I46@c!{#sp~z>bvD^)Kqsq+9B(an8eQ;{hDJ*{Bx**6aIcqHm=w67B>UB z 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

E>W~iVd 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 Z#r1SHw?N?l@$m`p@S@PtN~_4A{2w9A13dr$ diff --git a/report/vkr.tex b/report/vkr.tex index f9a7168..4630b3f 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1,51 +1,490 @@ % !TeX TXS-program:bibliography = txs:///biber % chktex-file 1 -\documentclass[fontsize=14pt, russian]{scrartcl} -\input{header.tex} -\addbibresource{biblio.bib} +\documentclass[14pt, russian]{scrartcl} +\let\counterwithout\relax +\let\counterwithin\relax + +\usepackage{float} +\usepackage{xcolor} +\usepackage{extsizes} +\usepackage{subfig} +\usepackage[export]{adjustbox} +\usepackage{tocvsec2} % глубина разделов в оглавлении +\usepackage[subfigure]{tocloft} % сетка из картинок +\usepackage[newfloat]{minted} % можно менять место, где располагать объект +\captionsetup[listing]{position=top} % настрокйка подписи + +\usepackage{tikz} +\usetikzlibrary{automata,patterns, positioning, arrows,shadows,shapes,datavisualization} +\usetikzlibrary{decorations.pathreplacing} +\usetikzlibrary{arrows.meta,patterns.meta,graphs} + +% команды ниже просто добавляют перед текстам нечто +\AtBeginEnvironment{figure}{\vspace{0.5cm}} +\AtBeginEnvironment{table}{\vspace{0.5cm}} +\AtBeginEnvironment{listing}{\vspace{0.5cm}} +\AtBeginEnvironment{algorithm}{\vspace{0.5cm}} +\AtBeginEnvironment{minted}{\vspace{-0.5cm}} + +\usepackage{fancyvrb} +\usepackage{ulem,bm,mathrsfs,ifsym} %зачеркивания, особо жирный стиль и RSFS начертание +\usepackage{sectsty} % переопределение стилей подразделов + +% для полей и разметки страницы +\usepackage{pdflscape} %альбомные страницы +\usepackage{geometry} % настройка размеров страниц +\geometry{a4paper, tmargin=2cm, bmargin=2cm, lmargin=3cm, rmargin=1.5cm} % тоже самое, но лучше + +% математика +\usepackage{amsthm,amsfonts,amsmath,amssymb,amscd} % дополнения от AMS +\usepackage{mathtools} % добавляет окружение multlined +\usepackage[perpage]{footmisc} % нумперация сносок на каждой странице +\KOMAoptions{fontsize=14pt} % изменение параметров страницы + +\makeatletter % для команды с символом @ в имени не в стилевом пакете, а прямо в тексте документа +\def\showfontsize{\f@size{} point} +\makeatother + +% про стили и языки +\usepackage{cmap} % улучшает поиск кирилицы в pdf +\usepackage[T2A]{fontenc} % поддержка русских букв +\usepackage[utf8]{inputenc} % кодировка utf8 +\usepackage[english, main=russian]{babel} % языки: русский, английский +\usepackage{tempora} % шрифт times + +% оформление текста +\usepackage{indentfirst} % красная строка + +% таблицы +\usepackage{longtable} % длинные таблицы +\usepackage{multirow, makecell, array} % улучшенное форматирование таблиц +\usepackage{booktabs} % возможность оформления таблиц в классическом книжном стиле (при правильном использовании не противоречит ГОСТ) + +% общее форматирование +\usepackage{soulutf8} % переносоустойчивые подчёркивания и зачёркивания +\usepackage{icomma} % запятая в десятичных дробях + +% картинки +\usepackage{graphicx} % работа с графикой +\usepackage{wrapfig} % картинки могут «обтекаться» текстом + +% списки +\usepackage{enumitem} + +% подписи +\usepackage{caption} % помогает настраивать подписи к рисункам и таблицам +%% Использование: +%\begin{table}[h!]\ContinuedFloat - чтобы не переключать счетчик +%\captionsetup{labelformat=continued} %должен стоять до самого caption +%\caption{} +% либо ручками \caption*{Продолжение таблицы~\ref{...}.} :) + +% интервалы +\addto\captionsrussian{ + \renewcommand{\listingname}{Листинг} +} -\usepackage{svg} +%счётчики +\usepackage[figure, table, section]{totalcount} % счётчик рисунков и таблиц +\DeclareTotalCounter{lstlisting} % считать листинги тоже +\usepackage{totcount} % создание счётчиков на основе последнего номера подсчитываемого элемента +\usepackage{totpages} % счётчик страниц, совместимый с hyperref (ссылается на номер последней страницы) + +% интервалы +% linespread-реализация ближе к реализации полуторного интервала в ворде. +% setspace реализация заточена под шрифты 10, 11, 12pt, под остальные кегли хуже, но всё же ближе к типографской классике. +\linespread{1.35} % Полуторный интервал (ГОСТ Р 7.0.11-2011, 5.3.6) +%\renewcommand{\@biblabel}[1]{#1} + +% гиперссылки +\usepackage{hyperref} + +% выравнивание и переносы +\sloppy % оберег от переполнений +\clubpenalty=10000 % запрет разрыва страницы после первой строки абзаца +\widowpenalty=10000 % запрет разрыва страницы после последней строки абзаца + +% какая-то магия +\makeatletter % малые заглавные, small caps shape +\let\@@scshape=\scshape +\renewcommand{\scshape}{% + \ifnum\strcmp{\f@series}{bx}=\z@ + \usefont{T1}{cmr}{bx}{sc}% + \else + \ifnum\strcmp{\f@shape}{it}=\z@ + \fontshape{scsl}\selectfont + \else + \@@scshape + \fi + \fi} +\makeatother + +% подписи +%\captionsetup{% +%singlelinecheck=off, % многострочные подписи, например у таблиц +%skip=2pt, % вертикальная отбивка между подписью и содержимым рисунка или таблицы определяется ключом +%justification=centering, % центрирование подписей, заданных командой \caption +%} + +% пакеты +\usepackage{ifthen} % добавляет ifthenelse +% инициализирование переменных, не трогать! (опять магия) +\newcounter{intvl} +\newcounter{otstup} +\newcounter{contnumeq} +\newcounter{contnumfig} +\newcounter{contnumtab} +\newcounter{pgnum} +\newcounter{bibliosel} +\newcounter{chapstyle} +\newcounter{headingdelim} +\newcounter{headingalign} +\newcounter{headingsize} +\newcounter{tabcap} +\newcounter{tablaba} +\newcounter{tabtita} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Область упрощённого управления оформлением %%% + +% интервал между заголовками и между заголовком и текстом +% заголовки отделяют от текста сверху и снизу тремя интервалами (ГОСТ Р 7.0.11-2011, 5.3.5) +\setcounter{intvl}{3} % коэффициент кратности к размеру шрифта + +% отступы у заголовков в тексте +\setcounter{otstup}{0} % 0 - без отступа; 1 - абзацный отступ + +% нумерация формул, таблиц и рисунков +\setcounter{contnumeq}{1} % нумерация формул: 0 - пораздельно, 1 - сквозная нумерация по всему документу +\setcounter{contnumfig}{1} % нумерация рисунков: 0 - пораздельно, 1 - сквозная нумерация по всему документу +\setcounter{contnumtab}{1} % нумерация таблиц: 0 - пораздельно, 1 - сквозная нумерация по всему документу + +% оглавление +\setcounter{pgnum}{0} % 0 - номера страниц никак не обозначены, 1 - стр. над номерами страниц + +% библиография +\setcounter{bibliosel}{1} % 0 - встроенная реализация с загрузкой файла через движок bibtex8, 1 - реализация пакетом biblatex через движок biber + +% текст и форматирование заголовков +\setcounter{chapstyle}{0} % 0 - разделы только под номером, 1 - разделы с названием "Глава" перед номером +\setcounter{headingdelim}{0} % 0 - номер отделен пропуском в 1em или \quad, 1 - номера разделов и приложений отделены точкой с пробелом, подразделы пропуском без точки, 2 - номера разделов, подразделов и приложений отделены точкой с пробелом + +% выравнивание заголовков в тексте +\setcounter{headingalign}{0} % 0 - по центру, 1 - по левому краю + +% размеры заголовков в тексте +\setcounter{headingsize}{0} % 0 - по ГОСТ, все всегда 14 пт; 1 - пропорционально изменяющийся размер в зависимости от базового шрифта + +% подпись таблиц +\setcounter{tabcap}{0} % 0 - по ГОСТ, номер таблицы и название разделены тире, выровнены по левому краю, при необходимости на нескольких строках, 1 - подпись таблицы не по ГОСТ, на двух и более строках, дальнейшие настройки: +% выравнивание первой строки, с подписью и номером +\setcounter{tablaba}{2} % 0 - по левому краю, 1 - по центру, 2 - по правому краю +% выравнивание строк с самим названием таблицы +\setcounter{tabtita}{1} % 0 - по левому краю, 1 - по центру, 2 - по правому краю + +% картинки +\DeclareCaptionLabelSeparator*{emdash}{~-- } % (ГОСТ 2.105, 4.3.1) +\captionsetup[figure]{labelsep=emdash,font=onehalfspacing,position=bottom} + +% таблицы +\ifthenelse{\equal{\thetabcap}{0}}{ + \newcommand{\tabcapalign}{\raggedright} % по левому краю страницы или аналога parbox +} -\newlength{\lblwd} -\newcommand{\titlefield}[2]{% - \par\addvspace{1.6ex}% - \settowidth{\lblwd}{\small #1}% - \noindent\small #1\hspace{1em}% - \underline{\makebox[\dimexpr\linewidth-\lblwd-1em\relax][l]{\small #2}}% - \par +\ifthenelse{\equal{\thetablaba}{0} \AND \equal{\thetabcap}{1}}{ + \newcommand{\tabcapalign}{\raggedright} % по левому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetablaba}{1} \AND \equal{\thetabcap}{1}}{ + \newcommand{\tabcapalign}{\centering} % по центру страницы или аналога parbox +} + +\ifthenelse{\equal{\thetablaba}{2} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabcapalign}{\raggedleft} % по правому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetabtita}{0} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabtitalign}{\raggedright} % по левому краю страницы или аналога parbox +} + +\ifthenelse{\equal{\thetabtita}{1} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabtitalign}{\centering} % по центру страницы или аналога parbox +} + +\ifthenelse{\equal{\thetabtita}{2} \AND \equal{\thetabcap}{1}}{% + \newcommand{\tabtitalign}{\raggedleft} % по правому краю страницы или аналога parbox +} + +\DeclareCaptionFormat{tablenocaption}{\tabcapalign #1\strut} % наименование таблицы отсутствует +\ifthenelse{\equal{\thetabcap}{0}}{ + \DeclareCaptionFormat{tablecaption}{\tabcapalign #1#2#3} + \captionsetup[table]{labelsep=emdash} % тире как разделитель идентификатора с номером от наименования +}{ + \DeclareCaptionFormat{tablecaption}{\tabcapalign #1#2\par % идентификатор таблицы на отдельной строке + \tabtitalign{#3}} % наименование таблицы строкой ниже + \captionsetup[table]{labelsep=space} % пробельный разделитель идентификатора с номером от наименования +} +\captionsetup[table]{format=tablecaption, singlelinecheck=off, font=onehalfspacing, position=top, skip=-5pt} % многострочные наименования +\DeclareCaptionLabelFormat{continued}{Продолжение таблицы~#2} +\setlength{\belowcaptionskip}{.2cm} +\setlength{\intextsep}{0ex} + +% подписи подрисунков +\renewcommand{\thesubfigure}{\asbuk{subfigure}} % буквенные номера подрисунков +\captionsetup[subfigure]{font={normalsize}, % шрифт подписи названий подрисунков (не отличается от основного) + labelformat=brace, % формат обозначения подрисунка + justification=centering, % выключение подписей +} + +% гиперссылки +\definecolor{linkcolor}{rgb}{0.0,0,0} +\definecolor{citecolor}{rgb}{0,0.0,0} +\definecolor{urlcolor}{rgb}{0,0,0} +\hypersetup{ + linktocpage=true, % ссылки с номера страницы в оглавлении, списке таблиц и списке рисунков + plainpages=true, % что-то про нумерацию в арабской форме + colorlinks, % ссылки отображаются раскрашенным текстом + linkcolor={linkcolor}, % цвет ссылок типа ref, eqref и подобных + citecolor={citecolor}, % цвет ссылок-цитат + urlcolor={urlcolor}, % цвет гиперссылок + pdflang={ru}, } +\urlstyle{same} +% ещё что-то +\setlength{\parindent}{2.5em} % абзацный отступ. должен быть одинаковым по всему тексту (ГОСТ Р 7.0.11-2011, 5.3.7). + +% списки +% используем дефис для ненумерованных списков (ГОСТ 2.105-95, 4.1.7) +%\renewcommand{\labelitemi}{\normalfont\bfseries~{--}} +\renewcommand{\labelitemi}{\bfseries~{--}} +\setlist{nosep, % единый стиль для всех списков (пакет enumitem), без дополнительных интервалов + labelindent=\parindent,leftmargin=*% каждый пункт, подпункт и перечисление с абзацного отступа (ГОСТ 2.105-95, 4.1.8) +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{ragged2e} % выравнивание по горизонтали +\usepackage[explicit]{titlesec} % явное указание заголовка +\usepackage{placeins} % не даеёт объектам «утекать» за барьеры +\usepackage{xparse} % позволяет создавать более крутые команды, чем с \newcommand +\usepackage{csquotes} % многоязычное что-то +\usepackage{listingsutf8} % поддержка файлов с многобайтовыми кодировками +\usepackage{url} % пакеты расширений +\usepackage{algorithm, algorithmicx} % что-то св]занное с кодом +\usepackage[noend]{algpseudocode} % для норм форматирования кода +\usepackage{blkarray} % для работы с чем0то математическим +\usepackage{chngcntr} +\usepackage{tabularx} +\usepackage[backend=biber, + bibstyle=gost-numeric, + citestyle=gost-numeric, + sorting=none]{biblatex} +\setcounter{biburllcpenalty}{7000} +\setcounter{biburlucpenalty}{8000} +\newcommand*\template[1]{\text{<}#1\text{>}} +\addbibresource{biblio.bib} % добавление библиографии + +% нечто для нормального вида +\titleformat{name=\section,numberless}[block]{\normalfont\normalsize\centering}{}{0em}{#1} +\titleformat{\section}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{\thesection\hspace{0.25em}#1} +\titleformat{\subsection}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{\thesubsection\hspace{0.25em}#1} +\titleformat{name=\subsection,numberless}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{#1} +\titleformat{\subsubsection}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{\thesubsubsection\hspace{0.25em}#1} +\titleformat{name=\subsubsection,numberless}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{#1} + +\newcounter{subsubsubsection}[subsubsection] +\renewcommand{\thesubsubsubsection}{\thesubsubsection.\arabic{subsubsubsection}} +\setcounter{secnumdepth}{4} +\setcounter{tocdepth}{4} +\titleclass{\subsubsubsection}{straight}[\subsubsection] +\titleformat{\subsubsubsection}[block]{\normalfont\normalsize\bfseries\raggedright}{}{0em}{\thesubsubsubsection\hspace{0.25em}#1} +\titlespacing*{\subsubsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} +\makeatletter +\newcommand*\l@subsubsubsection{\@dottedtocline{4}{0pt}{5em}} +\makeatother + +\let\Algorithm\algorithm % копирование одной команды в другую +\renewcommand\algorithm[1][]{\Algorithm[#1]\setstretch{1.5}} +%\renewcommand{\listingscaption}{Листинг} + +% работа с шрифтами, формулами +\usepackage{pifont} +\usepackage{calc} +\usepackage{suffix} +\usepackage{csquotes} +\DeclareQuoteStyle{russian} + {\guillemotleft}{\guillemotright}[0.025em] + {\quotedblbase}{\textquotedblleft} +\ExecuteQuoteOptions{style=russian} +\newcommand{\enq}[1]{\enquote{#1}} +\newcommand{\eng}[1]{\begin{english}#1\end{english}} + +% создание всяких разных счётчиков +\newcounter{cTheorem} +\newcounter{cDefinition} +\newcounter{cConsequent} +\newcounter{cExample} +\newcounter{cLemma} +\newcounter{cConjecture} +\newtheorem{Theorem}{Теорема}[cTheorem] +\newtheorem{Definition}{Определение}[cDefinition] +\newtheorem{Consequent}{Следствие}[cConsequent] +\newtheorem{Example}{Пример}[cExample] +\newtheorem{Lemma}{Лемма}[cLemma] +\newtheorem{Conjecture}{Гипотеза}[cConjecture] + +% счётчик - с арабской цифрой +\renewcommand{\theTheorem}{\arabic{Theorem}} +\renewcommand{\theDefinition}{\arabic{Definition}} +\renewcommand{\theConsequent}{\arabic{Consequent}} +\renewcommand{\theExample}{\arabic{Example}} +\renewcommand{\theLemma}{\arabic{Lemma}} +\renewcommand{\theConjecture}{\arabic{Conjecture}} +% \makeatletter +\NewDocumentCommand{\Newline}{}{\text{\\}} +\newcommand{\sequence}[2]{\ensuremath \left(#1,\ \dots,\ #2\right)} + +% переопределяем цвета +\definecolor{mygreen}{rgb}{0,0.6,0} +\definecolor{mygray}{rgb}{0.5,0.5,0.5} +\definecolor{mymauve}{rgb}{0.58,0,0.82} +\renewcommand{\listalgorithmname}{Список алгоритмов} +\floatname{algorithm}{Листинг} +\renewcommand{\lstlistingname}{Листинг} +\renewcommand{\thealgorithm}{\arabic{algorithm}} + +% работа с листингами, рисунками, параграфами +\newcommand{\refAlgo}[1]{(листинг \ref{#1})} +\newcommand{\refImage}[1]{(рисунок \ref{#1})} +\renewcommand{\theenumi}{\arabic{enumi}.} % меняем везде перечисления на цифра.цифра +\renewcommand{\labelenumi}{\arabic{enumi}.} % меняем везде перечисления на цифра.цифра +\renewcommand{\theenumii}{\arabic{enumii}} % меняем везде перечисления на цифра.цифра +\renewcommand{\labelenumii}{(\arabic{enumii})} % меняем везде перечисления на цифра.цифра +\renewcommand{\theenumiii}{\roman{enumiii}} % меняем везде перечисления на цифра.цифра +\renewcommand{\labelenumiii}{(\roman{enumiii})} % меняем везде перечисления на цифра.цифра +%\newfontfamily\AnkaCoder[Path=src/fonts/]{AnkaCoder-r.ttf} +\renewcommand{\labelitemi}{--} +\renewcommand{\labelitemii}{--} + +%\usepackage{courier} + +% оформление языков +\lstdefinelanguage{Refal}{ + alsodigit = {.,<,>}, + morekeywords = [1]{ENTRY}, + morekeywords = [2]{Go, Put, Get, Open, Close, Arg, Add, Sub, Mul, Div, Symb, Explode, Implode}, + %keyword4 + morekeywords = [3]{<,>}, + %keyword5 + morekeywords = [4]{e.,t.,s.}, + sensitive = true, + morecomment = [l]{*}, + morecomment = [s]{/*}{*/}, + commentstyle = \color{mygreen}, + morestring = [b]", + morestring = [b]', + stringstyle = \color{purple} +} + +\makeatletter % для норм обозначения @ +\def\p@subsection{} +\def\p@subsubsection{\thesection\,\thesubsection\,} +\makeatother + +% какая-то лютая магия +\newcommand{\prog}[1]{{\ttfamily\small#1}} +\lstset{ % + backgroundcolor=\color{white}, % выбор background, нужно \usepackage{color} or \usepackage{xcolor} + basicstyle=\ttfamily\footnotesize, + %basicstyle=\footnotesize\AnkaCoder, % размер букв для кода + breakatwhitespace=false, % sets if automatic breaks shoulbd only happen at whitespace + breaklines=true, % sets automatic line breaking + captionpos=top, % sets the caption-position to bottom + commentstyle=\color{mygreen}, % comment style + deletekeywords={...}, % if you want to delete keywords from the given language + escapeinside={\%*}{*)}, % if you want to add LaTeX within your code + extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 + inputencoding=utf8, + frame=single, % adds a frame around the code + keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) + keywordstyle=\bf, % keyword style + language=Refal, % the language of the code + morekeywords={<,>,$ENTRY,Go,Arg, Open, Close, e., s., t., Get, Put}, + numbers=left, % where to put the line-numbers; possible values are (none, left, right) + numbersep=5pt, % how far the line-numbers are from the code + xleftmargin=25pt, + xrightmargin=25pt, + numberstyle=\small\color{black}, % the style that is used for the line-numbers + rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) + showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' + showstringspaces=false, % underline spaces within strings only + showtabs=false, % show tabs within strings adding particular underscores + stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered + stringstyle=\color{mymauve}, % string literal style + tabsize=8, % sets default tabsize to 8 spaces + title=\lstname % show the filename of files included with \lstinputlisting; also try caption instead of title +} +% какие-то переобъявления и новые команды +\newcommand{\anonsection}[1]{\cleardoublepage +\phantomsection % якроь в опр месте +\addcontentsline{toc}{section}{#1} +\section*{#1}\vspace*{2.5ex} % по госту положены 3 пустые строки после заголовка ненумеруемого раздела +} +\newcommand{\anonsubsection}[1]{\subsection*{#1}} +\newcommand{\anonsubsubsection}[1]{\subsubsection*{#1}} +\newcommand{\sectionbreak}{\clearpage} \renewcommand{\sectionfont}{\normalsize} % Сбиваем стиль оглавления в стандартный \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % Точки в оглавлении напротив разделов \renewcommand{\cftsecfont}{\normalfont\large} % Переключение на times в содержании \renewcommand{\cftsubsecfont}{\normalfont\large} % Переключение на times в содержании -\setlength{\parindent}{1.25cm} \setlength{\cftsecindent}{0pt}% Убираем отступы в содержании для \section \setlength{\cftsubsecindent}{0pt}% Убираем отступы в содержании для \subsection \setlength{\cftsubsubsecindent}{0pt}% Убираем отступы в содержании для \subsubsection -\renewcommand{\anonsection}[1]{\cleardoublepage - \phantomsection - \addcontentsline{toc}{section}{#1}% - \section*{#1}\vspace*{2.5ex}% -} +% опять магия, я устала +\usepackage{caption} +%\captionsetup[table]{justification=raggedleft} +%\captionsetup[figure]{justification=centering,labelsep=endash} +\usepackage{amsmath} % \bar (матрицы и проч. ...) +\usepackage{amsfonts} % \mathbb (символ для множества действительных чисел и проч. ...) +\usepackage{mathtools} % \abs, \norm + \DeclarePairedDelimiter\abs{\lvert}{\rvert} % операция модуля + \DeclarePairedDelimiter\norm{\lVert}{\rVert} % операция нормы +\DeclareTextCommandDefault{\textvisiblespace}{% + \mbox{\kern.06em\vrule \@height.3ex}% + \vbox{\hrule \@width.3em}% + \hbox{\vrule \@height.3ex}} +\newsavebox{\spacebox} +\begin{lrbox}{\spacebox} +\verb*! ! +\end{lrbox} +\newcommand{\aspace}{\usebox{\spacebox}} +\DeclareTotalCounter{listing} + +% снова магия +\makeatletter +\renewcommand*{\p@subsubsection}{} +\makeatother + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\makeatletter +\AddToHook{begindocument/before}{\@ifpackageloaded{minted}{\removefromtoclist[float]{lol}}{}} +\makeatother +\newlength{\lblwd} -\usepackage{scrlayer-scrpage} -\clearpairofpagestyles -\ohead{} -\chead{} -\cfoot*{\thepage} % page number centered in footer on all pages -\pagestyle{scrplain} -% tune vertical position inside the 2 cm bottom margin -\setlength{\footskip}{1.25cm} +% Поле титульного листа: метка + значение на подчёркивающей линии +\newcommand{\titlefield}[2]{% + \par\addvspace{1.6ex}% + \settowidth{\lblwd}{\small #1}% + \noindent\small #1\hspace{1em}% + \underline{\makebox[\dimexpr\linewidth-\lblwd-1em\relax][l]{\small #2}}% + \par +} +\begin{document} +\sloppy % избегаем переполнения -\begin{document} -\sloppy +\def\figurename{Рисунок} % переименуем рис в рисунок -\def\figurename{Рисунок} \newcommand{\sqlkw}[1]{\texttt{#1}} \newcommand{\SELECT}{\sqlkw{SELECT}} @@ -91,13 +530,17 @@ \ensuremath{% \begin{array}{c} #1 \\[1pt] - \xRightarrow{\,{\small #2}\,} \\[1pt] + \xRightarrow{\,#2\,} \\[1pt] #3 \end{array}% }% } +%---------------------------------- +% АННОТАЦИЯ (до титульного листа) +%---------------------------------- +% начала магии title \begin{titlepage} \thispagestyle{empty} \newpage @@ -180,14 +623,12 @@ \textsl{2026} \end{center} \end{titlepage} +% конец магии title \setlength{\tabcolsep}{3pt} \newpage \thispagestyle{empty} -%---------------------------------------------------------------------------- -% ОТСЮДА --- СОБСТВЕННО ТЕКСТ -%---------------------------------------------------------------------------- \section*{АННОТАЦИЯ} Работа посвящена разработке оптимизатора SQL-запросов для модельной реляционной @@ -216,7 +657,10 @@ \section*{АННОТАЦИЯ} \newpage \setcounter{page}{2} -\renewcommand\contentsname{\hfill{\normalfont{СОДЕРЖАНИЕ}}\hfill} +%---------------------------------------------------------------------------- +% ОТСЮДА --- СОБСТВЕННО ТЕКСТ +%---------------------------------------------------------------------------- +\renewcommand\contentsname{\hfill{\normalfont{СОДЕРЖАНИЕ}}\hfill} %Оглавление \tableofcontents \newpage \anonsection{ВВЕДЕНИЕ} From d911f88df879ef0d79805ab930972bd7416e24bb Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 10 Jun 2026 22:31:29 +0300 Subject: [PATCH 106/120] Implement remaining transformation rules and support constraints --- include/stewkk/sql/logic/executor/plan.hpp | 18 +- .../sql/logic/optimizer/logical_expr.hpp | 17 ++ .../stewkk/sql/logic/optimizer/optimizer.hpp | 4 +- .../sql/logic/optimizer/physical_expr.hpp | 17 ++ include/stewkk/sql/logic/optimizer/rule.hpp | 12 +- include/stewkk/sql/logic/optimizer/rules.hpp | 9 +- .../sql/logic/optimizer/rules_applier.hpp | 7 +- .../sql/logic/optimizer/schema_catalog.hpp | 30 +++ .../aggregation_join_transpose.hpp | 13 ++ .../aggregation_pushdown_through_join.hpp | 13 ++ .../cross_join_to_join.hpp | 13 ++ .../filter_lift_through_join.hpp | 13 ++ .../transformation_rules/filter_merge.hpp | 4 +- .../filter_pushdown_through_join.hpp | 4 +- .../filter_pushdown_through_projection.hpp | 4 +- .../transformation_rules/filter_split.hpp | 4 +- .../filter_to_join_predicate.hpp | 13 ++ .../transformation_rules/in_to_or_chain.hpp | 4 +- .../join_associativity.hpp | 4 +- .../join_commutativity.hpp | 4 +- .../outer_join_to_inner.hpp | 13 ++ .../transformation_rules/predicate_utils.hpp | 6 + .../projection_pushdown_through_join.hpp | 13 ++ report/vkr.pdf | Bin 1081868 -> 0 bytes src/stewkk/sql/CMakeLists.txt | 7 + src/stewkk/sql/logic/executor/executor.cpp | 10 + src/stewkk/sql/logic/executor/plan.cpp | 8 + .../sql/logic/executor/plan_serializer.cpp | 66 +++++++ .../implement_aggregation.cpp | 13 +- .../sql/logic/optimizer/cardinality.cpp | 14 ++ src/stewkk/sql/logic/optimizer/memo.cpp | 24 +++ src/stewkk/sql/logic/optimizer/optimizer.cpp | 56 +++++- .../sql/logic/optimizer/optimizer_test.cpp | 19 ++ .../sql/logic/optimizer/reachability.cpp | 22 +++ src/stewkk/sql/logic/optimizer/rule.cpp | 5 +- src/stewkk/sql/logic/optimizer/rule_test.cpp | 187 +++++++++++++++++- src/stewkk/sql/logic/optimizer/rules.cpp | 9 +- .../sql/logic/optimizer/rules_applier.cpp | 12 +- .../logic/optimizer/rules_applier_test.cpp | 9 +- .../sql/logic/optimizer/schema_catalog.cpp | 89 +++++++++ .../aggregation_join_transpose.cpp | 114 +++++++++++ .../aggregation_pushdown_through_join.cpp | 113 +++++++++++ .../cross_join_to_join.cpp | 36 ++++ .../filter_lift_through_join.cpp | 57 ++++++ .../transformation_rules/filter_merge.cpp | 4 +- .../filter_pushdown_through_join.cpp | 4 +- .../filter_pushdown_through_projection.cpp | 29 +-- .../transformation_rules/filter_split.cpp | 4 +- .../filter_to_join_predicate.cpp | 44 +++++ .../transformation_rules/in_to_or_chain.cpp | 4 +- .../join_associativity.cpp | 4 +- .../join_commutativity.cpp | 4 +- .../outer_join_to_inner.cpp | 56 ++++++ .../transformation_rules/predicate_utils.cpp | 71 +++++++ .../projection_pushdown_through_join.cpp | 109 ++++++++++ src/stewkk/sql/main.cpp | 3 +- 56 files changed, 1361 insertions(+), 84 deletions(-) create mode 100644 include/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/cross_join_to_join.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/filter_lift_through_join.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/outer_join_to_inner.hpp create mode 100644 include/stewkk/sql/logic/transformation_rules/projection_pushdown_through_join.hpp delete mode 100644 report/vkr.pdf create mode 100644 src/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/cross_join_to_join.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/filter_lift_through_join.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/outer_join_to_inner.cpp create mode 100644 src/stewkk/sql/logic/transformation_rules/projection_pushdown_through_join.cpp diff --git a/include/stewkk/sql/logic/executor/plan.hpp b/include/stewkk/sql/logic/executor/plan.hpp index 41b3a6f..821271e 100644 --- a/include/stewkk/sql/logic/executor/plan.hpp +++ b/include/stewkk/sql/logic/executor/plan.hpp @@ -120,6 +120,22 @@ struct PhysicalStreamAggregation { bool operator==(const PhysicalStreamAggregation&) const; }; +struct PhysicalPartialAggregation { + std::shared_ptr source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const PhysicalPartialAggregation&) const; +}; + +struct PhysicalFinalAggregation { + std::shared_ptr source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const PhysicalFinalAggregation&) const; +}; + struct PlanNodeMetadata { std::int64_t cardinality = 0; std::int64_t local_cost = 0; @@ -127,7 +143,7 @@ struct PlanNodeMetadata { bool operator==(const PlanNodeMetadata&) const = default; }; -using PhysicalPlanAlternative = std::variant; +using PhysicalPlanAlternative = std::variant; struct PhysicalPlanNode { PhysicalPlanAlternative node; diff --git a/include/stewkk/sql/logic/optimizer/logical_expr.hpp b/include/stewkk/sql/logic/optimizer/logical_expr.hpp index 8e2af14..43f681d 100644 --- a/include/stewkk/sql/logic/optimizer/logical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/logical_expr.hpp @@ -34,6 +34,22 @@ struct Aggregation { bool operator==(const Aggregation&) const = default; }; +struct PartialAggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const PartialAggregation&) const = default; +}; + +struct FinalAggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const FinalAggregation&) const = default; +}; + struct CrossJoin { utils::NotNull lhs; utils::NotNull rhs; @@ -55,6 +71,7 @@ struct Join { struct LogicalExpr { std::variant root_operator; utils::NotNull group; }; diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index c5ecc04..bd5fb2c 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -27,7 +27,8 @@ class Optimizer { public: Optimizer(const Operator& expr, Rules&& rules, CardinalityEstimates cardinality, SchemaCatalog schema, - PropertySet required = PropertySet::Any()); + PropertySet required = PropertySet::Any(), + ConstraintCatalog constraints = {}); PhysicalPlanNode Optimize(); PhysicalPlanNode OptimizeExhaustive(); @@ -69,6 +70,7 @@ class Optimizer { utils::NotNull root_; CardinalityEstimates cardinality_; SchemaCatalog schema_; + ConstraintCatalog constraints_; PropertySet global_required_; std::unordered_map local_cost_; std::unordered_map winner_; diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 9dd2dba..17d6266 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -103,6 +103,22 @@ struct StreamAggregation { bool operator==(const StreamAggregation&) const = default; }; +struct PartialAggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const PartialAggregation&) const = default; +}; + +struct FinalAggregation { + utils::NotNull source; + std::vector group_by; + std::vector aggregates; + + bool operator==(const FinalAggregation&) const = default; +}; + } // namespace physical struct PhysicalExpr { @@ -110,6 +126,7 @@ struct PhysicalExpr { physical::NestedLoopJoin, physical::NestedLoopCrossJoin, physical::HashJoin, physical::MergeJoin, physical::Sort, physical::Aggregation, physical::StreamAggregation, + physical::PartialAggregation, physical::FinalAggregation, physical::IndexSeek> root_operator; utils::NotNull group; bool is_enforcer = false; diff --git a/include/stewkk/sql/logic/optimizer/rule.hpp b/include/stewkk/sql/logic/optimizer/rule.hpp index 872c2f6..fa074cc 100644 --- a/include/stewkk/sql/logic/optimizer/rule.hpp +++ b/include/stewkk/sql/logic/optimizer/rule.hpp @@ -6,19 +6,25 @@ #include #include #include +#include namespace stewkk::sql { class Memo; +struct RuleContext { + SchemaCatalog& schema; + ConstraintCatalog& constraints; +}; + class TransformationRule { public: - virtual bool IsApplicable(utils::NotNull expr) = 0; - utils::NotNull Apply(utils::NotNull expr, Memo& memo); + virtual bool IsApplicable(utils::NotNull expr, RuleContext& ctx) = 0; + utils::NotNull Apply(utils::NotNull expr, Memo& memo, RuleContext& ctx); virtual ~TransformationRule() = default; private: - virtual LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) = 0; + virtual LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) = 0; }; class ImplementationRule { diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index 8b9a31c..fc336f8 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -11,6 +11,13 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -29,7 +36,7 @@ struct Rules { std::array, NImplementation> implementation_rules; }; -Rules<7, 9> MakeMainRules(IndexCatalog indexes = {}); +Rules<14, 9> MakeMainRules(IndexCatalog indexes = {}); Rules<0, 6> MakeNaiveRules(); } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp index 4d0bbf7..8834ecc 100644 --- a/include/stewkk/sql/logic/optimizer/rules_applier.hpp +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -22,8 +22,11 @@ class RulesApplier { public: explicit RulesApplier(Rules rules); - bool IsApplicable(TransformationRuleId rule, utils::NotNull expr); - utils::NotNull Apply(TransformationRuleId rule, utils::NotNull expr, Memo& memo); + bool IsApplicable(TransformationRuleId rule, utils::NotNull expr, + RuleContext& ctx); + utils::NotNull Apply(TransformationRuleId rule, + utils::NotNull expr, Memo& memo, + RuleContext& ctx); bool IsApplicable(ImplementationRuleId rule, utils::NotNull expr); std::vector> Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo); diff --git a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp index b7f5528..c5c1e5e 100644 --- a/include/stewkk/sql/logic/optimizer/schema_catalog.hpp +++ b/include/stewkk/sql/logic/optimizer/schema_catalog.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -21,6 +22,18 @@ struct IndexInfo { std::string file; }; +struct UniqueKeyInfo { + std::string table; + std::string column; +}; + +struct ForeignKeyInfo { + std::string from_table; + std::string from_column; + std::string to_table; + std::string to_column; +}; + class IndexCatalog { public: IndexCatalog(std::vector indexes = {}); @@ -31,12 +44,27 @@ class IndexCatalog { std::vector indexes_; }; +class ConstraintCatalog { +public: + ConstraintCatalog(std::vector unique_keys = {}, + std::vector foreign_keys = {}); + + bool IsUnique(const Attribute& attr) const; + bool HasForeignKey(const Attribute& from, const Attribute& to) const; + +private: + std::vector unique_keys_; + std::vector foreign_keys_; +}; + class SchemaCatalog { public: SchemaCatalog(std::unordered_map tables = {}); Schema GetSchema(utils::NotNull group); std::int64_t GetWidth(utils::NotNull group); + std::optional ResolveBaseAttribute(const Attribute& attr, + utils::NotNull group); private: Schema Derive(const LogicalOperator& op); @@ -49,6 +77,8 @@ SchemaCatalog LoadSchemaFromCsvDir(const std::filesystem::path& dir); IndexCatalog LoadIndexCatalogFromCsvDir(const std::filesystem::path& dir); +ConstraintCatalog LoadConstraintCatalogFromCsvDir(const std::filesystem::path& dir); + std::unordered_map LoadTableSizesFromCsvDir( const std::filesystem::path& dir); diff --git a/include/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.hpp b/include/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.hpp new file mode 100644 index 0000000..25e17c9 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class AggregationJoinTranspose : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.hpp b/include/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.hpp new file mode 100644 index 0000000..c29e77a --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class AggregationPushdownThroughJoin : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/cross_join_to_join.hpp b/include/stewkk/sql/logic/transformation_rules/cross_join_to_join.hpp new file mode 100644 index 0000000..a54ece0 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/cross_join_to_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class CrossJoinToJoin : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_lift_through_join.hpp b/include/stewkk/sql/logic/transformation_rules/filter_lift_through_join.hpp new file mode 100644 index 0000000..0f61ec2 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/filter_lift_through_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class FilterLiftThroughJoin : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp b/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp index dbbf035..e330c79 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_merge.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class FilterMerge : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp index 9db2b4f..80d8c08 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class FilterPushdownThroughJoin : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp index b22944d..a74d6f2 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class FilterPushdownThroughProjection : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_split.hpp b/include/stewkk/sql/logic/transformation_rules/filter_split.hpp index 5eba6d8..7e36f8b 100644 --- a/include/stewkk/sql/logic/transformation_rules/filter_split.hpp +++ b/include/stewkk/sql/logic/transformation_rules/filter_split.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class FilterSplit : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.hpp b/include/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.hpp new file mode 100644 index 0000000..ddd6de7 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class FilterToJoinPredicate : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp b/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp index bbcd362..ae0c809 100644 --- a/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp +++ b/include/stewkk/sql/logic/transformation_rules/in_to_or_chain.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class InToOrChain : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp b/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp index b4a2281..00c3f9c 100644 --- a/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp +++ b/include/stewkk/sql/logic/transformation_rules/join_associativity.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class JoinAssociativity : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp b/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp index ccaf13b..3004be5 100644 --- a/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp +++ b/include/stewkk/sql/logic/transformation_rules/join_commutativity.hpp @@ -7,8 +7,8 @@ namespace stewkk::sql { class JoinCommutativity : public TransformationRule { public: - bool IsApplicable(utils::NotNull expr) override; - LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo) override; + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/outer_join_to_inner.hpp b/include/stewkk/sql/logic/transformation_rules/outer_join_to_inner.hpp new file mode 100644 index 0000000..0465da6 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/outer_join_to_inner.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class OuterJoinToInner : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp b/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp index a36f9ea..fce9ada 100644 --- a/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp +++ b/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp @@ -18,8 +18,14 @@ Expression AndConjuncts(const std::vector& conjs); void CollectAttrTables(const Expression& e, std::unordered_set& out); +void CollectAttributes(const Expression& e, std::vector& out); + std::unordered_set ExprTables(const Expression& e); std::unordered_set GroupTables(utils::NotNull g); +bool ExprUsesOnlyTables(const Expression& e, const std::unordered_set& tables); + +bool IsNullRejectingForTables(const Expression& e, const std::unordered_set& tables); + } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/transformation_rules/projection_pushdown_through_join.hpp b/include/stewkk/sql/logic/transformation_rules/projection_pushdown_through_join.hpp new file mode 100644 index 0000000..2c041b6 --- /dev/null +++ b/include/stewkk/sql/logic/transformation_rules/projection_pushdown_through_join.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +namespace stewkk::sql { + +class ProjectionPushdownThroughJoin : public TransformationRule { + public: + bool IsApplicable(utils::NotNull expr, RuleContext& ctx) override; + LogicalOperator ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext& ctx) override; +}; + +} // namespace stewkk::sql diff --git a/report/vkr.pdf b/report/vkr.pdf deleted file mode 100644 index 2682c3f8f2b5000e1d54c27b1a82768541be8a44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081868 zcmeFYbyQnl_9))=Q>92-ifao+N{hRtlmf+z26qeY5Fn&2R=jv|D=xt;SP2k3xJz+& zmxN#F%)B?h^=7U2U2m4W534pu&#SN+3n<2c;3?6h`9 zmN>$~IBcq5dsA9A4MihMQ)6cwHWe2m=RYlyc8)eUZ13OOxzlR1WBYTk|M}_Su-!oZ zyv2dTCU5BM2*UQ@!1lnxZ~kI?D4ROjxi}h|I??iATaiX$qD3t_lc?R_nli0(6{$+Ol?j64#D2t zpw5RK_&>7*{(sjJ1pZ@7;J9JVzl9APH!T0p@PUK#-?oVVoG@|x+oXx}hR6RIPH^5Z z{of)^oLv98Mcf#{f6pR#|8tADk=%dJBL3Mr{oQ=?bMXC-&9{x3yxju(lZI8GJ3-9k zUu~|U-&lN27-^47rt;H9^gu>+5i(!zP+shg*|kS+TN0$L?jQCf@&!5_Zi7WixA!&} z*BhR*Vfd4f?TY!kQ{s+JDg?dY-OC|@UF|tN*KmRbFl9m|AaH7<)O!m)q)Q7p>AkEy zCK*@hm_xsaIB<6gdcrBXUl*)ebVrS3Ua{-5cp5IhzC#-BmpdU7k$3Kqs`XIc ziH}rWie&9&TTh&u;=p-?yko^mWEgkb%0QQ>nR&kMPTx0UCEyAr?91bJV)u4)^X6B` zK)bUooN>qLTSCRMNkNPFHQD&D2mMc+^8=fVLbPx$DpmWlpBt|!^*6oVpyW3V(Nk?F z70FLJXSV3r*xo!eteBlH zU5S;K+4kqFQtCz){>N-eVcn{ldf$Fjl??_X3ZJI6kd zy^yEG6)qis?%5pCh*uT@0(iSGoX+ery;}yLU4-a>)!5@zUrne&(i$K+6r(b;2GDy* zfextVy-@VXxPESa?PNfLmU@f*d6OI?oJg=BRxAoP&&Ug>g%8)v=0`LaRGX;z^k58O z!13zdTq!2$VC;(XyZ;&hWPCk8f85rL7o2!~*lydmNXqJTA>8j08eF%DUL{##r?e09 zK3cE!>MHTjdIi1pW4@X2{|s=r{@I@YLjk$D{+|_4p#$jmJ<0bYWmOT5)^-d-cChNR z=fC@*P2OCDlf@^uJgA%E!G}rwe1McO!l@IO?XwxH;{^q@sm1iqt6Gu!e0*wiI{3vx z0Ku_3*J%-v+|_iu(VaruZnesdlT{%_J(u3gEEl@X>z^$R+i*pki`=QuOOc5mf%gr| z0Zo^oR&wApUde$KHol}2$Z1+n!|3FLSY7Rt2Oov+sem%GjTdJctsbmr=?w_5r(2%( zYN{X2QC<~()PpAV?UZb|LfBIa)`RDSlLH6_9ZBR;{YUXGcY0x=`o(O>MYy6b8e{L)_c5|uKLbWlf8 zD~lSbyngHw&Gxlctn3l9fy`Z_yU*}Hh&~}VxLa{D{(v)lG2yRx0(yg=s+x=j(M(zn zLC9bA?`7ITaF}HWdqQ53@{say3Aew=Tw|gPu)tV9h#zx%pTO%IOvawwZy0||%9lm% zr+I7XT7hvGu=$bk<0MC0oFs>&GlA97=Ges&d6MZk{#VGyzk@=>HHh zI3{i+J}f3HrV;a*zmWb)GrGK*5LR@dqmsN#g6YU>LN-61*X4h_ZlD=(n{Ob5L$M1? zOl`VUxj*V*O^VojV}fg=*;*5=lBptNHb?L_kpmQXSMaVlgXtq|jpU9yNeLGXJ1yHuX;*(49rc1sNUxF}WCpNcpVm4xq3>(2 zo&66(Nv>YY@<7q<0#FqwWMPy)u>~Np2Y5729hifd?t!0 z<#69T5T_I%Jt|uOP@Aw|GGRp5>AgYMtxvBxGKsD^;;@fHLDze&LDxUVg05BduL8VT zFyiJfFqw8QFh2UYkz5C|VF&?>1->O`;hH%6H04-;Uda2afYf_U zIOO0r-lOiMj#~tRk2QN2wox9+yNQ3rsw5{PQk|Xu*i}F!Z z*-VN?Ya0&xCt73X!PD8+O^$LsE&UAH%h6{IWG1?rFwMRn3}LO~f&7 z`YE%1ApQ9m6?+b_;+l2f_l}YA3y)9qqg!c~eHqIoWwBUtBK8r_FGavwUGANsazKt8 z|CZkn>4*2e2)#8rv3CJ70S)Y*1;5#ssrut=%O-R*wr-&s9qxfx@#B9Q*565CSNNQx z1G{@d78U>5zVM5A&tpoZ56Gr``1_pGWSWZpiePSXWwZvN*<;2I# z2ed#!gM&1>!S4^K5IGC3Yy)yc>`ix5_Vot)B|3j_Pfy;}dk$7nIRkF7yb|#Y`WRJm zAELD7b70w49duE-GW83+{+YvzLe%L|=sXu5x4&ma#sm8%%_EZpNA&on>`Da7w|L|% ztsyR?`S|ztKtUStb3n*#Ph3e?8*)A_Za;3K9|0K^;bKJvVJ~`1+f;t^RT91j6j(F%E3| z9PyBWn&U2b{0YldQGm*n+bMlxW;B`P1W!JIwoQe*$^XS6$6n)h!aR9!{R_wET!R(I z=RsR=(H~ld^=RSbW5c2CON+{vha_}Zm!X*0jk3USb9-38-5f7VIP5(Ir~%yXqqwzT z(wV32!Fj6=Zv7^r%Yc1YCwyAu^7t?}5K$^yutNb6+_4nds&k_%V$zLLQ!ApI;h8hZ zrnEY!qH)O@$jSl}Jx(Du%^Dqe?eF8x!O24IQ+rp%J^L=<%A1p(L3V*2fnjDI=L(s$ z?+V#LjQ;Uo;yumosC44Ra)uNt|L&>BB_ey2COgqQsQwrfs6q6T=%@et2kpvEqOp3{ zGk9aHwHdNY;>O`m{W-(qnx~Dq0~x4+&3Se&%d+E?8GMJRaKH1lNn2o$Kb%XwisSayrOUXr=dpRfOiz)W zR@&_JMfRhMszQ#Y* zf&>N#uu%8Ce>Ie}bzCxbC+@j9v~KL!l(dJr`ue_Sti$&y1;wUtW2kQoWD9D36?j`j zZ2&;?y4&zyXw*L^bAQ(;Y$=T6Zz}bFFJsxL%iB%yKd-+8S`geG6u0#L7_CEk|6}JJ zM+=qVUq-O7RujC|vKLbUSC=F8rHG7ipU|hrXS4M$1cqny0el3Ffcn-4mujX>3+wh| z@Uu_QIcjq^x88L4)}lS;sWHvv)YMS*)~fp&?|#zESa|PZi4ZjYD^0)-dJw5SeEq=h ztcpVU;fBd6YCkm~XE*VI-?!D7bBIUO{qjeqgk4L=a}L7W_=svbsG5xYUz_PL0?!iR z-jy+#i7WL>7rvv#N}ZFh3tTp3-ebuy#e=!+99ItTp@Se2y}0M`<89o;)!5O2Gc~}s z7kdlZTCAa%ExQav9o5%ThVMSD#RpX$h|TA?L8gk z45d5$$RUTRHV2{lwh84twJPhWkvI5gnq6G;`g%QaClNnl?+dHf+T6z(dcCn(@hQuS z_s49$t5!=3ve|0ZL8})lQ#dB&oQR&iCXz9rt9fdDkAfiSv8`!+^K=IB7C-Q>xE|0K zmS4el+{Ly&ip%i+NhOL{J^fQ!kdmDF#4>XVp`scn4>o%x8lSGsiC8VPtJ>m~o@oMOe--wdsd zDZunk<3LR#hLo@KMjoj^{oG~IL>HAUO%HQTYoTA4BGAS~*w?p}#+0G=FtHab@tdYi z;KJZ649=!Sr+zp8xz&+HUXzr5?3KuZ(}vwW6(^rsfy&C28|VS(dlJ;#l_S1Vd1 zf=h)~zse01LeIVmFH;gtGv4>C`7N54rY)9o-%9Iy&KHKT%W1l%%s%S#4Ah88Dm|_%NVEaaXY#*4~19$S59jx zdXW3Vvh%w(o`(gX?S8vXh*5LVl0XbZ?;xoQ!$!q1nz1Arcc`r1QvRKE9u_iu-1>}W zP3gBf4s?~i@kOk#l~JHwU_{Qvc9KW3@K9o+x!I79eD?aGNkZet>~&pEd3}bVBQ;L> zChQZ0Q+|$q=x7rQlg}no(vmhDQE8|>?Iic#5jce zBHk=F3gpiaZ>E8Lvf=F2dNow&!r41XKU8R=6(V@8LtnePq=i@xgkuiFc32nrb>|Mm zX!$sHe$PAsG?9e`(3y2Ait^ghu(^9!nqS|(=R%wKFAT>&7Zv}P;o$sxl=wd|9I>)? zQ|!3NUCi^@^mlF@MzUo@1QNG93DN>YN{A7~c}1?b$%X7A#hcJ_gPcW10e7$BJ-$b; zH`$7!y{3QIy1P=GzY2ub9@suNvRd z}|C!B*m%c_ zMnIi=H}jh?0k5DG8bCv;j$D$m!FGS`A!x47VXmoeja7PQ5uRNet}_SO%c{)~K(TGl zq4~p;N9TBsO%#%zk)+&nG!v0s=qgXp=xBBC`xdt^uwT~5pf@@<@8LnF|AcLmf)uuC z+W1OuC9YZeRdaEFu~UgvNw8V`*po}}`s>~2?lF9227tn3nG-se;>V8dE@FMPtQ`rP zU+Wj^Xi0QPOb{+&RXQX~j>V71M|22FfZ)X%wb^E)nCiQF%c1pxc1t5*I#?eC*k!h( z;80R8neSkuJ_5KJYR%7PD8Q!VsK;NtQ2!kWMw|!w&-z)L#T!ui-4l8RzptHUV;@4V z{Y4&3uA!|Qc7K*d`kX8`>*uuGect4p0fQk;^6BpHcmf|~UGKR{^DZ&7l*yJ@mEn!! zO+3j-SPZBQTHxEGW(jKgjJ;zcFCiLJGS!jt+fSrVy?h5U%l*%rWFXm;z8`q1 zZFUsbns*B9S%U@oo$~ekMzJeKT%41wypC)yPjkOIeThhtU>0F9YVwX9xae|H@TP%g z2gadY>jCX5dzcRYQ>m(YfMe$+9T0ozy`n5IyRy7%O(dI){N1=w z-yo2KBr>Fx8D-NVMhf~19d2E79r5-Q`!+gU$Kjf8Z2Gzb?-Wpya(L>Ifqnh4**Bo9 z*_xU>#44SD=eWp^y5DK;y`4p`VEXDVdtY+Xum00 zQe$!6!rIF;7{j~(1Nt{%`UyFiB}^&(B;n1lUR1!Om2+-`8Hpu~`TaHz!?2!;-=x*X zCr^3Aq!nRtp1k;W<;!6`7VPEquwEh-cKFG&2)}Y{=lyo2L~g^V@1&JYZbKDr<(PW< z$)w=0-qc=orQF$+R(ASH?91ULyWUfVK$Pc8&(Ry~TL~}PdD^NG zBkNH1KKl|1Ysr^dx4CIjb})72%`eZJ^9@6>J@;-xC{l>&GntNXz?u24^ zF0Diik`>P8=XWq_58Ko6NIQhRIKw8&8u22E?%Gj{Cb-2(?XC@Qtp#+eC3)`+M0v-Z z!@V_PiO5(@d9teYc84g|>@IXCpL&%(Nz#CG2ufU*yn9qbf;s*QG1V*YZUh3*AcWBi-chj;+M&zQe#? z_ug;i^rh6k$F#W0fh?;P<{dhj%W^(!^0GJ}jrBH;Uy%mgsN$5w;GehMnck)-(`hu{ ztBOEBowjz03p1N5g&d{WT;kilRv>Ry&Z@<^)iEH-E@wJ}Bi>#f&+qx6&bp>7pQ!uo zMZ=JdHc6%AD(^6%%vDW;d4z~hwBUSB)gvui4ShPZjP|_&DG=IJjy>v zOo_Tnp~G$ga$4D)>tP((I?R5uz4FS&AalyyyR4%7x?=XxKBK>d-$oPDJAWQ>83_8zf=GQaRvpB?_dOP# zG*^Ch8X~_3^}G@%XZrn40}GN3 z91Ne*az9w!engu#{k5v++4z^N@iyOA`?m^|kMlqD7sK`+r>!JR&QiQ*E?pX#?$n-F z2!cj)=EdfJGW*qo-jC;A`}iWCexV+365lq<@G&v(+>kwG>}2y-gBQvje+5@9lHyvy zzI;m_F8SaVubk;_WN{_mR!F0HtpAZu_KEJ2xaJT27FsXnuLr_vfxC~slo-I0Ke^TR z;rK0JVg&gw6D<|BU)mDS&?@oeQZ%r&S3LYn*Z+a~2{Dj6R6xTyxtVV0kN%Ur6~O!xb|2>07^iM8y{Qr?>*pjY+sA^7oK zBl+3aP7?O$dn!}@Gpglh(J6F802LNxzrUnZmIP&cdaWj(=2tXxpZ<1G=q*T)s(iZL zmfI)#ny`bYpL}YHuZfkVwp(!8Vsg|xdJxa*1r?8l%L|QJWkT_awSaHH+aq5j*2+>l zej>kv=c{?@l6sx8Jb3B?m7GTBT?>?X>fhS44I7FRDET{8iP;bN%O-0et0*#L>GSJy zM>XKu!v0fcWxV3iU%YVVpt%w>JV2Ez<)ufGuF38q43x4>P%adH4 z)s5TCZEds;d!&$0Np_GCIk2BjLD?~Q;=+{1X&87_{qD<9Qmlu_?#FaNYMwXS+CP01 zkI8Q@Z+N%u=o9&gR{RS?{Xf~ol(sQ6H^pHCf=q4>M)0#^4^wNm8ITe&uqvWI$6pCc`l z-iaAlG=FXWf>v;3pbn3USEvS@R?Qu*<#zEaT*XBKcTrHxU$_4I`7Z_jOM(AV;J+03 zF9rTff&WtAzZCelQ=s`;YQ`)TeSTV|^S0Y%)@yQ`W}5J3*57jRH4M^I zg>JU^H_dz6ui@KFOcxcAX5~UP5;slFb}O)OxabqX?k;&D0v6^2@5Ky_TG_vW%n~X% z?s`NG&(FyV0Sb3^1}zh~qn0=vhIQ}Ubns?GL=U*YzcFWCjucwO&dn6N;rrgSZ2$9d_1N}K}-+-IKE!jVV;z{_V8!SmU^qnI}hExI} z8WM09*bVseTsvluUEq|QD$KBsCd3e@K$j)=!41Tl1>u?r9Mhfs2bS5oyO&IBFIno$ zYPVNhl8;7?+~WJ0Zo2NlHKPj}6TF)Q74(A&ilanL>L#eB|A2nGaf+Ohqdzt6E@l{R z1IrVg7A!`{5O;50yHdXx?ziEi@s~tsElGH>6!Fp>^@hP4&^g&w0MN$ZExVXvEVE*KE{^-OQM=bqh$W2;N84%cUNZZ=0dNUszU7 zZ4>NML|P_~ChkqRHV{zEXxt3-8`|&TRs$Q2IxNfrj&g%Ww=)PrV@HO3FGRgOYR%5` z^|q(Y|JG4z*6YIPgEN-DQN)^Ruhwh3*C@v1CtVX8DE=_}%5D3Ez-^*j6$Mt0RZ||5 zeiNl{A~EjxwnK9+YlOQtmNp>e1`$@9N$FZAEWJ+0*Cf z1}erUNmS|g8hvz%b>gj&t&%LYgqPL{%fRs6OJq^om z4iv%hr3?IF!SzPF^1r&=Y5;%Dk7aRQ80 z%Xgnn^6p;Lotf$#8KOvMr&Enn_@t>YTSGF7T|tXEJHf*BjbLi>P@3Jxd%FjHJ~vq0 z@=h>o@J!-?&b9VsIAFyFJG0v1k2~b$;*8SeQ0gmOtD(M4K{D^EYk$)7tpwAv@}k|{ zLCbg#pToH5LM8nfu|XCwd;QW+M}`D02T$R=CDHBntUB4DhvwXtYd3QlB7KKr`B zq(Ve}2x&c7*wX^k#Y+`c+u;)o`=fY(PMZ_{AKv3qM;uiGYjotZZ@akbKc+~1s-CHz zGaonQE<93|PmR&kPXy#6p>OH{F&i|iGpmv#f3h?{Cp`#upVxTYiIcRn0u-*)4^low ze+;;ki)7f^D@?!)>u`J70Bo@wk4qoGuJCM!+eYM%O#NPUPk0J_N{&}x6{{KFCM{>! zMr*!BB{0D2UPUjw zOvayXcQhorXA9*e4!x< zO;ktWY(ycyUU+vY7iOm>wG<5v!OJT=m<1=@UM4RmBmbC}D@x7sz=+QCO35??hji4> z37A=MJt;3kDBee@85v_9G$)%;?7D1&++rP1I`s`l&elb3ug{Iyt=2i6Yd6h;3+tsf z@&&_6V2a1Pi04CCF2LIiWaaK+ZN^;1;W~(PNSFm?7FyK{$E?km?f#vsy*8t5zn3`K z^fn&W>GyWMeq=S)%g|Y_d1xp*RgblS-YAeVQtZUgSR>IDqs#*V)MFUbcubEACO?3+h=-nxq+(|qx)}sQtmnwJv zK@$LkPq1|#(}OPGEwHd`5xd%s!gsyN5n-9ZR^SwxjngRmJ30L3Z{ov^6I(VX@|Z-; z0@|x>6%W_!`XW%>x8>$%8ly1}T*&a|G+n2*P))`a=M3A8?okL)@L{Ljvl~))=Y~%~ z&CWO8J{_w6_ijE%IOpI8%lCjCQk1r~te?!@U{%u4Xw|>%vB1PyXvpMH^xB9EZIq zzPtN72e#!xUdZwU62Q$40&BMUP8rPXEakMu$Y*9YawG#cl`4Afk ztk({$%oN=2oSC0D`|e2=Rt7*mJ1v;dRd35(+!&AG4rYdNjJuN;IA48Kd*x7VY*Epn zpPxw}HLOyWBVUH&DP6ZUye;?%SgY4Kuf37fX1CHAnhV2s z4k?$_g;ijZ?q<8elNg`Tf*GbvN6kj!BdlYr_L&~gR6lXq{}Wg2qr7<`<1YXV5u%dv zZZmJ{D?5TOg?9m@y!flEe!Fu!`rV!NTP+tdb|bFnADq~DC5|q&@s;3(!(}+l+Z+0O z!3~+wx?0$SY=vNT>c0YWbda#n#bbz20m;jN#F_bUCz9TL1+&$&rOk*=^t_>lCe$fG ziblZ^tR)?RRL{u7B<0X21b6LkH{i}uQKJS)giFP21qa}yHnFg$y z?sP)jaWu);*bD7T6}RylH^2Rf3eHAsP6O)CE11;XG~J@AIG#EuRLmdSjP?ePKx+FE z$Mrxd3VsD?KC%lnFJA)+Q6rT9LPWZs;?Ui}|dcAq-ofG4iJ7YgX{3$rQyFkjT zIhQo45;XurPvs@Z2oxIKyVGBMIzK(=QO*<|?(N}yqzH_w!a|Fh#usiVcgtG)AO z9(yJ~h28y~k|-swB5}X$A}7naLE}n2W%b=?@Yc907xTe#9=B+p4HPm%e>{>qgQoQ! zCz;Xj)4*C~8@@T0@{%3Yc_=V|Wrkqm)Lc_DdR?Uzrqh6yL8Ld8elhnJJzB!k%;Xq4 z=4d#XZaa#>ImK`yloo6rRWlW;!7UQqT#|j^B#81jMMkfsjkE%`0JyQN?^Y?|o!12d z|1Z1RKatXzA1+-IkTE^r?WU{J2$K9?@BV%)iCBGo&#Zdi+!m_x+--Gjv+T-I z3^F28g6wdpLu#4VOe>(;J_wcHjm%*<7;9S;>}R^-7&b;?bW?J(cfUQC1LN^ z1-3(rQLpnWY-V+BKJOLYZvwj=3MVA+rCyoe;PTteal-0|ArCOT3zHmY1&-I&sJG4l z;fjixP+qwBh|O++3k?HRj5onzC=3P{GbmS-lb>VvY|!0px+KlEJzPHj(0!P3^6ttRVda^o)pgTz)7|6N!B7+KU3@2LXUKNpLlqO^p#B*X(j7qP= zD(DoT-nsPJ_Nsq#bE78LqCtdyqz<(j!koO{10>PRJOz7OtJ`ls$=p|i^njh$+Q9BZ zBbfX1D)VNI=uUs1Q5VjxPY_v3(i>E~AGxhs%pXNFUsPr-b2QjPIXpzYMuzq-R>j9J zw=>JobqbREs4^M#UZdC;4omW|5vh#@-0VcFP(DU!ZM|;0o;=#mm$v5H}Vdtq97?)rqBN(HiS~$$|*BC*PObQT(!oO*i6Bp1V=0mJw8k2klE$yHx|^hFphvc`5m* znY>U-;DxouL_c$KSN_q1rlNs@Yt9>qxS}Rr-YC$rQiwE*h|!GjgSKo=RcI}>ZCA#x zS8G-SLZ-YMpOI6I{w6@U%`=r3h6ENu-r2>I7+#AeAN*L>SaM0GJd{PLokab_3%Eov z3sfnRQQg=0zs0`R5n&wdwrFFe^ot3mx)vf*h_l`61vkJ@{cofSDBdfr`Xb@l)jSVeQ zVjw0iBdpjlPv~@)+Om^R{Z1ULAv8<%37q6k%mKC8sVM*RRKC@#@i<8-)82gzH2Vd- zV$!8Nu_7hu^@3gBUq4!K<_KrEjf=_)aY;0i7wUkSm9XjDO}_KJ5+6=G)UI$_|% z?<KO6iV%i*D#su6hQ=8ShIz$g%c6#1AAYtl=+LF#%Ija+uaw3wN$oRQ8Hw& zn2rXR=!YN~U@_IuX$)aX+dfzqg|VT@Ogqlrs+uvQ;j+F_&Cg>+ZUMICFd)1n;n=ov zW_OlYd($T%lQ;oMJ724|Ua}=3bnj7tV0_jHSWkI0ZV;&UETA3&zk_JRH*TjMc6xlWkIyeQsfct)X zsroMN?rVvz3Ok7|Lbmtp$wH{iJgM2zk%oaN7550kgBMRAM-)UbzL%+*+|AVb`Zv^ zMtN&WKnF7HKx$AgzsVLm*rcisKy`J4<@Qbd_s5m)^6Y$yUgrep0r?Ab`K&fC3wvyb zUQ4>U`49?)`3Wl8dIbF%Jw<~q-`+@FGi*5~V&61IXGJf&jl*3ddVM<&xLT+CQv#bk z6l?mEARH8KGP_lW0SP^w*g=9EwwRfd!>MWDCUAu#IU`{tcX7?~3Dq{rHJ)VtZq6Cm?VHJ)b2su1N7Pa+Y&Vk#&d z#?kq+BS)I>P}X<=@@|0WXKG_h4uKP#Z62L_Zn%yb*kHwS@SRFV?ql zG0gGX8RJruMEU?<$an0pa0|7OH9c&I_+r*@D1I~HXZ`LHezfDA%aWHEadcyTR7Hn5 zh)3>0Z%`rA(9aHIuQHq284=WY2**hGS2Wu4gd4&P;)NryrzOXbGc1Qcj4aofYeD@>m-r_)ZCW6dyRDJWR_mh+%8I( zZK%MUnvolVt;L8OR)O6TMZ1M`V+-8pu)%9he0hCh((bIyXkfx0alQ_#KgZTn$vvW~ zKn>?L=o~7!0{x{nS%FkVzm4q$jBu{Vieclk*!rz2vM@M6*b75F3KxfhhJH4Z4^Smb zras0B{$D#VVodmfLcn_F6gpjVcjsUyYvU3$>94&3{8RV7);$#C8;BG7R)q~_8-xgq z1&^tU>>@o0jGSH&*q0}lCqP#53g4}Nxd&k*s0Kitvt{U*9IOQW5lCDgjSKEE7>j+lLwm9QT zT5@JD0eRH#Ev73G_CwBnXq$9L~f`$78tLjNG zj%i_^hhpqb z2mu|aehVGO|* z5klMHb7nIu@X-PN4c^OcurlB33z>OeDWBMu5x-Cl9ZH2pt5|S+`_kZ^oqKiBZUAr$ zy3N!mXel>|)G8R+L5fUoJh=Xw3V7Crn9lq}zUdlhH$%@XfXat*)3&DB53?%uMMB9Y z_2oeNJi&4IiTt)RzgeA?3+9A}<#!Vh5TruuXE5_+)f@6!`uDjId102T}Bi zeFqNDD|B}er(>vcWn;bKYl}bJRn)X;FD>+T?6OMc* znSu&zZgcqRxlZjJuJN_^j8}M14kmjG04jX{h?HI&?j7}pe4#3IJw+owfE0Ab-H zzC&i*L=yO}+l$hHH3}6;Dyi>A@WW0-EaUqs$S+Nd_dAf&Ao= zRrPh9<9a8EVW7mu%=+iKvKJeJB(dp5!^@!kZ{YZ_g;+ODlHyZ%t3={)%~#RshBBGP z#aF&Wj4Tbql`cblQrjAv7aEYJv#zffd;QlJXK%Kh8iZO?Kh#(JaG{JcUPV4qnZdF_ z-MY`d(zj`=DpTQ49e>Y9PBEfxz$;6l7Mp#@E2Dx(u)A&DaCjkHzTigzSik5Jbf6aV zQ(`pdA;$dstFy{=r~|HwK3$U~arG)?-_H)1f=*Cird>~{*CkFISux}}ZEvC?!CdSc za@!7x{>r+fw4-fC8oJ^*Q0}~Bo4aF(+R5!f(w?ouFLP@QHd1285~VodbSs7JwF=A3 zXnx_wdO1Y6iDvQGl=wKc0ygEzWLm=_j#$J1Z*1%y;Z+28oW#Bx7^vQf-7Ug>B#O@{ z$a5!@FxYmGxBV@!*J!M_WwVh|ND{Gtt%O&nO26SsrSHv7uI_~^t)e9KLRPwI2&EJm zxv)V}b)$n{uuPEG^G@8c8i4Q>yf1?f#CK6u*yG&_LasW-bCS>2dCs!Z`g0(P!k~I5 zArOg>Py#4#>Atl~*XLvgdHzvu5e5R}xJznqA`dcW`nt}4uJ#Qu)4Qs{ehLk|*#P~m z&oXJ__Ou{mpo6r0gKzey4do+lArdL%%t^sSRia`P^5n-Um^%2^*!D|nY^Fb7-bu^n zc)@eHdFec4-@krXW05N4!Q*fQj~h8Hz-|kzXYzrnXJ{HUE1EZGs>u-c% zSw}-Zsk1`-AMnu#cm0YVhFI5R*o#Y5L{Q>@*>zQ(e`qM zjQN>0Y(j%FiL(=DUJQJ`+28zZ_sMli8e4%vEhum-k&355G|?RMhtJ7F^B_Y%!@g8% zeAQLU8I9I_O89g!g#&fCc#_I*XwJWi-ZpoSbBmjYyWe5+dpEQ|`ZaNyPq+N)>92Mh zzVN^@g!}GPX6B3;B?%tm6_u0}9?**wvaw=+Oja@!EP4An~UmkVu?_UMu0lrl`(!)S`IdAgKZY3_-90Kq_A#xIv6L)`P}P6RUuM#0s9oM}M$a zg1MFwd)IK>-!z&uzg8bVOZTQJ$IFq1L=Bg2)y?q(7+gmkvK3SRijP~DpX^mM-X!s{ zH=;xy5+hp&tj;s$aW8-Cg|y;twi+9)(t|L%ug%U>&oC0|Z^{ltQHaelnL0B8xq4g@ zZ=qbtrtZ4x;gMYef*~;-=hzqo*R(6r=p;i9@iY$n)D~0&(u@x^qi=9%qdgfpxg&9` z(L+t$KQcYAKGxHd--k!IKxfN$*$cW*=Ko@kTv@fkJ>|N}FrpZT@FgbE7|q?~Ir$Kp zKER*PJbNNKP2QFo)z5T|oTX?H40E3If%3E89M)v#?q^Sv!qG6Q;N<4!;U13(QI9p_ zR!-~G=RCXZ!!Vk2FT(X*8mRemvwwN@Ml0XgGCdpY(gixRo6I$;l42a!t#&*e73G9_ z@$f6{KfY(g!!yz%TrR72qE8-_DdOQh2+b~&iynkgIsLHes@?kF`yD0gSR9jMR+RDK zoXA5#QOjR>1eyH7|FU>%5P)$?e;K7L`1$_wGco4~=UaZ`L)9ts5NuE-rt^{sF#V55=?yuhp23(NOCdTf|3Uuy#Dxgl%1`5SQp7d(j zl~{Yadv;m)qup*k0B~BCL`ky=R(djKFsxSpIx`?K^4B!J>_c*3EjK0U zlcsxLfen%)Nn)cU*WQo*_X26Ztq!C%4$q9}93Ae{^oKO|HMA*wKxtRuEDtJqq?dd; zD;)TkpXEEPq%tt3S6Fj6**DRrl*br#S^hBrwgwQi4sKn};cnbJ7vtlJI;`=?E~D1m zcC;cVphw4$wXk-Z;+m>XO)9}1U0hu65f-TI zxfkS<`sPHA@D}O0_ALevt9Nd|6u#(Z_w5^Se6RjC_dZ}zxLhZf2qvkCuc*}#&Q_J{ zo%cb)imPhyWinpramRJbv#+6V?FFG=y#ToyU~!Yl6&5GBl9&%C=VC3^OC{YYG!s{@2QDeGZabo9o{3I@Tx|p3*8$ zN4mO<-=ab8*|kk{F)?~nx16)G?u|auFkKgx*$Q6CozXCr2YJ8xhlJjU>bFGuD`gKg z>%N7_wp*1}C7BKr>0Nr~?;x^^jwXLuJxH+HwwhA=ln}2&Kb*2S?fUzz8fu;O^rFn7 zNcsWnp`dDAX?Gd8o(=gt*IXXva5DPl`B!OyTT1K2KSlD)_A9@NzSR+YwlSSkr$R-T zqi++2LJmRC5A2kw?ray#yklTP=URpcSs+}r-f=M#enD)lKm0n@;mMMD&-8UQgIlQB zr`fZGG0TcpMI*l9s?GfGu_HUQGETZgoF0Dbj7ipp5(V9IK)f|s#Lv6Yu7v~#H{b`@%z(}OGVmc>#7Jk+##Ju?PVc~z2qsk z#tDCTbv0O*d-2lC#gJr_Z6IG9aPrH%C5EL--jjLF8u|L+$FHUZX0l&UA%}8p)m>hF z{uo*0#Y&5pg0w-doT&ykzBH>LSl8rZgDcLbDSUwf*T%vHLsi&>#^4tl*DPtOz-04r zHn#yVMqSV6AUQnr>GX$I9)GKCA)DQv@SeV)@{+HS`w^MF%HbA3AG9a=_D2|4Fy7%w0($9^^m z)nt#&3p>Q^sqOj5J)JE_d6DUBnZ_D6cqdq@_~o|GxZ>%9-p)v+_OZa~W9-@0vtT{IN?VoRKm{%sY~N zB;+`Y<7J7F7KrOxv~oldE^Ub5?##FPESZ6#>W4oLa!CnomMU2@9dl%gC%xZ~z3%Oj z=?JnSkBf=vg6*qudX&C*Nx=oZXs8VSq@{i_8Kl6%CRYR}bRS^q7CV`w?$W+0VEkvb zyn9)!PhZ)!u}~(iCww;}u|Cx6M_4br@~_#RaqIVhiO~VG?|WGiIA54DR%4iaBp55c z8X$&whq~_A&=0*S)>k8htf9)&3o!|QjntUX)IL22laDn8yjs%JWfu8xD~deJGTHN! zX!xG973UKZ)we?{WO@|<$bhZlBMtV!(L$o^yR-%*lCCVe64zM~=Nh*un3Oz)82BWYtU1$u0W~^m$aE%Q7t)G<~ru|Y4YHThVYn6jA}u} z1TmH6`3tp5|67}d@~@RM|5;3Z#odHG>tMGZ-5;TGFY>qsQ3Gi=N3)sqmch9iV_(;> zUap%nR{zD4&mvO|Kj<~*Mq}Z}SW(5Cg3N+AP{e&@af-;D@qtB_@c~Ds&6GB}c9*(k zQ%)j{`(hHeeaOSRSJi0AL#6U)9200wy&}lf?0SxWQbqT$MRi5ig(*;eY%zK^ZX*8w zQT0^;Q9jJqN;fDajWkG!bcb}eGzd#~H&TLhElB4A%Tm&@luGT=-QC?CAK%UY=X(b>!t=!p z_~24)dbmnjrX}d|8?2tT@@n7{G-MF^oPu%bH_o9?WICef6RA)@o6;L}3!e0;MR%g< z-1ukVAQKq30wX9pPn2S@+ILi1!;W6myH6asj9E@6hE%J5U!=^u6ZBKWiR!$dFH*#o%T+m|4}L(XX60!4w2$O#3Q$;t_8zfw z8v16|s5oPCtwcA4a80ExF}^ckeSb3*a=f^(x%Xi+P{MaQo7Q_;FB-9hHbC}&m;fe` z{HJIN^9H#+sUTy(;DFXh?p!?s#w@vymiP;Vr&-kov!s|vFs1^q4w>rmva8HY7(g{< zBTrozV@Z{+i{jXk`hIMufrLV3Q`sxHZ`#5X+?tsU>_wyPyerwUg-B28cnxhRWz`&AgqQ3I&S>2fM38k8KXms4Er0c z(|V}&h&+IYEjUI#4ZbR8;VrMK#*91kiQ_Gk^v7>!nvS-+%iU2m<@GE^d{XkF7a&*R z0h&&4bETVWmH#6HFF%+(mrS(a+g?j$E((7o!hddnkDRVYeW`0KpV($6uryU>i@Nid zK7*t4Wm)dNQr9QI5d|H2r{pR9U)NtI7-m}MPut3#-+6PS_BDXJ*GtZc;cZ zPba{j5`D&ESXU0lkOgENpB8KjC8^snn+nL-m_%>tn)jFD8)x`~Dz>GA1E%-2DY3%I zuO3eHjom+5vSznRQXt0_hK}7NwS@OCTKXKDutEzZv#dM`+1f54F)TXaP&>>k9%5ED z4Ivyg9$9Ij`2BP~JtJR6jisBY3e4vY1b~nK>Vm+0|MTvZu-{;S=k6 zQyC}jFsMwKkX54qd&$jB&WT0%M>|zsnn^i!40S+fna5?%7B;f`vYlr7+W|*fXLs7ZWkb8!t?gkSk}?g&@uP39Y|p;g{? z74k@5{`cQ-Jh*n7w(!6GUt2Gz(rQaIt+6|2(7N2p4jQmC;g!o^$ElAXw4i z>j`4!pL^nx%W6M1wNw`(m+Fex?E^uu>VCZs>&koVMu+X73j>#f;fN0iwB5tEFtW!~WtL>OG&vpBUIui0e13OqFam%T;yaa)(UX z9Zw0&jVEw$kP37JSQVvZ%2~~0-lD0pegkOitu&c&f51LO8q=JagfYoyQWtojgDbl1 z@s9TNL$H4f+F6{?s>Z8c*8Phme|v*lJ`b%4LU7NE8lDQyXwGp8R;pN~>fyC?s`ou_ zaz^g^U+bLghUMv5PR0y}gO& z+14r>OiEBtUkd~xHAr7KJc(4rU(*$uN;pVE+bV52c+~rdlD4J4D)ePO*$E6=;mtJa z%d?@#;-}!H7ZsHP8-}2ZOnpnU&a_vYHYJ~;6}}VSD#MGC8ZEd@smkC=S4?o0mzC!a z2g6rEkaY1=ku>ao!V~HA+?;4Sv#!aSdOZM-D1OaFTP`GijN5ZZ5}>MIRLLM%$r`|N zpDdxMm-4Ys#41MssY#KxCMcVz^;aPns^Z$)1T%B>$GZtkP94}kmUEk2?ANJUr%bG4 z@6ad35Bw?7{OF#^c$vo0NMGpXns~*f10eZ8q0g^y;%bByS3i{^5FmqpKiPK`^vtVM zH@EB7Q`Q=w-HnGk-{%c-2A!Yb-`nPn97J+Dg`=dU`#h(u-D2cq; zLmM;70sGgnnwO&PKbA;q^wW0+Aa@-ZQD|%1Uw4v>)o=L$lvzvSGKg`9#h%U|W%_H< z+;Xdm%q}YR{S6JpqMbfvEwP)bwKP0xaoLub!s3jNC&-+PMdYp%mFTu14Rz_qOEupW@m3_l44!t#UbVZ*ISRwE^Z0 z>oX{Mxz{LBQbJdjMRuYdxtM;KHGnHUqMi!Z(f&0ZX}qJEnPiTxAwV%b2>+}vW2bp7 zCtxXHCfnHUWg$DQ_i572(%39I>Ch;()!-azy^m^}-gNVxKAjDu$J_gKAswsakfGse z!!~a1M73PwFk6J1{t5luPKTMWl44g!OUJWmlfB13d%fm*2Jum zmsxi%1Wr}kv*wq@VXWjzc*DL{!zVHF0T&l+#{v5D9pOpb%>N|cU)kR@V6V`g8iA~k zf=j8k;4CLfU2Q@GOAgX^!c9UUby%*R_SmBOsfZQ^>EiV7V%gjFRB@`e*Cge0c<@QOKBCL_P$y4NRLeBXrHDt$PRL`r3 z!T$v7+WITtXmpWHd`ZyrBOiOK9yB+DTT-+|9&IoX`+s~8I3XKE`RHc-)?k`lIv=&F0YuVehBo+Sm8 z34J^}?udB8GWL}pSO15EN8)}z^42M~)Aj5f_sOo0mJd^|T^+r_U-6?{cpNXbZIKk(*UIW z96*NYn8&s0)rLn=}h~ zB}>;9JECDQVP4x0M_Smm=X}5-dIf!><;~i`f{S&HLL$zJ((Fqu)%_L-WcY(qqElV| z8lB@YMU-`XYb3YA+}5}@mlwh@xAdp2|6U}CluHZ z;m-c-Y$(y;S^HbFdOdmOw2{QeZcQAJrHil1F zwbvk*vA+ATwLW#Z-Dy2hCSpW7k!Px9JE0)%R3>B9y8rrJSiPAhkNIL;W<8sS|H0{n z2$6hBy!YrN|2A5UHaw8l(0EakmSZIa$a!vYoI$nm0u>?x5&K|_MiLg74ft!lZ?+ zb+G1|xNa4ewxkOnXwg?MQ;-s?r=fhK|KTgcG13|kKFiwWxta?f!%aW|)I`51*l;9b zLU)9(th>}B0O=Iy8$$3mqhZBRYJEgtoK&(*7UV8Y8sS$oND{%V?n{_;6j|>*5Z7~= zxqU$0gpuj#ks>N~pcTtBBgWQ}>&TDXy^_-fDIR1AFU6QV-sU1bDR8A7FD*|`N5GC- zE(%|W9wHbZa^zZd6>{UiostGAow38q#ko1&QfL(M-==$LpQlzx-{^|nWZ%*2>-R(0 zwcP84a&GbdsURUYKWDsD_-&17vUk|wSXDb488!Hh2@(S5Hl}~XL9qQPyIXr1TyN;0 zDbEjEUmFKc7o@htzIBA3JwFajmp0@^9Qi3h3z}?STjRIZXYTY28zcBC`Eqg9FX2Tk zBflqyFc?Njfa@U=iz>qE9*D9I@WavaO9nQEm=8xsgTyjwvbnJVLfQ>27mg5H)QmKF zPKuwHt)1L{@HniZzG#Uk@-KpYRf;Bkxqg@6IA>=zBv-;5ATZ~P#ss=1B%8g~_Zgk2 z)gR&CR?nYl!aT`Y*Yn(kfFEsaXHB97HN0NIFcSKZLHL8sd^pOzV5~euEvE~U;G?@(DxaQE%2mX{PG*aXzB+xW@aD@A z#1VP+?`OCC!z~hfBr^rD8Q9@)8`bXbgcdH$7Fo=JuDA0aP1-zqe7T2=S{RRjdP8s| z|9U08JWLPZfiaozxf|U%eFqG$za=A{I3^}WiOpw*kp7yZ+oI38&$uu~XMs=2O{9BSc3? zvVfzo41^DrNVmpU_nQGo;H_j-1q3^HhUD?_s!4w^RD-`NM!Va+`}EwRQJ}q~oh-kD zqTYw=>%7%m5B8i${}QO`$<52W{o@)>ZC_C<{7==SYlps5psnmeF?qbCA2#Rj)_3%g zlrEJq!iHZC0}huaINc1~Q)_V6R)7)Y%E28%=?lSr3)HgmWG;bdf9&)mS2{Ti(mQYQ zo8@%GSPRp(zy~S0roTPX9Rg^3ZW~g};ul=Nx(f!)ZX6yE0g=vo#Jw1WAS_Fkw}Q;$G}s#OLo>a^;@ioh ziw*zJ6yb!1-TKN3e9qzqvOeid%7PtCik}EZ|4g`>y_;Zunedf-qX_umvQi1vh>R`@ ziF(Ujob1b>Vup!>FTAv1=Q!Ekxn-Qctyl&3fXS0+a)=K`BNdDf;dayiXpajid*B;* zt8k6F58|ZIC`X0+qyj%gpz@GnCnMJoq*TSAcrQ}V!ySzo{V!!sJ}{ym$Q;&%1f|0J zby8ibAM!|YJdNWnnoZ;0AIDiW&q|LOBDHW+{5$f$d1oEZ2v(Mkf=qN{g~E2q;2Z;x|^()8bJG zDm_K}%8yl@IzuaJdw4VL0uwrToHJL@K@q$P=ofiY6N-&yqRke*jN;onLH>DBdk+HU5m@bWa>{1o@S~x6Ipb{7bgvPlj_M| zFf>ksxH){%)lFUC@R#nMXe1PuUwb!+Jycp_7$x^hj75vsNxJwyxqIr8aQKXpf317j znryicfYn$wu8kjszH4wqca6)<%`mH|E=m70ORwCIpxfm|zL*`#c%;RZRMbsA<{M%Y$&8hNvgY${H6acuii57|9q~;- zNFo-yJCA1U^>RC9#-IL{ZWSN(SyOyc&TaNj@U;Hrl%F(X`%8xK5cMeULy;FTXG+w` zP7qkbYk}qDIgH&}l{THz=}*1Uv#xMQTgVpCe+VV~^*>6~gQT~GiL`f%1Id}32Z?q-`B@vW z%RwGO>~|dVurx%?3~VkfIkRk$U2hAE_KE5XGLQJjTevW|Ug@b=@=FWfeC(3s$e3%A zTUhf5YX#&`+_1}{!e1pAWlTX4dijYM8g#r2X~^_Ot!k9A(ewF??k z$`~uN8&e89i3plmjBGD;WfjSX@OXrOIb8hrm(eqq15sm2sy>KvW5{F%I`Kx+G+kxr z#wA{kVwS4f?Ce9q;hT(4Jj4$Bav2DUD8}p@6w050~&edTb!BAuc<(Al= zC7E9*zIoM4XjO&0+{nC2!I`nV+-suMZj>Y_nUD zsOqv%T-bcItdg!nqN^(w+1@=B2=n<-1x zfxs;(r!F@Z&9Visin4`2I*|)uq@tCJ5pQqR7ev6kT`eDpJswWxy>g@Pljz24JC z54@n#8qZ03!u_r2-12LhV-1RBC@WDGi!jv&D~Qh}rW`+pv*@>6TNO)*P`7yhF5mtU zV52LV7xk>*-^Zpxi!iu7P#>kavCQxdEwCBX#${rd1*iVJKA-}HTXrZ%6M)9!(?8m{ zrES8CvNY(CCE;A`^2Gu{Rt`_Iaiz`)tFQoVn!-8vMs*x5!WbalUxpQ$zoxZR&xK-75mBf z2@kIM0(s;;ZqD6;$ZO`VjXIPv0UCq=VNfRdEzvRDV1b#XEB^{gQg7a@EbzAb5;qR2 z1?!EYgX%d~tcqefQ8S}jNo(Nn0gbbtpo0QkFuxhi68OqJW%7cyYGOEJ5$aB{I@j7R+f*D=;bmAYD zvtPhDSv0-EQ}_AelntOn)iImv#DiXx5(UN6!S%5bRd}(8AQC`{;46>yE2V5lZj?s6YUNx}v zj}Oi;xwbeM^0<38=Zt9yB$j0EONow-_Eq$_@MZ=hAvKIMinmOAUs2al^=I7sKq=}E5oEb|+?q&2@{ zp2f8b`G!`Hpli*gEo&=8)W_;Hha=2Hs9N@?w0`@$`W=eO7e~#hZ$ptLESuPAq24dA zLfUmOdKzrvTQz5D)8CaijTpMRKr+ zcTNheKUc6M;S&(Y8MkI>ZW+)rIxJ#tMqaE+R~w@*7s*y`&KiCL$#tRpx2vIE!dFvz zq~@nw>j7v~^cW}hS|$_iEq!r;7AaY-!rL~-RwA^gS!ln(yQl~OTd4?(w+KGX93M&!+FBX- z1*;=KO(II*vMyW|S|A zOz_xSL#DOLjc}}$I?kZ2HU!pDjC%yNLSh^1`c|v&)pC2K*0`!AmGiK>OFABTOQbnd zf_(U4Up2gzE4V3Jf>8gNd=y7anD47AgVw?17ELfhGKuR|48E8D1)xV|pWFctnu`&9prFE*QEw zBamA`tGvkS5%eogbpAQO$%4`%1umZ7{*+V4bwUyD#27hPA1{;9>sVV-c+O=#{`PWK zZHXPV2wzsyZ@P_{QWvz-hRmA$^o?kVsG_1gNM@B869sgX=P;?;rH@puoRgMq_cQ#r ztUGUHV047K8Ydv!=8v*NHTO@##_obh+mIa3oTjY1^Q;3L{_r&Lht zeXJs}ETJ&sN3Jvb6fq*T5;>cRZ-WF4On9S?pS*%7BcWp&3-(_x{q=#8ahp-RQlcF%@EqeLAnEUiQM4vU))=s|`r_4qd}B4ZxBua@+N{wTX6? z*>BEl=Dk}s2?n>RtP{+4diV`c{j@Y{0Y}nZmY-#OTmC@7Qs+B`R}m$q+)x?BNUz(K zw)*SOW@)ny#o*_I0KXR=@HTb>cf~UYlB7TG__J(Uycw z%Mi5nVkhtqi!hrd?^yd7*@5g6rSVzeKX~gPI=j2^C@OV4ZtdZ{`ly6^KyyqIfkM-x ztS`(2dWPHuWD`k~ET?2H(aNb?9YSSHSkluhCBSR}>OpGTj=%f_U8lCP8GIW2m^f~wYVBB< zhQ)i><;l5O;HsI2uPgszb%{Pld%1#>cJw3E!vmN@3(RceyA0fsVL+_W&oMD-!k{bO zKS1o}eD8S(;lnF>unPaLhzAC`_Y&Lo*jc&Syp{z=pGiE>cx>tW{X+^sTr>@elkC$ikl zq|NJGEd92{&vIu{S;W%>cGq2BA zTnrg6XXnH#Tdc;i5LZ*7ww6J+Ti&sR)bB+^h-h$ips%245Y6jKL2bq`A z;U|5F8GcfI?_X~Nt_C1aW4_P*#%nY7Pi2A2aqH7;$Jbxeulm&rA$2~&2rt^fYzYWI z^Kr^pYgW#?KxML)udya-(>QBp@>4KB#i%6jIodTQa`D1kGPBlLZ1OMDdY(%iN#?^= zmp~i5r)ksLZ-+T=XNJ_(d!h|A%Y~aglz?ygP?Cp<(I??=6%^~9XBs7}48NFw2#X~hYLu!5}oMS z+w5?ApUc4;Iz^wsHIWOD^e$3h8E)8L_rr8ZHb-x}E@hx?09|taVyZmzVjr|XJ0o1j zInyYr-ifPG^<{x@z5sETrJ{eBxysMpkgWsiF+8d1C~%&g_{W{Q7^%?xotKe!phsfU z1_LoA_d*C%N11u8l9DrOtlu3?pvJ!9K-M}DD`OyU;9wP9$N4&e6uC|Bt}A|QVK*Y+ zo9@y2R)D&`pJ0FaXM}UZemoPk{scNb+~giU2L}BCYDGwEppt0o z9~f$%)`>o<2`QUrS(yrL*4vkcdwGn&uip`wgW8yR1S|M<)eIwk^I?akNJVQOh#E?5+J8^?OTbB8;!5c>L+cy@4=Uyk4 z8PPR)TxPS?ka)aNiDmc1{UcL^PgVAc>Fy8Z34PGfl+6A}$qcHXb~!!k;)P_LN=a2* z)YYQc`|V{SImVJIM-jzMlCcrrl>h456XeGKfzkAKOP)eEqE3K4$q6Kr3zm2yROgi? zsq=vjN6j1VC@1%q%cW3;t%I_n(I{_sZ6R&?Ratc1sIf=`OM+|~!|oE87^v{{eFN8) zah!?FF_N3KrTvaGo0_-A=kt1+825{<`xAg(Br;ug^x$`^8@ z!fijaZ{9$apg%uF%+#DLfGIwbXqS`?F8lzinx_fH28`jMAngryI+&)XxSsgR1&qzm zlDIA38WNpH+sfaUxF^SbU%^+`8w>W^HNt!RTF>ggz4`zSR_l@zwU#}adsA_0OoSdo zVJcev>CDI{abp)wiTN^w!j0x!>+0q5v$PURiaV=B0$9k#W2A;d^)e4%tno?Pn&QKSO$?zITG}OJyTL>(x z&b}AC*4A(wfJzybq1s2J(CZeNFf3u@os~Ozs1`*%6esrDT>kb=?EyU6pIx1N^p^#k zEN#f|%&0$G$42p*%I?R_{UeLsj5>Q|4(DrhBE8ou+A$?()S8rT`?Z+Ocb01Zra>m&I5rJ3ANYO^G_36sA4 zU0BulY#Qx3%`fg_?AC9rLDU#P-fWL=t8!-F^Q5o2kjKmtW|sx5yS9xlXl^G1j{FbiON=!yT-z%=NvtRtW9;}+_N zf~JruYqKgW$2g~wFvf4c+1($xfB-?)1GiwzSTI$$$1ifd`Ezl5GaTWok~(;5&@|#P zh15U?i-TEi7M^82P`?Z<|F5{*kmUJ%Ja1CTEL@eYx?g|n+Lap|s+y<7#979FnQe#b z^%mL}^LsU))PQ_iF0lv^lBRMJvhF$WYzW<6yk75IRhqa2xTu8U9Gz?s)N8PNRlIE& ze0(*VS+-$jV;}oOLml7cY-Cg9m zgoC%w-rN_$4z@FSrnLA3{;Db6p=O`zHI`slG_lE^YyrNzen%nr&4T{~ko$d49B=;ds)#RP&&yHFIRWl4f{y1Rzue$hqefEJo zSQSI9r|o`wa}!LLh&t_%!R3hi{fOcy@7!ju<_k3Ych*t`Clr{{)Va`NqI_nWm^_rGfUx$SS5m%v|9>j(8iplw`j6UoO)72Qmbs!Y+%F zKM5);53Jjs>)yT7k zl^*W0{b}AuDZw)^J>_irP0Y7JDqQYLPYtyWDj)0<5!G)sF`553 zyPvz0K?sx{ZXbRd>%RFecVyS122j_i*v3MfJ(d?uRLIvzPMDs zJ%=cC>?hxy9J%fPA6lcWZA%z>^7)J|R-1@57)X!vIUck2-whA9VXX_=u{p&kI74ip z?}sk9*G1Z>zW$(|nfIN#c)POH^2%%HF@Y{_Y}dAc%^fSJ>aQ%)SX)lsU*kn)_0GzG zpDdJYy3CENwKnKu>3n-BWE?1mr8R}ozupqIXP1t9jls59kbpQSK{O z2Zdu>F3o}#St}@`K5W53zs^%T_EfFx_&&y8^Oa2UBFt`|1>QpESj81sveU;h&)8$+ zyNcP96fDOXLiz&*7Ufg2{V!0uZR>j#ox)zeiby~!g`!)X%iCJ;A>*1A%_K0>;(}$5 za%Qyr5GbuWSj$%t->{bREcfRB2Jl*=YJ;TyAO5<~#2wSfG(9W)*+^A!PV4r7_LehG>$M zsQ7xl(hwY&GlYUtWxwnO3{a<9K6!1;CNuri{84pJ@nCVo=f1u0-+1W=zw)lYRlb^z zQkl(**D!Y1^>FHs#*w}|cGb%K!#w{?v8lWU$TFg!$W%TC#YBE@)S?@U6Cdo~-}%a? zAN*S(`XcEUrAeXBiEkPp^0g$($k=h37r=ln4#U8&U5ga;OZ0x!UCvc#g}MFI{5?#m*=1rY^o!dVtOyAof<(*x>+z50(+4uG!k4YrY~jg_V%T9J z=kmSt6mN{N)n1NW@WR<|2p{0>`%NJ2rZ)wu59YXF{B>7KzcB3SZ|eliKlm!;ml0@l zVPAifE!H9g^eW5ViUDtr=Izz~YdFJMu$p3rH;UWnhprEgf5Tvpuq`OEg-PO3l-T%V z{?jYHy^`}ZC+@e2;mN$cMn0FbU#z}UT<&j|FLjF^Bw*p4~kJf-ewTs6BfpA zaJG&M`og1O%x94CG~Qk(EOS?+IlpJ`5^~tfhdCV+t*)=A1GA^ z=YD0oXs5&-BM9l@{8qt>86y~qs)3eeC2^|Vy=*{`&H{*~H!VlNmeQ^jdDpR4>s+2l zy>`1^Us{$b;rUBJWgDOQOy`=F6p%jkQvzh`{YBdem7Yx&h@`ev+s`qFqfv^%g1=kk zx2*z&O9=NHpl#(}g>;05O{MlR_sD2D{3c}Gw|fUkg5wNQFU<*mPhq{jvrrOwuuRLL z4Nuj+>idxz&{pl-q_>-_}}xd?zF|uf8e4zl$iiS|UzkEYj8` z>e~eVDXdXKz)_CV6;<<5H(yL=dt35jGR#-b;(4EpT%ob}92SkzUMOgtI&E~9*}_PK z%oy{H&IXnC`+;{BPS2R4&$Uh!W;?;En%Z*+W3CEPmJOeIG)lq}r_4^9YWYPiUqfZ> zNtJ7rC!X3>L4=3b-OqT1eZjNXc^*fwK**ILV7j*ox)j#|g3TG{)*TDA#r+?iQwP#* z;NK}ntNXvxeFJtQk43eDN(@~vAh0CsJgd|E1YlX6PWEf+NlYg8h|2V0@N_8z+e#%0 zX$5_7ibro8252l|-AT|rvcsJPZ6Sw~>h0NE;F|Is^u52p_bKf8Q=%OBpt<5CIW;#2 zimun<>=pDgs7?-L8ZrVemhJ=ab*||T=Ig7@jLQfIdX|xO5nu1x^X{f|F3dBCJzwu% z-&9z2=gzAIe#@d+ClJMl=`a|vC8n>@3Ft>|c_1F{wim+wFHZNwP6&~UQJU-1U!NA+ z^=iYuD2sH%MM8VHtJl)&JVzX=IEsK|t-E;=C8Lf@b+3k+B`(nTiO~OqLF4)h1O-kl z#V#I-$L>Y@7!I%9*-Fh_jmK;`rNvj)dJV;0m7KFUZ2emA3c=XNG)UT{9^pDh^jYl{ zHZR`$oS^Tv&9=+LWzv77(1G}iDWuN~0RCL6iPGZ-34DOuiBK!(kM<{ zdGtNk^pvq7do{EY>AOr4_RRszPXI@`!7SKrWM=L=0 z|L{Fq^1E8_2o|A&=ln)RGADNK`1l<^U+$@{4Zd!K(QKPM;BoJox=lOUPK{XJCQJDw@LurVyQMCGa7C|6lg zp)46NMV|JuK)Jg30pc};5`q8xp7#IPOk`CkFyK4r!qUwQrpbhw zv>qRZ<2lHmMR%(vu32WrGFx>;=zE3~%Qr`~Vtk@E#<Mi;Tm1`Uz(Z}HfwC$N6OZVwVU7Mgj{;KgQ(0%Y{Nb>OJIyvsf4l3$gbC9 zSsHt1-Tz9Ww5?4bxpxv*XieR4tu_Znh(A{*|IGL^e^S6g4wPjoTjyzW{2S-lhJVuN z)lnLytoJBfd5=$<{(mnGZEbP}n9aO*Kq)69%WV^&1=()syT%y?i^Q!qsk%q5Zs3v7AHaKy2MfVh zPO6L~6!13zN5c%I7pQKSzja7^rMtj1cZPv;T+VF@rU)l%6G1{e8N~7jZcCf(7M$wM zLC1YZDjH+Tw(c#PIp4MCCs!n!?gZJyrD3KaWyqNrx9kgs4sY7(XfZpZ{6Mqee9sH- z*a-~1YY&YLRd zo{U5puZ^C+Lw6?H=w_+%I+tT+M|XW>7O7F(N7RmCt*yM}(LAn?{e?LzI+;4GTU4CR~ zfoRlC)(MrgG_E}mQ*}20b{U`5|H(qe(aS>NH@9_9ksk@UdTB13_ZRR;qDh}Vy z3>;i$9}CtO$W;^wIFfv`dFBfg%cRt)u8mB*7-ubBZLi-HmCJG8p=MDQeGjNrX~QE> zztj(Se$nE2;a+-{^NF+--|)LHb?75CcA|~)&D2~x{Mf&=4vOm*-}2DOk$(2!Upn0D zQ@}o7l_7_36UNux5Y_V^$ZEB;P3bz>Boaw=Jq;pSAn_jMT^Of8K{6j3uJ5YuKjKI{ zn^C+vayc>*|M(eAY>f8ffet#>)mX8i-r%7in|oz;6hGKry2DV?00ld`AaK2uIhltt*ofg$kJb1y%JB$cIJzaBV|GK`Lx<&RS-USkw!qC;a9VXOgmaU zZ5IOb#lReHC)-x{L+iv2JoD<%kxnOf$F+Q_TW z{N`nQw5;mddeA&y)~NWn!~cGGco`J=#8vbM(QW_vLDt=RzN4&sNibb5BK}{4WMrD@ zdD4dFZ7t{`=e7=7>d(?hwU=$o{X{yXc}F|{32<}FiYWxi{>{s#0gn!e$RgPq2ln(5 z)8N25p-M!EpyII1!KxRbjDmoE>~P!V#h`141TNGdTga$GJX6!3VhMz|vS>pjBq2p9 z;}z^$zR`+>F(L^uwrjX45cO0qk1+i}i}os!Dl`q8do}|^7I5?p2V0T?_1OtFPo#ddwCY_v zs5wnEb5n!bDCEI6+z&y-EvRE@R$g4AR+GAL}!)Q-Ut$? zswyWQzHFSqd!ZQ{%uITHm?fVfaKY;{>829NcQyg9sHKeBKgYi8z=d*gMb9kiABac; ztWq}5=5B2*n-?fbO>b52^t6XkUYRpR^zUbu@1~H}D=6ZPa*3WHpdhcX0l%`vh%i^u zQ)s?97{X0^3vbfv`@Gocdo?ff$FDX-p)hfSt(ll)V{CkJgbWVaEEr=T|0-c)jS$RK8R;|aqfV?TBCU5#EqWknVs&`$Cv17&VdDG5J!IM3c3Q8lRfjv2EsDG8 z9dP8M8>{QDNN6#Ox~uYF^$&}8ED*_Y4CDyd?J>d4tJGFv`IRf(U;Zzcvy@?J*d0#4918qVHR=gk!-Xns z8W!<`8OGaNeSeSwKfu2A?Up)62x{FicNE|%_MQrcvmk_?5bdbF+_kWv)EzgNEERbx z^0@_H#?se|SlaR6K`bBXdvP5n;awSl_II5-L*FD#vXprwP2bJRaY>wnM{9)$75sWm zhL%@#mCF?v!?}vNtCQ5ay3JL}dNoJo>KVgpf@eW+%qo$dDB$DGCx6x99^zbq;ihk} zaVHOWKEZHXQ%l%rgeAkF>H33*iB_!7bdA6nmC%2b7wyFva;14o1MWC7_nsp^Wb{>L zNoUj@S658k+q_t0Y%CHLF0Fa?ut|SuHLZE-wvW{2jfpRR3Gg4yO-Wcub>DT}$b^h0 zHFnCcz1wVJ*YC~0Ge!B60e6$#-g-28!dl=c zhiGG5f24xaKY`6*sO3%UoJ8vSN9Aq1;xI5VBNdVF?>V zi?G~7FmC*J{YH6TiBNxdCE-OV-+?C$Ia{XrVs>Xoe@loG@xlIGo7U9u@p-{~jbB9$ zK5jqRA(o)(WSYL!sL^EieO1zFqq&vV?YvmljVk4TIP#^uCzxV*n_3m1KIKSI(M+RB zuh^T_shdy`9O52WqEvr_+^sHg3BigxP>=rRF{KYzV^eHY=a#48Y*Q})(g_14JE>Ew3i?k5}hdYm9#mqbzqSHb9!#~P=K-pdLl2y^9 z{uGC?d_-#4oZoQ{xN9IO*fzO8Rh2=Y)p+UY`za_^xvcg!`ln%#7hZjf=4B&Nzh!sW z%7|7kQ-wsZ02%x1UX@KsGo-Sw6X|>m(jER{S zxVr=o?hxGFwV`nh-dJ#l;O_1&jeBr{1$TD{?(R1IX6}7&e!*F%)>pQ7)vi)raM_R9 z)~>&;GoKr_4B|1CN|V9;(gTEkP*BK7hO~Pg+Yb9a{I8o3jg5wuSjm6Bi`lx;5;R2JX=FU|QVUvcot}c_ zQQ%^f**;7K@%v28ncgw`$LK=lq z`6T1OnB7sgggw*vy{b=o(G}%c?37vJ(ob}>MX&2M&9b}Q(GGoc4_7Wc-W)V)9rTv? z`&!zC>MQOs1QMFS*a55;x?jwdLqJ2ZGS2K=Vew+Ovya)C||W?P!i_Vh$DT58?6mr`PWwh8PwX!Gib2NWRt&JPl*8+ zmuH;)i(ybS4MAEzvDqlEH(>LJ7MKdEJtN<)MTV#8I*2CN$)(4F8k&inZ>H?}J{rSNhw_B{nn;9}j;WICFt?7X`pC?!a6)yEMaQxq_r4$S;}lV&tJ4@Fttzigjv zD)H&nXe%k|0ER|A@mdKprJ?*|8%;{nmE2)T6tahW)Sl_|nI1-mE*GONhUzAFI182Y zp6+uy8I7TaCAduO=5ut`glYkr4a{pw9J4?Ie}|TQ_zP0I5@xk&|A(GLY@*~iH5fj6 zfKIBNmMvxNZN+a}tP1YW<=pZyQ-8ga0`kAeq8I!cX-FHmB?ni4Pugm+8@aQ`?+Hbu zP=C3-@2DQzYbUf9p$cc1gy0odbMn-Fw%(i|{8sZn=I`P6qN}&^_s7$A8o|vKgGOxw z!K94}QRwnVVX7xX#6C5@qIKpYZV$)w+?kQ^KF1{Ixz=W!V{9$FVnv7;#z!a!3NM4t z;#?S*tMb^O+NNI;)KL9-uR&gCE@rqG#LruoquUU>j~Dk6{r%C({*_cYbImBh&>kM7 z!CN7I3{f-_&q(i9i~bt>VW2|2A%|lXLGORcg-2-4=hI6QAtGN5{To|o?`O~$HhCUqp6=h&~fIWbG`p z|DZe?W)&T?kULrN+liz$IvDON>r<-M4|WU`H6fSBjNi zJlBP~$Q(nw=-Mnr2sbLz|AaZwAXPOoeZ}wd9CDpV^jcIktKj3qFvy!TQ( z`ri>3AIg`f2%UZ@a8$mQN4^YZK(#+!@&K=0Jc`T%<7!GnS6)p?ie z%6&-&qVO`32yHjCZxPA@k#~bWarX{%tl$m08*8-H`x=t|>XKrrEw7hs5A1JYme9bR zRNZFVRdJ6pbWK7Zw&D?%JDIxy(DI=LJ8t`dWyI)4R`KqqJWpuIXYJ}CazO>!oPtG? zZM@p3vj-5-iseKmnF&+E9pc>*q!dCb&m9e-R*1W@ubdTlzII&@LwQyZXlH#=5NU;( z)MyiSM%Ib`Yww|h*3?2=+6Ah))N1WDfQuT*kM zi!cfJkDg~*ETUKP*Rap~I;RPuTF(vsD6td?R}#N9wwH3gk($a7=hJExlKoxmCUkkvW}XKyPWS9y_b+Mn)MwfOgK1BcEfQz)SCfVElt7FElt?Ln)pUgEnvYbkfe<4+>PEg%;y}!}> zieG62D|>EeH+r7K3+nlD_MaP$$cp@ zW1LQD2b z1eKD6{rlTO=av{s`^?vi_~GincIh%L-I0dBm1)$~YOtlI+njP1SvXA=+8haYKht6s zrX1{M7v#Ril9r|HL2$hRGpH>Zn&!GlT)|ZRLyi*NIV37ymBz7`qf=H6I*qXF6SL;_ zRfZRS5&mNLGQbec$T5ieya)8VB|e!c5}rBn!8@D4I~@57pn<(ihJH2gdex&^qezKM z{}>TW%`e2vrl_PfqBHE3Z)eEHxIm!jf=g4y4^iV&)l|cmR6tm4 zDkF{lkGh%#P(sXHUk^=znr%}Roq`h)do;dzcvY@@47~kg=Fya*)d+X5!0zZx3MK;$8ux zXr|-j7eZHR$D(&t>w&{Z_a_5Gjni>eea5P@z3g*$7Sk9l&G0(XdLi70c%`#8k+d|N z=*a|3Qz5#uB2>36jv{zzeu~dB)ty;H-ojBmBp;ynxDZcwr{f@p7WLWa?t$k*GD30K zjV-=s_qmc;XA9qIrN74uO21Eige=ngO=k`Ob=rPV&Up=|%H`}Twi*3((K`E^9By^` z4p9&=)J#(nfF>>(*LF$Og7Y9dh3SZF$-ub=alSs|;2$lpt5&OAXv;<&&B!=Sijq6772T$F_lpuT|wUmo6usU?8$hmP8P||x_(Py z({(sMd~-2lMKF#T+f%l~v4?i(1&I@}az~rA(!e95BSeo6%j(U!1D1Y1(~LD16U$2Q z=vOrpN;ma5dZ+Zzxn^XBDt$jr0VfG#0zUa|9s1;nSM@n zM!WUZShTKS`@iYprY7eKVkBPQt<;x=)P|WQx)i2pcOluZM9u+Ebx-wp6Xe$#vj%8A zIgvS#iPw9B7Y9x4f`T{q#z$hc79YX4fQzpbG(&J)A*xO9I`B-7UdYiS$!cQaAY<3~ zunH`!91tysqTVAAo5OO|{p>n2o}V!!HSc(VvNH=8^T^v!`3^FJtC#c~uXB*Wal*B$ zv6MecS#$27!N!~+$>7H*u3;Ke#1yyaQ_3|yQ7^s2$fGZ_aGZ*?mx)?B)gWz(qhC>s zI=tBJI4tqimyehE=u??w9Z1Q;S=55*ThSi;V9KwOpZHB`^6U)o+|hrrn%NmJ%;~k= z_U8sJch8$22&k~NQG|fnphdz|z!%Eu*@L-Olb6b<#;>KzK0X6>ecoTLdOJr!Qt_UR z16y6&c8L5{%)JnAYyJfmf-(6+DEv>M_b`MWb9{wIcwyk@6|XRWk-HRgTkT1TlSKfb zQl#0FkokY&%GDL7 z;%?1JI-~r8l8#a8}=i?`%j}E5(hFZV-6241TH<;3nSR36|vXRiS!h+a$F{a zt-PRnTh+5mDh`DA>DJ|4336s)O;{RBuxbH@a!s2EfdA~WZ0}Y?8pKq_U&1)9=jPEw z#EZ18Ea&}I6tVnM0wr!bDlr!6Jxf_#vfy6*>=A!SjPgj(aB~Y<(euVhpYgB#@4B_? zIh~q$md#beXI&3B$-aVxP(;{;cAvd0Z@+VRqmh-AoU~;dOaHTz(lz{k{Vo1*pnxxX zo30|_C9cUCwJ-lZ6aM{$A47Gi2dMc`S5EM_cksr}LDg^PaN8?TZ6Z)%9ijo~po^CG zpc(Z-MJdWbs~^UuY@Y1fmdPELq^%@Z18yQ9swhz36^l4X4CyUWy=L_#SY{G%;sC1vqs#bb(8B^IG4-+hj*0%Vh>2hBjC(BMCJ;ZCS=Q5)eRAuN+7`R zGL0A=cq9-c#c7pDY*b|Yr`oK4E>kH=A#-WO{Fqmq1=--76n0M2`+aa&*)2Uk zEIt*ggSQ?kEQu6p<=yO-m#g@Kv3E)z`=9cCe8LTkAHHQOYj zx&9E5O+rngptq>*sMFIb)Bvl!>xF4;KbElfhmOb`5A)xg@g2x_`;PpMr zA^y4$h2g3ba`o$kSPgBXd5>q)0oMj&0;tudg8O%GF8$`YJo1mD8U44zM&w6>tv`=SVXA6eknHD2`hEw#LGyN9 z-Iv1<#c)~4VeB&e`A6YBG$*T|?T~SZJ;eM6f7WrYjG){wwd|u4KK3bZLM5vXJxK(i z*nyCbKhFz3h~*p{$?nnVPQ%_>LXecvsP?l`Bg-cowdx_75e;gvCl=cAdgj;m@n5;a zstSA-OPX+lqOqm}vrFP5S;{9h^fJ$4ijw&Ximw74q@+C!s3>XX-A*=P1x(J2lXmcO-m~cf=!ACHgiW>8 zYms^4VRrF;^hop7>BX0iM9HP-{&`jY%`|q#rlBhom4?#Ld{AFx-d(IcqmhcNJ&ddP zDYiyi6bP#tkj32vArByw{8W69a_4eS+Rh$oVY9wp!R0 zPz7nK8OR~ZR{665L29=-lZpQ7r(Ram$g2dIdX;x`fP#zb29&B?0Hanbex_Q0hdc0b z7-qLDx+J~`Wa$<+J1^yxw0Sm6?{+zt#1K|4w)b|Pk+?SCCF?8rW}GvD+F4LLLI3z% zN8t8+J9ZW3iAWUi+*TI4;qZ-A$yiJ1E=F34)Q3F4vW#H& zUE!ZWxxR@Q&zt}YUJwMmU?aWWu{uzG?CTg#kJ3;(D`Q$GL6hDQOnMiV#A=a_2>Ep( zk6smZ{K~iv%W=hgN0!!nEg(JfMjE@z8e^4l{Ygwi*|CP;_b)ulY~rJ+x?I^n&`}80 zvXylLT~@Od@Jt)_w3HX4$IB-+{H|z#98P?KW4g9ggvX404rqbmaMZ^BdbG3%jQ~N zE`owh{eVR00wpCz@_|=+WZxbGyF=%GmrzmI-mPBDuN`)Gp$l>APP}eUx3OMzO+&< zxED*a`orZ$HJLsxu$TihoR&) zl>z#N8g%BCJ-=XZx|Q!(!#a@4BDUmbI$v2zMHGJ0qpen9W)?_vG>xe9I@?Y= z5fEiu;<9oJnSWNQv|?*qQ)W{=AK}Q5tJe~a(*C8C>c1DzThd-*H*|UJhqk`=Zfs@Q zxT^0BKMNLi*T}-6w04fEtKj@Y5U-J8%yG?k$_3|{Q|>eK1bCwpa+|x3qE6c4B+-~R z$T8d=b{!$nrra{-XR~m)yy+asE zXzZc~jQ7DRJbR1Qt-SF$)DxOGrbsOX?2BAh?M3zy5a<6`S>0(+5;Xs8B^XzpqBNXF zO`>iI)|NGe+b!PVy!NBcdSq3K(Od@4BJb)JWH@ct-c5)S9Ix9q`-T}Vz4I}cI2Ud8p3x;M*}p$Vz^&Jj~ejklN86V1*J%>ej}#Y zr6(PybiAC`;~ysL=#DLl@*v2_Ets(D+EU>unI9=H3H#+z=shQM5jlO)4Ue)i_t(5X z?)`#GW&KYN_cquk0Ps{Wb|7^0k9SH#OUFksl+LWc1##OxKN@TqSNNoQ>xwYD-e8khGRD1C*y*pprja^W;=Fgdhz#d; zq`q*(lnaX^d;>g7A>SHr=zfpSZ&&FBusGM56ECC#)in49#9Uxw14kNy|DsbAT4yvY znri7&T>YJ`NYa~)pyOyAyMnzD-G|Q1WmU1N?kjF}3Vt*dEJmiaPfs( z7_1UiI523fTb6)mEgIW#CqzH3Fuz%a3QPS-4FfOeV&%oRVpF|K4Upb{m3gq@G3qru zK9>snMjA9Kg!f!U@_O3$ye}YRqxgDu>*TbMV|UbX+RH+>oYQr)c_~DH<%{06T2|B7 z_=dg0tYCJBn7;6t1=@FZASOLn^50q=4bs6ByrZJ(i;hU#)~|#-`Fiq^K7~CjkV-&K z&@kr!3?d`qm4aRm=hWdLpXAvSz!&Nf*$@-YDy)mAannM(=7NEr778KB82F#3|)k^^(-({;pl_}&P!rV{U zCJkkOTbGC0RLKq?;M#PwlUY_`c|)dhx1#4Eg5gMEIajIM>5=r;99|2R<~H~tGA4YM^!ML@NSN=rr~BzQjg8lWi+|(cboDX( z7PRWGR@gdhuS7KOD!kn~tgoin=y+4U$B;fBZPuN5XTDNS`7G8*t=EP1PN$Ut-*NH@aSV8ZTwUkpw!-4d};jxaur=uMGZ z!EY&qw!C+}-**EFXv{R6i{?v?5#7tntGyVOrJ7$7jf8hS<4d&SK3m?p$&HC#Rw^8> zXi)&Q3mxFy$+|>w!(*uq|8S0Qpvdf2%SJ(zTV1x7ZDxF%f0n7MlU4)m5ytC5t@&@h z98Yv(Gln}*^i$?Xy9V9Sb-8az2TBGNN_D>NLP?>CsTbTlyXAb!t|bEq(-}%9BSJV= z%>5S=pWiwz-YXi)hq@T9a0OzRbtY#`eg7^eIu^7i`P%M~5J>&$6l7N(N641znopN6 z3uwiMRU%e!3<$bXQ}wV@#f>vqv-wvJU66pzxTKijW0{4JwpIsGctpycV-C*DQ!_o^ zW6k3n*8Kf?q22B;o@}kO$q{^Vo33F3AL$ntFTuC#rU-<{-S@|LFZEVtl4)OcOGj>9 z7tyVj5w<1pjiD=d{Bobk)eg5p`k^t(eFqsmOcv;3k#41iv}Bk7H?%7l0ucqj~kQ8J^~^Etybhu z#4N~oXl@6;PS?QeRdpk#12UOs9VS_aG9|BH&YRUMJ8;_L`;&3GQ)QKgruF8;4Q{){ zqI%${cfP!)YXu1fY8av;*L<(G=s`ajZIiNKBuQGQ-3wl&;lm*Gx0bTlA${~?{(IPS zKu?FFODDrL!vt$46(V-`-eA0v+mfwb|LS}-n9t9r!a89WUX&%A^{b%ghbY=Q6_NA< z{{(ywC#>nU-rD6JPC@+sMVk!zFKHG$B$$A1Ll(S=56hGaP_iiN3!w54bb6v)#;n2= zT<7?Fa->tYY$uxH%-#gGV7ALeeDv+OVbul?B`P9!!?%lZUIz@Vfr%|;d^{Jy7w`RK$r ziw)at56rw?$s8eJ{AIwESf*3y9rA9MIFz7!<6-{0emQ)lsE)EB%_-Fwa#j;jaTF{s z+c4XP@4;Kxny6K>Xe9>=;no-H@6qp`IlK4*#3a$BOJ8F^ck4SI+B3Pt`dwdSeEdha zR+buEF=qv%XKkJwdJVd{4(q*;0>ME%k4tR~r+@C5H*Ej02GSo@QbxtfXdTnmBsHa+ zwlCUO{xit%^<_Y>Cb8utRZ7Y3X1lEJCJ73yUaS0YnL6W@`}l*OodxcILw=2LH9#MWj2zl>>U5`z zXajtZM*iS9h}M$e+{kb3XO0oPnCCIf;snY{Ps3N4$sppgns|n$OpgKfS(>tb!;q~p zn`P+9&J9l>?xo9+lQFN{rTW0dqnKf5Ci6(`2W0$|CqxKF!|A6-yFDf zthbOTpd%f3qaJJZ@@-!-yeD`4>Kn69#I=Kisa=02rhnBi>=gSHeZjNL4ln^~9017l zzc~=^7c6CXZdwodcrreLB68;Q{6+8-RYf>R!8in-vQI)4Dr}biDWYt8GHb!2$bduD zdOkeDlG=4aGD;L|A0Ug1AXJfgFMTh|k#0Msi{%r{)!YaR-fpX5eE20RTeh7!$qqbq z4#Ms^{z4sif1_USQk&^uA!!2I%;IR=*f3a4A@ZIr#KwXx&2&lCnNvut${aqx zup@ui5LgwrM=u_5stUKCL(;OtChs6QI&FA%(=fDL6Qx29FDF;Q#zcOBBMy8yE-7X-?puhqK)- zQjc9SI-{1tOWo(9I=eFNHTfNl5cTV~s7(IEo_N^reSYbfXHpUmblk>w;ujnD&Xzk4 zzU+$O8Rw^%rS*3o>-^#?jIevCinV2hS(}^q5_i_8-VNC(-p=EPY!coi_M3QJRH2p5 zeV8h=D%>HIw(U5SMt%~XW9ad^@t^@J51}9atwTiXQ1q*wf)y0X@v2B*73VlYsi0*S zqk-vTnLBlrV~(O1ttFLaa8{`%@;gh#8Ww^EcUHPLM(NmXl9BW;mTYaNUJ|NDWI0`} ziOu$e3FrCst0^zbg(3Tyg1!R5evPgNJXNvnV_b9_W40 z4*q_XAd8W`6&ayj1NEfll7oNk@4Hx;|NAxsSvkU=m=4L_$>i6fl(T(gw*`UNPyy+D zo^37maYBh)KScHv*{j$N;>7b6JI=lynE`6z~s2^oW6g&SbDXOkY^LUHDK zy7!F-#ZtzgF(A)es(w+s(X`IhJ<7v*oG-~*A`aQ=w^L!j{<9G_FKRjV@@)}Og!EI) zh>A`yu@`g2nB41cdnhRd@1uOlEv0#)lhXTm*DM+nDd1S;Qa)15+F!hy#o2OS7FM#IG0y&Cm=ox?82U&fA-~m!ZaO^_|ETL zly=rWfX zh>sGq&2GF6dRQuP>vfdejGr6?o^|dXRv`3bIDT&Il2Tif)nBRn%-pl~`F>e&lp_dB z@Fj%BSK#ei`S~Y>!+?NzeofnDEj#}PZml=Hl8ZZ8&!E1^@r^XXs&pD!G00qy0+n3= zn|f95#Nt4R$Q;=53g)MxP3@e96X-E;+Bg3eMn#*^ zZedEFLaY;ifc}*4~IoJOd&;)r}7` z{7oD=j0(C%BpL{kv?QhwYEL;b5V>Rog-;_AzJH&gcFOR1&7YLDELGv=m6euMnPcd3 z$?w?L$!2aW@KG*k#0T%H6W#x4-P9G?5{+YgdF;N{w)p_fflz|`cCq=WdA5maKVg(r zqt`X=hOv(pEikkm{x@xLs^59|KSPznD;hkqQ__+R&$hBUTsOkqMm7TJH*^$0stcU7 z+wD!C=V#lK(gduVblE-!?a?()sgsM`*e7qBd!x5EmOAqX9;1IvgZHU=z_$;x&CDrx zkF~}A@??Ms*$>PsjRP%^B(RCyZV>>s2wN#lOk=Y%ght(#=y<3Et~6bLgJh~_0N1;^ z-ra3}-p@=A8JlFaE4c=EiK*hrHc+XGZtN$$C3GzOp*u&TuKSS)@v=rtvNU)dKiqqc zfOK(KHS_Kqskk+|516wwO)Fpbk={L$xWI@)ztt~Lb#%_R)J|T{MXrq5H@uWwuBSm8}LDdF2q@ zjvOBQB;to>v=|thRmvAv#r6ZGFkIk@^jZ_~iqvJkh=*EIevM~Rr&UD_G74IBYaL!k z1->AR4s(!mKG$Je-uDi|9$nrqRu7)1L`DXoiAk!5q6>Sk*$i=s^4Wt=f{TshxFDjJSOcf48VnJs5ZUR3<$EFu zAxUYO^P%YIgO%H)N780=6qU32dKg7OuGPVO3XkK%PVcEQJY4-HIbbnXTi($vl?oSkS?UJLkJU?Oqp9Gp3C4u_f!Wj6}fvDCVBvA3uAiRFnK}q2M z_5_fi&iXBs!e5`Pk9AE3OvzH=whon|onbjrh`n>Y!(>+^JH z)Oq@G`al3^7{Ri)*qH=;(O{gl*WnWWa}N3Ck=vkjbjLaRwXb>42dT>@kN3XeQytfy z@1FO05~2@@eO;L#4W&YMS~=y$R!>2U3=XIkt0MGG?16g}{l?#Z)mdmbg%PxjNc$x| zth&p<@CID&8lDIIrsKx`$zyYuO|@Q^2ou;Z5)o=)WtG-)P`DZqA2lPiOO~B0*J!@T z#;zw2H3l#0o`m3boMIOj1i(#KrkDYX z`XgK9xQ@nS%wG{b&_%}L`5j81Zc_(nm@>w^Lh%rNQ8UYIF56oJh4lO0xVokA z(8HlN@O7$TWHV~jSBXaN8|U70mibaS&b@xSzXCn^ zn8_4xrrz-8DL4;vH9xOXyqsV=hM|m^0C>w1brIxWAn3V7H|1VfW8K&8=;XsDa(OEk z^oSv_ZTUO>Q)80J&->=iwtKI(Vi}^1psvPM;n-vgO6_mS*8w`BOfSZOy4=kztOQr zkvt>XtZ3z=qU*@#gjD)o#AV+fvq>d_Udl-7TN-L0b4uEx^;y7SSIg#+oI&UhT(5^H zc1BHeMJR+j&BVs_4^&3OtlAt1)Ui4I`2SQ3ky>OF^0^cRfD|?xO*4UNt7M9jB{!0f z@=lY##J@IHyu_l;9rfLv?1^Bhzi=j~lF4K@>6d9+$+BM!z(SPzM%q%%Gz5AG6Z7ou_GSkL-SBaHwxgcfaVbC7esY-9 z2Khc{+#KgOIgf3j9ZC9leIrCv>&f~Ont(b$d56iAaNIUxhVN8hO~coEebyI!XBLzBxbOnJ5tzxlee2UJ}j@H}Mzw&HIC9lL;}j zDv529Bi&Q&>{;=P++>-&niPMW%Oo%#Z1vkV#XjZuYR-m|vv#xF`+8R%tkZcmHzaH_ z*(_(+J`s!uV<{BL9vcbm|3>hTVZDKJg!>ZQI~X(_6aF+N9aI3|oy)}h0$DP-N6)4a z3~6(=fDe}z6<8H~SseP;NTbMSzq%Bf(~B3>*_WqmQQQRHX6BHj(|(6jR}Abq{ifNq zUF5)KQA@@g?e!V61w;epSr{tI7>A%P=C{>>2~AEI9OR&$eubEX2Wp08FR4TM&#O}L zX498?NB0@j$$22B?c(kDnXL&ywi4@>Pq}Dnu_1$Ke?2D~RA)b9sjARgOGM2JAtrPT zuV3ejcTD&<`DT-as5xZ-32xfxTv zybFqwN^^#(`w$%LmfaB~mOE@S>YE#%Y-0!Z+J5UFb_!+r3bxOp-pa4f>z1a%W8epo zXZ;8>NFUpasKWpAC=Xqh3*EAy42Q2s3sdC^jzDU`)M6X{uXRw>HjPB1nh>N6Acsw- z$W|2oR9}s?McP=h2)Mu@c>J)ptioN}1yV@qh}zo$CI}V%(C4|`Zf5~E-srpZH|%^zv-UN@jFcoJJoixhbb(Vl3g~aKv)Z0>T@BhWo2rQ{KI+ES4E_(uAqe1 zqK7!lDs7$|K#9Sn;oCzmU^MUTs303Fnx{^km;16l z*s#R1rN@*p>@-a{$|<$O3e@FFyA=x)yhWGLP6c_W=$1WAk4B*uns9XJcg)fp?R#!e zUFOdQ9LOMt{#*G+DxvZQid6No6yCZMNgY0D9~i|Vs~X^Xe4*I2wzOVM9H_{gjrM58 z-JjG;#i3s6W(E!BP>}G9vAKV^ymYdSLIKMwQ>zuvonBvT;gY~KyIgdIlp3)joa3L) zmR#j~#H~+P;SJJJcbo}?kkEaTZ_Bx2E8J#ZmRLjpmQTAltkQd_#733Y24;!tW4YjY z?r&xJ6G^CJ>c@rY^09F#uc0R>X_DETo@-3g#mS5;Ut!Hdy_1`gr5|sFNR0W1j{#q= z0$F(UJ~z}{V}y9g3PpZ))#nW*(9>(E_#2tz{9`U^aq5MpK6IrvxkMQcEQ{vzrva4D4lZD4z@DM68lm>C;}knXxW2nOKu$YVk?7fEhe|Hf9@_Qr1Cbq`P+pDdbt zbr9EiZFPC-hx?}eH@T7I@FuzdCj4v&S^C`+bu;tJKt>V>%2R`BWi5AnX(~(n9x^HrDO;TeCqoV^Jg4Ou^)xjUR#}Z*vp> zdOu66a0eljF-Q$Ndi@*s1Hq(UJ9{B^mxn7pP4H3Y9%)RnZ{O>E-b%t-E+wNfI}9Z zH7UPk-3f~>Z&usqxTvwq=d`%8s!VLF-%hOMdssX0aAttbSi(KoE}<|sAt}9|1o-s* zyR_~`43no<5TW%h?+R-_Ov%lglwP(Efui+oFnyj??a&QtqAabT9hIN%zjy~s0XB%uG7WX|dDi4on6Xdh zNQb(kvGGl!P{j!cA3{EOMjWbGwhw&mfx7tw!HgxwV`Af(m_n-Od)JTS_xkf_$<}$v zGVwLlf60_`8A;uDOS?E7Qk)iAsOQ(sh9PQ}D)lG6-r5wNjZa+BrPXx8ijH0d18feZcVCks`%B!*ChKgZ^Fs#>8qy^9Yf~P$xmx7#m*@ICIihsc6 z`cWi<*^z-Z3!6zp`vf@2+hj0x-KF4jxWV{u`(Y5MP%eKR>_Ny-k*;!!8W)5lDn@8J z;8e=g6SM_On*?@f8U6B69uK4xrkof#T`WY;WTE{T6U9~O{x7j0_y$u*!|m@DdI4FyWSCS4thuXhk=Q&&K3PCI2e zHk|CsP-IsuczXq4T?wsurEh23zAV{FA(rCs0YGf_qb_GQ*Iq(=|R_R z%iJ;*Ke^c7-zp+(I}K@9ww)fBBGQwpX`hdI@}0wQ z!q$TRs4s{}LlU+ok1@;$BgbfwwNM@w-lCkF!W51_9k(*9j|fOE1G!F2#4KBXI0uhj z3gurM(A|0JNzM&VnNo7os|4k_Gvn4(RTQIQ^0gkpH^`IejZ?0oXblbA>bF9dLbNfj z(2U4$sbvih!s3MWL}{a|kV<&KrTKmV)t*Kt8n<^lc&633gAL3ADGG29YKl1@{9w^+ zyuIr=>=}cggWdOML($0yd`IH_%HTq5lO%3smErC&Xs+e8z>S(p7pZ8{FFOyc4N3Z( z)KlteG%Yc&2)Vn8sUJd<9W!YQdQ=$tzppC~ikCA>>DcoAW)?>lYHzVaiK|RBptXQM z`>uI|Q}Df2YPP{ezrp4cqF`)7^Vq-5BVJ^NKgt{<*MY|gZe?+0TBQ@i#g+E>ogvsn z4Q0GE#QBQ;_O~oeR^NllA{gF5sa@&^Isx7#3P{z;K6)o)M3F}W3KQdxJ6Il?)_%&0HRdYH|4p~j(w=JAg^Q_*zvw7Z$4+m0{@7n9r)BY-O4zUZ3u&oAZxDPD}1l(pE%@I8@BVqPYF0c`+1Wu>&3 z_C82an8p|g(@ZlV;?dArpkIcR^1Ko*>p$&Q*l$tJKG@2;V0H{M7!5$)PnwdeM84Jg z#kp%t%Sz7+kobIkl17$c4mCY1d*u82m7BEUlOagb!5u3uBp;?GL6DuH#XfpleD|+YGM$r<7+Sj-BrNl zxYZ1V6<9tR#X7@Vzh&B-Q@pLry;;y%39)(gG8+wKv<($S8s- z5{tThQE{V-i8ccMF52&B#hkarAcmimnoQb|UzHdL9P>f!=}|T1b>{)Q)h?4VRa)j_ zU{CyC=;x9mHgkY|?Z&xIn1Uv5o^u+tafKlX13(-Y=1W9*T&AwjCQ^#P8aX+aOB!+n zBCza2<@i2U0w&Ko@QE}XC}D_6MFSt7z?tXi*JdwTM&KMk zN2*`(8NvaUeg^M8`D-)G*l30Mkg2E`^tz$2fAUelO|UEXzC|Hn3zK* zqc-yOI7H{O{;{yp`JS@=38?COR|~&tUaP|IthVlgD5ah-@ng0jkF#YrkN^7t#>)>l zdN~BmP4h3tsngqf99vo?{)zK65BjN1H&e~zL;W69(FKWR*eDy zP7khyg{LL_7W?Y6DSn!$ZwC|&s7Tl3nKSCatK=7QsGw-6It}om8=@gxc1T>ToBp~M zfz{8c)Eu3hW7FPnC0QeM=etXBL9Y9q!tu@2ps2ZRIz>21>ie4~mbV2rwPk6{bi1pz z_@cx2fOb%`)JBbPzgZJ9sD<`~^94yR=@W_0ft2j2d~Ke-cuSsJQeA--0AA42g71a7 zBIGJRmBF`#aH?*P(+K_MtMwo%M4RP8V^BCB0T%*l;v|^@cKNlFM2!ju4xqE_8T~~d z{PSOm{r)&MI}DzHS(?`D{1suVedhMD&RST@xfjnwAqZVa=gyl2Lg=4qNkIk^VSgQ* z*md>->vOkyTBvzXUfP7>`;%M;FFkwVk5Tq%gE(3Y5=`GiVGs@@WQG;K87K=W-R>X{ z-2RT^C4E@>A5%@POjcwz$ZUP{5`C|H^g(K=o_F-hsTk@dDkU0?bf~&;plmH$xnhuM zn#q~Bxv3WxmPH0D#7X>^o>%5F)=1Mvn(FssHO%&s0HHXlvt|>|91nYjPJSC?3vXG0 zdIOCuyyQgewfVlwKq(5RKSX@~yz@0EAHz~$!Ig5iaQ3ppUbIj$ZWfqSnxEGx>)MJI z;N()=9sMVH(1Y)R_^w}7KM{bLWM$C-HQ3hEMYoIS8_K@jeO<_tMR|!(idC=JTsc>g z-^qB|OkW#Br(r3IGghFXS_9!9R{Rkd*dPmV;%@tujRlo5po`%vm=l_{gYk(oWwh0s zW>kj+0_b~=c)tY=iLuog<1Ul~4!w9zSa$MpbkDN!f}O5{gWTgg)VrZwdw-K4Rh!09lpSdnZ)K=B4>j3#k8THiFr$tE zuLbXRN9STIY{AzRuB;5=k@5y^B+=3qO?cVZgcE|pJmq50Y+oFzfPccc@>CmF6h+K> zC)qVEKc~|2!ValwZLa+ebtXNNyDP3x<>{tygOR>ZG%kP zA}TB5ew8+JN>|>wLR1l{n~>Y+E1)P)mZ{sra4%vhj&wZrRX!L;HqoqYOda29bHbC8 ztm&D-Rk)s&AO5j-q_C{sko$2z1ZgOj(tgUigKniJ{PpLto2jITC$smu?^8w2f=z5mI4#p0{%md;8L_`5cU+8|K!6dh8@{de?eP!5aor$IP1ALW_CslDlDGwPJ36qjN%yU^&iiyWZxF(5pnl~N%E)ROf`~#(8;SsRy9!#sz)EMFHsGonq6p5 zxaf8zARN`idDjO(@IxyVw+T;!tn#cAMZ%KB&2VEpVPLf7L6q5(m>w6_)Yki>$BptR zng%PzqCb2xHO5sBN&-GQ;9}w`~~&2`F&gmzxft@>@OuS34Tnwl=^y76ak zdk@9Nx~w~_swaL&rlCJ}?2j4lPN65V%)Y6`fAf#}a7!iffH_^PD7>d!#b0$2=_wfk z@oJ^h?`)UMDG-bP4O!J0gID8(LPpg4Pl=AMntZLw~|e z#S0TMW}CK0|BVsmHtO|7XdpbaRHQ7g=+lV2VcHhT6@S4!W@BT`Z@QVt@d%N-V%c&5 z*0%+vzSOWLscxc=K+OBWpK7Etdv(ub_wgF|GXt$ovI#j!0uI(gOtT8cSSccjI;NAvS8 zir3%AE35F||I@sE{CXq9C4&AS-uSZGsT8eRz#X{@rsRJ#{zx2=**33$ljXBgQw4U_ z-f37oMi%E89hmNhpgjc`KDZP};fz?9EB^6b^=leOvo@8S`<*TIkZNdw5Lv3a zf3o%B*5iYvjX)|>lD7LGq))T`wVhCclb~fET10E1Wx=k-##=Yb(6F)1vG1j(KwbOE zDz>s)?;YDrV1me+%XMc5i&ui0#*M+`oYrEO^@5JEsE) zU&AKN%F>D6DsCx$AkK9ooAIRn?kxd}cPfWmMj<)zByIj~mVX~pAD;V%c9SWLBDV>1 zB-L+8U-=~0O7l!{Mcybgf$oT|u%zhr`B7eYQ_N%JP=i@DMJx}}o zB3dtu;;21^@(cK=oH#`E0Q_hjymBBmL8r`=%1$q9weWkf!5dXPEj|+i(Ft)&J96k> zO9M|9(~LD;$m{Yq&6da&prp&;1w$z;t^4ucM@R*U()+~_Q1`{R-$eLmYYVQz8qpad z@IN(ul;ekT8EE^K-|Ct$*sei~mP_XaV=5=zY<|#aDbf(E6yxUZJu(u|oKa!PEm5p# zQ|B)f=@V@P*C|WKB7e|zI?X~|a5wV3d+@5v_;JvTVw<(S78I$Vrm8IbJj*7mJo%xl z#{9#-@jHhse1%g%(Ven_K!uwi$sO#l^FcOY=Q9H8#L}Sbc%_!zP@D`hgl-N=#{Nzb z0pc^A6@rb>icQwP2FJrqiIp~2)%$zqOWTfk2JUU5V1Z_=m9G?RH998QI%_o!a$72w zE@@&oSU+%Zg_`uE3%cB3ki;Ez)ICb3bX}}nVi}*SGtu<(HI8gaQKaCRU0ZGfwm2MV zstddVvUW$}5Vt}gn5UC$Xwd#5DW)h;gc$13P>xOvrBV4sVK~1bNq^xY&+q7WCWRh` zUva6N1JRZ0?`SE7C_DE(A?;GFF|CuNfv5_KQb!`|j1_rgZ*jQE&X4RIMH1Y~YCzEw z203kPnPic`9mlwJHGnoR6j67sb>6cW|J+tQ*CbFo&(&x`apN**51OHGXm&Yzv(1dy zpj|C*L)S*?+@oXv&xka~1qGYuphGHzj*iMITdQmDD_zSd@Lpz0%Xa45ECmPgb9ir% zhi{{&hNWDqX&fn3bWW8p{p7un|s` znl>cjIJb44MUz^8T+#PG388+6e@6V51Np#BN-Q9a+$mY79`j8U5N6_@{V>(M* zH8-a#G)fN;^*9)r)-)&zKKD25yAraOO+!8pj+tDf{yUH@5Q`Pj}-c zK*|T>OWgD=^dtW?kEZo~HfXLiDQPU-dF|c;JvgqBKSe1|ayGeXcryU(vPk>Eji*L* zS2#%;wFsg@YbsSwfN(CnTSHV*Gaai+#722aQQU>!SjFO>-P$f5u^CPA$wiam6d@=& zO?176w#^$6R%)ftE)g;ruE5XAs%rRpZSDhfQYXq(=%~MRE4#V!kyIR`f1 z{Zvuu6otV0nrM&?Fygk2(*dNV)b2IErS!SN;P)PEHgi%j(9BeL`5CIsN%_X;LZPr| z6XvNwf_=tWwcJq3o@p!smg-a)SnY{2v#Qx=Pt~kt^p65MfG)+OOH^L(}tg$A5zw4p)W>b7JmjG)yPx4%K|R)}nl(p;2J=2>{nbjV%r4xCI<>JSfg0 z$#MpEF~n0(?k~Omy^(m>iu%8z%`Q7AUNN(NSLRl(W4vjVI}>3pYB%*V`>YZUd=Wi> zahd?AGukPBUpACI@=5ViVllLkOa%8YC#Nr~#LIuV1^Bd3`2xwfdGq1INxyMRJf7Dr z&uq-7>!Syh$+NtkkHl?FCaR0aD#D+Rs4yFIA!V0;(|M zLc=I}4uys{R4>&LIimQfI*>l-+RmEoKEa$mRyibwR`wb8<`gWhqPe8>LWg<$O25PcYsCVZm`A#2 zyryH4YTXse7xPbDY18o-WztY3gx9#{%#|>?GIVPu2-Zvx!k-(%3>aS`PU? zwW+4tySls@qBv`HJOar&`VOB)Y+PMpBRcBChOa(k3fsP}a2 zh`*z@x!un0xO&^C=A=yO_kA`>RfAFy9TRM{!uYJwM3=58%GZ1iyyC&NZA!qR@^A`Z za(|4TDntG4iGDSB|m?fb0+^#vqaBI|>=R+}3EH;B{PUV+Q zQ9itLiGoAb_0g%6myU$TtR*O{GEMNcqW7DxD>gV9i8W>LIRfdHzxJnFiMFMmc$#m@ zNEr0b!iN~j`IJ<2Au+*+uaslH#R740@d2>diiLalUSN2}dG}<38F5l;1(g7)Q@N%r z7G0|fxjb||IQs!2obihE)#~!eL8-<5QKKdYbGo9pL`1p#;_dQ5s;YTc@|Ttr>}4m56(%892Fg!Tm`O#?w)EIz9(XrKJQPRNP2f=aiga$n3Ht;17@v18_r;WsEVKm#^jZiy%@vL2wyTkHkXL)>k*p^w;|VoU9j_PdW=>dSHE%N+ z!Sy*(kLn|{v_gND$|jgZL%gBHlye_S zsDH@!HrVowDYp+wR>p}-rXfDc5`xSwkX*>sYjeMdGH4mz$pvdY{AnWmG^1D2?!5S_ zZ((vvoR8>?3I4JXh{}>A z<`iG7;W#Vc5vk7i#Gi#{)bL`4$P^uh)X8?JZRu$;{=Nk-LI zECs3g554-*GIk6<1nXqHCrha0Tivvq``YB1B*J{FMLVNETz#t{A5>=&8glbTOV)@2 z2pZ>tXVhzCH#C<+$yK974^0_8!_d!h5cpf69tbU|AWrg64pD?$?4-lgNocsu*?rN;^v|hdfRDmj(J684DxmAN!WyoAMn8JF@xEPv}Sj=<0b&~ zbG1g_EMbvaVaVcasOXo>{1hL9!Yz*&!{Z6r@~kiLU#}D+yo7VKFbLJE+-9?m&CAr7 z?d59>iTc2=y;{pCCE#B68#!)2kmR^v+9EjCDY9WM-gD6|>I;C%Q(sW$G05grO~MBc zy76b^N!a|)-0{Pdg$dxXugA2oTb?QmHLClc6=`_tk;hmCQ=sLYEZ;<1E8mK%!b3kY z;fP#L-T8`TWW6L0HN52UE&LpTiP*M=6kP8Lb8a^0Wr2xml=`rd^|TJvi8zgCG;~SO zT&TMnT!VtV+uYU4G`hu0PMCr)okp86cr8sfb%uQP=d+!`&c*QM$%Eot#p`52R=5in zzL`j=>=xFyfI4IfBr8G;0S|vQxYIAN)knkT9>EPFyj(6GIo0BU%yf4pE;+&>%AqBE zYpY+#qB2Q1WVDaBM*%Bdp1jeMUsLM9`gYE6t#wn}%84@zQYKA~e*&h*iUbKgYpN8Z zQb*h#dO}5WbWM?REY+I|Ml4jqptTkBZ0AP*8X2?rXmb-WD3B^NWB8aJ60$Lxj-z;k zS$2Pr1Z5O>ebTbaZq9@dvY{U_k!46a8&g~*Ilh-=uZK=D1nY!L3N&2gSiuC*OnTU& ze}t?d*Oq{?iZJcB#w*%Faetz6o!Ov}*ee}Q6~ zpEn2-W(JELUohhNgie309V2bc{`pYd_aSpT_spP~Q^qyh7qm#EXdZ+cN944GSHe8g z{hX5XnL}pO;M6$Yqb-3_CT~r8{V(vR)k)Hxg_RJ=^2EQXZ~FJRP7v{~VU3)zjDs96 zFgmulF=G$aV6jZ^eXfi&({m#vgchp_ep@~p?&GLmePKq4i&E?84d)7v&?1x821S)ys7hf2pyV{ zIEO}!Zl9gz+3iP!!71l!%uIYHQWI3>PbAH=rJ1)9JI&d z=O<3$kG#urXs=>OgUY4rzUl6qE9Ub$lM^vy>s$;H+Lf|VRJB_RyLXSs7>e9_{LPbf zt6&bkEt|i{2&f=bIv~uS4p>wQyy}hZldt4O?#q=`E!lteN=7VyO2HIl_`hG$;(KUz znu1&N{EJ=IIL6z}#`I@3v2<95LiOrbj{}6~?@}ap+CtWZFPDwiw2v{JRPhbUFs>Ch z%Cdqsoi=uDbrsx|m-8+$x1-IMAB419YqZjT>G6Aq?jeIJ6OR#)UnxhuuZov^NJJs1j^vDa8Uf@?5P=IAK7wh3kz5JTo^n{JTb zVAm(T8sbcI^L;Qr^DSi3sTOfq;-9bI!rIroe%+v%pe5j_XjKv4yk%&m6me|w09y8^ zEhZ^wA6>e4ID3}@KpxMfR)6-qfj-_4CSpYh${4|H-!!3&#OXrzO6n%vO5n z%^#>vguKd}fY6@Zwu}a&8BOR>8_AKIo=Wd~iiz3C=n0#|+lVk=OUp0-TQf-=ZoWd_4GYoHYqF_z9aE_@N}C2o*_y$#ZO}HpNIDA-|RUJWMs$-Th5tp z^sd29+Gu=J?+?DS968g)`%FqLnHUMHq~DisyFg7pUuny5|7lDUK&LsCW*EGoIogLZ z+zRFeHj;{kSfW%&BOGNQFI=83)$55vqQA`ejxmV^mauQ z9X+hA>Ps|X0pVL};X>6tI%YogCkZT#vF`w7jL0<9Tp*uz{KT4D9d$YV3pmFvjf_K| zb9^}#F1Q>#(qEGnz(^sw%s#mj9qN~qN=aF`bbRz9zHOOrmx{Z{O|tpVV)m|IX`d({ zo~bxzkcSd$) z#8I!ZtL4uY=lHQC@h(mo+Wgm+2-C;(-+9YL6Q&K{1w~PoM!G7IqZ6WK6jt}%yyh)Y zuAI9XXv%VR6ed(~+mjFrBu#7fp-<|dtF@os9k5166nSPGKMlXxh)ZThH{pp#y;R9H zJM4M~)`K1Fwis4Ea@(C%?8!6I7VUxgF+SA}!T4N7Cn_EgbBMGKA|*!Cu!@;$0|xpv zK@NYEiRs=+E^;hvu${b41|vhreW5lf8~faqmveG)x#0}2_BqG8l|xQiCv{Uo?YZL$|v#RZpg} zb8+!7?K*9mcx%7$WYiF&b4@?&r$6+@vZ8L}kHn6+(9wQ+4QS9l<#Tk~1(!1q{Acan za~-DXLAZw;qdGObY zcXm=pRSrBLefYZm-tTHz<<{J8%U-u#4AcTlg)!ApLNz22&y&|JhS4aUtqV%QP)(iLj7Q!Kn%JMY1{Qb%VbjF zQSTDX3IPA383(Dt$nB3v$t@YnaHSzt$zt3p8B455UgZ*I66f6JhS|(v z5MN;ckb19fS>>E#{*W|Y^60)AqP`kNu<8NEZFEWQUQ^6`mPg9P+CmP6_ph;;GPg{x zOui6jO&Bo9WWLYvbHwyCz17IBXFo&}xG|6KqubtLPmQPZWL8(V&4-m-G+Jx4j3z^k zsdVzF$IqEpJuNkYc(OLA>kwBBtYsENu4k_l6TDH03Pph374oLy%(J};*E`&p25Njv zormY2N*?y_;2La8ZWO6I+VN9lK*@{dn3(&TySNCh>D@onKut5LJT<4`h9ADM>LSnP zg^c!yuE+AeR=RnxQcaV7$$0y+WB-F2j};`BP zJAVsa5^k!8Lnq@@?iUsR#Pv#T#zy-LuGeAGSP2DSR3;_qU6)eR(+UN9Uu}6ZD{n03 z%UV-mC=ZjrL%HS`z-)O5A^s?tOX_w?Vk9h>Yh+M^0GTzE=rznoBfZ(miy4HaSeS~B zj)T`DK(PhXDX(zHhcn?uEhJ5V7HjLNY4sM7w8{PH_=2+8k?Xkhr-_!JOTk_VC_K(d22ucNFYk%K$fFg;d66)%k!FyxTqKalZZW*4RFCGTxKnX#} z841d(R}^eTNoxQ6u`!BKwkk9Aj(r=20m4nM;+_j8{KwvV^6Zu~jN@x|7Zc#d{M(Q$ z&YJuZi+j-~Wz1hgMCYzNW`&T+j~&#)BXarMu!97IcDw@>75(lwZv92XYxE?bp+$8@ z;n9r38uhHTk^hURWVl9%1s&>NPXE19|(~RI> ziHQ+T*y(ony?7(dSk@5`X(dDd^(#Rl{R%`{kBRMPhYhx4u*Ee7*FLHGeEEvAZtssz zOUvTZAH8Xph|KZSs^(2~Irg*`)C-?Pd~3vTegv)~BtAhesI9^#V%Zr6?5)z?($my+ zm>*+)%5w>Xsq7%79cqq~a3tk|AYpM{jQ65eg&BR4m)dVw1$D=!DTq-n;cSY*MHXoS zb8_6n1+InE{kqiUMS`E`sA^y5yoc@kqXo-ayR^=%-mCcEe5y`#bNmNA;RfoR3>K6} zesEH;hzF*AeH)RAQoIg*xz_4E?1yLN{-w0KJ%$`b5M&=BAsWkPHUaxCb4doKoB9&k z^Z(vny{Dp6Oy|!>6acc$J(?so|7nQ_Eu{LY^sF$5CM<_Q(sneM#YFs*Yl3ryG;-;m zyFR2R<}5;i{QAo~w&719>(0zhUuVc-1dxU8o|YFzw>Cx7`{?|fLdx&ycNlRn?JgBB zm4K7dZ7U5WJJr;-)a!OQYY=_TkC;|S6wh-Vp6KeBA#U0rCGjYv#`asiYbeJ@xw>Zc zVgQ9~{?2ybZ@}*_L!tEyH5w$-7M3`XjVicNQLDCwR0YN{TO(S2E1j#DMQ{{z$OKFC z^tExvRi|Tpr=CVV+cp^`&1$ykn@OniI;DJCisX}03Cepz&RSVpn8Uqp#gC6!S;iJOT<`M^wT}+-**zOOSJc)OFh|Uk_3TlYNv83q9ow`;_1ieiL4iK5? zk@>+`Ky)3WH3R65$w>DVf4SgO=>g3B#B6^NU(Ju8)+FUr#p9n%1}YPX(7Q^!1|CTE zu%h^u61Be_i1fl6dmM<2Pum6UyFZ>*yaGVw{a*`;vTfF|B8@Y!?NWO1n4e(Z^LbdU zsVqBbusGrY<7GM+D%`82dKy{w=)BpGnZF6cK3?yKh88G#RnB-`TM5ld?`eDOk%i6P z4TDb`-GG(&XN(AL2W2JL_evQozt(>CKsp5A?L03)9^a{F<$mRS3L;wk^HI17_CcHN zT*4FM3ms$cE8|02V{k-WyLQG;(X6^TmIM)=XK&fXE}bGahReJI)XumWJn%C9H>&yT z`OTThEdI9a5c4Z>TgGxx$Zf|YlX5-bkQaW&QAFs&Z*;u&HH&r_jU87MsOXlMqkdzV^B>v*O#onm6k z$F?06=r<%LNZ&)h)FYQwcqSv=s>5g`zgBc?JXNMCi2UjEf;9e0OwL#FV=Z$e-kT|Q z1A4m{vUHqHkfXOEi(JU=n0&|_;b4LMHmT>`6Kd zc@lzVYGbt4iKw{0Dd=p}OJ&HjHRm?-%fh{w)0*SOXMCpl3YC*mVnd`Xs?=0Ti~FU5 zUn)q@Ri9lC!iuTq%=*RTM*sEc{1hB3Sj1Nvx8-Ff)U%Z*MvL>BipLRphGno|?s;fW zGdpTI3zUAfN1$kKf+zG4VILB4Tdx%>uGvaFGy3|gAD9wrGoPfHlPdpx3fqh1xuPWR4an)^26{vWy@qu*tSMQp7e7sa|WOl_5b0yBNPPRF z4}|K?ZWX_^@N*P?C!{Zezw}4KD25feG6aL?1qX0zGIE>6b(e#tCaiDtTBP$UTEW`x zq{aFI&RPb-9tV+qO&pDZ<=Rf=iDSxVXf zVX@Jx9=qD3k}n-agvWPqLH2*gh!!pB=R)QzveKjyE3*zg-n;8ZP_w0kgbUtk`C*P7 zPshc{o~di8#gjUvodlbY`JRbNeH?e!T8?9T#~0JqQFMVzZqFAJ0Gvd7yA$ z8+x%N?%V-lEPr;kixj){=ogm#*`U4fVUp-&_-SKrId_pGJ4S-HHIE7(jKgnR?YqwI z%Nm78v4<0GzPg9VlIcW6$2q{hZI~!gloeU+#`iz%>UueTQI?I4ZUt9)`wePZ0va@} z*(t|v2_`Ov$WtvM0vL1D1oT28Z2vp(f)pHWwgnQ?KGlt~kXNqnwo-&q7-K*qtUEc|)XkMxD(p=E;Z~8IvtI$&qpzvbLCV)+sfcsC&$Qgb?9I;yW z!hn@lVe59UgjWl&krBpXjX&EJ&2f^9_g08*ivT?PK<>V4(z|~WEA(^9S_{xJR$)F= z5$5|Mhc|g+(yZQQ+-oQ6Y^YMh%qd$kx^Xi;d!7%gg4uR}s=$OxxF;_oubLxH^$$K8 zd<8qDSlY`ieJv#`tsrT4lC&m6#Lcy`@F=~tc&I7GGKFdtWn(D^q=BOcOfiLG7sl8) zIK31RH#{?i;+}DJQAoP&$6t??LoS+INI-NKOC`lb|i^n<20X!#ArIpo$~h>JW= zeWGSl9D5Pl!M2;AvNVGCbuY_ul21v%GAX$taBf7Y!uao6d(0fMKSwHU8(6vMT?2%@E`te9mQ?&(MF)bN-2J^1`gEw!k1;Ae5uRAqD>MB@9b`tE zmS`FsjW3^qu;%L@acits~RKY>i;7 zVvRZzAEJhXPGA1(!uw&9kre8+NWU`WH5ulmy^V9Y$qF6LuNY;o8+x`U?B%1nAPvaT z*OTR9H0b9geo^W?-(GtqY4?%DcAICx3vJU zkT0D;+6JE|QadUn#BKlk=Q7izNYWy~*TRwBW=ucN4klg9c&bnOu;Qj?N zUCsitrJ#H%we_P6ivNq3A=QAhye25qRI1t($E9PfUwr+_BZOIeEJ_%)3nWdLA8pm> z#ybR*oM_W;zLa1q6yswXddWr4HZ=LwG!=69WEj4^7+kbXEhIaCv`{#2PP^VLEb)?H zCgjdkw!l>1ex|n4pE8AsXMpQ8Xs~t-&L)4IRAQ%W6|*s;~OdmNezdu3G;TY8F2?zLt$ zv`WK+-Lw(DY=^Y-ukN)|{lmVw`G~5t=&V>#n5t~!1*jP8 zB+-%u4g&>k)=?&vT!^84h{O4!I6UyF{s!2=pQe=1#3RZPK*E#qrF7J3Z5zWDmA`#u z#U(*yGmj$DKc90TMZTzaBKUCKf;i7jxYiXy1E{lL*LywPI>2U0>3%Paw8>}b*oLg{ z!k@kSx=v;CPGKkLS9w3+X*Ro9YnSwW?x8ed(YCl>mT%-`39!_;V9q>0M@R&eaOh~s zQ?y*HCn(-1cjmeh+Z(WdUHVtw9(|P1ecBpehFqFkV(4#?_fi?uBxk8P24*TCb64+v z7ACPAx62Lu*wf7MyDx6LJOm4@cI6K+bG?4$SAwMDo#T79Kpl6$g!TaBoW)fr|M4$$ z*fET(I7-WSmBn}VX=?XteAC&=03vheFiRG)vQFR%$vfl_OrQ@5imVC(B9QkpP znXHsqTs~Z*nSYcQ^--GVGCO$MI~1RJ^xt2FX{VFEsz%6&eE969YgaXy5O)}+;=HYj{L)7{he)NCJ44a-6nOY^foE!str*%4n< zFxlu6GzxTbyy7oiEB)*INJI_Aer9PZnd*3S4m;D3$S`nrRDZjeITdWp6*}3vZyx@w zx!_B-XyHI)RA0NARFmUu(T#KzKY^d04}TG*Szvn|<@g)Vsx8);l(M%-B{wz0Rcc`C z>8ZSYaMK~3blA%Lx-lzi@R<3jN)~a`bgKgIq&dkyQJFEVn2i2?&jUM8r4fb!@JGNy zbr#5)I$xSc*viQEdu)^s=;5zO?)M`8H`NyuY_~=>@wx)BQ~vg2aCu;6dM+Ftk?u%) zEp06Ya=*VHmgkj}*%^JjaL8TS`}?fLXmhpbp7MfmEjR?@HCoFm5APcX{0o_Ds>tz8 zd*4O1K3D~U$tHu(Wx6@7zN%dnsCY>8cJ)Zhi@>jyQsvfo+L)*0sb###&i5(P!j~P` zgdfIvmLVF@SX$3tHil`}@J-;_ne|^gH5)wGl+lnGso>d1KWE%#Z96f;mMbM+k>%$q ziLvaG{rq=v)Vee(j^LwDHlfOvc+a{0hl7jk0c1KxHjJoiXCaG>b6Fv8(W*8xP^ol* zkb*jzp-`fETx$=i>ZlG`v|Sul1OKh3+RIr@g1$y0h>-9QaE19*3R!qCbidWg!1MX( zx4q)yJ#pIJ#j-b0a$9-FPsb8aW@%1i1d;g>lB*=3}%3o<1_J4g5S59iPUB z0J0;%eU=WTXp=Fd(`{qItNfB`a`{xFyXc6afUWQiwNfn=`O&W!SqpLAwED#B^6}^b zsV1t+=A|R8o9_qa#{bC0v>;lsx#mn;ruZoZ_tQ?=5T#iKmczEYH{rKW_B(JA!(&CW z8(%)amWz3E%rv((D|~7sTf6n!{o_L`WxW(WW&2K>wG?T9=&;426!GBY$tyy~5mek@ zX`jh*>*tO4KbTUi4EY!XGO#Z-b=B)S<>6%#Hk3N>n%reW;NjFdtFTwWK+a?4m#R64 zZVAgPpzZ7J45l291(77}H#{p0#854~6X^kbD)nl&0=>xRHK=YY{%<^RLOA~(wJto> zOL^asq=fJEVf?_7zkbt$I2N3>HM<-0%B6h^)^I5r=xI%MQ>F-%UJD1D?CG4@%Sbms zj|I8p5~*DOjl7~4D&9u7cq7ywbTng~coPe2bfbzz@ZZ#A;x$<$MI}X}qm`3QH z<_Rcs<4$Rcms@0cv%CTc-A%PaTg%gN?rLL}-3qWg^H{x2&Q9m5p5@=Ak?o1z+#{!) zWUDR5Bk#1}dJ^id9JlDbFLTdUjj;-^;{y?n$luoV>AHP>qA;(I(Y0{*5Xn3hj|P4+WknsB1{mM%oXGk4XUX7oi!Le>jo&^^gQJjQj)0 z9&Qc5NaauU>va#o7AU^FE!Y#FZW8H}xi)F0?5&K|MwR4nzwHuVVn6#tUqe+RbY-~Y zMU(BjM9U_8q&Snh?R2%VTff zHBs+&1Bd*KxF%XINRE8sc!F77(X*8p<#n%L7^2l0eKL^>Y^}Uy#SbzAaT%W3^+C5M zucllh>0PXn8Q8rmBAr76V-a`-U*{#V?l(Vt2=Nxk#$#alkV;vndPV%9s#V5MdM^|g zgI47eewT&jC6tI5s!j%jq;l!|PLaTLcJkOLbEIoH7wek!tesT$PzU}(ArwRoeBMer z&PQ0j00~FgBwz$xcHf3U+0*Nx)!InQxDGzNR4|9IH!C;c-@By`bMi-A(L?!?zO%o9 zZs2%#xn16!78b?V!WE71s7w!x@5qu;eo{W8SYEM)pBl-JMBA-3P`mIafw3j0z zqjN;5!9dxiVj48RAg?HSbYd$zES+x~tjMGTi(v~4yJ;3;9l0-OBU7bd1R&0N+Ru}t zZ)qs!2WUfcopkO|s}+$dj!c)%et(H(Y)JJ+HJw6QwsZOV<_F9Avp*AN@EF&F?oaVL z5W8DoPy6mi4t{EWJgDOCCuS*kRqR`m_2sXJYth8%MflF6hEtRiA(y+=#>^K@T(J82 zHRS)Pnw9k49B8Edo)+HNzP*yT!L(_#OcNTDfi_+UcnDi1 zrd(657sP%mwm!_hQQgR+RAc;S!RjC&sD?yELqH?+^A-uXfg<0c{arbdo9xWH#24Fb5<=~CuaU6! znEKz%EdTv>-+TsraL4bR%ebIMX}{0{<;GHu0AYmz4feii{skW9(n;=!lZhUvk0kh> zVFGlOtIr;ZMs~$5?Hns2&nWTwc(x;oGL;Lgd;?~YM7>+02MAev}1vgG|T8=reoP3{Rs@-NcZcm(| za>ck5z{N;Oaho)~{9O&Kkc0~h$3MhvwgZ*;Uf7cRlkfLxd@W?Yx%F9n$m{sM^LPR7 z&??2{lB`8aEv*Awi@cV~_`|| z!$DHzQF};+U%USA4`>$OH~C23VX@6V&oP1`HU?jQX%I1Dd!&eV`LGoNAX z`KV|wEnKAl%q+NV@z}vufW09HvHHSfZ8yr76o*|;+JnsEc*Mr&JT3{ZD8#bKv>3F; zAKAUqP0EmzH}o!t3__vW#Sd)7e~~ds*03Wt?K<#SWWt>v8`eY!_|83a2P>^I` znj`CfE~3OCMU<70Mya<0RDW8zAojFJ8W4b#OaAJP=^J!Wgh3xjG6-B)n`OckH!T! ze-XFF&TRD3ha~@JiI?H*@4$xijuWi?r@%>}p=&vL8?6#qCBIhoWPPh*$2413*E?Kk zFY2VTMD2$fy7yrv)-tS4*K?Kre|)14VMoVLTI8v6Ta@7vQBnB9Z>o)aUoAh6-@Ga$ za@}$sTmKYw_UDYpK?S94jSRfqKgfFn&zWD?Bk#4DTnlW_LK*rXueOh)Faqo9&s*97 zl<>Ko!K|2dZX!$$Q5SF-HNnj>q}oikE2t-OlX1P(1e>WD=7zZ}9eM1n}ATrg%tVWpGz!BUX&(IlZvnUnI$wzibK2lpP^p+TEwvaa{~8 zJk2^O64KnSSnC+(_ToPwDSWf?+D#o@kyiw}pnM>KootnnvH+7z&@9+T3;GIE%}Rmg zOnnu#|5W4TiyFLHH5@EsuRqp43JPqbsnEP;t@OH2CKJN^?*;xwKExn;DR{ztf>Tao zaHcqv!>nxKTXyMHh)tG)^^}YM6;USOL00T^yK5R^`7e8=cjmrOn8Gg}c`%#4#I@9C zzxgrha?~fBnroOj#uxj*Y|!i*Kk^HtJ z;{J~8`C_}G_xlTq$0#cnuU8K!A+hjtXEDZC4|3Y z7~UXqHFJCKKRbHU=7e0p#v`b@E)51&1jU|x7M8kIY&!`Mx57x_K;)AN-nfl@+9{RO zC(r+0TI)U*{g3SH;{FLAYI^<3L|=K5Wjbr-Cap|?2%|(eEff1we&ARM<`X)4FE`Vr zb8qxDf8}p9X!o1FPlhOn-dIIEU-!;y4rJF&l8p72hDW5E^x7V}+W}#EDOox<^tN}( z~hPpr}mB)_lk}rZ$z<`iM+ax*$YMDnDX{QH0H}>etqRQw$ zfxGLyBwPXll#@!va%w|KXNZjB_Wt|{Pn@-zZkNDcH@{abWE6N%pySzf8Hy@?b{|%`Iwg*G; z?2Kl(DTx-h13S{{EXFAlDmt&4E6Yz#irvGtW6F#Xb*|eB_kWh$G_Xk2G<`g6et1jV zefxUT?fYS$av*#SA@SDI0-(hDOWN^yc#_;ZSZL2}SMhgT)p~#7thxgN9p8ysiRf`& zm(R}+lA>Zb*5^A|GuKQ1k}A}cnP#2tW|0{!b5^n%&}{Kz{a<=w1Is~kv@Q%mh?=r& zjpL2{PZOFCjKkejnipr5DqzN5^oW7Up}Szh*%J9mV-igk2ljI9yS#J3a!LjPSeqbj zA0e|Y-){4H3uSHr|M5>}$In-sf1t~NV6>iB>e%b`r}iLpabGm-fx0KH4Thf0K7p!! zMgE4qE@Z@y3x_grZJ3R+HPGo(mL5!|{o9e&G4E<xr|bbGwmrq@(rsb;>e(3iT!UKHs6E((|Y$Uo_!w>?@q$j00-& znY`RX3*a6M-mU=sP*tq-VCQ&*ijdJv$w;Vo(<$;xNBWBX3b@3t=lFyaoXv20Z3S8d z*U9;Qc$Z(Yq?9h0V|oCjhOpNsbssHmtIX`tJ98P6rmLQz`6}8{z8Coly!TE1{x|4` zHaZ<%Ftn0L5^U^OvVgzTL`$YCy`fXA2qkPrlGX|b1fv=6e+NmD3)>VQh!dM~4H?Ku z)j$p-&%yN}-;y!xtZP#V=jnWBLFFifSFaZ;oI@+OB>F4Y$yZqDK`T&%0jb*Uimxq# z7(3vYA4#EXe#KN0%#wqBb^NwCcmL&q-Vcpj?OT~!T z`1XDUNzq?E7k=o$do#=Q4`Y#led#A*=4e$Z=$IBvhk2AN(!aidMy6b%q&=xS*(+AM zi>;U$@#-_1uN&b9t2E!=h>KNma&bkH4`?oi9NdjBeK5KFx5-P@O4TIC$nM|Wr#Y=f zEC?9I`jcQKop;n_vf)C}y5@Hj*&k);>4N|Ae9{+9UM&whwp|9CqLD$l|D{=vtKV^i za7VLhkkKR!wFbD)MzBI5i#Hs1jlvTZl~j_*o3^P5#1f}_{}&57hD%39I3gg^^S3j* z%xcy;6;3uC9;Xnrk}r514ysv<(wZ4h;Qct9y&@Gu12>{8gW+z!|Whc&#i@TZDs!d0RbI8Wb995V?pkegz>A#tj(6=-ZB@80} z#nv6|YFlb7(sV;TdcXI#;*a(Yj8L63FUHW0&7U^zSL{1q`SFJcK8g`9X<|!o&DqVI z6>SxYVb^dtv{E9D#<%4g5eS$wpxgF0z^pI=*_%*Cdq)HQ)^}671<^x1lrT6u}@}U=!j2D{{Lo6%4*x5pbP&hew zV$iboJg)n)^_QryqUdvBTXy2uC=x>q0jz9`P>cjPw*z ztZSbsm{tDXAn@=opeKQ4`cQiwzkynGeOu4_a3@=g)Pcl3 zcDyAEpT`#0jzpzj0jeOJrhX~%z%S+z={)U7znZu3_f>t3D#O#M<3UlZrd zk+UbI0$q29|04hwKd(&l$co5Ipl~(6R-vGn{z7Zs0rd>2jjXC}eCygkZWRqoG zRJB<;e!AC`(@~SKjEB$w4#pq9_Pbs|vowUxEadH!_hN0C;q1cQg6+=8A`3;#wtb&4 zvUX|OIvO_QX>KdC)2h`J3oozaBt-K^zrrC^$aoS_9- zMV@MbmWUR!K*yzvHWGt2hN*cTkzrisFJqHO-X52-6q*Y~Ftm2`Dx$;4GE&8y&lN-z zJvD`%8WN+WMsH{h-ro8!rJX2bRohMlY30xo{P2HzF@A5yNho*szf>p)Fl>ibPg}p2x~CO4d5q}FZh_Y zS6(LwwjJFw?ixbXhn=(fuUc2I$d79)G)@JY!#imyUdto7yF#>o30-T%7&0y@)P5N= zC>bb$m)*+OWrw{XISf-}i&XxUHk71MI77u-05s@X#ZSV76fWO9Tnh06h^a-rQzlGo z686arhI_9am13h95mB%6(4+|hU#~q}J>9YOreaa&)rFB9`g!gad`wMS*+<;Dob+k{ zXZIFD--8_s3@uI>R;zQAlXpp^RQ`*`oS(D6g}$Dt0TZ_+Zqd$jlDZ!#)0kP3zuS*d zQ|A+)2jVGI-vaRdRQZmUl8>=i4Z5G}*Org&&~>Ee3@@Td145i{9@l6(2coYEYJnox zXkiFX6xlgsWEOcFp^bc1IcdM_yzeex=%TCgxg{kzdb{^=E4WZA^I+1*{rpv&$f^BR zopzOb{=(58_!=0dJ}>nw`rpTHjufi3E%CzofTuc()&mN2r8oBEQuSn|M#!`X1gL@w zm~w>_sa3qX=MFvsEpZLix)>jzVKnUB)pjc_@74e{JdS^FA|5l$1R_xJIezuEmLQ0PyXM{ovcg#laPwn9(9JOtbakvGqz0fIH& z`O3F2g-*^NQkuM>L{bTOPR=^PJ=mi@cy@pJ?n(FlkFE&n3}MV$*=w_^+^>Wwtu4>uGo%6)@+I;ENe&5x5G?y{vbV&!tf;emhITUu#S7N_h)k+_*rk}X~B1L=O4p{ z3U%!rR^*99S^j1;5%#{DQW2|u_09oll$Qx-&HX+g#JR|)Aw}>bk@mdh%{K@3YXEzt zg5XTNf&FIkNNm~UgVnLi=7Iw1z9C@@g!;$E>xQq&(Sgzmx5;$A`N|htAcFaumxG{J zCw>p@!QHS-K#iq#RFRE>3v5d|1)d7=i^07 zfG>Oiee=C&ixzb>p^9cz-uZin^1{4G=ehQusfJT$#2_vt2eR4%vUma*@~jcev64<5u42S>OtlnA=`_Ah1{QF> z)mce2T4ne#v#4y7R5rJ=2pi8-iw&JLeN@`y8Jg&j=|dVBD)LsDkNav9a5 z{DNptcmz02yOh$l<2TIy?yM2Q?&0Cb(sraJw^|nOhHV~|N_I3%VU)bBqs+znGg=WU zY?;4acfStr*dUmb{-G?HobR1oEaVXLP@_xrzWUNj7)8%QOAyC;X3@ti6*c={oso*~ zKe&3v=&q#6Uo3b7@7nl1q0>}uJ70kt_OndZ&u`gASG3%xg#Qf>_(}#9x}UW6T`ar(xx z!gh!nRrgMN@Q>u_>>GULs=r13kdWBu=V}=jUguR}Dg6*Qw!;Js99rlNjW#AVo6k5& zacnOIj(RCHd=SX`M1E7w_KJ`+4ILJ~L6TwNB;;wuCQSv1EBI8ITRZ+!LPE==G~nbW zDx*nP5IGM7HQ>L|Y_D+d;h-w7vY;|W=hwk`dPo2BuiB`RStO)Yrd~v z|AI-H(rHxwZ$aM5JDtS6XcA~m!V^#sqY9yqfyXBsn^()19$YDW`z5URTUw#7W*8$8 zdW|QMN5K&Z?CT%$g?x5Gb!>p0j3>NMvEb@&E;m+F8>nh{#Ty1AWoamO6+Fcm%ubxl zYoNhd=;#|B&g3od#hSWqx^v+|1}h11iW4~?c$*6Uc3F{wV8*+)#g}xNVzL_lKh1cD z)6^sKiwE?U^rUnM1A!M;jJ*1Cm-SGqRq((x;nlD}B+J#nDHjG_c47>xwwbX?HY3xi zC5zBTM)C#r34$ssh9f{G{@JVi*7rTDTm%F{#VMu5K?S$ z);eIl{p4V*&_3*&f`Nz@3O1c^tIkyo*iYA@X`8{=Kvbzn>=1ZqC+R5|tJypn#GbjQ z>}379pc0pic?kV#sfgofLm{>Oigw4VayCD)3t6F$uJZH|c6@gSUCxS=gEBWh7$Uuo zC62TYIG#{H8?1AETs=-b$g!d>I*DhK3zMN39pM^P`TxXS6fB+$+7;!?=MGJ^44M;Q z1;h1WfGR=rtD4RyPz4PFf%vzkQ{|kRCFS1DyHPW#kj^2+c~Vm?Wswx~cf`RisMO1= zlP9}IdQt`@@^Krs@TZ--{#rya$jj534J4LHmgKvyd7TxAF6%38#t-u8j)uxdGgS)d ztk}-)yh~9SjXoF^X%$70sN%tSA+>skBEe~(i4Ag5hER;`eR$6>SKb;bpZ?J7f1cy# z|I$c9=J#?ZZm>VORR7XBC16+MQ8dO_qgRHax249QYtl&$57tpCQ$vyN>SW;oZbz&4 zXV+%%b1PC{A;H0X{z%b5c@gJSIwXTPV-U-r7oT=Za5CL?CT)pz(fY8&?T z*X!8OMN~=1?Zq!I@+iKiT zs2epowEW(QPF_Eupi@iv_$DUQl85UYDg`WVFPB=@BBvHWP@Xv?;P zp2=kE0}hRdmJQ?0bY(Cc0~g+4fiwMaGdL;ZuUSN<8|jicPypHq1_HX7e{_Pv_Qd%> z=n>ZShzx_=Z80&{hOY%xX_1pk>MF9vE3u%WyiFwpnR(5V&6%mdKRW>8cQ{Bb!y>+| zhn=yo-doI_DbROhAqV0Ym%Q3@rPq@#=c-)I6^5%au<^u&FP!+ai4u|@5cksf$~rp( zDe<7*^N(RJ`g-L$0tl6~_+&|GofOhgM58VBk@nc^ zcV*5#Nlmw%?qUBtCNKOFURc;c_rKc(wNKypXFy?D+O<1|T1%OgkQq9XiIVB^CCLj( znPw1yWWjhI4=+mKXp5LZYMX4*+{^8rbG}gv8EM@f&0h9y)&_j_&#%MvR#)uK{9+8$lb{JSfs^`ypM#L#2>D3N`~?-z#CTdrL$BtY0G07g48MQ zI9OcK@WO#z;JNwn9^K!2k3=ng(o&Y;6pcQ^S25P?CC`?;yJ$U~E01BARDLb~i8$=e z^ve-^646nqmM?&z=@AF*Ovw5HLV#WR4jMWjhUO%A0JeZgFz&vDw$aLNcIGL)f_%M( zv1)eY^>l`SgPX3_cVQT%)!5j4g9mNk1@`|9I9NzviZB}88|3@ed4ZNXutM<4b&gke za!Q5WwQu7(=*QQSXNKly81G+ZyE;cYJPN@&QmaZ+`OQg6sOAOLzW)R*{lf3rWzvd% zBNnG{SDrWnBcwD>q}8KZhPk_g33Y0AD(if1FEJdQ=%?Eqs3#P|z5fX3IKdfg*9805gsG|*`;u}_QaeXrDs*l5H zG@GuWLbWUYsK=!&?N*D<#YOwSk1HstInN~OWv1#j4=T46biwyHx}D%l-UA!pg37Zz z#i;i*Fjyg$HdfxxyE!=ce;`5f-FPgU`FtVrNtTWqJ=>rDy+j{-%vs#?mOSQ-=!UDHzuyb#-#UkCn~)f|^B%Qu}ZD!5yNrDj8Wq!9WPxpKRo ztPyOphZn?&WJ>SmasS2~XW=zbo{X=L9IGrHE(~{|-;We;nc|Rc&|L&1G+2qai)Q+j z%kq`+qo)fT2b=l40iw)5aOU6lP(u<@l$WO2sK$Z+I1<&VK_Q^`_igM>Alqk2CQ;!K z(;V;6@AYO}`)cpv#FZ#L7b^e2q2PHhZ!7lnwKt}ns*TP8HtMo=`Sgt25QS(=%mR+2 zaHuVCY5(8Rdc5E6z>m!(*||}E@??k;bTEGYX7q(K!S%J>@mlAzgPM|!50L&yi6`H3 zJ(3uY@Owo2k3D?+!LpEMLH>80(4p+{k^ggxUvSkk=?0mgIB{SLPz!PRI3dNW_mlSV zm_mLS&^qsW=Oy|>i5U&9A#pe;1S*>o)3!@NN}Dqnvd?vRd@L2K)PBn{rXi%~%{UE~ z`j!v30R z+Fo@2`nLU#^Lj|#cQKUI!eNZgKTn6oJsCM7uu)T`#-*yr0Iy^&F= z^1O4&cf6xF(qJq#$ydwyn_fB+I53z4bb#9cjA1j2tWP#iQ%@tOn(m&@(h_K4`Hy21 z7>c7jVSH{K*>GVrw7|*8$i7_DD7#)amVw~@ZEbXETZD#w4oV@!< zm2}&TU~iSp81ca{p_k41$kG|FH_r(5^6CJ;+GXEI8i?7B)*jS3 z@u}Z#Oy19Syl=cwd!&ir_FH7o-W(C#&-*@By{?|JUDOFY=%21rFk09$-7QL1+`z9@unVOXHL@w2O)2DFpd>`&;8DIov(b_xF7H7oOhWQEN4WYG3m% zq8=g_*C+k1%RE%2)m|-!38S|KTby!2$<8U+1Vv>BGH+ApRj*}ve%Xm8E&)qxBpawE z{r5HP+I*!vaRarsxpDjzOKdkf&XhG`asG|FU*D->Vsa#`^^lL9);Zi(vBHe*qLzE= z>2APen~sTx*7fL>6xUj?N9^D>%@O!LvoGIZOR6mLqxy59XCl@`7h_EWGHXW087Bi@ z&n4>KGl2Dci8`2=MEL3Qem$RRUKCX7tFOE`WEek5q@$3d>U4e$E*6fd-i>n>L$DQ< z=xx=#_afQbe7#5dz14)5>U{Kap|D5O&qe!;$B6^ayKk7#nJF_do?n@}#ti6CZ+C3p z(qZvP6BKg6W~3joVD$jrt_UcZ$^3dwsX~9DK9(AEzrVO2t?sCTa%_U!Nr9E9!p0cs z$@{8QgFfhZ#JK#~Y@5TDDf6@bs()QS#1;!)9JPXg{^WDtaDJeYOVSLa%2d&S_Je>+ zng1!&IafCP3E|g{yn(1i3~{I?Z~A0t^v+JW@Wuq3`-lAf?~@TGe}xc-x}DL4;$UOP zMM{ibHc~wspsxAO+_kq6okdrR-Q%f)YvF9!lhZ;@d~9!xtSq|Re1zIlrR$(AS$f{R zji`~O(_$gN9k)@96>j+LO9ptO;8iYCbSzwg(~14(P*BF$n&N4Hl)q*Z;FslQ4@o*u zW@C7|OecK%TN69u$cDOLAqJygnV&$m)GAEqOy>RHp3(NQiR~%mzZgH1g}q0PO}vS} zwQd*Eln>^X;#>Yu=0*qbLYb0q7GLW%c@7~iIOI*e*+U9Lyo)8FSw z(oWr24SA?2mZl5u?QP#mdcW86#_Q6*iPQi5x2Oo~aGv9m-jmWX&1~{)Br%yk0;}O# z{)OR#9*B*ek(Kp@A}Mm9BoJS5N;%abF=?e*@NDO3>bkCB*O&%u%BOs{ndJZ9@9>b_ z2PznDC63^*c4{zHHMYzv$SX&`h;0M?lEfaE2`NfRGRc1zM5d|g9pKY3vEzT3bEz$0 zSja)>G}PexK)+FVwAr8zJ~`OWneAAU!Cd6I2#L>_Z9pS=I7Sj~eP7tAvk^k9SrlKR z;2`*!lgs5O*(b2opoBpdV)&G3!8|ih^une72TJmhCA~iET59NRUyEn)E2SJqxJ8cW z9;H@esa?|xO94>!Hd$jj=-0v%18A}@rxnVDr&rCt|MjaHVzt9CVac!D9X06RFGie; z9I&X8vw8Nl<@KA`GG8)j5DUx}QtI1w-YT+b#E*|6eg_Hg@`Rl$zD5uSctYq=oxc~M z?$Q3JC|l{?V{#wYSngPblPxP44!F5kDFdDb>Q(D9YG3nspGVEGrP?gHAbW_Igw5Ch}zyr`mo zVFeZ#RF?74pwiGhZ^VD0znh;5ttt}F{Wst`JIHRoE%iG~1XtEKS@4*Sd8pe4v@&NS z{%QL5NjtQ-1NNrwrE-0bubuEqFRPv3GlY*XrajmE*aN}_g$~4$f+f-f8)rJv<;S*Z zXPh27D&{iAwxX@+BXfriBHEp4`|hUQ7QeKTdzSJU24D`vP=3$(-x*cJgg#l46KJ=w zA@vDw?=x}KtY~X|da$)jjFI0{cUhY_)d|Bho1|7;HsRmLg*2@^ z=dAsn1RHPYMp5?RmHWRH2`g2Zl870AoXCU4Ldsmw7=tu}ejq5YJq8CDu%v%?<3_-i&izhS#w6j`dY%IAXQVIhmB9 z7^`Hn{Z4|xIKu4Ka1LmTUBF%*cfbsoVmi zs!@;Y(XTJMI>LmRfne#;Lx`}vbadMwA$o5g8Q+j6_9kxS(@*P8r9Ee zJ|^sOxoSH;kzE>dg+i^~TV;f#Oy0%o@DG}|)qkvMXij(B-n~f1f-ct)d6TBKaTTW$ z@X_lH$xxE^__>Wp=BZizXbvJK&g2*5Xvy=_8!9KCp5*16{sLB}&=egIvV(R&=|!Sq zfgc_21wP2VJhfERI8DVGdL1#tD-Eux69`X3)0Zj3PgZybh!8U z{Mt3N=Go3fi#XHmf`c#1IQ8MGJU5}#@qq49UC96Yb)921Ir$4IUQ?J5hR3R*kV=QS zuGguGgI5x(GM^1bJj*GSAKa~D4%M$OMT^&s{_0Y2GQ-7)USjVpx&86G<###)t5;)7 zfq307m+8q?QSI6zUo9<}@aWP?&{c98QTces2H1rt%ZqUic zz9-4fHy&zWCl6qI_a*uklc-(0J`R}ehs-2E*421ix$1c*r1yzdR*7txQ$LK8G!{7_ z#M(=2Qto5quEC>ju%NDNAU3pBz@?73Ke{@Yl&6(5`KY>d8s6ME+wp2pV(#z+rMSD( zqS3L9{-otKA>{(_oD*MzQ&=%A?sw%(*}gd~&ycVchohAI?F;B?V!T8ewwKET2b=pZ z|IzyHTdnrtm$~zqsYrQ$YIVY=G+<9|9!G}O9|s<*-K%0lx{%?t-;^`#}KNohcHeb=YkltO_5X-byr ztGStZ=L7zm7qclHij&c>w?-Ra4F}}6_VPHUnhMgE;uJ+G7GdO zkX17@oe^`HoTEKkq7Hsc>}%T9%8J&-kc$Ko^e;?4sPdgUU+SN~(}s~MkT(2qf1jNV ztG}kf(T4L?oJllv8-f*fQA4;sLhq}w?%^}hFRxexop^Qmz|gR65-=#A-gY+N3wzvn z2TB5#f=yt*DUZ)cBze1Ri{0W4yiG|o!tHa75HCGng6SUSos-d3y5;|i+pT0-{W#f& zw9F`v@d-u;I%~IX^=g0)RHBu-+|!TYi}8_)id6Q5VO5rTT9GB4I6Fs%Olnzoy90)? zAz-H@V#9~;=_$kYnX?sv0=IwW!V5dpo@(i2ah$?{ZYT->bv>`xIh%|Db$2Bfvo`km zXg6^_f}|lhSt6zw?CGb(0woz7y01AK?-qjBqU+DAC8M^5H8lCRMOeSYcMtmHrm|EP zmOd4M1o-wZjPGgebi$J1c?Vg|#O#THVBX}IzU6Mq%mEhWG@~rC?nKa6+Rcw|8!)>q z8hh1|SYzru2vW$48-3HnZ0p&u&(@Y<;T(hNmOlEDo9d{RqM14b;<71wUpyd$qw>5j z=kO-zSlpP~ys1+sh-WUJ`s+L`A=K<|@frOP)**rSmPURmMMM*zIwV;) zMH;@vs8rde)pV}sQ>I0XLT-9g841^4P?X+l321X*K9G~HutyzS{SY${X};4Ll-B*e z4~qx6d3oR_%en&AMW&SFzYIrcIcvL@elO(Z=Z!z?9Z`1_(OsVv{)Mj4Rs#z!vmc715Eh!_Hk5x3+mRJV^M zwH}A3R|CtBYD+Fm$Y~I#PMIxQ_-;#SL8bn z*${cf%8a?uE|;yL!sEXfU<)heI^;8SS74cESxv{>h8Dp0^ZAz%BSyD!Hv;JlP$tcy zn~_FEP;iv5eL!F{jO@J07wTJTUkGuD1k=x4+Uzn}K7mML!|(?OqG{6e-c|KzHS0@K zWf7t&uZhhqTiYXN_N~!Tj@QMI&;EDhRNRkH)+M|nAjK53U3OizK%H9`xhx^)=Y5CN z?03qU0vClSGiDIv_>0qkU2=hBtiWZuYWjY2N9M>z1v-bSESyU%R*r1b+~K0Nh5^@E zWR1|QlA%}trP6(~wV?VLP9%eNw<4OMXYpx2k`w!`RQ@g*id`7DiM=>ocKVR;9uqlz zQq121AtxA9h~VID@m}hRw;6rR*&5X^1`_wD@Rg^Ehk2~LOe5@6kR*4d1sjw6cxye9 zhEBKK+owUE+V2Znb{cEVEY&nrj_xQ=xTH*kv8;bi%VX$cJo|U(TBBY9**}h58;Re{ zShSBz7;NdUygpq_A@@Io=e@?#^)jD5XTVRDDu@gf9BLfv$oNv_CU0t3LRHUJs6c(%&7Nh(joDKHo+H5VU)h z#r6=o*My6-%90~BTK=*}IpDSwh7EW&WzM9)l}2BNp>;EC_)te%bn$I$bwAXOV~%nj z&sc{70$5ZN&bh43Xx0IfMM0{;IV(*MII;dS+j8K7lOW?GY4;Uu!a-m-TS7Vq{oogVR|qf!``kIgzbEc`maX6VW`Q zkgm{jojt9wukLadJwvq3o%;rMt4w21K&7aPItLE7z^s9|w%R zcxPhq`?>e+Y}f$TR{22{hHT}wP)KaBp3?M{@TlEonBj;0Z`V74w_Ht~e1bpH51AEK zB{)_i9bRINLhBulKCGA$gNpu!Oapl0=Ii^>8#9L}-?aCqscZ*$i|NbK#q^qf_Bhut z+;P3{cHn2}d-^sVL*-vq7%;05B5jrXrWu6C&D!f0dOVqfJY>h7hWGEpq-J%fc3T#uv-vn_Mrb@klZHU{R4h#9c%%8fm}qhISNkjTJguoZZARSHwF_dnhk0 z{TI&h1{XNeJV*s4U-BLu%f&z6@97@tZ#8| zXG7m0FiXd0^(IrDaj=6Bed`q3g;?mVajEu zUd8nkRZM@=L)QLPX<(V;+OGQ+2*zPk7y09n*6h!7tk{P3Z3{}pDpuX;y&8EZ6V^~XBd>E3`%!|Sf>m?7-PuoM1<4Qf`>O~GH)2rd&r(_OgC zor}A)FXLU<%t}k??&yk19ZejP4m2^4RKa*|p5t^UXVMfzNiw$~E5}phL3o z(bXnVFvIz3&f4*I9>JKr@kRo<%E|_`)Wqdn>fme&59Qc%Fd~g_vAb(_^y5^WBJHAV zKMD^7cXpc8I^I894wet2@;bnj8v_cnE)*y)iqH1le4$xnTA6eEahZv|Rh)WU*J^qc zuh1;KT`m^cV@^O;(($71g*iYK7+@(wuu;b*`|*#gN^BOf+qXFgy2#>=)N;N0O3;$Q zd!dOf+ipRXV_`7bf7(28FJcLkF_@ijz~o!}%2EbN&VIgppk zSdN2GF0w(3wDpg+Xsc5ZWrO@XelI9e!CI|e)h@bSZlK2U;|I_M3E`)B@y*B`+nEpj zO9x#iURs+TWxJm`+k@;2RTxfcyzG8$S7#IR0KqF(K}+we37UT3w(AuJbW9X-{zV=R z67Es$B)>u!80rc2={5HwXAEj49t?fUXi_7yUDPKmsF3Madxvg0$3>i0QtoWeuOtg}7aD}*x@7#oFZwd`Cg!t)i5rIT_ z6IG*7ZZWq?lg?k70A(nlHeggt+OR>1!PxH6pw?bagMXj7BwMWi6S|^}C5t_gJFF+G zJ;kg*ZyuB7Sf9(McWG=C8fTO>rREL~_wFuFtXS3<#z3Qi_{t{`Qu5#<_3Bk+dF0C( zd9+F~kZLad-MpnuA?C~?n=Kulws^nA7d82P#Ik?UqmQa_Niv&ss*>#V^ytjg>=_Uwk9hOF_ zX`D03WMioYi8UceA{vgSAbCtuIM{7#Xd9vAMNrE=2(=O}NDm7A>kOtCV{Phq^7kzY zmjj9#st5Y>Xee5%o&@Mmk-d4&Bm=b9Dru6nAu7|I6nuz?l99!H>2ui!RvBuADI+bqnAtyco^!YZcc;?|gv}0fUsS{%6QrRwiRE8mP;ZYUJ15J=mB@-) zh*F_F=rl!F`}rQ4Rf(?3Llu4#FCxFLrBWGbG$Ad~FW=1gQ$n-JmOOVSa&)@E*WRK6 zkzuy8+*Ud$w;$Rjzn~nX2$;&vGa>d#vd(h1{34_%GLHF8JPyYRGOG2EB;G%FiNf7H3d1E7P1M*2-2Yev5-ZB^R!@v~ zY27|q){!{lu1Ei+vq1JzNII@t^?Sr0Cq|SSdaA3qJf>*m>bfl*x$1Z*Lw3+q3N;V9 zIOKeFc+f1GU!TVbj8}Sa6+#x7MnKB4ODFOqpL0=}xHt{jJI+lVvQ1UKsbnejCR=Gi~iY2YO z49M;th=py~fTNLH4u?C7vFS-CsDPPwcuM)s_Z7l_H1-y}us2!Jj3*g8iD}~MdI>Pb zETRq577tA(|E=~G_Ekw85CPM~`bEzYfR&+0!BU;$aW0`m!;yC!!l9w$3Uq&#j>sda zO5>#w&UEF6@S2jA&aPcpe3SqBuMES6qqM49FRH4svG>v2OZS7s=QEl76_*%One?wl z;cwudbMvSLAcs5=yn!5tS=>AU$OvSp?xmf27dyf4F;qhO{kau#7ONXABx99rREA{W zp(|XdHtTTB);*n1dP`MlQnqFxD(g6OZUWZPer<%s6|4%shzimTMn_pKTc}E>p`b)K zleqJ`&Z^{-;O3v@)7!dM^#z6*1K@jxcO|m3(_&TaRDhp2d6VWmfH=N~6LPX|{uLt7dwuMz$-@+iA z0A@$UUBh{wGoyFJl43)v0O_%(L%VRw>(VsD6wD$9K=`@zw(ap0YV(((-Y2-gG=5~eY*7UC_FfCMI^mjgz z;$teTyI*Wp9;@$k7OsVaYH`7LhpfuSEU{+01qpwV2yQ^D2qoAQ<&m22lj#rRK8w6v zuc57TewYBKCv|io3|Alw_(diXvs?!$6-)DqMG-jF1V0lCw&RN*oFz~`4=~d)6p%Ry zFcNtPc#(#p?-0pdSa{OgF1TJfQ^glZL%x;K2}}kqZv6U{M(ja@T4QAKCYj9n(xhvl zDN)+8c}GMPTFefaXxHp+e>GT%m5-@d!U#g@m*W(ROfJ(ehx}!|{@3yNwZfh$t@0qS z|MR<$x%Mg=Oh|ggxaylS^s$jRU*AN!%34){bKPGZT=WU{qDpUnuSjX+uy(xVWl4jz z#1#2S85Yo87`ARW15qoEX^`Nc%O9 zZ5hFIYr!sW(s4hYkOy^!zo8Y>>Fybuf@FP$uWt0nP<~*Xh!~#Z^*3l^4XJ@+9xJY^bbgobYhY8C#m}YD z_!`N{U1Gc0M4fZHBoVhy7XbF9s8q{f!t*YBZz$(&XKJogE^#;CSgco1kh{2A(ded2 z%##Aa88l*oakNt4xHT4CaW<5&aoQiOTm=qZQEup=1srT_mCDgp_Dt+Xm3u$&v7G?5 z9a)AwA6PFIhe$y;STx?CIq|7U<3?ARD%%ow%?MrP<7-k0`*JbmB;5fn>Fbv|NX4LA zx9m`A&4csT!dmrSS}2GFoFQb-X#N%{o8H=Sa?H_--jBs|Rq{)691;`-$|;m)4JdmC zk}mBoKF-8Pq<>7BK2%HxYN3~R9KPlTz!p>zAgq?4LTmvK9RF+m`zN`(l>tBVKQsJE zLq!;XqoJ2Xb&GB(T%2ic%chqsv)&wt!|<$+M$p=J{x;T(&!k~z_Z$kx#crphIhG!q zh!`(K%3Gyqb|e@buA@#kdkq9DeE9BX&&h{|1~DpKbz=%x?t8<-K)hfBAoA|B+xBlA z#dS2rL>RLa{2oboWaRgBNORxXPSO2d<&XvnmmzuCW}=zIx8_vb#8CEN^bF2(mPX9-i--4l}{=wZl#8c`#Rv_3XAU7+Ht1T)O>#?{)RA7W){Y`w6&81^6>X{ z^F^LF0cv2T%~*vW`YZ>9DDrko8z?J4M|&e7O&7C#5B#`dX6~1nFs^1VWb^|)l-=^O z!Qx6k(X%a`-dy;gP^gCO3{U`m{fipE;6%W#-q+_IQyOnH3|2;~KcnWZmkuVl1&qdJ zNpc52$QbKw;TV&m_Dso!%_gl`9QA6)!ekiP%wbub(OpD7OOV|?es?u~ei@c2kS?hO zncvv5Z71u{T9Id^IzSh?Se~`v>?lC2Lf-CB(6nAXapT^uVL3WHHm9joIFWS1JvBvF z%VOWTu#_prZom&oOyjqY{*Sybo-a=lZ>6beTfD#(=U8)I&$7|{$4YvW43$`-I| z-7;G+lLk+lu9Ubugct-~8ylGpz^1_R5k!04fIWoG5C8CXyvbzgS_e*OfBqaA5;k8m zIMub`2nKI4AygaPg{14K(vspWQYiCQl%*e*SqF*FOa3cvQy5?tph=*7I9r}pfN~!c zDH6n^E5iIVm_fx{IEz*&JDq-Qw28hRb%wy z5760ny$%QCGiRutSSbA>64T}8uijGF8yjgd3mxsHB;+G^iBUFPU!JRYEq7h( zgm*zhDO@}=*WljNFEvirI#_nL-Ky_fmNuV)eRipkdB#Qu@5odIL^~z$p9LQM?S61Z zt-GHSI9BM?Hc+LmE(Eoq&i^d3?G6n$FscV{3n&SvijkrTJlpB-U`j}XFQn@PU$DaT z3SbdXy~f@Wp@G9cH+Yw7#-)>6v>?B$?#tM6$Kn=XAEwL1R+#fBskDbk2UAV;Mew7x zUHMVsYLUDb?VVTSUcdbzT;zF_j?)Q8aJLPbR`8U{%R~@W-j_1ve=o5EiG5$_@Tn@x zB-%wFx2>A#WIx=PG3MRd4S;s6%C@g9x7T}Hf#Ym`pV_c7o?2(b+-lFWUMpwB$bOsy zTQ3P=`Z@ZwN$`86`R`RPoj`E)J`8i$M*yjFZ@-~dK21%Lt3rA1Z6Gf6*|&Hkyk^wl zPu3wicpw{u0g*|gb9p|i#8$AqhI!4mkb>r4P{B7K!ivbCwCr_L#)T&#J}7`s4rgrD zUeqHkzx`HyEm99+&RkV6Fsyyr{t=*}nSH2Ppd*!JOmDOmO#L06lohD9cZb`KTy`1v zi!pli1NYd_PEfZv1&j1A$M>Cc**cFcTT*^hUE9fpMx2js2uG=<(+(L^h0;wNF7Nz=0-?_PrA1eR|ITRo%s3{_qqEM!>G*P;>MA}b6ihvGCyPkJ~53w_yeQH(F`H} zl+o8^pt)6N+JZimx8~L;kUqmGHJhm6<_;}4O4UKjigrZ>xUA(@8^lC^0XDCylUm-U z3PeW|58{k3n%GunJG(!UNXV>-_?8LgE+l&=L3>U*g6yNp|9pSm#19C(9%p!aUz1pg zY7GQ02Z<{X)Q-AggP$w2JtIKp%sBMk6>xHqjG#!I!9Q=z1DH`Tu6M%q3IUa@e$PGen4HvyE_bZAaTRQxB z24g<`KFxg9dceDsnqeAe{(-@9B{|t;?@su3POw;7H$`){lM*yHtQ%tmW#+I$&t<8! z2r()omodA)d8%%IW6migpmF;LPdGTvr~6g2pjFv7M4BT(?sWuo$WNv+QcEx8rn+ISK#RT~!2eF3xBQ_t}XF zRAh7s@D&ulKj6dnrm6 zLDc-ELUl!J1g^3N>v={YT3NbUZi$U@Se4 zwS6^TW)5F7dDM@`E&R7&3E}jfVcigA6g{7xagU=aO(VNani<#>NuA*NP>S2%c%`Oj zRNgk>Q4Nur7svru-d2^_i84&+kCRL^FCN_|PhRcPbO4|YC8Kc*fUjg{MJq_r(*Xu+ z-u(%gs@rJe-#%Tq3y}S=%0>-MZd3(B=1ZqHtR+6D!VBQ<%y&4`Gq1M`-W;XrHo&#J@QtYeXVBZBmQ0y&QCK_$kShYe%PE6-#TfwmrAFSHxjY zuP?!su@<@~zI8bqt*rh#`8+3kAK@SGZ=K|XGx^a?v}W&bL4jD{53XKv@Ih2p+(zGH zzddvq6&V7=Ki<`cb+YFxsjuKsPfAxi&HwzZ+O&2)rjUJezlxR}Kf@HgwUJ`1j_}k_ zoxWN8c%GWJqW7tugmR8#UCejLQ5YsV?%gnyH}d>mc#&OUk$TD&2XMb0{wWsEK5O4j z0B}Ng-&Rguk+r_STWu`w!+eQe? zERkbfZ8TN9cBw>3g$%*PJmwTJ$h@Wl=B(V+kJAo8pGE@QQ$It-W{KN~-II%{TC2w! zzIT`%e|REVL(5aLc=>-VL5Npu%>kQ!kOYH9#YCU}3{`63tiNLZivqll%UU+LI=}3e z$<$vpTDnsYC;T~I&q*YEq1A98PvuVZ^}H!~O8fR3ve0oL&#~YPElTWy}DG1aBXs<~LY*EuYqskt&Gu-M}4$0l1XoJh`O^Me7IzJq#$> z+1%vIBN7jBF+TaQ=(5-5Xhmg!#jf7;cJ#!w!B`{}dzS_NAJcfDVCP>8TDTUjvpsfy zz7npTz&HBZb*p`f#{E{yBkrr0F zeNqQ2XdhRM8Y`$Bri;k%o8|r)JK~FY(jA}!e8kYsJ=#^nF)L;7`S#I@eDu_W4Ch}R z(9KYuX3KQOnJRKy;6l5--G?PQ!0$e>en2GpRmFnT@?Og|epKx{;lLgb;w9qOdlSvm zMYJ+Os?0k4U|iEx+syqm&*@Z+}wTW##d?(15IRamBKV_~ob@*b!FVkX!6A)x>inF~}fR*G|n#Th4d z(41KbxSsj6gOTE0EYhng=GEgOWPp|x-!#c-DzkYdA|>$;1`t6MPLWhjyB~b(3rf9i z>DDYhR-F}IY~*5g@5Wo$D=2SRL-a&jKSB=m?wbB2f4*9YfHY=4e0>X*ySW@ke#`3V$3ds^!x^lHQ;e z=+*~WPL($zN-+}_55t1O`NiR%Zo1@S#2z2d5cdo&?ZaBS{}66D4HQ1W>l5b%XP9dK*m*x`BSuU9!pL0x$g*JXI z=O9Ksp@`NTSUNdB#hrtOkC6zUR^R?wvD4DnsZphtf1zM@%T^td6iKsY0zc%?X(IS|K%s9epR+4yn7GpW;WR=>^!Kash_xQXQJz= zBF?Mumfr`2Y=0I`)^}N8DArup&)V}5z@C}*G3Im&PbzvneP~wpyICq2PqC8E61M-K zn~Hh{MTJt@K2-_M*cu$$i{%Z64m4Pjt0;r3AU^tgEx0l^-_AICts7ajV+x4{WmB%y z^=`zhmnO1B>KORU{W6x|Cj7*IF>iaz4yW38jYL5uo8vP4e-E$Rr=vz&jZRBXV(;)4 zt&46GM;PG?OZaGf`H3eYTex*s?;pY3fBg4>jGiNGZJNLJf}Rz3<`m!A%bhgNNXN1D zL^96JtFr$8Yqa^AJUErT9UE$Bq(QNlsA zFoOaa(TYb>Md}LQyZT)CufHJ&efbD7NgxAYkHSi*6k>3$C$l!_U;W)!E@jFS&Vqqe zkDSxLeja(UR@AW!?x4>P1ZvL=go|(X4(Y4>$iD5sea@DPada?W_0t3Re#N|g0Jos| zF$VPhwNSO~9Of#94l;2A5~%_$6z%X-U?5a{}y-!L27#M?x4vyY1bR&3svc=(L&l<=n@f}=b}bp*0E zoG(ofusWM)&jyIxlj-w4BP5;rcZ5~>lGz(s(8NgrCq>aJYKtkkN@;?`o24RhITY68 zfcbJHy0A9+?6h1knNr1(PtRLhRi7RK zV}=B4tT}4qFU?CQLB-HS-GH4>0np63US+vFBQ^{JLaQrPS%vKIhtB>)6xWr@&m8+3v*;?YaHGZ9YIbS(ybT#vg zaJQdDlATByTQ9#X_G$X)9N;|UVzv6?g-^okfkSt|6;pI^$>goEDrdu#-`4R>#8a6= z)KKU%4@~oT4+JGY3Ph+k)4bC-<-Mm=98xEn=S=|jP%R~tT-41Nb$xt`A9-m6p`2;O zqA`1k7wzqp$1mx7l)Y=VP({I6-pI=fJ4%8>L;-;3UO{?WmO1 zqGeE_JyNZYo!jwf#X&gs7Dyo`-`@(PV#lEUqx`M07m6KOj+VCtM&~&d$``M`xdW4; zeT?8hta9WDVQPn=!p_Qz}o|+%k=3qhjSwNoSn2IWQaF#PcAY$3b$Q z)u6VXZ7GnQ_1pyyMyks1?r{umwQ4{3IK66o!_9UoG+4$uXsG(>d8}NFk!|!Av500U zfg%Y@&_D(N5e#ss&br&K-H*hrMu3(p8Nm)oHCAS#w`f%;dN0`Sj}V3^xOKjN zm*EuRB_3)=ri4T3uAX|}3}_`PiT06ZQ_Z{`4feh+C@-nEO6%L~O5EwcVrWh3C3~e& zV-2M&DIO?AXKvmNQ}0?7eGm31CfKayDwJL%u2w?B5FvZ}?_asi*PS9hfU!Qx(X}qv zodw$o{ClkX$nP7QIou<@l;#bf!q^VfM_;ZEB_c;Ef7En1=l4lI*^=ZYR$)l~HFX-r zT3(r#(Cj&>fxGqXMhc_ZoWJ4l*p}sJRkq{cM};%^ zC+B8VArde*Q|rDIIi-9v24c!T*7t*ES0jwz|OaeA9G_>m>J!iZ$1eFc7wx%Lz4O5V?7FzrCGJC`xT;Ca*p?5_; zDTsmtCCOjP&y*Ss@hz$ca~{0|$RUACLEEvNWrYIXs^EgWmHu`dx9!bj_tszJBQVHy zN?uPTp_Z_q6K3TbZ#o*zKyT9HzFMWWBjDMkp3oJ#VQZ)3y}%j2GOKu)Fw_1XpX#Me zDRKB#G(&RLz0boy#0NFZv%%G+jL0c<)LeE2dy)1eyl zc1l};f77qI?{V}WXnab$v3{BU#8k2mX}D46<_w5vuGRToeugev_uNQlI{W#SWf{V3 z!XPLRlF!WcbWU)YnNlG{u=M(3w3Wpn_J#jk-Gs-dpN48sM3K{m3i+d$p)tJx0@Jml zUj`Ulm+xGMWTs~@2YvH2$bWNb(&d0A3!Tqz zH>?X(K@NL=Pj}EZZ?^WUHWpimhny5af?N5~axjgz z>oqZ*T>~|_EG{v+zfH>ND8hNce#1_3(Vqq6dU`2^8(LY!A9QWNGJ6S;RD$EK%d_?*(zcxBkg+S zJe}rSutz3*{fLs8k}{q;FhTC`Idx_q4o>x8fJI~sM`5l4t+byycUGWJeRon&iXdlX)p^v`xLE(9Q6y38g%lj!c}im) zl~>0po6O^g2W}%5+|VBj9I+1aTST|uT-sE8tzQ)KCg6Dsnlq?HLQd;ck3D@S6(|n0 zugt|*nv<1(Li`=3GWcHEj?Qq=()RrFzwg=Os>=uTpiBf8r*qih^UQOgR=(~We{ipc&=!DrP;_dDh4?Z)o+kErTo+h40dnKM>F?SLT?X2KF#sAIts^&uPWQ<59MhuyX9$zJ z3bLVLdw*4+i?dgd3#CAHIkQOjc3Q4wFiYungdC3ZqUGnj? zIcByl_ekl(JU6dqLyM$gH5CiqLGKv_>Ed>}hRwJHa_PBeRfs9dI8C^XKfRoHD4`Fe zXQX$SDcYPF%SlL-&YX3EFp^=>s8bw6O%(LKKINHC`54qqwM z6w){(@2H3N4?TjO!+FUF{pa>256ynaoPvG@ww!L$ZOBgirbHBh7FtK5eJA7EGlO4q z$qzS=Ubn0D9+Mm-=GOnVSZwV+%vhQzz}Kr%!`G zO5Lp0q4xEXb{J!epdrpu3KplrCa|*C=UaO(^NI2MznnW=a>^@-yjyvNuAQO;NxX0V z9a+iu%u4k5r|MdAZqOf2oF+}^kD#(EFOSsU_cbMGkZH>k2D+@kAPWK)(kLX?UZ&n+ z#RC-xyvozLyds(HdEhpA2sc<%vqXBW)d(`9EV3~ViCu*BD4 zr>v<$OeOBn9c9Xs1bI93_gBjS!ns)B?R&uSaGMpZG?}$b!M?_T$n6A zx%2d%lc+$dBQlf^ytleY{2iZMlewz8s{u{j%df{G8J!bB3;0-WWAmnfj7S`@&nb(_ ztsLXJ)F<*NzJi>6))u<|a)HOH`EQq|avAqgb%wxDf)zgarh2#$$ zs0*-!vbuz66C`)zoFbEHD@M-0c78WnF0HBwCXbhCFTHAphjkI8iDcF>l{F~FtOd@u z7JB;~GieZK6$mNPr=k8>xm)xOV^1o~cUV?f0yD1~7s;|S?n{x4QD0HVZR$Q_B;2vV zwFS~Ml0SIFF!-|DIV582X$d!h$kxy%d>Z2uTLa6*y%4=fO4TQhEy{xrz6B!|HohfH6yfm-4Xb)Nd?%G`Ev!QJ~X0Z{hz|zdhQvJph9EB#&)eT(gifief zJ>c%}aC3(2lriso9uTrIf@nMQd?$ntjuChYi8Do7+kFWt zJTXx1&$H>NEa3Kiq*6flQ$)yimj0drD3>K=I5BDVTf9~xFP2a-oGd!jYo$Lll{x5d zb6DZ#1`Tp!oQF4*_K!{Nk{gKuZUf57{6J0hLSXKAq!@{w>)HWJ)Vxv(kl2j>F1!B( z%suBErO>1Vk$V>N{rvVnUF=vfDng|Bk2A`X?APVqM9H*F+Wkq^KHwTjkKVInT0G%fZoO;Ujqj;%Akp~gQl>F+~EfaAMZ;Vhgilx z-}>rdJg<5#ovy&S+AF_1ore2na!oAy)W04(an=7#SPc z?{YRS|=_ZC)aLw;s>qeW1CjE;?I6hr5&TsRuf6;dVi<`VXqBdG({Nmn6>Yy&#*6l7G&8E zFjN$&FBBrGDp1kIB3q7}eyKIxrIVYdEh=+nrZsSUD1&5dziEogZ8cq1OjCp(b3e){ z=VDGU%{8@4UK%vB?G9GA&PzVuq59!;cRAly+j$0{WTjmMl}at79(T)EGfbsT(M|erkz=wnRGeXbcuKFFvwi_0Wg1oFR`)1=mmUwU99kYWwPGSV>yga`GLm>rycO|E8@o#U1XGk*%UFIMc{I5Ue?+7sO00rAo-aTN3n|5= zuv1?8^TExU-#=Dcu|M14N{R2zhO!ZHfE#b+2Bz~;O3$&8bc$EEzrb|4XVjqSi;71X zTh@=VqPcb>Z+keMgA4;cI0lnQMP{Zq8`tI~gUq%i`{?0Ir9Ve?PJ7VwLcZQ>EwG%l zY@`)e)F~_EWf`^uoffP7z1i&C2Kx2!7e?5bj+IZXLh!Zw*2;{iF>|Ht{0>v(oM4^D zn&nupiOSN$l0n|=F~z+LJx@2{9v>t~=zZ*X0W7+A_3V>`Q)VPq7bsX<~BQTbz$ z%)&lX)?=>cLgyhs8Yva_6(QxL&kr5?=2;}4vyjYvHYJo1>g#DVo?3Y&mp z<;r;+ZbkdpfsseauM^b}#;->d?T5idCA6b&qnR#87yGvGZnAq@l&rF9->Gb=w6{A~ zVK-w~6t~(8%gNxr<~w2!+}FNf4&9U0uGf70H>oDw`NB<8Rn+NA0~(u5+e_n!X6X=a z?wx+CbWlBSZ8tZb){!S+-_z?Oc9_AZ&8`hALw$T#!9sehV&Avm2}|oKUHjPMe6TR1 zh^&GqRA)Sd>==UZF9I7|O}YJjc5Z%KTvUNP^J7Bt8bB{Q*beJ;l5;tS`Gh`#9m>%oMACo==u6bP19mP+TSO;KJIa$f9w6%+R2-^&B7AAone2skniMM1a&P~jWKpmD1_$F`GB3yi)7Yvtb zpK@@n;#B_x$3%e&CMt!&(3*IBRCymr@~oSuCxY?CMD4er<$84@dX%kPC2;YpG835j zjxV7=xQl9q?#*f=S7jH0#Vvu~m=)MVYv)9e0XnIlVZ9m(@_a-&A1 z$Z>A`!dZYUcZFiK3NYaB|7FPir~D01)-a*)x-HP;>3k+bCzBqeV@Ob>RQ|ZJUC6Bc z5fSxp{>a)Uun)JQn;l9w^Vio{-%g?8P2}p`N0+5%8+$(pse_BBj)hF0&?ZxnSbY4& zl^04J+L5_LuJv_OuB#dk#y(l?W*e_;!%aI zclymI>E0vW`*!Bg-CEO1twxb7Lf!QMN9ABb-0jY|5gI{*Q$cvlmk%5~dwZ###}_v0 zmI4nlt0pgqWGSiCEMQ6}@WPpj47ICSe&aPN07S=X3qc{sCXmc7G4dVwC>MD;R%q+* zc=1tX&YM)kY18v_-J;!#lk!R_$jll|uabbbB;*WjsFkcfRY&?90V`0W?c%OY);i~5 zx{HLhzceoqd9ba|Qs>vmapJem@^YpA*TnSojhugakUzDo=Vs}GIMsV5IgTyqd%KKL zNg0}CnR1Ai4Y4c&Z_8ejveu1mmlpHObC!5pi#&&r!IP9R`hKefMbyJo?0p7*+0q>p zw7^opT{S5u-WydgDnr^!1mc#HGOyjh>&BP2nx;&gs{CevAhT%u%$k2?_MZG}@u9xz zdhhqAY=qarwLTQQR-2<3vlR1Y+5Cu3*YflAB=5|8_?}WhxJDikG3DRo_nu_NrZktE zdWBX=Y}K6lo%eNxJI&%h#up~Vg4=~7x;`Od0TSt29PJT2I$H5N3P?JzP=Zx#L%cSb zh&-(T`@cJW>@x`OKI*c=IcAl?xpA@K9k`jaFM_@Gpjne1@;4UYIc60nRC&=Dr0GBU zlpKgz^zL{jXyLzC&Qa~BUm(uxb^)4%5?*9cV>-1^skF?!okWFSi3XB zH+N&ZRG;^+T75{e(^h4c9H{y719x6()e}*`-G#1)45*&Zck%57$9uXHIam|P%zZ;5 zHHPMT6d=!^~QDP)OZ+{#{0A3a5!Mu*(T+ngUvYRO`B0wuB0skt+rDlShX zGsf0YE==E}q7uPX`jaCkjBj@f{;PGo?C&GqH5&T9xAz{aZd0!HY1^tKof=}dA;c<3 zyf3ezu@7J9z!kT%bDGVdrggB&3=tb5%V~ctT&eQ%JTAq$R*P53jg5y~OGYSXmSI#b z=d>b<8>UGAcK0o^=f(Ng$J1hA7qgND9KCGlLQ^U(m~}~xKu?8)$auFzYb)q;kP1dz z9#<0L&Kc`j*fHrxi;1)S68=>V|Ufb zA%i}is*|>;1?S$_rjMUPc-8HB@0mbg@kamg{xVcH$9op&mck7rBg1mwXfH0CYtU!y zOc}+?EV#61c*LUb5n>A}C)$(pij*f*43!Y3wPxbIevjYVrTg#>D3aRjCs%82gk4=; ztnI6u1NLoMxJ@cTO&zP{>UGq|`_`TcJKY}m*D<7n4T}AmpoReA>iJbTYnB^vBa0Jf z(nJ~HAE7~CyrxWuJ}IucJelgLT&GgTooz(SycH8G@(qakwG;Hrn{i~nLlb@(DtbaE zqTaEih%gQ~3me8FOFblg^t{-76yr!x`NLvUgn_nt&GrGAxwwz2@(x(rZr>u`d0PXSd7F;dwo<< zO+^bpk$Tps>2r(ipZvdvZyBe(BzUj$2MRKanJqSr%xk8GpQo7qXxvvocq4DZ%ufja zUpMOYahNhTFF2fK;U_x&n1C)<{@KKvtbysIJ8~1f;zB(VU-r5aenHsn@X?-hn#|yW zTgRPBN(MuMjHFbF#L{Ima#&`g4r(el=s1Iof&d>vI${&Gu10l0X=xwn5s?nSa66~0DsRdGfSVg$so zOt^d|E~}jt>%Wi1Swc5YjnqG^qHg15Ni25k*qu!FC<&XP_}N+tQ@Zz68P>0~R}=Fs zK|?BQ23%MW#qJ==jzr+tQg$3s?|3OlH^r)_`@xkAAT%sb6u_bAAm^q!Xd+g{U_x%> zm5Ae4Um2akRgo`U=72kDt=w=rhZ&zgx39dPlmvDxRvc1G`aD%|+cy z`mN@;dIzN*nY1#&^-uZv@n3N8JM1@HW*4AeZi~Sz6oh>l>5Kkrv~k3-5a=PQXnEm& zl0AMUX>vNm$~&AXCw6vMH&`9h_Gqp zf6gi9Q6UOFXK-Fko~P5JC~@1!OEJ`DQjBBIUwV4jf6Hv!$dnt4RH?SRzcci;AGQ~b zeOR9M`G?0aulq98-f^8CvPgJJ{Y#*BHm>*@zB2MQU6b(gJ5#(i4|2@B-wZs8)>EFF4&ovx=oUAS4s-0}q9?Cq=7uNqr1DZ93H<)f_-BXClmEfaJ*u^(`06S4 zB)hVE)vP!$C4i97(cP~5Pu-V90AJRSb%(M`d1f!;uTH!{UB7v$3;9)tah?pHoZ>_D zP@Nlr4%6~B1Fmnx3KLi%1lm@M^=D$y#j=~y!d{>1Mk0bO2(3*T4xg$sJ~bBwQ(Ilt z3L?dna#qA2POIqZ`i!qADO#$E+T&92Km46%iCje7yi~1|Udv8}#UF2%w)xH8*L9xB zjlaJx=J%o8uJbD2DEu+vePA;hthuZv{yv5&GC;qQ2T^3B<;+D#8XHNjzAdJzm}g3Anf~uFzKGXn;07J55sHI{)Q31(g#&4Yp5rid zy5(l&6lW%!#ypcj=(&MPpksvHk+G%_fl}(77L?zBc@6kMQBf!CCcWI+2T&4B^$mkdDq;49) zdD}}@g-GUI$Mgt3Vu~Yzc&l_0v=lK$nplb1#n%&vqIgC<2hnhmSgaVTLp`q<9#r=u z$waAoK$~jU*aj=oKUpunoafV&>`8xT0pH2)tlrq*JEC5WrO;HGHL}zv1Q$EqD)uSU zr$1t>(E;vzIB`VuFV>do&$^VB9TYA}x80am0@P)N20#g9eeR8A3d-rb7g8jV9^*{H z8ZCk-E1MQSIQ1&NRvnqznbl!RO=Zx%3H^Ocy$^_rlBev!5B~p_3uUMjTd?CyT;)h< z^S48_UhFZ9SSu6N5K5Z-Q%ObuLh2|FdwuQ6H-1X zvMN|^jAx>(E?G-n40#(n?gT#eA*ms61G4@t-KYQj>@I^mpg3$1G_5(aP`7xOK}lm= zBAl}UWxwZN$UVOWXC7^tKD&1O*p-^ErF^_X)WwKuj#?V8iWET^zP(%j->07QoWPMa ztQZsPTAZ_24HoIpfvi!F+*@1OHOX_ymOF>ug8_Go`}Fj#Vn}?}=itZGQqV+bP82>A z1VX}I?;}38QXN-)j12jK&hKbhN4{fnWFa+s_op%kJz0`PE+A4qCX=e<7yh@n66t-A zmqf^cPq%ZPXEbt;5b6H+tge`>4*M)NL5x0rKr`4S9B}uuxj z4N3W^Y`FVaFlX+S8kDT2|S=UGXdVymm| zMJY=b)2-O+=zD!4+k^U#Ww+rqlT}(^So9X?J-XbDzyX7fj-sASQK!_}9rM&72Hf^! zDPHntEOFUd-@E1fu7mN}_A?UNNE`U2~?{fdJ}>oHU4U6A>TS@EFm=9VakR- zEEDHucpHM6d^g>KEdZr1gi^f>B5NAak2-23b8bdMQLt@&zW8U&x zMI{t`8#V64NyKIVWuH2@;r5Cdv5_=0n2ARO06*y(u&ki*%R59>3 zo;}OSHKd;S`#Hz9T3|SrX^#&*=~t8jmum&&YNyyl*@_eEmQ(1 z%?a+VtxNwC!o7rnbn4@OJ%0ORb)r(25sIq+_=lZ(_ezWzk)DoYe%9^VjhL*Cg_f7I zco6M_e#K3>{Rab030J{Z!oq%H8^Kd}4vQ4T6KU>QaKdh7wL{XUm4um=n2JK|a4-HP z7CDg|E|4BBfPjkXB)m0_sv2=O<574>+}UV(1H%D|4QP%;#_wc$vRX@SWtUEn(y<7c zNoR{WDW}v=@(nIfR5_RXO!QC2+dOD>6|n$_ND-CDh##?Nu+^1p=_I*siMCb%v89`2 ztg=zedGHK@c%&6&D;@){-SYe9$C#;?@WRvA0mLHjH;q~@Yj9k(9_?|5AW;>pkXm+6 zixdC48747sl$2%4<{o(H_d{d4GilW0!aG49V8HP1*E04r{uNG7)K%8^!~It&9i$L< ze$|+v123IEybjDl|DIC&Y~H7;9?503XF7^8!IuIoaD?pvyeJO~X6U_IEoJ3zLhb3A z2f{NERoyR1MOiIlFRs`RLS@P)t*rjF#G#l*abfra`u_|kx}!op>CimhVGYFFF&&-O zWHCFqcEodm()fIjQ!Z~)fudAqGQCAaz2_mr?i;?7Io)*r z)g+W#kIXSY7|LWVh&`bQ#;yN{nSG(bsDynDgpxwM zc`+ddOyPuMCI;@6N~~dS}o7QOvOUU;wSQf}eD+zni7*8|RO5kYTIhIVmLZW@4DvUW6Om*Om_ z$pv&C(2bO?%ircz?x}!IEb{m*&`arrFL-21sV-6tTtK9a+3}?YRRPGu3OqSk(cR16 z2%bUR@);NE6GkCe1UeK^vk9nJ!_N=CZ|S>PFT4%cdHc^J-L#S{XzeXmFTFNP7xWx- zwtfrhb4UreYQl?<g-!dbdktUfLrOAm(EZ_mw z;`4C;ATbVajut~qTYZ!GqU~_zCB%|)g8--l5blU~e-WYSj6hy|fpa$3zNnh6hlK~F z7^0wcWdZY=zzJdCWq{W5p{Vq28i_`1)2$Y#At$q3bwa8gEdp4<4x1di{d(OX5hFBY z8szjbyf3lOk=K)sg0O)?OcGK?JS2M?)af;cSa(Iv&y0)}!5Yqkg?~pUn!NEQXZ(X+ zu&U1N0~4?nc?m7qYn?V=E2G)N%==}zq94=7LqhMrkM!)ddN(l9J28G^#YCLTVjKWA zIXrwde5t`RwFjBd{`MxJ=@O1bNR13gw}Bvjh=WB|WPt)iR`*89)5|e*`s$%{XHDcZnhY1S)0VDYG83j*yjiJEoOmp=wm&0QU*-Eo8IZ`LWJA?i`%kY5mXbggXoG1d4?`zvUvyx6>xnRN_Wo2ZGQRW9TuMp$j&! zZ&B~3T)8%xRN6ph%K9qEd-`c%SPXt`4(Kg5cbKEX1W(w%mz2s>H07nSk4k>qkseb@tErE2>&;`P^;^^A~C4lkcKJ-XWG;#iLg#{dpj z3EEypA^_M03s>8f)fu4?J!W58@M7`UoU{4OsF^GIJ`XIO;l(*D9}jW^nz5%d#-8v? zJ(AFE^iH04;=Q4#aSLVEmYsoLLSFGg&on|BtlT;X6N&fIt8iAO(!n&~Q_00+cG6 znNpHNc#QXadqrZoDy64tT56R5E`8ybBei{ny|_I+;zJPx|7h>tac`D!eWWx3SCsT* z)VQsSDmskG2Hv-{=}vMq%fQ-<QH?#2u@A6XFTH@o{MQ)Q889_9~6E=ENEk20R*(yKq{A( zQ%;dgw>4CjdZRtS5d!smQuOPPZ`Ckf>V^dixG2T=CY*5BV7ook`Ff6wmSl9n)kjs* zRd)-lFzoj2BXe$9sdsG1nReep%SmddG%g_7*34=E%HLDivG{Hi>nMOjx?pswbjK)q zn1t-~4Y!o=(u73bRl%s^pZHYy%WMRUt&EcIt^IH)=Z_p|E}Eir^$gy|1POvp_)Mzj zEjEEYi4IML;M7#hyU03?^J9Si;nlliVUbI)^uNwr$M*oG-w__AI#1MElZ9$6}>1`D(ME*wX91=DG*_R9k)Eh3lk9VNM&<_?m9f|`Z%guJ;~L= zuRa3Ii9wXK8@+{BSRw}G2%$rHeS4sc( z>1&p4BS3&=3yfKk>u+iV3(s{29q(c~eyc~7;bKPBGE!(Q5@Dnmk-%7frqrdj`~W^w z{-pzo2)m6~*UBL)WfafXv5SLVxb z1cy?k)0R0HE8-w!H)_LLupuKn_OG92uam2T{C^%RDQDI2W$isxo0HZB(E3l_+N=%= zu|08HN3WnVQIyG(mV;52*7pAxE1FNKLo1c#W&x`BtqPMe&WB~iTRB$&&3XV}fd1UV zn@UhVaHaK6d@@5SjJuTINH7)>0APQ6op>xb9@sz;v&HSM6cZ><+wxtzxnQa_dEe@E zW)f&Fx5*okO{m@pD-tT278)dt>;^5+VxdnMc`{;Vom@(Me;BOuSdD-|6G$P(JZ(9T z*lJK9Px|Rkz9ozIt7`fa&ekNSlx07DUlQ>ibR+iFG_+Yb#FC^mcg!T9SnJQuy#4V< zov9OrF?J$xoM1~aaQKBi3l#wQzfj*+q4{tFbigPIk_6D z-&Os!s8dy(OeYBZ{Ok*!ZP-#+e6x20Ar$aV1I6Ac=JLn)7SeM)c%J!KzeH@)s^*JO z_f|=sEf8}n?<<|NnX280;PHNM2>g!qyY^hs!Hbc zWvr$Cbk%(Sc;~j9qnW2G@LTIcHN9bBEF-E@UF5<38rcaQy4C*7TT9fBQ?wi~`E^`zE5UBHs~;DW00Z;Hbd-wdy7M9ZO7?2lK=* z#~|;WnD1g?-C$ZeSAE4Crt3Nu?Lu5UKVgP5bXtngL{)lV+HSdW9rxi#gQe`!Khw03 z8#DzYsFt5(KBB|q8XYae6y}7j+5={^am$Q+7gD+X3{vYWj9Ce}=#wI^1gkRWhc%DY z$gwo*zPD$6SM$5b=Cm=^{O~$!7ZzGFxaN$Pq_FI>XOlDp@-w*(v4>tW_k{XHx(4j( zMoo51INaV|MxD*XUW$pgb+s9fo!-%mu;o~V=5e$<)B$r5zDCB=7F<3^?dbDPDp>$R zaCvnpH%!0aVREaQGNI@FJh8SM+~`=by4Ar`q}0G+)a-sVRTO3D{1y!!6iM()8=?gl zc&R1f9QHZV;49`!!k(x|u(Uucnk(9`34>BC7mPHHiRXkH?}@pmskxGq3>%pc!4LIx zBlq6dOGkRFr(Q2iBAqZ9;4OJa))lfuLUZUbPBat%0`a`@#1C>Egl{YOMw}UX==-@V zt+bXSrM85X8}Db3Ri_GG!zt?^bZlfHEHJ;+tH(Tw`%3+s*c{dK17`xhR&ir-OI zeVDOQGqn1`9In0-T8SkPo`t-nX&%u!a;IMpFhGN^Mst$>dq zztlZb$VBR+U~p&pPCI8@6o@BIl|OMYnUv1!aQ1g$Qs6KAV57cU4Bq;8XX(8OZ^~Uo zj+nztj;|lKUd^RdUCyYaRED188Qr@C-`Roo+l#cQz$^Pep3dJBmlIp+P`%$}Pq$J1 zIP2{J7BO$7bARGoQi)#Jm)xx>`BD489ReTF^sJaDjIs{IE%KS4rsCF5J{*DFnwKiF zs2=Tgl`^S}EFnJLZ$f6p=35{ZxJ@C;}9*CdLe$ zdUMmDzBIb-*znOqUK-LAG9nLsrYKhRZy}HFgt5xs57^dv*0c|Z0!?KKo!Pe<|M7GG zdKHAP`Ao(v511$S|LnPuSx$Yhf~3vfp_XBu8Id?3UBi#| zg1qEmuLLqmFpX#i*g4^LcH*irjufjyYQ^C$u*pxkpH3B{w6yvtWfQ!DR41WLx%6e> zgI-N?ak(;Z&Ub@z``B)y)N16#zRSfQ*b8IHe#==A6s&Qu4 za)O({HamNKy;jx{c!94eJy@(%#XdxAAmR7QSrQpN>SBD(XQ_M;hLP*GFupdgwy^R@ zjW6~=Wyejyp@e}TNbD{0%qv8*GyBs`J!uA-UwmUsJ8D!Ydqn|EIqff!9r^PUup14P z1=|RD{pu3`+vrwKSf~2_etT^l>84c|HZRKtY1!oleTrD~Q4Y(wa;@Y6v@!jGsZxiK zjSUQ%E-9yWNt>CXlT!y_<<4wR+7HH_BF|^mQGS%@o)s~?tF7)&5l1WmF+EARIxC) z70A631yGo+_*-X8gr#ogFlug8VvMc8Fj-NIPePC^+0BtdiB&`10`!Z;mXHWWqajj9 zhYHbL3jPJ*(*bG)l2L$%fY$jZa;9NC2b&R>k2aWc#> zxpWiIR|z*FdmZqK=XFe{Pz0CX@M9ir{&B5iK3&}BUC5}rjB3MrFfQ~>PRT(UxO%UW zZPeMX5Kk5}UDbmdL^%4EXI!xCh=?@|_3!)A62M~r8)o5QQOo~f>Mi`D{JyAB1wkdH zJ4Cvr8|fHo=F(|Z0Re%b8zhGAjyu15zrOeV51!|I&R%Elwb$Ca z388LCshyQo3gGj>SC_ZfDR)FkXd_nCjk1B7i}ViaLMq-hN#_tkdNTwH`)KEE;^=hunQb5LrMDd>pv)%pp?les*QzN+YVxBbc64 zG2=l(J;-Y9P-%9$P~YWx$$cPT!z8cR=NqeyHKc%yz=EcZ zTG;uqF^MaBa9fIPR8x77-0yjlaa7gg!y66ujMPliF6|t%46Tl?<>|ZMHF=E520vJF+`lqjvCY;yvO`Ppmp(Scvj*NaiQ+F317)-glpi zCku(h+nwVIQdi4msQogNad)b7%wlWKPgdLaU~Ud8dVIJ}U)J+#vM+r_lqDh3`(EFa zcuI@vSlwXjMWr#PM@zh}UQ6TXbU&qeNn`|1)@gU3^kYw0UDkZ>cF@lgru5Nm%fk9P z9py_9Ll#p%@e^2zv?kZzn^TsIw`PHS0f+1-ZuAPQO_<^kaIEPneQ>x``djf8HB3x5 zPXyaV3H=_+usRegrq4Wlt4C81_%N?xDuJ_aGIJIOR8NtJp)xb+X_|B2Ufj$#lxRbo}pi9P#|&m zYZpyuuF7r`7!tmyUh}%kVL~g0?Yh>Ep~UP}G9{a$^`^L;$4Z`$i6oC{TKDOzZ5hmx z6EO&QTJQ?wPp}=}1cDGo=Y2HszfT~hjl%pEn#8-?oDccycK7($w9`S#y+35+#?s-> zj>PTlB;kjmtp!paz)K&MSvau}Rp9XznL`V(rB-7+1%|pGBJHlGcUavrC%os8QkjY0a|7*NF>y$)>Ov+iVc5C&Y-eENJOvRDf zW>jP40^H0TYdA?2SH61Xv+F5NxW%qENc*^g1G@bu?YLox|M|@+NHaD_4$P4X^6qeb zNuP=%s5Zmu30h-NEonOb3W{#?t1jI7*}u(r>ZD%gU+5iG*C~KY;u3q@+=OQuN6g#Q zeJXoB6&<-4X}Pd?=A$FcQpke6YkJ$qon<5Zm;^yHIznn0ANAGtWl&49zY`lQIBU9r zMT9aZ-hP}U99-YFQPFCXQ)aTY9S#f4riGQvWqY2M=pp$tcHR^zmxN=!l7Z|8*NcR# z;zH@m8_TGd9^WO;$k|~V>DGu0qAH0$H|n5iU}zQ9;hFz^h;zwO&02P9d%F|4)tk~R z_j-QB{P}~UjB>VpQ+00e4cg6b>QR$GipIsioneL2GT}vGCvH2X3>>FuVd>O2-^0S% zrm6QAI-Y9!9N?Xz#+B}!@?>eTvr|(|uJwx$i zaQ2mT?-(HKm#%hAHZEdIMy)`qxlcn2<=i;Ss_}{=Q{T`IU6H!i!n}G%WXOTJ2#KKD&A~0{76z|o~yfi->y};^}&PB z0lEegs-^ShbubMB_R^5{xj#Of9~h||boHeo;(Fx<Xin5cqG*V_ zq_su$(vq%ujjs1y()`C<^dsrZkkG|_<7kNY!@(U^0bc{K1l|yxt!!FLU`khUTqE=3 z&jGttOg)Bw5-7X^$8AJ)2ko3GX*kwxyrW&YtnxQqjHMm7hQ?B^w8HY!-r^99c#x`! zvU0c9#*_QC?YbTzjog?a>*zqbH?)z#=Pj z>pDBtJX?DL`=mz!B<}miwE&Mq^BcZJ9biPs7l2?A@o?`-VYXP$7oC#*W2@YYZ%xxn zC9-!e;~m^4cm!(2G6ioO`#>7@qvfVM6lug{G+EEEZDiITQU_6ScuT-zhOCnWBnvG$#;ohHvo zyZAM9kZ3yP|D?`)>&x@a;shYwTg4(J8r7=OwAm{+Dn+BsVkyC-n4F&@Gn`EU-(EK3 z6l{*$W$PnO5+f`(QtTS8OPK_dT(a~*6;{SvrOKwYy}tX?efeIeWMR-4DM)1|wQNM? zQESn~f-*7s;V6I<{23eF!rG_#0{h8i!3*|XJr0Vj=B}=cvhq_Fk|jXy7fn2)eDiqm zc!3MGPI@dAMNs-RA(-KF^^L%yAkNoyND*(Ug9n3i|Lu(Wj~wgN*0-`!IZ2c|%dMYA zWlZe7Iqcc=Ets3{zTb#JqOp}R-(J&(OivoCzR$X41YceOx)k2J`q9(}(nQ`Y<0jq- zahJa~?DANIi1gDEFDg!;Fymp~s4x+sE1U~&NVGH*Sp)j85)!Bepe6@t_=?4Cyn-K`6FN5>@C0OPKPUr&*ZR&ZX-k;(u;U z8S00ZqDCEv1b1w6X(=(sXrJ?q4@I=#`fyn18s=4#R^t2S_S2`(s5Mwyy8G3~-itwt zHOdw<=mQu!-M30gr>6m4r)!<}iJ96aC|-$z)~5M?jRNec^Wt@01|or`skCbLly;KC&mtt>Fi7->Y~{_3I7y`>)uG9DqPHp8s=rf5 zNO)d(6ah^-J3nm((X*lg;Xjw^4d(c(F`U+4;ScdGCva&FrtQI^(F9NWgU)-nS9L>n zd!IphPM_^r4lS8r0CVaUtphy}K-IF^S{O*!^gXlJNAv=zrr6MktE8nki~q&?<5gzy zWTF8;VmfyuLQUstqj+6EqK;7kP}@D>(TJ6ro+v2FFegVK=|xpEgc?(U#~o+*=_cj4~JqIXX5ppl>$ zwC6_0f*5TwD0081FjplHNW;%h?bBfKnG2o*yb#N1i!N{_CGWaN+Eb$sS_24pO5f*T@UJ#Cl=S`xD0tE|$ZTGn$4hM%*L87~z@x8g$t(JdMdN}6 zi$xifXAeF9JrBISby6^1Xk|caFiyF?R8`vLYjqCeNqo7sdUjUNdn=k=U*|clc^|2k zv5fg~l;*dzW9Yu`^Ekf`S0zRh?W>g{g-?G%P+zl3i+{rLnDvL!w@1YeGJiZAGO9Ny zm}FRizb=}vN{G)!S7t>z>0>=pW~E@G0#Cdg&e;+=3+rZi5GMUN^Vewm!E85dh9<99v&E2Jym^do8)A(=(LyyPf(oHTk{kT;#PFVF*}YeC>y zRqsbHhU=h=k6rG6waJ(IK$44yj=z#pe-=9`9qo9T!z_*1{bLj3j}1Jm_QB!LZ`V4iYfO`3gr<-rDnT^pf)hPv8$) z;roW=CU-haOI`)OJY+*k4Poa$-b%C%mv~@3q2Y~o%<0-`8e~jK30})H7ax7l<;BHX z-$XWFdON>2Z|KL;zl9%1t8R$efS@ggM4d)U65!lVKA}>5=@$7Yj#QoYX=otrU{-&) zI;f|9T3WjiPE59kb?92}_V8c3+YB-AOn& z%OmCc&|N%4#~+-Ft`cr>y{CbBjTCMi=i8mpnaTAdaAir}1+&v!1Sgpo=otPC)dgO+ z?|^ass<(KiLow){>{1n5VH#OYF#yQEBIEJLtj=O3M((SrXb(e_nDfO)x)OrhK;{Pl z5#dP~ zUN+aD>aCFJV~Q{^t9f4&6(e`&|Qdh;wYV)?2gE zh^TkQ32%&ElL{BV%z^nNVoY?<(MyaN9~nj8aNkRR&4-!at$YI0+^pAgAMULO(=G%W zuwCeBG`TaHi&h-n20Y)q%(Lv1+-Yl4eML zR`reNDe}<8e6L4@tBUWJd89@Ho(4Se!_n(Vc<8g9knlvL?&s85Xg{;+1?fv|JFrl0 zqo82e=SC~=z7-Zg{wB#Ot|=wjG8tv)j0|R^L&InnY2TCswZ?Sxdh#hD*Kqvu#{CCl z3mUk=y$U0$?rB^i0Qg^;ENRvK3rdZexKEdy)Sp-%@9VZy(>9`2KXqeWRyEZWTB~`% z3N{wkgYi29$z;k1PrgIxbC};Hq6DloOaG1gCFMHwp|giUDQe^6mDlrR2~eI#TE{D^ zWB7U5fK3;(OhS$B8^io$B1_CssH@HN3JK0C70*@VLz-mQUR(c@HM+wF_D4Lq_s$tD>4NAwSd2w4cTUl*z z49W1mhLg}w>(cIgxYIM@%M4aSUQA{DBb%QY;%(v)%?Dy>-BEv7%g>|}ak4!IQ+_E3 zINIQ7^$?nomYSh2Df~;LX6T$_7HO7=tU)BHvXC`uZ`v9w|F4Q@dow4{q0y9Dx3bLx zE%Qr1*ns4kbVk1|PXA+86P`t(-{wGfqB1(&L0)<`!=3nZT(~6--(gH&dN`NZ8jiVL ztwoI(gDn$Ci0IdK@qX!>{ey<|Tct|;ZRiWcRC@5oryjFlQ0QnQg{ z78-3*I^n{LN-0@NMF4WO0S7?WBAjQ>iY6Y5Gg^ArjqHc+Q%U8&;V&gZMk2`VI~!b3 zstFdFEiFD&wW=bd?{Vn=T$a7Ywks?+nH$a@AM^l)MM}3=z2da|aBX;hsj6upnZLWZ?&h*l9Qu;ni!ueTA~1IURN3P;O zw#PLFcCR?^7L+QV?SDBa@DUY6PQ}|c4-|NvbydB4Dk~hCYRK1GFYYjqd!PD2yF@ykg-wGp)V*`c@s=h)O~#?lTG{O=w< zAn)>(#?V{9=OoNOq+Z7(MO;))7WB(R9vUXvwX8mB(y=zm&;9M_l~2-I#FyUuCd8jP ze)!d36&GAXaFG(2Xh?_HN1r{ZR6MB9jw_!hOuApd9sjM6oKgC&+oYW26L;x!BiZ92 ztUxGp@ULv-zIn<4i-G^$Q^63{=y}fA6@ZC{&R5#zuaTg$PA3R=G%^<3-zXTp!>j|bMtrBCElR;+kRV3TNo*e}QDlkmvZZc^QWx>j z0DdStOHJ>;ge@ibpkoFnOQp4rhCX3g__1V9ziW$sFz-BeI;0nztOzTqm*tDF9UTFe2L6cdCK+pK2-k(Z4>I4Aokiiumqy>VcdCyx z>9}SaXj;^Pwx+&CXm47}S!&7TJ%CToLd3P!j8&zoY3E6yc!ILCSz5?UpXL6oocBMv zs2JgH(9@)w)o|BOf^V*e4|Xue#$sr{T^H_4Zga-=Wb-xZ=&Ci~BxY9Xx}K%z%_4m) z?_6fQ+fKqOl4App(>2P-J_W1hRmj_Y>ao{Uyllrof+Vz&jDGD!ao;IOpiXG)i!975 zt@l2ccaGNPL`SC~rBUJ?qc7fw1Ii&J#8*>fVCUFz$COP3`@oTfgJhT&a#FKMh>Fl=6Np(Mq!jz{^DKD(Yv0I5U)S z3W~%@mv^!%2+ohlW#nr&GBkj!;JptE2_iR`dVIqa&UbKtFrjF^bXx=+rvLtclrAB| zvQiPJucE`Hd%`VYpWVG?5EMmK0voNeYE?)%iD1Yu3safR@o1OEtbN!;^WJrRJv3f5 zk2`)nrIg;NWb%OQlWYX-q!w!!mf$IvkNDG+vzK9jhf~&v`^zF_o3bPgXvy`T=n?Cw zHjItX3V7C+5&gEJoorVO7A4x-sZ!&r zR%pb}oSJvOgmWtlr(}1D7?LS-)-a`!rF!fUj=N3kSmOAoYSw{5_^oKaWEt7sut3iR zMweHI@(G5H{S?anT|YO(xv+zKC0jN;t+KLtfW*OM!K}A>ov40sJm^<dd+= z#XrDIa5e7Z{pJ}8E#5}5m+nOOk3ugFG8;eN_X1wwYxmA^DJKz=K4yy)Ov$p{7PwKY zCkuLH0A8_v)~p*_NOf45WUcoP#d`&=JrpYef_C`LQ;)r5SRC@@#{RHt}-?PZ;}7u zo{!XIey{PD#kATtcx=1ZEscm5$3>czGwdl1@=ZQNoD*iX!de;=b#apw>8e{I@;Tj@ zQ(1geF2ysHiao)1y`L*PdF1GrlsGf65lP+;G#cegpMYVLyGs&GDK~My{rsPoV!HTD zyic>55at#oejg6rIR@+;!p63hVH1zaIlSE5DCv8bem$Zs089*BL(Qup(!4}+RusNx zlQ$^);kIPBoA!G|`=?AP&frl68P&Mt}{&kRZtp zSKq65%A-zHE)mv|XA9eC?Prz&UA|7r^zrd?9Ou%}6GK_+T?`*`xjUfV4PN=vb$i$K zl9fgbp=z38P5gvsC8!Bt3dKPNe{~AY%YN^KQEg|%g!8WLm0(@9^sTkikPkzrvp;P@ z2)S%5Myj82-Vk{L@d~;UM;aG6cE3^w6phCkO+`TyU$h#6E3BWNzpTKtlKaUve&akU zzw@Ug&jJGl&Ip~R8pxDa-mq%eE(qZ;=G4d(Bt#&&ZG@kMZ;8m7Lv_F5&BV?i(*nDq z6dR`hPd%PX$A=W16Ab4YaLDb*L?b<(=7Akxx7}M+F)3o+b2;wbNv=h}TsQKxM559I zQw*BfZ%lK-1;i!aro+TH_A){zjEytOr5PJegyk1<ks! z(zKLgdolJhKSbdNn!5KUEH#mbd9NQLmZA8ofZT2+)A1AtOU%NmaHvk3J&H_ZD(IWG ze0MvhZkhD3clHd_vVY>59EGo2(c9R4tW&LLr^5faL$+r+70zWmYA*FsU6bVj|Iwo7AL=-ZXs6dXyuGS9Fz`12SsG|6Z4vqLoL~F!d{yJO17qv$@= z!_7S#T+029xv~aGb8c5Lm28h5r;;7%&cRg1&Q+8vsC=hQtPr5MEvsG%WW---w#n@0 zvP0A0UA8HiloLeJ^ExLVbqw%-H?udZxLkz66D7&X&l))G=qd7}JlQ4Z?TMG4m87*T zUo>95HA0yi9D8&N9<~xv@Qi37&CRU(TbWV0s`4^qZJ%M$9qL-7o@XQ%E3X3 zm@iN}*{4scd56z8hP`f!He&KUGn<37jxZxNXwi<8QQNPo_|bcQQw<|bsM3xFNt+5n zqw20r(l9<4ji=|m=GJNPnqFmM=LU>;?l(W_-z|-{1L|`j+UpDPF?<=(I%X&6r#4tq;bMny>OAncixIp zj@(Hu+*x@=yibcthYIC1U=mDABj{jWnr-=b_Fy~HMx};Au&A6pr9^tZ3Q#ES@}}xm zo>Nkw75p_s`eQI(4J}3%uCTu$Ua0#!lRqICx5dKClbRp{h+e7R33 zaiiD^PA4tR^yxWW;7+Z-wB8OsN7?bwvQvp?BX|uvXc1UfJ(V54O4) zebT8};A+YKcbZi9S0(n%%fpHnpXM@3W0eZ(wNPBkm;R;IoKaZsp61QIW)HSYbo#s} zV2?59P`B>ZY?jn2o=4}EB$H1D`&x44&A>=|eoD)JD(&bcEI~}T-25VKF34hEIynyD zp2Tzpr}Nb07%biNFh&6&<0sf(a2;es$u^f-oU!F!fpe{@+^pO5VCOmado96c^LHdK zLz!Xl$9irV5eMvZR{ho}d+!Ye&iInKX%?>1m63k{Y(+)1$Y2+aBYhR*>z7%(Kj_j} zy48M9B#;(vZ0;uVIchICa-i~VFSbvI?qnU!TFAHBBJ2!$9Vuf<06r0I>t4n0QMTBv z^oOI4iREQSA0=RgCKWqtQ=QoBqp%6~Z!yrv3bluOe_4p0S=I8}?2T#w6P- zqNbb16ixapBz(Ofgd^1Q=C41A-*U)DEh7D z!&Mh5dDS_yr&VDN1t%LmU-VAsrtJFC1_a6Vtvy_9smfR2r=S^&PCIP1pZ-;*%PlDf zjG&C-_)4(U<3q@m&;AE#JcAO3RDl5_)ljwHTAOIm&2E4iA^gQ+oCOHjsxl{ zQ@W_*5xM=e-v3hCdit{XUt0qkHEXgjQ${DugfS|8JKmmVwn|I~){7d+1xI-w`d3VGG#lxP@9{^pHCj!#c&$-wu!Xx5@)w7M49KydPAibfwJ`)u5em0kX z(^d*j{N1=2%45=SwVMX;FezJVzyWY;3MF5O98_=oO88i-6r z@UA|7)-$?~>ryw2N>L=(_eWGj0A5`zm)xbKFq6N)iz4v|FOwGskNdOQe~5r^*7MOa zfvx=4pHunm{o(65SN@_>n&wtxpwc>_IU~l22NPN8-_k9m5?eq?znkG4qOMvItr&mQFtviV|2Oa- z+9i~9VGt3@<+Y&tZx8SFp?bVz^zXWud{kY5_3zhXYv1nr7t8XAZut63g4DMMRzC8x z{@U?9^>Q|GInd@G9tW7L9nyQmiqnTN9gpOfi5`|Aok#-pGQ1M-?zG%6Z;_A*V`^rcpWH{f~=0HLr>2P$wbS@4z%8*QzU&EuZ5(t-Pj^ky@ zf)U<6(fAsyr@5QFNkZyW%F(eK#loQXuITB5X1rU~%lX478L_p{GK=-C7Af_BV%FCm z#$Ro6)o-HuQq(OFllzLXT}!=P_di+gpeb{t%L0o)OJVm`YYIkF;Le_kiBLaefHHS1eoz_|6%ku{kI>Tog|lr6vi<9!da=t8R7b0^a<8#(ihwYPaV+>5QgC>{Lp3TFAc zpraC`)JY)w;`~h$r6|K8`K@7|awRb)tTXV=QX;jSa(}OS$`7ucRv`@xZTMuu|MP!fa-LS1Jv?E%1dCH zjfzbx)KYPCjDIfPQSXsL z_bvingz4aN9lA9Y`JB=PYOC~=m&H#=twNOZ6`@iefDXlj_BYSII+Ey{N_B5F+df6%Td z3)+Tn+jYvmVLdGNxKpvS>hSx#Un93Byd7B4?B7uilpd0`0tF$<^+f;SKcX*JWFy_4%53$gn$0h(DSm*pTi&)^?I*s-V4IM8ZMlzmWBUeXQ?~q`iL$d%zY0xRJf|yG&$hebh&~5(T*R+LN~=Itm4Ucci5vWl795G8 zBr#3kp6by>jOfbaD|3$4nNhCh=5i9^MyAAiNe1HG16yoiZZ(>KhANvFC*y(8`}?{u zM{Yd(j+Pc2!G8&JFeMX7L=Rp^%ApvJ|97WO>wb78(Vs7fwq6MYkK+2 zNPhNJ_n6QL-d`0Xb#O$Azj|rLTN5bnKfD% zVCbjR`CGP>BQC;uw6+WKL}EYvVe70lDPBL#P9_laJm{_j*v69o45uc4FpQ0=!C$wV z%HY28ap>L`!}=W8i@3LnhHc8t$`W{o9w{w|MP>WGOLrwz4kR|{W>b?DSvKJ=P92%v zhVxhU&lw)VH726b{?OkZ5;aXViYH3>tW*&yi<%Pjn-%G`!dImOW@%?tJUd95uz#!y zQMZl<_R5x0`cZ9t@5XGNoSU}({3KUgx~*5>7`L8tX1ZM}`nKP}-mAv#J8)S}lAKTn z+rdwxg-^SDKAadRJbmKDybkBzp?eZ-QP0;_{;q}z-?P_nxCLB=gmrR%J-ve#e>id* zkBHC4eJjfO@h;%*$>Q_1{wrrHDJ+;1U-k!UI!`6n z&Td5=18TFmTzSM_j}k<|#krE)IDXYdt>5?sSpmfe+X~KG17ls(^4Z&EM zv&`{X6sw*f8`*3qsVEgU2nn|3g7pbJ-RI?VI$e}Jb#e?Jeo;KheCO^De}C^^mjE%G zsF37p+^6qgeta(h_ut;YD7AZ3X6S{2kL#pCV{5QUyjoHV#GAwlKHrH;CM_EmUp+}`5T-6~K5Lasr zVxNfj)XodzPxRH+lM7E7fl;7RWHp8!#KBK1F2MGZe;U<}W0s&SY^TipfR{NcgN z@%ml7o#*Lv?4S5ZX)Ygc1{1q+EH&T_#-GhXsI^Y!bUU&C^^~S&AIZS{$E&4ENSQ1o zx|5oogzRgDAXIrL>nd=nGNK?i#&AZh%Ne`!B4o9{|ElV+x}luPbttrndD5Fpqy9)R z%j{4F%d-<*0|!_3G(bkNz)s@!az43S--i&Mln$bxTy72JWRUPL|mxEYhDUh3Ld1elD zFSA+RGC7~!ld>1V>eHjzh3_}LSh8Jef3i|q2DR3fxIqAu=9+hxYhX%$U2%hHNyxD! z&a}$lVLEpxG*nihQvFA+%BS#hX2F)<0^f-jD{E)pd{Yd05W?U82Sz15=vJCaRPtnd zLY>)K-ZCS32c>bFdPnfWQk)$dn>4EZ~ZEvKXRGgBy9g?Rf-qG@+S)@secz+tiIG)*wa)f%FeqovFL;?e%jz03>fq{z+Z>|9<#n+Ty8Fsf`DzlWdKd(E~@A zs}55)%ah1k2(%Y{TNU4FmRc6nD+PL~k&xOhuS_Ral8AF&Xj|-MRUk&d_|@a1iRJC2b5&@H)&|>2l6Q_I~`^KUF<-XBxeK`1fXfyj#8m_<1sm^TlR`bjhNx zapuK|i(kStTGj9q_dj)V3Zcrk3-_vc*?5gLda*iZCfvcKUGL5(nOinjGKSAfzu&wt z0r}($2wqR$PF#V3fs(fD!gfE1pN`043^1b*=q*4)Ejb0+k>4iH3bLJh?!My9WYG1U zQj(y3&Ur0&tk(FM@+R7UqVe7!{TtjA<@9_>S?H~jXW;>=7sxcZ3CgeT^W81zyRtN6 zc@cW?WdgbNQx}SWhrY3)yNY^k101E2S7V9ox%)lq8o}{IJDTJNg}mZunwl%6_={*M zkvf8M_MDaOq$`}2f(yA3e_>>!Fx)f*@H%2YL8zg1SK5FcWX! zq@TJQsm0jR#_^mIgrmhpPp6-{!=|2R#T9iaqt~k%Fq37M9od->)HTKGBhjad19G$Z z`2Sx6d{rYcWy@G84r!Yj`Dd7i6);KD+N*MqI8x=O>Ch}qPs>MAIP+{LAj!zN6F^%RT&qb5Z_iT9sk9Nz7 z#6&tsZkDT?sI@I&aU_}=EkE25IU zRznMzRc>qa+oaot22>Xy7w6>K4_0!K8rf$Wb45yx=cXzZDrcY$hTg;^*=2sA~3`fAB`ZB%Ix=ZiMmznmj{}5!I?NEe0MrP z(xbN?$gPpOFdV)<*^7(UIag?8gq%(q6QoXYr|6#VtOc z-e({VlX2cmsi>XzSRhbVzulgs+%mKgkhI#Ew8j0eJN}tqd9SQ8r!!SX85e7Io43C0 zkWoq}_MFNuL zKV$mu&`D{g?8~*m6+1aR%u~6l;g!5fR2`fC_t0H^gQXgZfMM5sX+h>DmOwlA#UJ$_ z4HnV--_kIHvG9`aM5>8Fee~2M!dDK$>B>{D>Gk&dLspG(BCNE* z(N%JUfw^h6M5CKet7ih}3eCj`Q|}sW&I=eRfU_|PwoEuQd8;85hJx?a4@r0zyclpV zO#5id*VsojxQIi)0CKg>;E>ucXQ}@P|J1mbG z3Cz3k=2iXveNhc*q%AHsoa?Q6}fZ3V(1=35?Rl5b`+BnIgd^(zV z#3}*aKULaKk7k#BxSb8pKYgQ$>p#r@o&2%fc^uU}!R!6TEe11k#AOq|kv6}eBPxmN z4DcHgjj}NK`i}jlMdx;7{5k#`S;&7Y$SDg$)wx^Oslw6_XOMj?2c~}Hb$+(ry>-6K zgVsgb=Z3i$fF7j;x9{}ncqCyUF2cMy znC}|Ct0t9(==MC=6;E6UWP7jo5EWDy;=~IJeGUK0xt9K&Sa_L&n^@{tSS4@b<>@9^ zHLoZdT3mXvdLj$yC0e?=tTXp;1U8~~5uJImu5ydP{llT;R0qgVdZtOP07F}j(8nF- zQoQX=JK~J@UYt3GLc3(a$Nr!IkSS6(xX|gx&EYq9N~Tn6LYxM=kYuq*gaezIKj171 za|}uw`Nh`%>(@h|s}W^N9p(C9;P_r!_xBQ7ATy~&mb%?+DPwQeQAqN6jXKiDxUyu; zdzHk_{-c?+_khF?`6WUjDBvnJD^^8;pIe1`nV1!zdHiH{QNLt~XJCR^Uj58L8*GK| z<(VC74R(a?iB5>FA#&>$hGEJ=Frv8O51p{*#3xrjig3!1^oi5(oI46Hw^A*200@5^ zqHk9mHX=4-^hytR#aSxMs_)ppmUAkKTCoj%iFhLQE}x?WlxWABoQn#g(`D-+j~TZeykZ z5jqq+ZfvLyfQG0bswO*es?&I!x51WI7;VYXU1Tqn7g6`b0GQ`|uaP*<0m}uIIUW^K z5Ozb;iI2vkM#jh;+tgvltF0T6C%7HFc5X4B(OLWMe_=ou zRL@O5F3Im3xzL?riRs=dd!sZF?E*)Oin-{PZ;1*OrBT82L?-exy_j6-wX)z01Wl=7 zaRZszFV^#X_s$IQ4dTkjcag% z+GP|I8+}1~mbtB>td}KIl1#KS1etxOrsp4MfW4P{q1yl8Q5bDvAMbG=McI#qkiz3o zTWvZvIsa=`r$kiA{x6O8?#jL|;jcHxtEk)p2D5QFmCQeW(B3=TKdrx_4JsEB{=nVZ z?&)opVZKZ2!xrc`hN8-+a;&y9WYkL?IbG$%KD+@fUc+?o#BAR?xP(yD7iQNvV4lL( zIeY0sCQ!49MIPV>L;8ptJ-it1qvjhU4oO-m0hU-3jgxw-d({07XI{k;gL|lK*C(69 z3#cI`y1!^uuguLv$No+O7=-B-!m7ei5*i2v>g5doAF95>FUt1$+5l8iX_gY{&ZSdI znx#9Wm+l4;0f`0a&Lx&uq`OmEU`Yi8L>i<+;=P~m6QAF^f5Fau)tNJA&giGJ267X! z?8)ot9Xt8C(to!+$b6w`R7Hs$f`pE_1I-#X_%(CMjVN7g96*pZwDPG zsCJI8PO!WcKWYjlgk!t_qSh&Kt#DfX5<~xP@5NM-grL+l(2w#suJ;#lNjTcz_~)fp29=dG*|W111UhhZxw?k5$Fchp}vwaXwlg9x54*ZJv9iU4SN)a~e0 zPO74%yh~QZn%(qU0kvmUP1FHZVkJZ`s4~_L&f3cKD|hgFAJV*PDA0}Tr`_{(Xq`Wf z+AWvIX{8v~Y)1tal$!=B%9?pj(YE?+sVxhIzpmAP#!{)f6 zz5xz6eR{OihDDn)GGA4(h$?5-KDU*{ez_2tqvUC7l#Hk#Ow^QeNr1rMrHgWG%YNJ3 zqi=-YiDO0`Fvi4a#c-2!$-I(v^5LO~2wNBB0B3A+)lqkb2H6eH_WQtU1U6569j&*9 z>t}Xl^_@=7{zwB3(P8 z?E4dg+Z1n;eWUnaGm^0OC~s|j99ppOi}~MD8C~LQJ!3-{3i&Mo^YWp-*aX|rbMo`< zcRQ>MkyFP;C#W|*^n|Jo+eMv9UG;X$@4K%^r1E8lEdLJ`Ce3?Ox1KdZRRbq}Ej|6z zG!tro)66i};#4U`-p_rU$^HD=+o0Xj=IO{mFcgbi77sq7AclHW1o6*7#kyJ%9!w|Gg)X4 z$rbPvii+zbO<)mIm0-SqX2`dVDZy3Tq32+vVbiA$t6u82zt{xWYoQ zAdWrDav%Nfu*ZM8viFfgibgc~SLFi)+F7GvAPf_{4FZZNBxP4dzTRRh)y)HKVu9|$ zW0n26mt9`d{`DCbXYaZQ2(bP;?5O#cQomEmE8m$?WDbr*5zk|$GWH3Tg2yzx-aG*7 zXK>(dKOLhv-*}j*#h7$qG&bRDY3ERX>@&w{B1MsdDpgCVaW_3BXlfRI%LJG=;xQ86 zZfgoxqHyHiBjXoTlf0qjbKcW&L|rluL{`pdFXp4JUXX@?X1pa=k|&w;bMF5f&i3Ln zEch46Mb1@5LhDwx2QkqXNEs3XLo*8nGr4ps=9yMFHQ>hG7GDYjW}x^EO; zzFz8TH$9&F5&Z2zF$6Jr2JGM5+>-8Z z?e*cXE$X{dl8RQa8ft4QDl+lIGjL1YpR6Ehw^>1G^rOl^!E%yy`X(`Au&|Mszce(d zwr>w*;WQtiYM+eEthy`6&~$xxasJ!3CP>90u?+p!7QeVfx04 zW1D3pf~-RGOModC`|PhTJp2J9!@T5_RkiOHy+RLG9OG9x7+@9IcD=@-;mT&3t7xtm zw|G%V9Sb^}CKvzHWY;}e53h4ZAIE{#;n!a^&S_deH9cD9p>f`JSfk@d3u>u@A{@9H z_u%eiryyi^gkw8JgGpIUz3Fmy(tmm~+B{FyV5>osT4cwJhlgF5k(g;?3YMdhY>fpG zt(JWE3#pKd^A8f~g^X2w6^c9={r>z$d01dN8tcFGY6qmLr)U-t{(@u}z|gKgy%4xP zBljLF#T&fw=Up=W&OmqejD4u1M3aO`or!qZ{;Nv1U~H&|W2QAr^^rz6!4omnP8!{; zA@dOFhc=gPq*B*JzxN zoAEu(Gm+suds+}S5za_#0s?>ASRH;em@h}7vnOXd@t7|2m*d&ugW_o*F}31^qN1aH z5tCeYLPfd2`TSETckg?*U}WaI3An>uC9p+M-fe5PcoLMpN@|$O)Py_u*KB(V#DKKv zW1ur&c||C|(K;vmh#Hu>N8=#n`!mv07) z%x*{D2|a6!omkMTzBSdF(zoF-ogr+sW=EQf&v{h|?ijq)r_$)x?zyXDXzY3U$cq+s zUe$${Ts(F^CEQr|DjuAC-n0Zr=mo(oH(Y>!w@QoG*Ybe*@YCg3@-7*X_drq2&!M$h zd;3nj6w*{u@0C;w8Uae(&1iLkw?Kmb8y(=aE&W!}!%c{dC)%fd)z>=}SiGJ6qXvuQ zylK_p-cs))r?u@xupikAN+}9WBxh$$;B;CIdN+Mk7(WTnu7!)J{E6v^Hf^DSMsPH| zzEpr@%eg~^wlMqkT*w@=-c&K_75vLo{t98Bt)FbkBy8J8kcqII(H5cJ`p)R#JHfbA zvs_S`5!{r7?Nm$RY8hU`|Wi z&xUAPYFr3cbU5%Ugc{J1`hQ}Rgyi@fg*CA-Q^n5it1`17-BOi zoV!%Fg?nOtTfdV~mVlySu__CHf-8N)=!O54Do~NieVnB;F^F26l;$j@`SvJf;14?Q ze8k(!fV&P$ibr6vGZVAJnaGohS6VD&VUswU2lZNbk_IGDZa)v>Wc--j@1`tta61Tc z&+^w-6Ms^0%Oxq$?8;wUgj`m+ULeWpjEk!@7cK{$;oHmTpfSkLW#0d}uBb`nsmQ=m z9wQ(x6jI2K?Rd-OrYTAx&l;SLoe&Vf`)RErO3)?)XuaU#W2a+TMJNspfy-QG-b1H! zKr=~$ZIev90psXWJ++4Ggb(qUo1m(J`xaV(3igag8EuFyEF9hEDO>-RTNbML&qWFA z;Up`QZQvP!AyysHE@pZ?N1NO0iD1{UC6<S>8SyY*v;bdJ_fNnh!Hp(5t&7hvku@#qS}|s5S(T2}PZ_>$+Pw9_ z`HwYunuU1GIB+Hz-#?l0L^$`ppr4-z!v!7_TCQZNQywRWxQ zY#~`7ZmbtyHdLwDU_{7Z9!a3rR8LgCEg#LBRU!=u#}c6- zKu3g{CjURGD<8mYg}nbmI%5^w#DK+Jy5cFnl>FC1{TwWo_qnMl2~X4&q{}_Z=X~*@ zC>fr`Z*K{gJv~fMaMyk#{L ziUGu7J!v2yvl7{qwZ~tVaN0dmnAf{71gH=|xzJ<`g=B=m_)rD#gD*z9QXMz+jXua3sZiKf8$IaTH6cJJ+dJ^$ztf%NH@ zB=eY+P+&MkU=QUIzqgDH%*+j~uoVqY(RrF1Z76h;n7w(HSfDA5X2b30YMEfV=Wb{k$(NxvIvC2-4Ys7Fe}weY*`@2Yp-dBGs7X@J(v=#AJa7T7B_^=><0 zD3FUb1WsyftHx=^q-Xm%cmADJyWGif;k8UzjI4$h8%Jf170+FJm=!IUx8EaQv-%rD zD!EbMlB{B_aJGKr-trNjIHKaQMp{al(z{Gn(?xC@?wzv0l2ya5VTyklZC*dTHQbQ0 zW^tVtWn51Sf{nohtIa=9;rb~(y|puCO4t6gox4BI9gr|MHOXAeW1MOH2zkh!Wsj2c zl71peV|@Q~p_I)a>;?24~+f+rMF_@?0?ywm;!5gRK*JW3JjhH-J~;C}Tgw7Pz(( zow8N?Kt}FK*Uq;Wsbu=rJ=KX^+6AaN0bSy_GUi`(obmtSp~8;b1T0`CC?*L@KnFB- zQUJEuq-oh6bKe2nF_*JI$r+gE)>k)|(L<^`nZDrgmS__NWxzW54eZ>+3oyy6!KNwa zm1xRA)fus21KTHhC|ZO)==U$dpFS;LzOXE4aHO)TesnDLSuK?9-;q_3Idh1MyKEB5 zo=_P=bVdJ~(b&KCm)Ly#ubc~>pZGAZF6oT-nN*A0qWqft#aMo{z31E@^{JuWxpwYa zp#k8i98PL4g5t||O~?9N&3t8eozM~CXARX7rrV=?3A85&2JADN*Ld>0Y`2H<_NDs{zFHj0w#4ce@iUxxmva~;S_pdFA64%d zwq@kLnK@Yznx` zXtgzv*8SlhflL!wN+8^yeD!S1hk+?FJ7eEY|6~~nL*_B)o}n(B{7Gaf89L0bb$F&0 zG4AIs#v-?sD&QH#u5s4JV@j}MpyrhYnrWPA+?h2CC`&jZb!xY#FpNXeX#$4@wer|= zI`abcmw^zV_yO(DNeeE5eSec$X3PGd4hJp8Nx~SsHP9W?v1B9;OG~(iuq&wb;NuBx zLIFFpS#KhHTx$zW<=X6ONj?i@k8D`iC~8GlpM>FmA)we6aP-cvLsY%|_r!n46zfSV z3^MY{az`u8)onE&{iYL-{mnD~=poR{!Tr0`7a~IE>|8IgF_oI4W0XDqQ$51Yu193- zY9Ehc+36FAvK-lw&^W`1^C%6_Z{y_4b$S=dH3Bx24En90-yy($^WRyGZUX$&mw;QX zw*5joCA9=sGen0HGZeMufnpLBKPbd}tKUj3{=_PB6ejMMi0Kk12mco;8TR6y1OfH8;q0d8X*2Vf?%XMLrav|9q0rs8 zz8v*CJ1u3e7UCs~!a}5(QyEA6N@o&;l=9Ll(;Hg9LEwf0WHK;-&X0W-U&^rv%+CS; zGD6wrBHIX8iu2@D9;L0_H{lIN&mM#geco@BKfDS@A%2NubL4l(^Cj?AnYizUG8%kk z-P^W+!0&*5LaUW%^-o2<@{t;t()O+|EOF@!grHh0Wq2DfL4SMySX*hS*6pI&iNX;% zanp67Yd^_RV*?R60cr{6D#HJ^8nM-kso+kLXJeAFfX$IT;M#zAx#Y3A#;^L-zb>Kw z&oa=?zzKaj&<_Ls_|)?N4cFN~Yi$)tPd_I$jZ-=aOT^}jmWFz?H25X%*9?)g1EU^O zgC(F^a4w41u#7i2(hmY~(VN^FB6(j6#Fq_{0=m{|-1E$CD-V_UG zM^u~u03@OtwFNN3h=q@p)mg6-x2o!TV3eo)oJ5InKQ=3!8FB6)I*KBM=R6|b8s~2$ z;t$HOdDPOL3tW7D*^mFvo%YDpP%khHE+eA2SZqXU9ZtrkYUD!_%BQePsC3f5Kh8^~7dRmpGnxMu1?QQKK-KYiBVA5;-SHAEboW1MSjCp8O%(+IDG z_pB#vbvNCY)ipH)Y(4*Gn2GQGjCUZoq+ee&$jE+ZfxbsY9f!>{cXj~wmMm^tbYw-o zr{U*?+AT|h4>t?E#78tGWFU&6plpHgQhUqV%XWaBgc!C*maI)H31!t~MS#WtCtwwi zaKP1OT?20A$F-Vj5C#Wq^)hUcRBX8lSt)!V^3uu7AA)J1u#F%V`q|$lV25gZhjxW` zaA>|}-EGFLf@e3G%vWXzXO#*9!j!AkhUhaot%o6c?S9Az&Hkt8+E&jQ|1h6VvklUd z;ztOL$F|nMwd`AJTI)}G&ALw<+wtMWte-8SJV{a~*_Jg;P*shwo{#-0dwvqd#5YgW zSN(j1VwZ+FZ5GL;dWrs2lDGs;QQYyA4j#OJR@Y5|i5doS^c*%`n54zv0(%^q2pS1q zKL^|xNwV<+#({gC@G(}nKU{9LQpq^l-tgE`q=0u|(mfS}J66Lwncd&dAzK~pkhQWM z5Y+lJkQoeuKdg znl>2i%bjt|%2YQYZGhz zmoK4dz!TR}S4@`)z}NQ~l|SHgOx1f#gmh)ikg-SL$Gg4L7Son%K$panKFhZ75Xy!4 zaP@Op2bG{Ykj$!_iW%)54!RNl1IdnJyYW4qNKAKL3WnnrroVJ=I_7Z|xNyP(?gY9UhmK}GufcxEz)(#H&tDWjJ{V8sWbR@0xq z(Ee2mzhv3F4MJ`C%KVi}?O@!kpA@8Kjs_bMtlAdn#Hz}|tZ6mjI$s?%usOJa2+=R> zK16B>8eQn{2&v?b77`Dk;L<5(9F^@wWgx6)-|e!5W7D=Z5*)p)s$V}!@9 zx@=dj*&y4*SRF^P$J&{P3WvqE>00r@6@LYE9W5iTs9ZL3R6yZ*bdLm*iIFIeaucb` z{eKjcFX+OOc9@Bz@fml>v=95xN1#;i9iD=P(dAp}b_f|spQ0XTF{og!gNCDf?6JdM zajEJHoDnIp{<_{WhgVn=h4ZeFLi=On&v`ZAZ{@uxYhMkAHz#ohn-+{BsE_j~`W}L4S z>s*xff3ysSWz=b67||bBn!sowwHmwFrX>$F4y}p!O8KdH4y0d_tB3J7cc?Ubap$OL za7aC`cKwxmbDgCvEzSoppBU+j-X*IgMhCw z0uNfbhclu8=rOAslx?ZASY(btZDn2VPrT5AyI?M1Q5s~M+1x~Fq(c zlgVq;9zy>IEecx$d^Uh9x)L77*YieTEL_wpli3Tu;S+5kLfw8Qr@)9V(cibo{M(D! z&3|FwLRYxeC&?+6rPo4ZMBn^5i!e3ZryMp*s5FH%Rg>?6a{4Eb zCmPHI+?Y#lA5A2fu8?sW*pF+{9?cKOo&+#JlSbUhqBnMvG=rUem8l~@;G=pjp$#WP zN^}?8axn@3z%F+W@1QA}@Tb%v=H)U~g^tbjO4!n?06Rw;1yv@kwyt6V$%yDbTLaG& z8A_g+xOgn7;u8ISi}()sy(q}a`%YTBKd+}cLkHA4wHN6NIINZEMN#DF6ap0!{~{9i z_fV?5)1nPN!ij=Y*L^xJ17GG2$C$wqFxIfvm%E}*l_I;-R|tsCH%TLf#)G`rKkd7v z?@d=9R1zu16cJ&B6lqkvnC5b-|2+}DWk1mUzS;e~9~+PyihvitpY@?|V%xaSeWeMN_l(gdh>qYg&Kn+%HH| zKLf3bgxYmkW04f{>)7iMbTEd)`x7q4+Dc0U{@9?OZW)VPUoW3qsv})Jm;kHu5@|Mi z*`a8CUv|;BFC&FCXTKFIM*j_!cfD(Ly*A;CeYKe2%+{3t;qt<3TMecW0Vg$8Y&nX8 zKTO-EiRyBd<<%@jgiIHpaRs)l>h3CU4M+PuEDbmXco+i>4~_Lv@JlEm*C)`}@msq< z_5VfE6P3W08v?>9&X;>A5x65-jm~&~1su$Pt!^`=vFA?Ogz1d~eU2HHUfMwFXG`0* zWMYj7?cxa#t6z(RQ#(%RdpoBydLaDsrIR-jC8H|$`V=tLCL4O?W_qu;M=$$5w7e2? zCqcZSIHY=*WhX9pb{O|E5P5P^My)dZOlnmxQkkbsZZta;zih23 za(673w|XuzJfpvR3y`J)IKQHe)GNb+4eBu+2C8?Gfl;+>#<7vnN0VP#+c@w%0hgs@ z<5^xEw{3Z-;)?RdgZ4w{$h+-N1ugboM%M_tp0Gtn|C~Dh9=hvlx!x0Xa%^eaq9htE z%f$md5-GQ##dmP%*ThgM9NSK^7%Wg z#IL@|cvl4rsNOMC>C&ph@sE{RXo{3}wKq?dG^)JM7Gp~lD$A~4IGwfsTTpqP^d$5+ z)9-8-c_%`bY|6UY>&dGAX(bMT`)<0EPk$A`y ztK@@Rux*nlA+Mi5w639+31g$*_B-Vh2>hU36VC8+zZ*yG(12%AL2&pNH&9-<23U;` zl-l}CwtCawFlK`(poHU*=>x6*1@Yd>;9))$cj=7YQ1^BzK%Fk#y$1hD{9it2(-^>2nr=j&Y1$VO zYm*CPC?LexC}cT5lmoY%OeG_eYI}kXZpIJ1VqJ+HpLZxqum5IBjy57cvB6=O_ucLa z*_Y-93RbWl7q^eJ1$V5wD!@C9c8Cl#J};6}nMxIZZ+Yq$y-dzBSn+Zn*o>ij0cwAZ zi<;vhCgk84o5c(AYKcGE0;-A+djX=Fdfez~vbMAj=QUQf5|zM>JAT+UQ;}RN2v*}c zcg&)()Jlai^B>%WKI-(OUp-z=Eb#R-yH+8l3(Z+IGv6KLY6VoZ{{m+dNY1$N%IjqQ zl+7KiGdkg_B}?N42q?rucNR{kW46wM1G&Wtg&s&5&==!_6G&UDULCPljO>m|hc9ny zc_?eW1TVHP&BHp*EsV|7SD^F)kHL!y$=-jpFB5jpkdWMJ!2wx{oWO61M*tRKauaEO zco@@Z+QdlL3~=Xh(PVn!+s~dGx%HasY6pmX-x-tmNaga##-Mx%PYITx=7pe!yALMS zVyY3Cs^_}4L6*!`Q&hpZ?VLMSgHh45#yV;K1k?G>12W1_#2gG920~cMXP(fGtMmNZ zk3ovVg|-Va?}CyW^ePTpDm`si#Y!4JXlLM_JP!KHM^f`FBOP_lGNNN8(0;a~$a0rl zl!td$kxnR9anqEeQz-XGklO&_G+IZ>0|_mi^dJOgq2A>rmvFJK>O6kpxNw1HQ3^?P zcC?e#Zn+mkF@0|rhs~V%i|OEkrD8^tS0EAQE@4v|&?MkH!LsMPHS7EZFF~ zzMoF>!1<#Pf$B; zEl_!Akh`xkTLmcxDXY?nG)@?M=6tiO?` z9cg1l-|mUpk>k?df*SgXV5edaifehj^2_Lc@ry_1muN5suAO;IC_oZ?%0Paz2}1^D z0+j`|P4@&{z?`|EgS6t+Is(EB3^k;=9lRB6+bZYuI4=#7p}UCXSK z2*iN$O++UbY@~din_8iw&ipR$pnY`DmuRe z(dBB^m>Rc+#1i4`C%AUrCQ&F`fbRkK&3d0@1kh^gr5(3zYR{bJ@`U60?V!=( z(Zd`?h4`P^I$37-<{{qQ5~0!K`n~%S?JvPB-At(x0VK6zXL>vYF^0x`O}G1G|+dHvTSw?}CIedWG!5nkAG*Zn{K^=?MntQe%Xf$o?fLWAJvw znrhZ7_&}y#$2plbOAMkcZKjMm@#Tsy);^wW7amyR|7Z@_ zvYz$ho0DV5gG%K#0z&&LL~$slr~-gpuLdo4Sxb9|KJ)3G*czZ@82SITqo?0ezBFg zt#ZqrT2kNb(fcS0M?|ota`#)1S@$Cea#cRgebV8CRx6n+Q3lqAbSet@e8xeu|14Z& z^0EecqHw?w9#zl6{21lgCK?SzDsGjuM}4uWdT)Yue6=T4y*j21Q!q}CR~4CUj!dYJ zs?r2Ly&5kMkv1T;eg$641hp$uc<3SH@AuhITiDSA#rG2arg&?@30}8h0v=naeCY^P zN?{K!5{fo1CIdo;m;4%K>fLNi251*bhj-Y@wRDtKgCL4LM_{GT*%crN%1~^DwSi%qUG4^NR6Z?@|ZWHa%3s! zlhlVH$vN9W5-p=3hwbvVMNMZ~HV?min`JPI9DR$c-H1@3=THoHL7bUF((xlT)MYDW zxsUzhixT7ZiE?39`!Z{q_9qYi_Zy{|Ht|(CsR`UM zPrhqoa8|9ubib6*t=VuzA{3;}KDg8s{c6+jCjCz7KBw8nBrdbT0shB7)ICNa~i9uIHAA&{yirnOL#J(OIrvhFXhU8NApqTt|6)ycS4{ z8v8%)Rj>~2p7@3ukc;k6;c5a};qxW-kqf7?McP^~IupHieLsjWhY!h|`o%uUWy{*4I;*2uQ=HqbXz=30%5D9sVaZ zwGNSu=>In6!p14?%b~=g;B|!&v&HOOo3k8Iapx8^K^J1r1Rieryndtnp3nro3BCY% zJvIquPJhCjQ_c5%hEs9kR-LJ<@RR&S6&tz7^EkeYx(f?!xqIA$ND>@jOqw7tSR^2z z`dVw}_EnRsJ%z~Hs?`D7s~P36UH7xcRuX@&=U2@5u#v=iQnau2CKJ0;3Z|pN+9eqn zNZj2?)I^!%jlqs4*#DbL$gJ&y>mMp&!9U)#`t&F~5!qoPtN89!vHe511!pu%&)q>b zWEq%yN>)r_lSGI&%jegLVsg*eKUU&XOPth%Z#Yp~YtwRgv3)hgI<(%ijlU%_LI~&F zoi$#(=;FJW;s!L|pX7R z`=DEOFSXWBJGm!Dh2=&p@lae}YG=wLemZ;=eJHJ~X%n@#mHaK{?`z}Tlb#z%O&3qm zTU})wmv7j=?J60Gi>_-r-^^u{d8V?@MZI_M`V`6?GB38(V@usuCk$7qOs2#kZ1Ftc z$28qmuN&a23tu*oc>Ck{Y7Y*8c0gF}mhoUE1@=?q1Xia3uhW;f5^o%~9ME@t`n)p) z`#x3h0oEdT>xZb{15JG$FQNluG`m+{MFPd99&_B|$-+QE`t9q(aT2Ab+%Z|RPdriy zVujb5+V$(ouWBdrZIb&YG+ozhX0jPkPkLH@_XJzGhBlnN1xYP-{9@h4mG$kXIm z%cOasMDr;0^lZ#hf5EL>VH>3ok9K?r2t^OC+*B)IlNG1Nfk*VI0P`>$M;EB8$)4m&{dDlhesA z8$@KQolaihKaP}Xn2uDMaeebsqWA4)F%c)@)|s~~jQ_(v^TIdQuE=Ar7DErR>{duN z`uXXqLYQ2jR7$3&cwj;%}&JZlMou+HxPGeiy91`BMkS}+r*Lt6xAs+RO z=se&p&q&5&ONsPZ#CmKF+wp`}J)bmz-blFL&1;A1ePsZ85Nwt+Hq5$ssK);8N`~xPcBo zle5t1kT*3=S2}0%*^MU!PAs}lgE|uX{uGqhuFGU-uLX8g)3o@vPA*$nwTQOj{xRUX zR7uPoJ+x!Q8gAU;!}vQWsz(K-d5iZ8Uz6Xz|EAW_Iga~*C?Eqp$*$8RxfoCC^R>7= zNybuDAm0~L$C^GeOt`{~B${z>bd42wL|P3tRiWrm(OxqK3MDXBwDC0!LI(?DfQK0Z zl~?_9+YrO6H!Ga$I~Ok$g6~7lQlD^T$L~q2wR4qY_=da()klv|(<_I%B$g>G`Z6PP za!~F9I=R0R;{O=xCu=7-PiU0lWO#k;tzo-O!Q`mkbz3W3rtRZ8zaC zSU6J>9K9Wqg8lPwv(JB!bzUo*->eej*o_W57!Xhl_Ik|8^_zjnpO&6-0a@nPnTW13 z1|E?zT}P1k4Lk&%zj5MTTWd<$tUC;-2OZR7r}*ry-yZ9xT@6~tR^FWXp5*q+-qyxL z<kxVR_74Gl{8_X^mC<^~*E3GN1LW90OWC@ew=A_+7T z&lm)%(`C!aXL!CiBS3Jw5qb?PPULAU-2QW-`LdN#bz5gLlYb{oj9#zt|L^!Cq-{;iVD$8H~lXy@!a_HT{!PVBJfBWb|?JB|kwZ{Gw? zJ0@3xiL5C^2)b7lhtqJepQ?eh01E|ZPwYX>hN6qGHaUxv>?e(}PN5N&F`+RFOhuuu zG-|W$FUlLC{!ET(dUuuE)FkhHGgs}P>etpAchZ> z8xWJ<@C$*Ox5~+(*MV`PS&Ix(WqJ!?yD3ClR_WlDsukbsK}eER+y=Q3YSrRhHBa{> z`n8)`2_ip_2MwcTSqu zwpm1(KZagO*Pqrx>h~EaRCSUx8QarPiU4{``USs?UBoo2QG&TG^0#qFT~8t=d!{aA zy+>Fjp3G#4v?~aTbu+pZc@$6|C6V8u9F=9xcKma$#(6TWO}sXX;mWSOE~TtQfr@8X z7a8lERKA2a|NMIr8P~+2mVguonVJKc9jBDRKIyQnePzo_mBzA^I&*g76xOTt!qD^RKX(w` zLvH`2synu+vx-nk@Q?+*wsrU(V!-dzaZ~yajS5>%&hBEd(@xP$q_v~j;nwJg>Zw&! zvA7aHl8|rgUDOhLy;&LA;sQ=oo*ZYs9D8`$R|WdBBd6Y*Ym{w9@Wony8^_A7ta2&sW$5=`(40tdo;4AQ=B;g zAN^kxjSi_nftbG1YeF|zHl5l=Qo^a!?IpNuitxdhx72kQ`cs)YLdh1<-T z)Q0|NZxvnE6iIT075t@n$OpC?(YAZl$;X^5fsd3bRW)OnRe=3h!FWfz4;bkVvw|gjtR)x!B zm&A9rTlHz4>g@5dbYt%Zx7c#3DKIw~sMi)`8L^c+Yx8|0+EWs_-`KwByjfqs{L^y! zHZ9sDmD2bMBIutQ*8XGF9!$~yYsfMBB?W()FeyO`$W;SuA zYY$#s8=~{VDCg*x40MBj^@|M@&gIKp;RtcE6BKfC1_uFPET#6SGN^e*T3zkym16#D zZzFg3v3A;tU#O|;x2B&8vH5v=`7CQ3W3rl)zV9;8kwEz{Z@-y+>I`Lf@LJ`q>_3t6QEhW37}^Wld_2`DVoI zS4q1F!B(5NyRV`nb~}Z0S=XNV-}gCldxLzhDNzVnXi`<1q|RY5d!?k&JY#X&Wn4+F z6lB?D?|6*iH))RTDc zk}D+2crB`Rz!(2P%zPi!N}IRpo^N;t;fa*}jBV^JEX~cft2$lZcgFo(Qs!fpijIjKaa7s$lyB*5Vh_Ip>B)uguk?svU7oL@N2&i5OhTkSAVZXvd za6fSLDjnmZiJ$w_-X-B8W$b78-Tl@flZ{v_cs^8I=JFur=QO$ zl5QZ)uZ?o=dh36O@8&1i(mRa!I`4cE87am~*3sLn(@%=quJ$Rf?cOzt(E*pTug^F4 zYGD5T_nQnwbtP1b)J*KL`pAZ_O9?W)(NR~14+7_Bn^|D{t~*jEYmHeeH0=Ten_r(o z6KXOJt(_R|XeOlevWjf^foU)_fsy6}CM=(en-$QZ9%%nVmZ`BaC6=;68g$bSc4%Xs zH+oF01A8#lBp~-3Yi|D~`*_N{{M7**0!K5P{oH6Ee^3@(7$gf0;^z9(Qu+=vwvB0m zcTq;x$GH&k3IA-C4dmR4J6gO?slU55VM6%%Pm43tibz42w+O66Q7 zWFd)J7HPy;s;n(0=V!j&jEqA!YX{v$K>3?86eK2{A^fqp!<;UWI_#w^wX7+y#X859 z(9pJ7zSOSLsO-MHe}_U4n%+I9Ia_;WHwWV2R5e)t7573m(7W?-vf{?W34^KmD2xc* z@QCDD`-B21eQJ$@DNSB_Qwy+K^3Nk~LcI0~u0!>*EsW+EemXCGIO?CHx;%q-uld%L*Op5ROqzpV=mI4~)5fpvEt z$_k>u#P_puC*8J+m@`Tw^wb=RGoE8BJ08$t!fo%ZT6CMs0vmb~B>r^y*m&sem8nQMK_Rm@=x@H^8#8Lz*Ek$XnGwB%cV zDpF@r8*RvhgMN0}e6V`Tk(F1H6+2@0vnbpF$t zTMhiz<4a%K1hHx5Y1Mfqzu4=HPWzNEyBx>|{&V`i3-wX#_(lvzVlGM*?V0c2!6=QJ zCY|1Zm=B-MJejQ>pJ@Kn*H=2(HTv+~A(Grj6UhoN>{*3{3sQ*7SlnW{u;v(sUpdy( z7cPE!>0QNF-swUvXP)=3H)m@nOR1bn6Ml1i8WFzu*_A zn!s%F|1tFyeogq#|0XC11|=mR-4dfiT4KOpfV7}=iFAudGdf2zIt50TN=et~lHTYT z;i%vI$ou>F{Rgkt-Rtgk_q@C3nK%yhAK?Q01V-IAIyw<)IN3VoQGxc*3&e5NXTfJw zJMzK+kzXrdIGDO=py+^rubLXx^Q$HOg+8yrI&XFK36|zaQL_f zoPK8gc02JWy*u@~NgYBQ-WQUe*R^A^B)1))S+gFP0pFKO_)rq}jQQ0iUHGI}bI(@c zR(%li#UR1Wza>>kpq5*2cyE0U((LaILr7&i+|~+JTGthES}rHNXY?vqmk~P~uqf$p zWn@<3QrEGd^tDpx_K3xtG2go!{3Q0$0-2X1l2{kv=W!4_%0=)jzYSH5s@SGgIx-WC z_=^q8Oo&m)@(2MNxvJVQAR(FZONBi7zN#vhC-#RQR`X$ervto&?3<1x8DgiCCL`>5 zkNZ3+$(Bif3fvhRDt1X0^vTr*AK}t#Udm+dZb~5!rDLqiRQ)5CZ92pkfY^>KxqYrR zi5(T2Nf!MlxtJ#|HzqiYU%aJ;thZ-GAQW*>%c)QS5k(tn@MCNxhhV73{AD;SUqVP} zJ{WqTyeCR-$HeXuh4kWeu#c-LF)sav-50|6!A#t#n#VG_+HH#Idat{!<2L&6x%ylH z#rW@^4~hk~e(nm`gj~Fk5Pe?kMh+>qj#*&HPf0rH^T!U1cb`U0qdA^_8lP9NeiK|( z#yPM`r^!s(^Z^EQvn)u8%)&g4QgcXbQ7RnO-=blG`(Q|?$fT|>N&VKnQFDFvF0ubK zbSvu1Z-j8QG9Z&Nbwc3t0-XSf3ZV!GRN-4y=9Q=mMSy1UyUXE$F&CXhE1iCE!41E1 z-;jsLh8bX-W~5?JJc6V0P zLX-4bdKBNZ90a&fljf`xCTUgRa17EVU$Hq`l8q~pZTE+I6@g!*by&XqjllI67KE1u5|!VFVn!hhP9V}Aez%pz9iOAs8ry}h z1Vo+G-_5D>i(2H|ZHn6Va~uvVD&PA@YV74^)w$#fMw%=wPO-AT;k10wjuuphJ>pMj zWjHEKz-ds7AD!(+zrV+35@Dgz_?ZWFo+m$K#1LEayk}tI$x*QYzg^-z`WC3?fm$J0 zC}eAF@*SoW4+m$=Nd%D=X>Rkw7wLF+{Md@rLT5eRmhj^RduwzVh}kN!4N!ZuUUCH9 z%~`+ssrBewaJnjCZr&8DnL`9(xKBgve>>#|D)80>4URc@R9!e72P9pB$1{I~7tbl#-beH@xrW-D8n%C7o@tpFE0#z>G5?G*Lr8v{ibk{mpC z%`|^B*{ah4&6<0|xmwh(6`PhV3C7Wscb9qCwP9$ud_W;O|C z$)K#~aU3yfH2zA@1$E{e?!aSPajnr@3uVp zm6)IxYP8O@=KZ_c3nedwB()Q9s}&H}ER~S6$Znu4>U>u6e7dVMab&>iv?vt1aG|Ex zt@pr6+V-a2G8{;Rk+VT|%-ovu2Oab0mV;&@_1^4N<-HLIv&-qvD?avFsTY6nJ*~|S zsyF`@WpL~X_-QKmb2vXHi-%(8x`eiDceO((NyF>6yQe;)Fy8s(waf#sbO1}2INNR# zjlSdcFar5EThZ?}(ODGw(EZ`ShKPg-0t2&!lTLhmj2g;&n-}Uxz0mQbKA*@*vIGZ(vgab{XU8X3!N*L|Bvbf! z{Bg4BQQNbAzsX=fb&rjjLiWc`6S0V8-}NsPKCe_bbid4rnQSy*9OYLmD~>i0z;^o< z?`XjnxiV37B%D&KVX+=Q{^*%s6rP4IWa7My0yR%(0AAG+P08auPaHHL%Zd>}veS?M zy`#dZuML*Z&0YfaJhDCZ!=|Phj(u3quAZpvg^u%{emnds0P+;|)GU&)ct1{hgh*g! zbW9yxRHf3a^TX(mGrk_nc=||Zth&5UKb=II|M%>-vtJ10-GiKx_gT-dJ~^tSesL|e z!0&Q^02X=|yK3PQ}{uQxt0V1zF zO1+(DHd$jKefE3m-0{F*(k^+J0kFcjLXc{iz{EwehXlM%pu{f>&%T*8LYpdQBxz^fwpisa+wDavnrFkkn7$VGh6|`hv{ooS zbR5&*z4zX#nhDkz1O7;)mvwwmfn87D;z!-`q!5l%8Fat}QLK}?XN|U}4Plto|7PNc)as(a~YUkCAl8wx!eGJK!eA-NT5*`*8*gzR- zYdsy)%g_+9Ss=YxKO*bkVAh4nyuNyjr3&W{d8z(zr9J92zaG2Ag@3TLW+JJHl9?xE z&pLYVk=Zen_}qMHDuR!g%x=~(0F2mRQUTI(lqr&aX^nEZjQ=c3c?Pu zh~oj2)Z{^|YVE*5VZxR>G+MOPLP-=_WUJYdy<0*yQA40C40aUi}DQb@#LD%6F3-W(9kCVK(S|^6HTrf8S^i< z`@Nb{fM4V_$JIk$iz8HPQ{BjJyxwU<#ZXiB!EV~S+)svTKffxtc$eHVuJWIu;=Ck3 zp3&}oJ{t5NtM&T)Uz_vUi5vZlI;Eiu_ZpnwcowKs( z0gwC^miQU1Hno~Y$`RnfF+x1aydCalWQ{RA05=h-3tj)E;R!u|WJ_*1XW58V{Knoj zmlPyYK9oT@0)NZhxP!YP1C&8VSmxBy3?*G) z7>m|nGbql8TrTq0DtOwO4(|AAkxe^JE%Jv7HaIH6a^~PXIbFqaBfT!~w0H^6q*zK8 z(zHw%^|AsuZ^8)=w=y3NjX!258ZW&C5K+pCr3sWf(ZNPt?+kPu+nV`0FGaKDv7wp1 z0zEbk&{ns(E7x3%7o(y8Xna=LQCz*I!Q$@O#4g9?5`C5)elT7RT2P;{*^#h(MROjQ zqVt(;=OMjCQFIOw^ChNPCg$c}Nv7>p4H1p7LRLcWLXztH?5n-brGO}hU&$<)_^hDsyS3#U&rh5DSFfOXt}gx=n<9eyVEK4u zhu_>c@Y|!G%-t+qh3t0}HD8qMK+}%0e|jy+y#(}zf8?4HjL{Aa6mc>J8`HZaLJLtV zQzrUjlbhZ;<6rL!Xt(PtQCI}zHeXqNBj9AAvXap7r;y8fhSTMxGuLF2J0gWmR$v_L z`U>x<*9AE;o2xa}Q-89uTqrIOFYD`6~q zb_h!K$e%RdFj00}WHZOZY7q%UnSoZ_{p(HwCW z4BZZdHKsdbwvKjln9a2n6WTH0RvyP0GN)8?WfQZqKDzrs;J;BN971!%774if!&GDCE1OmWY*9q2*Q(z&enW@nyNM6v2(PM*N7d z(t8a!Zjgu#^=rwrN)R!6>%MYev4Xq_x zFslop-et?kY6z~{tt0DO0F1$9{l&eH%cH%-HSUjru#+N?$U&`CJOegG`u;Z(u?!Gm zx1){*zMU&}Wpg_>u@}ZYJc6@DYcZq0tg(vD$mxZ34$ax=X5{OYv#&&LQdJhjbAC*H zu-Y)xES$<_NZd>f*5qGD>G5;S$Olp;`5ub*7B`nl1>e9x^!{N()d323>0%X)^)$(; zWbJjZZaF1fuXuf9KHfZ|w2A3y4z=aphAH<1Q8V02Kbt`27>@{MZec_ke@u=jG^w&q z*3uNLS%#Z;o|mhzro0QZ{YOp0{kFS(mGR zbeQHCBwrAWXO3O^T~&_<@H5E{+$9-eeb-&z@%PZ z$XSVsj%Gm$ucb7!qqvplR~UW*8NnfSl%iQ2b&L~syB77+PWz#remiHY_Wt3X`SZbd zjnNc&)xW}}|N8xRmc*wh$;-#8kY}YIt_k$isO|=NpsQEtMJ)-eZQm<&f|-DGv2PO# z?HMJz0oZ2;SMDK1HQWmh~4}qD! zYw?IC+8QSg1&*K)1Y(XxSyr!}*mzX}z~I)g?W~gHc;D8Kl*aYVsZa7JL-cLdibAG}j#ik@oUoBsmpj{c;WjG=9YFXladu8Z^&w1t1Fb6e54kS9fF<1_I8_aoEZ$9wdN z$}EpN&K`(!Rn`%C7^GF?2Z0uj`UnS(OL1mpkn$LsPei4FgsNZ=9%9V zimM#pPv&OpSek`1QVaI`B%M%9d|7n`A4)Uv5j~{(cY1fB?aidnEIA4W$VPs8sYJmw zlx!o`SX*bM5J^9yHR~tBTbQGxrGsWm1zL)|pZhb|UAo2o!1g@dy?YmdBvGGH#`50=QFY=(VW)}J3XSCNa15%FbilQYS?L$*l8KxuP$(e zw>!cWO*JTFeQ`|gj?4G(G%*P@~lmhmR>*m2w{_0Wo%^L%mQ=Q42~rwP2Ps|t&9DP6 z;}Lp-v9i($_(k&21Vd|j+hew#>z{UhFVW(4G`{IHI%U(=d#te*PJPD^0`pa<;XdK} zM()qOT3CCS2^MfmIOW%k7OO#UMar);4gcDD^;qOgLy=%o@@T;Ap`94(F-2uwrf%{? zpzGYia_Kz)-cQ`W>M0bq6*io$N)o;sAaRFTtVr+e+4NlB7fn|%gQTu|Tt}pmb$r>L zGX8K&LR7v@yl`W9U+<6TN1j{FEbLwG_gUn|&rzZHHc1x>h^x{&zcz1dR}*ng789>| zR}F}>XEb%@FD%-dbk;nS< zUBMij?mKi1sjBI3(GoeB&S6;X3=~!0joA$7DYS>6hsy0a> zNFDb4`SUD!Tv~Rea97ySc+?h|vhU%1hgp0@-r!uFDkyPWXsilG;8y$%rfR_UIP0^h z$EalefVsnLL9)6UcfRS+g@c#J$ap7K_W09WAji(gh7b4PCtnsu?Z1fKV938YLPjKm z^0hX9&u}f)cdav6=&Z1i%wi5RjzRk`l!<`kHckmD=XtJ#5_V5TIXl05R!YTRauPU3 zIxS?ayw<#1yp!kCbiq!jA%Y?mi4X*hg5e6Et{=OjIH2WT0eGZ6FwO}hPDxH;6h3OK0#CkFB+yuhUujD zbiR&s<(ZG@(CJfhdz!w6W;~C!kIZUC!I(E7h8l>P1ad1FFcZhZ8@m9x;tY%u6!fqJF;yM*=*McEy(mSnt#CiF$t+cNii zR4O~N4_U*g*eL6bF*A=jSTHNBe5F6Wp+(}gpuGZ!s{*lA6*8AC_j`3|uy|3*?h0veANf2nQ ztkY~LY$3Ibxv{{=WadD)l20|nSljFecb|5XD%9`)(?YVl%R=hBrN;JL{oL11wqF+J zzVj;nFYy$G#(Q3-7}-$L?N?gy6F3#|#@G$@H74jA)yE`v=d!kR4Cir7@5{QkTLa@; zoOoSr63E1R!ajYdpgR&=Hc7{)%%QyTICS3#50U%>M`GaPjIHh=x+9Nj5HQj`HnQ1PJez|m~sBMT3 zzbGI+nXq^wC9$tZ-nU6s;X_B)YftA(N*TeBM(Ge`xkbGkV z-uLzg@3G~!!y6f@g7fcs+XT(zY3GgiLv;H+Gfos1j#M-%rJPw`rFc|LxGSQ@(Qv-a za9s)Mw@CMq@~3HsdH%z+y-d6^`to@_a_OAR%MP&RLq6F7Mm(@VlPIM^s1<%*vpDq)gP)6c=wa=FX!;-q;t%vTavA6QaJ6g*gm2pv(m-O~u z|Cq{zJndNz99@;hOHoqBhw$)CMnV^^^*;Z13$$1o)Y^#Oe3u34$!Zg-gwKtBYY9py zlciA}NTyNwrJMduf^7{;wQK-3JY%-sKvV46W4F-{KejO1_+h(K={;6VGtnBnZax|k z>F45VWKklPc{1_vB6Q3{tci5mYD2#W#8z_l>}aA3!~5@r?LQg*XiNa4AT`m(R^%Vm zb=}>vQ1zC#FJhS2s|QsW*zDXF10)corj4gH@e(C;>7(AuOGmM5b)ws<1tc|~W+6Dn zNssI)1cV0-WGQ*#Mm#^rPE3ZS>ov^k6TNEXhW+PjD?4I;sU8mE|LUn9z?2&>vXoCyOR%IneA_@>{=X z>Pc#z+`xp78jl#|^{AO((|(0n6Fiua8IX*-xYBo7KckU#{lUN6(cII>42X=xjs<|v ztWt=ZCagN0j^ES4UzWz#cJXazcnbdXl9ii|XZf1+X|r=Zc#?J0ku~W8rV2hUMbYaMszo8*El9lVwwThu2;OqOd zGFxa_#;#XQ-}G#=p_4^?Rm)$IOw{x6XvH}69HtlLdQfPo($I6mliTnLR z?mAC8_?QG0RxH}}Wi(SQ$gdMTIBw^lkeV(ODj&}<;on5z3cI<}{ent~t6uzqNMT^o z;GFGxewpxkamMANrmM1vazEzhwugE;@rk$v(2Dfoi|=9HGwu`)`YS1DMYM%7iV~=+ zcTgKG6+>W1u7zgpaNuO+aR0!0NhSZcbFCqjAvDTS=Y5jH_n$2lm8C}suBA;l>5rfX z-D5)*5iie6%>TAC7zU`Ss>A4~A)}f-_SB4+C1)1~fi)#J$C^kym=ZT=8k8Qb%3grrU$J-b+laH3DKRCD() zu7m5*=mM{da5G-*D&a*-M9Qzo$5Dq5v=QiM7KE_By|7)> zku@~>LrT6EzMW>VXKfw+LKiIC6h_32CI~>S)J9f7+vam+?u-V-$z&lR7fDip^`t#I zF77Qy&gNyf34^Ci?F#!e(yWy2Ej6cno#T(`zKItgOfWJOvB_b*c@($D;FUK}bY`e0 zG4WtjjYB@FF=IjF70`E-lF)J@993xElYc6Z(WT$$fIMyP)n2I~{Xb0kEm9o$jGQMQ z@%S;R+TD~##H$Vi!A@E^H?h-FYTf^d{d%LJs=~zd{kPF>0G}Z{b zY4>w(SNHZ`)7$ep13eG{Z(|#Lzf|8rAkS+lYjVooO^tiS6pj7r(o)Wh%Nv4q6V^R9 zRH*2Q3VtyH2PE_WmAPgcLa2Sp6g5D)LniS%y=1kL-4) z_506dFLNwJ&2Qp;8iLF;R|{2O=Q-!qHqOH6XY(|X{M7N}NYzI1YY){HA;zapn`7>? zYdzCz5G!^^#ez~Y%xekZqCSQb?7(N|M4*P<*T=`l(?25|h)A{bGa)0E*#5)L`XkT> zzx%AcU1M!mK}WX{$fi2Vnq)~XSI7z50DvSUwOKdfFe2A%pF+k@eWIY*JbE-qTHxz< zOf`F4%|1F)n1{s6DQ^_^tWRC3ZGT2wk^p5oko63ayOe3vK6lGg?lP@UoP&ox4(H zq}oS`&lD}n#M(RZcEUrint4);)bKsa-``Q|IBfQJ+BK`#w$#Nhzhm`keROATOnk)? zBGcBH2`GvwWB=^{(AU^K;r6@wV_`HN+i$#023VG>7F_XcDQv5(KV1lGpZEs)=Q4i# z1e6rOoXVtx=@hkgn<4ahG!&Z|h{!LB#+%|6qH-~l+X(x3JQv`^v+(#v*$4q}Ll^v0 zS`Y!8@2QU>w}4@(U9NJj9KqigMPpYg(TuW8udv`6yoY7Qw-wx+Zay$Kv-9!sFo{;n z)y=efJ3J=hf1TF1b6HxIleJf-F$a$epXeKH&}k0Mj3wTeUF*)gQ|wv6g-}iF$juOY zh(?5APzlRPUlRWv`150YZExtALP`Y3bYbW9DE{#pTv1bM>%}Lp!kXV*J<7{HKk_ss z<*+@N9}~<$pev@U50qpSf}G;-=`qf74fg>pL?pHA8GECa*yu(@VbKgdIuqqc_?hBT z$Q5R9pl58nn@5m$-`Is8&odkRyCbUuiW7|f1Nrt{MB^N((Nj^7U7^_g%|sN{#^jbk zD}ti9)b!8v*2zN$xQ_&u5FINwvrz9B%lEPTPr%=CJ26kftdm8o7i1fc)ehfI8hw;E zCcS*PCz}o@&oS>=pGu{0t9j`hb~(>qPfB0x@Y2pz-YPW3b@lY`(Vk&IYb_uI#3Tun?S5hNvRk^Ffmy1C(9RvVfvNs1#@eKo_V)Jmi;cnnNM zvwKRt=dsq_Ry2aK0rVcS>QsEXk~sH_AsY|JFd7m6xWSfbsEjk+`iI6axv85A30WT& z&o;in`s>2nGL`hRG%m_g==4V&sy|d8Vk|JK8Vea@oLi_Lz`nlX*FAv+j~7JmCsS#{ zwFMAp4>KUJ?V%Gkje14havj4U(TZIMdm2?$>TaEzU^1dHs;o3fb)x4OCb3zD9Ztwu zjP#mwcbD@B2N&Ar#JMxE{*HajydO+489qKEz-C$R$XW%3Dv3PBW{i#2rke3SFOUk$a49nXZRMXJu@S9eBj-2}6 zU&5k|T;q*~t5sGqI);OBSJG#>)&)3A?U~A*mDyfQ+?nY!D#k|^lXz?G2?I8}9Oi#| zPO2Bt>u_%-!7rS++hzY*+O2m`41QcPKde{VA@R&#GT!^i##4wB0+l&bL-4%ni$oi~ zM!ZWve=~>JK%A3I zcb&#A6IxoAlv;(lf3n8W7dYOt3gIlBV?kk?T@<%cy5eYsKF1=Y90eB(1+tW!=XSW5kN%i-?WNK>eh zUfGitY8M$|Sm*iVwUI$%fRtK#6u!ypS zb*D^uCvmoX=R4|yEs&_%xuUAu^>g3 zyjkN^pJn0(BV!?Da^!*xLkp$+S&kG$f{H_l5?WxVH&X@!_gv3BZk!N7ZN#;TrwR2? zSHT8;6{}HaLn!W4b2}Z`Rpu|Wy|U(KUo0Hq8e<-5t#NZqG2#&69+4qGzM0ke{)7Lx zteHxGAXE5&*3Ab}pP{QvV5WfWWElT0g@i`u;QKja*HD28X$Tp>1qDPc+9c0`xCr_o zeGaC`^jyPm%|ZTaLTh*e1*7a2u_t%)VIf98qdy=NE3q_3fp*SqP|u*e#lz3)>B7?w z=nK}?iPrlK;%iI?gSi`wihSUuNp`yxL6NUFpE$+j!16ORVb1)GyFLEHjua>4G9;+b z5t~Yx8^3jHKj@5hD?_BRIGs#Ja{hZYZTXOq;G2YR!q>DEipR5Ip3_scIs6{FfrriC z``Db0FPEJO0WNybmxs9zS=FPSO)d+A9RJigfPj)Nqnm~+($?{><0?brzTE$ULISY^ zUnIu6K9MP@2~C%MeVJMEP5Y;Q`u5Eg^6$DDn>EwE>x>KL=tjf4D5#)(d2jNAEolrh zN$ML;?i`2q+&}KK?`G!O*c-4iEje0AVY{)gy;~}pi;e4pJt`B=K4!dA(sq8aozc&? zm3n6?0t(X;f8L;LN=arYkQ&rnIAi~``!J>;Q+=S~$^cI0UhZpfHLedHbNESxD9oT> z9ClVwIsfYx#&eRGLW~-Ra)g*EbN4^tXClyYfe(6a@c4WiW5C2ZTT%` z!sDwmeENq~!qga*Kast5t7o`120IFK4={rr$=JN?D+WSBZjX%|4$Vu9Dtato# zxLNkV8jf2Qc6=mrS78{zH%z?{8m9dP@mTF}E8IDc;vR(4t3mp_uz@4QdN41xK+%}r zkZ?{~%8=eXVJWrKvQYrgqBdztGReT>PksNN)FVTpKq$kKBb9LpQH^+TKW>ayHa*Qz zzk!EIk}wJLLkHzB-usvReR}7wJH*j7P>i;bv#XNASeq_=M=sFR*g{zXg2#tX&F!H( zYYX?<=r06V$2-!hM!aK6jx=KRw4$W-M5zwQ<;~tH1Q9fIw=FoSwuG^i2$<0Q2~%#} zEjAvOrBtKA_VPR4I~|c=o4%KVj?{>$c7{bh8c3t5n_w6ok5MP+KV+9fLF#8z_o_;M z{3rN|-_(TAjy%KKRl{(V4rdcFqW20|*Ob@_94JLUdvo}QJvygU7oI>&@G_|qI`{D% z$!hv6h>37>glm-K^r>Ch3GDsHfU;Xm-A3Q;`!r$;V%AC!qi#>%!ZyC{0uf1+^`i3X{EnV0=o#!@of7tv0hw<;8(=CLKMo>Ihh$lRIEC%Nf zJASXXLVCTyneb)v*bsAxeP7IIQXxY7K8ql+hS;yJFM1Z$U= zK9VMhFLb~Hqu(_c9Juy5mJD|M7Sm6}3+@e{KO_jGx^=v6)L@HanSxbawcFx|*SD8& zB;kR*ibCeqv0xJtU#H&097a(#^v&6W&f1q5`c*N&wHDmjJ?28Xe zddRK(0H-5DjiQ1~r8Q6712+Iz6c1z8aagvEe!=3u0UMELLL7ts(bL)HUG^Nw&{?LT_`JDpI zCcG|Q%s8X513x=2qN857I_6(q`&K$U5Yv)HVE0 zv9jETyX->0E-K8G$EmIe`tw)zrhWOV?_hknnD)fUEnCIw^-|WBWJ2YVN7v&8I&Tdm z96mA*GI6}Zzq#P^j+5t$-&;eAb=iQz>~F5ihwNy^y}}3ui0!@r$M&lRace})P=RH+ zj06jZbX|QxW-Z$5j^Gnbz+j4nh$*Gil-yDJM8oIgQfuXlnuqw|ErK-uoaCVtEs^yZ z-TKWAR}3nCl-c^Iho2HZ539rC_F zIkF>HejrE7wTR3)quisNGympxw*oTLo_o~fe<=>IcG(TC2rGCL{N{1*ygle?{PDMM z-~e?7aqi+oG`Pe@#A=ZV5PT~zYszj#y6S$aEfF`m!?aaJCpIFoF1DBnXClFvs1UUm zO2N3jc{$o9|LJlLcv&I$NA=vh+w#OqXbjY-Yv-LBgLbA!S_`I?+n{GbqRc6=3*Hy0 zZy_wXkqq#rug=t}wnajak|EFHbUiPrNndqKqNyUWx2#>;r%#*~%@i3tSO{9Gc?6OP z`_@hsLEi#cZ>}<|lmu){X`Hz5%&#c8CLAz-Rx*YUsg{;v;1c*q$hJQ23*z2K6W(3I z770+NNZe6bT6?O8szyX|=?462xq4@=%_GZm`OvF*_L>SAh``*hOg|i};~vHG*U_V$ ztprDIf95%T&QHo7n~5}{VNXb5GInws3oLfC&STm{Nv|Op5TK>U&U@R;o{Aw+Md4Ai z*YM-DF3_ToZ~Ejr2cFY_iTH|yfsU5Y!4S1)>9`mEKhR||x$&Uu8}NY2-asjg*@+1B z0;A|>HdrK2ox9A|KeUfeLSzS(PhT=?o~gCa@VANhnUDKet0&|&^fnMK-e}q%SEe|} z_G_mIHTL*rb;}(<)VL-7Xi%8V0bAZlK zp7O=ccojrR0dajJd4(3gn5tkVRnvw0dK=2-cL6-?26Cf&2-YnQ&I^#zwE&E!J}>~U zl~2}4lF`cT?*3h?7qYmTytreh(-YINZN8{kNAj}GmQIhg|CI?5T!3C|drw*UZwWS> z4(yzcTYEXx%M=cpmH-s;@ODm8sqg0X`I?Vj1gY6t=O1Uda)kY4&_GU>yhBM*K^a6x zGt@DdoqPNEJz3w~BS!N|;*^GiX~yA@9hey>=dTxsYm+kLXpY>_tCLSK&`5WWveJKd z`P`AJSlwAfzIot@m&rBII__ z(|9%yfQA3Ml4mz3PZnFnHatQpze;^<5xcl2?quZswaRAaAJJj8sHZ*7*lB*3)(l;U zk!KPq%uzedjWe}^SN6|t^ZlplF!MUoJ}5?L5dv2CQ0$o<1g1@S=zOpN$MrnXS0nRX zUnCG!Y6mK@X7~=9673!3{zQ#VU{;x9C>O`MS*~u1ClBRnG7Y*SN5idNW)*qq4+s~i zdX;*A)b2x?BwKH4nb%nDtGi;2*09@zY06tMIJ}lfE)sdStA333)A7+A(0&b}lm21_ z;<>j;kleA!M<45Wy53?G$*e*kQ;)pm^)OWt(R9>@M*T7DNJm+jJa-FUI0(bx_ow@) zpZZi|MqaMPPk2uW7vNc<6{Qs&1qL1jzG2=c&`AuIHz|I<({e1cKmsUcnrt%vNyU?D z|n`mw8v~>guO~ zL_pYzgROPE`kpaT-8hrl2bT)f>pHvB0*&MnFBwtZ>oSFNP%_y8d`|&}C}+2pRV>4= zwSCaL%dHX)aTCVeZrpMkc}OBERe0!R?uqNj&&!2E5UDHc%+FN5?;KHw(g5*<{AKBr zDb?zKw((u`okE^bP0wprwEl%h{%SPFt{KTI^w1EGuEx2HS-Qt9VE^K4NZHaz(%2rOTuQhtg_X3ELM#$Tkn8}kfS z_+UR()k#;-=8eB+qIBYIb^{wMlBM&>6}i(|Z&Zh|xB66P3< zv*?8q!mJ@os&KTiBGS+=MRBc?G(WK<`;>>Pt{Bf4dP8wy z1t>}0F}=FT1@bU3A z^h$4vQT&6Y?jRgZJp$!AAS~ZbuyHovIn`hq{g06c%DGXcf`(*eI6?WEpodE1WYmfv zSxI3Ii>&`^e5foredZ(-PrcUi#QMQg8$5!08u66ATo?V{@}xHZ7^JPYRa3l8r*?Kp ztJRCBx-9U3bS+tL^<_pH?FGJ|F3B#MKr<7WZ1klAvW?@lknCQT*6}9Shs(^1%z}(> zrh6J5W?WtE9bQ?%g{mDCJ~HRSn!M>%|48O{A^~2qi=@Y2evo6s8M`IP>&whzZiM!5 zb{Oz&2mpuV8HHl~a}7WFh^F`shBdt)$ho>}5NgQ=uk3 zKCJLzx||Ub$Cp?bY^c8UgIv}?wSbR zA5Bxd2Lg+NziLjKN_GPrEpt+`v0HV?(_h#Q$r&MbRm!Gz><*=ASX2M57!AsqQJ!44 z!v(fn?0vVq{0XN` zW>pcR`&xU(>prR@n#}e)w;to-RE6`X;EsDgO>`Ny6DM8(z8d=p(Mu{Qitq;Zjk+dI zOn+J~JmGFgir3YJMcknArSH73^cZH|+_&Fo?al$xo5M|1A^l^8j$EK8W zxHa)5gRS8@Cwc2!Kvf~U^Oz^DhG#DZA^Sd>ut!#oZueL>{wA4`n%ZQ)hhepO{S%gjcK=$ZGfv(!*x*}|Uva5;N{bl|vc z&Y&4JsZL0)1^%?AU>*fG(tY4?KTyMv`A=hY3k1_>5%4P^Nc6pGoR@*>1NHjWd+W`)R{?1ZmQNj_3atB;J3vYtQwV7kb) zf%n?xHg>A0Xk?ObG>CR!FOIfF7^uX&zXFY%_+xD%>S;wJHh+OpI@&WztGMVF+435^ z{V<&8OX6#Yp2Y}r?QCc|PkS;yasaWV_Z>T;YR{=!D-EndOKW-3wCcv@Plo4myKb#8 z8;)GIl>)fmc@2iML*zrrGHtj&=l?7A+^VN&m8e^#snq@o@oT-C@tkppH<@B5K|`$M zwu+OWwHd&|p2NenQtV5S%?xkv`4hd=_f4NbWOnEDx?hVx#rWKmu=ec26IbS_>py$f zuOSPEbFaG zu41_C5O3@l8_}LsU~~mnU(9<3KazH1dMhlY`CngiSnib1Csk>1xO2_Nq0CxQ#~ysE z;Fh_<%y8vySGoF81F$ zIIqesnlaJtvexlfE*BJ4J<&wncTQfswe7roZMWsa_?ThxOS2yN zNt&E=bz;EahePa#}x&a+$xM*jci&omew%k0JwJs}_QI3aqGC zAInA`vIn-_;kI`^tyPuYic!HG8ySDzjKmfj^#zxxhD`a{dtY7JQLa1fsTR36CfLDV zR&1U(ypn=s;5Jo-=4jwQ5i#69+08x`#y4w!`mnKz#O{_VKRz-TC% zTKG1wp~H3a>f+r8L~;*41{1(Hy2bg$my&IdrOYVBa?@iTAl|!qxhiV?-(_tLW~!w$ z5ofYHB`7jGJ93wqh}w?I?dU&(hDI|*xS2xEf$i1{rd#K}NE9`Wz!Ea_u~SL$67WoF z9F4^S%nCPKx^3BCKm6bvf$)y}!WAlj^aVGeCqQ|Gt_sN^R8L zW{QF*UUQB2kC@>pP$kD-X^DfMsBs?9-(`&ZN1 zj6D@s3~Qb5(9qq`)qNj-VxF)wy=C)*DzPR>3tv({IPkdx1yv*A>UWsLh;Ble-lFP? zI>wscb6W)IgYT3%&J+u1(a3JCQZg8_Px?TBO@CIkc4RxzCaG`q)g}`%?b_$UDeFf0 zuNTG*lq`-%>lDl00;ml!Aos_lFbAJ(H;%YHz2L?n0c;7m_U|wz#>%Otn?K-e!v1$U z9Yk=ikk|{TKm7)vWYpRuQrSo~*Z8y;S?kF9EcXY`XGP)_+&`?Mo{di{W3%ffLVP;R zL8`Mk+W-BlGN2vF>0M&IK;eYt@Vh|l91ELWV8nbf5EpE6uCk@xd(m{p?ls%^NO8o* z(@5)hVYf~OOW|+_faMWJu7P;r{_sLU6CMu*sv@P7(WELoii!9jqP4$)&*iBEP+`mu zL(i{f9^{+tsQn6Z@!m1}BK#yaHbc`-;=y0QCa1K^Qnt-pijjio*fX{6Pfi6eF*Hwd zq#DYf+ga5kWfRA2Q|v*=x}VX!K58!B2*GFDlnn$ExX`Oqg(%((IH2D9B`U;1r*6wQ)6ciK$ln{`RE(z%#q`OOy9J(7sMI?sq6oz4j zmX=m2X=WH|DCzE@hWgHZulM);2j@A@IXl)~d#z~>M{S#;*24JoFODUQzfS~hIx63# zMK$)N_{c}{eRs1zQ9c_Axd!&qfjqjz1A%e3OdJ0BaC{E3YxDn6Q+WO?H8bW4knMQ- zDGwuVOf4bH7q`3^E8x>x7Qc<`t7N;S+ z*cyG*&h_O_Zs4}0*8m!D3z>mqt5&xqh?69;X zu}eY|0nzu>2ba6D6Q44$OD?}&ux@1?m*QvEb=?!f@F9?*-Tw$!=IWHtwP6m8R4g}= zYia=c&uN~68Z0vMl&eDXIW3^x!1XL3r?fNR&AVsllpLV?=}ABfm(M!qe@H|SN=jDp zh#zMton?|XHWfNxV07-bYEfj>q+~4Ue_@mNnn2&Tc=Uwxqqmuk*E8`?9Nplbb5nFb zH#SUjv5xCu;1HS3-wCP?Y3C17Q$>X$c=<=ftr~=u0*i+)?nS`5!Lg zsKDLQ_wyO@GOAWPTX3ZVhW%cNiU$6^B_8H;>-*Uc^aH?Aea5y{Y?|@a$10+uz^q{Z zc?MNC3Wd)SRaA4N!T zkn?q8_m0QZD7U8fw^I+Pu}OX!RT5hKvc6oaXe-$2MtDh0L@|_d(hX=4Xg>2I2b}6d z8ZgyUkEwsb)x^HgSm&&M4yh7X<=DsvJ);u#fl50eNMG)Y3O;=g@MekE<7X(tZQc5UTaE2zbRymh4&YpWIKci zjA;5Z5v6vhmVFfKEzYie3#&i$j*BgS<-Q11G=01vq4Q*hC!Mi8UL?if{z+s5RaoKA zBoLa#I2o7@_Xx@l4RM_jPpvE^(OAzE7#e3nbgGQ83!c=qXmY^e*eX?6_xa)6Zv9NLvZ9 zJMea)%aEBA5*CNWDYeY1P1ROz--)_W*aQO&7=vC(*C5m`fFi+YH5ZsT`RShb_-u;z z?~Ve+i9R9s)gMm;DVbYq^;6nH@5l^(@%%t! zp!jmtdqe4l;c&ZWjBW*LT6jua%}?6pLdtiBlmNFjKh01=RYq^@_8|`6y2UMnQQTVN zKc%_x(6q-q`P{j2PLx@74}Vva$-nNJDMvFh1Ezi=5yDf7A$HFv7>~DRmPCs;T8@rQ zRqA(BC?SVeDVico{vIQG(h_y-tlJxcY=t}F&P)Jr59QQxA4=@2ViPU}1Evw1{(kYW z)#*iaZH1OMTugqf`~1J}?}!r$(7HbVLLJ%n+0k(*4o8owx5lP=wuShy7I$SP z6<&|T&Z}a;A~--9u;oNO8)XlI>*>WT(6D__)0gCgJ)jVQtm|Xv^m6LFV(mnu1i9}u zvd0vh0GRczS$6D?)wyWDMCT)&A9gqyxY|~Dxu3gsi8f2>-d>~(hPlOH20y<2NrXmu zug`)O#MTmKy2$O%sNAWBw2o^kTL0jZwX0F`7wd(-;1dk05`HFZldL46Q}#^d1+1v? zZNmreXae7sah52L4b+Mv{XfV?0ADbJQwSDKQZ ziRzh3He@!trQ5O#DT6xzL{jlZVC&&s)~Halbn5dRoomlg9(Hb%OeS7MngU!?91F_c zO2Fx-%F9k!Eu2%#ehH8Mq~=&ATNQMn@%iPnYx*uO)bMZmRA>hW3bZh;By6r~JJ;2o zu40Y_!RV3mq`InX=JEnm3RRD>&h(OK)vV9SKSCeXTjvEJXiN&S^G83_%NNC0JhVs2 zO$`^YC@wy^Kai2=PP4SzUyzguKq3A+t)zV#xQw+vN@M1^sMQUH&F59$&h=Juj{|+) z$~{zl4gyo(6#zeudW@PAv~X*uRB6O7=1pp*<5jUl-5rZcts@PIk}N6QsZF6Y4f9K^ zNUAO6`*y=Wg2sz@n)^Dr=E)Vy+~a>wvbV$AkTRWIIKi*3D_&FpdR=^NEK1wx_y*Q% zo+~;uIS8XT9%R)?JJ;-{84ceZ$*L_TQ_Sp7WA4|gJPLM^S|`CZ~4B0reb z@E*v+V)vWOhW-6{7VjCC9jW9I1C`R_!ZwK8%1BRe38iBIhG>QSzp^oe!|=dOGSPp} z%Y)ZDb0zX>$H@e-eW#4`PMK3~vx_t!s-X>N(ldg8UUzvvSFNvWof9p41jY9a(AuTv z^bQ!yn=^7LQ9j)L-@!$G&-{wWaBdj$)_6YQ`PJIYhzyrs*y;c{!vZD>$pLrG z%`)n=8pnQ>x-YtuEyXVDDb>^MO21fN|ACr^eN+k0AoA5UPra{encQKOHKy-fMvBZK z=Cd-xKLeDPtIDq9Vj{d`o&plON!9|Ok_OV5QdUg?4c$%ZSyXzLu?HAUD1MpmQ6e56 zVO%7#MpD?9ST2q8mSIYWIKuJ0WD0pB*5c`evX1!=x%(E=T&$2A)Ks(~)!DsJW9_*E zD(hf|gGRR)M<45u%@8`;PE(41UDqb-F0bHlvDuLc=`3%piLT$dqx|ZLO8IUgrGN`y zpw8q#z**eF{4F9+APdR~(eIbdQF5ccpN<7%xGtl25Eo_DG0xyd2w)Lq>uVlN12xATtk#w( zG*b#q>PUxYbcjVn6c?tG(kgZuxU>hGh!Qb7naN7mvzae(uHQhBHDWzP(nv%pQv{6X zGXkDnp2y841%D|05AdV)t|{$ic$UE&S_iO)ZLHUxh^(&_o|1>82)>xKReXHAB5`2i z8Kru~?k&#DFVyK4(4v#DxtP|u-RS+35Qg+CwIby3d%WBRd#$b0+?wOrFPuS*qm*dP*7L)hy#ti1wV!VH8P}Uk@)57NAxRzw5iczq-gr1jLxj%LVC|325yVjA z^W|08PI$jyDCbR{TWuweYuFcyj`RE@3K0Q;G1UGT3+X6f?G|F!s1n>4w7FD014Xn5AX=lvfn{eCubFEET!bqKI(`c^us7%E|&(_mVJMo|9P2s2CF zO)>lCjbeV><3!>-E$ou-=d-E8*;}mKn)-UqaF?3>XY?$SfPY*I99PIJG9cH*y!+h| zkTV1%~^q-sh!()~YRlwkA%bKUJ0a0O}6+{5))^;4|o?1Kcxg zNZu!{U;&erf{Q|0%k$0q3GcK%9*1b4o;}BpaLCl9iw@x;MsdxJ< zti4=LvIPCZADM|QoqGE@|1X&RJ-95`Cau$6k)u&ffce5ncVCGL(vd-aAXwS#!Sfqs zJMB?YuJ6*=%JH#mH?!uwyDhSO@{-9s^5_jEP>4+UC_@A%v8MBVQ;3OCzC)(vR7K9O zpE@`QUyG>N1elBIqB5RSo~KfX6hup?MtuepD9rpk2T%jU5x{t^^kWtgUl7uh3Dpg^ z2-Wr?sbkIfGm?@TJhG&?D{oHSQjy9(lT-7uMiL7dZso;zw1qTW%PKX!>DF!!tLu76 z!+#{N&w!xRnv)N%im3&5Wxc{>%%?u%ZUHX|@PvI@LR|NYRN!|FJCbt#!3mLoiX}?ymyU2yP}^X;w3#XuKu>` zwq*}pOb;E(DQA6Z@`_XajL=Q~b5vdh^r=RYVN^oACw_+Gu~M7a-9AWZn~xFZdNd<#{85Ju2o{=Kk=5F04OD(mT7~li149R%@$H6M6p0@@2@lQ^VStU!jLChTWeV z1G^rYo%;1U24?!h6A*lO`}4=JRQvm9tZyTbzx|JHCF=7D@J}Rj1fhDh>Op+`r+R!( z%N|4;K*xGFZ{C!eB<%p&0vbu_HwC|HkTBXQ^;0lT90_=5b8P>STyR1lJcKW9!7+eh;FR8@@ z5lG>mZ+1HizwQor^U7bW;o4sWTEHWlNGND>TSAvDZ^Phf-HI17WtX$y}N+ z*~w(idxE;pWuo_7qvmh9_iDb&8wv9f=LV~%tn#TPo=R^NjXU=e&ec3@k;Vh#X^&E$ z877zv+OhrY|5=5#t$l}WB)r+P21s*YEWp953CKp_tEG(whGagPHHV*Y*tn2Oxc@6oe1Dt*_d>5BKNz$87iivp^@G!qTEw9f|Fc<=;7 z@R`k}vW#D|MI5F&Tbe%}lT&P5|G~)Y&pV`+zW_fuDwV<*1VQ{oPvkcef=>Hz+ZIc5 zE?X>@C-BT{#VmwW=U+*o{yW8jF6kO_pLuYuX{&imA0xUjN)RRCBg{IUDhr+(>4$Ox z%K(ell5K)o+Ap0Vqr`P&yaG4{M9!jzAiND%Y6#?rkT~r!L4syt(89iNLLd!=(Y1;` zgAk2#i?3LAO-E@&8s<(}BAk?58h123LtKd67eBayORhyC#J8sD(5QPul184^=@q{m zE>oqsQ_X+(jO^j7X3AL8N%|4DO20Oe=nVjBTk6y9Hk-#Wpu>9#FtQ<7=0xhp+INcz z?E$lweeQd|X#P|Lo0-q5$w5#jN!+7INVdLQG|kM*U;0>6Km||7}lX%nCd{Jz`7N%-g~E13F7?00f7u%7mka* zN<*^*JrM#6wPXsW`XSa2+vPF~3tq-s>V~|@T>@@X^->V_x>l?>rgM1&{8l0+TjG`9 zD4PtEYvgYVuGj=vWBtSeQFUTTBf`qI3hImUn#Ap+_9o9g@4phE4 z%`oWfgI`F$QVy8$<|8J!;*`C)!pg@Drk$NuLYaV}Ru3~#?~6T9g(hSjLC0;5&nZf& zs=34;P8#X`Z+v@8G_2xhWX4a~6~%W~zQW*F4)eFirz+b8AB9pUwI3J^WxO7bIWR)e zl>sdeDH0P^ZL4n*Ccp^&3Od&iR1hjU?M9I`&(zdGYU-mytGYRbE%J0v_PbW;hn;^e zVG+8|>u!pV)t_EqhPjXwuQ;hv=7T?=J#VZ<`zgxnH(0Yx6GgaDK04@J%&WZ#lKGyH z^BfIWerpJ^6Bn+X<&UvMY%jstsA1|7Gyxs}fM!bH+uHwvI-CBsDaj#zJBMuTywdH& zG)4xE^ZdP)>9kkhjOWrcD#SD7!!s-1V9)!b|86YZ;K4H#7%UAARBM4yEGKH? z@CU3C^LZ!J%bTsfB#g*F+}Smq{6bg+Kaj3_e@7x3+slC7Z}RQq`w3vnt)q-->!hx> z>qGPYuWhfuSaIrRJ3;Be%wg5Q$9+vmC4Tvqxp`j{=2Ik5VvDQi_C@?pyQCANjK;d! zILDi(R_R;>mt|C`(t61BJZO0aZIpnM;-Y%U)*>o`pfSmlFn>gA%q8$^r>Y3KOx2bT z{Z)@pP}b?xXgI?ZErxW&*n{C-qY8V;BOTTEsPoidoGgyZap+75-W^0F1sM!4F4i|Y zrvC(OD(Aux=nr|{JvOm<0M{)#u*kAC?l(A0Ge9i|iwWS|CtJOTTW|#v%^WU=l(5Vm zhf9jyfWIHZYrR#8j`<2&2O&ywJhPes*P++4znhqABdd-Df{qRQS~COPx|k?+bN^O7JF_uieN^J#S_E?tk;W8n;@+_Q&js~zg> zjp@7jAJj4wFA)z%^Q*7R)L*Fxv8%mM@S7n`_i4z$^sRo{eoka1xfZl7){w?6xYX`J z^iG6#o+Z1|*45^Q0Kq&9y`sPkv1TIcSFR$JL8 z#SA(Yj4@-a`{PqYjz>{eWy_lOLR-7;wQFDMT~3~NN^qS`$TJP>bV{F$s>Vfq93-K& zWK2Qi7L>>e8F1S_8`PWdnFuk*m#-LCvPyqo5O%#z9A!0LUa=VMxvTx2{gtY+ zDHQMInqRmv?SfimLr?9lB=O8cFn002g00zf+m8>t%*#t!D@`44t@;jb$K_y852j1BZ`4Pdo zCK@AFLB!35$B2}5t+rp@Lduux1V+E&!je6_@>3#AO>{y)RH2LODQf+TH}019oVfpa z^zi1|+uG@s;bnNuL4r~r@dF|M<=mU10+r2K)J{)Q(a!x`NEW82PUgzjkv4=en)ixf z)atubo^yeDxja7z(QDK9BvL)@DYO?sH`d!(gYeCpeI3=rOTxO`ix)B~FtI}=shViJ zY?p?x^PsLJ{lET+r_ztSYMrx5oZkVDl{@rMb1po1sOcwbhNl$DO$ zL>@*)dhhFNZXLw<_K|m#U&K7l4W+O~Dmw~F?;=pr4COjz>JqWP<5jL@wV*GeSd5&& z*>CjC1}9}Wd95wyKR3Mx%gd=m7F~f!pR{yvtH!kyVV#b>f-t7Z(`*@aMO{euv!?a=1wZ{FS+p;BH-3f1-B4YuU8fB7~;4 z&hXxRj-O;1ok`oO$k3g}wcFxG>(K(AS-41NikE}eA!{D6+4I^IqWrmAm$K)NH<j|^c z1rtkr1&6G&z3k=4|8oU%1VOc+Q$IT|7*m4cq5&&p2Sv7HK8Ia0<@!s4sCCDFWo?I5 zUs2N68l%FGj1ru_JYLp8+qqW<>`8FdDg|phHywBO^#vJZ8W(7d@Y$1s-`L>p6Rx5} z7&CV+WT&lbd$o`Wz&hm~G7S14;c^9~iih{Atl4VDc8E)>2>hj4hi>1ptLo8(8S8Rp zi-tpOeNh3R;}Y1sX5jMT->bc$!Rt*nyW?vgUBI0gR>J#~e}G($GEh&_+Y`735pFwrQdJ?Lr zBttN$Rifr5HoSWM=5}43TMkhi5%~3qof4lVyz`lq`S4K!LbLveYxu$Fjsb>lJ2qEOKInCJE1;LcF>Dj3N=L2QHfWTGG?n4FactrGTS#^bl-b;dFR2`2 zw!S3=bB{8!IRWfdVVhjY4Hy~sE&X7LvorJW&t^C^d;Zq;Lce4bhD)`}ggI4Hbxw{! zDB^-xH6`XR=y{mlskdb!h`Oop>&^0vZ`jfXQ~D0Bdz{DShE=I(3LrT~_0m)PE=Xv! zX1m!5B!tR))keBlWQ{31;gjV;>HyQg*i;=7T4SB?YDa*P-|mW+6?G4)~eck(?sCK#iM|w&d=} zczI!GqxzS19-$cz$V=G!7_jc&G(N*P_p|d~5m` zp9bLy>l(2QQT}RC;;Ct>>K+6EK9Z^M$n#PysO&9WRoioNml}cuB+$Z&3{@PN6T1;C zC%E9=BOP)4>Tq5fni-L`b7fjh#Xpz%(6HK|Ij3=WXs4;E!<}AUMozo0@~cu6nvH8+ z^VX|+*biI;l2+R9T1m;Vy{d5)mswYl!7|3f?y)Lr4K3;5w|8ofowWtJTaLIou(_D= zZ*l?K7O2PR5~;hzI`vFh_7!WKD_=pe-K0VJc0*^P&L8kg?d*ccfRd7t+H`=9+B!Fn}@l-nMVgUI7K$T!MmD!xB1Eden* zah3T`XH?}@nS0T1>f#iAvlorpRpa>U`cCP+G_V572?^555e3V}$~QI{RwUlmMQ_xc zKN;SJtN5(cyMF4OW6b(Qv7n_4a}M?c#1BCa#C%yCX7`iEsG?Xfp+^+i;L-}l`E(rseVM^1F-WD84E zi&+!+y6n3J#x>%SQOIIL7~D_Y7EjA%6MQPwB`>QW*OuKQQ6o&fnAJL-fklV{E5(6@ ztE>oQ`d(~^E}#P7lgN#7$_jC&SW!#oIacw8TC!Sl+vtFGl)KztY8}Rn2&*zHFGi*} zgKqv!94ZF(4whesj=bYV2w|tO4@oGTcv_}b6IoXr>{#wuG;#{U9q?PE+#l&G_MHef zWg;NQ%ofFVq~M5x)L%J_T>7eRk>>;fwqX78F)?zFMNuti|3mjNvp=B)`7fBV>!l6C zQoLUsaXa|wFoQTZKIZBvB8Me2ezx9(R}*AUxqLP(+un&iz!9NYQnkT{3*EucNiHM= zz0_QZt*Xs+Y5(B-$JqqD4NBJzt^4?XFilYd*OiiGE=6IQN#1>BQu3!|_1Deq=iB#b z3dKQtIcU2{Y9VdARlvfk)BiIMUCJLpU0qP_!^TeJHo}xaLy(GKmQtt3?o3^;#*TE` z@2BkOjD?gADP&Cs0!}x;e5J)m`j_hec6N z;m*+mH|bUX%}hV&5Y{ipN#tZaAHP$mWgAg7u+v_5sj(9CItOnfZ#!_;3C-lLYfFcE z(;KC?{z_=wP`EN~E2EuUH_V9LtB+%TES9FYMO0^!v|uBjE^@Wc%>z9t1Whu=AQgz= zpw5V5QnG!TkB)YY#qK_Z9M3spdl|D6dSmL&7FNaTa){s(@Wzv!*p%nbeAAubpl5f5 zl*r4iCFCbLvp?la47Vaf?EA2a!@XP|RXm*6+xG^(zAbpzDnHdEn5#t^)Tm#M>Frw= zCb99Fq~6{0dJ}0wL3W!ab5|CES{+$x0}6AZQ|x&z@NG?f``+>tx*MkS6ve4l6-XgD zlxHFDyQpwZ_iZnW+XkP0BzGc_%a4#)*AkO9s9~wlw?dxRbbJTgiSVS5iTuw~gD{!t zk)jN1myWTYlG?fB>vl^GcXpcj5Zt@BB#Da(q7EZ1X>xP^Yo-@6e$OhL$Q`(Dszgad zX}W0_52UW?^@{3pQdpBn$3G$csJJhS&}=OordCszfhf({;Zg=TnXG$THcCGqB!Ee4 z9FvQ>%{S!~LJ+E&=8d~pItrtaF8$d|9h5qIhC)cN)7sO`70ByRf)qTGPTW&wNqDck6au@@4gdB8^mRhewsz?aXfO{4v`1MBzlC zW~9~vEq^2kHmW4>*2mc|9;_CE*0oS)=4u(G02z$H5x(>LPiOzAwSgw>R)P)g7PD=| zeaZ#fDV<{tGWd4w{LH>FQ^YL)=|N?XAI5Bt=h(o#fVhJ1c3x9tgh3s?M*e>ui5wcF z{2g`s%prZo_308`oj0J^8<{`IgJcfFLIFLMr`TdT!C#@Sx~n_CF2Q}lvvlg!x6ivu z9Q!Wu(I7#^kN~2uyv+Cb!`Dqgl9yL6Z90exKy&%MRsMQ-2L#|62Bz$}WF7RU&2~4n zm)gS-f-7dtp%1VXuk7!wqo`xyI2C0(M0SdlB!AL^>aMx{XVhFMl$8*D6T-g*{*$3KMsk9{a=iXmHheENhm(cjJ6G z&l9%Rm}R_DO*Pv5DhM;edO;=)QTtGODgrD-dFcc>&@Y&s6*AN2tx(q&)crX8j0<}D z00!dL)!5zmR_DEu^`bMWb=+IA#C<%cYj#&+<|`fT-(7hXjZ_RQBYk5Y*5EwuJ>mj= zT>K!ab58LdhuKrhyIfx1x$Aly!qcF=lgerr#UTMH(ab7$!E*h9PG`|)^BZK*S z(Ph30yF*@?g~){~IH`{?Y7)2Uk_WP8wKtlPRw@?1Bg7>n%|+rCt&FZJbUw(z)qIzZ z?d}(^$yZXGbk>59A4$^$w1D}m<9--P9NR5xj#L?*pN*E%&CsfJbBTP2qzrZvB+o{a zicAl{LRnqb_mQ)lGxsHqfnUy(H_?*(p9Kh2p<_G$c{@L{ZRYapn5z|BJd7n@M$PNl z0do8B39tgy55}S~^X4?QK};+x=&Q>M@Lx-Zw{NY>y^XBb zhX}PZ6HuzO5Nwah_jFj9*%CR2_|bktXx~m)EouMFiRM2Vjt1cOPx}i7@71&%7ozpI z)fz46ywDhKC5fW({{h}6r-}&8=R^GAuRYknIv376`7gLKR$>BES&|F5Z>fGt_tsRg z9qXlZ(F)|%SIH)Wd%~PgD6JnJ!CmHR+D3ahRJm=$ipOsGf7;uk4u`8YQY0SOb+27; zw>VOfn`w2f@|2#3uo)C4T(8IWoORg)vS^9`=ct~J`(;dV8^%G$6zRKf$@cW(_lZny zWM$a?%5*h(7Q89BN~6!=c{gzYMIh6q?JJJD9-ZT61wPi$BWQ|OP1oIguLuKt6ff!; z)w8sD&Y}6=BEQa?1S%)n#xXIaOx0cMQL+aQglZG%)F#aPH&ly*1Hv9z<_(e%6gxUt ze%uV~vw0-T(eQe`5v2$+W=EG>m%MsQDKMXvq2>~Cuh2FhtdD?*_LJ2k&a%s|pjABaM-+*{aRmhhp>h7+ zV`imwKeSmF)?arGyzl)~OySj%=JOrPtgnP#lVTfPVCZmppV#$)wMjm^ucC1M>l*(- zD}Axx|2GdpXeB2ri}>B}S)>4wv)y`M0xwrHcv3svp6O+K*~ZkCmR0Njl2FVc=Oxqr zA7B0bnFU9DcBTU~dhBR^2K+%@v~Vw?ggXK(2ceNXxc zznUYFEmz*>{uIqy@(iGk)}c@4Zy}3Hp`_`Iii}s!&|&TL^z>y+RD!tIN@l-^syWhd zoOmIS?VWV_Z*G52VD9#7+`I4<4(ZGo^^ib`B@}Mz$B{uFtq_I`pxov!QEW>+KpgGkXx{ z8qkDp8$Fs%OS-h z^xCU8pm*8l*4%5a7`!{MbtQ+%)0#GUI=Kkz2!_-06WrZOf#opK49ZbvUPHnQJol|!jUi63aEQNyNL#d~Z*+;=y9PW^uK6;&!(a%pP{~bkgy>HxX zE@g6pzl4ZEaX`{I|Jqb{mkyd`U~Y(<;HBu4eSU^K#@p}sB5>aW1j$jGd%F6J;^Foz zkY;A6jTb+Tgf|n^-x--sr-Z#y@i{#IVssQV-KjsF-@Py%(yHcrf345gbcXEyPuoK8 zr}n;ik|~q}sN8C+in>PEhitl{*tQn*n$~K!Gc8r<`%w;(vj&U@KhMv^RyWUXXl8Xy zny&Swv}Wmf#7>tdJ81uJ&HN^=J^4Y@?v!&G)sut9Yi5oe9@=UAP_+Np5|vqaCW}%= zkY^0M9;W>tlNj2b7QZ;;22Q{L8Y z?k6DWF8xiBov9M3pMy!u*5V~2@I=C@xSlpiqI#7%)(=a68$t>|>6cAGc9;zp1ijCS zwOfxTwu|sDXFsqzP9{WUQdVmTfg$m#H>4-qkY2h>xsb7z+)ie+oxykdQNr&%!@-zg zxo3!%Ns*LZO;R^vY#())#K^m$?6>igOta2%XM^$QS{mitkC@qHyu1plq;cp3j|TJx z0@+ZciD?Nkk%)VIm)oDPFsOiQkkw|K%yjzq?`K`>iUJdl>S@*RildsReG^><n4 z^#`0W6Gc1+jMi@_#=mtfe|4w^o@0JILZzI@Ak@{atl$||ic0H$PnV8B zF77{BK8nhfY`@KZ`XCDFu(x}C;bSCez?N0c)wrN6dl@Ii<+0fUTWwO2K~|a- zBAU`P766uI;#>7nxCfQv@CigImyS-=@*iUla3oO?Ie#HZDVgGX61B>ET92f3XbK13 z`X@ScS$mQbf0AE>jS8~akZmD>X<9Z>f8pxoX$sv(Endojl6HjhqRNJ*)Zr7AI2Ze_ zz@&;lf*cZUg5Hl=5t=v9YfEUmQRr`@r=mW4~X2k1d% zuW~kCD>;KVYIjSsHrSpOYSVCO!5|!scZq`{Ha@z=rz(-?z82~I`FTSqivGQb85f#m z2CQ-M7gHdy>XL=0FA1vpkFM!FJaR6yuP!D+rgI!sV^m9mv_#yBR4a2G$KKUqS8u8q zZzf6itA6LIvT)C*>tXMYuK?+eI-7{8@uV~;9vNNV1wR4&e%J;4U*{||0~D%5{@26L zQ@;C|6N>mG!dGStJb5cHGjBe7cvu_{TBro43;Q)XET*7xqx#nc-lU=n@?CX|`+2~g zqS2I>oM-Y&@+}1m<}BJpAW7n;sIB7~94xc6W#Yb!d)W z{229LG9L$0rFz~~JxSEunthQ(M&&oG@i*8Y07%a3Pfa+%0Klw$#%bflA5E8xg-M(3 zCLWMGe1}bS2?IZCezxVeq?-Xsj_83x7pk#d2OR>e{z%RQ%lU`&gYAJMK<_J@l$o6y zdUmur{@KP)l2QO1PhZv?NJW1B9XrC-yIJFCw%NAPPMokm8#|I-ipY3pMzgjw%$iRs zPs{j{ZA^O5?i!YQsext@=lFpAsr(#MdF+9ZcQNnJn4Vuc&W{R+$RszYt?h2j{A_cOGb+Vg8ffUPGXuR+7Ygu+|^5AW`O%FI>g;{*~##?6ebO zBxC$hkxTqQ`-iG;1%WOrhI5ZZe&JQ^)rLwzBk?U#s%I>ZQviB^TI8>`aSOBZ=?9MB ztnWrK;}36R9^xwGxs=-$*bEyFp<91L@8>-ijAdGYV=>y!mr4M0d@nahE*oKzo-S2f zX;>k?32n<^RV}W}(8_Qd7S4;1dUR%+$!+|prR0t1LUSt)6&ReI=3UrBxY9QldXB(8 zjI825M|^*&fSU*0hC1vGeATDnLuo@eSB?$6Lq(w!y338OWiB=$X^GL%>zyLa#^JWB z!=sVikb~U=?frbUdzEWCga)Kd(WrXIUyV`1G0qontQ9VY^~Hxml!K9}px_R2*Ul&B zVe}?NgY{IQ6sB7cMmC4I$<3<#NVK6J3g-gyDcEd9X83FQgsVRRClR@>w4bzxWthafg)6zqRMXRQcbg1sD0=OZ zDbPVO1ih~};1)0z$hEs1dSmPYjY}{Cmp*P1`~5+*^yBYvS2zmE06efx zzSGAc80p}z;>*`)7Im$2O-z3q1K4wWHCW54Q~&(rWWHdHga)h4(A%nVWth>7jpQQs zi3kNI%a|xm);JyRyYUrV$P^hL;sC>hnx8828*fyx%0kFv! zL5%ZKv=~;Ls)IQETSAzEOBBZNz>|)ok90e^k~Ev^|ot8(S`;HbI{X&51=EX=&HTu{NDcU-k(c2{O%{7Z-U-sDZxxzWUop7&<=2SpB!znSfQUYsw9li`kn zi};Z=J!!-_mH&pm87P@&bd>Xc(Xar!q>EQU?Bbh`QM~Jjf^%b3DhDZ|=yRIPtw6gE zo*V*fMT++NLtvl~`U;W+P7o%A2A1ZHw_0MQA_wn^R3@4a3;S0x!15o7PG<%}w~KaZ zbnD?}qFZHHN1nk~-?X5Pk}XlA2@+@fCe25Z8j(4m0t)Vi8kB=v9g1sT%zs4>`NQ&W zcl|WlR7Z*Ex;TQgqOqtzzo$JjAuWMTD@%R~EL_o2gLw%fC37|s|AxHU=CQ}e^C*zU zc@>wuYH-DN4k0^*Paa$X42~VTH%(!bWb4z6+%w;w+GXHafGLegDCK2*5fbJ=sN?Sr zuBk=G5ZoCaA~>;GJv3y3T6;{(haE#08(k2rUmgS zxtxBW~OF?snsq+aP)45$!p3$5aq$v?>;c?fO4D~07@1(Ck35N%|%gEo74W|c5)(y zQsrUMSQnZ8`NDVJ#`ytkO?;<5(Y)zC6STFVHgK6a!NVry%CQPZZAt1+D4-N@;GMe* z1(i599bi?qxVRKLJ(UROHf~}2&c3JgMpW(9G~N5}*Zg5u+Ekd4a7M;GKIxK;$dY^A zcyN&HxH5S>9==@dTA^kF5zZ>Oo}cq`XlO@Qf&~s4d59x-DR| zYAiru)+by3fIxRQp_IRw16ysxQLaJ+^QPZaKACW+LH(^P7voui)ZMngeO`&KXswIP z!g&j~o$NNx;Q+&JITuE)so=CEB(w+#;hFL$4A;Wp7)tmpNmX98WCRkl#nMx^l;GR% zHDrm2`00Vsa*0)93nS~ZcQ63S?nDhT$o8n^rGSz-DXz7>e#!aG!D@2!SU5CBP~AuR z6bS7R*I0%*%VK+V4S#mjff2zZwG1RB{qT6Tvc$sjW{w`77t&(~hDb7h$7fF@JJA4Mcq=sA86>#5xE+&$m$s_hP9gyx!y z%H>kwS+8K(WTMcMr$|m-70-5^^dleAr`?C}&{`ED=F z+>nOsLNno^)8HM80^S8C=&H>n^ansKI;|&pnI<(mHuu6;^6EJvR^;_k5EyMHd*32KG(y z$_xiRDxEI)oy9hF9K+{P;ESsg)*H}NUgVyNZ}#2(&crgTTKvY4W<^jATNaDwGq#(E zTC(o=49m>vD$i6MVk^I>i~Mg9+afQ)rMx^MLSb|yN$zO2K*?9wu~o5lQ#sDKuwPB* z^N>PZakahR-8l2y@r}IBdV5Xg+}o(iACGqDwa@GNW`|lOff-*4Dz#I&_;p1T&h>Rp zmj+Zp13IJvLEYtxkO}BkC;+WTJ+d};#Sh?^_Vw>sTOE(M8@`MA-8$hDMS%7DOq$&k z;MuxadOUTH3@Jr{8_Ut3KufT~z7?Cjx~V&(6q^Z%n*EK3a!Z+*P8n6n%ei zw?$WfLMmd_v&Dp#UJ7;cUw@2z({>xI6QI$Acz~*~pVS$M_kaQR#cv=vcQjc{vwO5% zo`WDUngHIzr}=v;7hhI|qdP`ejIF^PB?r-)6pS$)lfGs&S^MQQWzk$i!oXL{AVMKr z>SJ~>KhY#-MN~wLSK`#y@76eQUt zpmi>a23T8}=f1^3O&>{Q5m}FcMA_V{>R)sZh8>fuSw4l4CfnY(yQWZ8u}t6-SLoD4 zA`Vl)!NTk=sm`DOFLK^0;^{qX9qU>K>&frnhthe?g!$s?7vpVBVtvU#SZs^{` zEWp-NO1xKD&7p&9Gm;Q4X)o`2pTzO4!JAyL!HUpNWhfdbyc%K&$_BP#r6AtRWAb|q z*u)Q4m4qR1abUO-mCCuwxYPO)oU~(#P0vdN!DH0uvOyy0n#W8%eWj;Lxivs11ZZZU zu*7d5Rl|NFufE?Er!OwfS=1KMc2(DF2}%_TUi$oV!sg7|iG?*C8JDSd@P@5Xq3B~9 zAiwRbCASE<;Fx0>c14XY&4fLH1pxvk<1{Xmmfa9JNO7H-Y?n(9cYV{-zYTySA6lXo zmWe*oD;6sbMQj&!;+?>S}ix{nop})?!Yfno#eYNQobQhC#SXb$`R8 zAd3eZ5^PyKb9csHA!xr)!d&*Fa(OX_E+N3%SQ>5u+@}y7y*X3S1 zZ}{gxs=;Mt*3W2S!?w3deLY2e&x{?pjt?@wJu+QbUmbkggiL7`(17aJwS1ryf09YT zo!%o!{%<%qeXJqSoomu*KM<=kqS?yDjhj^%`{Yw8p`=T|p9EJ&ApWLx zE6lt1p_b&Pd>rz_NIs`bPIYKiI1x*S`RGlHHQWiyFF66rgDiW0V0`FMaGOtF!p#?N zQjZv`snA>O+;73xNJ3{;bYopqd6Hmf!q8;`Tkz`a)^9xPZ;KlTs)PbyKmaWOVO6w&#Z_5jV0`03F3AUc#G5z zZD<$pdUlr?L&Nc#H>!k?u-Gh7-?cs~=k+s%9Qn^UhwV#Vkz^hu?1=7M|S6# zU3M$y!%0vb;;|lW`}lBH^dC#QV~a!@kG`;i*q@Z5)olCg94xcQHMQBIO<$W4LNeYv zJs)5#xJ^xCKVm*Nw)d8x&aU-!a5B7nfv%tU#RpIO?qm{Hh<$5P_!ncb3M$We{8%Qy z6zf@!$+DN{dE@g%finJ^Yp`nNjY-p(gk-!|wFK69LVO36`62I;v=`&Ur?dm0T2GP? zSEEBz&#OPKVDO%O=NXJ@f!I`U+9ZPw?A{ZelWJ1WfZa@MPVMf5T{4v6#Ux|Z0c)cM zoUZu+bw)wYZE3V1md^LbJRo>9ruu*A7G=9wk3aoF?jS+U$I`QdsR;V2zS{4eRW^BT z2p0`B9>L)z?3CES#bmiSQyKHNmL8TGQv|6p%HL4nwkiMX3DIC|3udkkRZ;A=ZHXb5 zb7df=;m<-tU|e|YBhz)FT&|)qTu@8=EMiT*b)BKBNn zTV!;cMOCFnc`eial?9e%N1bsWiAiitNrd|MTf1d@7+)Y1QDh7c78a9H@W`?Y{NW6& zKKt{K$rSUUYBLJt9T^{>q=~6I&5V~kiv5;=$xcIsOL%K*zpEZb9-ZwVVtEuXPFAiK zhB#;Ysz6mf;cLCffKYqslTZeA8x%35C6o_olvM8DPjWu>wR2w1QtpcVn_CzVB`r3U@n9K#c?4 zRhVGQrxn6;MwHBXJr5JJVdJ0^Gyg{+QIY9jl`1USxk5Bfie1y3X+qHujvFK5SIyBr z|C|_@KDi4oj*c($_KQVvH<1vm{%UYbR=!=S_O6ry#^FwZX;P!w$C!$@5?LQ_N7M#; zp8xGt#A^?pc-E3jq?4)KZMc>!ZPlN zS^Xs0(3Y{t2!|ONIRiHwcbd7!n%X&38+Srsed8HBTb}Djz6#p*1)R{d^S_Fro;J#| zng_hV4~8|#@gO?;=e7!YuGAb*>3iiV5Jm#YtJ=j38vd<3BTDYK2N4uzPCwQP;Y7l) zk-+Ie;jgbVqz8wd7d5c=4N%{m?g{FoG3ngh5Lne^ig^*3#acPT6A27puxC;M)fWb9 zEBDPtQ;L&p(k{;XreBRl76UbtpWIzv(-6LA;Wp7^-qd=G^|_TTr6yNy0spIDrW28Zd) zG*uULDo1pe{_B8~8qP0n#oL?J5cPRkHJ}0V>kd_0S6J6!j593&{pX7%@!i6e-Nv@G&aqPIJ@nBVY+ls5>?;t0aw$P z9J#G%TE|OM7rE6``t3sZkwGB#w~6C+)No^x3=&c_u+NYUU1Mj*5BN*=FNT&#tYW`! zNaBVN=7Bbyve(h8&j*$?gi{*;^LxB)rt!A=5cBUS(v#?=a6pR%*|?p*KR5lhlKaA+ z54Smai=4yD*yW|KU>$!v$m)69+??mPE~QoI-aUXw@dL| z9%>Guu{r-QfF^nI!F9S`C{hjj1U_Q=0lpx5*xt^P9@Q96FEH;fuyges>i}cjyj~KH zUiFnY`yQ7xN$k28dkn!NVGM&Yv98JZT;(#>554^ZSCU82FcA z)Rk-^lz!IaKc;Sp-GldS@kXM}_XX;64@~1-?|S|wt=OMZW6}q!o0v_|Q~OyvF5|O- z`^vbIT5jUr2D8;R84Zx~`+S}KiK-^8^a9=;%*nT0|30HvpXadzMJo5MSK`3EqtwKC z8Li)gY0=So1l}#~_>z>IF~kkQ^G*Iy;;q?&S`B@lZFe~6eHrVx=k=5=kaN`M7#WkK zaa0~L97=RdG;PhCS4#t^CD3Sx)? z35QOZ<-=Uy>sh$pG>rP0JJ+j>fuwYup%u23=*o=AHZ}%wW507Nc689Zc-l38aM92= zT7kq^NLWDxVkJ1(L3%{Xvg!BacV*m`R6pLXVi&G-g~Gp!>+D@P{|!c641}kFqWWQ3 z$zddgEV66v>4!KsJJ%~h1%QqAvABdp*E2O=tjXj1{7U<%#eUak zdyHBhT#xJdCdF^z7x}Z}$`&iun(-iYeqCU$l$e@YfLP7LCN|uZYgCE3;xNQ00VJj( ze%{%39zSVtV#bp2EDn34eC9f;s6#^g@lxrX_+J>`?epMy-$a^-Xm=%DRg_;Gz9l)d z-)sCb$;n|)e0J%S!K6r?BxEH11*IY&|##^l`n(?j_^Zrc_*74h{LlM>xSsGzJ(1pIIk9O+k| zS8ZpbT(BgecvMS944|5EO8F&0&X|gNzo~R0rPmP8`SI$1%1y7FC>;OWUEWMI%%AF2 zzs=Y?rZvN?}6t7=*fODw&J`H7*M$ClR($0Y|n>b{K6@9`jS zQj^jbcB;xY5PZ&{ynZ$mvS1AKgpL|=%O43I?EXoK$*jQt#T(&+fjteRI%Oi^U4{<6 z64L_~V~(71VmqUnr)R**h!XN)atjI~Src77MhTP%6dP7J5H6Sf>hEpp4QejPqwBub zi$#B!in!NCv${9oQfj;)TPzsi+z4#@(i8p$8@L^co$?|D#{+Cv0NRc?e30))5z^oQ zY&mh?mM5r=iOS-s2Ei35(o>zW{InMEtKLNGmGR}vM#4oA;NRRt#Iu@lULdn1cW3pE z=5CdF0rx_gfMe&l%~IABIynas67(C@`2v>^mp}GK+J*F$2Lt{;jV7D7C4ftH&vjIK zE!+;t4RbUX<&#U6ye1NQ7V&=VTZWsw{YQnL)Nze>6o|@UW{CPDu!SY_=XfEEISWj; zc?sOM4e5o?kJEy&axv$Q^SKvfTx8fr5B@-LG66{%J0m;NJ(B%d3DVr_j!iqfCwsq9 zIE(06fbj~%X>Kap2lpj}e9#lz8Q@tZJ6;YT3a~Lx3s^uh;hk|RcC**hC2WF3TnmYw5(WywX(DHaH zg9;e8om^6=vjqr@$5-yx^VLtVCS2gXTNWEM2~U%svbWsL$L6;wL(rNiqRZL+9Os>& zx>Xx1Ui0nB67hSA~M#@wnfr|TUGr+AbG$;9T>#jWF$PdV;8a##C zXi|=|$7AaIPD+@&f3My7!sInKjYgG8?s&2=J!cO|RYe3vhBF$wL`}hQD;MHdW+s?Q zG09vY@JK^o+px=cDn)9UkK835J5EB}Md^@tzRT3X8l35+2l@k*X~7GQx7@xgJf6Gj zP`2=$Cx9poOP1=1@X|F!HI8Hn1!dTSG2$#~G1hPdhrhL}jVYa5X3d1krc1mGT5^m4 z?7sXzkz6YqZt-tF0$U9+i>i^nKo>i#=N3f+sJ56G+JTg4aZYf@UhUoW@=$3QW@zl} zbrf^^;>e7HSg~DJ7_ZQF;B&%QsJs^!dvbi8hUvycfJosQJj<@<^j|N1be?W_CaU|I zK6NU*w!U%B{$e-W?8y%?NiBq7qJwJXrEV=9uqCPR=ZBREvbYcpk6RBOgA>gB%aQ7| z$K=qROR5WbauFGZqyDK&526rlR5QP0p9F5r0Vl1KxMdECDDdI0i7>V7QDr&;{wvsk zq>N!L7Du94A&^shUx}HFUEUe+21v*H7Q_BkB92Pw4MS&nX;#aCLEy|Q!zTeo<7CgW z<`NNj*#7Jp6T13|W6RqKNI;}LGp1vV+?$w;Nu@4P=vda~vz!%+f?oU6bxO|CZHDd7 z972_+rw#7Cc}Odiplu}~M_#gi=-yU!%wLS)8HPx8zt5tAYzzEbo_j-}cyc%-vU)gg zc;tv*1R;97V}f&fEeH5w7z-`H@g{jW)5#k-X>XVXt5TEbA6#}Q)s%8#By>=EChTfm zMj2_Ddj33U19QN;ah$)Eb}p@u5cWdfkB^u|1v$j*PQBgc4y0)gxi^3mB&giw+GVd& z)MKo0_ij&y7JW$x`LH2O`@)p`^%wZ1`KNi$e9A|?juLEE^4zIS)#V<~Vv~0^uhvpp z#nEa0%Fw)1O7VCWY2Dcx{pkOpK-t=ytlfbA z=+*C$JtG~ai9bDjqvxzy(PYRqc3!mMZpqxs3oEQ8^E~#9cM2<%@Nrd#%J<8D`$P94HOAPa`c}i`YUL>qT$c9yVIN6tVpGQ;ywj`fRfB1q<>Y#P zdxhJ6UH6PE+IzulE+>ZShF_x!@~z3cJX1ky?!GZK8EPc|UFmd>4;fFx#>eO*qaY8i z^v-?qsF8Us>9AV6(OtCk1*x<`f>RTaOR2RnW|MNf0(YAjj?1|)ttf$@*4;^H0z`Ve z47@(roGTSV*}v;X6G0=wFuh_%oA#Dk7w@Ut?s$6dw;zr;nKen|B)$D?fFl=jNU zpm>N!>4B-XA|nBLNFQpsQ}Y{RfuIp8?3;^>^2Ccj5!6Qu--h$Zxr)S`S76khzM`>= z%bdOyBblAa9|B*jq=JrRf613s{>=IkU`7r&&l{KCi&#e*&hXqurP(zhQzq%^!>^Hk zx@Ncuc=Ny{?|eRWj*54VLHjh%RKZ36Ddk^Yl2s(E$EF8(INj&?TCF}}eDAl1Sei0$ zj&t>0`x|g0h1yeGO5&pp@vHcAiU}R&(jvSAOuQeeoTc=zZS#lUaO?FJQ<^Y1wjLb( zhp3YYuicNh(b(DRps$TlIg<;M0_DuP5GWN<&b-xim@+=Sm;u(rm<&j6-D_fJgJ6(v z3{%?5LPh4Qdi-mFLe{)|mIfaR!8n@sH$yuM_Y)R4t$KBXzw?(l*{9AFPhQ8CnZ4uexU&DobAOD`mznAl$Uz$ z7#$P*`B7zf8VPsenehZ#%aj*%;^%_@t+tjN&W>DwRCImx7OF8xp2|WC`PFhesZq~F zpGa782=VM&+a8!N1NwVk0zrtfLr}}DrB>LAq0lWBJ2(6%;q4fWttY0pz;Z|{Tf6%g z*=7+*dG~QKX#<$hiJ|zqZk*0kUdH#Wt5RsMkj3CgH2;v!^|FSNh@{v^M)w^O)1RO8{!s;1ThuDHtL{Eo_kCVJy(-ipTRdkU>M8A6$u?k*K92dZ z2wn^{76Un3!aN7_i;5P4Rk8S|b(*IacdSjJxD*JBqN1u_X#V=g^5KBSlU}?pAE$t; zuTW^2uH-A9MMOs^3R$hvVoy1-GQTjz_D5$o>yOVyMqzujL&kj$=~#Ue(>YlaXn0vP zS@(%UH1&g)JE-^#SB@I` z&@f-Lh?2%6`$=}n!0uW9z@(~cFkYOh^`xk7(O}LK7E;9uFCbhy*V><(K;Fgi*@u4< z%AMwTwVsdSpv~$zauK1yn*u zWT8ZIm^S&1!OqC7srHOybKcINhp)4rgVFwlQkf;PTlJ1MV?l=9j zf#4CKus((ZTiD%mmO!5sDJz`!R2sz=cdHbQ-Hk8#NU_LApSf}~EBX2zPM^k9~ScP~k zGyC|6Gmyrv>oQMwF@~{pcQ%xCWK?QNF{i+Kc2aZkcXgwMxR!Z-MkrQPuqu3V0SjCM z+wL$${-cqp=#6IZWgEgA6eOD{$C6=Zg-G^=#+1Nhb?5xA>3?Ww_G zq0we63EDO{#BWXuZJ+CW=Wpq+=sVi{SGxnShax{60g*S3z|#zoobxr+i@^0FW9m;B0z@X zHU@O5l8SV^2-&n*l|qg4Eh9cCe~m zbEX|&=KO7dE1@BZ^{Uzq;;=5pUlo#PSDgZk6dZQn0nK@Kn@Z1Smp?Ou!D6HNlWH?l zv4C>Itk0818=9#;bObdH&9W`(&IPCsV-ObxV9s7 zqY{TFH$>YeiRopwU!2}yp166P(f)t>(r4s)h9SS+=d13VDcVId4>ik$q& zs;*;RU3tdR;~T$LXr}fY&=utVA}rs;Ym}*ucC)?S?@VEfrZ@A;Mh6}O&X6eSYOEur zKVw^UyDr6p@*U~mx!1Icjbe(NIbB;U)*-S~?hY1{`!$`&KQ6oOPsf4}%u6{28wbB4=b*%bgmZvvkT$PTb;VbWqOQfiRZ=AcA!xCK`Zt5<+vxIYdWBoE`pl} zl7P+9MjBgal*BjNN79-UWL%^xyuNKWD+|_8;oto!m8C6~X?}Zf$*W(^e*z5dJ=(bk z%?cGWhsg_sBM)~fQL>Y4UPFd)JyLR>yyAe!uRf!~^U~m25hf~_+R(`mTa9#BNP6B~ z=yw$ef}%%A89r$OokoNaMe^R?z#a8{O>Zl6HK^Cfwfv??q^>&W{5EWS@-U!N0un?S?5h1WONfRz!G!Cd!1J zRP_txcQ*TIab}Sl0`KU}YxI(`W^+>#yWt`?6cX?Shd^0LyZTSlJHME$m~;eFH##gr5l- z>$=c>F!$|d$xU3w5-F}nicn{DV(HNAI~M`&*VBH)ub!5ODUeg&dV3Mspto2nt3VNq zeu6Ycswqvx71=bZ)HIgP2j%ZAze=>7vn=7?KxNs?c%rX0Yfx5-3x`&yfjRET%65!c zYVo*8v>(5WVeTym@6yd~frae;roE4WSsZB%x;AciSe8QTtfE+jG@GD&(gptk**tG$ zB{}GM)i9fQqO8QnoB{iJ+6?bPhe|vvX)=P3tC``DRElh8{;m1iG@$1j;Zx|^)6nii z*<#t8(32+#w)hdzn~SH$gU9{a3#YSMH4Cme*CR+PvY+5nMysHWTFq9)Lf+F|#y~p0 z^Bp&h_-ygvqqTq9(%49b(}+)TB`4o$ew9HH>Xp$Ty|@T!zt3KZGM;IYDvz4KOXAl}@t4Ueel|2PZr!OBqmEF)U!X!ScoYfTBc(jr zzhJ>LCj-=6(huJsFKFohZx=rM_Aa;4W2d(4v11bNTuSog&1zSjrgCuFDUxtVv7|}= z8`ao}@;i{TQc&AVgmG4~1Fh;Ux3{l$g2Yta z(;S5?v9X*P{R64LJ(Nr+5q}K3)GaWY2n`N`hA}BFR9&uBzF(*8?IK)$pkLJt9cXL* zn!UT-C2gVvuTU_v?8e|IDpZQuORM-S`}Yybhsc{I6Qyo~GVcqMZb>Dr1u2^E9o8gl9gS|MQwAoGbr>i8pMGs3KzW7E^ zTG<$N$JXzwp4-LIMp9&uodP@iY{7zTm-CiNkjXm$&f2qDN?@hBO!IieJHydA=Aqjew2-G&y9#UsSZh+qLpS?esE zH=l+U`6NcxhEOLKe?59Vu@W2pKJ>0mN{8k7H5Pn@c|Pvc@fJK3LXyYBw676wwtL#= z$E44_@y++`$>=|XK>07=o=uUSlksoeZ@#-QUlO#i@kN$l?oo_c#-2^DHZoz`OU=k& zT#iW_#;uv(OAicwV2Ci%e)<>mgQlDMYIURHf<9puv%v}c*B?K;z#7*(1zNLtW5y_h z{PRU;KZJu1Zp=j+Nu*p%dJtw;}MlPd*GTIKYz*7)##?u z8Z;?w7fMiCY7}4V0T*dnzGi>T6V#%~dbVmVa^fe6q3A5136ok%ks5JGApvY z(;UEs?@pbXE%9R)&=S^G_z+CgvAzuWzbgD;*+YLGd zAYY^`LyIyl#ic8&LQG6;bXxPiVJs{x;p(4#k`O!mVeprPK!kM2akENsN0MsOQaxR; zf;@B)9Z~3!OtM*4=06Nql%KAn;7(wSi)TEHn+2ve7D=+ux;pXzX==ugO2#n(rCfeI z^Nsek5pB)cnXgHcTGSLB+fL-$wP!>BR<a8ynUVBS;?78!aHVygW^+2>*jpN1#H47P5) zBa^=i0V`U&VTZ~^SBE+b@8H~2oR^~Fr69zH^U<0zgxMKTT;Zz7cO@+wqbOHB4*nQ-? zh}#D!M#!|#fLS~*UD>5X(88mL(o!o61SYd!z$|aPZV6%oOodaaMwJjWaO*~%yc;r>~v${Z< z8;d>zaTdDAxi>F+fjIx-cHP>~{m{5=zGetc-)tuYf%GtH+JT`9)SQG^NH3K{JB4?3 z{IM26lX=s!#7I~Rk&7;ii!BasaVcDMKl4iZNr~`;kepr#k*F$xwo$KSqiZwb{}s1- z2l*h8Tx0gT7hqNiBdVi~5T_O?@xHDO$#B z2jLXwU$gVqM#4hiMie{8aI($0!={-U-2tcmk|JtkEQW#h0Zb$Ok6G*kAcATqlJKxY z(Qgkuc>)Hv12d4>E+&(nuPx_R4jT;3sR)oE)5)K+)#8E#?(vK}qA5K#uy_o+oH!qC z8D7mqY^INggQ&hY?$x3{jFw~G+o~(MR;B!O=7|$__R=Hd?Vo86P>4D2p5YA28I{%1 z%39Q_=j;;-9n^J9)-M|kEEL<~`1<#ve1=qS`jl-x>$R3?rhXdT$k+f1F+dzTd8L=f zfGBR-X)IfGjR9QVz0R7dg~`&II*|?I{uUxi&PlirO@=l26EGvj#uU;4wgmFVmYMP! zc!#H0If1plN&85>K|O1w`W_RCy0mnLVarJgFqRM1!?FBpghY0YjE-SN`PEQ4bW=y+ zG-)ogI*GK;bEc<~T+(J+^)0`?4iZYX+EjzN7qcqVU1rvQmSNUjla}~%^rYvz27}`W zJg*S}#xw_AiNrUwbehEBtD5iCf9C)G@kUBH5`xsSqlTxe8X7EjX+SY+PunQQ;MMb` z097yXf1~ye%Hd8eGYP~?&X0X;w&NYnYr9^*D>rB6!zO>jJWxnzA=#aJH&^~)dvwMWoDg5=P<;|IVO5_q3if9N!&`2 z`Ss56yIeTw|Y%dpd5Iq?>Sj>yDu!wwKTMzmfpUW7NAH zSW^!mdN&@Gz}?GzP@Ue=ap=t_GZN4{&j1XI+~pz(=vkI@=3F(Uzz4H%kAU8=UG z19mMI#A6g~G2&d5^FM4nTz53>%+(F=^12h8PZ*rb%a^}1mTi0L;X*wcID7*<)+W@(#pI;7mCP6;rYnzQ4UWw1DAyZ zDKU6JPWUe%e_7wRJ}z6{D~-oe_-)Z)Evb-C;HL|qGIjAbN;T=T;JQGzPtxX}TK<}K zbSgr6KpbxXm@-?7v;E~ZZ?nlBWirFO@~SA@3KkZ{qt5~`>2}T-@pD~f9gICg+~1DT zmymx@hOZ&fP3vI?iv6-?=>7&QY-J1PW=z8CDvIQF#}2Xf(%^h)?1t(>%e48jBAq)r zJv}gJZO7_jFs#_^JT}7L3PrFO+n0xJpYdnNo`=RlVJ~;N!^a$rx5J;Q?s7>(crg#w zocpNLG=VH;SFb&e`mqxw8H(r>bD(JgqMM^F$m*vbI~dh9Wj(mE-~A=kra!OTPG--< z+H15`NZ$Jm;uBf?Whx&NBcYJC2n_j;w4PVuK9L=2XQF{*ORj*iDQCz*R?2| zIf!Z6_uClCq>wUtv&xdD$eaku^?f@_8hmd6B0N`pcEJmGn~Ew}05v`sU4WtE9v1(Q z-EUm=jCukqg+i>6-Ictlgjh|#Ac5KEcmjSlgRCF&Ti}UXB?B;<2(Yl%KBPffiqnIR zYsX;rwt=fMThM(=JH|6>fWHe%#Xfb;HM|>cnedwTq#0+tpZ~S>)I_r&FMDH?WKds2 z%R(w-vEtWlC0JV473RKhF6_E%95(*~7BP8`{K9r@z9G@JI|jN(vNh6V`BiJa-To16 z2_%OJrDx*`GY`l~$;7ex+KFv>wJ;vw$!H|vDoNo_k=99d5oso6QKl;n3GJsYM*=g2 zABjh5^(WRSP?}=r6ot&;;JJvHPhbOf%!1Dd{;%{irVXR8;l@A5y6>XTbB29o>GjHI zfy+qi+M`(nXn|@JPiTvQ3gu@k^T%G9FrKKv(5h?l+2`CfwRCT_5g(k-g-^Qlo=u$2 z>n#;S8_vX6QKDo@13B(q_^wLoVqeQr(?BK+?Kxpfk;o2|j-1XCAMmIN2&Ka=t)0SS zS{J7KzP=MbdI^8-*e@+ExQPOS(PnzH?vhla(26nbUZz${gAHgIOTQn+IIozb{zhlV zLtxB=!l+e*cEMJ0mR+vFPHQA+iDe|33vei#RO%E(QCqhNFSkv5YGJfqU6q|-hvmv~ zKGcAIEd%KI7Z;I#H>MVXxS$@8BlD%gju-s}I5iZ8+Z)b0q%GRW)gdbY>CG4R{>XovrA&E2yclG>~xOclWE=Os;Fe7m?4Cl}){hQmQT zdz_xRv>#2#nje2l(QLn#=KMfKBDrdIxBrFp$rQJF0fej{-FW=<4g_F#eX11+)K(tm z_XEKv)BUyjNrz&NhczULvvTjFS!`6it_^C|8f>auIJVH9K<(*{6zpl_e)}+zG4FD; z3-Ej_l-lIEf+?6>EkAPqMA_h2b01J73#O{~2!T=fZEq~%D|f=;Ry{(Bp*SCluEG1w#u&8FOFE4BZD+BnStp{$i?V zNWW}D@;HnD4|AF1SJV$aRvDDT>$zn$1$F|xtDG%Kga?UQnOS|m1whzdz4O2m9Pc$0%xqU$0Plp_Y8v#_`XpFcJh-sJgd`fhuu5Ln^#NEPx@?K}@j!`k3V(JPI5yDSPUJLOsKM>qc3 ziyUER!8u=s_lsV<-{VrlooSBCEKgqg{-ytZSIu3hwL%iy33&Xqc?G;32`?l&4YbH` zik2qaCeC(Owjj25Fl^>3$P5;SJ9H(~9cQz_MqTm+S7g5BvMr}{^7Z*O?r?|PGC9Ab z+-rNq3#V77kMZ#nrQ6S?%DHiijRgzOqi-UG9#!L)*1gkDCUS7r9vTS^objUpFemkv z;bAo>5Xp>8F{VjB{|wM{o#E-d>9|dk9WpO%<01>9a8lmyuPk}0^6o92c?~tw;8c19 z!AmH<2A+Jp=Bz9vPT}zjfg!A^iql#qJvuw9_Y#>{(xOZbKh!)Tsc`;X($udm4b!HE z;6~J&K+mQVGE1?0EV7V=yz#+{)vl9gFXCz4#Us-dFNV!MD@z5GJF!+_-ix9z?MP zlF%|?_>gf;M-fpZTdd|PtehiPD??8S3tC|O4wh*i0Pop&M)%`as(Wrwe(cEw`CUyi znJYOGi%6QeU8DWUHvDNLA@!Qjpi1LU`8mDXpx zxB5k5L2S;vbLs~EPT_}11b{on9-O3&NDP63k=@LQkFL7~FBgDyLMKqM@i}uGQ(*L+ zZGW@ z>@Flqc}9xi;njH*Q>9PsdYHV$aJfI$92Roe0gZ&G;?Pwf^l)WwxMDkV^iG-xvIk9> zgmR3O)PQqJS|=e$DR|*rdF$tfC?{y}cY^hK5_YLl=&iRa{{NQnyM{z|XxOBMjveB{ zZIl_%(b3a`V1RVIt3hY6%q3GWH>qnjG{Lxm=3r2LIr;oDQxf!5=(prP-inFN;XTi` ziMY0Cd_!oz@!fZetqjAuswA9}Uep{s!s#XchMyC1qx|X;t|J?X94VegM&GG%!&7f1 zx1UTdc`wHY(v1<0Z20=%m2qcw99sr3Y8~J8i0_mHmX?;U7#%jY^je!GQfr?y38zU< z#|OT2+-`wP1iq% zM8LM4dTq9%xD^E7zcE5zVEJfuX>rH1M0@`30?PT9)$i>teM$A0Hk zFicfvc5ZjC1IUiG^(Y9x{|tPFQ*^{cNyb8NmO>cwp*j7FzhirLmEBx4IExfa{{=VU z$~*gq>;>6)0^tiPoKmK6SFPO$_WL@nD61yY@lV>9dTFhwexp)nQg;CMW*z3vOCG?v zX(1~iN2MY~zC1OqVP;ZV|LQQa@5pGl0E%#9dO@~WP=k(~iI9uYJ5FNBauXRx;+gLP z$I2tJ(w9LnK?gTj+5(W&ZY*Wv<>mbQbT+CYtM3A-_##_PrXhPGO&_8C6Fcuh(-IQS{x@W>!R`(1C{XgyH{<~?bgPKd z)L=!QlQLGDu6X1V7sdLq4?FRMwT~nm6k$U$k)bj@Gc8=V(PQL*2~CUwT@4up*NN*3 zXYwhpXJ*O~bWQJh!CW;9PJs?u#@P4okW0hIwl5s3HJp$u@ClJVKCri?&7_;lvkgU1 z_23%H9^UVk7PREE-GIKw$1VP#5nve1F@J8YGTXc`XORvm8nc#vZH<;|#6DtsXE7M= zIPj$E7$iDV@ zxt3JpHG#-QzP4B>aWw|yeqgFk4(Vz-qfycrA3;s~9$4(V1YL!i02(Vi&o()XrZUc! z#}m%&@Sc1zy2}x^Hx)VhHEI0TY|@N!a^%T5U*}70#bMi%UBwYUbi76=>#0Vjj`H3t z!4%v=TCQOBO04`c{Z2d%XZn5p;X4hgk(DhjO9I2a`{$z9a%jnPSTK`>*M(@p4OPBb zNcb%jIz9Akh?n>IrOrT5EJ`3~-rL}Bgj3H6Gks0`AJp2Hjp<4F6;%+jaZTcCr``jJP^dDdL58=D75;Djy-Vc_j zef>GifvSBe^i$u~ac;VfSHn6pP zJ4z>)LO#fq&@Qq?-B$VB%7&;^*lo+C`H@moW4PK?%J&voI%i&ay|ZuZMgu; znaj+C-CdgoiJwN6l>+va%>NtbGlw>L^7!cdy|7HiJhq*y<5h*bhk%xud6_qlhL z?3JX+DNx*ej(A;&)}gZIMm`2fA=5R8CX|de|60wwM-({u4UW>9sj8kdyz>Q7HRm0q z%=AY#!hK~aMo2yrsj~BkO!Z#H?GbegKG}LT7oJy$6PM;QI@dujxg8q|VUJR;#Ouv4HptaIg-~!~KwN3W}l`J_t!Xg?qsOL9q2qLrLS!bqm(3c(h@Y?|mdr zuoVf7MTgh|vAj>wUtSK(=}|@|;@77;goyy|7RQb>L--9>pqQvcTdvB^=c8{OG?7UD zj+*POQ>0|mG9a33qWi^>3hh@#7-_v~xt=->hl)-xe2)riq#$FK$q5yqOBY7T>Jq-@z`sOBnh{)BW&$cs(=5p(Iu8FlQeYpC7w8 z>wxocU~N%wyn>p z`PkY9wT*1~n}Xtd@m@{NeI{KAl-&RdqCtL9eAtp8wrEX|p}KbdjMl&;Kt9wS4A^ZH zD=g((QoZ_(ByTE0sXcZ^Dnv_H50a)GQSq0=WpIKFOfv{t;*m||U zJsz^k_LAbX5Vp-sZ^{`+825(N@g)0hVIC{EU6e~_0gNjzD0>~%AS&^2^CNl-;rp2U zl;ya+|K_{ojXbz7hPyVgneF!vTMuj98_a|>=RAs=b8`tbg)E4IYL&qRy!~&I!i@~8 z9VIfbWp#%ND7DeKQZZHgeQ(7(oL06Rz5^?+5*ctBq{D=(x7QuE+1cmJV7TW8&gDI_ z-yQ$1d_4+pvO{OlTfad*z+|zg^)5>aZ9*L3`{8NFud@uqdG;SM_jW+_?%8_ zsWr+u`78#ik@`>8`PjMqqSFOS6p}B_J_6MhpD*{k{0U zpTFR9?>YD0bDr~@=h%*{%GPX4z&<~n`bynGX6iv7;L8ThQ4JY>kp7**WKo=Ua?0c3 z9G6-mPKMvvVGIbC!wdVC{0z`5Iy7u=B}l~4l6JKH6Ns5GZ~B_0W;;Eny5Ri`(Rq)4 zjJUyd>i9)I*`kr99UcVajx@(f4!!NmXu7;v+0X9EZQ@yk&|z~=Zq;i-sir|e6W1bJ zq;B1+y(q}V2n5!_?Ah0*4}WZtuGHy=?bM>c%oE!JZaQzS6BH#%wGu!`~+cycg<@%V%_@`DqTzZlOu%o?C! zhFVAFkoyqG-NZhpkAFqUq#W60co*ol>>BAb%qFu!*j^OrJW&&4`a(!wG?}b{2d7!j z6mlE58hW2NFWU|(-+Fs!7fLKmE&Z9{-kh5a3=ld_m>K0#IBoaDoB5-B8!oJSkkDHo zx5+r2)eD*r{h-6Yxo3hIPtV-~K@U@Wp8gN1!H=$HX%5#%P#XRCTbzl2a zs*(IMH)^?xPh?v4j|h}BMg7mSNBdueivC;V&pon8FFms_YCmc(W0zfNZ5rq20ru1C zD{^XAUJcU>;E_ZKQ`=o#w3wex!S`CymK^PQuretm5anyxq@|gClNh*2Qg5oEb z;F+yA5hW0`Ru*G(fi2`l5p3aRm<{lRgQpR5p2N*{0H-A8V&2o{`{|#CLDb^~LDI3G zKO)RfvzjLXz)k?(f~r(RI~g{?!0q(x5VjKiHPU49fW0YQD`8YeLF@A86UzHELi<%( z3Dg3@G?}5V1$PgDV>VmH>hd#+RQ=||^G6&bkibJhX%7Q$r38>M5VYaE685}2jG}ST z-N(C~`st0sQjaqD_~0$PG5qPe6(v2_RK6^d?TY_ZHrkJkzW<>c4E`H7=`=>JoaU*c z;aYCg05?h=V=56P{-|@xQi?>c0kq<_WH!qzIQwPv$ASX;K@&@98Q<63Bvm=pmnRqA zd}Ah2j4f6Xu2~mw@0X#Ki^{g7;!z-CCxN6(2{=Zd^de`7`4 z58}jgS;>q=MIU_^hB$Os9-sVHrcMJ#N4(mrT)HFhrL5>ukwG(1vB5HzT<{$iL#tdz6 zaMN(8IrSTJ`RXli=j*dLUM0;mCcTqpT%Hv9zBZkHg?P*kPbj@GE&yxgCcQ_1lMYc? z`1R(iTI!{EkWh}#(Sz-sBA9F_Hi?2RL%t+4^~hd6^byn7;GyNRk36ll!S14V=;1ZS zLD`uy7XBZz|4UXQUr~-vk=CkTJe*f25+c>Is1Ti~RbTny`${>ym@)oGR4VM{7^5`@ zbbR;k7;2A&OpC;{=`X{XrpRDkf8nJO@TC0sub0CZV5Y)zDV~~G5agJjI4s1mLi4IZ z;scf{A~C!`&P?-rlx1YsSJic@)@^C_yR2vPgVW965`JItDiU+J!qgg=*B&h9#fE01ULVZVyuqeqZXJlEUp z+$@C0%cjN7zM#a{H}-l;#HOAPw{mmAp9bkBVm8hbG3etH7weWJjP3_(i~7O&8qvAJ z-%rSC!&1iBzW2Dm=gudq*pisJ_ayC|K=sZG7dCMf-2v4BD#2nArVaA&OK`BBN3lAf0 zJdo!{9CF)bx(rvb^alNtOek+p?=g4=4W(Z*O>A1MCbJO;2DT$zEiZI_cP*CJ!8iz| z0!do2wMn{}R^J4*9v8_QTo{<>*?8y(#IaesVZyZzkwOk*39Y$(Cny8+_>^;crRCTk zRou&ZN;&_NPl?pJ!&4IQC+IB;2A8KyO$E+Z`=;Hsyp&=CoW=_ek4EBpqOWqaNs{wu zS7h-8(3Bvq(jRkob|Dpg@x#2+KVpdDrU!P?QUYq+C0bqQl;JUQq25KFYZvQ&iZ3Ix zL4ohdS`3AOMX&#-f`hY|=+uQi>0oK;7bOya0(;Wa?R=GWEvm4U2CV=syPg!uQo5Qc za0y5L-JK`p3OKKrO^lKp`gwk;N;va0bDmagBS2aDlO&yh=nMNx2Fk2SM&)av;$a9* zgv~UJ_HqrU{3rP&;A|Un_aHyyn2KRjU~<=|6z)JxzaKF}g(P79P;#vBtonl_RpOLeE@>eB~4*mpVF6p`!#~ zuMrwCRetAHbglfIH(UJ)`6-6$0%M2Ixw(Oe7~Lo53*4y&;%TmQv1S3jcY4ow#tOy5 z?D;E%Gd@BmOD;zOjo)e%3p4u1P1yesBJCUt@Xx%IFUU(%lal=fc^AVBl`trg;kPTnBquBztXmb$Sw4}h+8h(^Dv513ZQLuxx!3B7 zv1KSMLPTj09W#?0U-+n@#5f1beuy_4Z_Mynvyo+S*bU3)%3)g2R_IEBt3pOvc{b{C zciZ4e_i5)5`x2>zTmZxP`mp#(3|$Hpg=-s0Z*-OLf^g+xk61F&tv_V4u=(JrRDw|-7m{U z>-^ERRIg-b98>%GBseQ~ZtlTb_Lc53z{9_lg`(3Yv_XkE<-a{&G^WdTl#BkGeb77ilVc$ zxHQ1wDJh<(%k%0@&*d{}+9%BU8`wQk0lmE?wrbx9xPJ+k1MKmJHXlgi8f`RLNmSTx zUtzGWWzE@M5*5!E7GTUkG1`M4J|~`PEq&9O2i0xcBFp(HOP}gQ z+(;)4>tg6SCfGPj{_nlwN(@h_MeikLR9!*@NJ&=TS8O|(YQ+rOYdsKy5a%PkL(2=# zDPT01_*MZEY4?LYQg<0Jx| z{ySf3x8bBuj~do{^>O(Z!TK@0ikUBYx{_uu|7(wjQ+*_jq|o0_R7Su2lus#!V5>8k z^*{1iI0HQ`XV9G{)0LxoBiwZS8M8DdD`*Kt3kz6USRV}{U2ZjKW_C=+7uoKl?ktPZ ziuu7zJN82=FwpSksY<25-4I%NHmX=_gdm~RMe7RR%&{>WzTK#3PEXIiP;FanFhrJd zi(1Ej)bg}a_>AK;Mdw}*Jma~&97t4n}BcK--B z++Yg%aM-V8QaTZqSQ3H1*|_+y{e#ULvhmHLi?GtgHfa%^+<=5LS$O&4mZum@@x`rHl9L-gb1m z60aJ6B(EJ%`5A0;T+sBw@a}TzY_!+|AH`m}l{Dgpdrf~`V)uxp)w(ghw}QeZacKLh z2qS@Nk$tMagS8?>loxsuy1QZH>yok_LK$EC44W!KC*YyZUclwD>!+M*s9aOMs(-%Ib1?_%Lu+|_ zd-)mLJk?mWPk7iOL>e`%F>%{fwyNi5b?_F`=Iw+?qOEOmKsr%qWKl^*Hndw{QtPEk z`?d~{wZKP3`QlYsw%NPUN6OlHKvv|B6lD-KprQ7`yaEjBj(JW29Dc=TKR(9aUApyi zKXbnGTT`@|!-oeSZ;HTQZckO}v`zobY{!3A+8|e(bUEzj0-86YgE5+XAXUbXpeRb* zwBVb8g4MjT@2K004r(f!kDoO&%cYmePavr=cvM<$cqq-U6Hvyy-oyB8c3rvsy}?rV zjV7}|9R8qEgczRK{c65)&iO}F4qCllIys!?@FwbRNIKcKPPF*8r8an{&V#T0Z<#m3 z^W=Pfd)7haT>_Iw`fC##FNrW4xom+Is#`TLJ$<|h?1>&rqKxHiRhRb;^3!_Z%g7C% zMY~RCWF=z%jREYsXFp@Sdz0Pj^=>N{|EhA+yY-?lqMKpFh%EFP96-|jHYFu#!T z=blkz`1_t?&>G27QqFZ@qC9L!n%Y;iY}cDOwu7;w-k@>t=*2^^>*4(cG7(Cl7{1=m znq2?%IxlIJ&y?TuJsE#;&5bkj+zF$pBj_m)I3$%}iGB(@5kB+LYlIOUVG{%e8m%MK zxlKIQd5ZE$8J3%Xi$%hQaAXnr+=)pAquo1d;_9p?;}rWpX>umo3C&;E#1{CU2aWQx z6YHOM-~i8LvMTWKq?B~fa5!~YVl32cvEX3ieM~Pe?YL7(3Y(MHOv3|#H7h?+i7Jki z_|KE*yHST{Ti+axgT06b+|O#U$HOL*r^m1C;oKzL%8>*PI^0jGaag1;Goh4n5yD|f za;RQkDAL$(bjjR4k{JM!J|Qal2mEax9TfP&{7w}Mdn3pN9!M!DvPh5fRc~b4TYfG0ztkprh#j=tfpSa>c zuQXvZ3+*vvLOi{5@p*^-vEwH#!{`6yMLQwSRF^#Duowjc?Q;>6d%&lO`8QVlM2dT3 zYhq|yB0Li(?VV;%KKBq-d8VO8vn%{hjQ6!xCMQQEuD(U#u{qbyb$6apa=R%$O85;eVo&qFCYiB<-QKfpg=0q}Nx8&`*gPiTIb_N)PdMBUq;p z86|QQ?TX;nU|T!+waw2(ou8CsHUunpD(DF-lw*gJbLk#7B2;R3WvV|U&Sy_9r3qn} zvaSkkCA$0bB4Sylgygb1BC4yvWu{A~8(ktJAVK8^Lc>0w#9amh!>sn5D1$4d;JUX$ zvme~ioc&ZB1~-w>Z$p)o7+Mp9_Ow>84t~~YB;M|ALMHt!{&qqlfquh&q@0TqH_|&{ z;(BMRJDE4fcVs1$0m)FV@+g4}#D;x^!y8>8x=BAP0ycg%!PsZvJ<1K*rbhWtIs4Pu zjGap?+AL!z1YMj&`<1Tcr2y~|0bluroD2@DIc^OFg9-WwO7$rCPfb!=K^>D)SJ{J{ zR_3yO;@AK`VuZ*Xwx*(<=QXPwFvg4Okv;@B0!@#5xx^rv+WCD!Ploc(c|bj*m#}mgy2)o#m z&)Y4Hb5~_C5K#psRE?r?@fYuw{&Fygj82XslOfU+tv%8!G7gTmburw9C`}$<708K> z07rGJAz&Y$`eU!2PcZjCMuwV+;=yDsu?{+UA&JLfX46ZbcRCO)B0Ui8L+r@p`tdvU zwsVDjEXTQHqfr{IiSD=*a9%3>WhqR&Xws`<6u$rUZ2GH)O+mE_P!WBA5OU9Ex}`Z) zD1qVKhb6}lvfpDK{Bdk}F#wM7UpzZact*)ygimVK;t z7@{J}J4lt?e{XwZ%?joEyp8rJe_>4sG(Kl;>LQ+rl>OH%u_yd^#-KS%XL+mam@&&{ zw0)0=V5e=gHqZnUtlIT}(#&`hkKVt#$gScj1H9iY96r1~+O) zKCxd=OZk&U?ly_9&$1G!bsZmY55*B#$lIoWD?h}3W0NXm&{c9~=OTZWx` zY%|@4)>-m_<w*cE+*qufT__&#XM?f;9ABjsNC^1d}Olauo;r-?w6eMT;Qdv zjm40wn8}LKJY#Yx2i*UqF;Yt zvu`X2Km}WAw;-=h|7@Yg-5<#IodVz9*w<2@3nB+8A*}%qzv!r@^Vl)KipGz|bk3dp zemK<4zdKnjMmRa$UhS+^7Kl!bEOywp%;#!vyoUsBv&Tm3C#aKDhPNHLSIph{##!WY^w#2W-v2O9??(!0 z<=woT3e^qSbUpfyciog>gSPqyPGS+YpdxG7U~!`3+|*S+@jYeUJh$xK6ElFmqIhIu zN~Fq0dI_flpgG}_j|`L}2_2FSGVXsTa4+|Yf-I{)Cb}kF|4Fg{0X{3M9Z8tFnpx;$glJ<`i6vYtDb|y;Mefdderp55y8=e zKL24Hg4j4nCck>mHk z8;zLLQd5-N+i2>nvbe8L$ilfecMFNDD8B{GlAHx*(cRoz6_!rekzw&AL-Y0MGKYu*sq^vaW)4X1=GK5qU^h)qD zVWD{8$6esXPwgCloM`#8pS&As3A0!7`1>%HNi2KKDWiD2Wp6vDLOtW0;^onHEf5p@ za9AEr+QjyEVcz2VGN$c~Sh89lXh+JB2PKZ%15`XUOk`wuhb~CdZO%h-y2a-W`CP5r4F!=;Gq=QZy&~9LepBNd->~!REvDn zo}pwiLl52v%)XzHC-a#N!KQqst>&s( zFoPZw3QAj5j6Ht%fLX(-_%LQCfqEMww~$u1WxLz-`(#S>8b{VhL4|eArPz!t{&mKN zf@@SXZ3omR=<{e)7Q*P)M00}re1a=LMp0NZ%rt@oATC>Hs#Rw6#BHvl!ok}$hgMmD zB(=OPlS*P6EJUkLOZ&P&74o3;rW@(jvx0le{h&uedDh}(BLsOAA}^Lugp++L>efa-G9`QA)WL zd$Yc>RsS2$P8C5eeQL2XHB9gwr1b7K)SQ0(Tz8EZga3@Ban7gTty`DKFHgE{iKL1> zKJtW}j7~d;$>etXl`@=$sOFxC0K&n8f8YXU-ei(b3p{}?WeCSa$_u}x@ryJM#U+$u z>zx|l%e?KARRQ$C%Eq5Dv*^dIM)<*8?ug5f)qILgK%JEixL5$om*mh_=+#J5_$K|w zDWm%-Ul29KTE%z!&+sYJOAwS=8?u?%R~)M4 z;JhDV>DhX9)~Gh1e!gx`w_A0t86q+_&XE<7w=cziExn?2VSkSq zL_nyWL%5ouL7?iQ?2xx-Et|E|I4p;w%C*Og@cA0L55&%u@u#C4A4ZnMXuDw;AH7Jj4Mj5CC_r^J~{ixoe&QiN7z-n_M1 zi&um9!w8*`YOGN!eu2GI-rWm$9J>8`EO#S?0&oqZFFMA8iq;b+2>6_eHrA2Apjedt z{BJRVxc~~*(Q|qpXpI-mE>^9{+O8G~*8S-3oi;`nF0xTo$eJtJlB8LK_l$z|9n`NW znKV9WeP5i^Q2(`G`!D$!WyZ`gsQCafvyilKx@XtNBxCi<=fKV50K!d#SiYR^g7y8e zLS7WfFaF^cixzX0$!`P4);x2vx5%Qe(ve-kOsMAOxMrFmyJq3pBW1ahJcfWu=R2tS z>8%eyVs536oF{7Os54cWqy0KD1JI%6;QWITXj&HYyUpJhu{3qQYxXWH`g{j+VLPiJ zuKkS(a~atN{`J{B>VM?~RV!L3n8;1u@iUuW{AfWA&qDrq69z~#(?;&t2!Fj*=$mJA zU9*icXMdpe@`e4`>dNax3TGzmy|YrI(=(xB->Ea?pzwCl!iGqLK$e?{E?wZOQZdHV z$sVgWze=2KwTv@Du8&S0jjh|2^ki#f2VPl5CFm+VTYE+@c7)lw?*TqJsWmhF>4Oy( z*b)6w#7C9odA$O9m-23VRHnuOo~=z@JOAz$!@`@Luo0<|FifN~cgKBeZuJ>S>(+$O zt4mRXYA-U)%_LnAx>z&#kQ!h;k9LGaC8>LF8S1Z-7*_B5aZfbf+(5ZuIpjzdh-uy( z3Ng2O%T{Y27ujUfL|RDBDDaApbG%kvR%6;t^o|(%mujf-ebFYCDdkPjNpXMOS#!_pnhQT+{hgO4ydEChP={CG^X4_h)mKMjZiCWx}aKa~yAneS5L+%LYAC);A(Ja)xfO z!SgeIXCj3p*=!9!?V|~Gv!V^^7(DTKbqIBd9-_i3vV-SXNKnd5HFP!kFNWX761!Hl z*2Mo%ZfF$R#ekoA<&7234Mf_o8`Rj(7Fmtq*pgjLJ?dw1V(BZ<2YY>@mA{VtOS11} ze3!E+Lhw|Lx(|8^U#m2Z&=Ye@aff(j=GbVEW@Q04lUL;{Rv4A8e*+4L1U5bm^Zea_ z_*hgs7w`U3a)i~gBub`_BkuTL+C-I46|6cdp9Dl5ao#L{9h~*2Y1HL>hr-@_Fc}#a zU;Lhl9WZtcu7Q=0jfKQr2HHdw7#VX|tBYA*TzC25oD6akp@cum=hYb0>4T=&gS9RIj$ceYmg9}aQ#O^%PV?5){$ zZbJ8O-ln>_`Mvnsi^7y7`HYGgvI3og2eLWoO56TlpvPfx&Aa`^8rZSJA~GGr;q6VT zSKVD(b&Ear_Z_fW-_`YZigtls?qa=g57yY`HzT4tq2n8P-I;_w8{*u6x%aN>z|E=3 zKXkCuA^Yo4kZPeZA24%F{B<>3&2o8*-1ZCh{!X8GL;-t-sYC(U342N3_cZMJyH_p# zSkjdS4d(u{IVyzU!~%n{prU}2^*;*T~Py&YIf7do#@-%>dY8({B$6m!0xy z+4QFIgYH^k?L9j{$Ch=lL?j&k*}h)Hy~ zzXHRxiZfKln(fH9^kEXL9$bp17OMZsV#_a_odutJx_QDUM7#%00r(7KCf?3La4xG2 zkRW#vA*I-0VaRlq)ppk#`xbi9!sGqB%Ef1;Ef13Q3Uk$IBvka(C3fRPXB1YJ_KOQz=b})tw%IZxbAmZt8?`b??3_a2VpMi9I&-B2HgJjq zyJp4=0Fa*vlPj@j7$%xNiJhQ{B`f+Zf1V!1ug9nKumISr-5!m!^e%ZWxkFfDaC6Fp z@sU4)#UA(ZCP)fvEjkZA9Vp7rMH-M4U4tFWZ?(Mf>lU^FP+ zRBBb$wFRsJxvGPI=10Ya?Ha{4>uFjE9K)hPZwb#&DGwhOO|Gp~h}N2ZP8m9)9$OFX z&fM@C`@_b~_-x$Lf&$;k<@)OS3ZO`8-yKaoX$_-rKEjcWD0Uk&OxXPs#nt^51limX zV$h6y?Lf65VytHX@DlrqUts2^?=(Vs2RA9&eEGD6Js~LCG~eiQUOkjZ*zoBC2laE$ zeN!+S#eR_(kj&v4{dWnJ7=u(C#~wg4s318gO!T(kFOz?1+QYo#$tMZK#=A;ecB
f{>5PI-wb>SyZ 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ٌ<5{v8;(wZnwgUk1GIjqT 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

xV7@+9IEFGPk2{<^I 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

" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "ssb_interpreted = ssb[ssb.executor == \"Interpreted\"].copy()\n", "\n", @@ -975,21 +234,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "c36bdd23", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAGGCAYAAAAAW6PhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQqJJREFUeJzt3XeYVOXZP/DvALKIFMEOImhMFOyKBRtioohdI5bYW4r6WohR0Sgl9iT2gEYTNVZsJL76RmPvFbDEXlAQQWPFipT5/eHPTTag7uCuc2Q+n+va69rznDPnfGduPZPcPvucUrlcLgcAAAAAgEJoUe0AAAAAAAD8m6YtAAAAAECBaNoCAAAAABSIpi0AAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBaNoCAAAAABSIpi0AQI148MEHM3DgwCyxxBJp3bp1Fl988eywww554IEHvtF5R4wYkYsuumi28VdeeSWlUmmO++ZWc5yzFl100UUplUp55ZVXqh0FAIA50LQFAKgBZ599dtZbb7289tprOfXUU3Prrbfmd7/7XSZNmpT1118/55xzzlyf+8uatksssUQeeOCBbLHFFt8gefOfEwAAiqZVtQMAANC87rvvvhx66KHZfPPNM3r06LRq9e//Cbjzzjtnu+22yyGHHJLVVlst6623XpNdt66uLuuss06Tna+5zvl1Pvnkk7Rp0yalUulbvS4AALXLTFsAgHncSSedlFKplJEjRzZo2CZJq1atMmLEiJRKpZx88sn140OHDk2pVMq4ceOy/fbbp0OHDunYsWN22223/Otf/6o/rkePHnnqqady1113pVQqpVQqpUePHknmvJTBF+d94oknMnDgwHTs2DGdO3fOoEGDMmPGjDz33HPZbLPN0r59+/To0SOnnnpqg7xzOucX153Tz3/++f+jjz6arbfeOp07d06bNm2y2mqr5aqrrmpw/i+WDfjHP/6RffbZJ4ssskjatm2badOmzfGznTVrVo4//vgst9xymX/++bPgggtm5ZVXzplnnlnxZ/mFUaNGpU+fPllggQXSrl279O/fP+PGjZvtuMa8n+TzZTHWW2+9tGnTJl26dMngwYMzffr02Y4rlUoZOnTobOM9evTIXnvtNdtndMstt2TvvfdO586ds8ACC2SrrbbKyy+/PMfPCQCAymjaAgDMw2bOnJk77rgjvXv3zpJLLjnHY7p165Y11lgjt99+e2bOnNlg33bbbZdll10211xzTYYOHZq//vWv6d+/f33Tb/To0VlmmWWy2mqr5YEHHsgDDzyQ0aNHf22uHXfcMausskquvfba7L///jn99NNz2GGHZdttt80WW2yR0aNHZ+ONN86RRx6Z66677ivP9cV1v/i5/fbb07Vr1yy++OLp3LlzkuSOO+7Ieuutl/feey/nnntu/va3v2XVVVfNTjvtNMelHfbZZ5/MN998ueSSS3LNNddkvvnmm+O1Tz311AwdOjS77LJLbrzxxowaNSr77rtv3nvvvdmO/brPMklOPPHE7LLLLunVq1euuuqqXHLJJfnggw+ywQYb5Omnn64/rrHv5+mnn84Pf/jDvPfee7noooty7rnnZty4cTn++OO/8jNtjH333TctWrTI5ZdfnjPOOCMPP/xwNtpoozm+dwAAKlQGAGCeNWXKlHKS8s477/yVx+20007lJOU33nijXC6Xy0OGDCknKR922GENjrvsssvKScqXXnpp/dgKK6xQ7tu372znHD9+fDlJ+cILL6wf++K8v//97xscu+qqq5aTlK+77rr6senTp5cXWWSR8vbbb/+V5/xPM2bMKG+zzTbldu3alceMGVM/vvzyy5dXW2218vTp0xscv+WWW5aXWGKJ8syZM8vlcrl84YUXlpOU99hjjzme/79tueWW5VVXXfUrj2nsZzlhwoRyq1atyv/zP//T4LgPPvigvPjii5d33HHHit/PTjvtVJ5//vnLU6ZMqT9mxowZ5eWXX76cpDx+/Pj68STlIUOGzJa/e/fu5T333LN++4vPaLvttmtw3H333VdOUj7++OO/8vMAAODrmWkLAEDK5XKSzLZu66677tpge8cdd0yrVq1yxx13fKPrbbnllg22e/bsmVKplAEDBtSPtWrVKssuu2xeffXVRp/3oIMOyo033pirr746q6++epLkxRdfzLPPPlv/XmbMmFH/s/nmm2fy5Ml57rnnGpznxz/+caOut9Zaa+Xxxx/PAQcckJtvvjlTp0790mO/7rO8+eabM2PGjOyxxx4NMrZp0yZ9+/bNnXfeWfH7ueOOO/LDH/4wiy22WP11W7ZsmZ122qlR7++r/Pf7WXfdddO9e/dv/M8GAAAeRAYAME9beOGF07Zt24wfP/4rj3vllVfStm3b+uUEvrD44os32G7VqlUWWmihvP32298o139fp3Xr1mnbtm3atGkz2/hXNUL/0/HHH59zzz03f/rTn7LZZpvVj7/xxhtJksMPPzyHH374HF/71ltvNdheYoklGnXNwYMHZ4EFFsill16ac889Ny1btsyGG26YU045Jb17925w7Nd9ll/kXHPNNed4rRYtWlT8ft5+++3ZrjunLHPjy877Tf/ZAABA0xYAYJ7WsmXL9OvXLzfddFNee+21Oa5r+9prr2XMmDEZMGBAWrZs2WDflClT0rVr1/rtGTNm5O23385CCy3U7NkrcdFFF+XYY4/N0KFDs88++zTYt/DCCyf5vMG6/fbbz/H1yy23XIPt/55x/GVatWqVQYMGZdCgQXnvvfdy66235uijj07//v0zceLEtG3btv7Yr/ssv8h5zTXXpHv37l96zUrez0ILLZQpU6bMtn9OY3V1dXN84NqXNWG/7LzLLrvsl2YHAKBxNG0BAOZxgwcPzt///vcccMABGT16dIPG7MyZM/OLX/wi5XI5gwcPnu21l112WdZYY4367auuuiozZszIRhttVD9WV1eXTz75pFnfw1e56aabsv/++2efffbJkCFDZtu/3HLL5fvf/34ef/zxnHjiic2WY8EFF8wOO+yQSZMm5dBDD80rr7ySXr161e//us+yf//+adWqVV566aWvXJ6hkvfTr1+/XH/99XnjjTfql0iYOXNmRo0aNduxPXr0yBNPPNFg7Pbbb8+HH344x3NfdtllDXLef//9efXVV7Pffvt9ZSYAAL6epi0AwDxuvfXWyxlnnJFDDz0066+/fg466KAstdRSmTBhQv7whz/koYceyhlnnJF11113ttded911adWqVTbZZJM89dRTOfbYY7PKKqtkxx13rD9mpZVWypVXXplRo0ZlmWWWSZs2bbLSSit9K+9t/PjxGThwYJZZZpnsvffeefDBBxvsX2211VJXV5fzzjsvAwYMSP/+/bPXXnula9eueeedd/LMM89k7Nixufrqq+fq+ltttVVWXHHF9O7dO4ssskheffXVnHHGGenevXu+//3vNzj26z7LHj16ZPjw4TnmmGPy8ssvZ7PNNkunTp3yxhtv5OGHH84CCyyQYcOGJUmj38+vf/3rXH/99dl4441z3HHHpW3btvnDH/6Qjz76aLb3svvuu+fYY4/Ncccdl759++bpp5/OOeeck44dO87xvT/66KPZb7/9MnDgwEycODHHHHNMunbtmgMOOGCuPksAAP5N0xYAoAb8z//8T9Zcc838/ve/zy9/+cu8/fbb6dy5c9Zff/3ce++96dOnzxxfd91112Xo0KEZOXJkSqVSttpqq5xxxhlp3bp1/THDhg3L5MmTs//+++eDDz5I9+7d88orr3wr7+vVV1/Nhx9+mOeffz4bbLDBbPvHjx+fHj16pF+/fnn44Ydzwgkn5NBDD827776bhRZaKL169WrQgK5Uv379cu211+aCCy7I1KlTs/jii2eTTTbJsccem/nmm6/BsY35LAcPHpxevXrlzDPPzBVXXJFp06Zl8cUXz5prrpmf//znDa7bmPez4oor5tZbb80vf/nL7LnnnunUqVN23333/PjHP85Pf/rTBvl+9atfZerUqbnooovyu9/9LmuttVauuuqqbLPNNnN873/6059yySWXZOedd860adPSr1+/nHnmmbOtVwwAQOVK5S8eFQwAAP/f0KFDM2zYsPzrX/+qX0OVuTOvfZYXXXRR9t577zzyyCOzPWwNAICm0aLaAQAAAAAA+DdNWwAAAACAArE8AgAAAABAgZhpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgraod4JuYNWtWXn/99bRv3z6lUqnacQAAAAAAvlS5XM4HH3yQLl26pEWLL59P+51u2r7++uvp1q1btWMAAAAAADTaxIkTs+SSS37p/u9007Z9+/ZJPn+THTp0qHIaAAAAAIAvN3Xq1HTr1q2+r/llvtNN2y+WROjQoYOmLQAAAADwnfB1S716EBkAAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBaNoCAAAAABSIpi0AAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBtKp2AAAAAJpPj6NurHaEJvXKyVtUOwIANDszbQEAAAAACkTTFgAAAACgQDRtAQAAAAAKRNMWAAAAAKBANG0BAAAAAApE0xYAAAAAoEA0bQEAAAAACkTTFgAAAACgQDRtAQAAAAAKRNMWAAAAAKBAWlU7AAAAANSiHkfdWO0ITeaVk7eodgSAeYqZtgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgVW/aTpo0KbvttlsWWmihtG3bNquuumrGjBlT7VgAAAAAAFXRqpoXf/fdd7PeeuulX79++fvf/55FF100L730UhZccMFqxgIAAAAAqJqqNm1POeWUdOvWLRdeeGH9WI8ePaoXCAAAAACgyqq6PML111+f3r17Z+DAgVl00UWz2mqr5fzzz69mJAAAAACAqqpq0/bll1/OyJEj8/3vfz8333xzfv7zn+fggw/OX/7ylzkeP23atEydOrXBDwAAAADAvKSqyyPMmjUrvXv3zoknnpgkWW211fLUU09l5MiR2WOPPWY7/qSTTsqwYcO+7ZgAAAAAAN+aqs60XWKJJdKrV68GYz179syECRPmePzgwYPz/vvv1/9MnDjx24gJAAAAAPCtqepM2/XWWy/PPfdcg7Hnn38+3bt3n+PxdXV1qaur+zaiAQAAAABURVVn2h522GF58MEHc+KJJ+bFF1/M5Zdfnj/+8Y858MADqxkLAAAAAKBqqtq0XXPNNTN69OhcccUVWXHFFfOb3/wmZ5xxRnbddddqxgIAAAAAqJqqLo+QJFtuuWW23HLLascAAAAAACiEqs60BQAAAACgoarPtAUAgEr0OOrGakdoUq+cvEW1IwAAUDBm2gIAAAAAFEijZtquttpqKZVKjTrh2LFjv1EgAADgu2lemgVtBjQAUE2Natpuu+229b9/+umnGTFiRHr16pU+ffokSR588ME89dRTOeCAA5olJAAAAABArWhU03bIkCH1v++33345+OCD85vf/Ga2YyZOnNi06QAAAAAAakzFa9peffXV2WOPPWYb32233XLttdc2SSgAAAAAgFpVcdN2/vnnz7333jvb+L333ps2bdo0SSgAAAAAgFrVqOUR/tOhhx6aX/ziFxkzZkzWWWedJJ+vafvnP/85xx13XJMHBAAAAACoJRU3bY866qgss8wyOfPMM3P55ZcnSXr27JmLLrooO+64Y5MHBAAAAACoJRU3bZNkxx131KAFAAAAAGgGFa9pmyTvvfdeLrjgghx99NF55513kiRjx47NpEmTmjQcAAAAAECtqXim7RNPPJEf/ehH6dixY1555ZXst99+6dy5c0aPHp1XX301f/nLX5ojJwAAAABATah4pu2gQYOy11575YUXXkibNm3qxwcMGJC77767ScMBAAAAANSaipu2jzzySH72s5/NNt61a9dMmTKlSUIBAAAAANSqipu2bdq0ydSpU2cbf+6557LIIos0SSgAAAAAgFpVcdN2m222yfDhwzN9+vQkSalUyoQJE3LUUUflxz/+cZMHBAAAAACoJRU3bX/3u9/lX//6VxZddNF88skn6du3b5Zddtm0b98+J5xwQnNkBAAAAACoGa0qfUGHDh1y77335vbbb8/YsWMza9asrL766vnRj37UHPkAAAAAAGpKxU3bCRMmZLHFFsvGG2+cjTfeuH68XC5n4sSJWWqppZo0IAAAAABALal4eYQePXpk9dVXz0svvdRg/M0338zSSy/dZMEAAAAAAGpRxU3bJOnZs2fWWmut3HbbbQ3Gy+Vyk4QCAAAAAKhVFTdtS6VSRowYkV//+tfZYostctZZZzXYBwAAAADA3Kt4TdsvZtMedthhWX755bPLLrvkiSeeyHHHHdfk4QAAAAAAak3FTdv/NGDAgNx///3Zeuut8/DDDzdVJgAAAACAmlXx8gh9+/ZN69at67d79eqVhx9+OJ06dbKmLQAAAADAN1TxTNs77rhjtrHOnTvnrrvuapJAAAAAAAC1rFFN26lTp6ZDhw71v3+VL44DAAAAAKByjWradurUKZMnT86iiy6aBRdcMKVSabZjyuVySqVSZs6c2eQhAQAAAABqRaOatrfffns6d+6cZM7LIwAAAAAA0DQa1bTt27fvHH8HAAAAAKBpVfwgsiT59NNP88QTT+TNN9/MrFmzGuzbeuutG32eoUOHZtiwYQ3GFltssUyZMmVuYgEAAAAAfOdV3LS96aabsscee+Stt96abd/crGm7wgor5NZbb63fbtmyZaWRAAAAAADmGS0qfcFBBx2UgQMHZvLkyZk1a1aDn7l5CFmrVq2y+OKL1/8sssgiFZ8DAAAAAGBeUXHT9s0338ygQYOy2GKLNUmAF154IV26dMnSSy+dnXfeOS+//PKXHjtt2rRMnTq1wQ8AAAAAwLyk4qbtDjvskDvvvLNJLr722mvnL3/5S26++eacf/75mTJlStZdd928/fbbczz+pJNOSseOHet/unXr1iQ5AAAAAACKouI1bc8555wMHDgw99xzT1ZaaaXMN998DfYffPDBjT7XgAED6n9faaWV0qdPn3zve9/LxRdfnEGDBs12/ODBgxuMT506VeMWAAAAAJinVNy0vfzyy3PzzTdn/vnnz5133plSqVS/r1QqVdS0/W8LLLBAVlpppbzwwgtz3F9XV5e6urq5Pj8AAAAAQNFV3LT99a9/neHDh+eoo45KixYVr67wlaZNm5ZnnnkmG2ywQZOeFwAAAADgu6Lirutnn32WnXbaqUkatocffnjuuuuujB8/Pg899FB22GGHTJ06NXvuuec3PjcAAAAAwHdRxZ3XPffcM6NGjWqSi7/22mvZZZddstxyy2X77bdP69at8+CDD6Z79+5Ncn4AAAAAgO+aipdHmDlzZk499dTcfPPNWXnllWd7ENlpp53W6HNdeeWVlV4eAAAAAGCeVnHT9sknn8xqq62WJPnnP//ZYN9/PpQMAAAAAIDKVdy0veOOO5ojBwAAAAAAmYs1bQEAAAAAaD6Nmmm7/fbb56KLLkqHDh2y/fbbf+Wx1113XZMEAwAAAACoRY1q2nbs2LF+vdoOHTpYuxYAAAAAoJk0qml74YUX1v9+0UUXNVcWAAAAAICaV/GathtvvHHee++92canTp2ajTfeuCkyAQAAAADUrIqbtnfeeWc+++yz2cY//fTT3HPPPU0SCgAAAACgVjVqeYQkeeKJJ+p/f/rppzNlypT67ZkzZ+amm25K165dmzYdAAAAAECNaXTTdtVVV02pVEqpVJrjMgjzzz9/zj777CYNBwAAAABQaxrdtB0/fnzK5XKWWWaZPPzww1lkkUXq97Vu3TqLLrpoWrZs2SwhAQAAAABqRaObtt27d0+SzJo1q9nCAAAAAADUukY3bf/Tc889l7PPPjvPPPNMSqVSll9++Rx00EFZfvnlmzofAAAAAEBNaVHpC6655pqsuOKKGTNmTFZZZZWsvPLKGTt2bFZaaaVcffXVzZERAAAAAKBmVDzT9ogjjsjgwYMzfPjwBuNDhgzJkUcemYEDBzZZOAAAAACAWlPxTNspU6Zkjz32mG18t912y5QpU5okFAAAAABAraq4abvRRhvlnnvumW383nvvzQYbbNAkoQAAAAAAalXFyyNsvfXWOfLIIzNmzJiss846SZIHH3wwV199dYYNG5brr7++wbEAAAAAADRexU3bAw44IEkyYsSIjBgxYo77kqRUKmXmzJnfMB4AAAAAQG2puGk7a9as5sgBAAAAAEDmYk1bAAAAAACaT0VN2xkzZuS3v/1tVl999bRr1y7t27fP6quvnt/97neZPn16c2UEAAAAAKgZjV4e4ZNPPskmm2ySBx54ID/60Y+y4YYbplwu59lnn82RRx6Z66+/Pv/4xz/Spk2b5swLAAAAADBPa3TT9qSTTsrEiRMzbty4rLzyyg32Pf7449l6661z8sknZ+jQoU2dEQAAAACgZjR6eYQrr7wyp5122mwN2yRZZZVV8rvf/S6XX355k4YDAAAAAKg1jW7aTpgwIWuttdaX7l9nnXUyYcKEJgkFAAAAAFCrGt207dChQ958880v3T9lypR06NChSUIBAAAAANSqRjdt+/XrlxNPPPFL95988snZaKONmiITAAAAAEDNavSDyIYMGZK1114766yzTgYNGpTll18+SfL000/n9NNPz9NPP50HH3yw2YICAAAAANSCRjdte/XqlVtuuSX77rtvdt5555RKpSRJuVzO8ssvn5tvvjkrrLBCswUFAAAAAKgFjV4eIfn8YWNPPfVUxo4dmyuuuCJXXHFFxo4dm6effjrrrrvuNwpy0kknpVQq5dBDD/1G5wEAAAAA+C5r9Ezb/7Tqqqtm1VVXbbIQjzzySP74xz9m5ZVXbrJzAgAAAAB8F1U007Y5fPjhh9l1111z/vnnp1OnTtWOAwAAAABQVVVv2h544IHZYost8qMf/ajaUQAAAAAAqm6ulkdoKldeeWXGjh2bRx55pFHHT5s2LdOmTavfnjp1anNFAwAAAACoikbPtP3jH/+YKVOmNNmFJ06cmEMOOSSXXnpp2rRp06jXnHTSSenYsWP9T7du3ZosDwAAAABAETS6aXvFFVekR48eWXvttXPiiSfmqaee+kYXHjNmTN58882sscYaadWqVVq1apW77rorZ511Vlq1apWZM2fO9prBgwfn/fffr/+ZOHHiN8oAAAAAAFA0jV4e4Y477si7776bG2+8Mddff31OOeWULLzwwtlmm22y9dZbZ8MNN0yLFo1fIveHP/xhnnzyyQZje++9d5ZffvkceeSRadmy5WyvqaurS11dXaOvAQAAAADwXVPRmradOnXKbrvtlt122y2fffZZbr/99lx//fXZfffd8/HHH2eLLbbI1ltvnQEDBmSBBRb4ynO1b98+K664YoOxBRZYIAsttNBs4wAAAAAAtaLxU2P/S+vWrbPZZptlxIgRmThxYm6++eb06NEjv/nNb3Laaac1ZUYAAAAAgJpR0Uzbr9K7d+/07t07w4cPz/Tp0+fqHHfeeWdTxQEAAAAA+E6a65m2X2W++eZrjtMCAAAAAMzzmqVpCwAAAADA3NG0BQAAAAAoEE1bAAAAAIACmaum7T333JPddtstffr0yaRJk5Ikl1xySe69994mDQcAAAAAUGsqbtpee+216d+/f+aff/6MGzcu06ZNS5J88MEHOfHEE5s8IAAAAABALam4aXv88cfn3HPPzfnnn5/55puvfnzdddfN2LFjmzQcAAAAAECtqbhp+9xzz2XDDTecbbxDhw557733miITAAAAAEDNqrhpu8QSS+TFF1+cbfzee+/NMsss0yShAAAAAABqVcVN25/97Gc55JBD8tBDD6VUKuX111/PZZddlsMPPzwHHHBAc2QEAAAAAKgZrSp9wRFHHJH3338//fr1y6effpoNN9wwdXV1Ofzww3PQQQc1R0YAAAAAgJpRcdM2SU444YQcc8wxefrppzNr1qz06tUr7dq1a+psAAAAAAA1p+LlES6++OJ89NFHadu2bXr37p211lpLwxYAAAAAoIlU3LQ9/PDDs+iii2bnnXfODTfckBkzZjRHLgAAAACAmlRx03by5MkZNWpUWrZsmZ133jlLLLFEDjjggNx///3NkQ8AAAAAoKZU3LRt1apVttxyy1x22WV58803c8YZZ+TVV19Nv3798r3vfa85MgIAAAAA1Iy5ehDZF9q2bZv+/fvn3XffzauvvppnnnmmqXIBAAAAANSkimfaJsnHH3+cyy67LJtvvnm6dOmS008/Pdtuu23++c9/NnU+AAAAAICaUvFM21122SX/+7//m7Zt22bgwIG58847s+666zZHNgAAAACAmlNx07ZUKmXUqFHp379/WrX6RqsrAAAAAADwXyruul5++eXNkQMAAAAAgDSyaXvWWWflpz/9adq0aZOzzjrrK489+OCDmyQYAAAAAEAtalTT9vTTT8+uu+6aNm3a5PTTT//S40qlkqYtAAAAAMA30Kim7fjx4+f4OwAAAAAATatFtQMAAAAAAPBvFT+ILElee+21XH/99ZkwYUI+++yzBvtOO+20JgkGAAAAAFCLKm7a3nbbbdl6662z9NJL57nnnsuKK66YV155JeVyOauvvnpzZAQAAAAAqBkVL48wePDg/PKXv8w///nPtGnTJtdee20mTpyYvn37ZuDAgc2REQAAAACgZlTctH3mmWey5557JklatWqVTz75JO3atcvw4cNzyimnNHlAAAAAAIBaUnHTdoEFFsi0adOSJF26dMlLL71Uv++tt95qumQAAAAAADWo4jVt11lnndx3333p1atXtthii/zyl7/Mk08+meuuuy7rrLNOc2QEAAAAAKgZFc+0Pe2007L22msnSYYOHZpNNtkko0aNSvfu3fOnP/2ponONHDkyK6+8cjp06JAOHTqkT58++fvf/15pJAAAAACAeUbFM22XWWaZ+t/btm2bESNGzPXFl1xyyZx88slZdtllkyQXX3xxttlmm4wbNy4rrLDCXJ8XAAAAAOC7quKmbVPaaqutGmyfcMIJGTlyZB588EFNWwAAAACgJjW6abv00kunVCp95TGlUqnBg8kqMXPmzFx99dX56KOP0qdPnzkeM23atPqHoCXJ1KlT5+paAAAAAABF1eim7aGHHvql+1555ZWcd955DRqqjfXkk0+mT58++fTTT9OuXbuMHj06vXr1muOxJ510UoYNG1bxNQAAAAAAvisa3bQ95JBDZht755138pvf/CYjR47M2muvnVNOOaXiAMstt1wee+yxvPfee7n22muz55575q677ppj43bw4MEZNGhQ/fbUqVPTrVu3iq8JAAAAAFBUc7Wm7SeffJLTTjstv/3tb9OjR49cd9112XzzzecqQOvWresfRNa7d+888sgjOfPMM3PeeefNdmxdXV3q6urm6joAAAAAAN8FFTVtZ86cmfPPPz/Dhg1LmzZtcvbZZ2e33Xb72rVuK1Eul+dqmQUAAAAAgHlBo5u2V111VX7961/n/fffz9FHH51f/OIXad269Te6+NFHH50BAwakW7du+eCDD3LllVfmzjvvzE033fSNzgsAAAAA8F3V6KbtzjvvnPnnnz+77LJLXn311Rx11FFzPO60005r9MXfeOON7L777pk8eXI6duyYlVdeOTfddFM22WSTRp8DAAAAAGBe0uim7YYbbphSqZSXXnrpS4+pdJmEP/3pTxUdDwAAAAAwr2t00/bOO+9sxhgAAAAAACRJi2oHAAAAAADg3zRtAQAAAAAKRNMWAAAAAKBANG0BAAAAAApE0xYAAAAAoECatGk7YcKEzJw5sylPCQAAAABQU5q0adujR4/06tUr1113XVOeFgAAAACgZrRqypPdcccdGT9+fK655ppsv/32TXlqAAAAAICa0KRN2759+6Zv377Za6+9mvK0AAAAAAA1Y66btm+++Waee+65lEql/OAHP8iiiy7alLkAAAAAAGpSxWvaTp06Nbvvvnu6du2avn37ZsMNN0zXrl2z22675f3332+OjAAAAAAANaPipu1+++2Xhx56KDfccEPee++9vP/++7nhhhvy6KOPZv/992+OjAAAAAAANaPi5RFuvPHG3HzzzVl//fXrx/r375/zzz8/m222WZOGAwAAAACoNRXPtF1ooYXSsWPH2cY7duyYTp06NUkoAAAAAIBaVXHT9te//nUGDRqUyZMn149NmTIlv/rVr3Lsscc2aTgAAAAAgFpT8fIII0eOzIsvvpju3btnqaWWSpJMmDAhdXV1+de//pXzzjuv/tixY8c2XVIAAAAAgBpQcdN22223bYYYAAAAAAAkc9G0HTJkSHPkAAAAAAAgc7GmLQAAAAAAzafimbYtWrRIqVT60v0zZ878RoEAAAAAAGpZxU3b0aNHN9iePn16xo0bl4svvjjDhg1rsmAAAAAAALWo4qbtNttsM9vYDjvskBVWWCGjRo3Kvvvu2yTBAAAAAABqUZOtabv22mvn1ltvbarTAQAAAADUpCZp2n7yySc5++yzs+SSSzbF6QAAAAAAalbFyyN06tSpwYPIyuVyPvjgg7Rt2zaXXnppk4YDAAAAAKg1FTdtTz/99AZN2xYtWmSRRRbJ2muvnU6dOjVpOAAAAACAWlNx03avvfZqhhgAAAAAACSNbNo+8cQTjT7hyiuvPNdhAAAAAABqXaOatquuumpKpVLK5XKSNFge4b/NnDmzaZIBAAAAANSgFo05aPz48Xn55Zczfvz4XHfddVl66aUzYsSIjBs3LuPGjcuIESPyve99L9dee21FFz/ppJOy5pprpn379ll00UWz7bbb5rnnnpurNwIAAAAAMC9o1Ezb7t271/8+cODAnHXWWdl8883rx1ZeeeV069Ytxx57bLbddttGX/yuu+7KgQcemDXXXDMzZszIMccck0033TRPP/10Flhggca/CwAAAACAeUTFDyJ78skns/TSS882vvTSS+fpp5+u6Fw33XRTg+0LL7wwiy66aMaMGZMNN9yw0mgAAAAAAN95jVoe4T/17Nkzxx9/fD799NP6sWnTpuX4449Pz549v1GY999/P0nSuXPnb3QeAAAAAIDvqopn2p577rnZaqut0q1bt6yyyipJkscffzylUik33HDDXAcpl8sZNGhQ1l9//ay44opzPGbatGmZNm1a/fbUqVPn+noAAAAAAEVUcdN2rbXWyvjx43PppZfm2WefTblczk477ZSf/OQn32gd2oMOOihPPPFE7r333i895qSTTsqwYcPm+hoAAAAAAEVXcdM2Sdq2bZuf/vSnTRbif/7nf3L99dfn7rvvzpJLLvmlxw0ePDiDBg2q3546dWq6devWZDkAAAAAAKqt4jVtk+SSSy7J+uuvny5duuTVV19Nkpx++un529/+VtF5yuVyDjrooFx33XW5/fbb5/iAs/9UV1eXDh06NPgBAAAAAJiXVNy0HTlyZAYNGpQBAwbk3XffzcyZM5MknTp1yhlnnFHRuQ488MBceumlufzyy9O+fftMmTIlU6ZMySeffFJpLAAAAACAeULFTduzzz47559/fo455pi0avXv1RV69+6dJ598sqJzjRw5Mu+//3422mijLLHEEvU/o0aNqjQWAAAAAMA8oeI1bcePH5/VVltttvG6urp89NFHFZ2rXC5XenkAAAAAgHlaxTNtl1566Tz22GOzjf/9739Pr169miITAAAAAEDNqnim7a9+9asceOCB+fTTT1Mul/Pwww/niiuuyEknnZQLLrigOTICAAAAANSMipu2e++9d2bMmJEjjjgiH3/8cX7yk5+ka9euOfPMM7Pzzjs3R0YAAAAAgJpRcdM2Sfbff//sv//+eeuttzJr1qwsuuiiTZ0LAAAAAKAmVbymbZLMmDEjt956a6699trMP//8SZLXX389H374YZOGAwAAAACoNRXPtH311Vez2WabZcKECZk2bVo22WSTtG/fPqeeemo+/fTTnHvuuc2REwAAAACgJlQ80/aQQw5J79698+6779bPsk2S7bbbLrfddluThgMAAAAAqDUVz7S99957c99996V169YNxrt3755JkyY1WTAAAAAAgFpU8UzbWbNmZebMmbONv/baa2nfvn2ThAIAAAAAqFUVN2032WSTnHHGGfXbpVIpH374YYYMGZLNN9+8KbMBAAAAANScipdHOP3009OvX7/06tUrn376aX7yk5/khRdeyMILL5wrrriiOTICAAAAANSMipu2Xbp0yWOPPZYrrrgiY8eOzaxZs7Lvvvtm1113bfBgMgAAAAAAKldx0zZJ5p9//uyzzz7ZZ599mjoPAAAAAEBNm6um7XPPPZezzz47zzzzTEqlUpZffvkcdNBBWX755Zs6HwAAAABATam4aXvNNddkl112Se/evdOnT58kyYMPPpiVVlopl19+eQYOHNjkIQEAqqHHUTdWO0KTeeXkLaodAQAAaKSKm7ZHHHFEBg8enOHDhzcYHzJkSI488khNWwAAAACAb6Dipu2UKVOyxx57zDa+22675be//W2ThAIAAAAAis9fpzWPFpW+YKONNso999wz2/i9996bDTbYoElCAQAAAADUqopn2m699dY58sgjM2bMmKyzzjpJPl/T9uqrr86wYcNy/fXXNzgWAAAAAIDGq7hpe8ABByRJRowYkREjRsxxX5KUSqXMnDnzG8YDgNrgT4oAAAD4QsVN21mzZjVHDgAAAAAAMhdr2gIAAAAA0HwaPdP2oYceyjvvvJMBAwbUj/3lL3/JkCFD8tFHH2XbbbfN2Wefnbq6umYJCnPiz4kBAAAAmNc0eqbt0KFD88QTT9RvP/nkk9l3333zox/9KEcddVT+93//NyeddFKzhAQAAAAAqBWNbto+9thj+eEPf1i/feWVV2bttdfO+eefn0GDBuWss87KVVdd1SwhAQAAAABqRaObtu+++24WW2yx+u277rorm222Wf32mmuumYkTJzZtOgAAAACAGtPopu1iiy2W8ePHJ0k+++yzjB07Nn369Knf/8EHH2S++eZr+oQAAAAAADWk0Q8i22yzzXLUUUfllFNOyV//+te0bds2G2ywQf3+J554It/73veaJWQReOAVAAAAAPBtaHTT9vjjj8/222+fvn37pl27drn44ovTunXr+v1//vOfs+mmmzZLSAAAAACAWtHopu0iiyySe+65J++//37atWuXli1bNth/9dVXp127dk0eEAAAAACgljS6afuFjh07znG8c+fO3zgMAAAAAECta/SDyJrD3Xffna222ipdunRJqVTKX//612rGAQAAAACouqo2bT/66KOsssoqOeecc6oZAwAAAACgMCpeHqEpDRgwIAMGDKhmBAAAAACAQqlq07ZS06ZNy7Rp0+q3p06dmiR57LHHmv0haNOmvNis5/82jR07ttoRmoy6FNcWZ91T7QhN5saDN6h2BGqA+1kxqUsxzUt1SdSmqNSluNSmmOalugCVcS+rzIcfftio40rlcrnczFkapVQqZfTo0dl2222/9JihQ4dm2LBh314oAAAAAIAm9v7776dDhw5fuv871bSd00zbbt265a677mr2mbZmDRaTuhSX2kBl/DtTTOpSTPNSXRK1KSp1KS61KaZ5qS5AZdzLKvPhhx+mb9++X9u0/U4tj1BXV5e6urrZxlddddWvfJNNcu3FJzfr+b9Nq6++erUjNBl1KS61KaYeR91Y7QhN5pWTt6h2hCbl35liUpdimpfqkqhNUalLcalNMc1LdQEq415WmS+We/06LZo5BwAAAAAAFajqTNsPP/wwL77478WKx48fn8ceeyydO3fOUkstVcVkAAAAAADVUdWm7aOPPpp+/frVbw8aNChJsueee+aiiy6qUioAAAAAgOqpatN2o402SkGegwYAAAAAUAjfqQeRAQAAAFCbPFiZWuJBZAAAAAAABaJpCwAAAABQIJq2AAAAAAAFYk1bAAAAgP/PuqlAEZhpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIJq2AAAAAAAFomkLAAAAAFAgmrYAAAAAAAWiaQsAAAAAUCCatgAAAAAABaJpCwAAAABQIFVv2o4YMSJLL7102rRpkzXWWCP33HNPtSMBAAAAAFRNVZu2o0aNyqGHHppjjjkm48aNywYbbJABAwZkwoQJ1YwFAAAAAFA1VW3annbaadl3332z3377pWfPnjnjjDPSrVu3jBw5spqxAAAAAACqpmpN288++yxjxozJpptu2mB80003zf3331+lVAAAAAAA1dWqWhd+6623MnPmzCy22GINxhdbbLFMmTJljq+ZNm1apk2bVr/9/vvvJ0mmTp3afEH/v1nTPm72a3xbvo3P69uiLsWlNsWkLsWlNsWkLsU0L9UlUZuiUpfiUptiUpdimpfqkqhNUanL3F2jXC5/5XGl8tcd0Uxef/31dO3aNffff3/69OlTP37CCSfkkksuybPPPjvba4YOHZphw4Z9mzEBAAAAAJrUxIkTs+SSS37p/qrNtF144YXTsmXL2WbVvvnmm7PNvv3C4MGDM2jQoPrtWbNm5Z133slCCy2UUqnUrHmb29SpU9OtW7dMnDgxHTp0qHYc/oPaFJO6FJfaFJO6FJfaFJO6FJfaFJO6FJO6FJfaFJO6FNe8VJtyuZwPPvggXbp0+crjqta0bd26ddZYY43ccsst2W677erHb7nllmyzzTZzfE1dXV3q6uoajC244ILNGfNb16FDh+/8P3zzKrUpJnUpLrUpJnUpLrUpJnUpLrUpJnUpJnUpLrUpJnUprnmlNh07dvzaY6rWtE2SQYMGZffdd0/v3r3Tp0+f/PGPf8yECRPy85//vJqxAAAAAACqpqpN25122ilvv/12hg8fnsmTJ2fFFVfM//3f/6V79+7VjAUAAAAAUDVVbdomyQEHHJADDjig2jGqrq6uLkOGDJlt+QeqT22KSV2KS22KSV2KS22KSV2KS22KSV2KSV2KS22KSV2KqxZrUyqXy+VqhwAAAAAA4HMtqh0AAAAAAIB/07QFAAAAACgQTVsAAAAAgALRtAUAAAAAKBBNWwAAAJhHjR8/PjNmzKh2DAAqpGlbQC+99FI23njjaseoWZMnT86ll16a//u//8tnn33WYN9HH32U4cOHVylZbbvlllsyZMiQ3H777UmSu+++OwMGDMjGG2+cCy+8sMrpmBP3supyLysm97LvJvez6nEvKy73s++O5ZZbLi+88EK1Y/AVfM9Uj++Z4vI9k5TK5XK52iFo6PHHH8/qq6+emTNnVjtKzXnkkUey6aabZtasWZk+fXqWXHLJjB49OiussEKS5I033kiXLl3U5lt26aWXZu+9987KK6+c559/PmeffXYOO+yw7LDDDimXy7nkkkty2WWXZYcddqh2VP6De1n1uJcVk3vZd5f7WXW4lxWX+1kxbb/99nMc/9vf/paNN9447du3T5Jcd91132YsGsH3THX4niku3zOfa1XtALXorLPO+sr9kyZN+paS8N+OPvrobL/99jn//PPz0Ucf5aijjkrfvn1zyy23ZLXVVqt2vJr1+9//Pr///e9z8MEH57bbbstWW22VE044IYcddliSpFevXjnjjDPm+Rt20biXFZd7WTG5lxWX+1kxuZcVl/tZMf31r3/NhhtumKWXXnq2fe3atUvHjh2rkIrE90xR+Z4pLt8znzPTtgpatGiRJZZYIq1bt57j/s8++yxTpkzxX3OqoHPnznnwwQfzgx/8oH7s1FNPzcknn5ybb745Sy21lP/SVgXt2rXLk08+Wf8/QFu3bp1HH300K6+8cpLkueeey3rrrZe33nqrmjFrjntZcbmXFZN7WXG5nxWTe1lxuZ8V05VXXplf/epXGT58ePbee+/68fnmmy+PP/54evXqVcV0tc33TDH5niku3zOfM9O2Crp3755TTjklO+644xz3P/bYY1ljjTW+5VR84dNPP22wfcQRR6RFixbZdNNN8+c//7lKqWrbfPPN12B9obq6urRr165+u3Xr1vnkk0+qEa2muZcVm3tZ8biXFZf7WXG5lxWT+1kx7bzzzunTp09222233HDDDbngggvSqVOnascivmeKzPdMMfme+ZwHkVXBGmuskTFjxnzp/lKpFBOgq2PFFVfM/fffP9v44YcfnqOPPjq77LJLFVKx7LLL5tlnn63fnjRpUoM/+3rppZey5JJLViNaTXMvKy73smJyLysu97Nici8rLvez4urevXvuuuuurLjiillllVVy8803p1QqVTtWzfM9U0y+Z4rL98znzLStguHDh+fjjz/+0v29evXK+PHjv8VEfGGPPfbIXXfdlZ///Oez7fvVr36VcrmckSNHViFZbTv66KMbzBLo0KFDg/2PPvrol/5Xa5qPe1lxuZcVk3tZcbmfFZN7WXG5nxVbixYtMmzYsGy66abZfffd/Wl3AfieKSbfM8Xle+Zz1rQFAACAedCHH36Yl156KT179vzS9VQBKCZNWwAAAACAArGmbQEdffTR2WeffaodgzlQm2JSl2JSl+JSm2JSl+JSm2JSl+JSm2JSl+JSm2JSl+KqldpY07aAJk2alIkTJ1Y7BnOgNsWkLsWkLsWlNsWkLsWlNsWkLsWlNsWkLsWlNsWkLsVVK7WxPAIAAAAAQIFYHgEAAAAAoEA0bQvojTfeyPDhw6sdgzlQm2JSl+p67bXX8uGHH842Pn369Nx9991VSMQX1KaY1KWY3n777dxxxx155513kiRvvfVWTjnllAwfPjzPPPNMldPVLnUpLrUpJnX5bllmmWXywgsvVDsG/0VdiqvWamN5hAJ6/PHHs/rqq2fmzJnVjsJ/UZtiUpfqmDx5crbZZpuMGTMmpVIpu+66a/7whz+kXbt2ST5vpnfp0kVdqkBtikldiuvhhx/OpptumqlTp2bBBRfMLbfckoEDB6ZVq1Ypl8uZNGlS7r333qy++urVjlpT1KW41KaY1KW4zjrrrDmODxo0KEcccUQWX3zxJMnBBx/8bcaqeepSXGrzOU3bKnjiiSe+cv+zzz6bXXbZxf9pqwK1KSZ1KaY999wzzz//fM4+++y89957GTx4cMrlcm655ZZ06tQpb7zxRpZYYonMmjWr2lFrjtoUk7oU1yabbJIePXrktNNOy3nnnZczzzwzm222Wc4///wkyX777Ze33347o0ePrnLS2qIuxaU2xaQuxdWiRYt07do1rVo1fBb8q6++mi5dumS++eZLqVTKyy+/XKWEtUldikttPqdpWwUtWrRIqVTKnD76L8ZLpZIGVBWoTTGpSzF17do1o0ePzlprrZUkmTZtWnbaaae8+uqrue222zJ9+nSzBqtEbYpJXYqrc+fOue+++9KzZ89Mnz49bdq0yQMPPFBfq3HjxmWrrbbKa6+9VuWktUVdikttikldiutnP/tZHn744Vx++eXp2bNn/fh8882Xxx9/PL169apiutqlLsWlNp+zpm0VLLTQQjn//PMzfvz42X5efvnl3HDDDdWOWLPUppjUpZjef//9dOrUqX67rq4u11xzTXr06JF+/frlzTffrGK62qY2xaQuxfXZZ59l/vnnT/L5/xlo27ZtFl544fr9Cy20UN5+++1qxatZ6lJcalNM6lJc5513XoYMGZL+/fvnnHPOqXYc/j91KS61+ZymbRWsscYaef3119O9e/c5/nTt2nWOMwppfmpTTOpSTMsss8xsS1e0atUqV199dZZZZplsueWWVUqG2hSTuhRXt27dGvx53ZVXXpkllliifnvy5MkNGh98O9SluNSmmNSl2Lbddts88MADGT16dAYMGJApU6ZUOxJRlyJTG03bqvjZz36WHj16fOn+pZZaKhdeeOG3F4h6alNM6lJMAwYMyB//+MfZxr9oQq266qqa6VWiNsWkLsW18847N5jpvMUWW9TPVkuS66+/vv7Pi/n2qEtxqU0xqUvxde3aNbfeems23HDDrLbaar73C0JdiqvWa2NNWwDmyowZM/Lxxx+nQ4cOc9w/c+bMvPbaa+nevfu3nAy1KSZ1+e76+OOP07Jly9TV1VU7Cv9BXYpLbYpJXYpl7Nixueeee7LHHns0WD6J6lKX4qrF2mjaVtGgQYMafexpp53WjEn4b2pTTOpSTOpSXGpTTOpSXGpTTOpSXGpTTOpSXGpTTOpSXLVem1bVDlDLxo0bl7Fjx2bGjBlZbrnlkiTPP/98WrZsmdVXX73+uFKpVK2INUttikldikldikttikldikttikldikttikldikttikldiqvWa6NpW0VbbbVV2rdvn4svvrh+ave7776bvffeOxtssEF++ctfVjlh7VKbYlKXYlKX4lKbYlKX4lKbYlKX4lKbYlKX4lKbYlKX4qr52pSpmi5dupT/+c9/zjb+5JNPlpdYYokqJOILalNM6lJM6lJcalNM6lJcalNM6lJcalNM6lJcalNM6lJctV6bFtVuGteyqVOn5o033pht/M0338wHH3xQhUR8QW2KSV2KSV2KS22KSV2KS22KSV2KS22KSV2KS22KSV2Kq9Zro2lbRdttt1323nvvXHPNNXnttdfy2muv5Zprrsm+++6b7bffvtrxapraFJO6FJO6FJfaFJO6FJfaFJO6FJfaFJO6FJfaFJO6FFfN16baU31r2UcffVT+xS9+Ua6rqyu3aNGi3KJFi3Lr1q3Lv/jFL8offvhhtePVNLUpJnUpJnUpLrUpJnUpLrUpJnUpLrUpJnUpLrUpJnUprlqvTalcLper3TiudR999FFeeumllMvlLLvssllggQWqHYn/T22KSV2KSV2KS22KSV2KS22KSV2KS22KSV2KS22KSV2Kq1Zro2kLAAAAAFAg1rQFAAAAACgQTVsAAAAAgALRtAUAAAAAKBBNWwAAAACAAtG0BQAAAAAoEE1bAADmKRMnTsy+++6bLl26pHXr1unevXsOOeSQvP3229WOBgAAjaJpCwDAPOPll19O79698/zzz+eKK67Iiy++mHPPPTe33XZb+vTpk3feeafZrv3ZZ58127kBAKgtmrYAAMwzDjzwwLRu3Tr/+Mc/0rdv3yy11FIZMGBAbr311kyaNCnHHHNMkqRUKuWvf/1rg9cuuOCCueiii+q3J02alJ122imdOnXKQgstlG222SavvPJK/f699tor2267bU466aR06dIlP/jBDzJ8+PCstNJKs+VaY401ctxxxzXHWwYAYB6kaQsAwDzhnXfeyc0335wDDjgg888/f4N9iy++eHbdddeMGjUq5XL5a8/18ccfp1+/fmnXrl3uvvvu3HvvvWnXrl0222yzBjNqb7vttjzzzDO55ZZbcsMNN2SfffbJ008/nUceeaT+mCeeeCLjxo3LXnvt1WTvFQCAeVuragcAAICm8MILL6RcLqdnz55z3N+zZ8+8++67+de//vW157ryyivTokWLXHDBBSmVSkmSCy+8MAsuuGDuvPPObLrppkmSBRZYIBdccEFat25d/9r+/fvnwgsvzJprrln/ur59+2aZZZb5pm8RAIAaYaYtAAA14YsZtv/ZYP0yY8aMyYsvvpj27dunXbt2adeuXTp37pxPP/00L730Uv1xK6200mzn23///XPFFVfk008/zfTp03PZZZdln332ado3AwDAPM1MWwAA5gnLLrtsSqVSnn766Wy77baz7X/22WezyCKLZMEFF0ypVJptmYTp06fX/z5r1qysscYaueyyy2Y7zyKLLFL/+wILLDDb/q222ip1dXUZPXp06urqMm3atPz4xz/+Bu8MAIBao2kLAMA8YaGFFsomm2ySESNG5LDDDmuwru2UKVNy2WWX5cADD0zyeeN18uTJ9ftfeOGFfPzxx/Xbq6++ekaNGpVFF100HTp0qChHq1atsueee+bCCy9MXV1ddt5557Rt2/YbvjsAAGqJ5REAAJhnnHPOOZk2bVr69++fu+++OxMnTsxNN92UTTbZJD/4wQ9y3HHHJUk23njjnHPOORk7dmweffTR/PznP898881Xf55dd901Cy+8cLbZZpvcc889GT9+fO66664ccsghee211742x3777Zfbb789f//73y2NAABAxTRtAQCYZ3z/+9/PI488kmWWWSY77rhjunfvngEDBuQHP/hB7rvvvrRr1y5J8vvf/z7dunXLhhtumJ/85Cc5/PDDG8yGbdu2be6+++4stdRS2X777dOzZ8/ss88++eSTTxo18/b73/9+1l133Sy33HJZe+21m+39AgAwbyqV/3sxLwAAmIcMGTIkp512Wv7xj3+kT58+38o1y+Vyll9++fzsZz/LoEGDvpVrAgAw77CmLQAA87Rhw4alR48eeeihh7L22munRYvm/WOzN998M5dcckkmTZqUvffeu1mvBQDAvMlMWwAAaEKlUikLL7xwzjzzzPzkJz+pdhwAAL6DzLQFAIAmZE4EAADflAeRAQAAAAAUiKYtAAAAAECBaNoCAAAAABSIpi0AAAAAQIFo2gIAAAAAFIimLQAAAABAgWjaAgAAAAAUiKYtAAAAAECBaNoCAAAAABTI/wNLhnrjaNi6TQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "speedup = (wide[\"Naive\"] / wide[\"Optimized\"]).sort_index()\n", "ax = speedup.plot.bar(figsize=(14, 4))\n", @@ -1002,21 +250,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "4ee5fc7c", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAGGCAYAAADGq0gwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZp9JREFUeJzt3XdcV+X///HnW2TLUGSIKYJ7L9LAnOVMzWxY7llqhUpm7pkjNSM/hlbuhlpp5iCVXLlzm2luxQG5xZEocH5/9PP97S0gvBV9Az3ut9u53TrXuc51XufNmxMvr+tcl8kwDEMAAAAAgBwhl60DAAAAAABkHpI8AAAAAMhBSPIAAAAAIAchyQMAAACAHIQkDwAAAAByEJI8AAAAAMhBSPIAAAAAIAchyQMAAACAHIQkDwAAAAByEJI8ANnK7NmzZTKZ0tzWrVtn6xAfu5MnT8pkMmn27Nm2DuWJeVL3/O233yoiIiLVYyaTScOHD3+s10/LggULVLZsWTk7O8tkMmnPnj02ieNhRUVFpfnZFSlSRB07dszU6z2ONtPzOL6jHTt2VJEiRTKtPQD/HbltHQAAPIxZs2apVKlSKcrLlCljg2ierAIFCmjLli0qWrSorUPJcb799lvt379fvXv3TnFsy5Yteuqpp554TBcuXFC7du3UqFEjRUZGytHRUSVKlHjicTyKqKgoffbZZ6kmej/++KPc3d0z9XqPo00AyE5I8gBkS+XKlVNwcLCtw9CtW7fk4uLyRK/p6OioZ5555oleE7LZZ3748GHdvXtXbdu2Ve3atTOlTVt8b9NSuXLlbNEmAGQnDNcEkCPNnz9fJpNJU6ZMsSgfNmyY7OzsFB0dLen/hliNHz9eo0ePVuHCheXk5KTg4GCtXr3a4tzhw4fLZDJp165deuWVV5Q3b15zb5phGIqMjFSlSpXk7OysvHnz6pVXXtHx48ct2ti9e7eaNm0qHx8fOTo6yt/fXy+88ILOnDljrvP999+revXq8vDwkIuLi4KCgtS5c2fz8bSGhW3cuFHPPfec3Nzc5OLiotDQUC1fvtyizr3hrmvXrlWPHj2UP39+eXl5qWXLljp37lyGPtsdO3aoefPmypcvn5ycnFS5cmV999135uN79+6VyWTSjBkzUpz7888/y2QyacmSJZKko0ePqlOnTipevLhcXFxUsGBBNWvWTL///nu6caQ1lO3ez+nfPvvsM9WqVUs+Pj5ydXVV+fLlNX78eN29e9dcp06dOlq+fLlOnTplMQT4ntSGa+7fv18vvvii8ubNKycnJ1WqVElz5syxqLNu3TqZTCbNmzdPgwYNkr+/v9zd3fX888/r0KFD6d7js88+K0lq1aqVTCaT6tSpYz6+ZMkShYSEyMXFRW5ubqpfv762bNmS6ueR2vc2Ldbc19dff63w8HD5+fnJ2dlZtWvX1u7duy3u4bPPPjN/hve2kydPSko5tPJeu99++60++OADFShQQHny5FGzZs30119/6fr163rzzTeVP39+5c+fX506ddKNGzcsYru/zTp16qQ5xPvfv0dxcXF666239NRTT8nBwUGBgYEaMWKEEhMTLdo/d+6cXnvtNbm5ucnDw0OtWrVSXFzcAz/Te+79DkZHR6tTp07Kly+fXF1d1axZsxTPi9Rk5Lt8757LlSun7du3q2bNmuZnybhx45ScnGyul5ycrA8//FAlS5aUs7OzPD09VaFCBX366acZuh8AWRM9eQCypaSkpBR/eJlMJtnZ2UmSXn/9da1fv17vvfeennnmGQUHB2vNmjX68MMPNXDgQNWvX9/i3ClTpiggIEARERFKTk7W+PHj1bhxY61fv14hISEWdVu2bKnXX39d3bt3182bNyVJb731lmbPnq2wsDB99NFHunz5skaOHKnQ0FDt3btXvr6+unnzpurXr6/AwEB99tln8vX1VVxcnNauXavr169L+mdIYKtWrdSqVSsNHz5cTk5OOnXqlNasWfPAz2P9+vWqX7++KlSooBkzZsjR0VGRkZFq1qyZ5s2bp1atWlnU79q1q1544QV9++23On36tN5//321bds23eusXbtWjRo1UvXq1TVt2jR5eHho/vz5atWqlW7duqWOHTuqYsWKqly5smbNmqUuXbpYnD979mz5+PioSZMmkv75Y9nLy0vjxo2Tt7e3Ll++rDlz5qh69eravXu3SpYs+cB4MurYsWNq3bq1AgMD5eDgoL1792r06NH6888/NXPmTElSZGSk3nzzTR07dkw//vhjum0eOnRIoaGh8vHx0eTJk+Xl5aWvv/5aHTt21F9//aV+/fpZ1B84cKBq1Kih6dOnKz4+Xh988IGaNWumgwcPmr+39xsyZIiqVaumt99+W2PGjFHdunXNwxC//fZbtWnT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unfvrlGjRilfvnzauHGjunTpYn79ytnZOd3r3T+a0GQymWf9T05OVoECBbRu3boU5/172GhOZnWSt3//fu3evVslS5Z8pAs7ODioatWqio6O1ksvvWQuj46O1osvvpjqOSEhIVq6dKlF2apVqxQcHGz+Qd+6dStFImdnZyfDMMz/wgAAAAAg8+TLl08NGzbUZ599prCwsBTv5V29elWenp7asWOHEhMT9fHHH5v/Zv/uu+8s6laoUEGrV69+6NepqlSpori4OOXOnTvNJQtKly6trVu3qn379uayrVu3PtT1siKrh2sGBwdn2nDG8PBwTZ8+XTNnztTBgwfVp08fxcTEmKcfHTBggMUH3717d506dUrh4eE6ePCgZs6cqRkzZqhv377mOs2aNdPUqVM1f/58nThxQtHR0RoyZIiaN28uOzu7TIkbAAAAgKXIyEglJSWpWrVqWrhwoY4cOaKDBw9q8uTJ5qGQRYsWVWJiov73v//p+PHj+uqrrzRt2jSLdgYMGKDt27erZ8+e2rdvn/78809NnTpVFy9ezFAczz//vEJCQtSiRQutXLlSJ0+e1ObNmzV48GDt2LFDktSrVy/NnDlTM2fO1OHDhzVs2DD98ccfmfuB2JDVPXnvvvuuevXqpffff1/ly5dP0VV6//jYB2nVqpUuXbqkkSNHKjY2VuXKlVNUVJQCAgIkSbGxsYqJiTHXDwwMVFRUlPr06aPPPvtM/v7+mjx5snn5BEkaPHiwTCaTBg8erLNnz8rb21vNmjXT6NGjrb1VAAAAABkUGBioXbt2afTo0XrvvfcUGxsrb29vVa1aVVOnTpUkVapUSZMmTdJHH32kAQMGqFatWho7dqxFx06JEiW0atUqDRw4UNWqVZOzs7OqV6+uN954I0NxmEwmRUVFadCgQercubMuXLggPz8/1apVy/xaWKtWrXTs2DF98MEHun37tl5++WX16NFDK1euTLPde8NBc+e2OoV64kyGlWMYU3unzWQymSdM+ffUptlVfHy8PDw8dO3atQzPFprTFem/3NYhZBknnVrbOoSsZfg1W0cAAECOcvv2bZ04cUKBgYFycnKydTj4/7Zu3aqQkBBduHBB+fPnf2zXedDPP6N5itVp6IkTJ6yPFAAAAACyocTERJ08eVITJkxQxYoVH2uCl1msTvLuDaUEAAAAgJxu//79Cg0N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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "jit = synthetic[synthetic[\"mode\"] == \"Optimized\"].copy()\n", "jit[\"executor\"] = jit[\"executor\"].replace({\n", @@ -1032,21 +269,10 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "bbe140d5", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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drudLVu2AGCaJpGRkaSmplZe9x//+AdxcXEAlJWVcd999xEXF0dQUBBdu3Zl/vz5DfDbFBGR5kpJnoiItClvvPEGoaGhfP755zz77LM89dRTrFy5ssoxP//5z7n11lvZsWMHt99+O9/5znfYs2dPra6flpbGc889h8Ph4MSJE5w4cYKHH374sscfPHiQt99+m3//+99s374dgOnTp3P27FlWr17NypUrOXToEDNnzgTA6XQyYMAAMjIyAPjiiy8q/9ftdgNWIjpixAgA/vCHP/D+++/z9ttvs2/fPhYuXEjXrl1r++sSEZEWyM/XAYiIiDSlfv36MW/ePAC6d+/OCy+8wMcff8y4ceMqj/n2t7/NnDlzAHj66adZuXIlf/zjH3nxxReveP2AgACcTieGYRAbG3vF48vKynjrrbdo3749ACtXruSLL74gMzOTLl26APDWW2/Ru3dvNm3aRGpqKiNHjiQjI4Of/OQnZGRkMGbMGL766ivWrl3LpEmTyMjI4MEHHwQgKyuL7t27M2zYMAzDICEhoW6/MBERaXE0kyciIm1Kv379qryOi4vj1KlTVcaGDh16yevazuTVVUJCQmWCB7Bnzx66dOlSmeABJCcnExERURnDyJEj+fTTT/F6vaxevZqRI0cycuRIVq9ezcmTJ9m/f3/lTN6sWbPYvn07PXr04P7772fFihWN8nOIiEjzoSRPRETaFH9//yqvDcPA6/Ve8TzDMACw2aw/naZpVr53NQVTQkNDq7w2TbPyXpcbv/HGG8nPz2fr1q18+umnjBw5khEjRrB69Wo++eQTOnToQK9evQAYOHAgmZmZPP300xQXF3PbbbfxrW99q97xiohI86ckT0RE5Bs+++yzS1737NkToHLW7cSJE5XvX9hLd0FAQAAej6de905OTiYrK4ujR49Wju3evRuXy1WZuF3Yl/fCCy9gGAbJyckMHz6cbdu2sWTJkspZvAscDgczZ87klVdeYdGiRfz73//m7Nmz9YpPRESaPyV5IiIi3/DOO+/w2muvsX//fubNm8fGjRu57777ALjmmmvo0qULTzzxBPv37yc9PZ3//d//rXJ+165dKSgo4OOPPyY3N5eioqJa33vs2LH069eP733ve2zdupWNGzdy5513MmLECAYNGlR53MiRI1m4cCEjRozAMAzatWtHcnIyixYtYuTIkZXH/f73v+ef//wne/fuZf/+/bzzzjvExsaqj5+ISCumJE9EROQbnnzySf75z3/Sr18/3njjDf72t7+RnJwMWMs9//GPf7B371769+/Pr3/9a375y19WOT8tLY17772XmTNn0r59e5599tla39swDN59913atWvHjTfeyNixY0lKSmLRokVVjhs1ahQej6dKQjdixAg8Hk+VmbywsDB+/etfM2jQIFJTUzl8+DBLly6tXHYqIiKtj2F+fVOBiIhIG2cYBosXL2b69Om+DkVERKRe9DWeiIiIiIhIK6IkT0REREREpBVRM3QREZGv0S4GERFp6TSTJyIiIiIi0oooyRMREREREWlFlOSJiIiIiIi0IkryREREREREWhEleSIiIiIiIq2IkjwREREREZFWREmeiIiIiIhIK6IkT0REREREpBX5/yMZFPnOrm8ZAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(9, 5))\n", "for name, group in operator.groupby(\"operator\"):\n", @@ -1063,21 +289,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "cde81524", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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nJys2WXxboIgIDg4GJ999hkcHR1x9uxZTV9dMyw9evTQ+qptduZBVOd3b/7bt29HSUmJpr96d8fvv/9eKy46OrrGjplPPfUULl68CH9//xp59+jRQ+cib9iwYSgrK0NUVFSdMdXFzt27oUqShK+++kqnse71ww8/aC2NzcjIQHx8fIMOJ68tJwDYuHFjjdjqmIbMrg0ZMgTFxcWIiYnRav/22281/URE1HCcySMiagH69OmD9evX44033kD37t3x+uuvIygoCHfu3MG5c+ewadMmdOrUCSNGjECHDh0wdepUfPHFF5DJZBg2bJhmd00fHx/84x//AFD1nNq6deswevRotG3bFpIkYceOHSgsLERYWJhm7M6dOyMuLg67du2Cl5cX7Ozs0KFDB4O917CwMAwdOhRz586FSqVCv379NLtrduvWDRMmTABQ9Szf+PHjsWbNGpibmyM0NBQXL17EJ598UmOZ4gcffIB9+/ahb9++mDlzJjp06ICysjKkp6djz5492LBhw31nSO82btw4bN68Ga+99houX76MQYMGQRRFnDx5EoGBgXjhhRcQFhYGCwsLjBs3Du+++y7Kysqwfv16FBQUPNTnk5OTg6effhpTpkxBUVERFi1aBCsrK8yfP/++r+3YsSP8/f0xb948SJIEZ2dn7Nq1C/v27asR27lzZwDA2rVrMWnSJJibm6NDhw5az9JVmzhxIiIjIzFp0iSkp6ejc+fOOHr0KJYvX47hw4cjNDT0od4zEVGLY7QtX4iIqNElJiZKkyZNklq3bi1ZWFhItra2Urdu3aSFCxdKOTk5mji1Wi2tXLlSat++vWRubi65urpK48ePl65fv66J+f3336Vx48ZJ/v7+krW1teTg4CD16tVLioqKqjFmv379JBsbGwmA1q6KtaneBfK///2vVvvmzZslANKpU6e02hctWiQBkHJzczVtt2/flubOnSv5+vpK5ubmkpeXl/T6669LBQUFWq8tLy+X3n77bcnd3V2ysrKSHn30Uen48eM1dqaUJEnKzc2VZs6cKfn5+Unm5uaSs7Oz1L17d+m9996TiouLNXFowO6a1TkuXLhQCggIkCwsLCQXFxdp8ODBUnx8vCZm165dUnBwsGRlZSV5e3tL77zzjvTzzz9LAKRDhw5p4nTZXXPr1q3SzJkzJTc3N8nS0lJ6/PHHpdOnT2u9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smQJEhMTNV+//fYbUlJSYGVlpTUeEREREREZn9Fn8kpKShAcHIyXX34Zzz77bI3+bdu2YdasWVi3bh369euHjRs3YtiwYUhKSkLr1q01cTdv3sTEiRPxr3/9q97xysvLUV5errlWqVT6ezN38+1btYumKhO1P5cnVPX79jXM+A/A3NwcarX2M4IhISG4fPky2rVrZ6SsiIiIiIhIF0afyRs2bBg+/PBDPPPMM7X2r169Gq+88gpeffVVBAYGYs2aNfDx8dFailheXo6nn34a8+fPR9++9RdNH330ERwcHDRfBpv1k8mrjkkAAAj3dP59Hb6iKs5EtGnTBgcOHEBWVhYKCgoAAAsXLsS3336LxYsX49KlS0hOTsa2bdvwz3/+08jZEhERERFRbYxe5NWnoqICZ86cwRNPPKHV/sQTTyA+Ph4AIEkSIiIiMHjwYEyYMOG+95w/fz6Kioo0X9evXzdI7gCqzsEb8y1gf89SSftWVe0GPCfvQXz66afYt28ffHx80K1bNwDA0KFDsXv3buzbtw89e/bEo48+itWrV8PX19fI2RIRERERUW2MvlyzPnl5eVCr1fDw0H5uzcPDA1lZWQCAY8eOYdu2bejSpYvmeb6tW7eic+fOtd7T0tISlpaWBs1bi3Ik0PHJql00i7OrnsHz7WvQGbyoqKha2+Pi4rSu09PTta5HjBiBESNG1Hjd0KFDMXTo0DrHk6TalqMSEREREZExmHSRV00QtJc7SpKkaXvssccgiqIx0mo4mdwgxyQQERERERHdy6SXa7q6ukIul2tm7arl5OTUmN0jIiIiIiIiEy/yLCws0L17d+zbt0+rfd++fffdYIWIiIiIiKglMvpyzeLiYly9elVznZaWhsTERDg7O6N169aYPXs2JkyYgB49eqBPnz7YtGkTrl27htdee+2hxo2MjERkZGSNIwOIiIiIiIiaMkEy8q4ZcXFxGDRoUI32SZMmaTYQWbduHVatWoXMzEx06tQJn332Gfr376+X8VUqFRwcHFBUVAR7e3utvrKyMqSlpWkOYidqqfi9QERERGR89dUudzP6TN7AgQPvuzvjG2+8gTfeeKORMiIiIiIiImq6TPqZPCIiIiIiItINizwiIiIiIqJmhEUeERERERFRM8Iijx5IREQERo8erdd7RkVFwdHRUa/3JCIiouZNFNW4fukCko8d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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(9, 5))\n", "for name, group in matched.groupby(\"operator\"):\n", @@ -1093,120 +308,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "7b508249", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
operatorcoefficientvalue
0SeqScanrow100
1Filteroutput row100
2Projectionoutput row22
3Sortn * (floor(log2(n)) + 1)11
4Aggregationinput row510
5NestedLoopJoininput row pair70
6NestedLoopCrossJoininput row pair104
7HashJoinbuild row * width100
8HashJoinprobe row35
9HashJoinoutput row * width10
\n", - "
" - ], - "text/plain": [ - " operator coefficient value\n", - "0 SeqScan row 100\n", - "1 Filter output row 100\n", - "2 Projection output row 22\n", - "3 Sort n * (floor(log2(n)) + 1) 11\n", - "4 Aggregation input row 510\n", - "5 NestedLoopJoin input row pair 70\n", - "6 NestedLoopCrossJoin input row pair 104\n", - "7 HashJoin build row * width 100\n", - "8 HashJoin probe row 35\n", - "9 HashJoin output row * width 10" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "coefficients = pd.DataFrame([\n", " (\"SeqScan\", \"row\", 100),\n", diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 0d25273..631af91 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -14,6 +15,7 @@ #include #include +#include #include namespace stewkk::sql { @@ -1183,6 +1185,21 @@ int CompareNonNullValues(const Value& lhs, const Value& rhs, Type type) { std::unreachable(); } +std::optional FindHashJoinKey(const Expression& qual) { + std::vector conjuncts; + CollectConjuncts(qual, conjuncts); + for (const auto& conjunct : conjuncts) { + const auto* bin = std::get_if(&conjunct); + if (!bin || bin->binop != BinaryOp::kEq) continue; + if (!std::holds_alternative(*bin->lhs) + || !std::holds_alternative(*bin->rhs)) { + continue; + } + return *bin; + } + return std::nullopt; +} + } // namespace @@ -1199,15 +1216,12 @@ boost::asio::awaitable Executor::ExecuteHashJoin( if (join.type != JoinType::kInner) { throw std::logic_error{"HashJoin executor supports only Inner joins"}; } - const auto* bin = std::get_if(&join.qual); - if (!bin || bin->binop != BinaryOp::kEq) { - throw std::logic_error{"HashJoin qual must be an equality"}; + const auto bin = FindHashJoinKey(join.qual); + if (!bin) { + throw std::logic_error{"HashJoin qual must contain an equality between attributes"}; } const auto* a = std::get_if(bin->lhs.get()); const auto* b = std::get_if(bin->rhs.get()); - if (!a || !b) { - throw std::logic_error{"HashJoin qual must be `attr = attr`"}; - } auto exec = co_await boost::asio::this_coro::executor; auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); @@ -1237,6 +1251,11 @@ boost::asio::awaitable Executor::ExecuteHashJoin( AttributesInfo out_attrs = lhs_attrs; std::ranges::copy(rhs_attrs, std::back_inserter(out_attrs)); + if (GetExpressionType(join.qual, out_attrs) != Type::kBool) { + throw std::logic_error{"hash join qual should return bool"}; + } + auto qual_executor = co_await expression_executor_.GetExpressionExecutor(join.qual, out_attrs); + co_await attr_chan.async_send(boost::system::error_code{}, out_attrs, boost::asio::use_awaitable); attr_chan.close(); @@ -1268,7 +1287,11 @@ boost::asio::awaitable Executor::ExecuteHashJoin( if (k.is_null) continue; auto range = build.equal_range(k.value.int_value); for (auto it = range.first; it != range.second; ++it) { - out_buf.push_back(ConcatTuples(it->second, rt)); + auto joined_tuple = ConcatTuples(it->second, rt); + if (!ApplyFilter(joined_tuple, out_attrs, qual_executor)) { + continue; + } + out_buf.push_back(std::move(joined_tuple)); if (out_buf.size() == kBufSize) { co_await tuples_chan.async_send(boost::system::error_code{}, std::move(out_buf), boost::asio::use_awaitable); diff --git a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp index 012a1cd..59fb501 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_hash_join.cpp @@ -1,5 +1,10 @@ #include +#include +#include + +#include + namespace stewkk::sql { namespace { @@ -11,13 +16,19 @@ bool IsSimpleEquiJoin(const Expression& qual) { && std::holds_alternative(*bin->rhs); } +bool HasEquiJoinConjunct(const Expression& qual) { + std::vector conjuncts; + CollectConjuncts(qual, conjuncts); + return std::ranges::any_of(conjuncts, IsSimpleEquiJoin); +} + } // namespace bool ImplementHashJoin::IsApplicable(utils::NotNull expr) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& join = std::get(expr->root_operator); if (join.type != JoinType::kInner) return false; - return IsSimpleEquiJoin(join.qual); + return HasEquiJoinConjunct(join.qual); } std::vector> ImplementHashJoin::Apply(utils::NotNull expr, Memo&) { diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 86bbeb4..8ca0db6 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -16,6 +16,7 @@ #include #include #include +#include namespace stewkk::sql { @@ -43,10 +44,10 @@ bool AttrInSchema(const Attribute& attr, const Schema& schema) { }); } -std::optional ResolveJoinKeys(const Expression& qual, - utils::NotNull lhs, - utils::NotNull rhs, - SchemaCatalog& schema) { +std::optional ResolveSimpleJoinKeys(const Expression& qual, + utils::NotNull lhs, + utils::NotNull rhs, + SchemaCatalog& schema) { const auto* bin = std::get_if(&qual); if (!bin || bin->binop != BinaryOp::kEq) return std::nullopt; const auto* a = std::get_if(bin->lhs.get()); @@ -70,6 +71,19 @@ std::optional ResolveJoinKeys(const Expression& qual, return std::nullopt; } +std::optional ResolveJoinKeys(const Expression& qual, + utils::NotNull lhs, + utils::NotNull rhs, + SchemaCatalog& schema) { + std::vector conjuncts; + CollectConjuncts(qual, conjuncts); + for (const auto& conjunct : conjuncts) { + auto keys = ResolveSimpleJoinKeys(conjunct, lhs, rhs, schema); + if (keys) return keys; + } + return std::nullopt; +} + PropertySet SortOn(const Attribute& attr) { return PropertySet{SortProperty{SortOrder{{SortKey{attr.table, attr.name, Direction::kAsc}}}}}; } diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index be8360a..cbb9f75 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -282,6 +282,29 @@ TEST(OptimizerTest, PushesSelectiveFilterIntoHashBuildSide) { " (SeqScan lineorder lo))")); } +TEST(OptimizerTest, UsesHashJoinForConjunctiveEquiJoinPredicate) { + std::stringstream s{ + "SELECT * FROM lineorder AS lo " + "JOIN supplier AS s ON lo.suppkey = s.id AND s.region = 'AMERICA';"}; + Operator op = GetAST(s).value().op; + SchemaCatalog schema({ + {"lineorder", {Attribute{"lineorder", "suppkey"}, Attribute{"lineorder", "value"}}}, + {"supplier", {Attribute{"supplier", "id"}, Attribute{"supplier", "region"}}}, + }); + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"lineorder", 6000}, + {"supplier", 100}, + }), std::move(schema)); + + auto got = optimizer.Optimize(); + + ASSERT_THAT( + Serialize(got), + Eq("(HashJoin Inner (and (= (attr lo suppkey) (attr s id))" + " (= (attr s region) (str \"AMERICA\")))" + " (SeqScan supplier s) (SeqScan lineorder lo))")); +} + TEST(OptimizerTest, UsesIndexSeekForIndexedIntegerPredicate) { std::stringstream s{"SELECT * FROM users WHERE users.id = 8;"}; Operator op = GetAST(s).value().op; diff --git a/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp b/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp index a3e14d3..447caf6 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp @@ -1,8 +1,10 @@ #include +#include #include #include +#include #include namespace stewkk::sql { @@ -19,12 +21,35 @@ const logical::Join* FindInnerJoin(utils::NotNull source) { return nullptr; } +bool UsesBothJoinSides(const Expression& expr, const logical::Join& join) { + const auto tables = ExprTables(expr); + const auto lhs_tables = GroupTables(join.lhs); + const auto rhs_tables = GroupTables(join.rhs); + + bool uses_lhs = false; + bool uses_rhs = false; + for (const auto& table : tables) { + uses_lhs = uses_lhs || lhs_tables.contains(table); + uses_rhs = uses_rhs || rhs_tables.contains(table); + } + return uses_lhs && uses_rhs; +} + +bool HasCrossSideConjunct(const Expression& predicate, const logical::Join& join) { + std::vector conjs; + CollectConjuncts(predicate, conjs); + return std::ranges::any_of(conjs, [&](const Expression& conj) { + return UsesBothJoinSides(conj, join); + }); +} + } // namespace bool FilterToJoinPredicate::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& filter = std::get(expr->root_operator); - return FindInnerJoin(filter.source) != nullptr; + const auto* join = FindInnerJoin(filter.source); + return join != nullptr && HasCrossSideConjunct(filter.predicate, *join); } LogicalOperator FilterToJoinPredicate::ApplyImpl(utils::NotNull expr, @@ -35,10 +60,26 @@ LogicalOperator FilterToJoinPredicate::ApplyImpl(utils::NotNull ex throw std::runtime_error{"FilterToJoinPredicate requires an inner join below filter"}; } - std::vector conjs; - CollectConjuncts(join->qual, conjs); - CollectConjuncts(filter.predicate, conjs); - return logical::Join{join->lhs, join->rhs, join->type, AndConjuncts(conjs)}; + std::vector join_conjs; + std::vector rest_conjs; + CollectConjuncts(join->qual, join_conjs); + + std::vector filter_conjs; + CollectConjuncts(filter.predicate, filter_conjs); + for (const auto& conj : filter_conjs) { + if (UsesBothJoinSides(conj, *join)) { + join_conjs.push_back(conj); + } else { + rest_conjs.push_back(conj); + } + } + + auto new_join = logical::Join{join->lhs, join->rhs, join->type, AndConjuncts(join_conjs)}; + if (rest_conjs.empty()) { + return new_join; + } + auto new_join_group = memo.AddGroup(new_join)->group; + return logical::Filter{new_join_group, AndConjuncts(rest_conjs)}; } } // namespace stewkk::sql From 906f1eed9e274ad3e3e92d5d786db21559099c63 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 14 Jun 2026 20:57:23 +0300 Subject: [PATCH 110/120] Fix --- .../stewkk/sql/logic/optimizer/optimizer.hpp | 2 + report/vkr.tex | 218 +- .../operator-cost-matched.json | 1618 ++++++------- research/benchmark-results/operator-cost.json | 2138 ++++++++--------- research/benchmark-results/query.json | 412 ++-- research/benchmark-results/ssb-sf001.json | 1434 +++++------ research/benchmarks.ipynb | 1131 ++++++++- src/stewkk/sql/logic/optimizer/optimizer.cpp | 36 + 8 files changed, 3977 insertions(+), 3012 deletions(-) diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index bd5fb2c..ad9b974 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -46,6 +46,7 @@ class Optimizer { void OptimizeInputs(utils::NotNull expr, PropertySet required, std::vector child_delivered, int64_t accum, Limit limit, size_t child_index = 0); std::int64_t LowerBoundCost(utils::NotNull group); + bool MarkOptimizeGroupRequested(const WinnerKey& key, Limit limit); void ApplyRule(TransformationRuleId rule, utils::NotNull expr, Limit limit); @@ -75,6 +76,7 @@ class Optimizer { std::unordered_map local_cost_; std::unordered_map winner_; std::unordered_set enforcers_added_; + std::unordered_map optimize_group_limits_; std::unordered_map> group_parents_; std::unordered_map lower_bounds_; }; diff --git a/report/vkr.tex b/report/vkr.tex index 18a9dcb..1c87985 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1338,7 +1338,7 @@ \subsubsection{Алгоритм поиска} накапливается полная стоимость и обновляется информация о лучшем плане. Параметр \texttt{limit} используется для отсечения заведомо дорогих вариантов. -\subsection{Правила трансформации и реализации}\label{sec:transformation_rules} +\subsubsection{Правила трансформации и реализации}\label{sec:transformation_rules} Правило в оптимизаторе Cascades состоит из образца, условия применимости и алгоритма применения. Образец описывает форму логического выражения, к которому @@ -1468,103 +1468,6 @@ \subsubsection{Оценка стоимости} построенного плана уже превышает текущую лучшую, дальнейшее исследование по этой ветке не имеет смысла. -\subsection{Дифференциальный анализ физических планов} - -Множество правил трансформации и реализации, используемых в -оптимизаторах запросов, изучено довольно хорошо и описано в -академической литературе. Вместе с тем условия активации правил -существенно различаются от системы к системе. Многие реализации -оптимизаторов упускают возможности для оптимизации из-за слишком -строгих условий активации правил или отсутствия определенных правил -в их наборе. - -Данная проблема особенно актуальна при разработке нового оптимизатора: после -реализации базового набора правил возникает вопрос о полноте и корректности -этого набора по сравнению с устоявшимися и проверенными временем промышленными -системами. Такие системы аккумулировали обратную связь от пользователей и -уточняли условия активации своих правил в течение многих лет. Не имея такого -преимущества сложно добиться отличного качества построенных планов. - -Решением может быть поиск несоответствий между поведением реализуемой системы и -внешней эталонной системы путем применения дифференциального анализа планов. - -Первым шагом нужно сформировать несколько наборов данных, состоящих из схем -таблиц и их наполнения. Разные данные позволяют всесторонне исследовать правила -активации, потому что они зависят от кардинальности отношений, наличия индексов -и т.п. - -Далее, по заданным схемам генерируются случайные SQL-запросы различной структуры -и сложности. Такой подход исключает тривиальные планы и приближает условия -работы оптимизатора к реальным нагрузкам при дальнейшем построении планов -запросов. - -Следующим шагом сгенерированные запросы транспилируются в диалекты SQL целевых -промышленных СУБД. В качестве эталона рассматривается Microsoft SQL Server. Эта -система является зрелой и имеет машиночитаемый формат вывода планов. Затем для -получения физических планов исполняется аналог \texttt{EXPLAIN ANALYZE}. - -Полученные физические планы промышленных СУБД конвертируются в формат -сериализованного плана разрабатываемого оптимизатора. Современные СУБД -предоставляют вывод планов в виде XML или JSON, что позволяет легко реализовать -их разбор. Для конвертации используется отображение между физическими -операторами разрабатываемой системы и операторами эталонной СУБД. Например, -\texttt{Hash Match} в SQL Server отображается в \HashJoin{} в разрабатываемой -системе, \texttt{Clustered Index Scan} --- в \IndexScan{} и так далее. -Восстановление предикатов, ключей соединения и выражений проекции выполняется -путем разбора соответствующих полей плана, причем не нужно поддерживать весь -синтаксис предикатов, так как генератор запросов и схемы данных ограничивают -множество допустимых выражений в планах. - -Корректность конвертации выполняется по построению, но дополнительно проверяется -путем исполнения исходного плана на внешней системе и сконвертированного плана -на разрабатываемой системе с последующим сравнением полученных результатов при -фиксированной схеме и различных вариантах сгенерированных для нее данных. - -Конвертированные планы сравниваются с планами, порождаемыми разрабатываемым -оптимизатором на исходных запросах, с целью определить, мог ли существующий -набор правил разрабатываемого оптимизатора породить план, эквивалентный плану -промышленной системы. Стоимостные модели и реализации операторов в разных СУБД -различаются, поэтому план, оптимальный для эталонной системы, не обязательно -будет оптимальным для разрабатываемой. По этоу причине сравнение направлено на -исследование полноты пространства поиска разрабатываемого оптимизатора, и не -предполагает сравнение эффективности планов. - -Для корректности структурного сравнения необходимо полное исследование -пространства эквивалентных планов. Определение требуемых изменений лежит на -разработчике системы, поэтому найденный запрос и примеры планов сохраняются для -последующего анализа. В дальнейшем, полученные после конвертации ``эталонные'' -планы можно использовать как тесты для оптимизатора, которые будут успешно -выполняться после уточнения соответвующих правил активации. - -В случае невозможности построить ``эталонный'' план разрабатываемым -оптимизатором, предлагается искать ближайший план, т.е. план из пространства -поиска разрабатываемого оптимизатора, максимально близкий к плану промышленной -системы. При этом метрика расстояния между планами может быть определена как -расстояние редактирования деревьев. - -Анализ ближайшего плана может помочь упростить выявление трансформаций, которые -разрабатываемый план по какой-то причине не применил. - -Предлагаемый метод дифференциального анализа применим для сравнения как с -проприетарными системами, так и с СУБД с открытым исходным кодом, позволяя -уточнять условия применения правил. - -Систематическое применение этого подхода позволяет построить итеративный процесс -совершенствования оптимизатора: - -\begin{itemize} - \item генерация запросов; - \item запуск и сбор планов; - \item приведение к единому виду, сравнение и выявление расхождений; - \item добавление или корректировка правил; - \item повторное сравнение. -\end{itemize} - -Таким образом, дифференциальный анализ обеспечивает управляемое и измеримое -улучшение качества оптимизатора и позволяет новым или открытым оптимизаторам -быстрее достигать качества устоявшихся промышленных оптимизаторов. - -% {\color{red} TODO: описать как нормализовать и т.п.} \section{Конструкторская часть} @@ -1594,6 +1497,8 @@ \section{Конструкторская часть} постепенное улучшение качества итоговых планов путем уточнения и расширения пространства поиска. + + \subsection{Модули синтаксического анализа и построения логического представления} Модуль синтаксического анализа SQL-запросов отвечает за лексический и @@ -1779,6 +1684,123 @@ \subsection{Модуль стоимостной оптимизации план альтернативами. Результатом работы модуля является дерево физических операторов, которое передается в модуль исполнения. +\subsection{Дифференциальный анализ физических планов} + +Множество правил трансформации и реализации, используемых в +оптимизаторах запросов, изучено довольно хорошо и описано в +академической литературе. Вместе с тем условия активации правил +существенно различаются от системы к системе. Многие реализации +оптимизаторов упускают возможности для оптимизации из-за слишком +строгих условий активации правил или отсутствия определенных правил +в их наборе. + +Данная проблема особенно актуальна при разработке нового оптимизатора: после +реализации базового набора правил возникает вопрос о полноте и корректности +этого набора по сравнению с устоявшимися и проверенными временем промышленными +системами. Такие системы аккумулировали обратную связь от пользователей и +уточняли условия активации своих правил в течение многих лет. Не имея такого +преимущества сложно добиться отличного качества построенных планов. + +Решением может быть поиск несоответствий между поведением реализуемой системы и +внешней эталонной системы путем применения дифференциального анализа планов. + +Первым шагом нужно сформировать несколько наборов данных, состоящих из схем +таблиц и их наполнения. Разные данные позволяют всесторонне исследовать правила +активации, потому что они зависят от кардинальности отношений, наличия индексов +и т.п. + +Далее, по заданным схемам генерируются случайные SQL-запросы различной структуры +и сложности. Такой подход исключает тривиальные планы и приближает условия +работы оптимизатора к реальным нагрузкам при дальнейшем построении планов +запросов. + +Следующим шагом сгенерированные запросы транспилируются в диалекты SQL целевых +промышленных СУБД. В качестве эталона рассматривается Microsoft SQL Server. Эта +система является зрелой и имеет машиночитаемый формат вывода планов. Затем для +получения физических планов исполняется аналог \texttt{EXPLAIN ANALYZE}. + +Полученные физические планы промышленных СУБД конвертируются в формат +сериализованного плана разрабатываемого оптимизатора. Современные СУБД +предоставляют вывод планов в виде XML или JSON, что позволяет легко реализовать +их разбор. Для конвертации используется отображение между физическими +операторами разрабатываемой системы и операторами эталонной СУБД. Например, +\texttt{Hash Match} в SQL Server отображается в \HashJoin{} в разрабатываемой +системе, \texttt{Clustered Index Scan} --- в \IndexScan{} и так далее. +Восстановление предикатов, ключей соединения и выражений проекции выполняется +путем разбора соответствующих полей плана, причем не нужно поддерживать весь +синтаксис предикатов, так как генератор запросов и схемы данных ограничивают +множество допустимых выражений в планах. + +Для сериализации физических планов было решено использовать s-выражения, похожие +на выражения языка LISP. Этот формат прост с точки зрения реализации парсера, а +также удобен для чтения и изменения человеком. Пример сериализованного плана для +запроса \texttt{SELECT * FROM users WHERE users.age BETWEEN 18 AND 30} приведен +на листинге~\ref{lst:serialized-plan}. + +\begin{listing}[H] + \caption{Пример сериализованного плана.} + \label{lst:serialized-plan} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{text} +(PhysicalFilter + (and (>= (attr users age) 18) + (<= (attr users age) 30)) + (SeqScan users)) + \end{minted} +\end{listing} + +Корректность конвертации выполняется по построению, но дополнительно проверяется +путем исполнения исходного плана на внешней системе и сконвертированного плана +на разрабатываемой системе с последующим сравнением полученных результатов при +фиксированной схеме и различных вариантах сгенерированных для нее данных. + +Конвертированные планы сравниваются с планами, порождаемыми разрабатываемым +оптимизатором на исходных запросах, с целью определить, мог ли существующий +набор правил разрабатываемого оптимизатора породить план, эквивалентный плану +промышленной системы. Стоимостные модели и реализации операторов в разных СУБД +различаются, поэтому план, оптимальный для эталонной системы, не обязательно +будет оптимальным для разрабатываемой. По этоу причине сравнение направлено на +исследование полноты пространства поиска разрабатываемого оптимизатора, и не +предполагает сравнение эффективности планов. + +Для корректности структурного сравнения необходимо полное исследование +пространства эквивалентных планов. Определение требуемых изменений лежит на +разработчике системы, поэтому найденный запрос и примеры планов сохраняются для +последующего анализа. В дальнейшем, полученные после конвертации ``эталонные'' +планы можно использовать как тесты для оптимизатора, которые будут успешно +выполняться после уточнения соответвующих правил активации. + +В случае невозможности построить ``эталонный'' план разрабатываемым +оптимизатором, предлагается искать ближайший план, т.е. план из пространства +поиска разрабатываемого оптимизатора, максимально близкий к плану промышленной +системы. При этом метрика расстояния между планами может быть определена как +расстояние редактирования деревьев. + +Анализ ближайшего плана может помочь упростить выявление трансформаций, которые +разрабатываемый план по какой-то причине не применил. + +Предлагаемый метод дифференциального анализа применим для сравнения как с +проприетарными системами, так и с СУБД с открытым исходным кодом, позволяя +уточнять условия применения правил. + +Систематическое применение этого подхода позволяет построить итеративный процесс +совершенствования оптимизатора: + +\begin{itemize} + \item генерация запросов; + \item запуск и сбор планов; + \item приведение к единому виду, сравнение и выявление расхождений; + \item добавление или корректировка правил; + \item повторное сравнение. +\end{itemize} + +Таким образом, дифференциальный анализ обеспечивает управляемое и измеримое +улучшение качества оптимизатора и позволяет новым или открытым оптимизаторам +быстрее достигать качества устоявшихся промышленных оптимизаторов. + +% {\color{red} TODO: описать как нормализовать и т.п.} + + + \section{Технологическая часть} Программа написана на языке C++ с использованием стандарта C++23. Этот язык diff --git a/research/benchmark-results/operator-cost-matched.json b/research/benchmark-results/operator-cost-matched.json index e7e3666..748c8e3 100644 --- a/research/benchmark-results/operator-cost-matched.json +++ b/research/benchmark-results/operator-cost-matched.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-09T23:49:41+03:00", + "date": "2026-06-14T20:48:21+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [2.20801,1.40576,1.14795], + "load_avg": [1.43262,1.46533,1.78467], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,9 +47,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2201, - "real_time": 3.1308477827712137e+05, - "cpu_time": 3.1023940345297597e+05, + "iterations": 2214, + "real_time": 3.0911023938454612e+05, + "cpu_time": 3.0619232971996389e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -65,9 +65,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2201, - "real_time": 3.1884279055965185e+05, - "cpu_time": 3.1639320490686060e+05, + "iterations": 2214, + "real_time": 3.1765129223070038e+05, + "cpu_time": 3.1451108536585368e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -83,9 +83,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2201, - "real_time": 3.1709757428868051e+05, - "cpu_time": 3.1426909904588806e+05, + "iterations": 2214, + "real_time": 3.5457537533911917e+05, + "cpu_time": 3.4965761698283651e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -103,8 +103,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1634171437515126e+05, - "cpu_time": 3.1363390246857487e+05, + "real_time": 3.2711230231812195e+05, + "cpu_time": 3.2345367735621799e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -122,8 +122,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1709757428868051e+05, - "cpu_time": 3.1426909904588811e+05, + "real_time": 3.1765129223070032e+05, + "cpu_time": 3.1451108536585368e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 6.4000000000000000e+03, @@ -141,8 +141,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9524853120924695e+03, - "cpu_time": 3.1256877806897505e+03, + "real_time": 2.4164078313638052e+04, + "cpu_time": 2.3071308216930705e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -160,8 +160,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.3332152477086927e-03, - "cpu_time": 9.9660392453999273e-03, + "real_time": 7.3870894314876923e-02, + "cpu_time": 7.1328013351112357e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -177,9 +177,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1729, - "real_time": 4.2820256100733217e+05, - "cpu_time": 4.2593496992481180e+05, + "iterations": 1760, + "real_time": 4.1470032556803327e+05, + "cpu_time": 4.1158367443181819e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -195,9 +195,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1729, - "real_time": 4.0207458647550282e+05, - "cpu_time": 4.0061198843261990e+05, + "iterations": 1760, + "real_time": 4.1930176022850157e+05, + "cpu_time": 4.1661144374999992e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -213,9 +213,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1729, - "real_time": 4.0215632678001490e+05, - "cpu_time": 4.0059324117987277e+05, + "iterations": 1760, + "real_time": 4.3658621818229387e+05, + "cpu_time": 4.3417356250000041e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -233,8 +233,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1081115808761661e+05, - "cpu_time": 4.0904673317910143e+05, + "real_time": 4.2352943465960957e+05, + "cpu_time": 4.2078956022727280e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -252,8 +252,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0215632678001490e+05, - "cpu_time": 4.0061198843261978e+05, + "real_time": 4.1930176022850157e+05, + "cpu_time": 4.1661144374999986e+05, "time_unit": "ns", "model_cost": 6.4000000000000000e+05, "output_rows": 3.3280000000000000e+03, @@ -271,8 +271,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5061452187829180e+04, - "cpu_time": 1.4625645050707279e+04, + "real_time": 1.1539193958084354e+04, + "cpu_time": 1.1860364821811641e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -290,8 +290,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6662714464578680e-02, - "cpu_time": 3.5755437861676870e-02, + "real_time": 2.7245317594887825e-02, + "cpu_time": 2.8185976894022118e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -307,9 +307,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 224, - "real_time": 3.0960619286426147e+06, - "cpu_time": 3.0747937633928573e+06, + "iterations": 226, + "real_time": 3.0195558805306354e+06, + "cpu_time": 3.0009444867256628e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -325,9 +325,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 224, - "real_time": 3.1441242409917838e+06, - "cpu_time": 3.1229820491071432e+06, + "iterations": 226, + "real_time": 2.9964330132742389e+06, + "cpu_time": 2.9785224601769918e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -343,9 +343,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 224, - "real_time": 3.1377971116463803e+06, - "cpu_time": 3.1165352053571432e+06, + "iterations": 226, + "real_time": 2.8924311946842363e+06, + "cpu_time": 2.8764148097345126e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -363,8 +363,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1259944270935929e+06, - "cpu_time": 3.1047703392857146e+06, + "real_time": 2.9694733628297024e+06, + "cpu_time": 2.9519605855457224e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -382,8 +382,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1377971116463803e+06, - "cpu_time": 3.1165352053571437e+06, + "real_time": 2.9964330132742389e+06, + "cpu_time": 2.9785224601769918e+06, "time_unit": "ns", "model_cost": 6.4000200000000000e+05, "output_rows": 2.9091000000000000e+04, @@ -401,8 +401,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6114631704802276e+04, - "cpu_time": 2.6159831331332960e+04, + "real_time": 6.7714758376275582e+04, + "cpu_time": 6.6378159064747015e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -420,8 +420,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.3540237559164392e-03, - "cpu_time": 8.4256896557931282e-03, + "real_time": 2.2803625458942690e-02, + "cpu_time": 2.2486126471257015e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -437,9 +437,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 996, - "real_time": 7.0582497386910755e+05, - "cpu_time": 7.0269638353413541e+05, + "iterations": 907, + "real_time": 7.0784833847735438e+05, + "cpu_time": 7.0478191951488447e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -455,9 +455,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 996, - "real_time": 6.9997442669883172e+05, - "cpu_time": 6.9672412550200918e+05, + "iterations": 907, + "real_time": 7.1027558875225135e+05, + "cpu_time": 7.0695717530319712e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -473,9 +473,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 996, - "real_time": 6.9949409538617241e+05, - "cpu_time": 6.9659677911646734e+05, + "iterations": 907, + "real_time": 7.0588639911670797e+05, + "cpu_time": 7.0260624255788233e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -493,8 +493,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0176449865137052e+05, - "cpu_time": 6.9867242938420398e+05, + "real_time": 7.0800344211543782e+05, + "cpu_time": 7.0478177912532119e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -512,8 +512,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9997442669883172e+05, - "cpu_time": 6.9672412550200929e+05, + "real_time": 7.0784833847735438e+05, + "cpu_time": 7.0478191951488436e+05, "time_unit": "ns", "model_cost": 6.4006800000000000e+05, "output_rows": 4.4760000000000000e+03, @@ -531,8 +531,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5246664789629790e+03, - "cpu_time": 3.4854281696968096e+03, + "real_time": 2.1987017232992253e+03, + "cpu_time": 2.1754663760714229e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -550,8 +550,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.0225773542785001e-03, - "cpu_time": 4.9886442102328220e-03, + "real_time": 3.1054958104860925e-03, + "cpu_time": 3.0867233525408593e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -567,9 +567,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1997, - "real_time": 3.4492794541993242e+05, - "cpu_time": 3.4377248823234811e+05, + "iterations": 1946, + "real_time": 3.4933276772805076e+05, + "cpu_time": 3.4805591058581707e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -585,9 +585,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1997, - "real_time": 3.5217452829173906e+05, - "cpu_time": 3.5094974411617417e+05, + "iterations": 1946, + "real_time": 3.5104961510741868e+05, + "cpu_time": 3.4970038848920772e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -603,9 +603,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1997, - "real_time": 3.5108648071568750e+05, - "cpu_time": 3.4975750125187810e+05, + "iterations": 1946, + "real_time": 3.5066883864314586e+05, + "cpu_time": 3.4928844039054483e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -623,8 +623,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4939631814245303e+05, - "cpu_time": 3.4815991120013344e+05, + "real_time": 3.5035040715953842e+05, + "cpu_time": 3.4901491315518977e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -642,8 +642,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5108648071568744e+05, - "cpu_time": 3.4975750125187816e+05, + "real_time": 3.5066883864314581e+05, + "cpu_time": 3.4928844039054483e+05, "time_unit": "ns", "model_cost": 6.4005000000000000e+05, "output_rows": 1.2550000000000000e+03, @@ -661,8 +661,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9077778816701375e+03, - "cpu_time": 3.8460981508032892e+03, + "real_time": 9.0163195835342015e+02, + "cpu_time": 8.5568087220638881e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -680,8 +680,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1184370523552256e-02, - "cpu_time": 1.1046929951083395e-02, + "real_time": 2.5735148009770848e-03, + "cpu_time": 2.4517028927812877e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -697,9 +697,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2600, - "real_time": 2.5277129883761515e+05, - "cpu_time": 2.5169727038461503e+05, + "iterations": 2052, + "real_time": 3.1039785721233365e+05, + "cpu_time": 3.0903469249512703e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -716,9 +716,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2600, - "real_time": 2.4949188269182251e+05, - "cpu_time": 2.4836474961538453e+05, + "iterations": 2052, + "real_time": 3.1106529385987530e+05, + "cpu_time": 3.0980652241715358e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -735,9 +735,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2600, - "real_time": 2.4811411922340858e+05, - "cpu_time": 2.4725135884615395e+05, + "iterations": 2052, + "real_time": 3.0510703606291499e+05, + "cpu_time": 3.0402607846003963e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -756,8 +756,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5012576691761543e+05, - "cpu_time": 2.4910445961538446e+05, + "real_time": 3.0885672904504131e+05, + "cpu_time": 3.0762243112410681e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -776,8 +776,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4949188269182251e+05, - "cpu_time": 2.4836474961538453e+05, + "real_time": 3.1039785721233365e+05, + "cpu_time": 3.0903469249512703e+05, "time_unit": "ns", "lhs_rows": 1.6200000000000000e+03, "model_cost": 6.3990000000000000e+05, @@ -796,8 +796,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3924229138098212e+03, - "cpu_time": 2.3134196582213044e+03, + "real_time": 3.2644319589770948e+03, + "cpu_time": 3.1383506369408151e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -816,8 +816,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.5648798734031260e-03, - "cpu_time": 9.2869459735614845e-03, + "real_time": 1.0569405332596900e-02, + "cpu_time": 1.0201956422594825e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -834,9 +834,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1033, - "real_time": 6.6694372410445113e+05, - "cpu_time": 6.6382655566311814e+05, + "iterations": 1056, + "real_time": 6.6501874526679656e+05, + "cpu_time": 6.6166925946969760e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -853,9 +853,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1033, - "real_time": 6.7231756050567015e+05, - "cpu_time": 6.6905101064859529e+05, + "iterations": 1056, + "real_time": 6.6649900568129611e+05, + "cpu_time": 6.6314359090909176e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -872,9 +872,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1033, - "real_time": 6.6608167377400631e+05, - "cpu_time": 6.6280441819941858e+05, + "iterations": 1056, + "real_time": 6.6576830681697174e+05, + "cpu_time": 6.6256839204545307e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -893,8 +893,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6844765279470931e+05, - "cpu_time": 6.6522732817037741e+05, + "real_time": 6.6576201925502135e+05, + "cpu_time": 6.6246041414141410e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -913,8 +913,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6694372410445136e+05, - "cpu_time": 6.6382655566311826e+05, + "real_time": 6.6576830681697174e+05, + "cpu_time": 6.6256839204545307e+05, "time_unit": "ns", "lhs_rows": 9.6000000000000000e+01, "model_cost": 6.4512000000000000e+05, @@ -933,8 +933,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3790415744024026e+03, - "cpu_time": 3.3506121857408598e+03, + "real_time": 7.4015023729405777e+02, + "cpu_time": 7.4307315863388430e+02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -953,8 +953,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.0550578796634037e-03, - "cpu_time": 5.0367927531724975e-03, + "real_time": 1.1117339467971992e-03, + "cpu_time": 1.1216868853921613e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -971,9 +971,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1784, - "real_time": 3.9590542938016279e+05, - "cpu_time": 3.9344063957399171e+05, + "iterations": 1795, + "real_time": 3.8999236490163032e+05, + "cpu_time": 3.8347962674094742e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -990,9 +990,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1784, - "real_time": 3.9683092040526099e+05, - "cpu_time": 3.9427491928251146e+05, + "iterations": 1795, + "real_time": 3.9009576936010504e+05, + "cpu_time": 3.8747032423398481e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1009,9 +1009,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1784, - "real_time": 4.1283857399525202e+05, - "cpu_time": 4.0964141704035935e+05, + "iterations": 1795, + "real_time": 3.8952511754879227e+05, + "cpu_time": 3.8699354038997233e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1030,8 +1030,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0185830792689190e+05, - "cpu_time": 3.9911899196562084e+05, + "real_time": 3.8987108393684245e+05, + "cpu_time": 3.8598116378830146e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1050,8 +1050,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9683092040526099e+05, - "cpu_time": 3.9427491928251152e+05, + "real_time": 3.8999236490163038e+05, + "cpu_time": 3.8699354038997233e+05, "time_unit": "ns", "lhs_rows": 7.8000000000000000e+01, "model_cost": 6.3273600000000000e+05, @@ -1070,8 +1070,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5204419859792561e+03, - "cpu_time": 9.1222298670954096e+03, + "real_time": 3.0404387311849194e+02, + "cpu_time": 2.1794715891542296e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1090,8 +1090,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3691041837839179e-02, - "cpu_time": 2.2855915280225944e-02, + "real_time": 7.7985745967183815e-04, + "cpu_time": 5.6465749980214091e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1108,9 +1108,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1998, - "real_time": 3.4563285885383381e+05, - "cpu_time": 3.4412943743743672e+05, + "iterations": 1985, + "real_time": 3.5433331838938274e+05, + "cpu_time": 3.5242765188916784e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1126,9 +1126,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1998, - "real_time": 3.4439379078822228e+05, - "cpu_time": 3.4241372272272233e+05, + "iterations": 1985, + "real_time": 3.5468370176298119e+05, + "cpu_time": 3.5280560554156185e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1144,9 +1144,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1998, - "real_time": 3.4484542842832737e+05, - "cpu_time": 3.4355080580580694e+05, + "iterations": 1985, + "real_time": 3.5680529622219433e+05, + "cpu_time": 3.5481444382871594e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1164,8 +1164,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4495735935679451e+05, - "cpu_time": 3.4336465532198857e+05, + "real_time": 3.5527410545818607e+05, + "cpu_time": 3.5334923375314852e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1183,8 +1183,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4484542842832737e+05, - "cpu_time": 3.4355080580580694e+05, + "real_time": 3.5468370176298119e+05, + "cpu_time": 3.5280560554156179e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 1.0000000000000000e+04, @@ -1202,8 +1202,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2707162059865288e+02, - "cpu_time": 8.7287355760387481e+02, + "real_time": 1.3375727995017780e+03, + "cpu_time": 1.2829039968112327e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1221,8 +1221,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8178235761309369e-03, - "cpu_time": 2.5421182526353552e-03, + "real_time": 3.7649037150533434e-03, + "cpu_time": 3.6306969826556236e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1238,9 +1238,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1108, - "real_time": 6.3257316154842218e+05, - "cpu_time": 6.2974223375450983e+05, + "iterations": 1002, + "real_time": 6.2769447704667330e+05, + "cpu_time": 6.2485120758483198e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1256,9 +1256,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1108, - "real_time": 6.4124681769692863e+05, - "cpu_time": 6.3815216245487344e+05, + "iterations": 1002, + "real_time": 6.3063119460765040e+05, + "cpu_time": 6.2753678642714547e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1274,9 +1274,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1108, - "real_time": 6.4404472202904825e+05, - "cpu_time": 6.4052159476534347e+05, + "iterations": 1002, + "real_time": 6.3242097704658192e+05, + "cpu_time": 6.2945885828343406e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1294,8 +1294,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.3928823375813290e+05, - "cpu_time": 6.3613866365824209e+05, + "real_time": 6.3024888290030195e+05, + "cpu_time": 6.2728228409847047e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1313,8 +1313,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4124681769692863e+05, - "cpu_time": 6.3815216245487344e+05, + "real_time": 6.3063119460765051e+05, + "cpu_time": 6.2753678642714547e+05, "time_unit": "ns", "model_cost": 1.0000000000000000e+06, "output_rows": 5.1200000000000000e+03, @@ -1332,8 +1332,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.9813220318930735e+03, - "cpu_time": 5.6647408593572536e+03, + "real_time": 2.3863302879858070e+03, + "cpu_time": 2.3143443600135965e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1351,8 +1351,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.3562210534224154e-03, - "cpu_time": 8.9048837666634382e-03, + "real_time": 3.7863300558412839e-03, + "cpu_time": 3.6894782758607162e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1368,9 +1368,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 139, - "real_time": 4.9726498345073937e+06, - "cpu_time": 4.9447566187050398e+06, + "iterations": 122, + "real_time": 4.9816019098395118e+06, + "cpu_time": 4.9544085327869086e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1386,9 +1386,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 139, - "real_time": 4.9559121439317176e+06, - "cpu_time": 4.9227157338129496e+06, + "iterations": 122, + "real_time": 5.0094015983691467e+06, + "cpu_time": 4.9823941229508277e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1404,9 +1404,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 139, - "real_time": 5.0025056403133646e+06, - "cpu_time": 4.9735199496402973e+06, + "iterations": 122, + "real_time": 4.9544221639407026e+06, + "cpu_time": 4.9275025983606549e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1424,8 +1424,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9770225395841580e+06, - "cpu_time": 4.9469974340527626e+06, + "real_time": 4.9818085573831210e+06, + "cpu_time": 4.9547684180327971e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1443,8 +1443,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9726498345073927e+06, - "cpu_time": 4.9447566187050408e+06, + "real_time": 4.9816019098395118e+06, + "cpu_time": 4.9544085327869086e+06, "time_unit": "ns", "model_cost": 1.0000100000000000e+06, "output_rows": 4.5455000000000000e+04, @@ -1462,8 +1462,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3602518690500099e+04, - "cpu_time": 2.5476126599603274e+04, + "real_time": 2.7490299742283547e+04, + "cpu_time": 2.7447531874389522e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1481,8 +1481,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.7422969260798526e-03, - "cpu_time": 5.1498160124842226e-03, + "real_time": 5.5181365212323306e-03, + "cpu_time": 5.5396195258076422e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1498,9 +1498,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 614, - "real_time": 1.1341678273370368e+06, - "cpu_time": 1.1295298664495109e+06, + "iterations": 594, + "real_time": 1.1378401750855474e+06, + "cpu_time": 1.1335161094276085e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1516,9 +1516,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 614, - "real_time": 1.1368175733042730e+06, - "cpu_time": 1.1325081123778548e+06, + "iterations": 594, + "real_time": 1.1455248249109199e+06, + "cpu_time": 1.1408682929292931e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1534,9 +1534,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 614, - "real_time": 1.1524035472021641e+06, - "cpu_time": 1.1470397475570044e+06, + "iterations": 594, + "real_time": 1.1423288232304202e+06, + "cpu_time": 1.1374496414141406e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1554,8 +1554,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1411296492811579e+06, - "cpu_time": 1.1363592421281233e+06, + "real_time": 1.1418979410756293e+06, + "cpu_time": 1.1372780145903474e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1573,8 +1573,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1368175733042730e+06, - "cpu_time": 1.1325081123778548e+06, + "real_time": 1.1423288232304205e+06, + "cpu_time": 1.1374496414141406e+06, "time_unit": "ns", "model_cost": 9.9999900000000000e+05, "output_rows": 6.9930000000000000e+03, @@ -1592,8 +1592,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8529624566817838e+03, - "cpu_time": 9.3686917104236363e+03, + "real_time": 3.8604022210250073e+03, + "cpu_time": 3.6790953216950588e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1611,8 +1611,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.6343935265274646e-03, - "cpu_time": 8.2444805859794527e-03, + "real_time": 3.3806893612476773e-03, + "cpu_time": 3.2350008304875963e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1628,9 +1628,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1273, - "real_time": 5.3098601337013068e+05, - "cpu_time": 5.2881867242733785e+05, + "iterations": 1343, + "real_time": 5.3669842516653473e+05, + "cpu_time": 5.3436887714072736e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1646,9 +1646,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1273, - "real_time": 5.2959087509800913e+05, - "cpu_time": 5.2767492301649693e+05, + "iterations": 1343, + "real_time": 5.3255765003641346e+05, + "cpu_time": 5.3023443112435006e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1664,9 +1664,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1273, - "real_time": 5.2640415868101513e+05, - "cpu_time": 5.2457712018853263e+05, + "iterations": 1343, + "real_time": 5.3225933134797914e+05, + "cpu_time": 5.2984623454951541e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1684,8 +1684,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2899368238305172e+05, - "cpu_time": 5.2702357187745592e+05, + "real_time": 5.3383846885030915e+05, + "cpu_time": 5.3148318093819753e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1703,8 +1703,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2959087509800924e+05, - "cpu_time": 5.2767492301649693e+05, + "real_time": 5.3255765003641346e+05, + "cpu_time": 5.3023443112435006e+05, "time_unit": "ns", "model_cost": 1.0001100000000000e+06, "output_rows": 1.9610000000000000e+03, @@ -1722,8 +1722,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3485798798903938e+03, - "cpu_time": 2.1945124921908568e+03, + "real_time": 2.4812821500415994e+03, + "cpu_time": 2.5066124700974638e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1741,8 +1741,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.4397125298554219e-03, - "cpu_time": 4.1639740787554900e-03, + "real_time": 4.6480017736177104e-03, + "cpu_time": 4.7162592533458560e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1758,9 +1758,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1797, - "real_time": 4.1462430996332126e+05, - "cpu_time": 4.1225401780745643e+05, + "iterations": 1432, + "real_time": 4.8710068435790343e+05, + "cpu_time": 4.8449705377095164e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1777,9 +1777,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1797, - "real_time": 3.9303921367861662e+05, - "cpu_time": 3.9140321090706665e+05, + "iterations": 1432, + "real_time": 4.8789104399556329e+05, + "cpu_time": 4.8550960265363037e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1796,9 +1796,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1797, - "real_time": 3.8777616916524433e+05, - "cpu_time": 3.8620169838620006e+05, + "iterations": 1432, + "real_time": 4.8274565014197421e+05, + "cpu_time": 4.8046665083798999e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1817,8 +1817,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9847989760239405e+05, - "cpu_time": 3.9661964236690773e+05, + "real_time": 4.8591245949848025e+05, + "cpu_time": 4.8349110242085723e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1837,8 +1837,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9303921367861662e+05, - "cpu_time": 3.9140321090706671e+05, + "real_time": 4.8710068435790343e+05, + "cpu_time": 4.8449705377095164e+05, "time_unit": "ns", "lhs_rows": 2.5320000000000000e+03, "model_cost": 1.0001400000000000e+06, @@ -1857,8 +1857,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4226961982350842e+04, - "cpu_time": 1.3787284166512027e+04, + "real_time": 2.7708623593766188e+03, + "cpu_time": 2.6677320597961912e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1877,8 +1877,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.5703085821776136e-02, - "cpu_time": 3.4761980229303893e-02, + "real_time": 5.7023900194625174e-03, + "cpu_time": 5.5176445780258645e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -1895,9 +1895,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 714, - "real_time": 1.0080792366739634e+06, - "cpu_time": 1.0028058949579867e+06, + "iterations": 693, + "real_time": 1.0438258802304232e+06, + "cpu_time": 1.0267886406926359e+06, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1914,9 +1914,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 714, - "real_time": 9.8433718346163677e+05, - "cpu_time": 9.7921947338935942e+05, + "iterations": 693, + "real_time": 1.0075375454556257e+06, + "cpu_time": 1.0020099538239490e+06, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1933,9 +1933,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 714, - "real_time": 9.7170133615357417e+05, - "cpu_time": 9.6725160784313711e+05, + "iterations": 693, + "real_time": 1.0043929090908518e+06, + "cpu_time": 9.9924881818182161e+05, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1954,8 +1954,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8803925209639140e+05, - "cpu_time": 9.8309232539682754e+05, + "real_time": 1.0185854449256334e+06, + "cpu_time": 1.0093491375661356e+06, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1974,8 +1974,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8433718346163677e+05, - "cpu_time": 9.7921947338935931e+05, + "real_time": 1.0075375454556257e+06, + "cpu_time": 1.0020099538239491e+06, "time_unit": "ns", "lhs_rows": 1.2000000000000000e+02, "model_cost": 1.0080000000000000e+06, @@ -1994,8 +1994,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8469350169949928e+04, - "cpu_time": 1.8090773064334313e+04, + "real_time": 2.1915334020921273e+04, + "cpu_time": 1.5166020225600876e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2014,8 +2014,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8692931612547002e-02, - "cpu_time": 1.8401906511712342e-02, + "real_time": 2.1515459630901460e-02, + "cpu_time": 1.5025544344517911e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2032,9 +2032,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1215, - "real_time": 5.7465879341449449e+05, - "cpu_time": 5.7113181810699799e+05, + "iterations": 1163, + "real_time": 5.8840910833990015e+05, + "cpu_time": 5.8406956405847345e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2051,9 +2051,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1215, - "real_time": 5.7763943047197571e+05, - "cpu_time": 5.7397227325102536e+05, + "iterations": 1163, + "real_time": 5.9627645485679095e+05, + "cpu_time": 5.9222581169389328e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2070,9 +2070,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1215, - "real_time": 5.7583975966410409e+05, - "cpu_time": 5.7197935637860117e+05, + "iterations": 1163, + "real_time": 5.6384729234676284e+05, + "cpu_time": 5.6077827858985390e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2091,8 +2091,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.7604599451685813e+05, - "cpu_time": 5.7236114924554143e+05, + "real_time": 5.8284428518115135e+05, + "cpu_time": 5.7902455144740688e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2111,8 +2111,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.7583975966410420e+05, - "cpu_time": 5.7197935637860128e+05, + "real_time": 5.8840910833990027e+05, + "cpu_time": 5.8406956405847357e+05, "time_unit": "ns", "lhs_rows": 9.8000000000000000e+01, "model_cost": 9.9881600000000000e+05, @@ -2131,8 +2131,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5009826541207833e+03, - "cpu_time": 1.4582080445990132e+03, + "real_time": 1.6915616685965517e+04, + "cpu_time": 1.6319495971594204e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2151,8 +2151,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6056645969384602e-03, - "cpu_time": 2.5477061930586167e-03, + "real_time": 2.9022531602429701e-02, + "cpu_time": 2.8184462870874505e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2169,9 +2169,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 594, - "real_time": 1.1861069814454112e+06, - "cpu_time": 1.1779857457912401e+06, + "iterations": 568, + "real_time": 1.1194045651394282e+06, + "cpu_time": 1.1136787183098528e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2187,9 +2187,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 594, - "real_time": 1.3275793703588082e+06, - "cpu_time": 1.3171716414141336e+06, + "iterations": 568, + "real_time": 1.1225315721839906e+06, + "cpu_time": 1.1169980123239360e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2205,9 +2205,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 594, - "real_time": 1.1991726195162181e+06, - "cpu_time": 1.1916339781144718e+06, + "iterations": 568, + "real_time": 1.1623374207758873e+06, + "cpu_time": 1.1553145580985874e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2225,8 +2225,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2376196571068126e+06, - "cpu_time": 1.2289304551066153e+06, + "real_time": 1.1347578526997687e+06, + "cpu_time": 1.1286637629107919e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2244,8 +2244,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1991726195162183e+06, - "cpu_time": 1.1916339781144720e+06, + "real_time": 1.1225315721839906e+06, + "cpu_time": 1.1169980123239357e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 3.2400000000000000e+04, @@ -2263,8 +2263,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.8180817537522613e+04, - "cpu_time": 7.6723195854357313e+04, + "real_time": 2.3935725907369171e+04, + "cpu_time": 2.3139859362031868e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2282,8 +2282,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.3170310109881542e-02, - "cpu_time": 6.2430868675722763e-02, + "real_time": 2.1093245444763646e-02, + "cpu_time": 2.0501995476805975e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2299,9 +2299,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 329, - "real_time": 2.1039468236621413e+06, - "cpu_time": 2.0949619665653321e+06, + "iterations": 331, + "real_time": 2.1149336495450796e+06, + "cpu_time": 2.1047326525679757e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2317,9 +2317,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 329, - "real_time": 2.1259203008453907e+06, - "cpu_time": 2.1148626838905723e+06, + "iterations": 331, + "real_time": 2.2388615045388578e+06, + "cpu_time": 2.2274217824773476e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2335,9 +2335,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 329, - "real_time": 2.1401849088094858e+06, - "cpu_time": 2.1277671914893552e+06, + "iterations": 331, + "real_time": 2.1009314048327850e+06, + "cpu_time": 2.0896825468278064e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2355,8 +2355,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1233506777723390e+06, - "cpu_time": 2.1125306139817527e+06, + "real_time": 2.1515755196389076e+06, + "cpu_time": 2.1406123272910430e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2374,8 +2374,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1259203008453907e+06, - "cpu_time": 2.1148626838905723e+06, + "real_time": 2.1149336495450796e+06, + "cpu_time": 2.1047326525679757e+06, "time_unit": "ns", "model_cost": 3.2400000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -2393,8 +2393,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8255189011346167e+04, - "cpu_time": 1.6526482025068985e+04, + "real_time": 7.5915400836785033e+04, + "cpu_time": 7.5554864522459175e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2412,8 +2412,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.5973500291050137e-03, - "cpu_time": 7.8230733868132878e-03, + "real_time": 3.5283632921016730e-02, + "cpu_time": 3.5295912089824445e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2429,9 +2429,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 35, - "real_time": 1.9513198257690027e+07, - "cpu_time": 1.9372675828571420e+07, + "iterations": 36, + "real_time": 1.9277200138882712e+07, + "cpu_time": 1.9131104916666549e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2447,9 +2447,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 35, - "real_time": 1.9995323685829394e+07, - "cpu_time": 1.9821715114285607e+07, + "iterations": 36, + "real_time": 1.9715131944495723e+07, + "cpu_time": 1.9566701166666750e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2465,9 +2465,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 35, - "real_time": 1.9109750028500065e+07, - "cpu_time": 1.8978055514285836e+07, + "iterations": 36, + "real_time": 1.9886034555485014e+07, + "cpu_time": 1.9739094666666701e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2485,8 +2485,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9539423990673166e+07, - "cpu_time": 1.9390815485714290e+07, + "real_time": 1.9626122212954484e+07, + "cpu_time": 1.9478966916666668e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2504,8 +2504,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9513198257690031e+07, - "cpu_time": 1.9372675828571420e+07, + "real_time": 1.9715131944495723e+07, + "cpu_time": 1.9566701166666750e+07, "time_unit": "ns", "model_cost": 3.2400060000000000e+06, "output_rows": 1.4727300000000000e+05, @@ -2523,8 +2523,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4336894054709881e+05, - "cpu_time": 4.2212221635314700e+05, + "real_time": 3.1402529506662284e+05, + "cpu_time": 3.1334622702948493e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2542,8 +2542,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.2690993386434214e-02, - "cpu_time": 2.1769183284949270e-02, + "real_time": 1.6000373973996063e-02, + "cpu_time": 1.6086388378296308e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2559,9 +2559,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 176, - "real_time": 4.0440506760536330e+06, - "cpu_time": 4.0273345568181914e+06, + "iterations": 171, + "real_time": 3.9185205029130694e+06, + "cpu_time": 3.9026283274853542e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2577,9 +2577,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 176, - "real_time": 3.9938337897844822e+06, - "cpu_time": 3.9734451420454709e+06, + "iterations": 171, + "real_time": 3.9332606257412620e+06, + "cpu_time": 3.9149300350876790e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2595,9 +2595,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 176, - "real_time": 3.9726324203828964e+06, - "cpu_time": 3.9547886420454388e+06, + "iterations": 171, + "real_time": 3.8436262690105098e+06, + "cpu_time": 3.8296677251461945e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2615,8 +2615,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0035056287403367e+06, - "cpu_time": 3.9851894469696996e+06, + "real_time": 3.8984691325549465e+06, + "cpu_time": 3.8824086959064086e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2634,8 +2634,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9938337897844817e+06, - "cpu_time": 3.9734451420454704e+06, + "real_time": 3.9185205029130690e+06, + "cpu_time": 3.9026283274853542e+06, "time_unit": "ns", "model_cost": 3.2399400000000000e+06, "output_rows": 1.9636000000000000e+04, @@ -2653,8 +2653,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6678333691095635e+04, - "cpu_time": 3.7671925371151658e+04, + "real_time": 4.8063734421756788e+04, + "cpu_time": 4.6087313873067236e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2672,8 +2672,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.1615541708720185e-03, - "cpu_time": 9.4529823167621378e-03, + "real_time": 1.2328873921404419e-02, + "cpu_time": 1.1870804308073350e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2689,9 +2689,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 381, - "real_time": 1.8305065721582640e+06, - "cpu_time": 1.8222413070866195e+06, + "iterations": 401, + "real_time": 1.8448469077281659e+06, + "cpu_time": 1.8365411645885147e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2707,9 +2707,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 381, - "real_time": 1.9812883045023254e+06, - "cpu_time": 1.9684665485564233e+06, + "iterations": 401, + "real_time": 1.8234426733172422e+06, + "cpu_time": 1.8135941346633283e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2725,9 +2725,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 381, - "real_time": 1.8640592624922220e+06, - "cpu_time": 1.8551294908136604e+06, + "iterations": 401, + "real_time": 1.8907349476376793e+06, + "cpu_time": 1.8810223291770415e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2745,8 +2745,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8919513797176040e+06, - "cpu_time": 1.8819457821522346e+06, + "real_time": 1.8530081762276955e+06, + "cpu_time": 1.8437192094762949e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2764,8 +2764,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8640592624922220e+06, - "cpu_time": 1.8551294908136604e+06, + "real_time": 1.8448469077281661e+06, + "cpu_time": 1.8365411645885147e+06, "time_unit": "ns", "model_cost": 3.2400300000000000e+06, "output_rows": 6.3530000000000000e+03, @@ -2783,8 +2783,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9166030307539462e+04, - "cpu_time": 7.6712387667131974e+04, + "real_time": 3.4380478086360250e+04, + "cpu_time": 3.4282409485806726e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2802,8 +2802,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.1843586022467412e-02, - "cpu_time": 4.0762272959533406e-02, + "real_time": 1.8553872847097256e-02, + "cpu_time": 1.8594159734086940e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2819,9 +2819,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 530, - "real_time": 1.3141324924841030e+06, - "cpu_time": 1.3071131056603747e+06, + "iterations": 420, + "real_time": 1.6105874952440250e+06, + "cpu_time": 1.6015009047619074e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2838,9 +2838,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 530, - "real_time": 1.2856152339153131e+06, - "cpu_time": 1.2784913339622640e+06, + "iterations": 420, + "real_time": 1.6070290547629285e+06, + "cpu_time": 1.5983681214285705e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2857,9 +2857,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 530, - "real_time": 1.2904943339307003e+06, - "cpu_time": 1.2835080886792422e+06, + "iterations": 420, + "real_time": 1.5920918047586817e+06, + "cpu_time": 1.5839235309523793e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2878,8 +2878,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2967473534433718e+06, - "cpu_time": 1.2897041761006268e+06, + "real_time": 1.6032361182552117e+06, + "cpu_time": 1.5945975190476188e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2898,8 +2898,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2904943339307001e+06, - "cpu_time": 1.2835080886792422e+06, + "real_time": 1.6070290547629285e+06, + "cpu_time": 1.5983681214285705e+06, "time_unit": "ns", "lhs_rows": 8.2030000000000000e+03, "model_cost": 3.2401850000000000e+06, @@ -2918,8 +2918,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5252334209538914e+04, - "cpu_time": 1.5283817529826309e+04, + "real_time": 9.8138889919282901e+03, + "cpu_time": 9.3757185989758382e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2938,8 +2938,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1761993706050754e-02, - "cpu_time": 1.1850638164200081e-02, + "real_time": 6.1212998386093393e-03, + "cpu_time": 5.8796771517464373e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -2956,9 +2956,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 239, - "real_time": 2.9282864519525478e+06, - "cpu_time": 2.9145974184100539e+06, + "iterations": 241, + "real_time": 2.8838505643146755e+06, + "cpu_time": 2.8719157136929454e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -2975,9 +2975,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 239, - "real_time": 3.1698297280097329e+06, - "cpu_time": 3.1484756150627565e+06, + "iterations": 241, + "real_time": 2.9244994232412940e+06, + "cpu_time": 2.9107990705394018e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -2994,9 +2994,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 239, - "real_time": 2.9481217740288698e+06, - "cpu_time": 2.9332148535564747e+06, + "iterations": 241, + "real_time": 2.9240677593338946e+06, + "cpu_time": 2.9106966639004154e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -3015,8 +3015,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0154126513303830e+06, - "cpu_time": 2.9987626290097614e+06, + "real_time": 2.9108059156299545e+06, + "cpu_time": 2.8978038160442538e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -3035,8 +3035,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9481217740288698e+06, - "cpu_time": 2.9332148535564747e+06, + "real_time": 2.9240677593338937e+06, + "cpu_time": 2.9106966639004149e+06, "time_unit": "ns", "lhs_rows": 2.1500000000000000e+02, "model_cost": 3.2357500000000000e+06, @@ -3055,8 +3055,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3409636526809214e+05, - "cpu_time": 1.2998898363914917e+05, + "real_time": 2.3345016745122204e+04, + "cpu_time": 2.2419812762276619e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3075,8 +3075,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.4470319910918189e-02, - "cpu_time": 4.3347540209300782e-02, + "real_time": 8.0201213759282519e-03, + "cpu_time": 7.7368290559026009e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3093,9 +3093,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 347, - "real_time": 1.9741251786079751e+06, - "cpu_time": 1.9564031412103847e+06, + "iterations": 354, + "real_time": 1.9130518587580242e+06, + "cpu_time": 1.8946784887005747e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3112,9 +3112,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 347, - "real_time": 1.9759533948483756e+06, - "cpu_time": 1.9561049567723265e+06, + "iterations": 354, + "real_time": 2.0192119717530708e+06, + "cpu_time": 1.9987998785310758e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3131,9 +3131,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 347, - "real_time": 1.9577290287935135e+06, - "cpu_time": 1.9377983141210261e+06, + "iterations": 354, + "real_time": 1.8982003785324174e+06, + "cpu_time": 1.8807306101694885e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3152,8 +3152,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9692692007499549e+06, - "cpu_time": 1.9501021373679123e+06, + "real_time": 1.9434880696811711e+06, + "cpu_time": 1.9247363258003795e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3172,8 +3172,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9741251786079751e+06, - "cpu_time": 1.9561049567723265e+06, + "real_time": 1.9130518587580242e+06, + "cpu_time": 1.8946784887005745e+06, "time_unit": "ns", "lhs_rows": 1.7700000000000000e+02, "model_cost": 3.2582160000000000e+06, @@ -3192,8 +3192,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0035799432207679e+04, - "cpu_time": 1.0656466504360225e+04, + "real_time": 6.5997906216558025e+04, + "cpu_time": 6.4518936841824965e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3212,8 +3212,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.0962049416025780e-03, - "cpu_time": 5.4645683937065200e-03, + "real_time": 3.3958482815582697e-02, + "cpu_time": 3.3520922308667662e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3230,9 +3230,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 184, - "real_time": 3.7718354294117056e+06, - "cpu_time": 3.7381105217391322e+06, + "iterations": 191, + "real_time": 3.4445205549706453e+06, + "cpu_time": 3.4124743193717292e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3248,9 +3248,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 184, - "real_time": 3.7187801467750785e+06, - "cpu_time": 3.6843537336956598e+06, + "iterations": 191, + "real_time": 3.3868414764355016e+06, + "cpu_time": 3.3565554031413412e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3266,9 +3266,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 184, - "real_time": 3.9800230490231034e+06, - "cpu_time": 3.9423033750000065e+06, + "iterations": 191, + "real_time": 3.3169767434557313e+06, + "cpu_time": 3.2917669476439739e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3286,8 +3286,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8235462084032954e+06, - "cpu_time": 3.7882558768115994e+06, + "real_time": 3.3827795916206255e+06, + "cpu_time": 3.3535988900523479e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3305,8 +3305,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7718354294117051e+06, - "cpu_time": 3.7381105217391322e+06, + "real_time": 3.3868414764355007e+06, + "cpu_time": 3.3565554031413407e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 6.7600000000000000e+04, @@ -3324,8 +3324,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3808499915515727e+05, - "cpu_time": 1.3608975655343197e+05, + "real_time": 6.3868851133623881e+04, + "cpu_time": 6.0407972359519510e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3343,8 +3343,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6114379591301253e-02, - "cpu_time": 3.5924119430911429e-02, + "real_time": 1.8880583083754957e-02, + "cpu_time": 1.8012879399115191e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3360,9 +3360,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 134, - "real_time": 4.8460080522918776e+06, - "cpu_time": 4.8139725223880364e+06, + "iterations": 116, + "real_time": 4.4690427068793541e+06, + "cpu_time": 4.4439296293103714e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3378,9 +3378,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 134, - "real_time": 5.2929276493186848e+06, - "cpu_time": 5.2588288507462246e+06, + "iterations": 116, + "real_time": 4.7122111379300393e+06, + "cpu_time": 4.6769992327585993e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3396,9 +3396,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 134, - "real_time": 4.9774928134431671e+06, - "cpu_time": 4.9457495820895331e+06, + "iterations": 116, + "real_time": 4.8310390775754815e+06, + "cpu_time": 4.7991511379310796e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3416,8 +3416,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.0388095050179092e+06, - "cpu_time": 5.0061836517412644e+06, + "real_time": 4.6707643074616250e+06, + "cpu_time": 4.6400266666666837e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3435,8 +3435,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9774928134431671e+06, - "cpu_time": 4.9457495820895331e+06, + "real_time": 4.7122111379300402e+06, + "cpu_time": 4.6769992327585993e+06, "time_unit": "ns", "model_cost": 6.7600000000000000e+06, "output_rows": 3.3808000000000000e+04, @@ -3454,8 +3454,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2968257237089062e+05, - "cpu_time": 2.2850272602550886e+05, + "real_time": 1.8452296040383805e+05, + "cpu_time": 1.8047384306113768e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3473,8 +3473,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.5582706022555673e-02, - "cpu_time": 4.5644095766648601e-02, + "real_time": 3.9505945549224028e-02, + "cpu_time": 3.8895001263168826e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3491,8 +3491,8 @@ "repetition_index": 0, "threads": 1, "iterations": 17, - "real_time": 4.1717090058441766e+07, - "cpu_time": 4.1418955117647059e+07, + "real_time": 4.1575665764599651e+07, + "cpu_time": 4.1278783705882251e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3509,8 +3509,8 @@ "repetition_index": 1, "threads": 1, "iterations": 17, - "real_time": 4.0860569587333456e+07, - "cpu_time": 4.0567387647058696e+07, + "real_time": 4.1320727058679469e+07, + "cpu_time": 4.0926270058823258e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3527,8 +3527,8 @@ "repetition_index": 2, "threads": 1, "iterations": 17, - "real_time": 4.0203538177165151e+07, - "cpu_time": 3.9915717411764465e+07, + "real_time": 4.1540129411741339e+07, + "cpu_time": 4.1133353705882147e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3546,8 +3546,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0927065940980129e+07, - "cpu_time": 4.0634020058823414e+07, + "real_time": 4.1478840745006822e+07, + "cpu_time": 4.1112802490195885e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3565,8 +3565,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0860569587333463e+07, - "cpu_time": 4.0567387647058703e+07, + "real_time": 4.1540129411741339e+07, + "cpu_time": 4.1133353705882154e+07, "time_unit": "ns", "model_cost": 6.7600060000000000e+06, "output_rows": 3.0727300000000000e+05, @@ -3584,8 +3584,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.5896386482843384e+05, - "cpu_time": 7.5383075608530396e+05, + "real_time": 1.3807846119852070e+05, + "cpu_time": 1.7715313203725443e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3603,8 +3603,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8544301854496879e-02, - "cpu_time": 1.8551714917550092e-02, + "real_time": 3.3288891087232819e-03, + "cpu_time": 4.3089529612947179e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3620,9 +3620,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 65, - "real_time": 9.8258075384924617e+06, - "cpu_time": 9.7672615384615604e+06, + "iterations": 69, + "real_time": 1.0315979376806038e+07, + "cpu_time": 1.0245213855072534e+07, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3638,9 +3638,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 65, - "real_time": 9.9867926923952140e+06, - "cpu_time": 9.9288823076921497e+06, + "iterations": 69, + "real_time": 1.0310139942031011e+07, + "cpu_time": 1.0246672159420282e+07, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3656,9 +3656,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 65, - "real_time": 1.0194654030671630e+07, - "cpu_time": 1.0120535738461345e+07, + "iterations": 69, + "real_time": 9.7521267826263998e+06, + "cpu_time": 9.6988003478260934e+06, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3676,8 +3676,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0002418087186435e+07, - "cpu_time": 9.9388931948716845e+06, + "real_time": 1.0126082033821149e+07, + "cpu_time": 1.0063562120772971e+07, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3695,8 +3695,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.9867926923952140e+06, - "cpu_time": 9.9288823076921497e+06, + "real_time": 1.0310139942031009e+07, + "cpu_time": 1.0245213855072534e+07, "time_unit": "ns", "model_cost": 6.7599840000000000e+06, "output_rows": 3.8409000000000000e+04, @@ -3714,8 +3714,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8491903206538255e+05, - "cpu_time": 1.7684973421802523e+05, + "real_time": 3.2386790852402127e+05, + "cpu_time": 3.1589380322411103e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3733,8 +3733,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8487432784105719e-02, - "cpu_time": 1.7793705068616387e-02, + "real_time": 3.1983535926560870e-02, + "cpu_time": 3.1389859716973417e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3750,9 +3750,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 138, - "real_time": 4.2673892827039799e+06, - "cpu_time": 4.2422957028985042e+06, + "iterations": 170, + "real_time": 4.2038333235241761e+06, + "cpu_time": 4.1811743294117907e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3768,9 +3768,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 138, - "real_time": 4.7523767897855835e+06, - "cpu_time": 4.7183559855072815e+06, + "iterations": 170, + "real_time": 4.2756962058774661e+06, + "cpu_time": 4.2518384647059003e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3786,9 +3786,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 138, - "real_time": 4.5172276014995268e+06, - "cpu_time": 4.4889080652173636e+06, + "iterations": 170, + "real_time": 4.2982202117641196e+06, + "cpu_time": 4.2745971529411720e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3806,8 +3806,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5123312246630294e+06, - "cpu_time": 4.4831865845410498e+06, + "real_time": 4.2592499137219209e+06, + "cpu_time": 4.2358699823529543e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3825,8 +3825,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5172276014995258e+06, - "cpu_time": 4.4889080652173636e+06, + "real_time": 4.2756962058774661e+06, + "cpu_time": 4.2518384647059003e+06, "time_unit": "ns", "model_cost": 6.7600500000000000e+06, "output_rows": 1.3255000000000000e+04, @@ -3844,8 +3844,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4253082564059203e+05, - "cpu_time": 2.3808170798118532e+05, + "real_time": 4.9295857454287507e+04, + "cpu_time": 4.8715503800550687e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3863,8 +3863,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.3748453640768287e-02, - "cpu_time": 5.3105464939188586e-02, + "real_time": 1.1573835405964853e-02, + "cpu_time": 1.1500708001781029e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3880,9 +3880,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 223, - "real_time": 3.2865667578371684e+06, - "cpu_time": 3.2587939820627454e+06, + "iterations": 188, + "real_time": 3.8816334202025211e+06, + "cpu_time": 3.8509602553191409e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3899,9 +3899,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 223, - "real_time": 3.1994071478732014e+06, - "cpu_time": 3.1710662376681408e+06, + "iterations": 188, + "real_time": 3.7382285106317834e+06, + "cpu_time": 3.7129705691489545e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3918,9 +3918,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 223, - "real_time": 3.1012533855887605e+06, - "cpu_time": 3.0766526950672604e+06, + "iterations": 188, + "real_time": 3.6913151489375676e+06, + "cpu_time": 3.6675774893617225e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3939,8 +3939,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1957424304330428e+06, - "cpu_time": 3.1688376382660479e+06, + "real_time": 3.7703923599239569e+06, + "cpu_time": 3.7438361046099388e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3959,8 +3959,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1994071478732019e+06, - "cpu_time": 3.1710662376681413e+06, + "real_time": 3.7382285106317829e+06, + "cpu_time": 3.7129705691489540e+06, "time_unit": "ns", "lhs_rows": 1.7114000000000000e+04, "model_cost": 6.7600300000000000e+06, @@ -3979,8 +3979,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.2711024689398051e+04, - "cpu_time": 9.1091092311855245e+04, + "real_time": 9.9152135606278447e+04, + "cpu_time": 9.5508223059701733e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -3999,8 +3999,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9010793800686593e-02, - "cpu_time": 2.8745900771899202e-02, + "real_time": 2.6297564322530671e-02, + "cpu_time": 2.5510791709631345e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4017,9 +4017,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 117, - "real_time": 5.8786601537607731e+06, - "cpu_time": 5.8516572991452804e+06, + "iterations": 120, + "real_time": 5.8697186833342128e+06, + "cpu_time": 5.8452958499999614e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4036,9 +4036,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 117, - "real_time": 6.1285927693725713e+06, - "cpu_time": 6.1021305470085545e+06, + "iterations": 120, + "real_time": 5.7186517333320808e+06, + "cpu_time": 5.6974987916666698e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4055,9 +4055,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 117, - "real_time": 6.0619309914704319e+06, - "cpu_time": 6.0326073931623586e+06, + "iterations": 120, + "real_time": 5.7306100416705403e+06, + "cpu_time": 5.7089901000000043e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4076,8 +4076,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0230613048679242e+06, - "cpu_time": 5.9954650797720654e+06, + "real_time": 5.7729934861122780e+06, + "cpu_time": 5.7505949138888782e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4096,8 +4096,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0619309914704310e+06, - "cpu_time": 6.0326073931623586e+06, + "real_time": 5.7306100416705394e+06, + "cpu_time": 5.7089901000000043e+06, "time_unit": "ns", "lhs_rows": 3.1100000000000000e+02, "model_cost": 6.7704700000000000e+06, @@ -4116,8 +4116,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2942069961590238e+05, - "cpu_time": 1.2930149093022522e+05, + "real_time": 8.3979599414396522e+04, + "cpu_time": 8.2214433143141883e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4136,8 +4136,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.1487528196218540e-02, - "cpu_time": 2.1566548918193516e-02, + "real_time": 1.4546976298591167e-02, + "cpu_time": 1.4296683103964947e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4154,9 +4154,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 124, - "real_time": 5.2439974111151854e+06, - "cpu_time": 5.1778422499999749e+06, + "iterations": 137, + "real_time": 5.0641394598536147e+06, + "cpu_time": 5.0045665474452516e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4173,9 +4173,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 124, - "real_time": 5.6031942902688654e+06, - "cpu_time": 5.5374248387096487e+06, + "iterations": 137, + "real_time": 5.1911513576663034e+06, + "cpu_time": 5.1264440948905954e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4192,9 +4192,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 124, - "real_time": 4.8732642742012804e+06, - "cpu_time": 4.8237611532258028e+06, + "iterations": 137, + "real_time": 5.1045589270140296e+06, + "cpu_time": 5.0391962408758793e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4213,8 +4213,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2401519918617764e+06, - "cpu_time": 5.1796760806451412e+06, + "real_time": 5.1199499148446489e+06, + "cpu_time": 5.0567356277372418e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4233,8 +4233,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2439974111151854e+06, - "cpu_time": 5.1778422499999749e+06, + "real_time": 5.1045589270140296e+06, + "cpu_time": 5.0391962408758802e+06, "time_unit": "ns", "lhs_rows": 2.5500000000000000e+02, "model_cost": 6.7626000000000000e+06, @@ -4253,8 +4253,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6498020155350870e+05, - "cpu_time": 3.5683537688369263e+05, + "real_time": 6.4889655772713224e+04, + "cpu_time": 6.2803317678504209e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4273,8 +4273,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.9650689926616924e-02, - "cpu_time": 6.8891446362269029e-02, + "real_time": 1.2673884872305851e-02, + "cpu_time": 1.2419735240659013e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -4291,9 +4291,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 88, - "real_time": 6.6996750227355566e+06, - "cpu_time": 6.6278876704545757e+06, + "iterations": 70, + "real_time": 7.2192994714506706e+06, + "cpu_time": 7.1536679142858312e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4309,9 +4309,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 88, - "real_time": 6.7314150001038797e+06, - "cpu_time": 6.6699185227272874e+06, + "iterations": 70, + "real_time": 6.9894773285860932e+06, + "cpu_time": 6.9234417000000039e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4327,9 +4327,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 88, - "real_time": 6.6051335339910686e+06, - "cpu_time": 6.5402310113637056e+06, + "iterations": 70, + "real_time": 6.7752621428683465e+06, + "cpu_time": 6.7208630428571124e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4347,8 +4347,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6787411856101677e+06, - "cpu_time": 6.6126790681818547e+06, + "real_time": 6.9946796476350361e+06, + "cpu_time": 6.9326575523809819e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4366,8 +4366,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6996750227355557e+06, - "cpu_time": 6.6278876704545738e+06, + "real_time": 6.9894773285860932e+06, + "cpu_time": 6.9234417000000039e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 1.2250000000000000e+05, @@ -4385,8 +4385,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5691866494259535e+04, - "cpu_time": 6.6167883737093784e+04, + "real_time": 2.2206437216772154e+05, + "cpu_time": 2.1654956276668992e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4404,8 +4404,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.8359652917524975e-03, - "cpu_time": 1.0006214282418900e-02, + "real_time": 3.1747611521108547e-02, + "cpu_time": 3.1236154552638649e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4421,9 +4421,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 71, - "real_time": 9.1414089158052765e+06, - "cpu_time": 9.0778479859156348e+06, + "iterations": 77, + "real_time": 8.8145816103837229e+06, + "cpu_time": 8.7519335194805134e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4439,9 +4439,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 71, - "real_time": 9.5297777180848513e+06, - "cpu_time": 9.4682228309860453e+06, + "iterations": 77, + "real_time": 8.9319949869864769e+06, + "cpu_time": 8.8616890259738490e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4457,9 +4457,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 71, - "real_time": 9.1745236053944789e+06, - "cpu_time": 9.1104914084506631e+06, + "iterations": 77, + "real_time": 8.8010108701347262e+06, + "cpu_time": 8.7357694545454625e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4477,8 +4477,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.2819034130948689e+06, - "cpu_time": 9.2188540751174483e+06, + "real_time": 8.8491958225016426e+06, + "cpu_time": 8.7831306666666064e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4496,8 +4496,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.1745236053944789e+06, - "cpu_time": 9.1104914084506612e+06, + "real_time": 8.8145816103837211e+06, + "cpu_time": 8.7519335194805134e+06, "time_unit": "ns", "model_cost": 1.2250000000000000e+07, "output_rows": 6.1440000000000000e+04, @@ -4515,8 +4515,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1530303985856450e+05, - "cpu_time": 2.1657557701938992e+05, + "real_time": 7.2026505380105955e+04, + "cpu_time": 6.8511904889518584e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4534,8 +4534,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3196000892965109e-02, - "cpu_time": 2.3492678727169328e-02, + "real_time": 8.1393277790234603e-03, + "cpu_time": 7.8003968618538576e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4551,9 +4551,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9, - "real_time": 7.4916742441322029e+07, - "cpu_time": 7.4404627555556610e+07, + "iterations": 10, + "real_time": 7.4892891000126839e+07, + "cpu_time": 7.4148114099999413e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4569,9 +4569,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9, - "real_time": 7.4807555223944485e+07, - "cpu_time": 7.4308514444445625e+07, + "iterations": 10, + "real_time": 7.3184035300073445e+07, + "cpu_time": 7.2626437299999222e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4587,9 +4587,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9, - "real_time": 7.4933875555871055e+07, - "cpu_time": 7.4452631444444239e+07, + "iterations": 10, + "real_time": 7.5988647299891457e+07, + "cpu_time": 7.5301902100000009e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4607,8 +4607,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4886057740379199e+07, - "cpu_time": 7.4388591148148820e+07, + "real_time": 7.4688524533363909e+07, + "cpu_time": 7.4025484499999538e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4626,8 +4626,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4916742441322029e+07, - "cpu_time": 7.4404627555556625e+07, + "real_time": 7.4892891000126824e+07, + "cpu_time": 7.4148114099999413e+07, "time_unit": "ns", "model_cost": 1.2249996000000000e+07, "output_rows": 5.5681800000000000e+05, @@ -4645,8 +4645,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8522767884455476e+04, - "cpu_time": 7.3384618244718906e+04, + "real_time": 1.4134307046807287e+06, + "cpu_time": 1.3419413132124788e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4664,8 +4664,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.1502704177612792e-04, - "cpu_time": 9.8650367095364866e-04, + "real_time": 1.8924335612619300e-02, + "cpu_time": 1.8128099022607369e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4681,9 +4681,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 33, - "real_time": 1.9720008696436487e+07, - "cpu_time": 1.9617149636363424e+07, + "iterations": 35, + "real_time": 2.0001183600002799e+07, + "cpu_time": 1.9830396628571276e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4699,9 +4699,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 33, - "real_time": 1.9966627757777601e+07, - "cpu_time": 1.9853228606060833e+07, + "iterations": 35, + "real_time": 2.0777739771438062e+07, + "cpu_time": 2.0568345514285672e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4717,9 +4717,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 33, - "real_time": 2.0603572455001995e+07, - "cpu_time": 2.0460722303030562e+07, + "iterations": 35, + "real_time": 2.0977178314309899e+07, + "cpu_time": 2.0757413742857367e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4737,8 +4737,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0096736303072028e+07, - "cpu_time": 1.9977033515151609e+07, + "real_time": 2.0585367228583585e+07, + "cpu_time": 2.0385385295238104e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4756,8 +4756,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9966627757777601e+07, - "cpu_time": 1.9853228606060836e+07, + "real_time": 2.0777739771438066e+07, + "cpu_time": 2.0568345514285672e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4775,8 +4775,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5592477891802212e+05, - "cpu_time": 4.3520047406147304e+05, + "real_time": 5.1565183702010143e+05, + "cpu_time": 4.8984284608480684e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4794,8 +4794,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.2686508497816560e-02, - "cpu_time": 2.1785039992619260e-02, + "real_time": 2.5049435907273914e-02, + "cpu_time": 2.4029118851103148e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4811,9 +4811,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 65, - "real_time": 1.0030503184624160e+07, - "cpu_time": 9.9599967538462281e+06, + "iterations": 63, + "real_time": 1.0619408396797510e+07, + "cpu_time": 1.0498691063491926e+07, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4829,9 +4829,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 65, - "real_time": 1.1071145184373913e+07, - "cpu_time": 1.0988163307692388e+07, + "iterations": 63, + "real_time": 9.9457307142507676e+06, + "cpu_time": 9.8654796349206120e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4847,9 +4847,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 65, - "real_time": 1.0051195876887783e+07, - "cpu_time": 9.9845561846153103e+06, + "iterations": 63, + "real_time": 9.7143659047668781e+06, + "cpu_time": 9.6142546190477908e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4867,8 +4867,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0384281415295286e+07, - "cpu_time": 1.0310905415384643e+07, + "real_time": 1.0093168338605052e+07, + "cpu_time": 9.9928084391534422e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4886,8 +4886,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0051195876887785e+07, - "cpu_time": 9.9845561846153121e+06, + "real_time": 9.9457307142507657e+06, + "cpu_time": 9.8654796349206120e+06, "time_unit": "ns", "model_cost": 1.2250200000000000e+07, "output_rows": 2.4020000000000000e+04, @@ -4905,8 +4905,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.9493144549011195e+05, - "cpu_time": 5.8665107255486690e+05, + "real_time": 4.7019024649781379e+05, + "cpu_time": 4.5575917363863421e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4924,8 +4924,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.7291537247230365e-02, - "cpu_time": 5.6896174382468828e-02, + "real_time": 4.6584999944903074e-02, + "cpu_time": 4.5608717150315420e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4941,9 +4941,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 92, - "real_time": 6.4340163586640982e+06, - "cpu_time": 6.3822910000000801e+06, + "iterations": 94, + "real_time": 7.1130791808521263e+06, + "cpu_time": 7.0478910851062862e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -4960,9 +4960,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 92, - "real_time": 6.4712804128446253e+06, - "cpu_time": 6.4161304130435195e+06, + "iterations": 94, + "real_time": 7.1419395319142193e+06, + "cpu_time": 7.0774271170211509e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -4979,9 +4979,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 92, - "real_time": 6.3415121305455538e+06, - "cpu_time": 6.2920037608695989e+06, + "iterations": 94, + "real_time": 7.2009828191438187e+06, + "cpu_time": 7.1336051063829949e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -5000,8 +5000,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4156029673514245e+06, - "cpu_time": 6.3634750579710649e+06, + "real_time": 7.1520005106367208e+06, + "cpu_time": 7.0863077695034770e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -5020,8 +5020,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4340163586640963e+06, - "cpu_time": 6.3822910000000810e+06, + "real_time": 7.1419395319142183e+06, + "cpu_time": 7.0774271170211509e+06, "time_unit": "ns", "lhs_rows": 3.1013000000000000e+04, "model_cost": 1.2250135000000000e+07, @@ -5040,8 +5040,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6814979663669103e+04, - "cpu_time": 6.4166862170521876e+04, + "real_time": 4.4807140902797313e+04, + "cpu_time": 4.3541622067070799e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5060,8 +5060,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0414450520658163e-02, - "cpu_time": 1.0083619655292695e-02, + "real_time": 6.2649801039804838e-03, + "cpu_time": 6.1444723378309704e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5078,9 +5078,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 72, - "real_time": 1.0015789916603051e+07, - "cpu_time": 9.9727666944444422e+06, + "iterations": 62, + "real_time": 1.1065283451605337e+07, + "cpu_time": 1.0986525161290308e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5097,9 +5097,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 72, - "real_time": 1.0123201319301087e+07, - "cpu_time": 1.0083855902777828e+07, + "iterations": 62, + "real_time": 1.0932178451595621e+07, + "cpu_time": 1.0886830306451466e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5116,9 +5116,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 72, - "real_time": 1.0134249097366894e+07, - "cpu_time": 1.0097309069444431e+07, + "iterations": 62, + "real_time": 1.0839656725781217e+07, + "cpu_time": 1.0791560499999864e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5137,8 +5137,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0091080111090343e+07, - "cpu_time": 1.0051310555555565e+07, + "real_time": 1.0945706209660726e+07, + "cpu_time": 1.0888305322580546e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5157,8 +5157,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0123201319301086e+07, - "cpu_time": 1.0083855902777826e+07, + "real_time": 1.0932178451595621e+07, + "cpu_time": 1.0886830306451466e+07, "time_unit": "ns", "lhs_rows": 4.1800000000000000e+02, "model_cost": 1.2230680000000000e+07, @@ -5177,8 +5177,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5436789266549720e+04, - "cpu_time": 6.8352765211266247e+04, + "real_time": 1.1342003804535972e+05, + "cpu_time": 9.7490699774232999e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5197,8 +5197,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.4846169633152647e-03, - "cpu_time": 6.8003833762241344e-03, + "real_time": 1.0362057584302302e-02, + "cpu_time": 8.9537073847528320e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5215,9 +5215,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 61, - "real_time": 1.0730578606570385e+07, - "cpu_time": 1.0601961098360822e+07, + "iterations": 72, + "real_time": 9.3709239027804062e+06, + "cpu_time": 9.2494039583333656e+06, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5234,9 +5234,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 61, - "real_time": 1.0846012426047876e+07, - "cpu_time": 1.0703855475409841e+07, + "iterations": 72, + "real_time": 9.5691700000012740e+06, + "cpu_time": 9.4526028194444999e+06, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5253,9 +5253,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 61, - "real_time": 1.0805561901909895e+07, - "cpu_time": 1.0678400049180320e+07, + "iterations": 72, + "real_time": 1.1897035638867237e+07, + "cpu_time": 1.1714046486111112e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5274,8 +5274,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0794050978176052e+07, - "cpu_time": 1.0661405540983660e+07, + "real_time": 1.0279043180549638e+07, + "cpu_time": 1.0138684421296323e+07, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5294,8 +5294,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0805561901909893e+07, - "cpu_time": 1.0678400049180320e+07, + "real_time": 9.5691700000012740e+06, + "cpu_time": 9.4526028194444999e+06, "time_unit": "ns", "lhs_rows": 3.4300000000000000e+02, "model_cost": 1.2235496000000000e+07, @@ -5314,8 +5314,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8571475085485035e+04, - "cpu_time": 5.3030425231166446e+04, + "real_time": 1.4047241989605229e+06, + "cpu_time": 1.3680813830808310e+06, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5334,8 +5334,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.4262737135397782e-03, - "cpu_time": 4.9740557215754945e-03, + "real_time": 1.3665904250879993e-01, + "cpu_time": 1.3493677544664215e-01, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -5352,9 +5352,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 40, - "real_time": 1.6767849800089607e+07, - "cpu_time": 1.6581281199999863e+07, + "iterations": 60, + "real_time": 1.2445488150054492e+07, + "cpu_time": 1.2357205483333427e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5370,9 +5370,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 40, - "real_time": 1.8629027724819027e+07, - "cpu_time": 1.8440807474999942e+07, + "iterations": 60, + "real_time": 1.2900366483336257e+07, + "cpu_time": 1.2805118766666604e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5388,9 +5388,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 40, - "real_time": 1.5824122725462075e+07, - "cpu_time": 1.5700634574999839e+07, + "iterations": 60, + "real_time": 1.4664686099968094e+07, + "cpu_time": 1.4513248916666536e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5408,8 +5408,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7073666750123564e+07, - "cpu_time": 1.6907574416666549e+07, + "real_time": 1.3336846911119616e+07, + "cpu_time": 1.3225191055555522e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5427,8 +5427,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6767849800089607e+07, - "cpu_time": 1.6581281199999863e+07, + "real_time": 1.2900366483336257e+07, + "cpu_time": 1.2805118766666604e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 2.6010000000000000e+05, @@ -5446,8 +5446,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4272407011609992e+06, - "cpu_time": 1.3989236319062321e+06, + "real_time": 1.1722185197750556e+06, + "cpu_time": 1.1377505735107160e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5465,8 +5465,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.3593098193196852e-02, - "cpu_time": 8.2739463238869507e-02, + "real_time": 8.7893227506249380e-02, + "cpu_time": 8.6029046289866615e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5482,9 +5482,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 36, - "real_time": 1.9344091444509104e+07, - "cpu_time": 1.9229511305555589e+07, + "iterations": 39, + "real_time": 1.8564079384631418e+07, + "cpu_time": 1.8476515435897529e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5500,9 +5500,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 36, - "real_time": 1.9265840666776057e+07, - "cpu_time": 1.9167215027777787e+07, + "iterations": 39, + "real_time": 1.8406469512858447e+07, + "cpu_time": 1.8304321282051262e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5518,9 +5518,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 36, - "real_time": 1.9092187249851927e+07, - "cpu_time": 1.8984599944444608e+07, + "iterations": 39, + "real_time": 1.8811837948678892e+07, + "cpu_time": 1.8689153512820322e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5538,8 +5538,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9234039787045699e+07, - "cpu_time": 1.9127108759259325e+07, + "real_time": 1.8594128948722918e+07, + "cpu_time": 1.8489996743589703e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5557,8 +5557,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9265840666776057e+07, - "cpu_time": 1.9167215027777787e+07, + "real_time": 1.8564079384631418e+07, + "cpu_time": 1.8476515435897529e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 1.3005200000000000e+05, @@ -5576,8 +5576,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2892789762177157e+05, - "cpu_time": 1.2728620617041340e+05, + "real_time": 2.0434804725356543e+05, + "cpu_time": 1.9276999430002703e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5595,8 +5595,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.7031106854944589e-03, - "cpu_time": 6.6547541383532340e-03, + "real_time": 1.0989923099764263e-02, + "cpu_time": 1.0425637006499660e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5612,9 +5612,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 5, - "real_time": 1.5620132120093331e+08, - "cpu_time": 1.5500595780000025e+08, + "iterations": 3, + "real_time": 1.8557444133330140e+08, + "cpu_time": 1.7944237166666710e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5630,9 +5630,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 5, - "real_time": 1.5661140320007688e+08, - "cpu_time": 1.5556184579999977e+08, + "iterations": 3, + "real_time": 1.7689592599951234e+08, + "cpu_time": 1.7443871366666979e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5648,9 +5648,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 5, - "real_time": 1.5834078739862889e+08, - "cpu_time": 1.5718693260000125e+08, + "iterations": 3, + "real_time": 1.9234867366564381e+08, + "cpu_time": 1.8960307399999955e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5668,8 +5668,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5705117059987968e+08, - "cpu_time": 1.5591824540000039e+08, + "real_time": 1.8493968033281913e+08, + "cpu_time": 1.8116138644444546e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5687,8 +5687,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5661140320007688e+08, - "cpu_time": 1.5556184579999980e+08, + "real_time": 1.8557444133330140e+08, + "cpu_time": 1.7944237166666710e+08, "time_unit": "ns", "model_cost": 2.6010006000000000e+07, "output_rows": 1.1822730000000000e+06, @@ -5706,8 +5706,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1355066830363863e+06, - "cpu_time": 1.1333262000553196e+06, + "real_time": 7.7459049667607406e+06, + "cpu_time": 7.7269473231313974e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5725,8 +5725,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.2301701330792639e-03, - "cpu_time": 7.2687208424378324e-03, + "real_time": 4.1883412758263336e-02, + "cpu_time": 4.2652286311028673e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5742,9 +5742,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 11, - "real_time": 6.2653688637179919e+07, - "cpu_time": 6.2212700909091204e+07, + "iterations": 8, + "real_time": 9.8504922500069365e+07, + "cpu_time": 9.7412332624999821e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5760,9 +5760,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 11, - "real_time": 6.1052309817486361e+07, - "cpu_time": 6.0624938090909235e+07, + "iterations": 8, + "real_time": 8.6036432750006497e+07, + "cpu_time": 8.5027458124999449e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5778,9 +5778,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 11, - "real_time": 5.8747167090504341e+07, - "cpu_time": 5.8356888909090996e+07, + "iterations": 8, + "real_time": 8.0885440124802694e+07, + "cpu_time": 7.9132876749998361e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5798,8 +5798,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0817721848390199e+07, - "cpu_time": 6.0398175969697140e+07, + "real_time": 8.8475598458292857e+07, + "cpu_time": 8.7190889166665882e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5817,8 +5817,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1052309817486353e+07, - "cpu_time": 6.0624938090909220e+07, + "real_time": 8.6036432750006497e+07, + "cpu_time": 8.5027458124999449e+07, "time_unit": "ns", "model_cost": 2.6010072000000000e+07, "output_rows": 1.3136400000000000e+05, @@ -5836,8 +5836,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9637976690826479e+06, - "cpu_time": 1.9378821789648274e+06, + "real_time": 9.0594528977993187e+06, + "cpu_time": 9.3297884314473588e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5855,8 +5855,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.2289891982111921e-02, - "cpu_time": 3.2085110979793462e-02, + "real_time": 1.0239493211306075e-01, + "cpu_time": 1.0700416661210344e-01, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5873,8 +5873,8 @@ "repetition_index": 0, "threads": 1, "iterations": 20, - "real_time": 3.8973592749971434e+07, - "cpu_time": 3.8685986850000374e+07, + "real_time": 3.1578403249841355e+07, + "cpu_time": 3.1374204650000341e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5891,8 +5891,8 @@ "repetition_index": 1, "threads": 1, "iterations": 20, - "real_time": 3.4202010498847812e+07, - "cpu_time": 3.3985413199999921e+07, + "real_time": 3.1751288499981456e+07, + "cpu_time": 3.1313289349999707e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5909,8 +5909,8 @@ "repetition_index": 2, "threads": 1, "iterations": 20, - "real_time": 3.3547285450913478e+07, - "cpu_time": 3.3338214049999945e+07, + "real_time": 3.0507513350130469e+07, + "cpu_time": 3.0061373449999709e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5928,8 +5928,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5574296233244240e+07, - "cpu_time": 3.5336538033333413e+07, + "real_time": 3.1279068366651092e+07, + "cpu_time": 3.0916289149999917e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5947,8 +5947,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4202010498847812e+07, - "cpu_time": 3.3985413199999921e+07, + "real_time": 3.1578403249841359e+07, + "cpu_time": 3.1313289349999707e+07, "time_unit": "ns", "model_cost": 2.6010000000000000e+07, "output_rows": 5.1000000000000000e+04, @@ -5966,8 +5966,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9620227596312016e+06, - "cpu_time": 2.9187021459107138e+06, + "real_time": 6.7375454363427730e+05, + "cpu_time": 7.4100493184850633e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5985,8 +5985,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.3263003720736625e-02, - "cpu_time": 8.2597286218515920e-02, + "real_time": 2.1540109051093621e-02, + "cpu_time": 2.3968107176553188e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -6002,9 +6002,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 43, - "real_time": 1.6169042418559277e+07, - "cpu_time": 1.6035586255813889e+07, + "iterations": 51, + "real_time": 1.5567576823563213e+07, + "cpu_time": 1.5447459196078412e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6021,9 +6021,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 43, - "real_time": 1.7688036069874976e+07, - "cpu_time": 1.7544754139534719e+07, + "iterations": 51, + "real_time": 1.3858204745095767e+07, + "cpu_time": 1.3798366549019760e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6040,9 +6040,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 43, - "real_time": 1.6172905348993966e+07, - "cpu_time": 1.6059888651162762e+07, + "iterations": 51, + "real_time": 1.3834395725508312e+07, + "cpu_time": 1.3780844490195885e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6061,8 +6061,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6676661279142739e+07, - "cpu_time": 1.6546743015503792e+07, + "real_time": 1.4420059098055765e+07, + "cpu_time": 1.4342223411764687e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6081,8 +6081,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6172905348993966e+07, - "cpu_time": 1.6059888651162764e+07, + "real_time": 1.3858204745095767e+07, + "cpu_time": 1.3798366549019760e+07, "time_unit": "ns", "lhs_rows": 6.5848000000000000e+04, "model_cost": 2.6009960000000000e+07, @@ -6101,8 +6101,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.7587839113336650e+05, - "cpu_time": 8.6438839902667922e+05, + "real_time": 9.9385080123668956e+05, + "cpu_time": 9.5720236096242710e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6121,8 +6121,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.2521207720925230e-02, - "cpu_time": 5.2239186782363979e-02, + "real_time": 6.8921409716738893e-02, + "cpu_time": 6.6740165278505556e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6140,8 +6140,8 @@ "repetition_index": 0, "threads": 1, "iterations": 34, - "real_time": 2.2066501999849122e+07, - "cpu_time": 2.1965138823529091e+07, + "real_time": 2.0726778235364370e+07, + "cpu_time": 2.0689765823529255e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6159,8 +6159,8 @@ "repetition_index": 1, "threads": 1, "iterations": 34, - "real_time": 2.1873878794448342e+07, - "cpu_time": 2.1796083499999952e+07, + "real_time": 2.0663114088272456e+07, + "cpu_time": 2.0627233588235203e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6178,8 +6178,8 @@ "repetition_index": 2, "threads": 1, "iterations": 34, - "real_time": 2.1685511941220336e+07, - "cpu_time": 2.1595912823529605e+07, + "real_time": 2.0601398117672514e+07, + "cpu_time": 2.0567957235294312e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6198,8 +6198,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1875297578505937e+07, - "cpu_time": 2.1785711715686217e+07, + "real_time": 2.0663763480436448e+07, + "cpu_time": 2.0628318882352922e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6218,8 +6218,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1873878794448342e+07, - "cpu_time": 2.1796083499999952e+07, + "real_time": 2.0663114088272456e+07, + "cpu_time": 2.0627233588235203e+07, "time_unit": "ns", "lhs_rows": 6.1000000000000000e+02, "model_cost": 2.6047000000000000e+07, @@ -6238,8 +6238,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9049899187319237e+05, - "cpu_time": 1.8483138316086572e+05, + "real_time": 6.2692581385378056e+04, + "cpu_time": 6.0911546028532845e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6258,8 +6258,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.7084068771878763e-03, - "cpu_time": 8.4840644902035873e-03, + "real_time": 3.0339382003057029e-03, + "cpu_time": 2.9528119269399767e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6276,9 +6276,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 29, - "real_time": 2.4021322448569320e+07, - "cpu_time": 2.3765103241379101e+07, + "iterations": 41, + "real_time": 1.6635666585299497e+07, + "cpu_time": 1.6552195024390273e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6295,9 +6295,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 29, - "real_time": 2.3866731138570748e+07, - "cpu_time": 2.3617933034482863e+07, + "iterations": 41, + "real_time": 1.6714775658595210e+07, + "cpu_time": 1.6627896902439220e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6314,9 +6314,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 29, - "real_time": 2.3685086138169121e+07, - "cpu_time": 2.3443975241379227e+07, + "iterations": 41, + "real_time": 1.6558810463388132e+07, + "cpu_time": 1.6473782512195306e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6335,8 +6335,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3857713241769727e+07, - "cpu_time": 2.3609003839080393e+07, + "real_time": 1.6636417569094280e+07, + "cpu_time": 1.6551291479674930e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6355,8 +6355,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3866731138570752e+07, - "cpu_time": 2.3617933034482863e+07, + "real_time": 1.6635666585299497e+07, + "cpu_time": 1.6552195024390271e+07, "time_unit": "ns", "lhs_rows": 5.0000000000000000e+02, "model_cost": 2.6000000000000000e+07, @@ -6375,8 +6375,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6829945322241614e+05, - "cpu_time": 1.6075010418015547e+05, + "real_time": 7.7985309587918309e+04, + "cpu_time": 7.7061168008186316e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6395,8 +6395,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.0542994425702105e-03, - "cpu_time": 6.8088473904207268e-03, + "real_time": 4.6876263633098981e-03, + "cpu_time": 4.6559006046638617e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, diff --git a/research/benchmark-results/operator-cost.json b/research/benchmark-results/operator-cost.json index 6cbf34b..f574feb 100644 --- a/research/benchmark-results/operator-cost.json +++ b/research/benchmark-results/operator-cost.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-09T23:47:09+03:00", + "date": "2026-06-14T20:45:51+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [1.61963,0.920898,0.974609], + "load_avg": [1.35254,1.46924,1.84277], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,9 +47,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 18250, - "real_time": 3.8845030684980935e+04, - "cpu_time": 3.8709108164383571e+04, + "iterations": 18183, + "real_time": 3.9952357201905637e+04, + "cpu_time": 3.9780922180058289e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -65,9 +65,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 18250, - "real_time": 3.9302844657843350e+04, - "cpu_time": 3.9168997315068496e+04, + "iterations": 18183, + "real_time": 3.9745107738011175e+04, + "cpu_time": 3.9613663476874004e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -83,9 +83,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 18250, - "real_time": 3.9311777588222430e+04, - "cpu_time": 3.9168773041095883e+04, + "iterations": 18183, + "real_time": 3.9485971126900746e+04, + "cpu_time": 3.9359944178628393e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -103,8 +103,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9153217643682234e+04, - "cpu_time": 3.9015626173515986e+04, + "real_time": 3.9727812022272519e+04, + "cpu_time": 3.9584843278520224e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -122,8 +122,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9302844657843343e+04, - "cpu_time": 3.9168773041095883e+04, + "real_time": 3.9745107738011175e+04, + "cpu_time": 3.9613663476873997e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -141,8 +141,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6693510530977704e+02, - "cpu_time": 2.6545240631176927e+02, + "real_time": 2.3367359516357740e+02, + "cpu_time": 2.1196361078531322e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -160,8 +160,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.8177054498827303e-03, - "cpu_time": 6.8037458922538020e-03, + "real_time": 5.8818641971164548e-03, + "cpu_time": 5.3546659082096262e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -177,9 +177,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9649, - "real_time": 7.1402024148586672e+04, - "cpu_time": 7.1145830448751149e+04, + "iterations": 9450, + "real_time": 7.0023080740597041e+04, + "cpu_time": 6.9646964021164022e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -195,9 +195,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9649, - "real_time": 7.4413162504712483e+04, - "cpu_time": 7.4079988496217149e+04, + "iterations": 9450, + "real_time": 6.7391017036960286e+04, + "cpu_time": 6.7122223174603205e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -213,9 +213,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9649, - "real_time": 7.1228492588142806e+04, - "cpu_time": 7.1011361902787845e+04, + "iterations": 9450, + "real_time": 6.7115533862431737e+04, + "cpu_time": 6.6909787513227493e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -233,8 +233,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.2347893080480644e+04, - "cpu_time": 7.2079060282585371e+04, + "real_time": 6.8176543879996345e+04, + "cpu_time": 6.7892991569664897e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -252,8 +252,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1402024148586672e+04, - "cpu_time": 7.1145830448751163e+04, + "real_time": 6.7391017036960300e+04, + "cpu_time": 6.7122223174603205e+04, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -271,8 +271,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7906791020775183e+03, - "cpu_time": 1.7341585090601286e+03, + "real_time": 1.6050690103636371e+03, + "cpu_time": 1.5226939114672762e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -290,8 +290,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.4750950246547554e-02, - "cpu_time": 2.4059116507087832e-02, + "real_time": 2.3542833341462174e-02, + "cpu_time": 2.2427851185565187e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -307,9 +307,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 4370, - "real_time": 1.6078171190391219e+05, - "cpu_time": 1.5910665194508014e+05, + "iterations": 4351, + "real_time": 1.5550668673872287e+05, + "cpu_time": 1.5401735738910592e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -325,9 +325,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 4370, - "real_time": 1.5755818626769868e+05, - "cpu_time": 1.5598532494279178e+05, + "iterations": 4351, + "real_time": 1.6562274557530464e+05, + "cpu_time": 1.6383219903470456e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -343,9 +343,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 4370, - "real_time": 1.5609967619557897e+05, - "cpu_time": 1.5458381922196803e+05, + "iterations": 4351, + "real_time": 1.6600103562343947e+05, + "cpu_time": 1.6446725580326372e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -363,8 +363,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5814652478906329e+05, - "cpu_time": 1.5655859870328000e+05, + "real_time": 1.6237682264582231e+05, + "cpu_time": 1.6077227074235803e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -382,8 +382,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5755818626769868e+05, - "cpu_time": 1.5598532494279181e+05, + "real_time": 1.6562274557530464e+05, + "cpu_time": 1.6383219903470456e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -401,8 +401,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3958237112342867e+03, - "cpu_time": 2.3152723519420706e+03, + "real_time": 5.9527179822873295e+03, + "cpu_time": 5.8585377938772517e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -420,8 +420,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.5149392087052497e-02, - "cpu_time": 1.4788535226545590e-02, + "real_time": 3.6659899395072214e-02, + "cpu_time": 3.6439976662802250e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -437,9 +437,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1960, - "real_time": 3.5702310612707929e+05, - "cpu_time": 3.5412047142857121e+05, + "iterations": 1899, + "real_time": 3.5926793259711046e+05, + "cpu_time": 3.5606712954186404e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -455,9 +455,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1960, - "real_time": 3.6373994132320932e+05, - "cpu_time": 3.6082918061224459e+05, + "iterations": 1899, + "real_time": 3.6069299736609607e+05, + "cpu_time": 3.5788115007898922e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -473,9 +473,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1960, - "real_time": 3.5611569438348245e+05, - "cpu_time": 3.5327081122448994e+05, + "iterations": 1899, + "real_time": 3.6195649341763486e+05, + "cpu_time": 3.5909368193786184e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -493,8 +493,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5895958061125694e+05, - "cpu_time": 3.5607348775510187e+05, + "real_time": 3.6063914112694707e+05, + "cpu_time": 3.5768065385290497e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -512,8 +512,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5702310612707929e+05, - "cpu_time": 3.5412047142857121e+05, + "real_time": 3.6069299736609607e+05, + "cpu_time": 3.5788115007898927e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -531,8 +531,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1647011201754240e+03, - "cpu_time": 4.1404035466580581e+03, + "real_time": 1.3450892878593183e+03, + "cpu_time": 1.5232051417843304e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -550,8 +550,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1602145046758558e-02, - "cpu_time": 1.1627946727406227e-02, + "real_time": 3.7297373869516824e-03, + "cpu_time": 4.2585617236395000e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -567,9 +567,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 826, - "real_time": 7.9650909079100087e+05, - "cpu_time": 7.8999985230024299e+05, + "iterations": 821, + "real_time": 8.2887772472626925e+05, + "cpu_time": 8.2099631912301993e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -585,9 +585,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 826, - "real_time": 7.9224021186698088e+05, - "cpu_time": 7.8613784987893619e+05, + "iterations": 821, + "real_time": 7.8550826065964322e+05, + "cpu_time": 7.7955554445797752e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -603,9 +603,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 826, - "real_time": 8.0226254599427094e+05, - "cpu_time": 7.9617707748184004e+05, + "iterations": 821, + "real_time": 7.6124248721138551e+05, + "cpu_time": 7.5523271254567569e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -623,8 +623,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9700394955075101e+05, - "cpu_time": 7.9077159322033974e+05, + "real_time": 7.9187615753243258e+05, + "cpu_time": 7.8526152537555760e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -642,8 +642,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9650909079100098e+05, - "cpu_time": 7.8999985230024299e+05, + "real_time": 7.8550826065964310e+05, + "cpu_time": 7.7955554445797752e+05, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -661,8 +661,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.0294591392965904e+03, - "cpu_time": 5.0639125931953331e+03, + "real_time": 3.4264324323715009e+04, + "cpu_time": 3.3251039851237554e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -680,8 +680,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.3104569834711074e-03, - "cpu_time": 6.4037613852225596e-03, + "real_time": 4.3269801720620255e-02, + "cpu_time": 4.2343905535592079e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -697,9 +697,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 336, - "real_time": 1.9899760088827903e+06, - "cpu_time": 1.9721588750000026e+06, + "iterations": 345, + "real_time": 1.8477772260877723e+06, + "cpu_time": 1.8285485449275328e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -715,9 +715,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 336, - "real_time": 1.9653108035223945e+06, - "cpu_time": 1.9469479255952383e+06, + "iterations": 345, + "real_time": 1.8813254608624224e+06, + "cpu_time": 1.8631300724637695e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -733,9 +733,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 336, - "real_time": 2.0173753214510810e+06, - "cpu_time": 1.9963626160714321e+06, + "iterations": 345, + "real_time": 1.8596911652201780e+06, + "cpu_time": 1.8389719797101459e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -753,8 +753,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9908873779520886e+06, - "cpu_time": 1.9718231388888909e+06, + "real_time": 1.8629312840567909e+06, + "cpu_time": 1.8435501990338161e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -772,8 +772,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9899760088827906e+06, - "cpu_time": 1.9721588750000026e+06, + "real_time": 1.8596911652201780e+06, + "cpu_time": 1.8389719797101461e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -791,8 +791,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6044221085922400e+04, - "cpu_time": 2.4709055986958661e+04, + "real_time": 1.7007198231345978e+04, + "cpu_time": 1.7739520309685988e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -810,8 +810,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3081714904794159e-02, - "cpu_time": 1.2531071118722164e-02, + "real_time": 9.1292676100808452e-03, + "cpu_time": 9.6224774996542389e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -827,9 +827,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 136, - "real_time": 4.8432163528238609e+06, - "cpu_time": 4.7967932647058927e+06, + "iterations": 134, + "real_time": 4.6026329029917913e+06, + "cpu_time": 4.5590463507462721e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -845,9 +845,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 136, - "real_time": 5.2586463675919846e+06, - "cpu_time": 5.2008186985294158e+06, + "iterations": 134, + "real_time": 4.6028150373148043e+06, + "cpu_time": 4.5582589179104539e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -863,9 +863,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 136, - "real_time": 4.7411703380930703e+06, - "cpu_time": 4.6977030514705861e+06, + "iterations": 134, + "real_time": 4.5782678208701350e+06, + "cpu_time": 4.5370564477611985e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -883,8 +883,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.9476776861696383e+06, - "cpu_time": 4.8984383382352991e+06, + "real_time": 4.5945719203922432e+06, + "cpu_time": 4.5514539054726409e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -902,8 +902,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.8432163528238619e+06, - "cpu_time": 4.7967932647058936e+06, + "real_time": 4.6026329029917913e+06, + "cpu_time": 4.5582589179104539e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -921,8 +921,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7409758827792853e+05, - "cpu_time": 2.6651478253270546e+05, + "real_time": 1.4120058043519828e+04, + "cpu_time": 1.2474778717056504e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -940,8 +940,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.5399240949773276e-02, - "cpu_time": 5.4408112163502206e-02, + "real_time": 3.0732042697710965e-03, + "cpu_time": 2.7408338030309189e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -957,9 +957,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 63, - "real_time": 1.0852161285814844e+07, - "cpu_time": 1.0741227460317455e+07, + "iterations": 66, + "real_time": 1.0166986939414831e+07, + "cpu_time": 1.0076584590909090e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -975,9 +975,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 63, - "real_time": 1.0996642793687653e+07, - "cpu_time": 1.0886871222222256e+07, + "iterations": 66, + "real_time": 1.0271312575710136e+07, + "cpu_time": 1.0181786378787894e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -993,9 +993,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 63, - "real_time": 1.0878575555536719e+07, - "cpu_time": 1.0770946809523810e+07, + "iterations": 66, + "real_time": 9.7216206969747115e+06, + "cpu_time": 9.6414619696969911e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -1013,8 +1013,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0909126545013070e+07, - "cpu_time": 1.0799681830687838e+07, + "real_time": 1.0053306737366559e+07, + "cpu_time": 9.9666109797979910e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -1032,8 +1032,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0878575555536717e+07, - "cpu_time": 1.0770946809523808e+07, + "real_time": 1.0166986939414831e+07, + "cpu_time": 1.0076584590909090e+07, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -1051,8 +1051,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.6933404629008161e+04, - "cpu_time": 7.6956496973491885e+04, + "real_time": 2.9194636774624448e+05, + "cpu_time": 2.8645813502233382e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1070,8 +1070,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.0522057207391201e-03, - "cpu_time": 7.1258114988921378e-03, + "real_time": 2.9039834889462369e-02, + "cpu_time": 2.8741779487829466e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1087,9 +1087,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 31, - "real_time": 2.3361223710385423e+07, - "cpu_time": 2.3114136483871005e+07, + "iterations": 34, + "real_time": 2.0544696499949653e+07, + "cpu_time": 2.0386411441176478e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1105,9 +1105,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 31, - "real_time": 2.2093402678071853e+07, - "cpu_time": 2.1902533483870938e+07, + "iterations": 34, + "real_time": 2.0518101764644276e+07, + "cpu_time": 2.0362821470588300e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1123,9 +1123,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 31, - "real_time": 2.2384762709524725e+07, - "cpu_time": 2.2194274451612886e+07, + "iterations": 34, + "real_time": 2.0957574529401269e+07, + "cpu_time": 2.0790742676470667e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1143,8 +1143,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2613129699327331e+07, - "cpu_time": 2.2403648139784943e+07, + "real_time": 2.0673457597998399e+07, + "cpu_time": 2.0513325196078483e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1162,8 +1162,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2384762709524725e+07, - "cpu_time": 2.2194274451612886e+07, + "real_time": 2.0544696499949653e+07, + "cpu_time": 2.0386411441176478e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -1181,8 +1181,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6404529515532206e+05, - "cpu_time": 6.3235548813659884e+05, + "real_time": 2.4641153183035008e+05, + "cpu_time": 2.4053994574412901e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1200,8 +1200,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9365475013176764e-02, - "cpu_time": 2.8225558810381718e-02, + "real_time": 1.1919222058636561e-02, + "cpu_time": 1.1726033855794031e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1217,9 +1217,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9645, - "real_time": 7.3610573354408436e+04, - "cpu_time": 7.3291684707102002e+04, + "iterations": 9603, + "real_time": 6.8690185462695677e+04, + "cpu_time": 6.8472288347391412e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1235,9 +1235,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9645, - "real_time": 7.4202260965681271e+04, - "cpu_time": 7.3951352825298120e+04, + "iterations": 9603, + "real_time": 7.0325538477518334e+04, + "cpu_time": 7.0109755597209398e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1253,9 +1253,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9645, - "real_time": 7.4259590149575626e+04, - "cpu_time": 7.4026318818040207e+04, + "iterations": 9603, + "real_time": 7.3417058002968915e+04, + "cpu_time": 7.3112707174841315e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1273,8 +1273,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4024141489888440e+04, - "cpu_time": 7.3756452116813423e+04, + "real_time": 7.0810927314394299e+04, + "cpu_time": 7.0564917039814041e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1292,8 +1292,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4202260965681271e+04, - "cpu_time": 7.3951352825298105e+04, + "real_time": 7.0325538477518334e+04, + "cpu_time": 7.0109755597209383e+04, "time_unit": "ns", "model_cost": 1.0240000000000000e+05, "output_rows": 5.1200000000000000e+02, @@ -1311,8 +1311,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5930573450076935e+02, - "cpu_time": 4.0424192492232237e+02, + "real_time": 2.4005275972631484e+03, + "cpu_time": 2.3534550511244838e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1330,8 +1330,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.8538993802427254e-03, - "cpu_time": 5.4807669474406821e-03, + "real_time": 3.3900524796194473e-02, + "cpu_time": 3.3351630666505580e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1347,9 +1347,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 4705, - "real_time": 1.4000763103052159e+05, - "cpu_time": 1.3945640531349686e+05, + "iterations": 5115, + "real_time": 1.3426594330379233e+05, + "cpu_time": 1.3370913372434006e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1365,9 +1365,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 4705, - "real_time": 1.3930782720651457e+05, - "cpu_time": 1.3868528990435688e+05, + "iterations": 5115, + "real_time": 1.3586024965754987e+05, + "cpu_time": 1.3514681153470199e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1383,9 +1383,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 4705, - "real_time": 1.3328246121179988e+05, - "cpu_time": 1.3284171179596151e+05, + "iterations": 5115, + "real_time": 1.3516407448679840e+05, + "cpu_time": 1.3457058123167208e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1403,8 +1403,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3753263981627868e+05, - "cpu_time": 1.3699446900460505e+05, + "real_time": 1.3509675581604688e+05, + "cpu_time": 1.3447550883023805e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1422,8 +1422,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3930782720651457e+05, - "cpu_time": 1.3868528990435688e+05, + "real_time": 1.3516407448679840e+05, + "cpu_time": 1.3457058123167208e+05, "time_unit": "ns", "model_cost": 2.0480000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -1441,8 +1441,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6973564847743728e+03, - "cpu_time": 3.6170013919012345e+03, + "real_time": 7.9928220296819643e+02, + "cpu_time": 7.2353883291625959e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1460,8 +1460,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6883483729487356e-02, - "cpu_time": 2.6402535943109127e-02, + "real_time": 5.9163685918300719e-03, + "cpu_time": 5.3804506055422727e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1477,9 +1477,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2692, - "real_time": 2.5931452748671529e+05, - "cpu_time": 2.5830611961367010e+05, + "iterations": 2665, + "real_time": 2.6182521350818727e+05, + "cpu_time": 2.6086632720450283e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1495,9 +1495,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2692, - "real_time": 2.6544695654128061e+05, - "cpu_time": 2.6433167161961424e+05, + "iterations": 2665, + "real_time": 2.6336371181894216e+05, + "cpu_time": 2.6220672307692328e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1513,9 +1513,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2692, - "real_time": 2.6003982577532434e+05, - "cpu_time": 2.5906983543833590e+05, + "iterations": 2665, + "real_time": 2.6097398686733170e+05, + "cpu_time": 2.5940393733583513e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1533,8 +1533,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6160043660110669e+05, - "cpu_time": 2.6056920889054006e+05, + "real_time": 2.6205430406482038e+05, + "cpu_time": 2.6082566253908709e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1552,8 +1552,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6003982577532428e+05, - "cpu_time": 2.5906983543833590e+05, + "real_time": 2.6182521350818730e+05, + "cpu_time": 2.6086632720450286e+05, "time_unit": "ns", "model_cost": 4.0960000000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -1571,8 +1571,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3508657298542607e+03, - "cpu_time": 3.2806873983889450e+03, + "real_time": 1.2112217792196116e+03, + "cpu_time": 1.4018352930624114e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1590,8 +1590,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2809098384509674e-02, - "cpu_time": 1.2590464592334453e-02, + "real_time": 4.6220258947550436e-03, + "cpu_time": 5.3746064686113239e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1607,9 +1607,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1361, - "real_time": 5.1609085009533918e+05, - "cpu_time": 5.1370937252020522e+05, + "iterations": 1339, + "real_time": 5.0586725392064487e+05, + "cpu_time": 5.0367560418222670e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1625,9 +1625,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1361, - "real_time": 5.1665417928283545e+05, - "cpu_time": 5.1415814695077279e+05, + "iterations": 1339, + "real_time": 5.2297352800632012e+05, + "cpu_time": 5.2033982001493528e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1643,9 +1643,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1361, - "real_time": 5.0875262967940397e+05, - "cpu_time": 5.0666673034533591e+05, + "iterations": 1339, + "real_time": 4.9771732935041009e+05, + "cpu_time": 4.9551648693054519e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1663,8 +1663,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.1383255301919294e+05, - "cpu_time": 5.1151141660543793e+05, + "real_time": 5.0885270375912497e+05, + "cpu_time": 5.0651063704256900e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1682,8 +1682,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.1609085009533918e+05, - "cpu_time": 5.1370937252020527e+05, + "real_time": 5.0586725392064481e+05, + "cpu_time": 5.0367560418222664e+05, "time_unit": "ns", "model_cost": 8.1920000000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -1701,8 +1701,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4083501218641932e+03, - "cpu_time": 4.2016173482983295e+03, + "real_time": 1.2890057241544024e+04, + "cpu_time": 1.2652174708094788e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1720,8 +1720,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.5793515727282683e-03, - "cpu_time": 8.2141223282594118e-03, + "real_time": 2.5331608039653404e-02, + "cpu_time": 2.4979089840972978e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1737,9 +1737,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 643, - "real_time": 1.0509333001796596e+06, - "cpu_time": 1.0455488926905136e+06, + "iterations": 679, + "real_time": 1.0050831708443469e+06, + "cpu_time": 1.0005117893961695e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1755,9 +1755,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 643, - "real_time": 1.1059197216185352e+06, - "cpu_time": 1.0995506827371665e+06, + "iterations": 679, + "real_time": 1.0103071664176423e+06, + "cpu_time": 1.0057585198821783e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1773,9 +1773,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 643, - "real_time": 1.0433007387623980e+06, - "cpu_time": 1.0389542597200627e+06, + "iterations": 679, + "real_time": 1.0162211723091761e+06, + "cpu_time": 1.0113145257731929e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1793,8 +1793,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0667179201868644e+06, - "cpu_time": 1.0613512783825810e+06, + "real_time": 1.0105371698570551e+06, + "cpu_time": 1.0058616116838468e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1812,8 +1812,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0509333001796596e+06, - "cpu_time": 1.0455488926905137e+06, + "real_time": 1.0103071664176424e+06, + "cpu_time": 1.0057585198821783e+06, "time_unit": "ns", "model_cost": 1.6384000000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -1831,8 +1831,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4163575999345208e+04, - "cpu_time": 3.3245573626993217e+04, + "real_time": 5.5725618295511194e+03, + "cpu_time": 5.4021060011550790e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1850,8 +1850,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.2026813605381767e-02, - "cpu_time": 3.1323817386508405e-02, + "real_time": 5.5144550797071451e-03, + "cpu_time": 5.3706254800914097e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1867,9 +1867,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 320, - "real_time": 2.1563060937296539e+06, - "cpu_time": 2.1456853000000110e+06, + "iterations": 321, + "real_time": 2.0942968909604754e+06, + "cpu_time": 2.0836751277258459e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1885,9 +1885,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 320, - "real_time": 2.1776743687951239e+06, - "cpu_time": 2.1667227874999861e+06, + "iterations": 321, + "real_time": 2.1086145015517753e+06, + "cpu_time": 2.0970285794392612e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1903,9 +1903,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 320, - "real_time": 2.2352051687448691e+06, - "cpu_time": 2.2217824937500018e+06, + "iterations": 321, + "real_time": 2.0808537071652352e+06, + "cpu_time": 2.0711384267912786e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1923,8 +1923,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1897285437565488e+06, - "cpu_time": 2.1780635270833327e+06, + "real_time": 2.0945883665591618e+06, + "cpu_time": 2.0839473779854618e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1942,8 +1942,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1776743687951239e+06, - "cpu_time": 2.1667227874999861e+06, + "real_time": 2.0942968909604752e+06, + "cpu_time": 2.0836751277258454e+06, "time_unit": "ns", "model_cost": 3.2768000000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -1961,8 +1961,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0807393448547460e+04, - "cpu_time": 3.9295737744425845e+04, + "real_time": 1.3882692273514394e+04, + "cpu_time": 1.2947223300257732e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1980,8 +1980,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8635822949332834e-02, - "cpu_time": 1.8041593946089892e-02, + "real_time": 6.6278856958992263e-03, + "cpu_time": 6.2128360039367826e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -1997,9 +1997,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 139, - "real_time": 4.5444325325347269e+06, - "cpu_time": 4.5175419712230181e+06, + "iterations": 158, + "real_time": 4.3984668860687204e+06, + "cpu_time": 4.3722477658227980e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2015,9 +2015,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 139, - "real_time": 4.6125408992750850e+06, - "cpu_time": 4.5875623956834106e+06, + "iterations": 158, + "real_time": 4.4091168734275578e+06, + "cpu_time": 4.3848112658228232e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2033,9 +2033,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 139, - "real_time": 4.6494261149347182e+06, - "cpu_time": 4.6240235035970937e+06, + "iterations": 158, + "real_time": 4.3909908037929637e+06, + "cpu_time": 4.3653056582278619e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2053,8 +2053,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.6021331822481761e+06, - "cpu_time": 4.5763759568345072e+06, + "real_time": 4.3995248544297470e+06, + "cpu_time": 4.3741215632911613e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2072,8 +2072,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.6125408992750859e+06, - "cpu_time": 4.5875623956834106e+06, + "real_time": 4.3984668860687213e+06, + "cpu_time": 4.3722477658227989e+06, "time_unit": "ns", "model_cost": 6.5536000000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -2091,8 +2091,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3264937027895743e+04, - "cpu_time": 5.4114984013475019e+04, + "real_time": 9.1092300934433351e+03, + "cpu_time": 9.8868862454544724e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2110,8 +2110,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1573966879827547e-02, - "cpu_time": 1.1824855414830584e-02, + "real_time": 2.0705031554195063e-03, + "cpu_time": 2.2603135515089382e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2127,9 +2127,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 73, - "real_time": 9.5998669040791243e+06, - "cpu_time": 9.5496207534246780e+06, + "iterations": 76, + "real_time": 9.0810142236908805e+06, + "cpu_time": 9.0268509736842681e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2145,9 +2145,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 73, - "real_time": 1.0333870123347830e+07, - "cpu_time": 1.0266777383561656e+07, + "iterations": 76, + "real_time": 9.2972678421095852e+06, + "cpu_time": 9.2514884342104495e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2163,9 +2163,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 73, - "real_time": 9.9616823973108642e+06, - "cpu_time": 9.8989278356164433e+06, + "iterations": 76, + "real_time": 8.8838116315807719e+06, + "cpu_time": 8.8443053289473802e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2183,8 +2183,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.9651398082459364e+06, - "cpu_time": 9.9051086575342584e+06, + "real_time": 9.0873645657937434e+06, + "cpu_time": 9.0408815789473653e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2202,8 +2202,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.9616823973108642e+06, - "cpu_time": 9.8989278356164414e+06, + "real_time": 9.0810142236908786e+06, + "cpu_time": 9.0268509736842681e+06, "time_unit": "ns", "model_cost": 1.3107200000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -2221,8 +2221,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6701382363888324e+05, - "cpu_time": 3.5861826495179691e+05, + "real_time": 2.0680124428986004e+05, + "cpu_time": 2.0395382741191427e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2240,8 +2240,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6829771654100354e-02, - "cpu_time": 3.6205384246745867e-02, + "real_time": 2.2757009779082942e-02, + "cpu_time": 2.2559064138926679e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2257,9 +2257,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 34, - "real_time": 2.1230587470413677e+07, - "cpu_time": 2.1076212029411782e+07, + "iterations": 38, + "real_time": 1.8975293473646928e+07, + "cpu_time": 1.8872990342105303e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2275,9 +2275,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 34, - "real_time": 2.0398640734663997e+07, - "cpu_time": 2.0281736617647123e+07, + "iterations": 38, + "real_time": 1.8865303684211347e+07, + "cpu_time": 1.8754480631579034e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2293,9 +2293,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 34, - "real_time": 2.0609233647358932e+07, - "cpu_time": 2.0480860647058982e+07, + "iterations": 38, + "real_time": 1.9274510078934040e+07, + "cpu_time": 1.9165611342105132e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2313,8 +2313,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0746153950812202e+07, - "cpu_time": 2.0612936431372628e+07, + "real_time": 1.9038369078930769e+07, + "cpu_time": 1.8931027438596491e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2332,8 +2332,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.0609233647358935e+07, - "cpu_time": 2.0480860647058982e+07, + "real_time": 1.8975293473646928e+07, + "cpu_time": 1.8872990342105303e+07, "time_unit": "ns", "model_cost": 2.6214400000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -2351,8 +2351,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3254389361598721e+05, - "cpu_time": 4.1337731502374797e+05, + "real_time": 2.1176960914370150e+05, + "cpu_time": 2.1162075444352781e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2370,8 +2370,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.0849353313463350e-02, - "cpu_time": 2.0054266232276977e-02, + "real_time": 1.1123306217340907e-02, + "cpu_time": 1.1178513957043685e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2387,9 +2387,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 6697, - "real_time": 1.0247587292596011e+05, - "cpu_time": 1.0206261027325744e+05, + "iterations": 7156, + "real_time": 9.8666793180478402e+04, + "cpu_time": 9.8323235885970571e+04, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2405,9 +2405,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 6697, - "real_time": 1.0355064402201168e+05, - "cpu_time": 1.0314150739136907e+05, + "iterations": 7156, + "real_time": 9.7837508943523499e+04, + "cpu_time": 9.7484671883733739e+04, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2423,9 +2423,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 6697, - "real_time": 1.0147738704155132e+05, - "cpu_time": 1.0110561370763021e+05, + "iterations": 7156, + "real_time": 9.8023990357427319e+04, + "cpu_time": 9.7688416992733124e+04, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2443,8 +2443,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0250130132984104e+05, - "cpu_time": 1.0210324379075221e+05, + "real_time": 9.8176097493809764e+04, + "cpu_time": 9.7832108254145787e+04, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2462,8 +2462,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0247587292596011e+05, - "cpu_time": 1.0206261027325742e+05, + "real_time": 9.8023990357427334e+04, + "cpu_time": 9.7688416992733139e+04, "time_unit": "ns", "model_cost": 2.2528000000000000e+04, "output_rows": 1.0240000000000000e+03, @@ -2481,8 +2481,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0368623725206230e+03, - "cpu_time": 1.0185549003036546e+03, + "real_time": 4.3506381384660466e+02, + "cpu_time": 4.3735886914609813e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2500,8 +2500,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0115602036934949e-02, - "cpu_time": 9.9757349765601470e-03, + "real_time": 4.4314637162475978e-03, + "cpu_time": 4.4705043870662394e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2517,9 +2517,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 3538, - "real_time": 1.9173549886558883e+05, - "cpu_time": 1.9090579847371348e+05, + "iterations": 3730, + "real_time": 1.8324566300343236e+05, + "cpu_time": 1.8256576621983893e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2535,9 +2535,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 3538, - "real_time": 1.9910325748788548e+05, - "cpu_time": 1.9816358846806077e+05, + "iterations": 3730, + "real_time": 1.8439168391404231e+05, + "cpu_time": 1.8382601554959849e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2553,9 +2553,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 3538, - "real_time": 1.8616733154076125e+05, - "cpu_time": 1.8540704946297270e+05, + "iterations": 3730, + "real_time": 1.8079054289509606e+05, + "cpu_time": 1.8023151447721187e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2573,8 +2573,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9233536263141184e+05, - "cpu_time": 1.9149214546824899e+05, + "real_time": 1.8280929660419023e+05, + "cpu_time": 1.8220776541554971e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2592,8 +2592,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9173549886558883e+05, - "cpu_time": 1.9090579847371348e+05, + "real_time": 1.8324566300343233e+05, + "cpu_time": 1.8256576621983890e+05, "time_unit": "ns", "model_cost": 4.5056000000000000e+04, "output_rows": 2.0480000000000000e+03, @@ -2611,8 +2611,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4887920625138040e+03, - "cpu_time": 6.3984509020220057e+03, + "real_time": 1.8398005015174278e+03, + "cpu_time": 1.8237962939309716e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2630,8 +2630,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.3736864473273245e-02, - "cpu_time": 3.3413646739275389e-02, + "real_time": 1.0064042341899462e-02, + "cpu_time": 1.0009432308066314e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2647,9 +2647,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1935, - "real_time": 3.5661912298501405e+05, - "cpu_time": 3.5545364754521998e+05, + "iterations": 1957, + "real_time": 3.5603891773163405e+05, + "cpu_time": 3.5477958610117622e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2665,9 +2665,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1935, - "real_time": 3.6000791936811997e+05, - "cpu_time": 3.5895315400516801e+05, + "iterations": 1957, + "real_time": 3.5593747572827508e+05, + "cpu_time": 3.5454490802248259e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2683,9 +2683,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1935, - "real_time": 3.5774011368856067e+05, - "cpu_time": 3.5647612144702632e+05, + "iterations": 1957, + "real_time": 3.5629890189032536e+05, + "cpu_time": 3.5491928615227150e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2703,8 +2703,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5812238534723152e+05, - "cpu_time": 3.5696097433247144e+05, + "real_time": 3.5609176511674485e+05, + "cpu_time": 3.5474792675864347e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2722,8 +2722,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5774011368856067e+05, - "cpu_time": 3.5647612144702632e+05, + "real_time": 3.5603891773163411e+05, + "cpu_time": 3.5477958610117628e+05, "time_unit": "ns", "model_cost": 9.0112000000000000e+04, "output_rows": 4.0960000000000000e+03, @@ -2741,8 +2741,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7264367776721201e+03, - "cpu_time": 1.7994299392292014e+03, + "real_time": 1.8641848696415431e+02, + "cpu_time": 1.8918636712796342e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2760,8 +2760,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.8208010677639876e-03, - "cpu_time": 5.0409710545927140e-03, + "real_time": 5.2351249095310289e-04, + "cpu_time": 5.3329802053128943e-04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2777,9 +2777,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 940, - "real_time": 7.3347029575280484e+05, - "cpu_time": 7.3025823936169536e+05, + "iterations": 980, + "real_time": 7.0419572448929329e+05, + "cpu_time": 7.0125159489795496e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2795,9 +2795,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 940, - "real_time": 7.3056114999146422e+05, - "cpu_time": 7.2706177978723927e+05, + "iterations": 980, + "real_time": 7.1417365816531098e+05, + "cpu_time": 7.1118539693877380e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2813,9 +2813,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 940, - "real_time": 7.2841075638512231e+05, - "cpu_time": 7.2475577765956847e+05, + "iterations": 980, + "real_time": 7.1909350918591663e+05, + "cpu_time": 7.1576403673469892e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2833,8 +2833,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.3081406737646367e+05, - "cpu_time": 7.2735859893616766e+05, + "real_time": 7.1248763061350689e+05, + "cpu_time": 7.0940034285714244e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2852,8 +2852,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.3056114999146422e+05, - "cpu_time": 7.2706177978723915e+05, + "real_time": 7.1417365816531098e+05, + "cpu_time": 7.1118539693877380e+05, "time_unit": "ns", "model_cost": 1.8022400000000000e+05, "output_rows": 8.1920000000000000e+03, @@ -2871,8 +2871,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.5392341475704084e+03, - "cpu_time": 2.7632132384614292e+03, + "real_time": 7.5906530612250826e+03, + "cpu_time": 7.4190670284128673e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2890,8 +2890,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.4745282841721421e-03, - "cpu_time": 3.7989696451006367e-03, + "real_time": 1.0653733110691260e-02, + "cpu_time": 1.0458223065599650e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -2907,9 +2907,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 474, - "real_time": 1.4672877890463597e+06, - "cpu_time": 1.4599121729957813e+06, + "iterations": 369, + "real_time": 1.5983485501314146e+06, + "cpu_time": 1.5684159539295367e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2925,9 +2925,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 474, - "real_time": 1.5985105295502483e+06, - "cpu_time": 1.5892844915611921e+06, + "iterations": 369, + "real_time": 1.5161208970149471e+06, + "cpu_time": 1.5049820189701822e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2943,9 +2943,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 474, - "real_time": 1.5142343480671453e+06, - "cpu_time": 1.5059669177215211e+06, + "iterations": 369, + "real_time": 1.4712186260095250e+06, + "cpu_time": 1.4641545392953865e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2963,8 +2963,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5266775555545839e+06, - "cpu_time": 1.5183878607594979e+06, + "real_time": 1.5285626910519621e+06, + "cpu_time": 1.5125175040650351e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -2982,8 +2982,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5142343480671456e+06, - "cpu_time": 1.5059669177215211e+06, + "real_time": 1.5161208970149474e+06, + "cpu_time": 1.5049820189701824e+06, "time_unit": "ns", "model_cost": 3.6044800000000000e+05, "output_rows": 1.6384000000000000e+04, @@ -3001,8 +3001,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6490427625113240e+04, - "cpu_time": 6.5574454417946850e+04, + "real_time": 6.4471723111402913e+04, + "cpu_time": 5.2537589372649505e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3020,8 +3020,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.3552371214994230e-02, - "cpu_time": 4.3186893225783889e-02, + "real_time": 4.2178003878292514e-02, + "cpu_time": 3.4735194291272468e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3037,9 +3037,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 223, - "real_time": 3.0730027353574811e+06, - "cpu_time": 3.0568931121076373e+06, + "iterations": 235, + "real_time": 2.9960241957482179e+06, + "cpu_time": 2.9818136382978819e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3055,9 +3055,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 223, - "real_time": 3.1441380807528519e+06, - "cpu_time": 3.1264916681614448e+06, + "iterations": 235, + "real_time": 3.0641198255173722e+06, + "cpu_time": 3.0462217361701960e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3073,9 +3073,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 223, - "real_time": 3.1486676008526166e+06, - "cpu_time": 3.1306725739910351e+06, + "iterations": 235, + "real_time": 3.1016805148999295e+06, + "cpu_time": 3.0833265872340365e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3093,8 +3093,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1219361389876497e+06, - "cpu_time": 3.1046857847533724e+06, + "real_time": 3.0539415120551731e+06, + "cpu_time": 3.0371206539007048e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3112,8 +3112,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1441380807528519e+06, - "cpu_time": 3.1264916681614448e+06, + "real_time": 3.0641198255173718e+06, + "cpu_time": 3.0462217361701964e+06, "time_unit": "ns", "model_cost": 7.2089600000000000e+05, "output_rows": 3.2768000000000000e+04, @@ -3131,8 +3131,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.2438044620468012e+04, - "cpu_time": 4.1442425874449516e+04, + "real_time": 5.3558500659321289e+04, + "cpu_time": 5.1364793139702873e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3150,8 +3150,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3593501830639430e-02, - "cpu_time": 1.3348347867589955e-02, + "real_time": 1.7537500455691014e-02, + "cpu_time": 1.6912332104334696e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3167,9 +3167,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 101, - "real_time": 6.5313850694893869e+06, - "cpu_time": 6.4869403762375955e+06, + "iterations": 106, + "real_time": 6.3347297264216365e+06, + "cpu_time": 6.2942219433962200e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3185,9 +3185,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 101, - "real_time": 6.6087494159375532e+06, - "cpu_time": 6.5550811881187987e+06, + "iterations": 106, + "real_time": 6.3714250000147047e+06, + "cpu_time": 6.3321674433962852e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3203,9 +3203,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 101, - "real_time": 6.6456573071317878e+06, - "cpu_time": 6.5922161386138378e+06, + "iterations": 106, + "real_time": 6.2802631320733307e+06, + "cpu_time": 6.2449743396226317e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3223,8 +3223,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5952639308529077e+06, - "cpu_time": 6.5447459009900764e+06, + "real_time": 6.3288059528365554e+06, + "cpu_time": 6.2904545754717113e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3242,8 +3242,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6087494159375532e+06, - "cpu_time": 6.5550811881187977e+06, + "real_time": 6.3347297264216356e+06, + "cpu_time": 6.2942219433962209e+06, "time_unit": "ns", "model_cost": 1.4417920000000000e+06, "output_rows": 6.5536000000000000e+04, @@ -3261,8 +3261,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8317491415000732e+04, - "cpu_time": 5.3393446751510688e+04, + "real_time": 4.5868724222071141e+04, + "cpu_time": 4.3718464431275053e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3280,8 +3280,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.8423286810690293e-03, - "cpu_time": 8.1582153928135594e-03, + "real_time": 7.2476110918700048e-03, + "cpu_time": 6.9499690215943828e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3297,9 +3297,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 49, - "real_time": 1.3952794611900665e+07, - "cpu_time": 1.3845379979591839e+07, + "iterations": 51, + "real_time": 1.3400773176459447e+07, + "cpu_time": 1.3305886568627372e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3315,9 +3315,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 49, - "real_time": 1.4854621898254609e+07, - "cpu_time": 1.4734450653061284e+07, + "iterations": 51, + "real_time": 1.3479431196031453e+07, + "cpu_time": 1.3354870313725533e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3333,9 +3333,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 49, - "real_time": 1.4192063694021532e+07, - "cpu_time": 1.4077397938775642e+07, + "iterations": 51, + "real_time": 1.2959331568637544e+07, + "cpu_time": 1.2850603274509743e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3353,8 +3353,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4333160068058932e+07, - "cpu_time": 1.4219076190476254e+07, + "real_time": 1.3279845313709481e+07, + "cpu_time": 1.3170453385620883e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3372,8 +3372,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4192063694021530e+07, - "cpu_time": 1.4077397938775642e+07, + "real_time": 1.3400773176459445e+07, + "cpu_time": 1.3305886568627371e+07, "time_unit": "ns", "model_cost": 2.8835840000000000e+06, "output_rows": 1.3107200000000000e+05, @@ -3391,8 +3391,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.6717689762875438e+05, - "cpu_time": 4.6115746861519286e+05, + "real_time": 2.8034544154620782e+05, + "cpu_time": 2.7807898519011628e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3410,8 +3410,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.2594131050684746e-02, - "cpu_time": 3.2432308712437304e-02, + "real_time": 2.1110595411589057e-02, + "cpu_time": 2.1113850605455609e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3427,9 +3427,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 21, - "real_time": 3.3431509046793159e+07, - "cpu_time": 3.3156272809523758e+07, + "iterations": 22, + "real_time": 3.1345011454587534e+07, + "cpu_time": 3.1017350727272812e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3445,9 +3445,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 21, - "real_time": 3.3354849809603322e+07, - "cpu_time": 3.3124116047618810e+07, + "iterations": 22, + "real_time": 3.1134449136350833e+07, + "cpu_time": 3.0907373090909053e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3463,9 +3463,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 21, - "real_time": 3.3318172523563374e+07, - "cpu_time": 3.3105869666666791e+07, + "iterations": 22, + "real_time": 3.3140141681790486e+07, + "cpu_time": 3.2887491727272466e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3483,8 +3483,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3368177126653280e+07, - "cpu_time": 3.3128752841269780e+07, + "real_time": 3.1873200757576283e+07, + "cpu_time": 3.1604071848484769e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3502,8 +3502,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3354849809603319e+07, - "cpu_time": 3.3124116047618806e+07, + "real_time": 3.1345011454587534e+07, + "cpu_time": 3.1017350727272809e+07, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 2.6214400000000000e+05, @@ -3521,8 +3521,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.7831694680363413e+04, - "cpu_time": 2.5519484598581927e+04, + "real_time": 1.1022425329989677e+06, + "cpu_time": 1.1128336394430066e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3540,8 +3540,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7331391661239287e-03, - "cpu_time": 7.7031226381668388e-04, + "real_time": 3.4582109948181589e-02, + "cpu_time": 3.5211717172968025e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3557,9 +3557,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 5865, - "real_time": 1.2021289548049826e+05, - "cpu_time": 1.1974597135549874e+05, + "iterations": 5641, + "real_time": 1.2108951356129415e+05, + "cpu_time": 1.2058807924126850e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3575,9 +3575,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 5865, - "real_time": 1.1911438107141195e+05, - "cpu_time": 1.1872463614663183e+05, + "iterations": 5641, + "real_time": 1.2039773586234968e+05, + "cpu_time": 1.1997666158482579e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3593,9 +3593,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 5865, - "real_time": 1.1790412719713211e+05, - "cpu_time": 1.1742106581415146e+05, + "iterations": 5641, + "real_time": 1.2066585374989979e+05, + "cpu_time": 1.1989094788158065e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3613,8 +3613,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1907713458301408e+05, - "cpu_time": 1.1863055777209399e+05, + "real_time": 1.2071770105784787e+05, + "cpu_time": 1.2015189623589163e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3632,8 +3632,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1911438107141195e+05, - "cpu_time": 1.1872463614663183e+05, + "real_time": 1.2066585374989978e+05, + "cpu_time": 1.1997666158482579e+05, "time_unit": "ns", "model_cost": 1.2390400000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -3651,8 +3651,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1548347164198301e+03, - "cpu_time": 1.1653044664218460e+03, + "real_time": 3.4879106022315710e+02, + "cpu_time": 3.8016893662041053e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3670,8 +3670,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.6982071366080967e-03, - "cpu_time": 9.8229704749476093e-03, + "real_time": 2.8893116516194800e-03, + "cpu_time": 3.1640693865873999e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3687,9 +3687,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2528, - "real_time": 2.8028744342423760e+05, - "cpu_time": 2.7898451700949541e+05, + "iterations": 2430, + "real_time": 2.7988660987658205e+05, + "cpu_time": 2.7869887119341525e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3705,9 +3705,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2528, - "real_time": 2.7554704232713871e+05, - "cpu_time": 2.7442686550632969e+05, + "iterations": 2430, + "real_time": 2.7806842551432998e+05, + "cpu_time": 2.7725973539094441e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3723,9 +3723,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2528, - "real_time": 2.7304122824394261e+05, - "cpu_time": 2.7199893710443040e+05, + "iterations": 2430, + "real_time": 2.8030595761418890e+05, + "cpu_time": 2.7880494156378834e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3743,8 +3743,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7629190466510627e+05, - "cpu_time": 2.7513677320675185e+05, + "real_time": 2.7942033100170025e+05, + "cpu_time": 2.7825451604938268e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3762,8 +3762,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.7554704232713871e+05, - "cpu_time": 2.7442686550632969e+05, + "real_time": 2.7988660987658199e+05, + "cpu_time": 2.7869887119341525e+05, "time_unit": "ns", "model_cost": 2.7033600000000000e+05, "output_rows": 2.0480000000000000e+03, @@ -3781,8 +3781,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6800847186847791e+03, - "cpu_time": 3.5464853531104641e+03, + "real_time": 1.1894113949218515e+03, + "cpu_time": 8.6313622891507202e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3800,8 +3800,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.3319553184684921e-02, - "cpu_time": 1.2889899491717358e-02, + "real_time": 4.2567102782317366e-03, + "cpu_time": 3.1019666497052959e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3817,9 +3817,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1078, - "real_time": 6.1954984601551632e+05, - "cpu_time": 6.1700765120593796e+05, + "iterations": 1107, + "real_time": 6.2356169738173392e+05, + "cpu_time": 6.2107064498644660e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3835,9 +3835,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1078, - "real_time": 6.4335297401679121e+05, - "cpu_time": 6.4031718089053920e+05, + "iterations": 1107, + "real_time": 6.2127104155452061e+05, + "cpu_time": 6.1878930352304166e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3853,9 +3853,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1078, - "real_time": 6.0898216974429949e+05, - "cpu_time": 6.0668400278294017e+05, + "iterations": 1107, + "real_time": 6.1642583739809087e+05, + "cpu_time": 6.1392024028907670e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3873,8 +3873,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2396166325886897e+05, - "cpu_time": 6.2133627829313907e+05, + "real_time": 6.2041952544478176e+05, + "cpu_time": 6.1792672959952161e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3892,8 +3892,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1954984601551632e+05, - "cpu_time": 6.1700765120593796e+05, + "real_time": 6.2127104155452061e+05, + "cpu_time": 6.1878930352304166e+05, "time_unit": "ns", "model_cost": 5.8572800000000000e+05, "output_rows": 4.0960000000000000e+03, @@ -3911,8 +3911,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7605003411703383e+04, - "cpu_time": 1.7229347832970187e+04, + "real_time": 3.6433410752253890e+03, + "cpu_time": 3.6524097749773009e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3930,8 +3930,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.8214879933095228e-02, - "cpu_time": 2.7729505639523571e-02, + "real_time": 5.8723830018300284e-03, + "cpu_time": 5.9107489610368989e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -3947,9 +3947,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 486, - "real_time": 1.3865247675301048e+06, - "cpu_time": 1.3793727798353981e+06, + "iterations": 489, + "real_time": 1.3808442924355236e+06, + "cpu_time": 1.3746132965235079e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -3965,9 +3965,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 486, - "real_time": 1.3822861172813624e+06, - "cpu_time": 1.3755845164608986e+06, + "iterations": 489, + "real_time": 1.3835909897729955e+06, + "cpu_time": 1.3779464539877325e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -3983,9 +3983,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 486, - "real_time": 1.3951749382531003e+06, - "cpu_time": 1.3878457427983482e+06, + "iterations": 489, + "real_time": 1.4144051472385863e+06, + "cpu_time": 1.4078482556237341e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -4003,8 +4003,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3879952743548555e+06, - "cpu_time": 1.3809343463648816e+06, + "real_time": 1.3929468098157020e+06, + "cpu_time": 1.3868026687116581e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -4022,8 +4022,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3865247675301046e+06, - "cpu_time": 1.3793727798353978e+06, + "real_time": 1.3835909897729957e+06, + "cpu_time": 1.3779464539877325e+06, "time_unit": "ns", "model_cost": 1.2615680000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -4041,8 +4041,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5690348797831539e+03, - "cpu_time": 6.2780001070338121e+03, + "real_time": 1.8634142595817015e+04, + "cpu_time": 1.8302049913216953e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4060,8 +4060,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.7327501765713591e-03, - "cpu_time": 4.5461973797376962e-03, + "real_time": 1.3377497593237220e-02, + "cpu_time": 1.3197299317443331e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4077,9 +4077,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 223, - "real_time": 3.1400983946945001e+06, - "cpu_time": 3.1244889417040586e+06, + "iterations": 220, + "real_time": 3.2022223227282995e+06, + "cpu_time": 3.1863563272727388e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4095,9 +4095,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 223, - "real_time": 3.1220474663595650e+06, - "cpu_time": 3.1057233139013238e+06, + "iterations": 220, + "real_time": 3.3020563000139766e+06, + "cpu_time": 3.2827890636363449e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4113,9 +4113,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 223, - "real_time": 3.1206518833968169e+06, - "cpu_time": 3.1032628295964142e+06, + "iterations": 220, + "real_time": 3.1589662227402600e+06, + "cpu_time": 3.1439646545454604e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4133,8 +4133,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1275992481502942e+06, - "cpu_time": 3.1111583617339320e+06, + "real_time": 3.2210816151608452e+06, + "cpu_time": 3.2043700151515142e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4152,8 +4152,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1220474663595650e+06, - "cpu_time": 3.1057233139013243e+06, + "real_time": 3.2022223227282991e+06, + "cpu_time": 3.1863563272727388e+06, "time_unit": "ns", "model_cost": 2.7033600000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -4171,8 +4171,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0847046197162557e+04, - "cpu_time": 1.1609985680904889e+04, + "real_time": 7.3385606469129867e+04, + "cpu_time": 7.1143684562345370e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4190,8 +4190,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.4681700999824876e-03, - "cpu_time": 3.7317244354075031e-03, + "real_time": 2.2782908115001412e-02, + "cpu_time": 2.2202081602920452e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4207,9 +4207,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 84, - "real_time": 8.4118565712179542e+06, - "cpu_time": 8.3578090238095541e+06, + "iterations": 87, + "real_time": 7.9430395402094536e+06, + "cpu_time": 7.8728290574711468e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4225,9 +4225,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 84, - "real_time": 8.9663329882092681e+06, - "cpu_time": 8.9157921547619402e+06, + "iterations": 87, + "real_time": 8.1718665632220572e+06, + "cpu_time": 8.0973900919541288e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4243,9 +4243,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 84, - "real_time": 8.3241173096688557e+06, - "cpu_time": 8.2769622023808975e+06, + "iterations": 87, + "real_time": 8.0255463793131141e+06, + "cpu_time": 7.9662590574712818e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4263,8 +4263,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.5674356230320241e+06, - "cpu_time": 8.5168544603174627e+06, + "real_time": 8.0468174942482086e+06, + "cpu_time": 7.9788260689655179e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4282,8 +4282,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.4118565712179542e+06, - "cpu_time": 8.3578090238095531e+06, + "real_time": 8.0255463793131141e+06, + "cpu_time": 7.9662590574712828e+06, "time_unit": "ns", "model_cost": 5.7671680000000000e+06, "output_rows": 3.2768000000000000e+04, @@ -4301,8 +4301,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4822963036378776e+05, - "cpu_time": 3.4784697090858850e+05, + "real_time": 1.1588700040610986e+05, + "cpu_time": 1.1280674574440201e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4320,8 +4320,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.0645724775291499e-02, - "cpu_time": 4.0842187984931548e-02, + "real_time": 1.4401594231377168e-02, + "cpu_time": 1.4138263545206944e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4338,8 +4338,8 @@ "repetition_index": 0, "threads": 1, "iterations": 33, - "real_time": 2.1202786454302967e+07, - "cpu_time": 2.1049975939394187e+07, + "real_time": 2.0550580363664210e+07, + "cpu_time": 2.0332200090909295e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4356,8 +4356,8 @@ "repetition_index": 1, "threads": 1, "iterations": 33, - "real_time": 2.1158117817707755e+07, - "cpu_time": 2.1025956454545368e+07, + "real_time": 2.0616162969721094e+07, + "cpu_time": 2.0433771969697054e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4374,8 +4374,8 @@ "repetition_index": 2, "threads": 1, "iterations": 33, - "real_time": 2.1253784606056854e+07, - "cpu_time": 2.1093920454545543e+07, + "real_time": 2.0273725696990203e+07, + "cpu_time": 2.0103996454545062e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4393,8 +4393,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1204896292689189e+07, - "cpu_time": 2.1056617616161700e+07, + "real_time": 2.0480156343458503e+07, + "cpu_time": 2.0289989505050469e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4412,8 +4412,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1202786454302967e+07, - "cpu_time": 2.1049975939394191e+07, + "real_time": 2.0550580363664214e+07, + "cpu_time": 2.0332200090909291e+07, "time_unit": "ns", "model_cost": 1.2255232000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -4431,8 +4431,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.7868279285973877e+04, - "cpu_time": 3.4465348202141817e+04, + "real_time": 1.8175664611046438e+05, + "cpu_time": 1.6889130459357981e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4450,8 +4450,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.2574163356072351e-03, - "cpu_time": 1.6367941342909907e-03, + "real_time": 8.8747684862532147e-03, + "cpu_time": 8.3238734328344704e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4467,9 +4467,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 11, - "real_time": 6.1432414180175826e+07, - "cpu_time": 6.0889678727273181e+07, + "iterations": 10, + "real_time": 5.5530760100009501e+07, + "cpu_time": 5.4966198900000051e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4485,9 +4485,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 11, - "real_time": 6.1025747727729723e+07, - "cpu_time": 6.0603653181818694e+07, + "iterations": 10, + "real_time": 5.5356484100047968e+07, + "cpu_time": 5.4701726599999748e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4503,9 +4503,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 11, - "real_time": 6.0803445908029310e+07, - "cpu_time": 6.0364405636363477e+07, + "iterations": 10, + "real_time": 5.5279565599994384e+07, + "cpu_time": 5.4693666000000015e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4523,8 +4523,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1087202605311602e+07, - "cpu_time": 6.0619245848485112e+07, + "real_time": 5.5388936600017279e+07, + "cpu_time": 5.4787197166666597e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4542,8 +4542,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1025747727729708e+07, - "cpu_time": 6.0603653181818686e+07, + "real_time": 5.5356484100047968e+07, + "cpu_time": 5.4701726599999748e+07, "time_unit": "ns", "model_cost": 2.5952256000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -4561,8 +4561,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1895579368725367e+05, - "cpu_time": 2.6298346611344855e+05, + "real_time": 1.2870331299452034e+05, + "cpu_time": 1.5507243056115572e+05, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4580,8 +4580,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.2213193612424495e-03, - "cpu_time": 4.3382833691260874e-03, + "real_time": 2.3236285239402877e-03, + "cpu_time": 2.8304501522392949e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4598,8 +4598,8 @@ "repetition_index": 0, "threads": 1, "iterations": 4, - "real_time": 1.8493113650038141e+08, - "cpu_time": 1.8345952199999970e+08, + "real_time": 1.6194054500010678e+08, + "cpu_time": 1.6049572324999774e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4616,8 +4616,8 @@ "repetition_index": 1, "threads": 1, "iterations": 4, - "real_time": 1.7545055224763927e+08, - "cpu_time": 1.7413243025000113e+08, + "real_time": 1.6892709750027278e+08, + "cpu_time": 1.6732419474999815e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4634,8 +4634,8 @@ "repetition_index": 2, "threads": 1, "iterations": 4, - "real_time": 1.7636709049838829e+08, - "cpu_time": 1.7498345849999809e+08, + "real_time": 1.7597630074942571e+08, + "cpu_time": 1.7445982250000113e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4653,8 +4653,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7891625974880299e+08, - "cpu_time": 1.7752513691666630e+08, + "real_time": 1.6894798108326843e+08, + "cpu_time": 1.6742658016666567e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4672,8 +4672,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7636709049838826e+08, - "cpu_time": 1.7498345849999806e+08, + "real_time": 1.6892709750027278e+08, + "cpu_time": 1.6732419474999815e+08, "time_unit": "ns", "model_cost": 5.4788096000000000e+07, "output_rows": 2.6214400000000000e+05, @@ -4691,8 +4691,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2291555096189724e+06, - "cpu_time": 5.1569135157117592e+06, + "real_time": 7.0179011788904993e+06, + "cpu_time": 6.9826126232336499e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4710,8 +4710,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9226832245211616e-02, - "cpu_time": 2.9048920086919932e-02, + "real_time": 4.1538828306161450e-02, + "cpu_time": 4.1705520212398602e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4727,9 +4727,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2445, - "real_time": 2.8716317914352054e+05, - "cpu_time": 2.8604619795501052e+05, + "iterations": 2491, + "real_time": 2.8827810517762712e+05, + "cpu_time": 2.8623571497390448e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4745,9 +4745,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2445, - "real_time": 2.8396120695121097e+05, - "cpu_time": 2.8304634928425285e+05, + "iterations": 2491, + "real_time": 2.8888266358885070e+05, + "cpu_time": 2.8733583982335881e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4763,9 +4763,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2445, - "real_time": 2.8444466093966475e+05, - "cpu_time": 2.8348736768915888e+05, + "iterations": 2491, + "real_time": 2.8930293054901809e+05, + "cpu_time": 2.8761188036933448e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4783,8 +4783,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8518968234479876e+05, - "cpu_time": 2.8419330497614073e+05, + "real_time": 2.8882123310516530e+05, + "cpu_time": 2.8706114505553257e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4802,8 +4802,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8444466093966475e+05, - "cpu_time": 2.8348736768915888e+05, + "real_time": 2.8888266358885070e+05, + "cpu_time": 2.8733583982335881e+05, "time_unit": "ns", "model_cost": 5.2224000000000000e+05, "output_rows": 1.0240000000000000e+03, @@ -4821,8 +4821,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7261080935726416e+03, - "cpu_time": 1.6197325710522116e+03, + "real_time": 5.1516700080929650e+02, + "cpu_time": 7.2804581622971875e+02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4840,8 +4840,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.0524913783022152e-03, - "cpu_time": 5.6994043937389563e-03, + "real_time": 1.7836881148613969e-03, + "cpu_time": 2.5362046684823084e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4857,9 +4857,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1222, - "real_time": 5.5389552700688445e+05, - "cpu_time": 5.5189120949262660e+05, + "iterations": 1163, + "real_time": 5.6094689080133312e+05, + "cpu_time": 5.5830061822872597e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4875,9 +4875,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1222, - "real_time": 5.5435413666471152e+05, - "cpu_time": 5.5191627414075134e+05, + "iterations": 1163, + "real_time": 5.5871517282724660e+05, + "cpu_time": 5.5545842734307877e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4893,9 +4893,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1222, - "real_time": 5.5669726266692590e+05, - "cpu_time": 5.5466473240589036e+05, + "iterations": 1163, + "real_time": 5.6419359415198804e+05, + "cpu_time": 5.6073709802236105e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4913,8 +4913,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5498230877950729e+05, - "cpu_time": 5.5282407201308932e+05, + "real_time": 5.6128521926018933e+05, + "cpu_time": 5.5816538119805523e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4932,8 +4932,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5435413666471152e+05, - "cpu_time": 5.5191627414075134e+05, + "real_time": 5.6094689080133312e+05, + "cpu_time": 5.5830061822872597e+05, "time_unit": "ns", "model_cost": 1.0444800000000000e+06, "output_rows": 2.0480000000000000e+03, @@ -4951,8 +4951,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5027910139513822e+03, - "cpu_time": 1.5941079230850594e+03, + "real_time": 2.7548365945152127e+03, + "cpu_time": 2.6419325929955298e+03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4970,8 +4970,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.7078178712691839e-03, - "cpu_time": 2.8835718337665212e-03, + "real_time": 4.9080868335465311e-03, + "cpu_time": 4.7332433755114698e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -4987,9 +4987,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 557, - "real_time": 1.1613928707470347e+06, - "cpu_time": 1.1547358491920976e+06, + "iterations": 606, + "real_time": 1.1421539504958929e+06, + "cpu_time": 1.1356451089108931e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5005,9 +5005,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 557, - "real_time": 1.2472090125857238e+06, - "cpu_time": 1.2394349030520557e+06, + "iterations": 606, + "real_time": 1.0979971122093173e+06, + "cpu_time": 1.0926359702970276e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5023,9 +5023,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 557, - "real_time": 1.1505794434375975e+06, - "cpu_time": 1.1448588132854577e+06, + "iterations": 606, + "real_time": 1.1072508399346927e+06, + "cpu_time": 1.1017405594059452e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5043,8 +5043,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1863937755901187e+06, - "cpu_time": 1.1796765218432036e+06, + "real_time": 1.1158006342133011e+06, + "cpu_time": 1.1100072128712886e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5062,8 +5062,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1613928707470344e+06, - "cpu_time": 1.1547358491920976e+06, + "real_time": 1.1072508399346930e+06, + "cpu_time": 1.1017405594059455e+06, "time_unit": "ns", "model_cost": 2.0889600000000000e+06, "output_rows": 4.0960000000000000e+03, @@ -5081,8 +5081,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.2944332469752291e+04, - "cpu_time": 5.1987373977748939e+04, + "real_time": 2.3286923981526983e+04, + "cpu_time": 2.2664943651246300e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5100,8 +5100,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.4626272961873471e-02, - "cpu_time": 4.4069177452578670e-02, + "real_time": 2.0870147647787909e-02, + "cpu_time": 2.0418735471653574e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5117,9 +5117,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 283, - "real_time": 2.4422395089147580e+06, - "cpu_time": 2.4291331908127326e+06, + "iterations": 281, + "real_time": 2.4236838825510400e+06, + "cpu_time": 2.4122288220640286e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5135,9 +5135,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 283, - "real_time": 2.4492209505737354e+06, - "cpu_time": 2.4365019363957406e+06, + "iterations": 281, + "real_time": 2.5777469145849156e+06, + "cpu_time": 2.5646061530249054e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5153,9 +5153,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 283, - "real_time": 2.4070393357034312e+06, - "cpu_time": 2.3969821272084555e+06, + "iterations": 281, + "real_time": 2.4714996156637357e+06, + "cpu_time": 2.4598212135231178e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5173,8 +5173,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4328332650639750e+06, - "cpu_time": 2.4208724181389767e+06, + "real_time": 2.4909768042665636e+06, + "cpu_time": 2.4788853962040176e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5192,8 +5192,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.4422395089147580e+06, - "cpu_time": 2.4291331908127326e+06, + "real_time": 2.4714996156637357e+06, + "cpu_time": 2.4598212135231178e+06, "time_unit": "ns", "model_cost": 4.1779200000000000e+06, "output_rows": 8.1920000000000000e+03, @@ -5211,8 +5211,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2609295119535480e+04, - "cpu_time": 2.1015092277346706e+04, + "real_time": 7.8856674522649773e+04, + "cpu_time": 7.7957007662285701e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5230,8 +5230,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 9.2934010086963090e-03, - "cpu_time": 8.6807929735933254e-03, + "real_time": 3.1656928473835437e-02, + "cpu_time": 3.1448411363293891e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5247,9 +5247,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 115, - "real_time": 5.8015779738881337e+06, - "cpu_time": 5.7644407304347502e+06, + "iterations": 116, + "real_time": 5.5622124051798647e+06, + "cpu_time": 5.5310783706896761e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5265,9 +5265,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 115, - "real_time": 5.9679846782945907e+06, - "cpu_time": 5.9246701478260970e+06, + "iterations": 116, + "real_time": 5.4617910948230736e+06, + "cpu_time": 5.4333963189655282e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5283,9 +5283,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 115, - "real_time": 5.7739583216101415e+06, - "cpu_time": 5.7303521043478344e+06, + "iterations": 116, + "real_time": 5.5997759999909569e+06, + "cpu_time": 5.5645316206897097e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5303,8 +5303,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8478403245976204e+06, - "cpu_time": 5.8064876608695602e+06, + "real_time": 5.5412598333312990e+06, + "cpu_time": 5.5096687701149704e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5322,8 +5322,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8015779738881337e+06, - "cpu_time": 5.7644407304347502e+06, + "real_time": 5.5622124051798629e+06, + "cpu_time": 5.5310783706896761e+06, "time_unit": "ns", "model_cost": 8.3558400000000000e+06, "output_rows": 1.6384000000000000e+04, @@ -5341,8 +5341,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0496051920575833e+05, - "cpu_time": 1.0375853591175134e+05, + "real_time": 7.1338742726841549e+04, + "cpu_time": 6.8138792821351803e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5360,8 +5360,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7948595272730957e-02, - "cpu_time": 1.7869414691258093e-02, + "real_time": 1.2874101715593814e-02, + "cpu_time": 1.2367130523516014e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5378,8 +5378,8 @@ "repetition_index": 0, "threads": 1, "iterations": 42, - "real_time": 1.7012846880658928e+07, - "cpu_time": 1.6855069785714179e+07, + "real_time": 1.6470797547559153e+07, + "cpu_time": 1.6335334952380940e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5396,8 +5396,8 @@ "repetition_index": 1, "threads": 1, "iterations": 42, - "real_time": 1.6986629000582200e+07, - "cpu_time": 1.6833719857143052e+07, + "real_time": 1.6591870738054803e+07, + "cpu_time": 1.6467307166666482e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5414,8 +5414,8 @@ "repetition_index": 2, "threads": 1, "iterations": 42, - "real_time": 1.6635681499749247e+07, - "cpu_time": 1.6495768880952189e+07, + "real_time": 1.6630647428558275e+07, + "cpu_time": 1.6503511190476179e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5433,8 +5433,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6878385793663453e+07, - "cpu_time": 1.6728186174603136e+07, + "real_time": 1.6564438571390741e+07, + "cpu_time": 1.6435384436507866e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5452,8 +5452,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6986629000582200e+07, - "cpu_time": 1.6833719857143048e+07, + "real_time": 1.6591870738054803e+07, + "cpu_time": 1.6467307166666484e+07, "time_unit": "ns", "model_cost": 1.6711680000000000e+07, "output_rows": 3.2768000000000000e+04, @@ -5471,8 +5471,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1059647438222493e+05, - "cpu_time": 2.0156215828749255e+05, + "real_time": 8.3380986680853865e+04, + "cpu_time": 8.8516141412322657e+04, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5490,8 +5490,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2477287636196098e-02, - "cpu_time": 1.2049253647924229e-02, + "real_time": 5.0337345465402772e-03, + "cpu_time": 5.3857055643737814e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5507,9 +5507,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 13, - "real_time": 5.1109755846062817e+07, - "cpu_time": 5.0738633000000052e+07, + "iterations": 12, + "real_time": 5.0072440500116497e+07, + "cpu_time": 4.9631209750000238e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5525,9 +5525,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 13, - "real_time": 5.1282450847793370e+07, - "cpu_time": 5.0872196230769232e+07, + "iterations": 12, + "real_time": 5.1318516083483696e+07, + "cpu_time": 5.0895633166666932e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5543,9 +5543,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 13, - "real_time": 5.8745214153672211e+07, - "cpu_time": 5.8188656615384430e+07, + "iterations": 12, + "real_time": 4.6274398416547529e+07, + "cpu_time": 4.5726248249999672e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5563,8 +5563,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3712473615842797e+07, - "cpu_time": 5.3266495282051243e+07, + "real_time": 4.9221785000049233e+07, + "cpu_time": 4.8751030388888948e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5582,8 +5582,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.1282450847793370e+07, - "cpu_time": 5.0872196230769239e+07, + "real_time": 5.0072440500116497e+07, + "cpu_time": 4.9631209750000238e+07, "time_unit": "ns", "model_cost": 3.3423360000000000e+07, "output_rows": 6.5536000000000000e+04, @@ -5601,8 +5601,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3593364038278963e+06, - "cpu_time": 4.2632398393327799e+06, + "real_time": 2.6274496844509300e+06, + "cpu_time": 2.6947489465554571e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5620,8 +5620,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.1160596605666005e-02, - "cpu_time": 8.0036049241807877e-02, + "real_time": 5.3379813114219681e-02, + "cpu_time": 5.5275733149829559e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5637,9 +5637,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 5, - "real_time": 1.3178888880065641e+08, - "cpu_time": 1.3092776940000021e+08, + "iterations": 6, + "real_time": 1.2124658716675185e+08, + "cpu_time": 1.2044766766666727e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5655,9 +5655,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 5, - "real_time": 1.3267040840000847e+08, - "cpu_time": 1.3176093659999993e+08, + "iterations": 6, + "real_time": 1.1750262633358943e+08, + "cpu_time": 1.1657403650000001e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5673,9 +5673,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 5, - "real_time": 1.3268610880477354e+08, - "cpu_time": 1.3163007140000217e+08, + "iterations": 6, + "real_time": 1.1702268499963491e+08, + "cpu_time": 1.1634220916666748e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5693,8 +5693,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3238180200181280e+08, - "cpu_time": 1.3143959246666741e+08, + "real_time": 1.1859063283332539e+08, + "cpu_time": 1.1778797111111158e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5712,8 +5712,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3267040840000845e+08, - "cpu_time": 1.3163007140000218e+08, + "real_time": 1.1750262633358943e+08, + "cpu_time": 1.1657403650000001e+08, "time_unit": "ns", "model_cost": 6.6846720000000000e+07, "output_rows": 1.3107200000000000e+05, @@ -5731,8 +5731,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.1353789904819598e+05, - "cpu_time": 4.4805531335165881e+05, + "real_time": 2.3126080487077404e+06, + "cpu_time": 2.3062795372307478e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5750,8 +5750,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.8792182254866409e-03, - "cpu_time": 3.4088306646666141e-03, + "real_time": 1.9500764887206756e-02, + "cpu_time": 1.9579924125318292e-02, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5768,8 +5768,8 @@ "repetition_index": 0, "threads": 1, "iterations": 2, - "real_time": 3.3422313000482970e+08, - "cpu_time": 3.3189806649999553e+08, + "real_time": 2.9701074250078821e+08, + "cpu_time": 2.9526163999999964e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5786,8 +5786,8 @@ "repetition_index": 1, "threads": 1, "iterations": 2, - "real_time": 3.1261445800191724e+08, - "cpu_time": 3.1048276749999815e+08, + "real_time": 3.0190800499985927e+08, + "cpu_time": 2.9990138250000340e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5804,8 +5804,8 @@ "repetition_index": 2, "threads": 1, "iterations": 2, - "real_time": 2.9147989700140899e+08, - "cpu_time": 2.8986815599999714e+08, + "real_time": 3.0017835950093287e+08, + "cpu_time": 2.9699710800000644e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5823,8 +5823,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1277249500271863e+08, - "cpu_time": 3.1074966333333027e+08, + "real_time": 2.9969903566719341e+08, + "cpu_time": 2.9738671016666985e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5842,8 +5842,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.1261445800191724e+08, - "cpu_time": 3.1048276749999815e+08, + "real_time": 3.0017835950093287e+08, + "cpu_time": 2.9699710800000644e+08, "time_unit": "ns", "model_cost": 1.3369344000000000e+08, "output_rows": 2.6214400000000000e+05, @@ -5861,8 +5861,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.1372054736650109e+07, - "cpu_time": 2.1016226331073124e+07, + "real_time": 2.4835676957591916e+06, + "cpu_time": 2.3442792075138032e+06, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5880,8 +5880,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.8330991625284498e-02, - "cpu_time": 6.7630729203814965e-02, + "real_time": 8.2868724960367159e-03, + "cpu_time": 7.8829319783656655e-03, "time_unit": "ns", "model_cost": 0.0000000000000000e+00, "output_rows": 0.0000000000000000e+00, @@ -5897,9 +5897,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 4351, - "real_time": 1.5961242932483804e+05, - "cpu_time": 1.5903337991266395e+05, + "iterations": 3567, + "real_time": 2.0146374376250996e+05, + "cpu_time": 2.0073131959629941e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5916,9 +5916,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 4351, - "real_time": 1.6147040611531536e+05, - "cpu_time": 1.6097874235807825e+05, + "iterations": 3567, + "real_time": 2.0650068488923580e+05, + "cpu_time": 2.0434347687131850e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5935,9 +5935,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 4351, - "real_time": 1.6108330728386005e+05, - "cpu_time": 1.6054411238795571e+05, + "iterations": 3567, + "real_time": 2.0361949509364122e+05, + "cpu_time": 2.0294448444070792e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5956,8 +5956,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6072204757467113e+05, - "cpu_time": 1.6018541155289928e+05, + "real_time": 2.0386130791512897e+05, + "cpu_time": 2.0267309363610856e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5976,8 +5976,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6108330728386005e+05, - "cpu_time": 1.6054411238795568e+05, + "real_time": 2.0361949509364122e+05, + "cpu_time": 2.0294448444070792e+05, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 4.0448000000000000e+05, @@ -5996,8 +5996,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8025551342853771e+02, - "cpu_time": 1.0210820132656331e+03, + "real_time": 2.5271622541861511e+03, + "cpu_time": 1.8213071601146337e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6016,8 +6016,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.0990730781544647e-03, - "cpu_time": 6.3743758146691974e-03, + "real_time": 1.2396478174456984e-02, + "cpu_time": 8.9864279833055567e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6034,9 +6034,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2275, - "real_time": 3.0990704790443426e+05, - "cpu_time": 3.0870987472527445e+05, + "iterations": 1782, + "real_time": 3.8912884960722306e+05, + "cpu_time": 3.8735831369248242e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6053,9 +6053,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2275, - "real_time": 3.1020442197856668e+05, - "cpu_time": 3.0886639120879053e+05, + "iterations": 1782, + "real_time": 3.8921161840631138e+05, + "cpu_time": 3.8687223793490685e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6072,9 +6072,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2275, - "real_time": 3.0921882154051581e+05, - "cpu_time": 3.0789497934066091e+05, + "iterations": 1782, + "real_time": 3.8661358136832394e+05, + "cpu_time": 3.8472813692480652e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6093,8 +6093,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0977676380783890e+05, - "cpu_time": 3.0849041509157530e+05, + "real_time": 3.8831801646061940e+05, + "cpu_time": 3.8631956285073195e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6113,8 +6113,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0990704790443432e+05, - "cpu_time": 3.0870987472527445e+05, + "real_time": 3.8912884960722300e+05, + "cpu_time": 3.8687223793490691e+05, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 8.0896000000000000e+05, @@ -6133,8 +6133,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.0555169393950047e+02, - "cpu_time": 5.2156701630933912e+02, + "real_time": 1.4766641142950914e+03, + "cpu_time": 1.3994801780613327e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6153,8 +6153,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.6319871372053746e-03, - "cpu_time": 1.6907073633211978e-03, + "real_time": 3.8027185237356734e-03, + "cpu_time": 3.6225972294394808e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6171,9 +6171,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 1107, - "real_time": 6.0545254290287313e+05, - "cpu_time": 6.0233885636857350e+05, + "iterations": 897, + "real_time": 7.7220005462761945e+05, + "cpu_time": 7.6321313266443566e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6190,9 +6190,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 1107, - "real_time": 6.1251096297669632e+05, - "cpu_time": 6.0918010930443439e+05, + "iterations": 897, + "real_time": 8.2078781048108626e+05, + "cpu_time": 8.1381326644370065e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6209,9 +6209,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 1107, - "real_time": 6.0889281392120186e+05, - "cpu_time": 6.0564358988256357e+05, + "iterations": 897, + "real_time": 7.8572890078154451e+05, + "cpu_time": 7.7831858751394250e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6230,8 +6230,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0895210660025710e+05, - "cpu_time": 6.0572085185185703e+05, + "real_time": 7.9290558863008337e+05, + "cpu_time": 7.8511499554069294e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6250,8 +6250,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.0889281392120186e+05, - "cpu_time": 6.0564358988256357e+05, + "real_time": 7.8572890078154451e+05, + "cpu_time": 7.7831858751394262e+05, "time_unit": "ns", "lhs_rows": 4.0960000000000000e+03, "model_cost": 1.6179200000000000e+06, @@ -6270,8 +6270,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5295835733039253e+03, - "cpu_time": 3.4212808262568647e+03, + "real_time": 2.5076306368273723e+04, + "cpu_time": 2.5975695489619106e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6290,8 +6290,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.7961595584411019e-03, - "cpu_time": 5.6482797575765440e-03, + "real_time": 3.1625841371100041e-02, + "cpu_time": 3.3085211258422301e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6308,9 +6308,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 563, - "real_time": 1.2587571154153356e+06, - "cpu_time": 1.2507559644760210e+06, + "iterations": 430, + "real_time": 1.5729009674413288e+06, + "cpu_time": 1.5633765255813946e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6327,9 +6327,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 563, - "real_time": 1.3778503037382043e+06, - "cpu_time": 1.3689160248667910e+06, + "iterations": 430, + "real_time": 1.5958809558194547e+06, + "cpu_time": 1.5842298325581364e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6346,9 +6346,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 563, - "real_time": 1.3166045062148820e+06, - "cpu_time": 1.3087839129662502e+06, + "iterations": 430, + "real_time": 1.5179995790720906e+06, + "cpu_time": 1.5076555279069894e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6367,8 +6367,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3177373084561408e+06, - "cpu_time": 1.3094853007696874e+06, + "real_time": 1.5622605007776245e+06, + "cpu_time": 1.5517539620155066e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6387,8 +6387,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3166045062148820e+06, - "cpu_time": 1.3087839129662500e+06, + "real_time": 1.5729009674413288e+06, + "cpu_time": 1.5633765255813943e+06, "time_unit": "ns", "lhs_rows": 8.1920000000000000e+03, "model_cost": 3.2358400000000000e+06, @@ -6407,8 +6407,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.9554674937527881e+04, - "cpu_time": 5.9083152645452144e+04, + "real_time": 4.0016144980897938e+04, + "cpu_time": 3.9588117170229765e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6427,8 +6427,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.5194648854028470e-02, - "cpu_time": 4.5119370649463822e-02, + "real_time": 2.5614258928635562e-02, + "cpu_time": 2.5511851839456857e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6445,9 +6445,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 239, - "real_time": 2.9683592216604659e+06, - "cpu_time": 2.9436807782426812e+06, + "iterations": 215, + "real_time": 3.3740766604666510e+06, + "cpu_time": 3.3407089534883853e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6464,9 +6464,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 239, - "real_time": 2.9391373807728039e+06, - "cpu_time": 2.9150854393304875e+06, + "iterations": 215, + "real_time": 3.4412175488352319e+06, + "cpu_time": 3.4016907720930316e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6483,9 +6483,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 239, - "real_time": 2.9765875355163240e+06, - "cpu_time": 2.9521477949791085e+06, + "iterations": 215, + "real_time": 3.4444020278981975e+06, + "cpu_time": 3.3997880790697397e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6504,8 +6504,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9613613793165311e+06, - "cpu_time": 2.9369713375174254e+06, + "real_time": 3.4198987457333598e+06, + "cpu_time": 3.3807292682170519e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6524,8 +6524,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.9683592216604655e+06, - "cpu_time": 2.9436807782426812e+06, + "real_time": 3.4412175488352315e+06, + "cpu_time": 3.3997880790697397e+06, "time_unit": "ns", "lhs_rows": 1.6384000000000000e+04, "model_cost": 6.4716800000000000e+06, @@ -6544,8 +6544,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9681358456234837e+04, - "cpu_time": 1.9420787772128646e+04, + "real_time": 3.9715020462852139e+04, + "cpu_time": 3.4671663551382757e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6564,8 +6564,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.6460508986502702e-03, - "cpu_time": 6.6125220644967959e-03, + "real_time": 1.1612922900831584e-02, + "cpu_time": 1.0255675861814305e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6582,9 +6582,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 89, - "real_time": 7.0090569438690096e+06, - "cpu_time": 6.9495575842696512e+06, + "iterations": 85, + "real_time": 8.0679135293929214e+06, + "cpu_time": 7.9813523882353026e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6601,9 +6601,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 89, - "real_time": 7.0018265955542540e+06, - "cpu_time": 6.9391039213483091e+06, + "iterations": 85, + "real_time": 8.4998512941049691e+06, + "cpu_time": 8.3723659411764871e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6620,9 +6620,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 89, - "real_time": 7.1400920896440372e+06, - "cpu_time": 7.0809575168538187e+06, + "iterations": 85, + "real_time": 7.7428119529298898e+06, + "cpu_time": 7.6226928705881061e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6641,8 +6641,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0503252096890993e+06, - "cpu_time": 6.9898730074905930e+06, + "real_time": 8.1035255921425922e+06, + "cpu_time": 7.9921370666666320e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6661,8 +6661,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0090569438690096e+06, - "cpu_time": 6.9495575842696512e+06, + "real_time": 8.0679135293929204e+06, + "cpu_time": 7.9813523882353036e+06, "time_unit": "ns", "lhs_rows": 3.2768000000000000e+04, "model_cost": 1.2943360000000000e+07, @@ -6681,8 +6681,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.7824411573982274e+04, - "cpu_time": 7.9054479010299154e+04, + "real_time": 3.7977401870278240e+05, + "cpu_time": 3.7495287724993145e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6701,8 +6701,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.1038414436121326e-02, - "cpu_time": 1.1309859124133102e-02, + "real_time": 4.6865282818508283e-02, + "cpu_time": 4.6915221063183930e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6719,9 +6719,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 45, - "real_time": 1.5253418999620609e+07, - "cpu_time": 1.5129156622222379e+07, + "iterations": 43, + "real_time": 1.6538087651201220e+07, + "cpu_time": 1.6414523976743964e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6738,9 +6738,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 45, - "real_time": 1.6748759844469735e+07, - "cpu_time": 1.6605307111111263e+07, + "iterations": 43, + "real_time": 1.7416210860426154e+07, + "cpu_time": 1.7231467302325707e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6757,9 +6757,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 45, - "real_time": 1.5615015200132295e+07, - "cpu_time": 1.5477257888888907e+07, + "iterations": 43, + "real_time": 2.0278357162761644e+07, + "cpu_time": 2.0049053000000212e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6778,8 +6778,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5872398014740877e+07, - "cpu_time": 1.5737240540740849e+07, + "real_time": 1.8077551891463004e+07, + "cpu_time": 1.7898348093023293e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6798,8 +6798,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5615015200132297e+07, - "cpu_time": 1.5477257888888909e+07, + "real_time": 1.7416210860426154e+07, + "cpu_time": 1.7231467302325703e+07, "time_unit": "ns", "lhs_rows": 6.5536000000000000e+04, "model_cost": 2.5886720000000000e+07, @@ -6818,8 +6818,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.8018939720458270e+05, - "cpu_time": 7.7165296663051203e+05, + "real_time": 1.9558714104656174e+06, + "cpu_time": 1.9068292521812392e+06, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6838,8 +6838,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.9153845340824488e-02, - "cpu_time": 4.9033562436365065e-02, + "real_time": 1.0819337829638669e-01, + "cpu_time": 1.0653660562812016e-01, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6856,9 +6856,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2007, - "real_time": 3.5332630642905080e+05, - "cpu_time": 3.5090977927254490e+05, + "iterations": 1944, + "real_time": 3.6657388374559011e+05, + "cpu_time": 3.6462056635802705e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6875,9 +6875,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2007, - "real_time": 3.5303784105100768e+05, - "cpu_time": 3.5091627653213579e+05, + "iterations": 1944, + "real_time": 3.7501044444407278e+05, + "cpu_time": 3.7154841563785839e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6894,9 +6894,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2007, - "real_time": 3.6101995267618523e+05, - "cpu_time": 3.5862274389636359e+05, + "iterations": 1944, + "real_time": 3.9455854886999773e+05, + "cpu_time": 3.9103051543209713e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6915,8 +6915,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5579470005208114e+05, - "cpu_time": 3.5348293323368143e+05, + "real_time": 3.7871429235322011e+05, + "cpu_time": 3.7573316580932750e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6935,8 +6935,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5332630642905080e+05, - "cpu_time": 3.5091627653213585e+05, + "real_time": 3.7501044444407272e+05, + "cpu_time": 3.7154841563785839e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 2.8672000000000000e+05, @@ -6955,8 +6955,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5274995094299020e+03, - "cpu_time": 4.4512077900018876e+03, + "real_time": 1.4355286048416290e+04, + "cpu_time": 1.3693263052392054e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6975,8 +6975,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2725033590346249e-02, - "cpu_time": 1.2592426314000486e-02, + "real_time": 3.7905318965430986e-02, + "cpu_time": 3.6444115927048472e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -6993,9 +6993,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 602, - "real_time": 1.1431282674127948e+06, - "cpu_time": 1.1358687159468476e+06, + "iterations": 564, + "real_time": 1.2504466258888117e+06, + "cpu_time": 1.2393362429078142e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7012,9 +7012,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 602, - "real_time": 1.1155049069927684e+06, - "cpu_time": 1.1096449867109756e+06, + "iterations": 564, + "real_time": 1.1502129361702723e+06, + "cpu_time": 1.1443939024822719e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7031,9 +7031,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 602, - "real_time": 1.0905021494985451e+06, - "cpu_time": 1.0857482823920376e+06, + "iterations": 564, + "real_time": 1.1442143616974226e+06, + "cpu_time": 1.1384036046099332e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7052,8 +7052,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1163784413013693e+06, - "cpu_time": 1.1104206616832868e+06, + "real_time": 1.1816246412521689e+06, + "cpu_time": 1.1740445833333398e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7072,8 +7072,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1155049069927682e+06, - "cpu_time": 1.1096449867109756e+06, + "real_time": 1.1502129361702723e+06, + "cpu_time": 1.1443939024822717e+06, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.1468800000000000e+06, @@ -7092,8 +7092,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6323931475417834e+04, - "cpu_time": 2.5069218549400928e+04, + "real_time": 5.9677004791804160e+04, + "cpu_time": 5.6623506820418137e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7112,8 +7112,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3579756202324959e-02, - "cpu_time": 2.2576325724521819e-02, + "real_time": 5.0504197956268398e-02, + "cpu_time": 4.8229434916051528e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7130,9 +7130,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 174, - "real_time": 4.0130024195793243e+06, - "cpu_time": 3.9946379310344514e+06, + "iterations": 169, + "real_time": 4.1010925562131996e+06, + "cpu_time": 4.0723679940828541e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7149,9 +7149,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 174, - "real_time": 3.9745058967054808e+06, - "cpu_time": 3.9582554597700764e+06, + "iterations": 169, + "real_time": 4.1692943491156008e+06, + "cpu_time": 4.1367916745562083e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7168,9 +7168,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 174, - "real_time": 3.9275639885153365e+06, - "cpu_time": 3.9129024655173044e+06, + "iterations": 169, + "real_time": 4.1148842544408212e+06, + "cpu_time": 4.0873642307692380e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7189,8 +7189,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9716907682667132e+06, - "cpu_time": 3.9552652854406107e+06, + "real_time": 4.1284237199232071e+06, + "cpu_time": 4.0988412998027666e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7209,8 +7209,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9745058967054808e+06, - "cpu_time": 3.9582554597700764e+06, + "real_time": 4.1148842544408212e+06, + "cpu_time": 4.0873642307692380e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 4.5875200000000000e+06, @@ -7229,8 +7229,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.2788726164343469e+04, - "cpu_time": 4.0949693988036655e+04, + "real_time": 3.6060490608731881e+04, + "cpu_time": 3.3710458119615381e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7249,8 +7249,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.0773428411451303e-02, - "cpu_time": 1.0353210475861904e-02, + "real_time": 8.7346873904218924e-03, + "cpu_time": 8.2243872484737326e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7267,9 +7267,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 45, - "real_time": 1.5283883489125099e+07, - "cpu_time": 1.5218577688888976e+07, + "iterations": 44, + "real_time": 1.5716153659096479e+07, + "cpu_time": 1.5615596909090938e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7286,9 +7286,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 45, - "real_time": 1.5933800866413448e+07, - "cpu_time": 1.5861916844444420e+07, + "iterations": 44, + "real_time": 1.5601414704509474e+07, + "cpu_time": 1.5520218500000091e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7305,9 +7305,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 45, - "real_time": 1.5210718466227667e+07, - "cpu_time": 1.5150257066666959e+07, + "iterations": 44, + "real_time": 1.5197989022701884e+07, + "cpu_time": 1.5102290250000166e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7326,8 +7326,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5476134273922071e+07, - "cpu_time": 1.5410250533333451e+07, + "real_time": 1.5505185795435945e+07, + "cpu_time": 1.5412701886363730e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7346,8 +7346,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.5283883489125097e+07, - "cpu_time": 1.5218577688888974e+07, + "real_time": 1.5601414704509474e+07, + "cpu_time": 1.5520218500000089e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 1.8350080000000000e+07, @@ -7366,8 +7366,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9803556694830203e+05, - "cpu_time": 3.9264331052454625e+05, + "real_time": 2.7215556178150635e+05, + "cpu_time": 2.7302160761126026e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7386,8 +7386,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.5719314649460524e-02, - "cpu_time": 2.5479359318346658e-02, + "real_time": 1.7552550828614844e-02, + "cpu_time": 1.7714065296547003e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7405,8 +7405,8 @@ "repetition_index": 0, "threads": 1, "iterations": 12, - "real_time": 5.8646104082678594e+07, - "cpu_time": 5.8442293750000358e+07, + "real_time": 5.7824528999844916e+07, + "cpu_time": 5.7638922333332233e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7424,8 +7424,8 @@ "repetition_index": 1, "threads": 1, "iterations": 12, - "real_time": 5.8599149750079960e+07, - "cpu_time": 5.8381791666666538e+07, + "real_time": 5.8432866166792035e+07, + "cpu_time": 5.8187267416667990e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7443,8 +7443,8 @@ "repetition_index": 2, "threads": 1, "iterations": 12, - "real_time": 5.8865837333238840e+07, - "cpu_time": 5.8643922416666307e+07, + "real_time": 5.8150967583060265e+07, + "cpu_time": 5.7926297749998428e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7463,8 +7463,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8703697055332460e+07, - "cpu_time": 5.8489335944444396e+07, + "real_time": 5.8136120916565739e+07, + "cpu_time": 5.7917495833332874e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7483,8 +7483,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.8646104082678594e+07, - "cpu_time": 5.8442293750000358e+07, + "real_time": 5.8150967583060265e+07, + "cpu_time": 5.7926297749998428e+07, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 7.3400320000000000e+07, @@ -7503,8 +7503,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.4236670828581837e+05, - "cpu_time": 1.3725107856626957e+05, + "real_time": 3.0444021548194246e+05, + "cpu_time": 2.7427848604579753e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7523,8 +7523,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.4251744852053780e-03, - "cpu_time": 2.3466000485393838e-03, + "real_time": 5.2366792053233297e-03, + "cpu_time": 4.7356758454315598e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7542,8 +7542,8 @@ "repetition_index": 0, "threads": 1, "iterations": 3, - "real_time": 2.3236395166410756e+08, - "cpu_time": 2.3157243633334208e+08, + "real_time": 2.3798401633272684e+08, + "cpu_time": 2.3706457999999961e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7561,8 +7561,8 @@ "repetition_index": 1, "threads": 1, "iterations": 3, - "real_time": 2.3338789967237973e+08, - "cpu_time": 2.3263515900000206e+08, + "real_time": 2.3061634099940419e+08, + "cpu_time": 2.2979345166666576e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7580,8 +7580,8 @@ "repetition_index": 2, "threads": 1, "iterations": 3, - "real_time": 2.3317426699213684e+08, - "cpu_time": 2.3234727733333215e+08, + "real_time": 2.3167426366611230e+08, + "cpu_time": 2.3087696966666725e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7600,8 +7600,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3297537277620801e+08, - "cpu_time": 2.3218495755555877e+08, + "real_time": 2.3342487366608110e+08, + "cpu_time": 2.3257833377777752e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7620,8 +7620,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3317426699213684e+08, - "cpu_time": 2.3234727733333215e+08, + "real_time": 2.3167426366611230e+08, + "cpu_time": 2.3087696966666725e+08, "time_unit": "ns", "lhs_rows": 2.0480000000000000e+03, "model_cost": 2.9360128000000000e+08, @@ -7640,8 +7640,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.4017271567849617e+05, - "cpu_time": 5.4964138241714903e+05, + "real_time": 3.9836084751526252e+06, + "cpu_time": 3.9227932253551562e+06, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7660,8 +7660,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.3185829010235193e-03, - "cpu_time": 2.3672566397227833e-03, + "real_time": 1.7065912525034737e-02, + "cpu_time": 1.6866546258359913e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7678,9 +7678,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 5331, - "real_time": 1.2478490208398430e+05, - "cpu_time": 1.2380987919714779e+05, + "iterations": 5353, + "real_time": 1.2898380907888920e+05, + "cpu_time": 1.2792908051560172e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7697,9 +7697,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 5331, - "real_time": 1.3249372256814223e+05, - "cpu_time": 1.3128989307821999e+05, + "iterations": 5353, + "real_time": 1.2603125481055504e+05, + "cpu_time": 1.2502512478983718e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7716,9 +7716,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 5331, - "real_time": 1.2903942881183306e+05, - "cpu_time": 1.2802380322640981e+05, + "iterations": 5353, + "real_time": 1.2263131029293431e+05, + "cpu_time": 1.2186104558191706e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7737,8 +7737,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2877268448798654e+05, - "cpu_time": 1.2770785850059253e+05, + "real_time": 1.2588212472745951e+05, + "cpu_time": 1.2493841696245196e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7757,8 +7757,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2903942881183304e+05, - "cpu_time": 1.2802380322640981e+05, + "real_time": 1.2603125481055502e+05, + "cpu_time": 1.2502512478983717e+05, "time_unit": "ns", "lhs_rows": 3.2000000000000000e+01, "model_cost": 1.0649600000000000e+05, @@ -7777,8 +7777,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8613265486061105e+03, - "cpu_time": 3.7500023623445318e+03, + "real_time": 3.1788740211984400e+03, + "cpu_time": 3.0349465686572944e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7797,8 +7797,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9985602645150582e-02, - "cpu_time": 2.9363912341597465e-02, + "real_time": 2.5252783332668127e-02, + "cpu_time": 2.4291540123878741e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7815,9 +7815,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 2348, - "real_time": 2.9703217803590238e+05, - "cpu_time": 2.9170850255535840e+05, + "iterations": 2559, + "real_time": 2.7295744626842841e+05, + "cpu_time": 2.7121314732316602e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7834,9 +7834,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 2348, - "real_time": 3.0098525041786104e+05, - "cpu_time": 2.9877492376489966e+05, + "iterations": 2559, + "real_time": 2.7748443845134013e+05, + "cpu_time": 2.7559722782336967e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7853,9 +7853,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 2348, - "real_time": 3.0608955578903510e+05, - "cpu_time": 3.0404613032367971e+05, + "iterations": 2559, + "real_time": 2.8844898866717721e+05, + "cpu_time": 2.8623549159827927e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7874,8 +7874,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0136899474759947e+05, - "cpu_time": 2.9817651888131257e+05, + "real_time": 2.7963029112898186e+05, + "cpu_time": 2.7768195558160497e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7894,8 +7894,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0098525041786098e+05, - "cpu_time": 2.9877492376489966e+05, + "real_time": 2.7748443845134007e+05, + "cpu_time": 2.7559722782336967e+05, "time_unit": "ns", "lhs_rows": 6.4000000000000000e+01, "model_cost": 4.2598400000000000e+05, @@ -7914,8 +7914,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5408664067224045e+03, - "cpu_time": 6.1905436789447258e+03, + "real_time": 7.9655812254137381e+03, + "cpu_time": 7.7251067468017245e+03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7934,8 +7934,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.5067463759918104e-02, - "cpu_time": 2.0761338626428986e-02, + "real_time": 2.8486117127201879e-02, + "cpu_time": 2.7819981066546023e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -7952,9 +7952,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 721, - "real_time": 9.5932074615327525e+05, - "cpu_time": 9.5193887933424360e+05, + "iterations": 688, + "real_time": 8.8981536918634991e+05, + "cpu_time": 8.8357706976744218e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -7971,9 +7971,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 721, - "real_time": 9.7721735229127982e+05, - "cpu_time": 9.6936163938975334e+05, + "iterations": 688, + "real_time": 8.9480302035342401e+05, + "cpu_time": 8.8767159738371032e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -7990,9 +7990,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 721, - "real_time": 9.4006388486445660e+05, - "cpu_time": 9.3281144521494245e+05, + "iterations": 688, + "real_time": 9.4535163081546174e+05, + "cpu_time": 9.3712476308139239e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -8011,8 +8011,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5886732776967064e+05, - "cpu_time": 9.5137065464631317e+05, + "real_time": 9.0999000678507856e+05, + "cpu_time": 9.0279114341084834e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -8031,8 +8031,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5932074615327513e+05, - "cpu_time": 9.5193887933424360e+05, + "real_time": 8.9480302035342390e+05, + "cpu_time": 8.8767159738371044e+05, "time_unit": "ns", "lhs_rows": 1.2800000000000000e+02, "model_cost": 1.7039360000000000e+06, @@ -8051,8 +8051,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8580883365218095e+04, - "cpu_time": 1.8281721281819497e+04, + "real_time": 3.0725437451581263e+04, + "cpu_time": 2.9804183747610597e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8071,8 +8071,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.9377950240975786e-02, - "cpu_time": 1.9216192125051421e-02, + "real_time": 3.3764587767432477e-02, + "cpu_time": 3.3013376310944940e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8089,9 +8089,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 109, - "real_time": 5.6205549447716074e+06, - "cpu_time": 5.5457994587156754e+06, + "iterations": 120, + "real_time": 5.2447048416676503e+06, + "cpu_time": 5.1699889416667586e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8108,9 +8108,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 109, - "real_time": 5.9907739541980382e+06, - "cpu_time": 5.9113671743118977e+06, + "iterations": 120, + "real_time": 5.0897273416618798e+06, + "cpu_time": 5.0246979666667366e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8127,9 +8127,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 109, - "real_time": 5.0800898349459432e+06, - "cpu_time": 5.0185620366970822e+06, + "iterations": 120, + "real_time": 4.7818925250188233e+06, + "cpu_time": 4.7253736416666452e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8148,8 +8148,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.5638062446385296e+06, - "cpu_time": 5.4919095565748857e+06, + "real_time": 5.0387749027827838e+06, + "cpu_time": 4.9733535166667132e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8168,8 +8168,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.6205549447716065e+06, - "cpu_time": 5.5457994587156763e+06, + "real_time": 5.0897273416618798e+06, + "cpu_time": 5.0246979666667366e+06, "time_unit": "ns", "lhs_rows": 2.5600000000000000e+02, "model_cost": 6.8157440000000000e+06, @@ -8188,8 +8188,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.5798657457352517e+05, - "cpu_time": 4.4883554293573764e+05, + "real_time": 2.3557572748748618e+05, + "cpu_time": 2.2671100691828699e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8208,8 +8208,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.2315334940870108e-02, - "cpu_time": 8.1726681459710862e-02, + "real_time": 4.6752580147484624e-02, + "cpu_time": 4.5585138108226682e-02, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8226,9 +8226,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 26, - "real_time": 2.6842513768665060e+07, - "cpu_time": 2.6538571653845750e+07, + "iterations": 31, + "real_time": 2.2470577064532630e+07, + "cpu_time": 2.2274796290322606e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8245,9 +8245,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 26, - "real_time": 2.6442388577449422e+07, - "cpu_time": 2.6176888538461622e+07, + "iterations": 31, + "real_time": 2.2671293516102575e+07, + "cpu_time": 2.2471355741935614e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8264,9 +8264,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 26, - "real_time": 2.6032183076425169e+07, - "cpu_time": 2.5784397423077639e+07, + "iterations": 31, + "real_time": 2.2575022580689795e+07, + "cpu_time": 2.2343392677418977e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8285,8 +8285,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6439028474179883e+07, - "cpu_time": 2.6166619205128338e+07, + "real_time": 2.2572297720441666e+07, + "cpu_time": 2.2363181569892395e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8305,8 +8305,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6442388577449422e+07, - "cpu_time": 2.6176888538461622e+07, + "real_time": 2.2575022580689799e+07, + "cpu_time": 2.2343392677418977e+07, "time_unit": "ns", "lhs_rows": 5.1200000000000000e+02, "model_cost": 2.7262976000000000e+07, @@ -8325,8 +8325,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.0517579569474870e+05, - "cpu_time": 3.7719197631191387e+05, + "real_time": 1.0038596580303139e+05, + "cpu_time": 9.9762742061406781e+04, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8345,8 +8345,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.5324912414631259e-02, - "cpu_time": 1.4415006132622164e-02, + "real_time": 4.4473082468747078e-03, + "cpu_time": 4.4610263414270879e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8364,8 +8364,8 @@ "repetition_index": 0, "threads": 1, "iterations": 5, - "real_time": 1.2198015240137465e+08, - "cpu_time": 1.2094263579999733e+08, + "real_time": 1.1748234059996322e+08, + "cpu_time": 1.1633298520000041e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8383,8 +8383,8 @@ "repetition_index": 1, "threads": 1, "iterations": 5, - "real_time": 1.2660427120281383e+08, - "cpu_time": 1.2563009380000381e+08, + "real_time": 1.1784866999951191e+08, + "cpu_time": 1.1670695120000120e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8402,8 +8402,8 @@ "repetition_index": 2, "threads": 1, "iterations": 5, - "real_time": 1.2643557180417702e+08, - "cpu_time": 1.2531702260000089e+08, + "real_time": 1.1698665840012836e+08, + "cpu_time": 1.1589235359999748e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8422,8 +8422,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2500666513612181e+08, - "cpu_time": 1.2396325073333400e+08, + "real_time": 1.1743922299986781e+08, + "cpu_time": 1.1631076333333302e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8442,8 +8442,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2643557180417700e+08, - "cpu_time": 1.2531702260000087e+08, + "real_time": 1.1748234059996320e+08, + "cpu_time": 1.1633298520000039e+08, "time_unit": "ns", "lhs_rows": 1.0240000000000000e+03, "model_cost": 1.0905190400000000e+08, @@ -8462,8 +8462,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.6223938247274985e+06, - "cpu_time": 2.6206085792593178e+06, + "real_time": 4.3262032424765010e+05, + "cpu_time": 4.0775319864778483e+05, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, @@ -8482,8 +8482,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.0978032026307807e-02, - "cpu_time": 2.1140205373419027e-02, + "real_time": 3.6837805393870587e-03, + "cpu_time": 3.5057219724301180e-03, "time_unit": "ns", "lhs_rows": 0.0000000000000000e+00, "model_cost": 0.0000000000000000e+00, diff --git a/research/benchmark-results/query.json b/research/benchmark-results/query.json index 2fe2b6b..0d0ca17 100644 --- a/research/benchmark-results/query.json +++ b/research/benchmark-results/query.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-09T23:45:24+03:00", + "date": "2026-06-14T20:44:00+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [0.406738,0.518066,0.863281], + "load_avg": [0.801758,1.39307,1.86475], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,9 +47,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 35883, - "real_time": 1.9347125825426523e+04, - "cpu_time": 1.9274702784048157e+04, + "iterations": 30908, + "real_time": 1.9690791995604395e+04, + "cpu_time": 1.9364304225443251e+04, "time_unit": "ns" }, { @@ -61,9 +61,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 35883, - "real_time": 1.9958099769192188e+04, - "cpu_time": 1.9870254744586575e+04, + "iterations": 30908, + "real_time": 2.0620323508553727e+04, + "cpu_time": 2.0439727384495920e+04, "time_unit": "ns" }, { @@ -75,9 +75,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 35883, - "real_time": 1.9839301117551120e+04, - "cpu_time": 1.9744612713541232e+04, + "iterations": 30908, + "real_time": 2.1001014268052593e+04, + "cpu_time": 2.0805882004658986e+04, "time_unit": "ns" }, { @@ -91,8 +91,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9714842237389941e+04, - "cpu_time": 1.9629856747391983e+04, + "real_time": 2.0437376590736905e+04, + "cpu_time": 2.0203304538199383e+04, "time_unit": "ns" }, { @@ -106,8 +106,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9839301117551116e+04, - "cpu_time": 1.9744612713541228e+04, + "real_time": 2.0620323508553727e+04, + "cpu_time": 2.0439727384495916e+04, "time_unit": "ns" }, { @@ -121,8 +121,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.2394413041203410e+02, - "cpu_time": 3.1392233633584686e+02, + "real_time": 6.7399761265075608e+02, + "cpu_time": 7.4930530831593944e+02, "time_unit": "ns" }, { @@ -136,8 +136,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.6431484792592550e-02, - "cpu_time": 1.5992084933454977e-02, + "real_time": 3.2978675597544187e-02, + "cpu_time": 3.7088254889153946e-02, "time_unit": "ns" }, { @@ -149,9 +149,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 35706, - "real_time": 1.9395967988571840e+04, - "cpu_time": 1.9322896347952723e+04, + "iterations": 34131, + "real_time": 2.0186661773754931e+04, + "cpu_time": 1.9933065453693125e+04, "time_unit": "ns" }, { @@ -163,9 +163,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 35706, - "real_time": 1.9952500560384295e+04, - "cpu_time": 1.9850908390746659e+04, + "iterations": 34131, + "real_time": 2.0169296094510435e+04, + "cpu_time": 1.9849478626468608e+04, "time_unit": "ns" }, { @@ -177,9 +177,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 35706, - "real_time": 1.9349337225960488e+04, - "cpu_time": 1.9260752674620504e+04, + "iterations": 34131, + "real_time": 2.0091933315705788e+04, + "cpu_time": 1.9958257449239689e+04, "time_unit": "ns" }, { @@ -193,8 +193,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9565935258305544e+04, - "cpu_time": 1.9478185804439960e+04, + "real_time": 2.0149297061323719e+04, + "cpu_time": 1.9913600509800472e+04, "time_unit": "ns" }, { @@ -208,8 +208,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9395967988571840e+04, - "cpu_time": 1.9322896347952723e+04, + "real_time": 2.0169296094510435e+04, + "cpu_time": 1.9933065453693125e+04, "time_unit": "ns" }, { @@ -223,8 +223,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.3558628783648948e+02, - "cpu_time": 3.2427928362951928e+02, + "real_time": 5.0431549524075258e+01, + "cpu_time": 5.6941822078140824e+01, "time_unit": "ns" }, { @@ -238,8 +238,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7151558737476476e-02, - "cpu_time": 1.6648330952649670e-02, + "real_time": 2.5028937421781275e-03, + "cpu_time": 2.8594438283582580e-03, "time_unit": "ns" }, { @@ -251,9 +251,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 35747, - "real_time": 1.9461075754495792e+04, - "cpu_time": 1.9392605757126468e+04, + "iterations": 35049, + "real_time": 2.0029725127609468e+04, + "cpu_time": 1.9744634625809576e+04, "time_unit": "ns" }, { @@ -265,9 +265,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 35747, - "real_time": 2.0039857134594396e+04, - "cpu_time": 1.9956820963996979e+04, + "iterations": 35049, + "real_time": 1.9694179577221064e+04, + "cpu_time": 1.9469350423692540e+04, "time_unit": "ns" }, { @@ -279,9 +279,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 35747, - "real_time": 1.9761389738938429e+04, - "cpu_time": 1.9648120653481416e+04, + "iterations": 35049, + "real_time": 1.9976324659756159e+04, + "cpu_time": 1.9649384005249784e+04, "time_unit": "ns" }, { @@ -295,8 +295,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9754107542676207e+04, - "cpu_time": 1.9665849124868284e+04, + "real_time": 1.9900076454862228e+04, + "cpu_time": 1.9621123018250630e+04, "time_unit": "ns" }, { @@ -310,8 +310,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9761389738938433e+04, - "cpu_time": 1.9648120653481416e+04, + "real_time": 1.9976324659756163e+04, + "cpu_time": 1.9649384005249784e+04, "time_unit": "ns" }, { @@ -325,8 +325,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.8945940004436528e+02, - "cpu_time": 2.8252508550457100e+02, + "real_time": 1.8029987703411811e+02, + "cpu_time": 1.3980114635986928e+02, "time_unit": "ns" }, { @@ -340,8 +340,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.4653124643521634e-02, - "cpu_time": 1.4366279518910081e-02, + "real_time": 9.0602605192536840e-03, + "cpu_time": 7.1250328653376729e-03, "time_unit": "ns" }, { @@ -353,9 +353,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 34985, - "real_time": 1.9576876347119727e+04, - "cpu_time": 1.9499444018865241e+04, + "iterations": 35368, + "real_time": 1.9960714940043279e+04, + "cpu_time": 1.9790182368242466e+04, "time_unit": "ns" }, { @@ -367,9 +367,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 34985, - "real_time": 2.0412169873552859e+04, - "cpu_time": 2.0322958525082195e+04, + "iterations": 35368, + "real_time": 1.9953514787403295e+04, + "cpu_time": 1.9870601136620662e+04, "time_unit": "ns" }, { @@ -381,9 +381,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 34985, - "real_time": 1.9421935715485401e+04, - "cpu_time": 1.9353340631699339e+04, + "iterations": 35368, + "real_time": 1.9325330383437165e+04, + "cpu_time": 1.9268540545125539e+04, "time_unit": "ns" }, { @@ -397,8 +397,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9803660645385997e+04, - "cpu_time": 1.9725247725215591e+04, + "real_time": 1.9746520036961247e+04, + "cpu_time": 1.9643108016662885e+04, "time_unit": "ns" }, { @@ -412,8 +412,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9576876347119727e+04, - "cpu_time": 1.9499444018865244e+04, + "real_time": 1.9953514787403295e+04, + "cpu_time": 1.9790182368242466e+04, "time_unit": "ns" }, { @@ -427,8 +427,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 5.3264834591507758e+02, - "cpu_time": 5.2276208751519619e+02, + "real_time": 3.6477870514374996e+02, + "cpu_time": 3.2686753835056970e+02, "time_unit": "ns" }, { @@ -442,8 +442,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6896458965488181e-02, - "cpu_time": 2.6502181102999685e-02, + "real_time": 1.8473062821244581e-02, + "cpu_time": 1.6640316699032251e-02, "time_unit": "ns" }, { @@ -455,9 +455,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 9891, - "real_time": 6.9485813061832043e+04, - "cpu_time": 6.8783745020725837e+04, + "iterations": 10059, + "real_time": 6.7123694005437108e+04, + "cpu_time": 6.6452997017596266e+04, "time_unit": "ns" }, { @@ -469,9 +469,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 9891, - "real_time": 6.9380505410659636e+04, - "cpu_time": 6.8705246486705015e+04, + "iterations": 10059, + "real_time": 6.6603497464995104e+04, + "cpu_time": 6.5978846406203447e+04, "time_unit": "ns" }, { @@ -483,9 +483,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 9891, - "real_time": 7.2888390554632861e+04, - "cpu_time": 7.0598849358002219e+04, + "iterations": 10059, + "real_time": 6.6185145243245774e+04, + "cpu_time": 6.5579015806740179e+04, "time_unit": "ns" }, { @@ -499,8 +499,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0584903009041518e+04, - "cpu_time": 6.9362613621811019e+04, + "real_time": 6.6637445571225995e+04, + "cpu_time": 6.6003619743513293e+04, "time_unit": "ns" }, { @@ -514,8 +514,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9485813061832057e+04, - "cpu_time": 6.8783745020725837e+04, + "real_time": 6.6603497464995118e+04, + "cpu_time": 6.5978846406203447e+04, "time_unit": "ns" }, { @@ -529,8 +529,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9955734964841440e+03, - "cpu_time": 1.0713307619682653e+03, + "real_time": 4.7019442807371064e+02, + "cpu_time": 4.3751694586045232e+02, "time_unit": "ns" }, { @@ -544,8 +544,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.8271959178416985e-02, - "cpu_time": 1.5445363229960325e-02, + "real_time": 7.0560091858734202e-03, + "cpu_time": 6.6286810868952479e-03, "time_unit": "ns" }, { @@ -557,9 +557,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 16294, - "real_time": 4.5328077084222074e+04, - "cpu_time": 4.5118617589296737e+04, + "iterations": 16520, + "real_time": 4.4866463377613101e+04, + "cpu_time": 4.4648068462469775e+04, "time_unit": "ns" }, { @@ -571,9 +571,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 16294, - "real_time": 4.2265272677276589e+04, - "cpu_time": 4.2094951086289366e+04, + "iterations": 16520, + "real_time": 4.2604707445555112e+04, + "cpu_time": 4.2458468644067827e+04, "time_unit": "ns" }, { @@ -585,9 +585,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 16294, - "real_time": 4.1824865902154910e+04, - "cpu_time": 4.1692916656437970e+04, + "iterations": 16520, + "real_time": 4.2180054963624643e+04, + "cpu_time": 4.2046813801452801e+04, "time_unit": "ns" }, { @@ -601,8 +601,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3139405221217858e+04, - "cpu_time": 4.2968828444008017e+04, + "real_time": 4.3217075262264276e+04, + "cpu_time": 4.3051116969330134e+04, "time_unit": "ns" }, { @@ -616,8 +616,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.2265272677276589e+04, - "cpu_time": 4.2094951086289366e+04, + "real_time": 4.2604707445555105e+04, + "cpu_time": 4.2458468644067827e+04, "time_unit": "ns" }, { @@ -631,8 +631,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.9081936287554665e+03, - "cpu_time": 1.8725925738392880e+03, + "real_time": 1.4441064015139771e+03, + "cpu_time": 1.3982329852147041e+03, "time_unit": "ns" }, { @@ -646,8 +646,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.4233192807603502e-02, - "cpu_time": 4.3580256703517832e-02, + "real_time": 3.3415181215997812e-02, + "cpu_time": 3.2478436882620573e-02, "time_unit": "ns" }, { @@ -659,9 +659,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 10101, - "real_time": 6.7519916445501847e+04, - "cpu_time": 6.6872900306900425e+04, + "iterations": 10476, + "real_time": 6.6407572833197148e+04, + "cpu_time": 6.5812611970217578e+04, "time_unit": "ns" }, { @@ -673,9 +673,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 10101, - "real_time": 6.7762344916422226e+04, - "cpu_time": 6.7088890208890210e+04, + "iterations": 10476, + "real_time": 6.6131168671347084e+04, + "cpu_time": 6.5514603283696037e+04, "time_unit": "ns" }, { @@ -687,9 +687,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 10101, - "real_time": 7.1656405504046284e+04, - "cpu_time": 7.0902481140481046e+04, + "iterations": 10476, + "real_time": 6.5557157693897243e+04, + "cpu_time": 6.4923682321496744e+04, "time_unit": "ns" }, { @@ -703,8 +703,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8979555621990105e+04, - "cpu_time": 6.8288090552090536e+04, + "real_time": 6.6031966399480487e+04, + "cpu_time": 6.5416965858470117e+04, "time_unit": "ns" }, { @@ -718,8 +718,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7762344916422226e+04, - "cpu_time": 6.7088890208890210e+04, + "real_time": 6.6131168671347084e+04, + "cpu_time": 6.5514603283696029e+04, "time_unit": "ns" }, { @@ -733,8 +733,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3213868396231469e+03, - "cpu_time": 2.2667027861942097e+03, + "real_time": 4.3379983327240069e+02, + "cpu_time": 4.5243649299935231e+02, "time_unit": "ns" }, { @@ -748,8 +748,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.3653258834319140e-02, - "cpu_time": 3.3193237178965433e-02, + "real_time": 6.5695428581968394e-03, + "cpu_time": 6.9161950124406639e-03, "time_unit": "ns" }, { @@ -761,9 +761,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 16451, - "real_time": 4.3826071910359613e+04, - "cpu_time": 4.3656422588292517e+04, + "iterations": 16429, + "real_time": 4.2655499908660488e+04, + "cpu_time": 4.2512722868099081e+04, "time_unit": "ns" }, { @@ -775,9 +775,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 16451, - "real_time": 4.5471952586603991e+04, - "cpu_time": 4.5253403805239861e+04, + "iterations": 16429, + "real_time": 4.3006030555641300e+04, + "cpu_time": 4.2847248219611705e+04, "time_unit": "ns" }, { @@ -789,9 +789,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 16451, - "real_time": 4.3340157679465607e+04, - "cpu_time": 4.3146676615403223e+04, + "iterations": 16429, + "real_time": 4.2671599427912239e+04, + "cpu_time": 4.2512723598514865e+04, "time_unit": "ns" }, { @@ -805,8 +805,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.4212727392143075e+04, - "cpu_time": 4.4018834336311869e+04, + "real_time": 4.2777709964071335e+04, + "cpu_time": 4.2624231562075220e+04, "time_unit": "ns" }, { @@ -820,8 +820,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3826071910359613e+04, - "cpu_time": 4.3656422588292531e+04, + "real_time": 4.2671599427912239e+04, + "cpu_time": 4.2512723598514865e+04, "time_unit": "ns" }, { @@ -835,8 +835,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1172574581177582e+03, - "cpu_time": 1.0991276401882440e+03, + "real_time": 1.9789521982826508e+02, + "cpu_time": 1.9313809089472591e+02, "time_unit": "ns" }, { @@ -850,8 +850,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.5270041547274080e-02, - "cpu_time": 2.4969485375071716e-02, + "real_time": 4.6261293555563323e-03, + "cpu_time": 4.5311805941522223e-03, "time_unit": "ns" }, { @@ -863,9 +863,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 7826, - "real_time": 8.9939901991683058e+04, - "cpu_time": 8.8865522616917951e+04, + "iterations": 8249, + "real_time": 8.2960084252814093e+04, + "cpu_time": 8.2177835737665257e+04, "time_unit": "ns" }, { @@ -877,9 +877,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 7826, - "real_time": 9.3378252363479318e+04, - "cpu_time": 9.2188841809353500e+04, + "iterations": 8249, + "real_time": 8.2548407685846934e+04, + "cpu_time": 8.1742332161474085e+04, "time_unit": "ns" }, { @@ -891,9 +891,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 7826, - "real_time": 8.7275915154285205e+04, - "cpu_time": 8.6283555839509107e+04, + "iterations": 8249, + "real_time": 8.1475008728372239e+04, + "cpu_time": 8.0718609164747511e+04, "time_unit": "ns" }, { @@ -907,8 +907,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.0198023169815875e+04, - "cpu_time": 8.9112640088593515e+04, + "real_time": 8.2327833555677746e+04, + "cpu_time": 8.1546259021295627e+04, "time_unit": "ns" }, { @@ -922,8 +922,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.9939901991683058e+04, - "cpu_time": 8.8865522616917951e+04, + "real_time": 8.2548407685846934e+04, + "cpu_time": 8.1742332161474100e+04, "time_unit": "ns" }, { @@ -937,8 +937,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.0593462962911394e+03, - "cpu_time": 2.9603886366515130e+03, + "real_time": 7.6671509604269932e+02, + "cpu_time": 7.4911217784934934e+02, "time_unit": "ns" }, { @@ -952,8 +952,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.3918108055775310e-02, - "cpu_time": 3.3220748860188297e-02, + "real_time": 9.3129511968048466e-03, + "cpu_time": 9.1863463369143677e-03, "time_unit": "ns" }, { @@ -965,9 +965,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 8124, - "real_time": 9.1373874814580195e+04, - "cpu_time": 9.0240014524864659e+04, + "iterations": 8491, + "real_time": 8.1564215168851792e+04, + "cpu_time": 8.0868939347544539e+04, "time_unit": "ns" }, { @@ -979,9 +979,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 8124, - "real_time": 1.0381180330036678e+05, - "cpu_time": 1.0038200763170891e+05, + "iterations": 8491, + "real_time": 8.2415557766973274e+04, + "cpu_time": 8.1676025556471272e+04, "time_unit": "ns" }, { @@ -993,9 +993,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 8124, - "real_time": 9.5242334689878713e+04, - "cpu_time": 9.3994281265386206e+04, + "iterations": 8491, + "real_time": 8.1876454834554199e+04, + "cpu_time": 8.1156611588741158e+04, "time_unit": "ns" }, { @@ -1009,8 +1009,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.6809337601608553e+04, - "cpu_time": 9.4872101140653249e+04, + "real_time": 8.1952075923459750e+04, + "cpu_time": 8.1233858830918994e+04, "time_unit": "ns" }, { @@ -1024,8 +1024,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5242334689878728e+04, - "cpu_time": 9.3994281265386206e+04, + "real_time": 8.1876454834554184e+04, + "cpu_time": 8.1156611588741158e+04, "time_unit": "ns" }, { @@ -1039,8 +1039,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.3653075219044285e+03, - "cpu_time": 5.1276633903641432e+03, + "real_time": 4.3067965666014658e+02, + "cpu_time": 4.0905059525465964e+02, "time_unit": "ns" }, { @@ -1054,8 +1054,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.5750966586498608e-02, - "cpu_time": 5.4048169363953388e-02, + "real_time": 5.2552623201685056e-03, + "cpu_time": 5.0354692137186529e-03, "time_unit": "ns" }, { @@ -1067,9 +1067,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 6458, - "real_time": 1.0016481913773292e+05, - "cpu_time": 9.8046890987921797e+04, + "iterations": 8845, + "real_time": 7.8003122781477985e+04, + "cpu_time": 7.7279036404748433e+04, "time_unit": "ns" }, { @@ -1081,9 +1081,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 6458, - "real_time": 1.0063212589107969e+05, - "cpu_time": 9.9071416382781026e+04, + "iterations": 8845, + "real_time": 7.8157331147635239e+04, + "cpu_time": 7.7421407687959552e+04, "time_unit": "ns" }, { @@ -1095,9 +1095,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 6458, - "real_time": 8.5858419942888766e+04, - "cpu_time": 8.4224828120161445e+04, + "iterations": 8845, + "real_time": 7.7875304239552788e+04, + "cpu_time": 7.7212780214810453e+04, "time_unit": "ns" }, { @@ -1111,8 +1111,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5551788323900444e+04, - "cpu_time": 9.3781045163621427e+04, + "real_time": 7.8011919389555333e+04, + "cpu_time": 7.7304408102506146e+04, "time_unit": "ns" }, { @@ -1126,8 +1126,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0016481913773289e+05, - "cpu_time": 9.8046890987921797e+04, + "real_time": 7.8003122781478000e+04, + "cpu_time": 7.7279036404748433e+04, "time_unit": "ns" }, { @@ -1141,8 +1141,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.3979543239963441e+03, - "cpu_time": 8.2917655663595015e+03, + "real_time": 1.4121908318453850e+02, + "cpu_time": 1.0660275758583292e+02, "time_unit": "ns" }, { @@ -1156,8 +1156,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.7889033489661622e-02, - "cpu_time": 8.8416220483496566e-02, + "real_time": 1.8102244412082200e-03, + "cpu_time": 1.3789997259208940e-03, "time_unit": "ns" }, { @@ -1169,9 +1169,9 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 6858, - "real_time": 9.3030761591598537e+04, - "cpu_time": 9.1602852435112174e+04, + "iterations": 9102, + "real_time": 7.7994850362925325e+04, + "cpu_time": 7.7232681388705620e+04, "time_unit": "ns" }, { @@ -1183,9 +1183,9 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 6858, - "real_time": 8.6511492128064332e+04, - "cpu_time": 8.5318596821230691e+04, + "iterations": 9102, + "real_time": 7.7683349923208254e+04, + "cpu_time": 7.6985877059986873e+04, "time_unit": "ns" }, { @@ -1197,9 +1197,9 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 6858, - "real_time": 8.4088126856397226e+04, - "cpu_time": 8.2806301691455490e+04, + "iterations": 9102, + "real_time": 7.7163363656431247e+04, + "cpu_time": 7.6465104372665315e+04, "time_unit": "ns" }, { @@ -1213,8 +1213,8 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.7876793525353365e+04, - "cpu_time": 8.6575916982599461e+04, + "real_time": 7.7613854647521584e+04, + "cpu_time": 7.6894554273785921e+04, "time_unit": "ns" }, { @@ -1228,8 +1228,8 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.6511492128064347e+04, - "cpu_time": 8.5318596821230705e+04, + "real_time": 7.7683349923208239e+04, + "cpu_time": 7.6985877059986859e+04, "time_unit": "ns" }, { @@ -1243,8 +1243,8 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.6250097222475179e+03, - "cpu_time": 4.5310558082604975e+03, + "real_time": 4.2007705337852963e+02, + "cpu_time": 3.9185266025673900e+02, "time_unit": "ns" }, { @@ -1258,8 +1258,8 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.2630615395783127e-02, - "cpu_time": 5.2336215037389389e-02, + "real_time": 5.4123977643718750e-03, + "cpu_time": 5.0959741422199160e-03, "time_unit": "ns" } ] diff --git a/research/benchmark-results/ssb-sf001.json b/research/benchmark-results/ssb-sf001.json index 20ab4e5..24be094 100644 --- a/research/benchmark-results/ssb-sf001.json +++ b/research/benchmark-results/ssb-sf001.json @@ -1,6 +1,6 @@ { "context": { - "date": "2026-06-09T23:45:52+03:00", + "date": "2026-06-14T20:44:28+03:00", "host_name": "nixos", "executable": "./build-release/bin/benchmarks", "num_cpus": 8, @@ -32,7 +32,7 @@ "num_sharing": 8 } ], - "load_avg": [1.00439,0.640625,0.89502], + "load_avg": [1.58936,1.53076,1.89648], "library_version": "v1.9.0", "library_build_type": "release", "json_schema_version": 1 @@ -47,11 +47,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 76, - "real_time": 9.9512121447141413e+06, - "cpu_time": 9.8711035526315793e+06, + "iterations": 65, + "real_time": 9.8329785384591483e+06, + "cpu_time": 9.7378805384615380e+06, "time_unit": "ns", - "execution_us": 9.9511413026315786e+03, + "execution_us": 9.8328972153846153e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -63,11 +63,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 76, - "real_time": 1.0357855052509541e+07, - "cpu_time": 1.0266127460526315e+07, + "iterations": 65, + "real_time": 9.0062370153296236e+06, + "cpu_time": 8.9505159692307673e+06, "time_unit": "ns", - "execution_us": 1.0357739236842106e+04, + "execution_us": 9.0061597846153854e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -79,11 +79,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 76, - "real_time": 1.1278557158029320e+07, - "cpu_time": 1.1154365052631577e+07, + "iterations": 65, + "real_time": 9.2073494307652060e+06, + "cpu_time": 9.1503834769230746e+06, "time_unit": "ns", - "execution_us": 1.1278490815789473e+04, + "execution_us": 9.2072650923076926e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -97,10 +97,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0529208118417667e+07, - "cpu_time": 1.0430532021929821e+07, + "real_time": 9.3488549948513266e+06, + "cpu_time": 9.2795933282051273e+06, "time_unit": "ns", - "execution_us": 1.0529123785087719e+04, + "execution_us": 9.3487740307692311e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -114,10 +114,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0357855052509541e+07, - "cpu_time": 1.0266127460526315e+07, + "real_time": 9.2073494307652060e+06, + "cpu_time": 9.1503834769230764e+06, "time_unit": "ns", - "execution_us": 1.0357739236842106e+04, + "execution_us": 9.2072650923076926e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -131,10 +131,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8006073331009818e+05, - "cpu_time": 6.5723790533056122e+05, + "real_time": 4.3115340079504781e+05, + "cpu_time": 4.0927634975801205e+05, "time_unit": "ns", - "execution_us": 6.8006887890355438e+02, + "execution_us": 4.3115226963000237e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -148,10 +148,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 6.4588022732738795e-02, - "cpu_time": 6.3010966645684230e-02, + "real_time": 4.6118310855446563e-02, + "cpu_time": 4.4104987716867425e-02, "time_unit": "ns", - "execution_us": 6.4589313677433285e-02, + "execution_us": 4.6118589262182277e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -163,13 +163,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 72, - "real_time": 1.1711527986335568e+07, - "cpu_time": 1.1595316222222218e+07, + "iterations": 80, + "real_time": 8.3042533124626055e+06, + "cpu_time": 8.2629934750000034e+06, "time_unit": "ns", - "execution_us": 1.1711456208333333e+04, + "execution_us": 8.3041996125000005e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.3586760000000004e+03, + "optimizer_us": 4.5440129999999999e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -181,13 +181,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 72, - "real_time": 1.1374830111081893e+07, - "cpu_time": 1.1181104888888886e+07, + "iterations": 80, + "real_time": 8.7721496249741893e+06, + "cpu_time": 8.7221346999999993e+06, "time_unit": "ns", - "execution_us": 1.1374768583333333e+04, + "execution_us": 8.7720931375000000e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.5903590000000004e+03, + "optimizer_us": 5.1104020000000000e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -199,13 +199,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 72, - "real_time": 1.0174952805553202e+07, - "cpu_time": 1.0039267958333332e+07, + "iterations": 80, + "real_time": 8.3539369250047458e+06, + "cpu_time": 8.3101026999999937e+06, "time_unit": "ns", - "execution_us": 1.0174888694444446e+04, + "execution_us": 8.3538819875000008e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.6177420000000002e+03, + "optimizer_us": 4.9359480000000003e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -219,12 +219,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1087103634323554e+07, - "cpu_time": 1.0938563023148144e+07, + "real_time": 8.4767799541471805e+06, + "cpu_time": 8.4317436249999981e+06, "time_unit": "ns", - "execution_us": 1.1087037828703704e+04, + "execution_us": 8.4767249124999998e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.5222590000000000e+03, + "optimizer_us": 4.8634543333333331e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -238,12 +238,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1374830111081891e+07, - "cpu_time": 1.1181104888888886e+07, + "real_time": 8.3539369250047458e+06, + "cpu_time": 8.3101026999999946e+06, "time_unit": "ns", - "execution_us": 1.1374768583333333e+04, + "execution_us": 8.3538819875000008e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.5903590000000004e+03, + "optimizer_us": 4.9359480000000003e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -257,12 +257,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.0768540634329349e+05, - "cpu_time": 8.0587931315157900e+05, + "real_time": 2.5700106453506710e+05, + "cpu_time": 2.5258672193873374e+05, "time_unit": "ns", - "execution_us": 8.0768290284891270e+02, + "execution_us": 2.5699975846519629e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.4232710770968617e+02, + "optimizer_us": 2.9007003225141398e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -276,12 +276,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.2849089625432378e-02, - "cpu_time": 7.3673233993000756e-02, + "real_time": 3.0318241823574989e-02, + "cpu_time": 2.9956641612040688e-02, "time_unit": "ns", - "execution_us": 7.2849296207673081e-02, + "execution_us": 3.0318284610866365e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.5773348861342103e-02, + "optimizer_us": 5.9642799617407871e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -293,11 +293,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 83, - "real_time": 8.2656341567719691e+06, - "cpu_time": 8.2090268915662710e+06, + "iterations": 84, + "real_time": 8.3345388928656960e+06, + "cpu_time": 8.2792537261904702e+06, "time_unit": "ns", - "execution_us": 8.2655834216867461e+03, + "execution_us": 8.3344888690476182e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -309,11 +309,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 83, - "real_time": 8.4240290358051080e+06, - "cpu_time": 8.3510533855421618e+06, + "iterations": 84, + "real_time": 8.3228132023664545e+06, + "cpu_time": 8.2659602738095270e+06, "time_unit": "ns", - "execution_us": 8.4239712409638560e+03, + "execution_us": 8.3227613095238084e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -325,11 +325,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 83, - "real_time": 9.4000963734025247e+06, - "cpu_time": 9.3164692771084346e+06, + "iterations": 84, + "real_time": 8.3253920952518536e+06, + "cpu_time": 8.2728575595238097e+06, "time_unit": "ns", - "execution_us": 9.4000337831325305e+03, + "execution_us": 8.3251496190476191e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -343,10 +343,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.6965865219931994e+06, - "cpu_time": 8.6255165180722866e+06, + "real_time": 8.3275813968280004e+06, + "cpu_time": 8.2726905198412677e+06, "time_unit": "ns", - "execution_us": 8.6965294819277115e+03, + "execution_us": 8.3274665992063474e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -360,10 +360,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.4240290358051080e+06, - "cpu_time": 8.3510533855421608e+06, + "real_time": 8.3253920952518536e+06, + "cpu_time": 8.2728575595238088e+06, "time_unit": "ns", - "execution_us": 8.4239712409638560e+03, + "execution_us": 8.3251496190476191e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -377,10 +377,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1438328240477492e+05, - "cpu_time": 6.0258166887363710e+05, + "real_time": 6.1617964484808936e+03, + "cpu_time": 6.6483002151819046e+03, "time_unit": "ns", - "execution_us": 6.1437806087464617e+02, + "execution_us": 6.1975971870199906e+00, "includes_order_by": 0.0000000000000000e+00 }, { @@ -394,10 +394,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.0646486509509512e-02, - "cpu_time": 6.9860357650594090e-02, + "real_time": 7.3992629490573798e-04, + "cpu_time": 8.0364425566707514e-04, "time_unit": "ns", - "execution_us": 7.0646349460596600e-02, + "execution_us": 7.4423561033684063e-04, "includes_order_by": 0.0000000000000000e+00 }, { @@ -409,13 +409,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 86, - "real_time": 8.4306501974974386e+06, - "cpu_time": 8.1951028139534937e+06, + "iterations": 101, + "real_time": 6.6697983366064373e+06, + "cpu_time": 6.6404850990099097e+06, "time_unit": "ns", - "execution_us": 8.4305877558139546e+03, + "execution_us": 6.6697433861386144e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.6332799999999997e+02, + "optimizer_us": 1.5430560000000000e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -427,13 +427,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 86, - "real_time": 8.9168745464629084e+06, - "cpu_time": 8.8365529767442029e+06, + "iterations": 101, + "real_time": 6.7415753267299142e+06, + "cpu_time": 6.7046504356435630e+06, "time_unit": "ns", - "execution_us": 8.9168142441860473e+03, + "execution_us": 6.7415256534653463e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.5955599999999998e+02, + "optimizer_us": 1.5653320000000001e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -445,13 +445,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 86, - "real_time": 8.0954919303198848e+06, - "cpu_time": 8.0364193023255942e+06, + "iterations": 101, + "real_time": 6.5917710198125793e+06, + "cpu_time": 6.5674319702970274e+06, "time_unit": "ns", - "execution_us": 8.0954257441860454e+03, + "execution_us": 6.5917119702970294e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.6979100000000000e+02, + "optimizer_us": 1.4078960000000000e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -465,12 +465,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.4810055580934100e+06, - "cpu_time": 8.3560250310077630e+06, + "real_time": 6.6677148943829769e+06, + "cpu_time": 6.6375225016501658e+06, "time_unit": "ns", - "execution_us": 8.4809425813953494e+03, + "execution_us": 6.6676603366336640e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.6422499999999997e+02, + "optimizer_us": 1.5054279999999999e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -484,12 +484,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.4306501974974386e+06, - "cpu_time": 8.1951028139534937e+06, + "real_time": 6.6697983366064383e+06, + "cpu_time": 6.6404850990099087e+06, "time_unit": "ns", - "execution_us": 8.4305877558139546e+03, + "execution_us": 6.6697433861386144e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.6332799999999997e+02, + "optimizer_us": 1.5430560000000000e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -503,12 +503,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1300011777364131e+05, - "cpu_time": 4.2364542271917086e+05, + "real_time": 7.4923882316378396e+04, + "cpu_time": 6.8657188591943937e+04, "time_unit": "ns", - "execution_us": 4.1300299433239582e+02, + "execution_us": 7.4928560893270131e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 5.1761243223115141e+00, + "optimizer_us": 8.5196380862105471e+01, "plan_cost": 0.0000000000000000e+00 }, { @@ -522,12 +522,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.8697069580330127e-02, - "cpu_time": 5.0699396082119902e-02, + "real_time": 1.1236815536233537e-02, + "cpu_time": 1.0343797489933172e-02, "time_unit": "ns", - "execution_us": 4.8697770367930659e-02, + "execution_us": 1.1237609162781633e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.1150033544749883e-02, + "optimizer_us": 5.6592796774143618e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -539,11 +539,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 81, - "real_time": 9.6963825308643058e+06, - "cpu_time": 9.6079864320987780e+06, + "iterations": 84, + "real_time": 8.3219361428443035e+06, + "cpu_time": 8.2646981428571399e+06, "time_unit": "ns", - "execution_us": 9.6963178024691351e+03, + "execution_us": 8.3218814523809524e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -555,11 +555,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 81, - "real_time": 1.0967921753080539e+07, - "cpu_time": 1.0832180358024685e+07, + "iterations": 84, + "real_time": 8.2953126071255878e+06, + "cpu_time": 8.2430971309523713e+06, "time_unit": "ns", - "execution_us": 1.0967784012345679e+04, + "execution_us": 8.2952615952380966e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -571,11 +571,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 81, - "real_time": 1.1111089444495048e+07, - "cpu_time": 1.0970931839506162e+07, + "iterations": 84, + "real_time": 8.3282351904580574e+06, + "cpu_time": 8.2720098809523992e+06, "time_unit": "ns", - "execution_us": 1.1110996444444445e+04, + "execution_us": 8.3281770238095232e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -589,10 +589,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0591797909479963e+07, - "cpu_time": 1.0470366209876541e+07, + "real_time": 8.3151613134759823e+06, + "cpu_time": 8.2599350515873022e+06, "time_unit": "ns", - "execution_us": 1.0591699419753086e+04, + "execution_us": 8.3151066904761901e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -606,10 +606,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0967921753080538e+07, - "cpu_time": 1.0832180358024683e+07, + "real_time": 8.3219361428443035e+06, + "cpu_time": 8.2646981428571409e+06, "time_unit": "ns", - "execution_us": 1.0967784012345679e+04, + "execution_us": 8.3218814523809524e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -623,10 +623,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.7874949255990016e+05, - "cpu_time": 7.5005810057844629e+05, + "real_time": 1.7475636127024853e+04, + "cpu_time": 1.5033364792371891e+04, "time_unit": "ns", - "execution_us": 7.7872243489220114e+02, + "execution_us": 1.7472246811903176e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -640,10 +640,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.3523824681633793e-02, - "cpu_time": 7.1636281438840946e-02, + "real_time": 2.1016593025925943e-03, + "cpu_time": 1.8200342615869534e-03, "time_unit": "ns", - "execution_us": 7.3521953751813959e-02, + "execution_us": 2.1012654993248889e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -655,13 +655,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 86, - "real_time": 8.7900363256732468e+06, - "cpu_time": 8.7090346976744235e+06, + "iterations": 100, + "real_time": 6.7307652599993162e+06, + "cpu_time": 6.7007803200000105e+06, "time_unit": "ns", - "execution_us": 8.7899619534883714e+03, + "execution_us": 6.7307008900000001e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.3574500000000000e+02, + "optimizer_us": 1.0578180000000000e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -673,13 +673,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 86, - "real_time": 7.9751125232960898e+06, - "cpu_time": 7.9195813488372285e+06, + "iterations": 100, + "real_time": 6.7873448400132479e+06, + "cpu_time": 6.7555737600000044e+06, "time_unit": "ns", - "execution_us": 7.9750475581395349e+03, + "execution_us": 6.7872900899999995e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.5972199999999998e+02, + "optimizer_us": 1.0378109999999999e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -691,13 +691,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 86, - "real_time": 7.3623308139652833e+06, - "cpu_time": 7.2926978837209251e+06, + "iterations": 100, + "real_time": 6.6988098000001637e+06, + "cpu_time": 6.6724952500000084e+06, "time_unit": "ns", - "execution_us": 7.3622627558139529e+03, + "execution_us": 6.6987279000000008e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.7393599999999998e+02, + "optimizer_us": 8.1611500000000001e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -711,12 +711,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.0424932209782070e+06, - "cpu_time": 7.9737713100775257e+06, + "real_time": 6.7389733000042411e+06, + "cpu_time": 6.7096164433333399e+06, "time_unit": "ns", - "execution_us": 8.0424240891472855e+03, + "execution_us": 6.7389062933333335e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.8980099999999999e+02, + "optimizer_us": 9.7058133333333319e+02, "plan_cost": 6.5429700000000000e+05 }, { @@ -730,12 +730,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9751125232960908e+06, - "cpu_time": 7.9195813488372276e+06, + "real_time": 6.7307652599993162e+06, + "cpu_time": 6.7007803200000105e+06, "time_unit": "ns", - "execution_us": 7.9750475581395349e+03, + "execution_us": 6.7307008900000001e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.7393599999999998e+02, + "optimizer_us": 1.0378109999999999e+03, "plan_cost": 6.5429700000000000e+05 }, { @@ -749,12 +749,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1623381367779430e+05, - "cpu_time": 7.0972171064749407e+05, + "real_time": 4.4834610158672738e+04, + "cpu_time": 4.2238223360451244e+04, "time_unit": "ns", - "execution_us": 7.1623037317476178e+02, + "execution_us": 4.4847651636254497e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.0418409184429620e+01, + "optimizer_us": 1.3414527987347694e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -768,12 +768,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.9056191158427722e-02, - "cpu_time": 8.9007031058255137e-02, + "real_time": 6.6530327637066801e-03, + "cpu_time": 6.2951770368959090e-03, "time_unit": "ns", - "execution_us": 8.9056528881791608e-02, + "execution_us": 6.6550341678769734e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.0368985503995531e-01, + "optimizer_us": 1.3821127119019766e-01, "plan_cost": 0.0000000000000000e+00 }, { @@ -785,11 +785,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 18, - "real_time": 4.1251744555969097e+07, - "cpu_time": 4.0951560777777731e+07, + "iterations": 19, + "real_time": 3.7356791631617330e+07, + "cpu_time": 3.7145934894736871e+07, "time_unit": "ns", - "execution_us": 4.1251586388888893e+04, + "execution_us": 3.7356630842105267e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -801,11 +801,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 18, - "real_time": 4.2759174220716685e+07, - "cpu_time": 4.2333107500000089e+07, + "iterations": 19, + "real_time": 3.6780936842038311e+07, + "cpu_time": 3.6587893368420988e+07, "time_unit": "ns", - "execution_us": 4.2758950833333336e+04, + "execution_us": 3.6780794315789470e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -817,11 +817,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 18, - "real_time": 3.9226483723420344e+07, - "cpu_time": 3.8872807888888985e+07, + "iterations": 19, + "real_time": 3.5959773421047047e+07, + "cpu_time": 3.5775333947368443e+07, "time_unit": "ns", - "execution_us": 3.9225965277777781e+04, + "execution_us": 3.5959546789473679e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -835,10 +835,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1079134166702040e+07, - "cpu_time": 4.0719158722222261e+07, + "real_time": 3.6699167298234224e+07, + "cpu_time": 3.6503054070175432e+07, "time_unit": "ns", - "execution_us": 4.1078834166666667e+04, + "execution_us": 3.6698990649122803e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -852,10 +852,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.1251744555969097e+07, - "cpu_time": 4.0951560777777731e+07, + "real_time": 3.6780936842038304e+07, + "cpu_time": 3.6587893368420988e+07, "time_unit": "ns", - "execution_us": 4.1251586388888893e+04, + "execution_us": 3.6780794315789470e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -869,10 +869,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7726593855798303e+06, - "cpu_time": 1.7418169783977650e+06, + "real_time": 7.0208949848775752e+05, + "cpu_time": 6.8922784268140828e+05, "time_unit": "ns", - "execution_us": 1.7728167507255828e+03, + "execution_us": 7.0212523273231898e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -886,10 +886,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.3152306433389104e-02, - "cpu_time": 4.2776349832767485e-02, + "real_time": 1.9130938115904838e-02, + "cpu_time": 1.8881374729807530e-02, "time_unit": "ns", - "execution_us": 4.3156452384525826e-02, + "execution_us": 1.9132003913821579e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -901,13 +901,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 86, - "real_time": 6.2249071045296788e+06, - "cpu_time": 6.1874011511627994e+06, + "iterations": 117, + "real_time": 6.0592878803423746e+06, + "cpu_time": 6.0277963076923024e+06, "time_unit": "ns", - "execution_us": 6.2248486511627916e+03, + "execution_us": 6.0592385641025639e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.0054064400000000e+05, + "optimizer_us": 6.7728214999999997e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -919,13 +919,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 86, - "real_time": 6.1594512209372036e+06, - "cpu_time": 6.1196382906976361e+06, + "iterations": 117, + "real_time": 6.0116561880232226e+06, + "cpu_time": 5.9801104188034283e+06, "time_unit": "ns", - "execution_us": 6.1593888372093015e+03, + "execution_us": 6.0115675726495720e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 9.6677005999999994e+04, + "optimizer_us": 7.1048990000000005e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -937,13 +937,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 86, - "real_time": 6.1697281858488526e+06, - "cpu_time": 6.1054220697674267e+06, + "iterations": 117, + "real_time": 5.8206043589977603e+06, + "cpu_time": 5.7925040085469894e+06, "time_unit": "ns", - "execution_us": 6.1696627209302324e+03, + "execution_us": 5.8205405811965811e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 9.5469535999999993e+04, + "optimizer_us": 6.6036979999999996e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -957,12 +957,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1846955037719114e+06, - "cpu_time": 6.1374871705426201e+06, + "real_time": 5.9638494757877858e+06, + "cpu_time": 5.9334702450142391e+06, "time_unit": "ns", - "execution_us": 6.1846334031007755e+03, + "execution_us": 5.9637822393162396e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 9.7562395333333319e+04, + "optimizer_us": 6.8271394999999990e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -976,12 +976,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.1697281858488536e+06, - "cpu_time": 6.1196382906976370e+06, + "real_time": 6.0116561880232235e+06, + "cpu_time": 5.9801104188034274e+06, "time_unit": "ns", - "execution_us": 6.1696627209302324e+03, + "execution_us": 6.0115675726495720e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 9.6677005999999994e+04, + "optimizer_us": 6.7728214999999997e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -995,12 +995,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.5201329926092862e+04, - "cpu_time": 4.3807297684436846e+04, + "real_time": 1.2631930628945892e+05, + "cpu_time": 1.2438687980487074e+05, "time_unit": "ns", - "execution_us": 3.5204229918961289e+01, + "execution_us": 1.2632007093950280e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.6489563587574880e+03, + "optimizer_us": 2.5497734103889311e+03, "plan_cost": 0.0000000000000000e+00 }, { @@ -1014,12 +1014,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 5.6916835929310241e-03, - "cpu_time": 7.1376601640315640e-03, + "real_time": 2.1180834090849178e-02, + "cpu_time": 2.0963597130935343e-02, "time_unit": "ns", - "execution_us": 5.6922096467853737e-03, + "execution_us": 2.1181201102001616e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.7151407565456129e-02, + "optimizer_us": 3.7347609645136615e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1031,11 +1031,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 18, - "real_time": 4.1033127055723324e+07, - "cpu_time": 4.0584454111111037e+07, + "iterations": 20, + "real_time": 3.4855250100008562e+07, + "cpu_time": 3.4689481249999866e+07, "time_unit": "ns", - "execution_us": 4.1032914388888894e+04, + "execution_us": 3.4854925650000005e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1047,11 +1047,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 18, - "real_time": 3.9289269444351599e+07, - "cpu_time": 3.8939515833333343e+07, + "iterations": 20, + "real_time": 3.4714216350039348e+07, + "cpu_time": 3.4550395049999945e+07, "time_unit": "ns", - "execution_us": 3.9288995277777780e+04, + "execution_us": 3.4714046049999997e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1063,11 +1063,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 18, - "real_time": 3.8855656611202806e+07, - "cpu_time": 3.8583163833333209e+07, + "iterations": 20, + "real_time": 3.4567416099889673e+07, + "cpu_time": 3.4415430550000004e+07, "time_unit": "ns", - "execution_us": 3.8855447666666667e+04, + "execution_us": 3.4567268850000000e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1081,10 +1081,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9726017703759238e+07, - "cpu_time": 3.9369044592592523e+07, + "real_time": 3.4712294183312520e+07, + "cpu_time": 3.4551768949999936e+07, "time_unit": "ns", - "execution_us": 3.9725785777777783e+04, + "execution_us": 3.4712080183333324e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1098,10 +1098,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.9289269444351599e+07, - "cpu_time": 3.8939515833333336e+07, + "real_time": 3.4714216350039355e+07, + "cpu_time": 3.4550395049999945e+07, "time_unit": "ns", - "execution_us": 3.9288995277777780e+04, + "execution_us": 3.4714046049999997e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1115,10 +1115,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1525650375410754e+06, - "cpu_time": 1.0675494884335794e+06, + "real_time": 1.4392662696637286e+05, + "cpu_time": 1.3703051573725880e+05, "time_unit": "ns", - "execution_us": 1.1525752848571897e+03, + "execution_us": 1.4383847580339466e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1132,10 +1132,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.9012851127839304e-02, - "cpu_time": 2.7116469283952196e-02, + "real_time": 4.1462723900157440e-03, + "cpu_time": 3.9659479066196709e-03, "time_unit": "ns", - "execution_us": 2.9013278461113009e-02, + "execution_us": 4.1437584565288408e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1147,13 +1147,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 114, - "real_time": 6.1569213244263418e+06, - "cpu_time": 6.1190685350877037e+06, + "iterations": 120, + "real_time": 5.9461910583498441e+06, + "cpu_time": 5.9119624500000076e+06, "time_unit": "ns", - "execution_us": 6.1568678157894738e+03, + "execution_us": 5.9461413000000002e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.6719088000000003e+04, + "optimizer_us": 4.4858980000000003e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -1165,13 +1165,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 114, - "real_time": 6.3057996053350763e+06, - "cpu_time": 6.2677459824561384e+06, + "iterations": 120, + "real_time": 5.9969888416768909e+06, + "cpu_time": 5.9653847333333232e+06, "time_unit": "ns", - "execution_us": 6.3057347368421051e+03, + "execution_us": 5.9969197750000003e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.6200525999999998e+04, + "optimizer_us": 4.6036336000000003e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -1183,13 +1183,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 114, - "real_time": 6.2175831140178302e+06, - "cpu_time": 6.1819850263158157e+06, + "iterations": 120, + "real_time": 5.7678943499922752e+06, + "cpu_time": 5.7363008250000002e+06, "time_unit": "ns", - "execution_us": 6.2175010526315791e+03, + "execution_us": 5.7678408499999996e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.7193237000000001e+04, + "optimizer_us": 4.5913084999999999e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -1203,12 +1203,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2267680145930825e+06, - "cpu_time": 6.1895998479532190e+06, + "real_time": 5.9036914166730037e+06, + "cpu_time": 5.8712160027777767e+06, "time_unit": "ns", - "execution_us": 6.2267012017543857e+03, + "execution_us": 5.9036339750000006e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.6704283666666663e+04, + "optimizer_us": 4.5602800333333333e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -1222,12 +1222,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2175831140178293e+06, - "cpu_time": 6.1819850263158148e+06, + "real_time": 5.9461910583498441e+06, + "cpu_time": 5.9119624500000076e+06, "time_unit": "ns", - "execution_us": 6.2175010526315791e+03, + "execution_us": 5.9461413000000002e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.6719088000000003e+04, + "optimizer_us": 4.5913084999999999e+04, "plan_cost": 8.1671400000000000e+05 }, { @@ -1241,12 +1241,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.4862924271785974e+04, - "cpu_time": 7.4630657041381040e+04, + "real_time": 1.2031515360523395e+05, + "cpu_time": 1.1985434487430479e+05, "time_unit": "ns", - "execution_us": 7.4858680885055293e+01, + "execution_us": 1.2030977923165490e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.9652105554005288e+02, + "optimizer_us": 6.4710835140662664e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1260,12 +1260,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2022757889219074e-02, - "cpu_time": 1.2057428408083595e-02, + "real_time": 2.0379648107190021e-02, + "cpu_time": 2.0413887824532358e-02, "time_unit": "ns", - "execution_us": 1.2022205411745743e-02, + "execution_us": 2.0378936048733424e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.0631167348241018e-02, + "optimizer_us": 1.4190101192834495e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1277,11 +1277,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 69, - "real_time": 9.8831544059119523e+06, - "cpu_time": 9.8030000579710361e+06, + "iterations": 76, + "real_time": 9.1743526052979231e+06, + "cpu_time": 9.1179729078947455e+06, "time_unit": "ns", - "execution_us": 9.8830822028985513e+03, + "execution_us": 9.1742886710526309e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1293,11 +1293,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 69, - "real_time": 1.0546723652320603e+07, - "cpu_time": 1.0457263376811618e+07, + "iterations": 76, + "real_time": 9.4107480131481830e+06, + "cpu_time": 9.3477200789473876e+06, "time_unit": "ns", - "execution_us": 1.0546601478260869e+04, + "execution_us": 9.4106384868421064e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1309,11 +1309,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 69, - "real_time": 1.0047676724607827e+07, - "cpu_time": 9.9773581739130300e+06, + "iterations": 76, + "real_time": 9.0052268684590477e+06, + "cpu_time": 8.9515037763158120e+06, "time_unit": "ns", - "execution_us": 1.0047607507246375e+04, + "execution_us": 9.0051711973684214e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1327,10 +1327,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0159184927613461e+07, - "cpu_time": 1.0079207202898560e+07, + "real_time": 9.1967758289683852e+06, + "cpu_time": 9.1390655877193138e+06, "time_unit": "ns", - "execution_us": 1.0159097062801931e+04, + "execution_us": 9.1966994517543862e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1344,10 +1344,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0047676724607827e+07, - "cpu_time": 9.9773581739130300e+06, + "real_time": 9.1743526052979212e+06, + "cpu_time": 9.1179729078947455e+06, "time_unit": "ns", - "execution_us": 1.0047607507246375e+04, + "execution_us": 9.1742886710526309e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1361,10 +1361,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.4555259469142632e+05, - "cpu_time": 3.3881416901313176e+05, + "real_time": 2.0368836593519201e+05, + "cpu_time": 1.9894852468520761e+05, "time_unit": "ns", - "execution_us": 3.4552409169667351e+02, + "execution_us": 2.0366053379838627e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1378,10 +1378,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.4013810867069394e-02, - "cpu_time": 3.3615160616570737e-02, + "real_time": 2.2147801547321183e-02, + "cpu_time": 2.1769022530328062e-02, "time_unit": "ns", - "execution_us": 3.4011299386224804e-02, + "execution_us": 2.2144959163532898e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1393,13 +1393,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 102, - "real_time": 6.8782520687034093e+06, - "cpu_time": 6.8369275588235613e+06, + "iterations": 115, + "real_time": 6.0078362869440429e+06, + "cpu_time": 5.9798945304347947e+06, "time_unit": "ns", - "execution_us": 6.8781914509803928e+03, + "execution_us": 6.0077843391304350e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 6.0046502300000004e+05, + "optimizer_us": 3.0474788799999998e+05, "plan_cost": 8.4135300000000000e+05 }, { @@ -1411,13 +1411,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 102, - "real_time": 6.9017441764670229e+06, - "cpu_time": 6.8558411372549133e+06, + "iterations": 115, + "real_time": 6.0595493999995673e+06, + "cpu_time": 6.0307555652173972e+06, "time_unit": "ns", - "execution_us": 6.9016527549019611e+03, + "execution_us": 6.0595045391304348e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.8291862100000004e+05, + "optimizer_us": 3.0627205599999998e+05, "plan_cost": 8.4135300000000000e+05 }, { @@ -1429,13 +1429,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 102, - "real_time": 6.8780697648774143e+06, - "cpu_time": 6.8365134215685958e+06, + "iterations": 115, + "real_time": 6.0222565738987885e+06, + "cpu_time": 5.9944581304347729e+06, "time_unit": "ns", - "execution_us": 6.8780114117647054e+03, + "execution_us": 6.0221855217391303e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.9432770499999996e+05, + "optimizer_us": 3.0481579499999998e+05, "plan_cost": 8.4135300000000000e+05 }, { @@ -1449,12 +1449,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8860220033492818e+06, - "cpu_time": 6.8430940392156886e+06, + "real_time": 6.0298807536141323e+06, + "cpu_time": 6.0017027420289880e+06, "time_unit": "ns", - "execution_us": 6.8859518725490198e+03, + "execution_us": 6.0298247999999994e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.9257044966666657e+05, + "optimizer_us": 3.0527857966666657e+05, "plan_cost": 8.4135300000000000e+05 }, { @@ -1468,12 +1468,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.8782520687034102e+06, - "cpu_time": 6.8369275588235604e+06, + "real_time": 6.0222565738987885e+06, + "cpu_time": 5.9944581304347729e+06, "time_unit": "ns", - "execution_us": 6.8781914509803928e+03, + "execution_us": 6.0221855217391303e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.9432770499999996e+05, + "optimizer_us": 3.0481579499999998e+05, "plan_cost": 8.4135300000000000e+05 }, { @@ -1487,12 +1487,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3616106430417216e+04, - "cpu_time": 1.1041252589429097e+04, + "real_time": 2.6686281170886348e+04, + "cpu_time": 2.6193024122047806e+04, "time_unit": "ns", - "execution_us": 1.3597660957687383e+01, + "execution_us": 2.6692952277169827e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 8.9042133575335829e+03, + "optimizer_us": 8.6104544530950545e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1506,12 +1506,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.9773544760377615e-03, - "cpu_time": 1.6134883615737323e-03, + "real_time": 4.4256731204661689e-03, + "cpu_time": 4.3642654839637657e-03, "time_unit": "ns", - "execution_us": 1.9746959039743978e-03, + "execution_us": 4.4268205399881320e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.5026421520921929e-02, + "optimizer_us": 2.8205236222262312e-03, "plan_cost": 0.0000000000000000e+00 }, { @@ -1523,11 +1523,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 77, - "real_time": 8.3788510260033095e+06, - "cpu_time": 8.3200509740259629e+06, + "iterations": 85, + "real_time": 8.5987712588308454e+06, + "cpu_time": 8.5449464705882277e+06, "time_unit": "ns", - "execution_us": 8.3787966493506483e+03, + "execution_us": 8.5987177058823527e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1539,11 +1539,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 77, - "real_time": 8.8281584412234463e+06, - "cpu_time": 8.7636285974026620e+06, + "iterations": 85, + "real_time": 8.3122461647315715e+06, + "cpu_time": 8.2646852941176221e+06, "time_unit": "ns", - "execution_us": 8.8279837402597404e+03, + "execution_us": 8.3122011999999995e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1555,11 +1555,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 77, - "real_time": 8.4744980131644849e+06, - "cpu_time": 8.4218129350649528e+06, + "iterations": 85, + "real_time": 8.3148362235292811e+06, + "cpu_time": 8.2647834235293977e+06, "time_unit": "ns", - "execution_us": 8.4744425584415585e+03, + "execution_us": 8.3147847882352944e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1573,10 +1573,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.5605024934637472e+06, - "cpu_time": 8.5018308354978580e+06, + "real_time": 8.4086178823638987e+06, + "cpu_time": 8.3581383960784152e+06, "time_unit": "ns", - "execution_us": 8.5604076493506473e+03, + "execution_us": 8.4085678980392149e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1590,10 +1590,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.4744980131644849e+06, - "cpu_time": 8.4218129350649528e+06, + "real_time": 8.3148362235292820e+06, + "cpu_time": 8.2647834235293977e+06, "time_unit": "ns", - "execution_us": 8.4744425584415585e+03, + "execution_us": 8.3147847882352944e+03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1607,10 +1607,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.3667882523919325e+05, - "cpu_time": 2.3236270200357368e+05, + "real_time": 1.6468274662965687e+05, + "cpu_time": 1.6178054559774752e+05, "time_unit": "ns", - "execution_us": 2.3661098516580211e+02, + "execution_us": 1.6467963079606903e+02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1624,10 +1624,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.7647772478298568e-02, - "cpu_time": 2.7330901602203750e-02, + "real_time": 1.9584995885597305e-02, + "cpu_time": 1.9356050107240858e-02, "time_unit": "ns", - "execution_us": 2.7640153933995226e-02, + "execution_us": 1.9584741753048161e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1639,13 +1639,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 96, - "real_time": 7.0580967394562326e+06, - "cpu_time": 7.0143080833333647e+06, + "iterations": 107, + "real_time": 6.3523898691604808e+06, + "cpu_time": 6.3260480093458062e+06, "time_unit": "ns", - "execution_us": 7.0580443958333335e+03, + "execution_us": 6.3523282429906540e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.7497100000000000e+02, + "optimizer_us": 6.5599400000000003e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1657,13 +1657,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 96, - "real_time": 7.4431579687370686e+06, - "cpu_time": 7.3959720104166409e+06, + "iterations": 107, + "real_time": 6.3679439158689678e+06, + "cpu_time": 6.3429361869158233e+06, "time_unit": "ns", - "execution_us": 7.4431111249999994e+03, + "execution_us": 6.3678898598130836e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 6.0533000000000004e+02, + "optimizer_us": 6.6768600000000004e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1675,13 +1675,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 96, - "real_time": 7.0655000311793024e+06, - "cpu_time": 7.0253008229167098e+06, + "iterations": 107, + "real_time": 6.3869238411001293e+06, + "cpu_time": 6.3593958224299001e+06, "time_unit": "ns", - "execution_us": 7.0654420520833337e+03, + "execution_us": 6.3868742523364490e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.7840600000000001e+02, + "optimizer_us": 6.7205100000000004e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1695,12 +1695,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1889182464575348e+06, - "cpu_time": 7.1451936388889039e+06, + "real_time": 6.3690858753765263e+06, + "cpu_time": 6.3427933395638429e+06, "time_unit": "ns", - "execution_us": 7.1888658576388889e+03, + "execution_us": 6.3690307850467289e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.8623566666666670e+02, + "optimizer_us": 6.6524366666666674e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1714,12 +1714,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.0655000311793024e+06, - "cpu_time": 7.0253008229167098e+06, + "real_time": 6.3679439158689678e+06, + "cpu_time": 6.3429361869158223e+06, "time_unit": "ns", - "execution_us": 7.0654420520833337e+03, + "execution_us": 6.3678898598130836e+03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 2.7840600000000001e+02, + "optimizer_us": 6.6768600000000004e+02, "plan_cost": 7.0505700000000000e+05 }, { @@ -1733,12 +1733,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2020917208568883e+05, - "cpu_time": 2.1724997997805654e+05, + "real_time": 1.7295284273841808e+04, + "cpu_time": 1.6674365457499382e+04, "time_unit": "ns", - "execution_us": 2.2021392624253255e+02, + "execution_us": 1.7301241956305628e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.8974903156625930e+02, + "optimizer_us": 8.3024427931277049e+00, "plan_cost": 0.0000000000000000e+00 }, { @@ -1752,12 +1752,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.0631753559612503e-02, - "cpu_time": 3.0405051417450382e-02, + "real_time": 2.7155049582086766e-03, + "cpu_time": 2.6288678449432161e-03, "time_unit": "ns", - "execution_us": 3.0632638110576683e-02, + "execution_us": 2.7164638608633590e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.9127785945780761e-01, + "optimizer_us": 1.2480303397293079e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -1769,11 +1769,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 19, - "real_time": 3.7909600683059052e+07, - "cpu_time": 3.7677969894736625e+07, + "iterations": 20, + "real_time": 3.5077894499954708e+07, + "cpu_time": 3.4906336599999934e+07, "time_unit": "ns", - "execution_us": 3.7909416842105267e+04, + "execution_us": 3.5077743900000001e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1785,11 +1785,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 19, - "real_time": 3.9494915421145335e+07, - "cpu_time": 3.9245121894736789e+07, + "iterations": 20, + "real_time": 3.5094477299935535e+07, + "cpu_time": 3.4919402299999908e+07, "time_unit": "ns", - "execution_us": 3.9494756578947367e+04, + "execution_us": 3.5094321400000001e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1801,11 +1801,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 19, - "real_time": 3.8800745209875077e+07, - "cpu_time": 3.8599088842105582e+07, + "iterations": 20, + "real_time": 3.5089531149969846e+07, + "cpu_time": 3.4928554099999681e+07, "time_unit": "ns", - "execution_us": 3.8800563421052626e+04, + "execution_us": 3.5089357900000003e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1819,10 +1819,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8735087104693152e+07, - "cpu_time": 3.8507393543859661e+07, + "real_time": 3.5087300983286694e+07, + "cpu_time": 3.4918097666666500e+07, "time_unit": "ns", - "execution_us": 3.8734912280701748e+04, + "execution_us": 3.5087141066666663e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1836,10 +1836,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8800745209875070e+07, - "cpu_time": 3.8599088842105575e+07, + "real_time": 3.5089531149969846e+07, + "cpu_time": 3.4919402299999900e+07, "time_unit": "ns", - "execution_us": 3.8800563421052626e+04, + "execution_us": 3.5089357900000003e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -1853,10 +1853,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.9469424609725969e+05, - "cpu_time": 7.8758959399346344e+05, + "real_time": 8.5133745638521341e+03, + "cpu_time": 1.1166059193544061e+04, "time_unit": "ns", - "execution_us": 7.9470628188998705e+02, + "execution_us": 8.5081807416769717e+00, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1870,10 +1870,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.0516134220877339e-02, - "cpu_time": 2.0452944785691717e-02, + "real_time": 2.4263406774739814e-04, + "cpu_time": 3.1977856583531464e-04, "time_unit": "ns", - "execution_us": 2.0516537539338131e-02, + "execution_us": 2.4248714722898519e-04, "includes_order_by": 0.0000000000000000e+00 }, { @@ -1885,13 +1885,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 107, - "real_time": 6.5093752242642166e+06, - "cpu_time": 6.4705198785046889e+06, + "iterations": 118, + "real_time": 6.2030809491508249e+06, + "cpu_time": 6.1696264237288479e+06, "time_unit": "ns", - "execution_us": 6.5093192897196259e+03, + "execution_us": 6.2030278305084748e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.3311070000000000e+04, + "optimizer_us": 2.5802998000000000e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -1903,13 +1903,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 107, - "real_time": 6.9532377572477767e+06, - "cpu_time": 6.9063119065420460e+06, + "iterations": 118, + "real_time": 5.9932255338689005e+06, + "cpu_time": 5.9554913220338793e+06, "time_unit": "ns", - "execution_us": 6.9531818224299059e+03, + "execution_us": 5.9931459152542375e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.4958305000000000e+04, + "optimizer_us": 2.7717337000000000e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -1921,13 +1921,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 107, - "real_time": 6.6912628410527669e+06, - "cpu_time": 6.6498554112149999e+06, + "iterations": 118, + "real_time": 5.9333370000030743e+06, + "cpu_time": 5.8999043474576101e+06, "time_unit": "ns", - "execution_us": 6.6912169065420567e+03, + "execution_us": 5.9332841186440673e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.6059125999999997e+04, + "optimizer_us": 2.4845692999999999e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -1941,12 +1941,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.7179586075215871e+06, - "cpu_time": 6.6755623987539113e+06, + "real_time": 6.0432144943409329e+06, + "cpu_time": 6.0083406977401124e+06, "time_unit": "ns", - "execution_us": 6.7179060062305289e+03, + "execution_us": 6.0431526214689266e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.4776166999999994e+04, + "optimizer_us": 2.6122009333333328e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -1960,12 +1960,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6912628410527678e+06, - "cpu_time": 6.6498554112149999e+06, + "real_time": 5.9932255338689005e+06, + "cpu_time": 5.9554913220338784e+06, "time_unit": "ns", - "execution_us": 6.6912169065420567e+03, + "execution_us": 5.9931459152542375e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.4958305000000000e+04, + "optimizer_us": 2.5802998000000000e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -1979,12 +1979,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 2.2313221418513797e+05, - "cpu_time": 2.1903038563513034e+05, + "real_time": 1.4164964402453275e+05, + "cpu_time": 1.4241591200219796e+05, "time_unit": "ns", - "execution_us": 2.2313161590784301e+02, + "execution_us": 1.4165422874880181e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.3830522886237848e+03, + "optimizer_us": 1.4621597001629127e+03, "plan_cost": 0.0000000000000000e+00 }, { @@ -1998,12 +1998,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.3214288330879832e-02, - "cpu_time": 3.2810776463720194e-02, + "real_time": 2.3439453316968676e-02, + "cpu_time": 2.3703035358125436e-02, "time_unit": "ns", - "execution_us": 3.3214459342077632e-02, + "execution_us": 2.3440451966339634e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.0888134945177084e-02, + "optimizer_us": 5.5974243080033854e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2015,11 +2015,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 66, - "real_time": 9.3179495452204719e+06, - "cpu_time": 9.2642430303029995e+06, + "iterations": 78, + "real_time": 8.7739444743653070e+06, + "cpu_time": 8.7291653205127586e+06, "time_unit": "ns", - "execution_us": 9.3178409848484844e+03, + "execution_us": 8.7738903205128190e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2031,11 +2031,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 66, - "real_time": 9.3632982426435873e+06, - "cpu_time": 9.3043281666667294e+06, + "iterations": 78, + "real_time": 8.9239579359015729e+06, + "cpu_time": 8.8572377692307718e+06, "time_unit": "ns", - "execution_us": 9.3632396969696965e+03, + "execution_us": 8.9238945512820519e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2047,11 +2047,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 66, - "real_time": 9.2753472726502810e+06, - "cpu_time": 9.2177051969697662e+06, + "iterations": 78, + "real_time": 8.8748005127854403e+06, + "cpu_time": 8.8126808461538162e+06, "time_unit": "ns", - "execution_us": 9.2752774242424257e+03, + "execution_us": 8.8747350769230779e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2065,10 +2065,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.3188650201714467e+06, - "cpu_time": 9.2620921313131638e+06, + "real_time": 8.8575676410174407e+06, + "cpu_time": 8.7996946452991161e+06, "time_unit": "ns", - "execution_us": 9.3187860353535361e+03, + "execution_us": 8.8575066495726496e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2082,10 +2082,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.3179495452204719e+06, - "cpu_time": 9.2642430303029995e+06, + "real_time": 8.8748005127854403e+06, + "cpu_time": 8.8126808461538162e+06, "time_unit": "ns", - "execution_us": 9.3178409848484844e+03, + "execution_us": 8.8747350769230779e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2099,10 +2099,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 4.3982631247938174e+04, - "cpu_time": 4.3351522402878734e+04, + "real_time": 7.6477045984919881e+04, + "cpu_time": 6.5016298646360054e+04, "time_unit": "ns", - "execution_us": 4.3988750790961880e+01, + "execution_us": 7.6471768280086707e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2116,10 +2116,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 4.7197412080477790e-03, - "cpu_time": 4.6805324097691121e-03, + "real_time": 8.6340911054149389e-03, + "cpu_time": 7.3884721308019943e-03, "time_unit": "ns", - "execution_us": 4.7204379008250336e-03, + "execution_us": 8.6335547130270869e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2131,13 +2131,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 102, - "real_time": 6.5654401568120671e+06, - "cpu_time": 6.5274613137255525e+06, + "iterations": 113, + "real_time": 6.2648074336213972e+06, + "cpu_time": 6.2272059203540171e+06, "time_unit": "ns", - "execution_us": 6.5653815490196075e+03, + "execution_us": 6.2647564247787614e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.2866576999999999e+04, + "optimizer_us": 8.1452629999999999e+03, "plan_cost": 8.4132300000000000e+05 }, { @@ -2149,13 +2149,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 102, - "real_time": 6.8956978137458796e+06, - "cpu_time": 6.8524312254901631e+06, + "iterations": 113, + "real_time": 6.3246390177040007e+06, + "cpu_time": 6.2809157699115071e+06, "time_unit": "ns", - "execution_us": 6.8956396470588234e+03, + "execution_us": 6.3245860000000002e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.3972527000000000e+04, + "optimizer_us": 8.0695810000000001e+03, "plan_cost": 8.4132300000000000e+05 }, { @@ -2167,13 +2167,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 102, - "real_time": 6.6110592058120184e+06, - "cpu_time": 6.5736407254901808e+06, + "iterations": 113, + "real_time": 6.2407934070764156e+06, + "cpu_time": 6.2087686106194602e+06, "time_unit": "ns", - "execution_us": 6.6110030490196077e+03, + "execution_us": 6.2407438938053101e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.2957645000000000e+04, + "optimizer_us": 7.8922929999999997e+03, "plan_cost": 8.4132300000000000e+05 }, { @@ -2187,12 +2187,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6907323921233220e+06, - "cpu_time": 6.6511777549019651e+06, + "real_time": 6.2767466194672706e+06, + "cpu_time": 6.2389634336283281e+06, "time_unit": "ns", - "execution_us": 6.6906747483660120e+03, + "execution_us": 6.2766954395280236e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.3265582999999999e+04, + "optimizer_us": 8.0357123333333338e+03, "plan_cost": 8.4132300000000000e+05 }, { @@ -2206,12 +2206,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.6110592058120184e+06, - "cpu_time": 6.5736407254901817e+06, + "real_time": 6.2648074336213982e+06, + "cpu_time": 6.2272059203540171e+06, "time_unit": "ns", - "execution_us": 6.6110030490196077e+03, + "execution_us": 6.2647564247787614e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.2957645000000000e+04, + "optimizer_us": 8.0695810000000001e+03, "plan_cost": 8.4132300000000000e+05 }, { @@ -2225,12 +2225,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.7896477992501413e+05, - "cpu_time": 1.7581340701320700e+05, + "real_time": 4.3179042652491240e+04, + "cpu_time": 3.7483096020353565e+04, "time_unit": "ns", - "execution_us": 1.7896448694560124e+02, + "execution_us": 4.3177305933555296e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 6.1392239697539685e+02, + "optimizer_us": 1.2984132686206229e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2244,12 +2244,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.6748159907830239e-02, - "cpu_time": 2.6433424799635119e-02, + "real_time": 6.8792075370020253e-03, + "cpu_time": 6.0079044250071715e-03, "time_unit": "ns", - "execution_us": 2.6748346568379777e-02, + "execution_us": 6.8789869366040193e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 4.6279337815412783e-02, + "optimizer_us": 1.6158035713083094e-02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2261,11 +2261,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 19, - "real_time": 3.7398959894505285e+07, - "cpu_time": 3.7196774157894716e+07, + "iterations": 18, + "real_time": 3.7342755611057833e+07, + "cpu_time": 3.6945452277777635e+07, "time_unit": "ns", - "execution_us": 3.7398766473684205e+04, + "execution_us": 3.7342568388888889e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2277,11 +2277,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 19, - "real_time": 3.8067251420886211e+07, - "cpu_time": 3.7869327842105128e+07, + "iterations": 18, + "real_time": 3.7229172110932678e+07, + "cpu_time": 3.6959886055555552e+07, "time_unit": "ns", - "execution_us": 3.8067074052631579e+04, + "execution_us": 3.7229003333333334e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2293,11 +2293,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 19, - "real_time": 3.8827530158941001e+07, - "cpu_time": 3.8608999368420884e+07, + "iterations": 18, + "real_time": 3.7165874166627571e+07, + "cpu_time": 3.6779724500000156e+07, "time_unit": "ns", - "execution_us": 3.8827290789473685e+04, + "execution_us": 3.7165154833333334e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2311,10 +2311,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8097913824777491e+07, - "cpu_time": 3.7891700456140235e+07, + "real_time": 3.7245933962872691e+07, + "cpu_time": 3.6895020944444448e+07, "time_unit": "ns", - "execution_us": 3.8097710438596492e+04, + "execution_us": 3.7245575518518519e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2328,10 +2328,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.8067251420886211e+07, - "cpu_time": 3.7869327842105120e+07, + "real_time": 3.7229172110932671e+07, + "cpu_time": 3.6945452277777627e+07, "time_unit": "ns", - "execution_us": 3.8067074052631579e+04, + "execution_us": 3.7229003333333334e+04, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2345,10 +2345,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 7.1477855827294791e+05, - "cpu_time": 7.0637837715073663e+05, + "real_time": 8.9624110071916934e+04, + "cpu_time": 1.0011011967390560e+05, "time_unit": "ns", - "execution_us": 7.1475476305421307e+02, + "execution_us": 8.9860282744119473e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2362,10 +2362,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.8761619377911501e-02, - "cpu_time": 1.8642034235659910e-02, + "real_time": 2.4062790360219076e-03, + "cpu_time": 2.7133774994910227e-03, "time_unit": "ns", - "execution_us": 1.8761094953624841e-02, + "execution_us": 2.4126431527267149e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2377,13 +2377,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 108, - "real_time": 6.4433846111771548e+06, - "cpu_time": 6.4086453518518452e+06, + "iterations": 117, + "real_time": 5.9173903247673847e+06, + "cpu_time": 5.8888248376068221e+06, "time_unit": "ns", - "execution_us": 6.4433291574074074e+03, + "execution_us": 5.9173418461538467e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.4948385999999999e+04, + "optimizer_us": 2.4953026999999998e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -2395,13 +2395,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 108, - "real_time": 6.7454733240689766e+06, - "cpu_time": 6.7074569629629441e+06, + "iterations": 117, + "real_time": 5.9332453589672502e+06, + "cpu_time": 5.8993699743589880e+06, "time_unit": "ns", - "execution_us": 6.7454215092592594e+03, + "execution_us": 5.9331977350427351e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.3795580999999998e+04, + "optimizer_us": 2.4968883999999998e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -2413,13 +2413,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 108, - "real_time": 6.3975821203375403e+06, - "cpu_time": 6.3593784629630046e+06, + "iterations": 117, + "real_time": 5.8938555470003616e+06, + "cpu_time": 5.8657791965811811e+06, "time_unit": "ns", - "execution_us": 6.3975007222222221e+03, + "execution_us": 5.8938118803418802e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.3479989999999998e+04, + "optimizer_us": 2.5167903999999999e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -2433,12 +2433,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.5288133518612236e+06, - "cpu_time": 6.4918269259259319e+06, + "real_time": 5.9148304102449985e+06, + "cpu_time": 5.8846580028489968e+06, "time_unit": "ns", - "execution_us": 6.5287504629629630e+03, + "execution_us": 5.9147838205128210e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.4074652333333332e+04, + "optimizer_us": 2.5029938333333328e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -2452,12 +2452,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.4433846111771539e+06, - "cpu_time": 6.4086453518518442e+06, + "real_time": 5.9173903247673847e+06, + "cpu_time": 5.8888248376068212e+06, "time_unit": "ns", - "execution_us": 6.4433291574074074e+03, + "execution_us": 5.9173418461538467e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 4.3795580999999998e+04, + "optimizer_us": 2.4968883999999998e+04, "plan_cost": 8.1637400000000000e+05 }, { @@ -2471,12 +2471,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.8902546047977512e+05, - "cpu_time": 1.8835880982746891e+05, + "real_time": 1.9819288419988934e+04, + "cpu_time": 1.7178677826489915e+04, "time_unit": "ns", - "execution_us": 1.8903655227287305e+02, + "execution_us": 1.9817139273891375e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 7.7295362734161870e+02, + "optimizer_us": 1.1974454057016273e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2490,12 +2490,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 2.8952498760879426e-02, - "cpu_time": 2.9014761480352199e-02, + "real_time": 3.3507788128058946e-03, + "cpu_time": 2.9192312991125459e-03, "time_unit": "ns", - "execution_us": 2.8954476564123727e-02, + "execution_us": 3.3504418547241508e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.7537373216147633e-02, + "optimizer_us": 4.7840525603970157e-03, "plan_cost": 0.0000000000000000e+00 }, { @@ -2507,11 +2507,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 69, - "real_time": 9.8277976233647149e+06, - "cpu_time": 9.7621290000000037e+06, + "iterations": 76, + "real_time": 9.1387127236693650e+06, + "cpu_time": 9.0868170394736659e+06, "time_unit": "ns", - "execution_us": 9.8277216956521734e+03, + "execution_us": 9.1386464999999989e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2523,11 +2523,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 69, - "real_time": 9.8669190867466554e+06, - "cpu_time": 9.8087898405797295e+06, + "iterations": 76, + "real_time": 9.1050921447324641e+06, + "cpu_time": 9.0507583157894276e+06, "time_unit": "ns", - "execution_us": 9.8668331014492760e+03, + "execution_us": 9.1050355394736835e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2539,11 +2539,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 69, - "real_time": 1.0489353260946581e+07, - "cpu_time": 1.0391958608695602e+07, + "iterations": 76, + "real_time": 9.2715982631201968e+06, + "cpu_time": 9.1604126315789502e+06, "time_unit": "ns", - "execution_us": 1.0489292014492754e+04, + "execution_us": 9.2715299473684208e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2557,10 +2557,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0061356657019317e+07, - "cpu_time": 9.9876258164251093e+06, + "real_time": 9.1718010438406747e+06, + "cpu_time": 9.0993293289473448e+06, "time_unit": "ns", - "execution_us": 1.0061282270531399e+04, + "execution_us": 9.1717373289473671e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2574,10 +2574,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.8669190867466554e+06, - "cpu_time": 9.8087898405797295e+06, + "real_time": 9.1387127236693650e+06, + "cpu_time": 9.0868170394736659e+06, "time_unit": "ns", - "execution_us": 9.8668331014492760e+03, + "execution_us": 9.1386464999999989e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2591,10 +2591,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.7117171491677378e+05, - "cpu_time": 3.5093883183518582e+05, + "real_time": 8.8046576105792265e+04, + "cpu_time": 5.5887702437635016e+04, "time_unit": "ns", - "execution_us": 3.7118281373241041e+02, + "execution_us": 8.8041746832879284e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2608,10 +2608,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.6890821741998918e-02, - "cpu_time": 3.5137362801282643e-02, + "real_time": 9.5997041022733449e-03, + "cpu_time": 6.1419584254239074e-03, "time_unit": "ns", - "execution_us": 3.6892197609798887e-02, + "execution_us": 9.5992442516868032e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2623,13 +2623,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 59, - "real_time": 1.2170481762919828e+07, - "cpu_time": 1.2093918372881362e+07, + "iterations": 98, + "real_time": 7.2647804796101162e+06, + "cpu_time": 7.2131055816327147e+06, "time_unit": "ns", - "execution_us": 1.2170416067796610e+04, + "execution_us": 7.2646960816326537e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.6894990649999999e+06, + "optimizer_us": 3.7666830269999998e+06, "plan_cost": 8.4282300000000000e+05 }, { @@ -2641,13 +2641,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 59, - "real_time": 1.2032078118833035e+07, - "cpu_time": 1.1957276084745813e+07, + "iterations": 98, + "real_time": 7.0410532755014012e+06, + "cpu_time": 6.9883607653061263e+06, "time_unit": "ns", - "execution_us": 1.2032003779661018e+04, + "execution_us": 7.0409964795918368e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7099911180000000e+06, + "optimizer_us": 3.7000544929999998e+06, "plan_cost": 8.4282300000000000e+05 }, { @@ -2659,13 +2659,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 59, - "real_time": 1.1475812000029135e+07, - "cpu_time": 1.1419816338983040e+07, + "iterations": 98, + "real_time": 7.1415873877338860e+06, + "cpu_time": 7.0944541224489762e+06, "time_unit": "ns", - "execution_us": 1.1475746593220339e+04, + "execution_us": 7.1415274897959189e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7165718210000000e+06, + "optimizer_us": 3.7497210860000001e+06, "plan_cost": 8.4282300000000000e+05 }, { @@ -2679,12 +2679,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.1892790627260664e+07, - "cpu_time": 1.1823670265536739e+07, + "real_time": 7.1491403809484662e+06, + "cpu_time": 7.0986401564626051e+06, "time_unit": "ns", - "execution_us": 1.1892722146892655e+04, + "execution_us": 7.1490733503401361e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7053540013333336e+06, + "optimizer_us": 3.7388195353333326e+06, "plan_cost": 8.4282300000000000e+05 }, { @@ -2698,12 +2698,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.2032078118833035e+07, - "cpu_time": 1.1957276084745815e+07, + "real_time": 7.1415873877338851e+06, + "cpu_time": 7.0944541224489762e+06, "time_unit": "ns", - "execution_us": 1.2032003779661018e+04, + "execution_us": 7.1415274897959189e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 1.7099911180000000e+06, + "optimizer_us": 3.7497210860000001e+06, "plan_cost": 8.4282300000000000e+05 }, { @@ -2717,12 +2717,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 3.6768501988806593e+05, - "cpu_time": 3.5635835085120163e+05, + "real_time": 1.1205467970793806e+05, + "cpu_time": 1.1243086887949352e+05, "time_unit": "ns", - "execution_us": 3.6768321915338271e+02, + "execution_us": 1.1204054175534115e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.4119513716582927e+04, + "optimizer_us": 3.4626192989686067e+04, "plan_cost": 0.0000000000000000e+00 }, { @@ -2736,12 +2736,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 3.0916631042444992e-02, - "cpu_time": 3.0139401966401556e-02, + "real_time": 1.5673867589248811e-02, + "cpu_time": 1.5838367124038032e-02, "time_unit": "ns", - "execution_us": 3.0916657650952643e-02, + "execution_us": 1.5672036957070881e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 8.2795206775505645e-03, + "optimizer_us": 9.2612635251460417e-03, "plan_cost": 0.0000000000000000e+00 }, { @@ -2753,11 +2753,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 70, - "real_time": 9.6278379717010204e+06, - "cpu_time": 9.5697546142856386e+06, + "iterations": 76, + "real_time": 9.0425540394885745e+06, + "cpu_time": 8.9781499736841619e+06, "time_unit": "ns", - "execution_us": 9.6277589142857141e+03, + "execution_us": 9.0424679999999989e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2769,11 +2769,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 70, - "real_time": 9.4915599429181647e+06, - "cpu_time": 9.4258588000000399e+06, + "iterations": 76, + "real_time": 9.1915130789474398e+06, + "cpu_time": 9.1151476842104122e+06, "time_unit": "ns", - "execution_us": 9.4914928571428572e+03, + "execution_us": 9.1914571052631582e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2785,11 +2785,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 70, - "real_time": 9.5405256712443326e+06, - "cpu_time": 9.4795176000001132e+06, + "iterations": 76, + "real_time": 9.0993060131567251e+06, + "cpu_time": 9.0332166447369102e+06, "time_unit": "ns", - "execution_us": 9.5404531571428579e+03, + "execution_us": 9.0992465526315791e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2803,10 +2803,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5533078619545065e+06, - "cpu_time": 9.4917103380952645e+06, + "real_time": 9.1111243771975804e+06, + "cpu_time": 9.0421714342104942e+06, "time_unit": "ns", - "execution_us": 9.5532349761904770e+03, + "execution_us": 9.1110572192982454e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2820,10 +2820,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5405256712443326e+06, - "cpu_time": 9.4795176000001151e+06, + "real_time": 9.0993060131567232e+06, + "cpu_time": 9.0332166447369084e+06, "time_unit": "ns", - "execution_us": 9.5404531571428579e+03, + "execution_us": 9.0992465526315791e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -2837,10 +2837,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.9032337217831679e+04, - "cpu_time": 7.2718625460879979e+04, + "real_time": 7.5179479617513076e+04, + "cpu_time": 6.8936451629408257e+04, "time_unit": "ns", - "execution_us": 6.9026377247445780e+01, + "execution_us": 7.5193465521336293e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2854,10 +2854,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 7.2260140901298647e-03, - "cpu_time": 7.6612773536737207e-03, + "real_time": 8.2513942851734998e-03, + "cpu_time": 7.6238823971630830e-03, "time_unit": "ns", - "execution_us": 7.2254453511800126e-03, + "execution_us": 8.2529901537735997e-03, "includes_order_by": 0.0000000000000000e+00 }, { @@ -2869,13 +2869,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 54, - "real_time": 1.2863843851610674e+07, - "cpu_time": 1.2800047574074034e+07, + "iterations": 71, + "real_time": 9.6118449718502015e+06, + "cpu_time": 9.5573261408451591e+06, "time_unit": "ns", - "execution_us": 1.2863761981481481e+04, + "execution_us": 9.6117805774647877e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.3953727099999995e+05, + "optimizer_us": 1.0109361800000000e+05, "plan_cost": 8.4279300000000000e+05 }, { @@ -2887,13 +2887,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 54, - "real_time": 1.3123589462742934e+07, - "cpu_time": 1.3043514370370386e+07, + "iterations": 71, + "real_time": 9.5582830986195784e+06, + "cpu_time": 9.4922426619718522e+06, "time_unit": "ns", - "execution_us": 1.3123442092592593e+04, + "execution_us": 9.5582168169014076e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.4747992000000004e+05, + "optimizer_us": 9.9442232000000004e+04, "plan_cost": 8.4279300000000000e+05 }, { @@ -2905,13 +2905,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 54, - "real_time": 1.3179273685198966e+07, - "cpu_time": 1.3086517425925855e+07, + "iterations": 71, + "real_time": 9.3946305633822624e+06, + "cpu_time": 9.3367950845069978e+06, "time_unit": "ns", - "execution_us": 1.3179186222222223e+04, + "execution_us": 9.3945698732394376e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.1924559499999997e+05, + "optimizer_us": 1.0041698500000000e+05, "plan_cost": 8.4279300000000000e+05 }, { @@ -2925,12 +2925,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3055568999850856e+07, - "cpu_time": 1.2976693123456756e+07, + "real_time": 9.5215862112840135e+06, + "cpu_time": 9.4621212957746703e+06, "time_unit": "ns", - "execution_us": 1.3055463432098764e+04, + "execution_us": 9.5215224225352104e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.3542092866666673e+05, + "optimizer_us": 1.0031761166666666e+05, "plan_cost": 8.4279300000000000e+05 }, { @@ -2944,12 +2944,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.3123589462742932e+07, - "cpu_time": 1.3043514370370382e+07, + "real_time": 9.5582830986195784e+06, + "cpu_time": 9.4922426619718522e+06, "time_unit": "ns", - "execution_us": 1.3123442092592593e+04, + "execution_us": 9.5582168169014076e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 7.3953727099999995e+05, + "optimizer_us": 1.0041698500000000e+05, "plan_cost": 8.4279300000000000e+05 }, { @@ -2963,12 +2963,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.6835700908612020e+05, - "cpu_time": 1.5448318123455989e+05, + "real_time": 1.1316148181518832e+05, + "cpu_time": 1.1330913126753959e+05, "time_unit": "ns", - "execution_us": 1.6834172573571180e+02, + "execution_us": 1.1315909791507667e+02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.4560305034755940e+04, + "optimizer_us": 8.3016578150683313e+02, "plan_cost": 0.0000000000000000e+00 }, { @@ -2982,12 +2982,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.2895417203803484e-02, - "cpu_time": 1.1904664752787831e-02, + "real_time": 1.1884730054860067e-02, + "cpu_time": 1.1975024175407476e-02, "time_unit": "ns", - "execution_us": 1.2894350829539998e-02, + "execution_us": 1.1884559306110085e-02, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.9798600321524806e-02, + "optimizer_us": 8.2753742609552074e-03, "plan_cost": 0.0000000000000000e+00 }, { @@ -2999,11 +2999,11 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 64, - "real_time": 9.6015775779960677e+06, - "cpu_time": 9.4240870624999758e+06, + "iterations": 80, + "real_time": 8.5355717249967717e+06, + "cpu_time": 8.4840434624998905e+06, "time_unit": "ns", - "execution_us": 9.6015101718749993e+03, + "execution_us": 8.5349807499999988e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3015,11 +3015,11 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 64, - "real_time": 9.4633789062754661e+06, - "cpu_time": 9.4057306249999423e+06, + "iterations": 80, + "real_time": 8.7283317875062488e+06, + "cpu_time": 8.6733479500001203e+06, "time_unit": "ns", - "execution_us": 9.4633035624999993e+03, + "execution_us": 8.7282722749999994e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3031,11 +3031,11 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 64, - "real_time": 9.4466778596142828e+06, - "cpu_time": 9.3827825468750801e+06, + "iterations": 80, + "real_time": 8.6581378375285566e+06, + "cpu_time": 8.5737115625001080e+06, "time_unit": "ns", - "execution_us": 9.4466047187500008e+03, + "execution_us": 8.6580729000000010e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3049,10 +3049,10 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.5038781146286055e+06, - "cpu_time": 9.4042000781249981e+06, + "real_time": 8.6406804500105251e+06, + "cpu_time": 8.5770343250000384e+06, "time_unit": "ns", - "execution_us": 9.5038061510416665e+03, + "execution_us": 8.6404419749999979e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3066,10 +3066,10 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 9.4633789062754661e+06, - "cpu_time": 9.4057306249999423e+06, + "real_time": 8.6581378375285566e+06, + "cpu_time": 8.5737115625001080e+06, "time_unit": "ns", - "execution_us": 9.4633035624999993e+03, + "execution_us": 8.6580729000000010e+03, "includes_order_by": 1.0000000000000000e+00 }, { @@ -3083,10 +3083,10 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 8.5021292019139873e+04, - "cpu_time": 2.0694750133421130e+04, + "real_time": 9.7558601409023788e+04, + "cpu_time": 9.4695975679618903e+04, "time_unit": "ns", - "execution_us": 8.5025111648877925e+01, + "execution_us": 9.7844471210802425e+01, "includes_order_by": 0.0000000000000000e+00 }, { @@ -3100,10 +3100,10 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 8.9459577441626682e-03, - "cpu_time": 2.2005859043300185e-03, + "real_time": 1.1290615591380299e-02, + "cpu_time": 1.1040643198034361e-02, "time_unit": "ns", - "execution_us": 8.9464273889423487e-03, + "execution_us": 1.1324012300979829e-02, "includes_order_by": 0.0000000000000000e+00 }, { @@ -3115,13 +3115,13 @@ "repetitions": 3, "repetition_index": 0, "threads": 1, - "iterations": 106, - "real_time": 6.2337937923521679e+06, - "cpu_time": 6.1994316603774205e+06, + "iterations": 114, + "real_time": 6.0918677368215611e+06, + "cpu_time": 6.0557457368420251e+06, "time_unit": "ns", - "execution_us": 6.2337179245283014e+03, + "execution_us": 6.0918212894736844e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.2146959999999999e+03, + "optimizer_us": 4.4798770000000004e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -3133,13 +3133,13 @@ "repetitions": 3, "repetition_index": 1, "threads": 1, - "iterations": 106, - "real_time": 6.4182148961886270e+06, - "cpu_time": 6.3774029433961688e+06, + "iterations": 114, + "real_time": 6.0794830087775560e+06, + "cpu_time": 6.0390325350876907e+06, "time_unit": "ns", - "execution_us": 6.4181481415094340e+03, + "execution_us": 6.0794388245614027e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.6024849999999997e+03, + "optimizer_us": 4.5196109999999999e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -3151,13 +3151,13 @@ "repetitions": 3, "repetition_index": 2, "threads": 1, - "iterations": 106, - "real_time": 6.2254421887392141e+06, - "cpu_time": 6.1920818396226596e+06, + "iterations": 114, + "real_time": 6.0435537719361791e+06, + "cpu_time": 6.0123747456140062e+06, "time_unit": "ns", - "execution_us": 6.2253759528301889e+03, + "execution_us": 6.0435049736842111e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.3557669999999998e+03, + "optimizer_us": 4.6384939999999997e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -3171,12 +3171,12 @@ "aggregate_name": "mean", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2924836257600030e+06, - "cpu_time": 6.2563054811320826e+06, + "real_time": 6.0716348391784308e+06, + "cpu_time": 6.0357176725145727e+06, "time_unit": "ns", - "execution_us": 6.2924140062893075e+03, + "execution_us": 6.0715883625730985e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.3909826666666668e+03, + "optimizer_us": 4.5459939999999997e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -3190,12 +3190,12 @@ "aggregate_name": "median", "aggregate_unit": "time", "iterations": 3, - "real_time": 6.2337937923521670e+06, - "cpu_time": 6.1994316603774205e+06, + "real_time": 6.0794830087775551e+06, + "cpu_time": 6.0390325350876898e+06, "time_unit": "ns", - "execution_us": 6.2337179245283014e+03, + "execution_us": 6.0794388245614027e+03, "includes_order_by": 1.0000000000000000e+00, - "optimizer_us": 5.3557669999999998e+03, + "optimizer_us": 4.5196109999999999e+03, "plan_cost": 8.3622300000000000e+05 }, { @@ -3209,12 +3209,12 @@ "aggregate_name": "stddev", "aggregate_unit": "time", "iterations": 3, - "real_time": 1.0896651592772501e+05, - "cpu_time": 1.0493784584879056e+05, + "real_time": 2.5094922300718245e+04, + "cpu_time": 2.1874687550823292e+04, "time_unit": "ns", - "execution_us": 1.0896881064158120e+02, + "execution_us": 2.5096591560550149e+01, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 1.9627833429681101e+02, + "optimizer_us": 8.2534145594462700e+01, "plan_cost": 0.0000000000000000e+00 }, { @@ -3228,12 +3228,12 @@ "aggregate_name": "cv", "aggregate_unit": "percentage", "iterations": 3, - "real_time": 1.7316932773832061e-02, - "cpu_time": 1.6773133307710859e-02, + "real_time": 4.1331409028073076e-03, + "cpu_time": 3.6242065546631111e-03, "time_unit": "ns", - "execution_us": 1.7317489048347134e-02, + "execution_us": 4.1334474707231932e-03, "includes_order_by": 0.0000000000000000e+00, - "optimizer_us": 3.6408637614517340e-02, + "optimizer_us": 1.8155357352971146e-02, "plan_cost": 0.0000000000000000e+00 } ] diff --git a/research/benchmarks.ipynb b/research/benchmarks.ipynb index 22b41b0..629f6fe 100644 --- a/research/benchmarks.ipynb +++ b/research/benchmarks.ipynb @@ -2,98 +2,76 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "b5291871", "metadata": {}, "outputs": [ { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mFailed to start the Kernel. \n", - "\u001b[1;31mFailed to find the URL of the launched Jupyter notebook server\n", - "\u001b[1;31m[W 2026-06-14 17:27:38.911 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m Traceback (most recent call last):\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", - "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", - "\u001b[1;31m self._load_metadata()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", - "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", - "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", - "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", - "\u001b[1;31m from .labapp import LabApp\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", - "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", - "\u001b[1;31m from .pypi import PyPIExtensionManager\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", - "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", - "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", - "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", - "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", - "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m[I 2026-06-14 17:27:38.917 ServerApp] jupyter_lsp | extension was successfully linked.\n", - "\u001b[1;31m[I 2026-06-14 17:27:38.923 ServerApp] jupyter_server_terminals | extension was successfully linked.\n", - "\u001b[1;31m[W 2026-06-14 17:27:38.926 JupyterNotebookApp] 'iopub_data_rate_limit' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.\n", - "\u001b[1;31m[W 2026-06-14 17:27:38.931 ServerApp] ServerApp.iopub_data_rate_limit config is deprecated in 2.0. Use ZMQChannelsWebsocketConnection.iopub_data_rate_limit.\n", - "\u001b[1;31m[I 2026-06-14 17:27:38.932 ServerApp] notebook | extension was successfully linked.\n", - "\u001b[1;31m[W 2026-06-14 17:27:41.699 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m Traceback (most recent call last):\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", - "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", - "\u001b[1;31m self._load_metadata()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", - "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", - "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", - "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", - "\u001b[1;31m from .labapp import LabApp\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", - "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", - "\u001b[1;31m from .pypi import PyPIExtensionManager\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", - "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", - "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", - "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", - "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", - "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", - "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", - "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.702 ServerApp] notebook_shim | extension was successfully linked.\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.774 ServerApp] notebook_shim | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.778 ServerApp] jupyter_lsp | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.785 ServerApp] jupyter_server_terminals | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.816 ServerApp] notebook | extension was successfully loaded.\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.819 ServerApp] The port 8888 is already in use, trying another port.\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.821 ServerApp] Serving notebooks from local directory: /home/st/c/iu9-sql-compiler/research\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] Jupyter Server 2.17.0 is running at:\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] http://localhost:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] http://127.0.0.1:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", - "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n", - "\u001b[1;31m[C 2026-06-14 17:27:41.836 ServerApp] \n", - "\u001b[1;31m \n", - "\u001b[1;31m To access the server, open this file in a browser:\n", - "\u001b[1;31m file:///home/st/.local/share/jupyter/runtime/jpserver-29560-open.html\n", - "\u001b[1;31m Or copy and paste one of these URLs:\n", - "\u001b[1;31m http://localhost:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", - "\u001b[1;31m http://127.0.0.1:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", - "\u001b[1;31m[I 2026-06-14 17:27:42.864 ServerApp] Skipped non-installed server(s): basedpyright, bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyrefly, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server. \n", - "\u001b[1;31mView Jupyter log for further details." + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-14T20:44:00+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 0.80, 1.39, 1.86\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "----------------------------------------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations\n", + "----------------------------------------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 20437 ns 20203 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 20620 ns 20440 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 674 ns 749 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 3.30 % 3.71 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 20149 ns 19914 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 20169 ns 19933 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 50.4 ns 56.9 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.25 % 0.29 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19900 ns 19621 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19976 ns 19649 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 180 ns 140 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.91 % 0.71 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19747 ns 19643 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19954 ns 19790 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 365 ns 327 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.85 % 1.66 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 66637 ns 66004 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 66603 ns 65979 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 470 ns 438 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 43217 ns 43051 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 42605 ns 42458 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1444 ns 1398 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 3.34 % 3.25 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 66032 ns 65417 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 66131 ns 65515 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 434 ns 452 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.66 % 0.69 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 42778 ns 42624 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 42672 ns 42513 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 198 ns 193 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.46 % 0.45 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 82328 ns 81546 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 82548 ns 81742 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 767 ns 749 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.93 % 0.92 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 81952 ns 81234 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 81876 ns 81157 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 431 ns 409 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.53 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 78012 ns 77304 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 78003 ns 77279 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 141 ns 107 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.18 % 0.14 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 77614 ns 76895 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 77683 ns 76986 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 420 ns 392 ns \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 0.54 % 0.51 % \u001b[m\u001b[0;36m 3\u001b[m\n", + "\u001b[m" ] } ], @@ -104,37 +82,653 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "94b2cd75", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-14T20:44:28+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 1.59, 1.53, 1.90\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "----------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "----------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9348855 ns 9279593 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.34877k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9207349 ns 9150383 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.20727k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 431153 ns 409276 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=431.152\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.61 % 4.41 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.61%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 8476780 ns 8431744 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.47672k\u001b[m includes_order_by=1\u001b[m optimizer_us=4.86345k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 8353937 ns 8310103 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.35388k\u001b[m includes_order_by=1\u001b[m optimizer_us=4.93595k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 257001 ns 252587 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=257\u001b[m includes_order_by=0\u001b[m optimizer_us=290.07\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.03 % 3.00 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.03%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=5.96%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8327581 ns 8272691 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.32747k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8325392 ns 8272858 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.32515k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 6162 ns 6648 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.1976\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.07 % 0.08 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.07%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6667715 ns 6637523 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.66766k\u001b[m includes_order_by=0\u001b[m optimizer_us=1.50543k\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6669798 ns 6640485 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.66974k\u001b[m includes_order_by=0\u001b[m optimizer_us=1.54306k\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 74924 ns 68657 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=74.9286\u001b[m includes_order_by=0\u001b[m optimizer_us=85.1964\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.12 % 1.03 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.12%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=5.66%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8315161 ns 8259935 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.31511k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8321936 ns 8264698 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.32188k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 17476 ns 15033 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=17.4722\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.21 % 0.18 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.21%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6738973 ns 6709616 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.73891k\u001b[m includes_order_by=0\u001b[m optimizer_us=970.581\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6730765 ns 6700780 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.7307k\u001b[m includes_order_by=0\u001b[m optimizer_us=1.03781k\u001b[m plan_cost=654.297k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 44835 ns 42238 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=44.8477\u001b[m includes_order_by=0\u001b[m optimizer_us=134.145\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.63 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.67%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=13.82%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 36699167 ns 36503054 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=36.699k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 36780937 ns 36587893 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=36.7808k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 702089 ns 689228 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=702.125\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.91 % 1.89 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.91%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 5963849 ns 5933470 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.96378k\u001b[m includes_order_by=1\u001b[m optimizer_us=68.2714k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6011656 ns 5980110 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.01157k\u001b[m includes_order_by=1\u001b[m optimizer_us=67.7282k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 126319 ns 124387 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=126.32\u001b[m includes_order_by=0\u001b[m optimizer_us=2.54977k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.12 % 2.10 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.12%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.73%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 34712294 ns 34551769 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=34.7121k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 34714216 ns 34550395 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=34.714k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 143927 ns 137031 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=143.838\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.41 % 0.40 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.41%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 5903691 ns 5871216 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.90363k\u001b[m includes_order_by=1\u001b[m optimizer_us=45.6028k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 5946191 ns 5911962 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.94614k\u001b[m includes_order_by=1\u001b[m optimizer_us=45.9131k\u001b[m plan_cost=816.714k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 120315 ns 119854 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=120.31\u001b[m includes_order_by=0\u001b[m optimizer_us=647.108\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.04 % 2.04 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.04%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.42%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9196776 ns 9139066 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.1967k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9174353 ns 9117973 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.17429k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 203688 ns 198949 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=203.661\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.21 % 2.18 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.21%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6029881 ns 6001703 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.02982k\u001b[m includes_order_by=1\u001b[m optimizer_us=305.279k\u001b[m plan_cost=841.353k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6022257 ns 5994458 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.02219k\u001b[m includes_order_by=1\u001b[m optimizer_us=304.816k\u001b[m plan_cost=841.353k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 26686 ns 26193 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=26.693\u001b[m includes_order_by=0\u001b[m optimizer_us=861.045\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.44 % 0.44 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.44%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=0.28%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8408618 ns 8358138 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.40857k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8314836 ns 8264783 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.31478k\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 164683 ns 161781 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=164.68\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.96 % 1.94 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.96%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6369086 ns 6342793 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.36903k\u001b[m includes_order_by=0\u001b[m optimizer_us=665.244\u001b[m plan_cost=705.057k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6367944 ns 6342936 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.36789k\u001b[m includes_order_by=0\u001b[m optimizer_us=667.686\u001b[m plan_cost=705.057k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 17295 ns 16674 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=17.3012\u001b[m includes_order_by=0\u001b[m optimizer_us=8.30244\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.27 % 0.26 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.27%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.25%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 35087301 ns 34918098 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=35.0871k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 35089531 ns 34919402 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=35.0894k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 8513 ns 11166 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.50818\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.02 % 0.03 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.02%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6043214 ns 6008341 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.04315k\u001b[m includes_order_by=1\u001b[m optimizer_us=26.122k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 5993226 ns 5955491 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.99315k\u001b[m includes_order_by=1\u001b[m optimizer_us=25.803k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 141650 ns 142416 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=141.654\u001b[m includes_order_by=0\u001b[m optimizer_us=1.46216k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.34 % 2.37 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.34%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=5.60%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8857568 ns 8799695 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.85751k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8874801 ns 8812681 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.87474k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 76477 ns 65016 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=76.4718\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.74 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.86%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6276747 ns 6238963 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2767k\u001b[m includes_order_by=1\u001b[m optimizer_us=8.03571k\u001b[m plan_cost=841.323k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6264807 ns 6227206 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.26476k\u001b[m includes_order_by=1\u001b[m optimizer_us=8.06958k\u001b[m plan_cost=841.323k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 43179 ns 37483 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=43.1773\u001b[m includes_order_by=0\u001b[m optimizer_us=129.841\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.69 % 0.60 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.69%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.62%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 37245934 ns 36895021 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=37.2456k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 37229172 ns 36945452 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=37.229k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 89624 ns 100110 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=89.8603\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.24 % 0.27 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.24%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 5914830 ns 5884658 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.91478k\u001b[m includes_order_by=1\u001b[m optimizer_us=25.0299k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 5917390 ns 5888825 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=5.91734k\u001b[m includes_order_by=1\u001b[m optimizer_us=24.9689k\u001b[m plan_cost=816.374k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 19819 ns 17179 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=19.8171\u001b[m includes_order_by=0\u001b[m optimizer_us=119.745\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.34 % 0.29 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.34%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=0.48%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9171801 ns 9099329 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.17174k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9138713 ns 9086817 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.13865k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 88047 ns 55888 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=88.0417\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.96 % 0.61 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.96%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7149140 ns 7098640 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.14907k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.73882M\u001b[m plan_cost=842.823k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7141587 ns 7094454 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.14153k\u001b[m includes_order_by=1\u001b[m optimizer_us=3.74972M\u001b[m plan_cost=842.823k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 112055 ns 112431 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=112.041\u001b[m includes_order_by=0\u001b[m optimizer_us=34.6262k\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.57 % 1.58 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.57%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=0.93%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9111124 ns 9042171 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.11106k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9099306 ns 9033217 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.09925k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 75179 ns 68936 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=75.1935\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.83 % 0.76 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.83%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 9521586 ns 9462121 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.52152k\u001b[m includes_order_by=1\u001b[m optimizer_us=100.318k\u001b[m plan_cost=842.793k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 9558283 ns 9492243 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.55822k\u001b[m includes_order_by=1\u001b[m optimizer_us=100.417k\u001b[m plan_cost=842.793k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 113161 ns 113309 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=113.159\u001b[m includes_order_by=0\u001b[m optimizer_us=830.166\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.19 % 1.20 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.19%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=0.83%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8640680 ns 8577034 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.64044k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8658138 ns 8573712 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.65807k\u001b[m includes_order_by=1\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 97559 ns 94696 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=97.8445\u001b[m includes_order_by=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.13 % 1.10 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.13%\u001b[m includes_order_by=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6071635 ns 6035718 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.07159k\u001b[m includes_order_by=1\u001b[m optimizer_us=4.54599k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6079483 ns 6039033 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.07944k\u001b[m includes_order_by=1\u001b[m optimizer_us=4.51961k\u001b[m plan_cost=836.223k\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 25095 ns 21875 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=25.0966\u001b[m includes_order_by=0\u001b[m optimizer_us=82.5341\u001b[m plan_cost=0\u001b[m\n", + "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.41 % 0.36 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.41%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.82%\u001b[m plan_cost=0.00%\u001b[m\n", + "\u001b[m" + ] + } + ], "source": [ - "!cd .. && SSB_DATA_DIR=benchmarks/datasets/ssb/generated/sf001 timeout 180s ./build-release/bin/benchmarks --benchmark_filter='^SSB/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/ssb-sf001.json --benchmark_out_format=json" + "!rm -f benchmark-results/ssb-sf001.json\n", + "!cd .. && SSB_DATA_DIR=benchmarks/datasets/ssb/generated/sf001 timeout 600s ./build-release/bin/benchmarks --benchmark_filter='^SSB/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/ssb-sf001.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "6f8e3873", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-14T20:45:51+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 1.35, 1.47, 1.84\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "----------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "----------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCost/SeqScan/1024/real_time_mean \u001b[m\u001b[0;33m 39728 ns 39585 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_median \u001b[m\u001b[0;33m 39745 ns 39614 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_stddev \u001b[m\u001b[0;33m 234 ns 212 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_cv \u001b[m\u001b[0;33m 0.59 % 0.54 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_mean \u001b[m\u001b[0;33m 68177 ns 67893 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_median \u001b[m\u001b[0;33m 67391 ns 67122 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_stddev \u001b[m\u001b[0;33m 1605 ns 1523 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_cv \u001b[m\u001b[0;33m 2.35 % 2.24 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_mean \u001b[m\u001b[0;33m 162377 ns 160772 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_median \u001b[m\u001b[0;33m 165623 ns 163832 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_stddev \u001b[m\u001b[0;33m 5953 ns 5859 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_cv \u001b[m\u001b[0;33m 3.67 % 3.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_mean \u001b[m\u001b[0;33m 360639 ns 357681 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_median \u001b[m\u001b[0;33m 360693 ns 357881 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_stddev \u001b[m\u001b[0;33m 1345 ns 1523 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_cv \u001b[m\u001b[0;33m 0.37 % 0.43 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_mean \u001b[m\u001b[0;33m 791876 ns 785262 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_median \u001b[m\u001b[0;33m 785508 ns 779556 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_stddev \u001b[m\u001b[0;33m 34264 ns 33251 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_cv \u001b[m\u001b[0;33m 4.33 % 4.23 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_mean \u001b[m\u001b[0;33m 1862931 ns 1843550 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_median \u001b[m\u001b[0;33m 1859691 ns 1838972 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_stddev \u001b[m\u001b[0;33m 17007 ns 17740 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_cv \u001b[m\u001b[0;33m 0.91 % 0.96 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_mean \u001b[m\u001b[0;33m 4594572 ns 4551454 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_median \u001b[m\u001b[0;33m 4602633 ns 4558259 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_stddev \u001b[m\u001b[0;33m 14120 ns 12475 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_cv \u001b[m\u001b[0;33m 0.31 % 0.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_mean \u001b[m\u001b[0;33m 10053307 ns 9966611 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_median \u001b[m\u001b[0;33m 10166987 ns 10076585 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_stddev \u001b[m\u001b[0;33m 291946 ns 286458 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_mean \u001b[m\u001b[0;33m 20673458 ns 20513325 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_median \u001b[m\u001b[0;33m 20544696 ns 20386411 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_stddev \u001b[m\u001b[0;33m 246412 ns 240540 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_cv \u001b[m\u001b[0;33m 1.19 % 1.17 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_mean \u001b[m\u001b[0;33m 70811 ns 70565 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_median \u001b[m\u001b[0;33m 70326 ns 70110 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_stddev \u001b[m\u001b[0;33m 2401 ns 2353 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_cv \u001b[m\u001b[0;33m 3.39 % 3.34 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_mean \u001b[m\u001b[0;33m 135097 ns 134476 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_median \u001b[m\u001b[0;33m 135164 ns 134571 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_stddev \u001b[m\u001b[0;33m 799 ns 724 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_cv \u001b[m\u001b[0;33m 0.59 % 0.54 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_mean \u001b[m\u001b[0;33m 262054 ns 260826 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_median \u001b[m\u001b[0;33m 261825 ns 260866 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_stddev \u001b[m\u001b[0;33m 1211 ns 1402 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_cv \u001b[m\u001b[0;33m 0.46 % 0.54 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_mean \u001b[m\u001b[0;33m 508853 ns 506511 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_median \u001b[m\u001b[0;33m 505867 ns 503676 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_stddev \u001b[m\u001b[0;33m 12890 ns 12652 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_cv \u001b[m\u001b[0;33m 2.53 % 2.50 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_mean \u001b[m\u001b[0;33m 1010537 ns 1005862 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_median \u001b[m\u001b[0;33m 1010307 ns 1005759 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_stddev \u001b[m\u001b[0;33m 5573 ns 5402 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_cv \u001b[m\u001b[0;33m 0.55 % 0.54 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_mean \u001b[m\u001b[0;33m 2094588 ns 2083947 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_median \u001b[m\u001b[0;33m 2094297 ns 2083675 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_stddev \u001b[m\u001b[0;33m 13883 ns 12947 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_cv \u001b[m\u001b[0;33m 0.66 % 0.62 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_mean \u001b[m\u001b[0;33m 4399525 ns 4374122 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_median \u001b[m\u001b[0;33m 4398467 ns 4372248 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_stddev \u001b[m\u001b[0;33m 9109 ns 9887 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_cv \u001b[m\u001b[0;33m 0.21 % 0.23 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_mean \u001b[m\u001b[0;33m 9087365 ns 9040882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_median \u001b[m\u001b[0;33m 9081014 ns 9026851 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_stddev \u001b[m\u001b[0;33m 206801 ns 203954 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_cv \u001b[m\u001b[0;33m 2.28 % 2.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_mean \u001b[m\u001b[0;33m 19038369 ns 18931027 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_median \u001b[m\u001b[0;33m 18975293 ns 18872990 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_stddev \u001b[m\u001b[0;33m 211770 ns 211621 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_cv \u001b[m\u001b[0;33m 1.11 % 1.12 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_mean \u001b[m\u001b[0;33m 98176 ns 97832 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_median \u001b[m\u001b[0;33m 98024 ns 97688 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_stddev \u001b[m\u001b[0;33m 435 ns 437 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_cv \u001b[m\u001b[0;33m 0.44 % 0.45 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_mean \u001b[m\u001b[0;33m 182809 ns 182208 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_median \u001b[m\u001b[0;33m 183246 ns 182566 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_stddev \u001b[m\u001b[0;33m 1840 ns 1824 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_cv \u001b[m\u001b[0;33m 1.01 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_mean \u001b[m\u001b[0;33m 356092 ns 354748 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_median \u001b[m\u001b[0;33m 356039 ns 354780 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_stddev \u001b[m\u001b[0;33m 186 ns 189 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_cv \u001b[m\u001b[0;33m 0.05 % 0.05 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_mean \u001b[m\u001b[0;33m 712488 ns 709400 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_median \u001b[m\u001b[0;33m 714174 ns 711185 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_stddev \u001b[m\u001b[0;33m 7591 ns 7419 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_cv \u001b[m\u001b[0;33m 1.07 % 1.05 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_mean \u001b[m\u001b[0;33m 1528563 ns 1512518 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_median \u001b[m\u001b[0;33m 1516121 ns 1504982 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_stddev \u001b[m\u001b[0;33m 64472 ns 52538 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_cv \u001b[m\u001b[0;33m 4.22 % 3.47 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_mean \u001b[m\u001b[0;33m 3053942 ns 3037121 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_median \u001b[m\u001b[0;33m 3064120 ns 3046222 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_stddev \u001b[m\u001b[0;33m 53559 ns 51365 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_cv \u001b[m\u001b[0;33m 1.75 % 1.69 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_mean \u001b[m\u001b[0;33m 6328806 ns 6290455 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_median \u001b[m\u001b[0;33m 6334730 ns 6294222 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_stddev \u001b[m\u001b[0;33m 45869 ns 43718 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.69 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_mean \u001b[m\u001b[0;33m 13279845 ns 13170453 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_median \u001b[m\u001b[0;33m 13400773 ns 13305887 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_stddev \u001b[m\u001b[0;33m 280345 ns 278079 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_cv \u001b[m\u001b[0;33m 2.11 % 2.11 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_mean \u001b[m\u001b[0;33m 31873201 ns 31604072 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_median \u001b[m\u001b[0;33m 31345011 ns 31017351 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_stddev \u001b[m\u001b[0;33m 1102243 ns 1112834 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_cv \u001b[m\u001b[0;33m 3.46 % 3.52 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_mean \u001b[m\u001b[0;33m 120718 ns 120152 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_median \u001b[m\u001b[0;33m 120666 ns 119977 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_stddev \u001b[m\u001b[0;33m 349 ns 380 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_cv \u001b[m\u001b[0;33m 0.29 % 0.32 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_mean \u001b[m\u001b[0;33m 279420 ns 278255 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_median \u001b[m\u001b[0;33m 279887 ns 278699 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_stddev \u001b[m\u001b[0;33m 1189 ns 863 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_cv \u001b[m\u001b[0;33m 0.43 % 0.31 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_mean \u001b[m\u001b[0;33m 620420 ns 617927 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_median \u001b[m\u001b[0;33m 621271 ns 618789 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_stddev \u001b[m\u001b[0;33m 3643 ns 3652 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_cv \u001b[m\u001b[0;33m 0.59 % 0.59 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_mean \u001b[m\u001b[0;33m 1392947 ns 1386803 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_median \u001b[m\u001b[0;33m 1383591 ns 1377946 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_stddev \u001b[m\u001b[0;33m 18634 ns 18302 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_cv \u001b[m\u001b[0;33m 1.34 % 1.32 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_mean \u001b[m\u001b[0;33m 3221082 ns 3204370 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_median \u001b[m\u001b[0;33m 3202222 ns 3186356 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_stddev \u001b[m\u001b[0;33m 73386 ns 71144 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_cv \u001b[m\u001b[0;33m 2.28 % 2.22 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_mean \u001b[m\u001b[0;33m 8046817 ns 7978826 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_median \u001b[m\u001b[0;33m 8025546 ns 7966259 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_stddev \u001b[m\u001b[0;33m 115887 ns 112807 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_cv \u001b[m\u001b[0;33m 1.44 % 1.41 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 20480156 ns 20289990 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_median \u001b[m\u001b[0;33m 20550580 ns 20332200 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 181757 ns 168891 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 0.89 % 0.83 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_mean \u001b[m\u001b[0;33m 55388937 ns 54787197 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_median \u001b[m\u001b[0;33m 55356484 ns 54701727 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_stddev \u001b[m\u001b[0;33m 128703 ns 155072 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.28 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_mean \u001b[m\u001b[0;33m 168947981 ns 167426580 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_median \u001b[m\u001b[0;33m 168927098 ns 167324195 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_stddev \u001b[m\u001b[0;33m 7017901 ns 6982613 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_cv \u001b[m\u001b[0;33m 4.15 % 4.17 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_mean \u001b[m\u001b[0;33m 288821 ns 287061 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_median \u001b[m\u001b[0;33m 288883 ns 287336 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_stddev \u001b[m\u001b[0;33m 515 ns 728 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_cv \u001b[m\u001b[0;33m 0.18 % 0.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_mean \u001b[m\u001b[0;33m 561285 ns 558165 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_median \u001b[m\u001b[0;33m 560947 ns 558301 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_stddev \u001b[m\u001b[0;33m 2755 ns 2642 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_cv \u001b[m\u001b[0;33m 0.49 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_mean \u001b[m\u001b[0;33m 1115801 ns 1110007 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_median \u001b[m\u001b[0;33m 1107251 ns 1101741 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_stddev \u001b[m\u001b[0;33m 23287 ns 22665 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_cv \u001b[m\u001b[0;33m 2.09 % 2.04 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_mean \u001b[m\u001b[0;33m 2490977 ns 2478885 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_median \u001b[m\u001b[0;33m 2471500 ns 2459821 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_stddev \u001b[m\u001b[0;33m 78857 ns 77957 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_cv \u001b[m\u001b[0;33m 3.17 % 3.14 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_mean \u001b[m\u001b[0;33m 5541260 ns 5509669 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_median \u001b[m\u001b[0;33m 5562212 ns 5531078 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_stddev \u001b[m\u001b[0;33m 71339 ns 68139 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_cv \u001b[m\u001b[0;33m 1.29 % 1.24 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_mean \u001b[m\u001b[0;33m 16564439 ns 16435384 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_median \u001b[m\u001b[0;33m 16591871 ns 16467307 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_stddev \u001b[m\u001b[0;33m 83381 ns 88516 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_cv \u001b[m\u001b[0;33m 0.50 % 0.54 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_mean \u001b[m\u001b[0;33m 49221785 ns 48751030 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_median \u001b[m\u001b[0;33m 50072441 ns 49631210 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_stddev \u001b[m\u001b[0;33m 2627450 ns 2694749 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_cv \u001b[m\u001b[0;33m 5.34 % 5.53 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_mean \u001b[m\u001b[0;33m 118590633 ns 117787971 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_median \u001b[m\u001b[0;33m 117502626 ns 116574037 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_stddev \u001b[m\u001b[0;33m 2312608 ns 2306280 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_cv \u001b[m\u001b[0;33m 1.95 % 1.96 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_mean \u001b[m\u001b[0;33m 299699036 ns 297386710 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_median \u001b[m\u001b[0;33m 300178360 ns 296997108 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_stddev \u001b[m\u001b[0;33m 2483568 ns 2344279 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_cv \u001b[m\u001b[0;33m 0.83 % 0.79 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 203861 ns 202673 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 203619 ns 202944 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 2527 ns 1821 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 1.24 % 0.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 388318 ns 386320 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 389129 ns 386872 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 1477 ns 1399 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.38 % 0.36 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_mean \u001b[m\u001b[0;33m 792906 ns 785115 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_median \u001b[m\u001b[0;33m 785729 ns 778319 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_stddev \u001b[m\u001b[0;33m 25076 ns 25976 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_cv \u001b[m\u001b[0;33m 3.16 % 3.31 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_mean \u001b[m\u001b[0;33m 1562261 ns 1551754 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_median \u001b[m\u001b[0;33m 1572901 ns 1563377 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_stddev \u001b[m\u001b[0;33m 40016 ns 39588 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_cv \u001b[m\u001b[0;33m 2.56 % 2.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_mean \u001b[m\u001b[0;33m 3419899 ns 3380729 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_median \u001b[m\u001b[0;33m 3441218 ns 3399788 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_stddev \u001b[m\u001b[0;33m 39715 ns 34672 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.03 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_mean \u001b[m\u001b[0;33m 8103526 ns 7992137 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_median \u001b[m\u001b[0;33m 8067914 ns 7981352 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_stddev \u001b[m\u001b[0;33m 379774 ns 374953 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_cv \u001b[m\u001b[0;33m 4.69 % 4.69 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_mean \u001b[m\u001b[0;33m 18077552 ns 17898348 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_median \u001b[m\u001b[0;33m 17416211 ns 17231467 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_stddev \u001b[m\u001b[0;33m 1955871 ns 1906829 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_cv \u001b[m\u001b[0;33m 10.82 % 10.65 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 378714 ns 375733 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_median \u001b[m\u001b[0;33m 375010 ns 371548 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 14355 ns 13693 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 3.79 % 3.64 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 1181625 ns 1174045 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_median \u001b[m\u001b[0;33m 1150213 ns 1144394 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 59677 ns 56624 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 5.05 % 4.82 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 4128424 ns 4098841 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_median \u001b[m\u001b[0;33m 4114884 ns 4087364 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 36060 ns 33710 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 0.87 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 15505186 ns 15412702 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_median \u001b[m\u001b[0;33m 15601415 ns 15520219 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 272156 ns 273022 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 1.76 % 1.77 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 58136121 ns 57917496 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 58150968 ns 57926298 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 304440 ns 274278 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.52 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 233424874 ns 232578334 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 231674264 ns 230876970 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 3983608 ns 3922793 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 1.71 % 1.69 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_mean \u001b[m\u001b[0;33m 125882 ns 124938 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_median \u001b[m\u001b[0;33m 126031 ns 125025 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_stddev \u001b[m\u001b[0;33m 3179 ns 3035 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_cv \u001b[m\u001b[0;33m 2.53 % 2.43 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 279630 ns 277682 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_median \u001b[m\u001b[0;33m 277484 ns 275597 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 7966 ns 7725 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 2.85 % 2.78 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 909990 ns 902791 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_median \u001b[m\u001b[0;33m 894803 ns 887672 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 30725 ns 29804 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 3.38 % 3.30 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 5038775 ns 4973354 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_median \u001b[m\u001b[0;33m 5089727 ns 5024698 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 235576 ns 226711 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 4.68 % 4.56 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 22572298 ns 22363182 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_median \u001b[m\u001b[0;33m 22575023 ns 22343393 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 100386 ns 99763 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 0.44 % 0.45 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 117439223 ns 116310763 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 117482341 ns 116332985 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 432620 ns 407753 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.37 % 0.35 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m" + ] + } + ], "source": [ "!cd .. && timeout 300s ./build-release/bin/benchmarks --benchmark_filter='^OperatorCost/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/operator-cost.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "bcfd11fc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-06-14T20:48:21+03:00\n", + "Running ./build-release/bin/benchmarks\n", + "Run on (8 X 4200 MHz CPU s)\n", + "CPU Caches:\n", + " L1 Data 48 KiB (x4)\n", + " L1 Instruction 32 KiB (x4)\n", + " L2 Unified 1280 KiB (x4)\n", + " L3 Unified 8192 KiB (x1)\n", + "Load Average: 1.43, 1.47, 1.78\n", + "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", + "------------------------------------------------------------------------------------------------------------------------------------------------\n", + "Benchmark Time CPU Iterations UserCounters...\n", + "------------------------------------------------------------------------------------------------------------------------------------------------\n", + "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_mean \u001b[m\u001b[0;33m 327112 ns 323454 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_median \u001b[m\u001b[0;33m 317651 ns 314511 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_stddev \u001b[m\u001b[0;33m 24164 ns 23071 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_cv \u001b[m\u001b[0;33m 7.39 % 7.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_mean \u001b[m\u001b[0;33m 423529 ns 420790 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_median \u001b[m\u001b[0;33m 419302 ns 416611 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_stddev \u001b[m\u001b[0;33m 11539 ns 11860 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_cv \u001b[m\u001b[0;33m 2.72 % 2.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_mean \u001b[m\u001b[0;33m 2969473 ns 2951961 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_median \u001b[m\u001b[0;33m 2996433 ns 2978522 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_stddev \u001b[m\u001b[0;33m 67715 ns 66378 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_cv \u001b[m\u001b[0;33m 2.28 % 2.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_mean \u001b[m\u001b[0;33m 708003 ns 704782 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_median \u001b[m\u001b[0;33m 707848 ns 704782 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_stddev \u001b[m\u001b[0;33m 2199 ns 2175 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_cv \u001b[m\u001b[0;33m 0.31 % 0.31 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_mean \u001b[m\u001b[0;33m 350350 ns 349015 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_median \u001b[m\u001b[0;33m 350669 ns 349288 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_stddev \u001b[m\u001b[0;33m 902 ns 856 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_cv \u001b[m\u001b[0;33m 0.26 % 0.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_mean \u001b[m\u001b[0;33m 308857 ns 307622 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_median \u001b[m\u001b[0;33m 310398 ns 309035 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_stddev \u001b[m\u001b[0;33m 3264 ns 3138 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_cv \u001b[m\u001b[0;33m 1.06 % 1.02 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_mean \u001b[m\u001b[0;33m 665762 ns 662460 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_median \u001b[m\u001b[0;33m 665768 ns 662568 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_stddev \u001b[m\u001b[0;33m 740 ns 743 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_cv \u001b[m\u001b[0;33m 0.11 % 0.11 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_mean \u001b[m\u001b[0;33m 389871 ns 385981 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_median \u001b[m\u001b[0;33m 389992 ns 386994 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_stddev \u001b[m\u001b[0;33m 304 ns 2179 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_cv \u001b[m\u001b[0;33m 0.08 % 0.56 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_mean \u001b[m\u001b[0;33m 355274 ns 353349 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_median \u001b[m\u001b[0;33m 354684 ns 352806 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_stddev \u001b[m\u001b[0;33m 1338 ns 1283 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_cv \u001b[m\u001b[0;33m 0.38 % 0.36 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_mean \u001b[m\u001b[0;33m 630249 ns 627282 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_median \u001b[m\u001b[0;33m 630631 ns 627537 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_stddev \u001b[m\u001b[0;33m 2386 ns 2314 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_cv \u001b[m\u001b[0;33m 0.38 % 0.37 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_mean \u001b[m\u001b[0;33m 4981809 ns 4954768 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_median \u001b[m\u001b[0;33m 4981602 ns 4954409 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_stddev \u001b[m\u001b[0;33m 27490 ns 27448 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_cv \u001b[m\u001b[0;33m 0.55 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_mean \u001b[m\u001b[0;33m 1141898 ns 1137278 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_median \u001b[m\u001b[0;33m 1142329 ns 1137450 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_stddev \u001b[m\u001b[0;33m 3860 ns 3679 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_cv \u001b[m\u001b[0;33m 0.34 % 0.32 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_mean \u001b[m\u001b[0;33m 533838 ns 531483 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_median \u001b[m\u001b[0;33m 532558 ns 530234 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_stddev \u001b[m\u001b[0;33m 2481 ns 2507 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_cv \u001b[m\u001b[0;33m 0.46 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_mean \u001b[m\u001b[0;33m 485912 ns 483491 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_median \u001b[m\u001b[0;33m 487101 ns 484497 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_stddev \u001b[m\u001b[0;33m 2771 ns 2668 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_cv \u001b[m\u001b[0;33m 0.57 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_mean \u001b[m\u001b[0;33m 1018585 ns 1009349 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_median \u001b[m\u001b[0;33m 1007538 ns 1002010 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_stddev \u001b[m\u001b[0;33m 21915 ns 15166 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_cv \u001b[m\u001b[0;33m 2.15 % 1.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_mean \u001b[m\u001b[0;33m 582844 ns 579025 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_median \u001b[m\u001b[0;33m 588409 ns 584070 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_stddev \u001b[m\u001b[0;33m 16916 ns 16319 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.82 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_mean \u001b[m\u001b[0;33m 1134758 ns 1128664 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_median \u001b[m\u001b[0;33m 1122532 ns 1116998 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_stddev \u001b[m\u001b[0;33m 23936 ns 23140 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_cv \u001b[m\u001b[0;33m 2.11 % 2.05 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_mean \u001b[m\u001b[0;33m 2151576 ns 2140612 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_median \u001b[m\u001b[0;33m 2114934 ns 2104733 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_stddev \u001b[m\u001b[0;33m 75915 ns 75555 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_cv \u001b[m\u001b[0;33m 3.53 % 3.53 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_mean \u001b[m\u001b[0;33m 19626122 ns 19478967 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_median \u001b[m\u001b[0;33m 19715132 ns 19566701 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_stddev \u001b[m\u001b[0;33m 314025 ns 313346 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_cv \u001b[m\u001b[0;33m 1.60 % 1.61 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_mean \u001b[m\u001b[0;33m 3898469 ns 3882409 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_median \u001b[m\u001b[0;33m 3918521 ns 3902628 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_stddev \u001b[m\u001b[0;33m 48064 ns 46087 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_cv \u001b[m\u001b[0;33m 1.23 % 1.19 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_mean \u001b[m\u001b[0;33m 1853008 ns 1843719 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_median \u001b[m\u001b[0;33m 1844847 ns 1836541 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_stddev \u001b[m\u001b[0;33m 34380 ns 34282 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_cv \u001b[m\u001b[0;33m 1.86 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_mean \u001b[m\u001b[0;33m 1603236 ns 1594598 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_median \u001b[m\u001b[0;33m 1607029 ns 1598368 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_stddev \u001b[m\u001b[0;33m 9814 ns 9376 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.59 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_mean \u001b[m\u001b[0;33m 2910806 ns 2897804 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_median \u001b[m\u001b[0;33m 2924068 ns 2910697 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_stddev \u001b[m\u001b[0;33m 23345 ns 22420 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_cv \u001b[m\u001b[0;33m 0.80 % 0.77 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_mean \u001b[m\u001b[0;33m 1943488 ns 1924736 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_median \u001b[m\u001b[0;33m 1913052 ns 1894678 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_stddev \u001b[m\u001b[0;33m 65998 ns 64519 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_cv \u001b[m\u001b[0;33m 3.40 % 3.35 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_mean \u001b[m\u001b[0;33m 3382780 ns 3353599 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_median \u001b[m\u001b[0;33m 3386841 ns 3356555 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_stddev \u001b[m\u001b[0;33m 63869 ns 60408 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_cv \u001b[m\u001b[0;33m 1.89 % 1.80 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_mean \u001b[m\u001b[0;33m 4670764 ns 4640027 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_median \u001b[m\u001b[0;33m 4712211 ns 4676999 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_stddev \u001b[m\u001b[0;33m 184523 ns 180474 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_cv \u001b[m\u001b[0;33m 3.95 % 3.89 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_mean \u001b[m\u001b[0;33m 41478841 ns 41112802 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_median \u001b[m\u001b[0;33m 41540129 ns 41133354 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_stddev \u001b[m\u001b[0;33m 138078 ns 177153 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_cv \u001b[m\u001b[0;33m 0.33 % 0.43 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_mean \u001b[m\u001b[0;33m 10126082 ns 10063562 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_median \u001b[m\u001b[0;33m 10310140 ns 10245214 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_stddev \u001b[m\u001b[0;33m 323868 ns 315894 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_cv \u001b[m\u001b[0;33m 3.20 % 3.14 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_mean \u001b[m\u001b[0;33m 4259250 ns 4235870 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_median \u001b[m\u001b[0;33m 4275696 ns 4251838 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_stddev \u001b[m\u001b[0;33m 49296 ns 48716 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.15 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_mean \u001b[m\u001b[0;33m 3770392 ns 3743836 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_median \u001b[m\u001b[0;33m 3738229 ns 3712971 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_stddev \u001b[m\u001b[0;33m 99152 ns 95508 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_cv \u001b[m\u001b[0;33m 2.63 % 2.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_mean \u001b[m\u001b[0;33m 5772993 ns 5750595 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_median \u001b[m\u001b[0;33m 5730610 ns 5708990 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_stddev \u001b[m\u001b[0;33m 83980 ns 82214 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_cv \u001b[m\u001b[0;33m 1.45 % 1.43 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_mean \u001b[m\u001b[0;33m 5119950 ns 5056736 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_median \u001b[m\u001b[0;33m 5104559 ns 5039196 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_stddev \u001b[m\u001b[0;33m 64890 ns 62803 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.24 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_mean \u001b[m\u001b[0;33m 6994680 ns 6932658 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_median \u001b[m\u001b[0;33m 6989477 ns 6923442 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_stddev \u001b[m\u001b[0;33m 222064 ns 216550 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_cv \u001b[m\u001b[0;33m 3.17 % 3.12 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_mean \u001b[m\u001b[0;33m 8849196 ns 8783131 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_median \u001b[m\u001b[0;33m 8814582 ns 8751934 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_stddev \u001b[m\u001b[0;33m 72027 ns 68512 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_cv \u001b[m\u001b[0;33m 0.81 % 0.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_mean \u001b[m\u001b[0;33m 74688525 ns 74025484 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_median \u001b[m\u001b[0;33m 74892891 ns 74148114 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_stddev \u001b[m\u001b[0;33m 1413431 ns 1341941 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_cv \u001b[m\u001b[0;33m 1.89 % 1.81 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 20585367 ns 20385385 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_median \u001b[m\u001b[0;33m 20777740 ns 20568346 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 515652 ns 489843 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 2.50 % 2.40 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_mean \u001b[m\u001b[0;33m 10093168 ns 9992808 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_median \u001b[m\u001b[0;33m 9945731 ns 9865480 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_stddev \u001b[m\u001b[0;33m 470190 ns 455759 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_cv \u001b[m\u001b[0;33m 4.66 % 4.56 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_mean \u001b[m\u001b[0;33m 7152001 ns 7086308 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_median \u001b[m\u001b[0;33m 7141940 ns 7077427 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_stddev \u001b[m\u001b[0;33m 44807 ns 43542 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_cv \u001b[m\u001b[0;33m 0.63 % 0.61 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_mean \u001b[m\u001b[0;33m 10945706 ns 10888305 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_median \u001b[m\u001b[0;33m 10932178 ns 10886830 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_stddev \u001b[m\u001b[0;33m 113420 ns 97491 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_cv \u001b[m\u001b[0;33m 1.04 % 0.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_mean \u001b[m\u001b[0;33m 10279043 ns 10138684 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_median \u001b[m\u001b[0;33m 9569170 ns 9452603 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_stddev \u001b[m\u001b[0;33m 1404724 ns 1368081 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_cv \u001b[m\u001b[0;33m 13.67 % 13.49 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_mean \u001b[m\u001b[0;33m 13336847 ns 13225191 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_median \u001b[m\u001b[0;33m 12900366 ns 12805119 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_stddev \u001b[m\u001b[0;33m 1172219 ns 1137751 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_cv \u001b[m\u001b[0;33m 8.79 % 8.60 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_mean \u001b[m\u001b[0;33m 18594129 ns 18489997 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_median \u001b[m\u001b[0;33m 18564079 ns 18476515 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_stddev \u001b[m\u001b[0;33m 204348 ns 192770 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_cv \u001b[m\u001b[0;33m 1.10 % 1.04 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_mean \u001b[m\u001b[0;33m 184939680 ns 181161386 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_median \u001b[m\u001b[0;33m 185574441 ns 179442372 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_stddev \u001b[m\u001b[0;33m 7745905 ns 7726947 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_cv \u001b[m\u001b[0;33m 4.19 % 4.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_mean \u001b[m\u001b[0;33m 88475598 ns 87190889 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_median \u001b[m\u001b[0;33m 86036433 ns 85027458 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_stddev \u001b[m\u001b[0;33m 9059453 ns 9329788 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_cv \u001b[m\u001b[0;33m 10.24 % 10.70 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_mean \u001b[m\u001b[0;33m 31279068 ns 30916289 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_median \u001b[m\u001b[0;33m 31578403 ns 31313289 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_stddev \u001b[m\u001b[0;33m 673755 ns 741005 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_cv \u001b[m\u001b[0;33m 2.15 % 2.40 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_mean \u001b[m\u001b[0;33m 14420059 ns 14342223 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_median \u001b[m\u001b[0;33m 13858205 ns 13798367 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_stddev \u001b[m\u001b[0;33m 993851 ns 957202 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_cv \u001b[m\u001b[0;33m 6.89 % 6.67 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_mean \u001b[m\u001b[0;33m 20663763 ns 20628319 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_median \u001b[m\u001b[0;33m 20663114 ns 20627234 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_stddev \u001b[m\u001b[0;33m 62693 ns 60912 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_cv \u001b[m\u001b[0;33m 0.30 % 0.30 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_mean \u001b[m\u001b[0;33m 16636418 ns 16551291 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_median \u001b[m\u001b[0;33m 16635667 ns 16552195 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_stddev \u001b[m\u001b[0;33m 77985 ns 77061 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", + "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", + "\u001b[m" + ] + } + ], "source": [ "!cd .. && timeout 300s ./build-release/bin/benchmarks --benchmark_filter='^OperatorCostMatched/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/operator-cost-matched.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "b16b9fb4", "metadata": {}, "outputs": [], @@ -149,8 +743,17 @@ "RESULTS = Path(\"benchmark-results\")\n", "UNIT_TO_MS = {\"ns\": 1e-6, \"us\": 1e-3, \"ms\": 1.0, \"s\": 1e3}\n", "\n", + "def load_benchmark_result(filename):\n", + " path = RESULTS / filename\n", + " try:\n", + " return json.loads(path.read_text())\n", + " except json.JSONDecodeError as exc:\n", + " raise RuntimeError(\n", + " f\"{path} is not valid JSON. The benchmark run probably timed out or was interrupted; rerun the cell that creates it.\"\n", + " ) from exc\n", + "\n", "def mean_rows(filename):\n", - " data = json.loads((RESULTS / filename).read_text())\n", + " data = load_benchmark_result(filename)\n", " return [row for row in data[\"benchmarks\"] if row.get(\"aggregate_name\") == \"mean\"]\n", "\n", "def time_ms(row):\n", @@ -159,10 +762,74 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "d3172304", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "( executor query mode \\\n", + " 0 InterpretedExpressionExecutor kSimpleSelectSmall Naive \n", + " 1 InterpretedExpressionExecutor kSimpleSelectSmall Optimized \n", + " 2 CachedJitCompiledExpressionExecutor kSimpleSelectSmall Naive \n", + " 3 CachedJitCompiledExpressionExecutor kSimpleSelectSmall Optimized \n", + " 4 InterpretedExpressionExecutor kJoinSmall Naive \n", + " 5 InterpretedExpressionExecutor kJoinSmall Optimized \n", + " 6 CachedJitCompiledExpressionExecutor kJoinSmall Naive \n", + " 7 CachedJitCompiledExpressionExecutor kJoinSmall Optimized \n", + " 8 InterpretedExpressionExecutor kComplex5 Naive \n", + " 9 InterpretedExpressionExecutor kComplex5 Optimized \n", + " 10 CachedJitCompiledExpressionExecutor kComplex5 Naive \n", + " 11 CachedJitCompiledExpressionExecutor kComplex5 Optimized \n", + " \n", + " time_ms \n", + " 0 0.020437 \n", + " 1 0.020149 \n", + " 2 0.019900 \n", + " 3 0.019747 \n", + " 4 0.066637 \n", + " 5 0.043217 \n", + " 6 0.066032 \n", + " 7 0.042778 \n", + " 8 0.082328 \n", + " 9 0.081952 \n", + " 10 0.078012 \n", + " 11 0.077614 ,\n", + " query executor mode time_ms\n", + " 0 q2.1 Interpreted Naive 9.348855\n", + " 1 q2.1 Interpreted Optimized 8.476780\n", + " 2 q1.3 Interpreted Naive 8.327581\n", + " 3 q1.3 Interpreted Optimized 6.667715\n", + " 4 q1.2 Interpreted Naive 8.315161\n", + " 5 q1.2 Interpreted Optimized 6.738973\n", + " 6 q3.3 Interpreted Naive 36.699167\n", + " 7 q3.3 Interpreted Optimized 5.963849\n", + " 8 q3.4 Interpreted Naive 34.712294\n", + " 9 q3.4 Interpreted Optimized 5.903691\n", + " 10 q4.3 Interpreted Naive 9.196776\n", + " 11 q4.3 Interpreted Optimized 6.029881\n", + " 12 q1.1 Interpreted Naive 8.408618\n", + " 13 q1.1 Interpreted Optimized 6.369086\n", + " 14 q3.2 Interpreted Naive 35.087301\n", + " 15 q3.2 Interpreted Optimized 6.043214\n", + " 16 q2.2 Interpreted Naive 8.857568\n", + " 17 q2.2 Interpreted Optimized 6.276747\n", + " 18 q3.1 Interpreted Naive 37.245934\n", + " 19 q3.1 Interpreted Optimized 5.914830\n", + " 20 q4.2 Interpreted Naive 9.171801\n", + " 21 q4.2 Interpreted Optimized 7.149140\n", + " 22 q4.1 Interpreted Naive 9.111124\n", + " 23 q4.1 Interpreted Optimized 9.521586\n", + " 24 q2.3 Interpreted Naive 8.640680\n", + " 25 q2.3 Interpreted Optimized 6.071635)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "synthetic_pattern = re.compile(\n", " r\"BM_SQL<(?P[^,]+), (?P[^,]+), PlannerMode::k(?P[^>]+)>/real_time_mean\"\n", @@ -184,10 +851,83 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "f4e060f2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "( operator input_rows model_cost time_ms\n", + " 0 SeqScan 1024 102400.0 0.039728\n", + " 1 SeqScan 2048 204800.0 0.068177\n", + " 2 SeqScan 4096 409600.0 0.162377\n", + " 3 SeqScan 8192 819200.0 0.360639\n", + " 4 SeqScan 16384 1638400.0 0.791876\n", + " .. ... ... ... ...\n", + " 59 NestedLoopCrossJoin 64 425984.0 0.279630\n", + " 60 NestedLoopCrossJoin 128 1703936.0 0.909990\n", + " 61 NestedLoopCrossJoin 256 6815744.0 5.038775\n", + " 62 NestedLoopCrossJoin 512 27262976.0 22.572298\n", + " 63 NestedLoopCrossJoin 1024 109051904.0 117.439223\n", + " \n", + " [64 rows x 4 columns],\n", + " target_cost operator input_rows model_cost time_ms\n", + " 0 640000 SeqScan 6400 640000.0 0.327112\n", + " 1 640000 Filter 6400 640000.0 0.423529\n", + " 2 640000 Projection 29091 640002.0 2.969473\n", + " 3 640000 Sort 4476 640068.0 0.708003\n", + " 4 640000 Aggregation 1255 640050.0 0.350350\n", + " 5 640000 HashJoin 1620 639900.0 0.308857\n", + " 6 640000 NestedLoopJoin 96 645120.0 0.665762\n", + " 7 640000 NestedLoopCrossJoin 78 632736.0 0.389871\n", + " 8 1000000 SeqScan 10000 1000000.0 0.355274\n", + " 9 1000000 Filter 10000 1000000.0 0.630249\n", + " 10 1000000 Projection 45455 1000010.0 4.981809\n", + " 11 1000000 Sort 6993 999999.0 1.141898\n", + " 12 1000000 Aggregation 1961 1000110.0 0.533838\n", + " 13 1000000 HashJoin 2532 1000140.0 0.485912\n", + " 14 1000000 NestedLoopJoin 120 1008000.0 1.018585\n", + " 15 1000000 NestedLoopCrossJoin 98 998816.0 0.582844\n", + " 16 3240000 SeqScan 32400 3240000.0 1.134758\n", + " 17 3240000 Filter 32400 3240000.0 2.151576\n", + " 18 3240000 Projection 147273 3240006.0 19.626122\n", + " 19 3240000 Sort 19636 3239940.0 3.898469\n", + " 20 3240000 Aggregation 6353 3240030.0 1.853008\n", + " 21 3240000 HashJoin 8203 3240185.0 1.603236\n", + " 22 3240000 NestedLoopJoin 215 3235750.0 2.910806\n", + " 23 3240000 NestedLoopCrossJoin 177 3258216.0 1.943488\n", + " 24 6760000 SeqScan 67600 6760000.0 3.382780\n", + " 25 6760000 Filter 67600 6760000.0 4.670764\n", + " 26 6760000 Projection 307273 6760006.0 41.478841\n", + " 27 6760000 Sort 38409 6759984.0 10.126082\n", + " 28 6760000 Aggregation 13255 6760050.0 4.259250\n", + " 29 6760000 HashJoin 17114 6760030.0 3.770392\n", + " 30 6760000 NestedLoopJoin 311 6770470.0 5.772993\n", + " 31 6760000 NestedLoopCrossJoin 255 6762600.0 5.119950\n", + " 32 12250000 SeqScan 122500 12250000.0 6.994680\n", + " 33 12250000 Filter 122500 12250000.0 8.849196\n", + " 34 12250000 Projection 556818 12249996.0 74.688525\n", + " 35 12250000 Sort 65536 12255232.0 20.585367\n", + " 36 12250000 Aggregation 24020 12250200.0 10.093168\n", + " 37 12250000 HashJoin 31013 12250135.0 7.152001\n", + " 38 12250000 NestedLoopJoin 418 12230680.0 10.945706\n", + " 39 12250000 NestedLoopCrossJoin 343 12235496.0 10.279043\n", + " 40 26010000 SeqScan 260100 26010000.0 13.336847\n", + " 41 26010000 Filter 260100 26010000.0 18.594129\n", + " 42 26010000 Projection 1182273 26010006.0 184.939680\n", + " 43 26010000 Sort 131364 26010072.0 88.475598\n", + " 44 26010000 Aggregation 51000 26010000.0 31.279068\n", + " 45 26010000 HashJoin 65848 26009960.0 14.420059\n", + " 46 26010000 NestedLoopJoin 610 26047000.0 20.663763\n", + " 47 26010000 NestedLoopCrossJoin 500 26000000.0 16.636418)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "operator = []\n", "for row in mean_rows(\"operator-cost.json\"):\n", @@ -217,10 +957,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "2075a20f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAHqCAYAAAB/bWzAAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX5hJREFUeJzt3XlYVHX///HXgGwKoqKyuCAuuKRmLpmWit6hYrlXJpZri1maollq3qLl2ldvLcsWC7XcKpe63c1cck3NssVyCRMXJDdQVBA4vz/8MXcjqIwyzNF5Pq5rrsvzOWfOec+84VAvPnzGYhiGIQAAAAAAAACAKbg5uwAAAAAAAAAAwP8Q2gIAAAAAAACAiRDaAgAAAAAAAICJENoCAAAAAAAAgIkQ2gIAAAAAAACAiRDaAgAAAAAAAICJENoCAAAAAAAAgIkQ2gIAAAAAAACAiRDaAgAAAAAAAICJENoCAACnmTVrliwWi7y9vfXXX3/l2B8REaGaNWve0rl79uypChUq3GaF5lahQgX17NmzwK/722+/KTY2VocPH86xzxHvu7N6md/vb2xsrCwWi06dOpVv57yZDRs2yGKxaMOGDQ45/+HDh2WxWDRr1qx8O2f2+2Rmhw4dkpeXl7Zt22YdMwxDCxYsUJMmTVS6dGl5e3urbNmyatWqlWbOnGnz/NOnT2vYsGGqUaOGihQpIn9/f1WrVk1PP/209u7daz0u+x75z0epUqUUERGhZcuW2Zzz7NmzKlasmJYuXerQ1w4AAAoGoS0AAHC6tLQ0vf766/l6zpEjR2rJkiX5ek5c9dtvv2n06NG5hraOeN/p5a2rW7eutm3bprp16zq7lLvKkCFDFBkZqUaNGlnHhg0bpq5du6p69eqaOXOmVq5cqTfffFOBgYH66quvrMdduHBBDzzwgGbNmqVnnnlGX3/9tebOnavnnntO8fHx+vHHH3NcLy4uTtu2bdPWrVv14Ycfyt3dXW3bttV///tf6zHFixfXoEGD9Morryg9Pd2hrx8AADheIWcXAAAA0Lp1a82bN09DhgzRvffemy/nrFSpUr6cB/ZxxPtOL29d0aJF9cADDzi7jLvKvn37tHTpUq1atco6dunSJU2dOlXdu3fXhx9+aHN8z549lZWVZd3+4osvdPDgQX377bdq3ry5zbExMTE2x2arWbOm6tevb91u3bq1ihcvrvnz56tt27bW8b59++rNN9/Ul19+qejo6Nt+rQAAwHmYaQsAAJxu6NChCggI0KuvvnrTY9999101bdpUpUuXVpEiRVSrVi1NmjRJV65csTnu2j+pv++++9SkSZMc58vMzFSZMmXUqVMn61h6errefPNNVatWTV5eXipVqpR69eqlv//++6b17dq1S08++aQqVKggHx8fVahQQV27ds2x/EP2nz2vX79eL7zwgkqWLKmAgAB16tRJx48ftzn2ypUrGjp0qIKCglS4cGE99NBD+v77729aS7YzZ86oX79+KlOmjDw9PVWxYkWNGDFCaWlpNsdZLBa99NJL+uCDDxQeHi4vLy/VqFFDCxYssKn78ccflyQ1b97c+ifb2X8en9tSBtnnjYuLU9WqVeXj46P69etr+/btMgxDb731lsLCwuTr66sWLVro4MGDNs+/9pzZfz6f2+OfyxnktY+38/5mLw8wadIkjR07VuXLl5e3t7fq16+vdevW5fqckydPqmvXrvL391dgYKB69+6t5ORk6/5//etfqlatmgzDsHmeYRiqXLmyHnnkEevYjBkzdO+998rX11d+fn6qVq2ahg8fbt1/veURduzYobZt2yogIEDe3t6qVKmSBg4caN1/8OBB9erVS1WqVFHhwoVVpkwZtW3bVj///HOe3pdrZdfx2WefKSYmRkFBQfLx8VGzZs20Z8+emz5/4cKFatmypYKDg+Xj46Pq1avrtddeU2pqqs1xPXv2lK+vrw4ePKg2bdrI19dX5cqV0+DBg3N8vd/svbueGTNmKCgoSJGRkdax1NRUpaWlKTg4ONfnuLn973+7Tp8+LUl5OvZ6vL295enpKQ8PD5vxwMBARUZG6v3337/pOQAAgLkR2gIAAKfz8/PT66+/rtWrV+vbb7+94bGHDh1SdHS0Pv30Uy1btkx9+vTRW2+9peeff/6Gz+vVq5c2b96sAwcO2IyvWbNGx48fV69evSRJWVlZat++vSZMmKDo6GgtX75cEyZM0Nq1axUREaFLly7d8DqHDx9W1apVNXXqVK1evVoTJ07UiRMn1KBBg1zXMn3mmWfk4eGhefPmadKkSdqwYYOeeuopm2OeffZZ/d///Z+6d++ur776Sp07d1anTp109uzZG9YiSZcvX1bz5s01Z84cxcTEaPny5Xrqqac0adIkm6A629dff623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v//9r5o0aSJ3d/dbeJXSgAEDdOrUKT322GM6d+6cXnrppeseW6RIEUVFRWnEiBFKT0/Xr7/+mutx4eHhqlSpkj755BOlpaVd93wWiyXH1/Hy5ctv+0/u58+fb7NMwF9//aWtW7da+3C9WiTlqOeDDz64rVqy5fW9k64u5+Dj46NDhw7ZjF+5cuW6IX/28g0hISGSrs4Cz16i5Z8yMzN14MABFS5cOE/BePYvq7KD+GzZH+r2z19GAQCAOw8zbQEAgOlMnDhR9erVU1JSku655x7reGRkpDw9PdW1a1cNHTpUly9f1owZM3T27Nk8n7t3796aOHGioqOj5ePjoy5dutjsf/LJJzV37ly1adNGL7/8su6//355eHjo6NGjWr9+vdq3b6+OHTvmeu6iRYuqadOmeuutt1SyZElVqFBBGzdu1Mcff3zLsxOrV6+up556SlOnTpWHh4cefvhh/fLLL/q///s/FS1a9KbP7969u95991316NFDhw8fVq1atbR582aNGzdObdq00cMPP2xzfMmSJdWiRQuNHDlSRYoU0Xvvvafff/9dCxYssB5Ts2ZNSdKHH34oPz8/eXt7KywsrMBm4g4aNEjffvutxo0bpwsXLmj79u3WfaVKlVKlSpXy3MfbfX+zubu7KzIyUjExMcrKytLEiROVkpKi0aNH3/LrDA8PV+vWrbVy5Uo99NBDuvfee232P/vss/Lx8dGDDz6o4OBgJSYmavz48fL391eDBg2ue953331Xbdu21QMPPKBBgwapfPnyOnLkiFavXm0Nrx999FHNmjVL1apVU+3atbV792699dZbN11W4WaSkpLUsWNHPfvss0pOTtaoUaPk7e2tYcOGXfc5jRs3VvHixdW3b1+NGjVKHh4emjt3rn766adbruNW3ztPT081atTI5mtOujrLvkKFCnr88cf18MMPq1y5crpw4YI2bNigadOmqXr16urUqZMk6dNPP9UHH3yg6OhoNWjQQP7+/jp69KhmzpypX3/9Vf/+979tlvqQpF9++cX6S4TTp09r8eLFWrt2rTp27KiwsDCbY7dv366AgADVqlXrlt8fAADgfIS2AADAdO677z517dpV8+bNsxmvVq2aFi1apNdff12dOnVSQECAoqOjFRMTo6ioqDydOzw8XI0bN9bWrVvVrVu3HH9W7+7urq+//lrTpk3Tp59+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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "ssb_interpreted = ssb[ssb.executor == \"Interpreted\"].copy()\n", "\n", @@ -234,10 +985,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "c36bdd23", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAGGCAYAAAAAW6PhAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQolJREFUeJzt3XeYVOX5P/734MICIghYQQSNUSFWxIJGERML9hIssbcUNRZiomgSkNiT2IMaTdTYK4k/84nGXhKNClgS7CIgAY0NRAUp8/vDr5tsQN3BXefIvF7XNde15znPnHPP3HBG35x9plQul8sBAAAAAKAQWlW7AAAAAAAA/kNoCwAAAABQIEJbAAAAAIACEdoCAAAAABSI0BYAAAAAoECEtgAAAAAABSK0BQAAAAAoEKEtAAAAAECBCG0BAAAAAApEaAsAUCMeeeSRDB48OMsvv3zatGmT5ZZbLt/61rfy8MMPf67jjhw5Mpdffvl846+88kpKpdIC9y2sljhmLbr88stTKpXyyiuvVLsUAAAWQGgLAFADzj///GyyySZ59dVXc+aZZ+auu+7KL3/5y0yePDlf//rXc8EFFyz0sT8ptF1++eXz8MMPZ7vttvsclbf8MQEAoGjqql0AAAAt669//WuOPvrobLvtthk1alTq6v7zn4B77rlndtlllxx11FFZd911s8kmmzTbeevr67PRRhs12/Fa6pif5YMPPkjbtm1TKpW+0PMCAFC73GkLALCIO+2001IqlXLhhRc2CmyTpK6uLiNHjkypVMrpp5/eMD58+PCUSqWMHTs2u+66azp27JhOnTpln332yb///e+Geb169co///nP3H///SmVSimVSunVq1eSBS9l8PFxn3rqqQwePDidOnVKly5dMmTIkMyZMyfPPfdcttlmmyyxxBLp1atXzjzzzEb1LuiYH593QY///vX/xx9/PDvuuGO6dOmStm3bZt11180NN9zQ6PgfLxvwl7/8JQcddFCWXnrptG/fPrNmzVrgeztv3rycfPLJWW211dKuXbssueSSWWuttXLuuedW/F5+7Prrr0///v2z+OKLp0OHDtl6660zduzY+eY15fUkHy2Lsckmm6Rt27bp1q1bhg4dmtmzZ883r1QqZfjw4fON9+rVKwcccMB879Gdd96ZAw88MF26dMniiy+eHXbYIS+//PIC3ycAACojtAUAWITNnTs39957b/r165cVVlhhgXN69OiR9dZbL/fcc0/mzp3baN8uu+ySVVZZJTfddFOGDx+eP/zhD9l6660bQr9Ro0Zl5ZVXzrrrrpuHH344Dz/8cEaNGvWZde2+++5Ze+21c/PNN+fQQw/N2WefnWOOOSY777xztttuu4waNSpbbLFFjjvuuNxyyy2feqyPz/vx45577kn37t2z3HLLpUuXLkmSe++9N5tsskneeeedXHTRRfnjH/+YddZZJ3vssccCl3Y46KCD0rp161x55ZW56aab0rp16wWe+8wzz8zw4cOz11575U9/+lOuv/76HHzwwXnnnXfmm/tZ72WSnHrqqdlrr73Sp0+f3HDDDbnyyivz7rvvZtNNN824ceMa5jX19YwbNy7f+MY38s477+Tyyy/PRRddlLFjx+bkk0/+1Pe0KQ4++OC0atUq11xzTc4555w8+uij2XzzzRf42gEAqFAZAIBF1tSpU8tJynvuueenzttjjz3KScqvvfZauVwul4cNG1ZOUj7mmGMazbv66qvLScpXXXVVw9jXvva18oABA+Y75vjx48tJypdddlnD2MfH/dWvftVo7jrrrFNOUr7lllsaxmbPnl1eeumly7vuuuunHvO/zZkzp7zTTjuVO3ToUB49enTD+Oqrr15ed911y7Nnz240f/vtty8vv/zy5blz55bL5XL5sssuKycp77fffgs8/v/afvvty+uss86nzmnqezlx4sRyXV1d+Qc/+EGjee+++255ueWWK+++++4Vv5499tij3K5du/LUqVMb5syZM6e8+uqrl5OUx48f3zCepDxs2LD56u/Zs2d5//33b9j++D3aZZddGs3761//Wk5SPvnkkz/1/QAA4LO50xYAgJTL5SSZb93Wvffeu9H27rvvnrq6utx7772f63zbb799o+3evXunVCpl0KBBDWN1dXVZZZVVMmHChCYf94gjjsif/vSn3Hjjjenbt2+S5MUXX8yzzz7b8FrmzJnT8Nh2220zZcqUPPfcc42Os9tuuzXpfBtssEGefPLJHHbYYbnjjjsyffr0T5z7We/lHXfckTlz5mS//fZrVGPbtm0zYMCA3HfffRW/nnvvvTff+MY3suyyyzacd7HFFssee+zRpNf3af739Wy88cbp2bPn5/6zAQCALyIDAFikLbXUUmnfvn3Gjx//qfNeeeWVtG/fvmE5gY8tt9xyjbbr6urStWvXvPnmm5+rrv89T5s2bdK+ffu0bdt2vvFPC0L/28knn5yLLroov/3tb7PNNts0jL/22mtJkmOPPTbHHnvsAp/7xhtvNNpefvnlm3TOoUOHZvHFF89VV12Viy66KIsttlg222yznHHGGenXr1+juZ/1Xn5c5/rrr7/Ac7Vq1ari1/Pmm2/Od94F1bIwPum4n/fPBgAAQlsAgEXaYostloEDB+b222/Pq6++usB1bV999dWMHj06gwYNymKLLdZo39SpU9O9e/eG7Tlz5uTNN99M165dW7z2Slx++eX56U9/muHDh+eggw5qtG+ppZZK8lHAuuuuuy7w+auttlqj7f+94/iT1NXVZciQIRkyZEjeeeed3HXXXTnhhBOy9dZbZ9KkSWnfvn3D3M96Lz+u86abbkrPnj0/8ZyVvJ6uXbtm6tSp8+1f0Fh9ff0Cv3Dtk0LYTzruKqus8om1AwDQNEJbAIBF3NChQ/PnP/85hx12WEaNGtUomJ07d26+//3vp1wuZ+jQofM99+qrr856663XsH3DDTdkzpw52XzzzRvG6uvr88EHH7Toa/g0t99+ew499NAcdNBBGTZs2Hz7V1tttXz1q1/Nk08+mVNPPbXF6lhyySXzrW99K5MnT87RRx+dV155JX369GnY/1nv5dZbb526urq89NJLn7o8QyWvZ+DAgbn11lvz2muvNSyRMHfu3Fx//fXzze3Vq1eeeuqpRmP33HNPZsyYscBjX3311Y3q/Nvf/pYJEybkkEMO+dSaAAD4bEJbAIBF3CabbJJzzjknRx99dL7+9a/niCOOyIorrpiJEyfm17/+df7+97/nnHPOycYbbzzfc2+55ZbU1dVlyy23zD//+c/89Kc/zdprr53dd9+9Yc6aa66Z6667Ltdff31WXnnltG3bNmuuueYX8trGjx+fwYMHZ+WVV86BBx6YRx55pNH+ddddN/X19bn44oszaNCgbL311jnggAPSvXv3vPXWW3nmmWcyZsyY3HjjjQt1/h122CFrrLFG+vXrl6WXXjoTJkzIOeeck549e+arX/1qo7mf9V726tUrI0aMyIknnpiXX34522yzTTp37pzXXnstjz76aBZffPGcdNJJSdLk1/OTn/wkt956a7bYYov87Gc/S/v27fPrX/8677333nyvZd99981Pf/rT/OxnP8uAAQMybty4XHDBBenUqdMCX/vjjz+eQw45JIMHD86kSZNy4oknpnv37jnssMMW6r0EAOA/hLYAADXgBz/4QdZff/386le/yg9/+MO8+eab6dKlS77+9a/noYceSv/+/Rf4vFtuuSXDhw/PhRdemFKplB122CHnnHNO2rRp0zDnpJNOypQpU3LooYfm3XffTc+ePfPKK698Ia9rwoQJmTFjRp5//vlsuumm8+0fP358evXqlYEDB+bRRx/NKaeckqOPPjpvv/12unbtmj59+jQKoCs1cODA3Hzzzbn00kszffr0LLfcctlyyy3z05/+NK1bt240tynv5dChQ9OnT5+ce+65ufbaazNr1qwst9xyWX/99fO9732v0Xmb8nrWWGON3HXXXfnhD3+Y/fffP507d86+++6b3XbbLd/5znca1fejH/0o06dPz+WXX55f/vKX2WCDDXLDDTdkp512WuBr/+1vf5srr7wye+65Z2bNmpWBAwfm3HPPnW+9YgAAKlcqf/xVwQAA8P8MHz48J510Uv797383rKHKwlnU3svLL788Bx54YB577LH5vmwNAIDm0araBQAAAAAA8B9CWwAAAACAArE8AgAAAABAgbjTFgAAAACgQIS2AAAAAAAFIrQFAAAAACiQumoX8HnMmzcv//rXv7LEEkukVCpVuxwAAAAAgE9ULpfz7rvvplu3bmnV6pPvp/1Sh7b/+te/0qNHj2qXAQAAAADQZJMmTcoKK6zwifu/1KHtEksskeSjF9mxY8cqVwMAAAAA8MmmT5+eHj16NOSan+RLHdp+vCRCx44dhbYAAAAAwJfCZy316ovIAAAAAAAKRGgLAAAAAFAgQlsAAAAAgAIR2gIAAAAAFIjQFgAAAACgQIS2AAAAAAAFIrQFAAAAACgQoS0AAAAAQIEIbQEAAAAACkRoCwAAAABQIEJbAAAAAIACqat2AQAAUIlex/+p2iU0q1dO367aJQAAUDDutAUAAAAAKBChLQAAAABAgQhtAQAAAAAKRGgLAAAAAFAgQlsAAAAAgAKpq3YBAAAAtJxex/+p2iU0q1dO367aJQBAi3OnLQAAAABAgQhtAQAAAAAKpOqh7eTJk7PPPvuka9euad++fdZZZ52MHj262mUBAAAAAFRFVde0ffvtt7PJJptk4MCB+fOf/5xlllkmL730UpZccslqlgUAAAAAUDVVDW3POOOM9OjRI5dddlnDWK9evapXEAAAAABAlVV1eYRbb701/fr1y+DBg7PMMstk3XXXzSWXXPKJ82fNmpXp06c3egAAAAAALEqqGtq+/PLLufDCC/PVr341d9xxR773ve/lyCOPzO9///sFzj/ttNPSqVOnhkePHj2+4IoBAAAAAFpWVUPbefPmpW/fvjn11FOz7rrr5rvf/W4OPfTQXHjhhQucP3To0EybNq3hMWnSpC+4YgAAAACAllXV0Hb55ZdPnz59Go317t07EydOXOD8+vr6dOzYsdEDAAAAAGBRUtXQdpNNNslzzz3XaOz5559Pz549q1QRAAAAAEB1VTW0PeaYY/LII4/k1FNPzYsvvphrrrkmv/nNb3L44YdXsywAAAAAgKqpq+bJ119//YwaNSpDhw7NiBEjstJKK+Wcc87J3nvvXc2yAAAAoMX1Ov5P1S6h2bxy+nbVLgFgkVLV0DZJtt9++2y//fbVLgMAAAAAoBCqujwCAAAAAACNCW0BAAAAAAqk6ssjAAAAiwbrcwIANA932gIAAAAAFIjQFgAAAACgQIS2AAAAAAAFIrQFAAAAACgQoS0AAAAAQIEIbQEAAAAACkRoCwAAAABQIEJbAAAAAIACEdoCAAAAABSI0BYAAAAAoECEtgAAAAAABSK0BQAAAAAoEKEtAAAAAECB1DVl0rrrrptSqdSkA44ZM+ZzFQQAAAAAUMuaFNruvPPODT/PnDkzI0eOTJ8+fdK/f/8kySOPPJJ//vOfOeyww1qkSAAAAACAWtGk0HbYsGENPx9yyCE58sgj8/Of/3y+OZMmTWre6gAAAAAAakzFa9reeOON2W+//eYb32effXLzzTc3S1EAAAAAALWq4tC2Xbt2eeihh+Ybf+ihh9K2bdtmKQoAAAAAoFY1aXmE/3b00Ufn+9//fkaPHp2NNtooyUdr2v7ud7/Lz372s2YvEAAAAACgllQc2h5//PFZeeWVc+655+aaa65JkvTu3TuXX355dt9992YvEAAAAACgllQc2ibJ7rvvLqAFAAAAAGgBFa9pmyTvvPNOLr300pxwwgl56623kiRjxozJ5MmTm7U4AAAAAIBaU/Gdtk899VS++c1vplOnTnnllVdyyCGHpEuXLhk1alQmTJiQ3//+9y1RJwAAAABATaj4TtshQ4bkgAMOyAsvvJC2bds2jA8aNCgPPPBAsxYHAAAAAFBrKg5tH3vssXz3u9+db7x79+6ZOnVqsxQFAAAAAFCrKg5t27Ztm+nTp883/txzz2XppZdulqIAAAAAAGpVxaHtTjvtlBEjRmT27NlJklKplIkTJ+b444/Pbrvt1uwFAgAAAADUkopD21/+8pf597//nWWWWSYffPBBBgwYkFVWWSVLLLFETjnllJaoEQAAAACgZtRV+oSOHTvmoYceyj333JMxY8Zk3rx56du3b775zW+2RH0AAAAAADWl4tB24sSJWXbZZbPFFltkiy22aBgvl8uZNGlSVlxxxSYfa/jw4TnppJMajS277LK+0AwAAAAAqFkVL4/Qq1ev9O3bNy+99FKj8ddffz0rrbRSxQV87Wtfy5QpUxoeTz/9dMXHAAAAAABYVFQc2iZJ7969s8EGG+Tuu+9uNF4ulys+Vl1dXZZbbrmGx9JLL70wJQEAAAAALBIqDm1LpVJGjhyZn/zkJ9luu+1y3nnnNdpXqRdeeCHdunXLSiutlD333DMvv/xyxccAAAAAAFhUVLym7cd30x5zzDFZffXVs9dee+Wpp57Kz372s4pPvuGGG+b3v/99Vl111bz22ms5+eSTs/HGG+ef//xnunbtOt/8WbNmZdasWQ3b06dPr/icAAAAAABFtlDLI3xs0KBB+dvf/pb77rsv22+//UI9f7fddsuaa66Zb37zm/nTn/6UJLniiisWOP+0005Lp06dGh49evT4POUDAAAAABROxaHtgAED0qZNm4btPn365NFHH03nzp0Xak3b/7b44otnzTXXzAsvvLDA/UOHDs20adMaHpMmTfpc5wMAAAAAKJqKl0e499575xvr0qVL7r///s9dzKxZs/LMM89k0003XeD++vr61NfXf+7zAAAAAAAUVZNC2+nTp6djx44NP3+aj+c1xbHHHpsddtghK664Yl5//fWcfPLJmT59evbff/8mHwMAAAAAYFHSpNC2c+fOmTJlSpZZZpksueSSKZVK880pl8splUqZO3duk0/+6quvZq+99sobb7yRpZdeOhtttFEeeeSR9OzZs+mvAAAAAABgEdKk0Paee+5Jly5dkix4eYSFdd111zXbsQAAAAAAFgVNCm0HDBiwwJ8BAAAAAGheFX8RWZLMnDkzTz31VF5//fXMmzev0b4dd9yxWQoDAAAAAKhFFYe2t99+e/bbb7+88cYb8+2rdE1bAAAAAAAaa1XpE4444ogMHjw4U6ZMybx58xo9BLYAAAAAAJ9PxaHt66+/niFDhmTZZZdtiXoAAAAAAGpaxaHtt771rdx3330tUAoAAAAAABWvaXvBBRdk8ODBefDBB7PmmmumdevWjfYfeeSRzVYcAAAAAECtqTi0veaaa3LHHXekXbt2ue+++1IqlRr2lUoloS0AAAAAwOdQcWj7k5/8JCNGjMjxxx+fVq0qXl0BAAAAAIBPUXHq+uGHH2aPPfYQ2AIAAAAAtICKk9f9998/119/fUvUAgAAAABQ8ypeHmHu3Lk588wzc8cdd2Sttdaa74vIzjrrrGYrDgAAAACg1lQc2j799NNZd911kyT/+Mc/Gu377y8lAwAAAACgchWHtvfee29L1AEAAAAAQBZiTVsAAAAAAFpOk+603XXXXXP55ZenY8eO2XXXXT917i233NIshQEAAAAA1KImhbadOnVqWK+2Y8eO1q4FAAAAAGghTQptL7vssoafL7/88paqBQAAAACg5lW8pu0WW2yRd955Z77x6dOnZ4sttmiOmgAAAAAAalbFoe19992XDz/8cL7xmTNn5sEHH2yWogAAAAAAalWTlkdIkqeeeqrh53HjxmXq1KkN23Pnzs3tt9+e7t27N291AAAAAAA1psmh7TrrrJNSqZRSqbTAZRDatWuX888/v1mLAwAAAACoNU0ObcePH59yuZyVV145jz76aJZeeumGfW3atMkyyyyTxRZbrEWKBAAAAACoFU0ObXv27JkkmTdvXosVAwAAAABQ65oc2v635557Lueff36eeeaZlEqlrL766jniiCOy+uqrN3d9AAAAAAA1pVWlT7jpppuyxhprZPTo0Vl77bWz1lprZcyYMVlzzTVz4403tkSNAAAAAAA1o+I7bX/84x9n6NChGTFiRKPxYcOG5bjjjsvgwYObrTgAAAAAgFpT8Z22U6dOzX777Tff+D777JOpU6c2S1EAAAAAALWq4tB28803z4MPPjjf+EMPPZRNN920WYoCAAAAAKhVFS+PsOOOO+a4447L6NGjs9FGGyVJHnnkkdx444056aSTcuuttzaaCwAAAABA01Uc2h522GFJkpEjR2bkyJEL3JckpVIpc+fO/ZzlAQAAAADUlopD23nz5rVEHQAAAAAAZCHWtAUAAAAAoOVUFNrOmTMnv/jFL9K3b9906NAhSyyxRPr27Ztf/vKXmT179ucq5LTTTkupVMrRRx/9uY4DAAAAAPBl1uTlET744INsueWWefjhh/PNb34zm222Wcrlcp599tkcd9xxufXWW/OXv/wlbdu2rbiIxx57LL/5zW+y1lprVfxcAAAAAIBFSZND29NOOy2TJk3K2LFj5wtXn3zyyey44445/fTTM3z48IoKmDFjRvbee+9ccsklOfnkkyt6LgAAAADAoqbJyyNcd911OeussxZ4N+zaa6+dX/7yl7nmmmsqLuDwww/Pdtttl29+85sVPxcAAAAAYFHT5DttJ06cmA022OAT92+00UaZOHFiRSe/7rrrMmbMmDz22GNNmj9r1qzMmjWrYXv69OkVnQ8AAAAAoOiafKdtx44d8/rrr3/i/qlTp6Zjx45NPvGkSZNy1FFH5aqrrmryOrinnXZaOnXq1PDo0aNHk88HAAAAAPBl0OTQduDAgTn11FM/cf/pp5+ezTffvMknHj16dF5//fWst956qaurS11dXe6///6cd955qaury9y5c+d7ztChQzNt2rSGx6RJk5p8PgAAAACAL4MmL48wbNiwbLjhhtloo40yZMiQrL766kmScePG5eyzz864cePyyCOPNPnE3/jGN/L00083GjvwwAOz+uqr57jjjstiiy0233Pq6+tTX1/f5HMAAAAAAHzZNDm07dOnT+68884cfPDB2XPPPVMqlZIk5XI5q6++eu6444587Wtfa/KJl1hiiayxxhqNxhZffPF07dp1vnEAAAAAgFrR5NA2+ejLxv75z3/miSeeyPPPP58kWXXVVbPOOuu0RG0AAAAAADWnotD2Y+uss06LBLX33Xdfsx8TAAAAAODLpMlfRAYAAAAAQMsT2gIAAAAAFIjQFgAAAACgQJoc2v7mN7/J1KlTW7IWAAAAAICa1+TQ9tprr02vXr2y4YYb5tRTT80///nPlqwLAAAAAKAmNTm0vffeezNlypT84Ac/yBNPPJGNN944X/nKVzJkyJDcd999mTdvXkvWCQAAAABQEypa07Zz587ZZ599csMNN+Tf//53fv3rX2fmzJnZd999s/TSS2e//fbLTTfdlPfee6+l6gUAAAAAWKQt9BeRtWnTJttss01GjhyZSZMm5Y477kivXr3y85//PGeddVZz1ggAAAAAUDPqmutA/fr1S79+/TJixIjMnj27uQ4LAAAAAFBTFvpO20/TunXrljgsAAAAAMAir0VCWwAAAAAAFo7QFgAAAACgQIS2AAAAAAAFslCh7YMPPph99tkn/fv3z+TJk5MkV155ZR566KFmLQ4AAAAAoNZUHNrefPPN2XrrrdOuXbuMHTs2s2bNSpK8++67OfXUU5u9QAAAAACAWlJxaHvyySfnoosuyiWXXJLWrVs3jG+88cYZM2ZMsxYHAAAAAFBrKg5tn3vuuWy22WbzjXfs2DHvvPNOc9QEAAAAAFCzKg5tl19++bz44ovzjT/00ENZeeWVm6UoAAAAAIBaVXFo+93vfjdHHXVU/v73v6dUKuVf//pXrr766hx77LE57LDDWqJGAAAAAICaUVfpE3784x9n2rRpGThwYGbOnJnNNtss9fX1OfbYY3PEEUe0RI0AAAAAADWj4tA2SU455ZSceOKJGTduXObNm5c+ffqkQ4cOzV0bAAAAAEDNqXh5hCuuuCLvvfde2rdvn379+mWDDTYQ2AIAAAAANJOKQ9tjjz02yyyzTPbcc8/cdtttmTNnTkvUBQAAAABQkyoObadMmZLrr78+iy22WPbcc88sv/zyOeyww/K3v/2tJeoDAAAAAKgpFYe2dXV12X777XP11Vfn9ddfzznnnJMJEyZk4MCB+cpXvtISNQIAAAAA1IyF+iKyj7Vv3z5bb7113n777UyYMCHPPPNMc9UFAAAAAFCTKr7TNknef//9XH311dl2223TrVu3nH322dl5553zj3/8o7nrAwAAAACoKRXfabvXXnvl//v//r+0b98+gwcPzn333ZeNN964JWoDAAAAAKg5FYe2pVIp119/fbbeeuvU1X2u1RUAAAAAAPgfFaeu11xzTUvUAQAAAABAmhjannfeefnOd76Ttm3b5rzzzvvUuUceeWSzFAYAAAAAUIuaFNqeffbZ2XvvvdO2bducffbZnzivVCoJbQEAAAAAPocmhbbjx49f4M8AAAAAADSvVtU8+YUXXpi11lorHTt2TMeOHdO/f//8+c9/rmZJAAAAAABVVfEXkSXJq6++mltvvTUTJ07Mhx9+2GjfWWed1eTjrLDCCjn99NOzyiqrJEmuuOKK7LTTThk7dmy+9rWvLUxpAAAAAABfahWHtnfffXd23HHHrLTSSnnuueeyxhpr5JVXXkm5XE7fvn0rOtYOO+zQaPuUU07JhRdemEceeURoCwAAAADUpIqXRxg6dGh++MMf5h//+Efatm2bm2++OZMmTcqAAQMyePDghS5k7ty5ue666/Lee++lf//+C5wza9asTJ8+vdEDAAAAAGBRUnFo+8wzz2T//fdPktTV1eWDDz5Ihw4dMmLEiJxxxhkVF/D000+nQ4cOqa+vz/e+972MGjUqffr0WeDc0047LZ06dWp49OjRo+LzAQAAAAAUWcWh7eKLL55Zs2YlSbp165aXXnqpYd8bb7xRcQGrrbZannjiiTzyyCP5/ve/n/333z/jxo1b4NyhQ4dm2rRpDY9JkyZVfD4AAAAAgCKreE3bjTbaKH/961/Tp0+fbLfddvnhD3+Yp59+Orfccks22mijigto06ZNwxeR9evXL4899ljOPffcXHzxxfPNra+vT319fcXnAAAAAAD4sqg4tD3rrLMyY8aMJMnw4cMzY8aMXH/99VlllVVy9tlnf+6CyuVyw528AAAAAAC1puLQduWVV274uX379hk5cuRCn/yEE07IoEGD0qNHj7z77ru57rrrct999+X2229f6GMCAAAAAHyZVRzaNqfXXnst++67b6ZMmZJOnTplrbXWyu23354tt9yymmUBAAAAAFRNk0PblVZaKaVS6VPnlEqlRl9M9ll++9vfNnkuAAAAAEAtaHJoe/TRR3/ivldeeSUXX3yxtWgBAAAAAD6nJoe2Rx111Hxjb731Vn7+85/nwgsvzIYbbpgzzjijWYsDAAAAAKg1C7Wm7QcffJCzzjorv/jFL9KrV6/ccsst2XbbbZu7NgAAAACAmlNRaDt37txccsklOemkk9K2bducf/752WeffT5zrVsAAAAAAJqmyaHtDTfckJ/85CeZNm1aTjjhhHz/+99PmzZtWrI2AAAAAICa0+TQds8990y7du2y1157ZcKECTn++OMXOO+ss85qtuIAAAAAAGpNk0PbzTbbLKVSKS+99NInzrFMAgAAAADA59Pk0Pa+++5rwTIAAAAAAEiSVtUuAAAAAACA/xDaAgAAAAAUiNAWAAAAAKBAhLYAAAAAAAUitAUAAAAAKJBmDW0nTpyYuXPnNuchAQAAAABqSrOGtr169UqfPn1yyy23NOdhAQAAAABqRl1zHuzee+/N+PHjc9NNN2XXXXdtzkMDAAAAANSEZg1tBwwYkAEDBuSAAw5ozsMCAAAAANSMhQ5tX3/99Tz33HMplUpZddVVs8wyyzRnXQAAAAAANaniNW2nT5+efffdN927d8+AAQOy2WabpXv37tlnn30ybdq0lqgRAAAAAKBmVBzaHnLIIfn73/+e2267Le+8806mTZuW2267LY8//ngOPfTQlqgRAAAAAKBmVLw8wp/+9Kfccccd+frXv94wtvXWW+eSSy7JNtts06zFAQAAAADUmorvtO3atWs6deo033inTp3SuXPnZikKAAAAAKBWVRza/uQnP8mQIUMyZcqUhrGpU6fmRz/6UX760582a3EAAAAAALWm4uURLrzwwrz44ovp2bNnVlxxxSTJxIkTU19fn3//+9+5+OKLG+aOGTOm+SoFAAAAAKgBFYe2O++8cwuUAQAAAABAshCh7bBhw1qiDgAAAAAAshBr2gIAAAAA0HIqvtO2VatWKZVKn7h/7ty5n6sgAAAAAIBaVnFoO2rUqEbbs2fPztixY3PFFVfkpJNOarbCAAAAAABqUcWh7U477TTf2Le+9a187Wtfy/XXX5+DDz64WQoDAAAAAKhFzbam7YYbbpi77rqruQ4HAAAAAFCTmiW0/eCDD3L++ednhRVWaI7DAQAAAADUrIqXR+jcuXOjLyIrl8t599130759+1x11VXNWhwAAAAAQK2pOLQ9++yzG4W2rVq1ytJLL50NN9wwnTt3ruhYp512Wm655ZY8++yzadeuXTbeeOOcccYZWW211SotCwAAAABgkVBxaHvAAQc028nvv//+HH744Vl//fUzZ86cnHjiidlqq60ybty4LL744s12HgAAAACAL4smhbZPPfVUkw+41lprNXnu7bff3mj7sssuyzLLLJPRo0dns802a/JxAAAAAAAWFU0KbddZZ52USqWUy+UkabQ8wv+aO3fuQhczbdq0JEmXLl0WuH/WrFmZNWtWw/b06dMX+lwAAAAAAEXUqimTxo8fn5dffjnjx4/PLbfckpVWWikjR47M2LFjM3bs2IwcOTJf+cpXcvPNNy90IeVyOUOGDMnXv/71rLHGGgucc9ppp6VTp04Njx49eiz0+QAAAAAAiqhJd9r27Nmz4efBgwfnvPPOy7bbbtswttZaa6VHjx756U9/mp133nmhCjniiCPy1FNP5aGHHvrEOUOHDs2QIUMatqdPny64BQAAAAAWKRV/EdnTTz+dlVZaab7xlVZaKePGjVuoIn7wgx/k1ltvzQMPPJAVVljhE+fV19envr5+oc4BAAAAAPBl0KTlEf5b7969c/LJJ2fmzJkNY7NmzcrJJ5+c3r17V3SscrmcI444IrfcckvuueeeBYbBAAAAAAC1pOI7bS+66KLssMMO6dGjR9Zee+0kyZNPPplSqZTbbrutomMdfvjhueaaa/LHP/4xSyyxRKZOnZok6dSpU9q1a1dpaQAAAAAAX3oVh7YbbLBBxo8fn6uuuirPPvtsyuVy9thjj3z729/O4osvXtGxLrzwwiTJ5ptv3mj8sssuywEHHFBpaQAAAAAAX3oVh7ZJ0r59+3znO9/53Ccvl8uf+xgAAAAAAIuSite0TZIrr7wyX//619OtW7dMmDAhSXL22Wfnj3/8Y7MWBwAAAABQayoObS+88MIMGTIkgwYNyttvv525c+cmSTp37pxzzjmnuesDAAAAAKgpFYe2559/fi655JKceOKJqav7z+oK/fr1y9NPP92sxQEAAAAA1JqKQ9vx48dn3XXXnW+8vr4+7733XrMUBQAAAABQqyoObVdaaaU88cQT843/+c9/Tp8+fZqjJgAAAACAmlX32VMa+9GPfpTDDz88M2fOTLlczqOPPpprr702p512Wi699NKWqBEAAAAAoGZUHNoeeOCBmTNnTn784x/n/fffz7e//e1079495557bvbcc8+WqBEAAAAAoGZUHNomyaGHHppDDz00b7zxRubNm5dlllmmuesCAAAAAKhJFa9pmyRz5szJXXfdlZtvvjnt2rVLkvzrX//KjBkzmrU4AAAAAIBaU/GdthMmTMg222yTiRMnZtasWdlyyy2zxBJL5Mwzz8zMmTNz0UUXtUSdAAAAAAA1oeI7bY866qj069cvb7/9dsNdtkmyyy675O67727W4gAAAAAAak3Fd9o+9NBD+etf/5o2bdo0Gu/Zs2cmT57cbIUBAAAAANSiiu+0nTdvXubOnTvf+KuvvpollliiWYoCAAAAAKhVFYe2W265Zc4555yG7VKplBkzZmTYsGHZdtttm7M2AAAAAICaU/HyCGeffXYGDhyYPn36ZObMmfn2t7+dF154IUsttVSuvfbalqgRAAAAACigXsf/qdolNJtXTt+u2iU0qDi07dat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8OHDc9JJJ32RZQIAAAAANKtJkyZlhRVW+MT9VbvTdqmllspiiy023121r7/++nx3335s6NChGTJkSMP2vHnz8tZbb6Vr164plUotWm9Lmz59enr06JFJkyalY8eO1S6H/6I3xaQvxaU3xaQvxaU3xaQvxaU3xaQvxaQvxaU3xaQvxbUo9aZcLufdd99Nt27dPnVe1ULbNm3aZL311sudd96ZXXbZpWH8zjvvzE477bTA59TX16e+vr7R2JJLLtmSZX7hOnbs+KX/w7eo0pti0pfi0pti0pfi0pti0pfi0pti0pdi0pfi0pti0pfiWlR606lTp8+cU7XQNkmGDBmSfffdN/369Uv//v3zm9/8JhMnTsz3vve9apYFAAAAAFA1VQ1t99hjj7z55psZMWJEpkyZkjXWWCP/93//l549e1azLAAAAACAqqlqaJskhx12WA477LBql1F19fX1GTZs2HzLP1B9elNM+lJcelNM+lJcelNM+lJcelNM+lJM+lJcelNM+lJctdibUrlcLle7CAAAAAAAPtKq2gUAAAAAAPAfQlsAAAAAgAIR2gIAAAAAFIjQFgAAAACgQIS2AAAAsIgaP3585syZU+0yAKiQ0LaAXnrppWyxxRbVLqNmTZkyJVdddVX+7//+Lx9++GGjfe+9915GjBhRpcpq25133plhw4blnnvuSZI88MADGTRoULbYYotcdtllVa6OBXEtqy7XsmJyLftycj2rHtey4nI9+/JYbbXV8sILL1S7DD6Fz5nq8TlTXD5nklK5XC5Xuwgae/LJJ9O3b9/MnTu32qXUnMceeyxbbbVV5s2bl9mzZ2eFFVbIqFGj8rWvfS1J8tprr6Vbt2568wW76qqrcuCBB2attdbK888/n/PPPz/HHHNMvvWtb6VcLufKK6/M1VdfnW9961vVLpX/4lpWPa5lxeRa9uXlelYdrmXF5XpWTLvuuusCx//4xz9miy22yBJLLJEkueWWW77IsmgCnzPV4XOmuHzOfKSu2gXUovPOO+9T90+ePPkLqoT/dcIJJ2TXXXfNJZdckvfeey/HH398BgwYkDvvvDPrrrtutcurWb/61a/yq1/9KkceeWTuvvvu7LDDDjnllFNyzDHHJEn69OmTc845Z5G/YBeNa1lxuZYVk2tZcbmeFZNrWXG5nhXTH/7wh2y22WZZaaWV5tvXoUOHdOrUqQpVkficKSqfM8Xlc+Yj7rStglatWmX55ZdPmzZtFrj/ww8/zNSpU/1rThV06dIljzzySFZdddWGsTPPPDOnn3567rjjjqy44or+pa0KOnTokKeffrrhP0DbtGmTxx9/PGuttVaS5Lnnnssmm2ySN954o5pl1hzXsuJyLSsm17Licj0rJtey4nI9K6brrrsuP/rRjzJixIgceOCBDeOtW7fOk08+mT59+lSxutrmc6aYfM4Ul8+Zj7jTtgp69uyZM844I7vvvvsC9z/xxBNZb731vuCq+NjMmTMbbf/4xz9Oq1atstVWW+V3v/tdlaqqba1bt260vlB9fX06dOjQsN2mTZt88MEH1SitprmWFZtrWfG4lhWX61lxuZYVk+tZMe25557p379/9tlnn9x222259NJL07lz52qXRXzOFJnPmWLyOfMRX0RWBeutt15Gjx79iftLpVLcAF0da6yxRv72t7/NN37sscfmhBNOyF577VWFqlhllVXy7LPPNmxPnjy50a99vfTSS1lhhRWqUVpNcy0rLteyYnItKy7Xs2JyLSsu17Pi6tmzZ+6///6sscYaWXvttXPHHXekVCpVu6ya53OmmHzOFJfPmY+407YKRowYkffff/8T9/fp0yfjx4//AiviY/vtt1/uv//+fO9735tv349+9KOUy+VceOGFVaistp1wwgmN7hLo2LFjo/2PP/74J/6rNS3Htay4XMuKybWsuFzPism1rLhcz4qtVatWOemkk7LVVltl33339avdBeBzpph8zhSXz5mPWNMWAAAAFkEzZszISy+9lN69e3/ieqoAFJPQFgAAAACgQKxpW0AnnHBCDjrooGqXwQLoTTHpSzHpS3HpTTHpS3HpTTHpS3HpTTHpS3HpTTHpS3HVSm+saVtAkydPzqRJk6pdBgugN8WkL8WkL8WlN8WkL8WlN8WkL8WlN8WkL8WlN8WkL8VVK72xPAIAAAAAQIFYHgEAAAAAoECEtgX02muvZcSIEdUugwXQm2LSl+p69dVXM2PGjPnGZ8+enQceeKAKFfExvSkmfSmmN998M/fee2/eeuutJMkbb7yRM844IyNGjMgzzzxT5epql74Ul94Uk758uay88sp54YUXql0G/0NfiqvWemN5hAJ68skn07dv38ydO7fapfA/9KaY9KU6pkyZkp122imjR49OqVTK3nvvnV//+tfp0KFDko/C9G7duulLFehNMelLcT366KPZaqutMn369Cy55JK58847M3jw4NTV1aVcLmfy5Ml56KGH0rdv32qXWlP0pbj0ppj0pbjOO++8BY4PGTIkP/7xj7PccsslSY488sgvsqyapy/FpTcfEdpWwVNPPfWp+5999tnstdde/qetCvSmmPSlmPbff/88//zzOf/88/POO+9k6NChKZfLufPOO9O5c+e89tprWX755TNv3rxql1pz9KaY9KW4ttxyy/Tq1StnnXVWLr744px77rnZZpttcskllyRJDjnkkLz55psZNWpUlSutLfpSXHpTTPpSXK1atUr37t1TV9f4u+AnTJiQbt26pXXr1imVSnn55ZerVGFt0pfi0puPCG2roFWrVimVSlnQW//xeKlUEkBVgd4Uk74UU/fu3TNq1KhssMEGSZJZs2Zljz32yIQJE3L33Xdn9uzZ7hqsEr0pJn0pri5duuSvf/1revfundmzZ6dt27Z5+OGHG3o1duzY7LDDDnn11VerXGlt0Zfi0pti0pfi+u53v5tHH30011xzTXr37t0w3rp16zz55JPp06dPFaurXfpSXHrzEWvaVkHXrl1zySWXZPz48fM9Xn755dx2223VLrFm6U0x6UsxTZs2LZ07d27Yrq+vz0033ZRevXpl4MCBef3116tYXW3Tm2LSl+L68MMP065duyQf/c9A+/bts9RSSzXs79q1a958881qlVez9KW49KaY9KW4Lr744gwbNixbb711LrjggmqXw/+jL8WlNx8R2lbBeuutl3/961/p2bPnAh/du3df4B2FtDy9KSZ9KaaVV155vqUr6urqcuONN2bllVfO9ttvX6XK0Jti0pfi6tGjR6Nfr7vuuuuy/PLLN2xPmTKlUfDBF0Nfiktviklfim3nnXfOww8/nFGjRmXQoEGZOnVqtUsi+lJkeiO0rYrvfve76dWr1yfuX3HFFXPZZZd9cQXRQG+KSV+KadCgQfnNb34z3/jHIdQ666wjTK8SvSkmfSmuPffcs9Gdztttt13D3WpJcuuttzb8ejFfHH0pLr0pJn0pvu7du+euu+7KZpttlnXXXdfnfkHoS3HVem+saQvAQpkzZ07ef//9dOzYcYH7586dm1dffTU9e/b8gitDb4pJX7683n///Sy22GKpr6+vdin8F30pLr0pJn0pljFjxuTBBx/Mfvvt12j5JKpLX4qrFnsjtK2iIUOGNHnuWWed1YKV8L/0ppj0pZj0pbj0ppj0pbj0ppj0pbj0ppj0pbj0ppj0pbhqvTd11S6glo0dOzZjxozJnDlzstpqqyVJnn/++Sy22GLp27dvw7xSqVStEmuW3hSTvhSTvhSX3hSTvhSX3hSTvhSX3hSTvhSX3hSTvhRXrfdGaFtFO+ywQ5ZYYolcccUVDbd2v/322znwwAOz6aab5oc//GGVK6xdelNM+lJM+lJcelNM+lJcelNM+lJcelNM+lJcelNM+lJcNd+bMlXTrVu38j/+8Y/5xp9++uny8ssvX4WK+JjeFJO+FJO+FJfeFJO+FJfeFJO+FJfeFJO+FJfeFJO+FFet96ZVtUPjWjZ9+vS89tpr842//vrreffdd6tQER/Tm2LSl2LSl+LSm2LSl+LSm2LSl+LSm2LSl+LSm2LSl+Kq9d4Ibatol112yYEHHpibbropr776al599dXcdNNNOfjgg7PrrrtWu7yapjfFpC/FpC/FpTfFpC/FpTfFpC/FpTfFpC/FpTfFpC/FVfO9qfatvrXsvffeK3//+98v19fXl1u1alVu1apVuU2bNuXvf//75RkzZlS7vJqmN8WkL8WkL8WlN8WkL8WlN8WkL8WlN8WkL8WlN8WkL8VV670plcvlcrWD41r33nvv5aWXXkq5XM4qq6ySxRdfvNol8f/oTTHpSzHpS3HpTTHpS3HpTTHpS3HpTTHpS3HpTTHpS3HVam+EtgAAAAAABWJNWwAAAACAAhHaAgAAAAAUiNAWAAAAAKBAhLYAAAAAAAUitAUAAAAAKBChLQAAi5RJkybl4IMPTrdu3dKmTZv07NkzRx11VN58881qlwYAAE0itAUAYJHx8ssvp1+/fnn++edz7bXX5sUXX8xFF12Uu+++O/37989bb73VYuf+8MMPW+zYAADUFqEtAACLjMMPPzxt2rTJX/7ylwwYMCArrrhiBg0alLvuuiuTJ0/OiSeemCQplUr5wx/+0Oi5Sy65ZC6//PKG7cmTJ2ePPfZI586d07Vr1+y000555ZVXGvYfcMAB2XnnnXPaaaelW7duWXXVVTNixIisueaa89W13nrr5Wc/+1lLvGQAABZBQlsAABYJb731Vu64444cdthhadeuXaN9yy23XPbee+9cf/31KZfLn3ms999/PwMHDkyHDh3ywAMP5KGHHkqHDh2yzTbbNLqj9u67784zzzyTO++8M7fddlsOOuigjBs3Lo899ljDnKeeeipjx47NAQcc0GyvFQCARVtdtQsAAIDm8MILL6RcLqd3794L3N+7d++8/fbb+fe///2Zx7ruuuvSqlWrXHrppSmVSkmSyy67LEsuuWTuu+++bLXVVkmSxRdfPJdeemnatGnT8Nytt946l112WdZff/2G5w0YMCArr7zy532JAADUCHfaAgBQEz6+w/a/A9ZPMnr06Lz44otZYokl0qFDh3To0CFdunTJzJkz89JLLzXMW3PNNec73qGHHpprr702M2fOzOzZs3P11VfnoIMOat4XAwDAIs2dtgAALBJWWWWVlEqljBs3LjvvvPN8+5999tksvfTSWXLJJVMqleZbJmH27NkNP8+bNy/rrbderr766vmOs/TSSzf8vPjii8+3f4cddkh9fX1GjRqV+vr6zJo1K7vtttvneGUAANQaoS0AAIuErl27Zsstt8zIkSNzzDHHNFrXdurUqbn66qtz+OGHJ/koeJ0yZUrD/hdeeCHvv/9+w3bfvn1z/fXXZ5lllknHjh0rqqOuri77779/LrvsstTX12fPPfdM+/btP+erAwCgllgeAQCARcYFF1yQWbNmZeutt84DDzyQSZMm5fbbb8+WW26ZVVddNT/72c+SJFtssUUuuOCCjBkzJo8//ni+973vpXXr1g3H2XvvvbPUUktlp512yoMPPpjx48fn/vvvz1FHHZVXX331M+s45JBDcs899+TPf/6zpREAAKiY0BYAgEXGV7/61Tz22GNZeeWVs/vuu6dnz54ZNGhQVl111fz1r39Nhw4dkiS/+tWv0qNHj2y22Wb59re/nWOPPbbR3bDt27fPAw88kBVXXDG77rprevfunYMOOigffPBBk+68/epXv5qNN944q622WjbccMMWe70AACyaSuX/XcwLAAAWIcOGDctZZ52Vv/zlL+nfv/8Xcs5yuZzVV1893/3udzNkyJAv5JwAACw6rGkLAMAi7aSTTkqvXr3y97//PRtuuGFatWrZXzZ7/fXXc+WVV2by5Mk58MADW/RcAAAsmtxpCwAAzahUKmWppZbKueeem29/+9vVLgcAgC8hd9oCAEAzck8EAACfly8iAwAAAAAoEKEtAAAAAECBCG0BAAAAAApEaAsAAAAAUCBCWwAAAACAAhHaAgAAAAAUiNAWAAAAAKBAhLYAAAAAAAUitAUAAAAAKJD/H6ZJpWbhLXmqAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "speedup = (wide[\"Naive\"] / wide[\"Optimized\"]).sort_index()\n", "ax = speedup.plot.bar(figsize=(14, 4))\n", @@ -250,10 +1012,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "4ee5fc7c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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btw4jRw5UhMnTlSFChXUtGlTrVixQiVLllSPHj00evRo1ahRQ5I0atQo+fn5mVfL79mzp2bNmqV58+YpKChIDRo00Lx58xQQECDpr1G4tWvXytvbWy1atFBQUJDee+8983TOpk2basSIERo0aJAef/xx3bhxQ507d7bIN3DgQNnb26tixYry8vJSTEyMihUrpsjISP3yyy+qWrWqevfurR49emj48OGP8JOzHZORl9YKzSLx8fFyd3fX9evX5ebmZus4OQKra/6fU07tbR0hZxl93dYJAADIUxISEnTy5EkFBATIyYllvf9rHvTnn9k6hZE8AAAAAMhDKPIAAAAAIA+xusg7c+aMzp49a379yy+/qH///vrss8+yNBgAAAAAwHpWF3nt27dXVFSUJCkuLk6hoaH65ZdfNHToUI0dOzbLAwIAAAAAMs/qIu/gwYOqVauWJOnrr79W5cqVtW3bNn311VeaN29eVucDAAAAAFjB6iLv3r175qfb//TTT2rdurUkqXz58oqNjc3adAAAAAAAq1hd5FWqVEkzZ87U5s2btW7dOjVr1kySdP78eXl6emZ5QAAAAABA5lld5L3//vv69NNP1bBhQ73yyiuqWrWqJOmHH34wT+MEAAAAANhGPmt3aNiwoS5duqT4+HgVKlTI3P7qq6/K2dk5S8MBAAAAAKzzUM/Js7e3tyjwJKlkyZLy9vbOklAAAAAAkJaGDRuqf//+WX7c0aNHq1q1all+XFuweiTv8uXLGjlypKKionThwgWlpKRYbL9y5UqWhQMAAADwl5KDVz3S9zv13jNW7xMXF6fx48dr1apVOnfunLy9vVWtWjX1799fTz31VDakfHROnTqlgIAARUdHq1q1ahavly9frjFjxjxw/5MnT6pkyZKPJKvVRV7Hjh31xx9/qEePHvLx8ZHJZMqOXAAAAABykVOnTqlu3bry8PDQpEmTVKVKFd27d09r1qzR66+/rt9//93WEbPNwIED1bt3b/Prxx9/XK+++qp69eplbvPy8npkeawu8rZs2aItW7aYF1wBAAAAgL59+8pkMumXX36Ri4uLub1SpUrq3r27+fWUKVM0d+5cnThxQoULF1arVq00adIkFSxY0Nxn69atGjp0qHbt2iVHR0fVqlVLixcvNt8ylpKSokGDBmnWrFlycHBQ7969NXr0aPP+169f19tv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "jit = synthetic[synthetic[\"mode\"] == \"Optimized\"].copy()\n", "jit[\"executor\"] = jit[\"executor\"].replace({\n", @@ -269,10 +1042,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "bbe140d5", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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IiIiItKJKMkTERERERHpRJTkiYiIiIiIdCJK8kRERERERDqRAH8H0J6dO5PG7Xb7ORIREREREenqzuUllzo7U0leA4qLiwFITEz0cyQiIiIiIiKW4uJinE7nRX+uEgoN8Hq9HDt2jMjISAzD8EsMGRkZbNmypd1fu7nXas7zmvKcxvS9VB+3201iYiJHjhzptKU0WnOctZc4fHXtllynNce7r/ppvHeOGDriePf1e/ul+nWFsQ6df7x3xLHe1Ofob5nG6exj/dz1N2/eTHFxMT179sRmu/jOO83kNcBms9G7d2+/xmC321vtH6Mvr93cazXneU15TmP6NvZ6Doej074xtuY4ay9x+OraLblOa453X/fTeO/YMXTE8e7r9/bG9uvMYx06/3jviGO9qc/R3zKN09nH+rnrO53OBmfwztHBK+3c3LlzO8S1m3ut5jyvKc9pTN/W/B13FO3ld9ARxntLrtOa493X/Tqz9vA7aO0YOuJ49/V7e3Ni6Izaw+9A7+0te47+lmmc9vA7aE/v7VquKXIJbrcbp9OJy+Xy+zdEIq1N4126Co116Uo03rsezeSJXEJwcDCPP/44wcHB/g5FpNVpvEtXobEuXYnGe9ejmTwREREREZFORDN5IiIiIiIinYiSPBERERERkU5ESZ6IiIiIiEgnoiRPRERERESkE1GSJyIiIiIi0okoyRNppiNHjjBhwgRSUlIYNmwYCxYs8HdIIq2muLiYjIwMRowYwdChQ3nllVf8HZJIqysrKyMpKYmHHnrI36GItJqAgABGjBjBiBEjuOeee/wdjviISiiINNPx48fJz89nxIgRFBQUMHLkSL788kvCw8P9HZqIz3k8HiorKwkLC6OsrIwhQ4awZcsWYmJi/B2aSKv55S9/yb59++jTpw/PPPOMv8MRaRWxsbGcPHnS32GIj2kmT6SZevTowYgRIwDo3r070dHRnD592r9BibQSu91OWFgYABUVFXg8HvQdoXRm+/btY8+ePUyfPt3foYiINJmSPOmyPvnkE2bNmkXPnj0xDINFixZd0OfFF18kOTmZkJAQ0tLSWLduXb3X2rp1K16vl8TExFaOWqR5fDHei4qKGD58OL179+bhhx8mNja2jaIXaRpfjPeHHnqIefPmtVHEIs3ji7HudrtJS0vj6quvZu3atW0UubQ2JXnSZZWWljJ8+HBeeOGFen8+f/58HnjgAX75y1+yfft2xo0bx7Rp0zh8+HCdfqdOneL222/n5ZdfbouwRZrFF+M9KiqKzz77jNzcXP75z3+Sn5/fVuGLNElLx/t7773HwIEDGThwYFuGLdJkvnhvP3ToENnZ2fzlL3/h9ttvx+12t1X40ppMETEBc+HChXXaRo0aZd5333112gYNGmQ+8sgjtY8rKirMcePGmf/4xz/aIkwRn2jueP+6++67z3z77bdbK0QRn2nOeH/kkUfM3r17m0lJSWZMTIzpcDjMJ554oq1CFmkWX7y3Z2Zmmlu2bGmtEKUNaSZPpB5VVVVkZ2czZcqUOu1Tpkxhw4YNAJimyZ133sm1117Lbbfd5o8wRXyiMeM9Pz+/9ttdt9vNJ598wuWXX97msYq0VGPG+7x58zhy5AiHDh3imWee4Yc//CG/+tWv/BGuSLM1ZqyfOXOGyspKAI4ePUpOTg79+vVr81jF9wL8HYBIe3Ty5Ek8Hg/x8fF12uPj4zlx4gQAn376KfPnz2fYsGG1a+DfeOMNhg4d2tbhirRIY8b70aNHufvuuzFNE9M0uf/++xk2bJg/whVpkcaMd5HOoDFjfffu3fzXf/0XNpsNwzB4/vnniY6O9ke44mNK8kQaYBhGncemada2XX311Xi9Xn+EJdIqGhrvaWlp7Nixww9RibSOhsb71915551tFJFI62horI8ZM4adO3f6IyxpZVquKVKP2NhY7Hb7Bd/qFhQUXPCNmEhHp/EuXYnGu3QVGutdm5I8kXoEBQWRlpbGypUr67SvXLmSMWPG+Ckqkdah8S5dica7dBUa612blmtKl1VSUsL+/ftrH+fm5rJjxw6io6Pp06cPDz74ILfddhvp6elcddVVvPzyyxw+fJj77rvPj1GLNI/Gu3QlGu/SVWisy0X58WRPEb/6+OOPTeCC/+64447aPllZWWZSUpIZFBRkjhw50ly7dq3/AhZpAY136Uo03qWr0FiXizFM0zTbNq0UERERERGR1qI9eSIiIiIiIp2IkjwREREREZFOREmeiIiIiIhIJ6IkT0REREREpBNRkiciIiIiItKJKMkTERERERHpRJTkiYiIiIiIdCJK8kRERERERDoRJXkiIiIiIiKdiJI8ERERERGRTkRJnoiIdFp33nkns2fPbvP7vvbaa0RFRbX5fUVEREBJnoiISLtRXV3t7xBERKQTUJInIiJdxoQJE/jJT37Cww8/THR0NAkJCfz617+u08cwDF566SWmTZtGaGgoycnJLFiwoPbna9aswTAMioqKatt27NiBYRgcOnSINWvW8IMf/ACXy4VhGBiGccE9zvn1r3/NiBEjePXVV+nXrx/BwcGYpsnhw4e54YYbiIiIwOFwcMstt5Cfnw+Ay+XCbreTnZ0NgGmaREdHk5GRUXvdf/3rX/To0QOAqqoq7r//fnr06EFISAh9+/Zl3rx5PvhtiohIe6UkT0REupTXX3+d8PBwNm3axNNPP81vfvMbVq5cWafP//2//5ebbrqJzz77jO9///t85zvfYffu3Y26/pgxY3juuedwOBwcP36c48eP89BDD120//79+3n77bd555132LFjBwCzZ8/m9OnTrF27lpUrV3LgwAFuvfVWAJxOJyNGjGDNmjUAfP7557X/63a7ASsRHT9+PAB/+tOfWLx4MW+//TZffvklb775Jn379m3sr0tERDqgAH8HICIi0paGDRvG448/DsCAAQN44YUXWL16NZMnT67t861vfYt77rkHgN/+9resXLmSP//5z7z44ouXvH5QUBBOpxPDMEhISLhk/6qqKt544w3i4uIAWLlyJZ9//jm5ubkkJiYC8MYbb5CamsqWLVvIyMhgwoQJrFmzhp///OesWbOG6667joMHD7J+/XqmT5/OmjVr+NnPfgbA4cOHGTBgAFdffTWGYZCUlNS0X5iIiHQ4mskTEZEuZdiwYXUe9+jRg4KCgjptV1111QWPGzuT11RJSUm1CR7A7t27SUxMrE3wAFJSUoiKiqqNYcKECaxbtw6v18vatWuZMGECEyZMYO3atZw4cYK9e/fWzuTdeeed7Nixg8svv5yf/OQnrFixolVeh4iItB9K8kREpEsJDAys89gwDLxe7yWfZxgGADab9dFpmmbtz1pyYEp4eHidx6Zp1t7rYu3XXHMNxcXFbNu2jXXr1jFhwgTGjx/P2rVr+fjjj+nevTuDBw8GYOTIkeTm5vLb3/6W8vJybrnlFm6++eZmxysiIu2fkjwREZFv2Lhx4wWPBw0aBFA763b8+PHan5/bS3dOUFAQHo+nWfdOSUnh8OHDHDlypLYtJycHl8tVm7id25f3wgsvYBgGKSkpjBs3ju3bt7NkyZLaWbxzHA4Ht956K6+88grz58/nnXfe4fTp082KT0RE2j8leSIiIt+wYMECXn31Vfbu3cvjjz/O5s2buf/++wG47LLLSExM5Ne//jV79+5l6dKl/OEPf6jz/L59+1JSUsLq1as5efIkZWVljb73pEmTGDZsGN/73vfYtm0bmzdv5vbbb2f8+PGkp6fX9pswYQJvvvkm48ePxzAMunXrRkpKCvPnz2fChAm1/f74xz/y1ltvsWfPHvbu3cuCBQtISEhQHT8RkU5MSZ6IiMg3PPHEE7z11lsMGzaM119/nf/93/8lJSUFsJZ7/utf/2LPnj0MHz6cp556iv/+7/+u8/wxY8Zw3333ceuttxIXF8fTTz/d6HsbhsGiRYvo1q0b11xzDZMmTaJfv37Mnz+/Tr+JEyfi8XjqJHTjx4/H4/HUmcmLiIjgqaeeIj09nYyMDA4dOsSyZctql52KiEjnY5hf31QgIiLSxRmGwcKFC5k9e7a/QxEREWkWfY0nIiIiIiLSiSjJExERERER6URUDF1ERORrtItBREQ6Os3kiYiIiIiIdCJK8kRERERERDoRJXkiIiIiIiKdiJI8ERERERGRTkRJnoiIiIiISCeiJE9ERERERKQTUZInIiIiIiLSiSjJExERERER6UT+f4roIO4o2F2PAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots(figsize=(9, 5))\n", "for name, group in operator.groupby(\"operator\"):\n", @@ -289,10 +1073,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "cde81524", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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MnUaLZYgCIiPjzd1GkRERETURFjkNQFJo0HJkaMo2vFflBw5CkmjMep4UVFREAQBK1as0GmPj4+HIAgGGcOYhZm5FH0VFRVYtWoVunTpAjs7O7i5uaFfv37YuHEjKisrTZJTbGwsnJyc9HpPRkYGhg8fbpyEiIiIiMjscLmmkal//hlZy99FVWamts3CywueC+ZD+dBDRhvXxsYGK1euxPTp0+HszDNi9FVRUYFhw4bh9OnTePvtt9GvXz8olUocPnwY77//Prp164auXbvW+T4rK6umT7gBXl5epk6BiIiIiJoQZ/KMSP3zz7j+yiydAg8AqrKycP2VWVD//LPRxg4PD4eXlxfefffdemMSExMxYMAA2NrawtfXFzNnzkRJSYm2/9NPP0VgYCBsbGzg6emJJ554AkD1TOG+ffvw4YcfQhAECIKAK1euAACSk5MxYsQIKBQKeHp6YuLEicjNzdXes6SkBJMmTYJCoYC3tzc++OADvT/b1q1bERISAmtra7Rt27bWPQoKCjBp0iQ4OzvDzs4Ow4cPR2pqqra/ZjYsPj4eHTp0gI2NDSIiInDt2jVtzJo1a/Dbb79h9+7diI6ORteuXREQEICnn34aR44cQWBgIIDqWceXXnoJs2fPhpubGyIiIgAA+/btQ69evWBtbQ1vb2/MmzcPVVVV2vt/9913CA0Nha2tLVxdXREeHq797vfu3YtevXrB3t4eTk5O6NevH9LT0+v9PtauXYt27drBysoKQUFB2Lx5s07/rcs1r1y5AkEQ8P3332Pw4MGws7NDly5dcOjQIb1/H4iIiIjIPLHIMxJJo0HW8neBujYv/asta/m7Rlu6KZfLsXz5cnz88cf4448/avWfPXsWw4YNw2OPPYYzZ85gy5YtOHDgAF566SUAwPHjxzFz5ky89dZbuHDhAhISEjBgwAAAwIcffog+ffpg6tSpyMjIQEZGBnx9fZGRkYGBAweia9euOH78OBISEpCVlYWxY8dqx3399dexZ88e/PDDD/j555+xd+9enDhxotGf68SJExg7diyeeuopnD17FkuWLMHChQsRGxurjYmKisLx48exbds2HDp0CJIkYcSIETpLLEtLS7Fs2TJs2rQJBw8ehFqtxlNPPaXt//rrrxEeHo5u3brVysHS0hL29vba602bNsHCwgIHDx7E+vXrcf36dYwYMQI9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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots(figsize=(9, 5))\n", "for name, group in matched.groupby(\"operator\"):\n", @@ -308,10 +1103,120 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "7b508249", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
operatorcoefficientvalue
0SeqScanrow100
1Filteroutput row100
2Projectionoutput row22
3Sortn * (floor(log2(n)) + 1)11
4Aggregationinput row510
5NestedLoopJoininput row pair70
6NestedLoopCrossJoininput row pair104
7HashJoinbuild row * width100
8HashJoinprobe row35
9HashJoinoutput row * width10
\n", + "
" + ], + "text/plain": [ + " operator coefficient value\n", + "0 SeqScan row 100\n", + "1 Filter output row 100\n", + "2 Projection output row 22\n", + "3 Sort n * (floor(log2(n)) + 1) 11\n", + "4 Aggregation input row 510\n", + "5 NestedLoopJoin input row pair 70\n", + "6 NestedLoopCrossJoin input row pair 104\n", + "7 HashJoin build row * width 100\n", + "8 HashJoin probe row 35\n", + "9 HashJoin output row * width 10" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "coefficients = pd.DataFrame([\n", " (\"SeqScan\", \"row\", 100),\n", diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 8ca0db6..dd75a5b 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -390,6 +390,27 @@ void Optimizer::SetExplored(utils::NotNull +bool Optimizer::MarkOptimizeGroupRequested( + const WinnerKey& key, Limit limit) { + auto it = optimize_group_limits_.find(key); + if (it == optimize_group_limits_.end()) { + optimize_group_limits_.emplace(key, limit); + return true; + } + + const auto& seen_limit = it->second; + if (!seen_limit) return false; + if (!limit) { + it->second = std::nullopt; + return true; + } + if (*seen_limit >= *limit) return false; + + it->second = limit; + return true; +} + template void Optimizer::OptimizeInputs( utils::NotNull expr, PropertySet required, @@ -533,6 +554,11 @@ void Optimizer::OptimizeGroup( return; } + if (!MarkOptimizeGroupRequested(key, limit)) { + Log("Skipping duplicate optimization request for group {}", group->GetId()); + return; + } + @@ -691,11 +717,21 @@ template void Optimizer::RunSearch(Limit limit) { Log("Starting optimization"); tasks_.emplace([this, limit]() { OptimizeGroup(root_->group, global_required_, limit); }); + std::size_t executed_tasks = 0; while (!tasks_.empty()) { auto next_task = std::move(tasks_.top()); tasks_.pop(); next_task(); + ++executed_tasks; + if (executed_tasks % 100000 == 0) { + Log("Optimizer progress: tasks={} pending={} groups={} explored_groups={} explored_exprs={} winners={}", + executed_tasks, tasks_.size(), memo_.GroupCount(), explored_groups_.size(), + explored_exprs_.size(), winner_.size()); + } } + Log("Optimizer search complete: tasks={} groups={} explored_groups={} explored_exprs={} winners={}", + executed_tasks, memo_.GroupCount(), explored_groups_.size(), explored_exprs_.size(), + winner_.size()); } template From 369a864253207fdcfc0843d5b8143c668aac0964 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 15 Jun 2026 00:45:15 +0300 Subject: [PATCH 111/120] Fix --- report/vkr.tex | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/report/vkr.tex b/report/vkr.tex index 1c87985..626bff7 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1497,7 +1497,51 @@ \section{Конструкторская часть} постепенное улучшение качества итоговых планов путем уточнения и расширения пространства поиска. +На рисунке~\ref{fig:project-pipeline} представлена диаграмма с процессом +обработки SQL-запроса запроса модельной СУБД. +\begin{figure}[H] +\centering +\begin{adjustbox}{max width=\textwidth} +\begin{tikzpicture}[ + scale=0.95, transform shape, + node/.style={rectangle, draw, rounded corners=2pt, + text width=3.0cm, minimum height=0.8cm, + align=center, font=\scriptsize}, + main/.style={node, fill=gray!8}, + io/.style={node, fill=gray!20}, + aux/.style={node, dashed}, + arrow/.style={-{Stealth[length=2.5mm]}, thick}, + auxarrow/.style={-{Stealth[length=2.5mm]}, thick, dashed} +] + \node[io] (sql) at (0, 0) {Генератор\\случайных\\запросов}; + \node[main] (parse) at (0, -2) {Разбор}; + \node[main] (optim) at (0, -4.5) {Оптимизация\\ и\\проверка\\ достижимости}; + \node[main] (exec) at (0, -6.65) {Исполнение}; + \node[io] (result) at (0, -8.2) {Результат}; + + \node[aux] (mssqlplan) at (5.0, -1.55) {MSSQL}; + \node[aux] (diff) at (5.0, -4.65) {Проверка\\корректности}; + \node[aux] (mssqlres) at (-5.0, -1.55) {MSSQL}; + \node[aux] (reach) at (-5.0, -4.5) {Конвертация\\в план\\модельной СУБД}; + + \draw[arrow] (sql) -- node[right, font=\scriptsize] {запрос} (parse); + \draw[arrow] (parse) -- node[right, font=\scriptsize] {реляционная алгебра} (optim); + \draw[arrow] (optim) -- node[right, font=\scriptsize] {план} (exec); + \draw[arrow] (exec) -- (result); + + \draw[auxarrow] (sql) -- node[above, font=\scriptsize] {запрос} (mssqlplan); + \draw[auxarrow] (mssqlplan) -- node[right, font=\scriptsize] {результат} (diff); + \draw[auxarrow] (result.east) -- ++(1.2,0) |- (diff.west); + + \draw[auxarrow] (sql) -- node[above, font=\scriptsize] {запрос} (mssqlres); + \draw[auxarrow] (mssqlres) -- node[left, font=\scriptsize] {план} (reach); + \draw[auxarrow] (reach.east) -- node[above, font=\scriptsize] {планы} (optim.west); +\end{tikzpicture} +\end{adjustbox} +\caption{Процесс обработки запроса в модельной СУБД.}% +\label{fig:project-pipeline} +\end{figure} \subsection{Модули синтаксического анализа и построения логического представления} From 9b26cc51d635470d90b3aeb2fda4018bd038ab46 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 15 Jun 2026 01:35:25 +0300 Subject: [PATCH 112/120] Fix --- .../transformation_rules/predicate_utils.hpp | 4 + research/converter.py | 15 +++ research/fuzz/diff_fuzz.py | 4 +- research/fuzz/reach_fuzz.py | 4 +- research/test_converter.py | 41 +++++++ .../sql/logic/optimizer/optimizer_test.cpp | 26 ++++ .../sql/logic/optimizer/reachability.cpp | 11 +- .../transformation_rules/predicate_utils.cpp | 111 ++++++++++++++++++ 8 files changed, 208 insertions(+), 8 deletions(-) diff --git a/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp b/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp index fce9ada..dd47c18 100644 --- a/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp +++ b/include/stewkk/sql/logic/transformation_rules/predicate_utils.hpp @@ -16,6 +16,10 @@ void CollectConjuncts(const Expression& e, std::vector& out); Expression AndConjuncts(const std::vector& conjs); +Expression CanonicalizePredicate(const Expression& e); + +bool EquivalentPredicate(const Expression& lhs, const Expression& rhs); + void CollectAttrTables(const Expression& e, std::unordered_set& out); void CollectAttributes(const Expression& e, std::vector& out); diff --git a/research/converter.py b/research/converter.py index f6c9d4c..c419561 100644 --- a/research/converter.py +++ b/research/converter.py @@ -265,6 +265,11 @@ def _convert_nested_loops(relop: ET.Element, logical_op: str) -> str: if nl is None: raise ValueError("NestedLoops element missing") lhs, rhs = _expect_two_relops(nl, "NestedLoops") + if _has_outer_references(nl) and _contains_index_seek(rhs): + raise NotImplementedError( + "nested loops with outer-reference index seek require unsupported " + "parameterized index lookup operator" + ) pred_elem = nl.find(f"{NS}Predicate/{NS}ScalarOperator") if pred_elem is None: @@ -318,6 +323,16 @@ def _expect_two_relops(parent: ET.Element, label: str) -> tuple[ET.Element, ET.E return children[0], children[1] +def _has_outer_references(nested_loops: ET.Element) -> bool: + return nested_loops.find(f"{NS}OuterReferences/{NS}ColumnReference") is not None + + +def _contains_index_seek(relop: ET.Element) -> bool: + if "Seek" in relop.get("PhysicalOp", ""): + return True + return any(_contains_index_seek(child) for child in relop.findall(f".//{NS}RelOp")) + + def _col_ref_to_attr(cr: ET.Element) -> str: table = _strip_sql_name(cr.get("Alias") or cr.get("Table")) col = cr.get("Column", "").strip("[]") diff --git a/research/fuzz/diff_fuzz.py b/research/fuzz/diff_fuzz.py index 1429b59..2e06156 100644 --- a/research/fuzz/diff_fuzz.py +++ b/research/fuzz/diff_fuzz.py @@ -182,8 +182,8 @@ def main() -> None: try: ours_proc = _run_ours(args.cli, args.data_dir, ours_sql, args.jit) except subprocess.TimeoutExpired: - print(f"DIVERGENCE seed={seed}: our CLI timed out\n--- query (ours):\n{ours_sql}") - sys.exit(1) + print(f"TIMEOUT seed={seed}: our CLI timed out\n--- query (ours):\n{ours_sql}", flush=True) + continue theirs = mssql.run(theirs_sql) diff --git a/research/fuzz/reach_fuzz.py b/research/fuzz/reach_fuzz.py index 1eb77b5..b732758 100644 --- a/research/fuzz/reach_fuzz.py +++ b/research/fuzz/reach_fuzz.py @@ -277,7 +277,9 @@ def main() -> None: converted = convert_plan(plan_xml) except NotImplementedError as e: skipped_convert += 1 - if seed % 25 == 0: + if "outer-reference index seek" in str(e): + print(f"seed={seed} converter skip: {e}", flush=True) + elif seed % 25 == 0: print(f"seed={seed} converter skip: {e}", flush=True) continue except Exception as e: diff --git a/research/test_converter.py b/research/test_converter.py index a484424..46a9211 100644 --- a/research/test_converter.py +++ b/research/test_converter.py @@ -190,6 +190,47 @@ def test_index_seek_prefix_eq_from_xml(): assert result == "(IndexSeek (= (attr t0 region_id) 7) customers t0)" +def test_nested_loops_outer_reference_index_seek_is_skipped_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + """) + + with pytest.raises(NotImplementedError, match="outer-reference index seek"): + convert(plan) + + def test_filter_lt(extractor): plan = extract_plan(extractor, "SELECT * FROM Titles WHERE Titles.titleId < 5000") result = convert(plan) diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index cbb9f75..6e0a8b4 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -561,6 +561,32 @@ TEST(ReachabilityTest, InExpandsToOrChain) { ASSERT_THAT(result.reachable, IsTrue()); } +TEST(ReachabilityTest, NotInExpandedAndChainIgnoresComparisonOrder) { + std::stringstream s{"SELECT * FROM users WHERE users.id NOT IN (1, 2, 3);"}; + Expression ne3 = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kNotEq, + std::make_shared(IntConst{3})}; + Expression ne2 = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kNotEq, + std::make_shared(IntConst{2})}; + Expression ne1 = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kNotEq, + std::make_shared(IntConst{1})}; + Expression and_chain = BinaryExpression{ + std::make_shared(BinaryExpression{ + std::make_shared(std::move(ne3)), + BinaryOp::kAnd, + std::make_shared(std::move(ne2))}), + BinaryOp::kAnd, + std::make_shared(std::move(ne1))}; + auto result = IsPlanReachable(s, PhysicalFilter{ + std::make_shared(SeqScan{"users"}), and_chain}, {}, MakeTestSchema()); + ASSERT_THAT(result.reachable, IsTrue()); +} + TEST(ReachabilityTest, OrderByReachableViaSortEnforcer) { diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index c8e4e65..8ce5cac 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include namespace stewkk::sql { @@ -48,7 +49,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, return {false, depth + 1, std::format("IndexSeek alias '{}' != '{}'", op.alias.value_or(""), t->alias.value_or(""))}; - if (op.predicate != t->predicate) + if (!EquivalentPredicate(op.predicate, t->predicate)) return {false, depth + 1, std::format("IndexSeek predicate '{}' != '{}'", ToString(op.predicate), ToString(t->predicate))}; @@ -57,7 +58,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, [&](const physical::Filter& op) -> InternalMatch { const auto* t = std::get_if(&target.node); if (!t) return {false, depth, "type mismatch: expected Filter"}; - if (op.predicate != t->predicate) + if (!EquivalentPredicate(op.predicate, t->predicate)) return {false, depth + 1, std::format("Filter predicate '{}' != '{}'", ToString(op.predicate), ToString(t->predicate))}; @@ -79,7 +80,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!t) return {false, depth, "type mismatch: expected NestedLoopJoin"}; if (op.type != t->type) return {false, depth + 1, "NestedLoopJoin join type mismatch"}; - if (op.qual != t->qual) + if (!EquivalentPredicate(op.qual, t->qual)) return {false, depth + 1, std::format("NestedLoopJoin qual '{}' != '{}'", ToString(op.qual), ToString(t->qual))}; @@ -103,7 +104,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!t) return {false, depth, "type mismatch: expected HashJoin"}; if (op.type != t->type) return {false, depth + 1, "HashJoin join type mismatch"}; - if (op.qual != t->qual) + if (!EquivalentPredicate(op.qual, t->qual)) return {false, depth + 1, std::format("HashJoin qual '{}' != '{}'", ToString(op.qual), ToString(t->qual))}; @@ -118,7 +119,7 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!t) return {false, depth, "type mismatch: expected MergeJoin"}; if (op.type != t->type) return {false, depth + 1, "MergeJoin join type mismatch"}; - if (op.qual != t->qual) + if (!EquivalentPredicate(op.qual, t->qual)) return {false, depth + 1, std::format("MergeJoin qual '{}' != '{}'", ToString(op.qual), ToString(t->qual))}; diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index 4cef467..343ed0a 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -1,6 +1,7 @@ #include #include +#include #include #include @@ -35,6 +36,116 @@ Expression AndConjuncts(const std::vector& conjs) { return acc; } +namespace { + +std::shared_ptr Share(Expression e) { + return std::make_shared(std::move(e)); +} + +std::string CanonicalKey(const Expression& e); + +std::string CanonicalKey(const BinaryExpression& e) { + return std::format("({} {} {})", static_cast(e.binop), + CanonicalKey(*e.lhs), CanonicalKey(*e.rhs)); +} + +std::string CanonicalKey(const UnaryExpression& e) { + return std::format("({} {})", static_cast(e.op), CanonicalKey(*e.child)); +} + +std::string CanonicalKey(const InExpression& e) { + std::string out = std::format("({} {}", e.negated ? "notin" : "in", CanonicalKey(*e.lhs)); + for (const auto& value : e.values) { + out += ' '; + out += CanonicalKey(value); + } + out += ')'; + return out; +} + +std::string CanonicalKey(const AggregateExpression& e) { + if (e.is_star) { + return std::format("({} *)", static_cast(e.function)); + } + return std::format("({} {})", static_cast(e.function), CanonicalKey(*e.argument)); +} + +std::string CanonicalKey(const Expression& e) { + return std::visit(utils::Overloaded{ + [](const BinaryExpression& b) { return CanonicalKey(b); }, + [](const Attribute& a) { return std::format("(attr {} {})", a.table, a.name); }, + [](const IntConst& i) { return std::format("(int {})", i); }, + [](const StringConst& s) { return std::format("(str {})", s); }, + [](const UnaryExpression& u) { return CanonicalKey(u); }, + [](const InExpression& i) { return CanonicalKey(i); }, + [](const AggregateExpression& a) { return CanonicalKey(a); }, + [](const Literal& l) { return std::format("(literal {})", static_cast(l)); }, + }, e); +} + +void CollectByOp(const Expression& e, BinaryOp op, std::vector& out) { + if (const auto* b = std::get_if(&e); b && b->binop == op) { + CollectByOp(*b->lhs, op, out); + CollectByOp(*b->rhs, op, out); + return; + } + out.push_back(CanonicalizePredicate(e)); +} + +Expression ChainByOp(std::vector exprs, BinaryOp op) { + std::ranges::sort(exprs, [](const Expression& lhs, const Expression& rhs) { + return CanonicalKey(lhs) < CanonicalKey(rhs); + }); + Expression acc = std::move(exprs.front()); + for (size_t i = 1; i < exprs.size(); ++i) { + acc = BinaryExpression{Share(std::move(acc)), op, Share(std::move(exprs[i]))}; + } + return acc; +} + +} // namespace + +Expression CanonicalizePredicate(const Expression& e) { + return std::visit(utils::Overloaded{ + [](const BinaryExpression& b) -> Expression { + if (b.binop == BinaryOp::kAnd || b.binop == BinaryOp::kOr) { + std::vector terms; + CollectByOp(*b.lhs, b.binop, terms); + CollectByOp(*b.rhs, b.binop, terms); + return ChainByOp(std::move(terms), b.binop); + } + return BinaryExpression{ + Share(CanonicalizePredicate(*b.lhs)), + b.binop, + Share(CanonicalizePredicate(*b.rhs)), + }; + }, + [](const UnaryExpression& u) -> Expression { + return UnaryExpression{u.op, Share(CanonicalizePredicate(*u.child))}; + }, + [](const InExpression& i) -> Expression { + std::vector values; + values.reserve(i.values.size()); + for (const auto& value : i.values) { + values.push_back(CanonicalizePredicate(value)); + } + std::ranges::sort(values, [](const Expression& lhs, const Expression& rhs) { + return CanonicalKey(lhs) < CanonicalKey(rhs); + }); + return InExpression{Share(CanonicalizePredicate(*i.lhs)), std::move(values), i.negated}; + }, + [](const AggregateExpression& a) -> Expression { + if (a.is_star || !a.argument) return a; + return AggregateExpression{a.function, Share(CanonicalizePredicate(*a.argument)), a.is_star}; + }, + [](const auto& leaf) -> Expression { return leaf; }, + }, e); +} + +bool EquivalentPredicate(const Expression& lhs, const Expression& rhs) { + return CanonicalizePredicate(lhs) == CanonicalizePredicate(rhs); +} + void CollectAttrTables(const Expression& e, std::unordered_set& out) { std::visit(utils::Overloaded{ [&](const Attribute& a) { out.insert(a.table); }, From 455b6499ac0089ef712d8758f0efaf30642a66cf Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 15 Jun 2026 15:51:35 +0300 Subject: [PATCH 113/120] Add stats collection --- .../sql/logic/optimizer/reachability.hpp | 1 + research/converter.py | 46 ++-- research/fuzz/reach_fuzz.py | 188 +++++++++++----- research/test_converter.py | 80 +++++++ .../sql/logic/optimizer/optimizer_test.cpp | 88 ++++++++ .../sql/logic/optimizer/reachability.cpp | 211 +++++++++++++++++- .../transformation_rules/predicate_utils.cpp | 164 ++++++++++++-- src/stewkk/sql/main.cpp | 4 +- 8 files changed, 689 insertions(+), 93 deletions(-) diff --git a/include/stewkk/sql/logic/optimizer/reachability.hpp b/include/stewkk/sql/logic/optimizer/reachability.hpp index ab16136..be064c0 100644 --- a/include/stewkk/sql/logic/optimizer/reachability.hpp +++ b/include/stewkk/sql/logic/optimizer/reachability.hpp @@ -15,6 +15,7 @@ namespace stewkk::sql { struct MatchResult { bool reachable; std::string mismatch; + int closest_distance = 0; }; MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target); diff --git a/research/converter.py b/research/converter.py index c419561..d0dc6e9 100644 --- a/research/converter.py +++ b/research/converter.py @@ -238,25 +238,35 @@ def _convert_seek_predicates(relop: ET.Element, table: str) -> str | None: if seek_preds is None: return None - conditions = [] - for range_elem in (seek_preds.findall(f".//{NS}Prefix") + - seek_preds.findall(f".//{NS}StartRange") + - seek_preds.findall(f".//{NS}EndRange")): - op = _SEEK_SCAN_TYPES.get(range_elem.get("ScanType", "")) - if not op: - continue - col_refs = range_elem.findall(f"{NS}RangeColumns/{NS}ColumnReference") - expr_elems = range_elem.findall(f"{NS}RangeExpressions/{NS}ScalarOperator") - for col_ref, expr_elem in zip(col_refs, expr_elems): - col = col_ref.get("Column", "").strip("[]") - col_table = _strip_sql_name(col_ref.get("Alias") or col_ref.get("Table") or table) - conditions.append(f"({op} (attr {col_table} {col}) {_convert_scalar(expr_elem)})") - - if not conditions: + alternatives = [] + for seek_keys in seek_preds.findall(f".//{NS}SeekKeys"): + conditions = [] + for range_elem in (seek_keys.findall(f"{NS}Prefix") + + seek_keys.findall(f"{NS}StartRange") + + seek_keys.findall(f"{NS}EndRange")): + op = _SEEK_SCAN_TYPES.get(range_elem.get("ScanType", "")) + if not op: + continue + col_refs = range_elem.findall(f"{NS}RangeColumns/{NS}ColumnReference") + expr_elems = range_elem.findall(f"{NS}RangeExpressions/{NS}ScalarOperator") + for col_ref, expr_elem in zip(col_refs, expr_elems): + col = col_ref.get("Column", "").strip("[]") + col_table = _strip_sql_name(col_ref.get("Alias") or col_ref.get("Table") or table) + conditions.append(f"({op} (attr {col_table} {col}) {_convert_scalar(expr_elem)})") + + if conditions: + alternatives.append(_fold_binary("and", conditions)) + + if not alternatives: return None - result = conditions[0] - for c in conditions[1:]: - result = f"(and {result} {c})" + return _fold_binary("or", alternatives) + +def _fold_binary(op: str, exprs: list[str]) -> str: + if not exprs: + raise ValueError("_fold_binary requires at least one expression") + result = exprs[0] + for expr in exprs[1:]: + result = f"({op} {result} {expr})" return result diff --git a/research/fuzz/reach_fuzz.py b/research/fuzz/reach_fuzz.py index b732758..95a0470 100644 --- a/research/fuzz/reach_fuzz.py +++ b/research/fuzz/reach_fuzz.py @@ -3,7 +3,7 @@ execution plan, convert that plan to the project's serialized format, then invoke our CLI in ``--check-reachable`` mode to confirm that our exhaustive search would have considered it. Stops at the first plan our optimizer cannot -reach. +reach, unless ``--collect-stats`` is used. The fuzzer only flags a divergence when the MS SQL plan converts cleanly but our optimizer cannot reach it. Coverage gaps in the XML→s-expr converter @@ -20,6 +20,7 @@ python -m research.fuzz.reach_fuzz \\ --cli build/bin/sql \\ --data-dir test/static/executor/test_data \\ + [--collect-stats N] \\ [--start-seed 0] """ from __future__ import annotations @@ -27,6 +28,7 @@ import argparse import os import random +import re import shutil import subprocess import sys @@ -45,6 +47,8 @@ render_query, ) +DISTANCE_RE = re.compile(r"\bdistance=(\d+)\b") + def _make_reachability_data_dir(source_dir: Path, schema: "Schema", tmp_dir: Path) -> Path: for path in source_dir.glob("*.csv"): @@ -221,17 +225,35 @@ def _run_reach_check( Path(plan_path).unlink(missing_ok=True) +def _parse_distance(proc: subprocess.CompletedProcess) -> int | None: + match = DISTANCE_RE.search(proc.stdout) + if match is None: + return None + return int(match.group(1)) + + def main() -> None: ap = argparse.ArgumentParser(description=__doc__) ap.add_argument("--cli", required=True, help="Path to our sql binary") ap.add_argument("--data-dir", required=True, help="CSV table directory (shared with MS SQL)") ap.add_argument("--start-seed", type=int, default=0) + ap.add_argument( + "--collect-stats", + type=int, + metavar="N", + help=( + "Check exactly N seeds, keep going after reachability divergences, " + "and print skipped/ok/divergent totals plus average closest-plan distance" + ), + ) ap.add_argument("--mssql-host", default="localhost") ap.add_argument("--mssql-port", type=int, default=1433) ap.add_argument("--mssql-user", default="sa") ap.add_argument("--mssql-password", default="Password123!") ap.add_argument("--mssql-database", default="fuzz") args = ap.parse_args() + if args.collect_stats is not None and args.collect_stats < 0: + ap.error("--collect-stats must be non-negative") source_data_dir = Path(args.data_dir) schema = load_schema(source_data_dir) @@ -255,66 +277,122 @@ def main() -> None: ms = DIALECTS["mssql"] skipped_convert = 0 + skipped_converter_errors = 0 skipped_mssql = 0 + ok = 0 + divergent = 0 + checked = 0 + distance_sum = 0 + distance_count = 0 + distance_missing = 0 + + seeds = ( + range(args.start_seed, args.start_seed + args.collect_stats) + if args.collect_stats is not None + else count(args.start_seed) + ) + collect_stats = args.collect_stats is not None - for seed in count(args.start_seed): - rng = random.Random(seed) - query = QueryGenerator(schema, rng).generate() - ours_sql = render_query(query, pg) + ";" - # OPTION (RECOMPILE) embeds literal values in the plan so the converter - # sees Const nodes instead of @P parameter references. - theirs_sql = render_query(query, ms) + " OPTION (RECOMPILE);" - - try: - plan_xml = mssql.get_plan(theirs_sql) - except Exception as e: - skipped_mssql += 1 - if seed % 25 == 0: - print(f"seed={seed} mssql refused: {e}", flush=True) - continue - - try: - converted = convert_plan(plan_xml) - except NotImplementedError as e: - skipped_convert += 1 - if "outer-reference index seek" in str(e): - print(f"seed={seed} converter skip: {e}", flush=True) - elif seed % 25 == 0: - print(f"seed={seed} converter skip: {e}", flush=True) - continue - except Exception as e: - print(f"seed={seed} converter error: {e}\n--- query:\n{theirs_sql}") - sys.exit(2) - - target_plan = _wrap_projection(converted, query) + try: + for seed in seeds: + checked += 1 + rng = random.Random(seed) + query = QueryGenerator(schema, rng).generate() + ours_sql = render_query(query, pg) + ";" + # OPTION (RECOMPILE) embeds literal values in the plan so the converter + # sees Const nodes instead of @P parameter references. + theirs_sql = render_query(query, ms) + " OPTION (RECOMPILE);" + + try: + plan_xml = mssql.get_plan(theirs_sql) + except Exception as e: + skipped_mssql += 1 + if seed % 25 == 0: + print(f"seed={seed} mssql refused: {e}", flush=True) + continue + + try: + converted = convert_plan(plan_xml) + except NotImplementedError as e: + skipped_convert += 1 + if "outer-reference index seek" in str(e): + print(f"seed={seed} converter skip: {e}", flush=True) + elif seed % 25 == 0: + print(f"seed={seed} converter skip: {e}", flush=True) + continue + except Exception as e: + print(f"seed={seed} converter error: {e}\n--- query:\n{theirs_sql}") + if collect_stats: + skipped_converter_errors += 1 + continue + sys.exit(2) + + target_plan = _wrap_projection(converted, query) + + try: + proc = _run_reach_check(args.cli, str(reach_data_dir), ours_sql, target_plan) + except subprocess.TimeoutExpired: + divergent += 1 + distance_missing += 1 + print(f"DIVERGENCE seed={seed}: reachability check timed out") + print(f"\n--- query (ours):\n{ours_sql}") + print(f"\n--- target plan:\n{target_plan}") + if collect_stats: + continue + sys.exit(1) + + distance = _parse_distance(proc) + if distance is None: + distance_missing += 1 + else: + distance_sum += distance + distance_count += 1 + + if proc.returncode == 0: + ok += 1 + if seed % 25 == 0: + print( + f"seed={seed} ok" + f" (skipped: {skipped_convert} convert, {skipped_mssql} mssql)", + flush=True, + ) + continue - try: - proc = _run_reach_check(args.cli, str(reach_data_dir), ours_sql, target_plan) - except subprocess.TimeoutExpired: - print(f"DIVERGENCE seed={seed}: reachability check timed out") + # Non-zero: either parse/optimizer error, or NOT REACHABLE. + divergent += 1 + print(f"DIVERGENCE seed={seed}: exit={proc.returncode}") print(f"\n--- query (ours):\n{ours_sql}") - print(f"\n--- target plan:\n{target_plan}") + print(f"\n--- query (mssql):\n{theirs_sql}") + print(f"\n--- mssql plan (converted):\n{target_plan}") + if proc.stdout: + print(f"\n--- stdout:\n{proc.stdout}", end="") + if proc.stderr: + print(f"\n--- stderr:\n{proc.stderr}", end="") + if collect_stats: + continue sys.exit(1) - - if proc.returncode == 0: - if seed % 25 == 0: - print( - f"seed={seed} ok" - f" (skipped: {skipped_convert} convert, {skipped_mssql} mssql)", - flush=True, + finally: + if collect_stats: + skipped = skipped_convert + skipped_converter_errors + skipped_mssql + average_distance = distance_sum / distance_count if distance_count else None + print( + "\nReachability fuzz stats:" + f"\n seeds: {checked}/{args.collect_stats}" + f"\n ok: {ok}" + f"\n skipped: {skipped}" + f"\n converter: {skipped_convert}" + f"\n converter_errors: {skipped_converter_errors}" + f"\n mssql: {skipped_mssql}" + f"\n divergent: {divergent}" + + ( + f"\n average_distance: {average_distance:.3f}" + if average_distance is not None + else "\n average_distance: n/a" ) - continue - - # Non-zero: either parse/optimizer error, or NOT REACHABLE. - print(f"DIVERGENCE seed={seed}: exit={proc.returncode}") - print(f"\n--- query (ours):\n{ours_sql}") - print(f"\n--- query (mssql):\n{theirs_sql}") - print(f"\n--- mssql plan (converted):\n{target_plan}") - if proc.stdout: - print(f"\n--- stdout:\n{proc.stdout}", end="") - if proc.stderr: - print(f"\n--- stderr:\n{proc.stderr}", end="") - sys.exit(1) + + f"\n distance_samples: {distance_count}" + + f"\n distance_missing: {distance_missing}", + flush=True, + ) if __name__ == "__main__": diff --git a/research/test_converter.py b/research/test_converter.py index 46a9211..5e83a6d 100644 --- a/research/test_converter.py +++ b/research/test_converter.py @@ -190,6 +190,86 @@ def test_index_seek_prefix_eq_from_xml(): assert result == "(IndexSeek (= (attr t0 region_id) 7) customers t0)" +def test_index_seek_bounded_range_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == ( + "(IndexSeek (and (> (attr customers region_id) 3)" + " (< (attr customers region_id) 8)) customers)" + ) + + +def test_index_seek_split_ranges_from_xml(): + plan = showplan(""" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + """) + + result = convert(plan) + + assert result == ( + "(IndexSeek (or (< (attr customers region_id) 8)" + " (> (attr customers region_id) 8)) customers)" + ) + + def test_nested_loops_outer_reference_index_seek_is_skipped_from_xml(): plan = showplan(""" diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 6e0a8b4..b7678a1 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -405,6 +405,7 @@ TEST(ReachabilityTest, SeqScanReachable) { std::stringstream s{"SELECT * FROM users;"}; auto result = IsPlanReachable(s, SeqScan{"users"}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsTrue()); + ASSERT_THAT(result.closest_distance, Eq(0)); } TEST(ReachabilityTest, SeqScanWrongTable) { @@ -412,6 +413,7 @@ TEST(ReachabilityTest, SeqScanWrongTable) { auto result = IsPlanReachable(s, SeqScan{"orders"}, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); ASSERT_THAT(result.mismatch, HasSubstr("users")); + ASSERT_THAT(result.closest_distance, Eq(1)); } TEST(ReachabilityTest, IndexSeekReachableWithIndexCatalog) { @@ -587,6 +589,91 @@ TEST(ReachabilityTest, NotInExpandedAndChainIgnoresComparisonOrder) { ASSERT_THAT(result.reachable, IsTrue()); } +TEST(ReachabilityTest, NotBetweenMatchesExpandedRangeDisjunction) { + std::stringstream s{"SELECT * FROM users WHERE users.id NOT BETWEEN 1 AND 3;"}; + Expression lt = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kLt, + std::make_shared(IntConst{1})}; + Expression gt = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kGt, + std::make_shared(IntConst{3})}; + Expression range = BinaryExpression{ + std::make_shared(std::move(lt)), + BinaryOp::kOr, + std::make_shared(std::move(gt))}; + + auto result = IsPlanReachable(s, PhysicalFilter{ + std::make_shared(SeqScan{"users"}), range}, {}, MakeTestSchema()); + ASSERT_THAT(result.reachable, IsTrue()); +} + +TEST(ReachabilityTest, NegatedConjunctionMatchesDeMorganForm) { + std::stringstream s{"SELECT * FROM users WHERE NOT (users.id = 1 AND users.age >= 30);"}; + Expression id_ne = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kNotEq, + std::make_shared(IntConst{1})}; + Expression age_lt = BinaryExpression{ + std::make_shared(Attribute{"users", "age"}), + BinaryOp::kLt, + std::make_shared(IntConst{30})}; + Expression demorgan = BinaryExpression{ + std::make_shared(std::move(age_lt)), + BinaryOp::kOr, + std::make_shared(std::move(id_ne))}; + + auto result = IsPlanReachable(s, PhysicalFilter{ + std::make_shared(SeqScan{"users"}), demorgan}, {}, MakeTestSchema()); + ASSERT_THAT(result.reachable, IsTrue()); +} + +TEST(ReachabilityTest, ReversedComparisonOperandsMatch) { + std::stringstream s{"SELECT * FROM users WHERE 1 < users.id;"}; + Expression gt = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kGt, + std::make_shared(IntConst{1})}; + + auto result = IsPlanReachable(s, PhysicalFilter{ + std::make_shared(SeqScan{"users"}), gt}, {}, MakeTestSchema()); + ASSERT_THAT(result.reachable, IsTrue()); +} + +TEST(ReachabilityTest, JoinQualNormalizesInAndNotBetween) { + std::stringstream s{ + "SELECT * FROM users CROSS JOIN orders " + "WHERE users.id IN (22) AND orders.id NOT BETWEEN 1 AND 3;"}; + Expression users_eq = BinaryExpression{ + std::make_shared(Attribute{"users", "id"}), + BinaryOp::kEq, + std::make_shared(IntConst{22})}; + Expression orders_lt = BinaryExpression{ + std::make_shared(Attribute{"orders", "id"}), + BinaryOp::kLt, + std::make_shared(IntConst{1})}; + Expression orders_gt = BinaryExpression{ + std::make_shared(Attribute{"orders", "id"}), + BinaryOp::kGt, + std::make_shared(IntConst{3})}; + Expression orders_range = BinaryExpression{ + std::make_shared(std::move(orders_lt)), + BinaryOp::kOr, + std::make_shared(std::move(orders_gt))}; + Expression qual = BinaryExpression{ + std::make_shared(std::move(users_eq)), + BinaryOp::kAnd, + std::make_shared(std::move(orders_range))}; + + auto result = IsPlanReachable(s, NestedLoopJoin{ + std::make_shared(SeqScan{"users"}), + std::make_shared(SeqScan{"orders"}), + JoinType::kInner, + qual}, {}, MakeTestSchema()); + ASSERT_THAT(result.reachable, IsTrue()); +} + TEST(ReachabilityTest, OrderByReachableViaSortEnforcer) { @@ -613,6 +700,7 @@ TEST(ReachabilityTest, OrderByWrongDirectionNotReachable) { SortOrder{{SortKey{"users", "id", Direction::kDesc}}}}; auto result = IsPlanReachable(s, target, {}, MakeTestSchema()); ASSERT_THAT(result.reachable, IsFalse()); + ASSERT_THAT(result.closest_distance, Eq(1)); } diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index 8ce5cac..3c5fcfb 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -1,6 +1,10 @@ #include +#include #include +#include +#include +#include #include #include @@ -16,6 +20,8 @@ namespace stewkk::sql { namespace { +constexpr int kInfiniteDistance = std::numeric_limits::max() / 4; + struct InternalMatch { bool ok; int depth; @@ -196,12 +202,215 @@ InternalMatch MatchGroup(Group* group, const PhysicalPlanNode& target, int depth return best; } +std::vector Children(const PhysicalExpr& expr) { + return std::visit(utils::Overloaded{ + [](const physical::SeqScan&) { return std::vector{}; }, + [](const physical::IndexSeek&) { return std::vector{}; }, + [](const physical::Filter& op) { return std::vector{op.source.get()}; }, + [](const physical::Projection& op) { return std::vector{op.source.get()}; }, + [](const physical::NestedLoopJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const physical::NestedLoopCrossJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const physical::HashJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const physical::MergeJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const physical::Sort& op) { return std::vector{op.input.get()}; }, + [](const physical::Aggregation& op) { return std::vector{op.source.get()}; }, + [](const physical::StreamAggregation& op) { return std::vector{op.source.get()}; }, + [](const physical::PartialAggregation& op) { return std::vector{op.source.get()}; }, + [](const physical::FinalAggregation& op) { return std::vector{op.source.get()}; }, + }, expr.root_operator); +} + +std::vector Children(const PhysicalPlanNode& node) { + return std::visit(utils::Overloaded{ + [](const SeqScan&) { return std::vector{}; }, + [](const IndexSeek&) { return std::vector{}; }, + [](const PhysicalFilter& op) { return std::vector{op.source.get()}; }, + [](const PhysicalProjection& op) { return std::vector{op.source.get()}; }, + [](const NestedLoopJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const NestedLoopCrossJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const HashJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const MergeJoin& op) { + return std::vector{op.lhs.get(), op.rhs.get()}; + }, + [](const PhysicalSort& op) { return std::vector{op.source.get()}; }, + [](const PhysicalAggregation& op) { return std::vector{op.source.get()}; }, + [](const PhysicalStreamAggregation& op) { return std::vector{op.source.get()}; }, + [](const PhysicalPartialAggregation& op) { return std::vector{op.source.get()}; }, + [](const PhysicalFinalAggregation& op) { return std::vector{op.source.get()}; }, + }, node.node); +} + +int TargetTreeSize(const PhysicalPlanNode& node) { + int size = 1; + for (const auto* child : Children(node)) { + size += TargetTreeSize(*child); + } + return size; +} + +struct PairHash { + size_t operator()(const std::pair& p) const noexcept { + size_t h = std::hash{}(p.first); + h ^= std::hash{}(p.second) + 0x9e3779b9 + (h << 6) + (h >> 2); + return h; + } +}; + +class TreeDistance { + public: + int Distance(Group* group, const PhysicalPlanNode& target) { + auto key = std::pair{group, &target}; + if (auto it = distance_memo_.find(key); it != distance_memo_.end()) { + return it->second; + } + if (!distance_visiting_.insert(key).second) { + return kInfiniteDistance; + } + + int best = kInfiniteDistance; + for (auto pe : group->GetPhysicalExprs()) { + best = std::min(best, Distance(*pe, target)); + } + distance_visiting_.erase(key); + distance_memo_.emplace(key, best); + return best; + } + + private: + int MinTreeSize(Group* group) { + if (auto it = size_memo_.find(group); it != size_memo_.end()) { + return it->second; + } + if (!size_visiting_.insert(group).second) { + return kInfiniteDistance; + } + + int best = kInfiniteDistance; + for (auto pe : group->GetPhysicalExprs()) { + int size = 1; + for (auto* child : Children(*pe)) { + int child_size = MinTreeSize(child); + if (child_size >= kInfiniteDistance) { + size = kInfiniteDistance; + break; + } + size += child_size; + } + best = std::min(best, size); + } + + size_visiting_.erase(group); + size_memo_.emplace(group, best); + return best; + } + + int Distance(const PhysicalExpr& expr, const PhysicalPlanNode& target) { + const auto source_children = Children(expr); + const auto target_children = Children(target); + return LabelCost(expr, target) + ChildrenDistance(source_children, target_children); + } + + int ChildrenDistance(const std::vector& source_children, + const std::vector& target_children) { + std::vector> dp( + source_children.size() + 1, std::vector(target_children.size() + 1, 0)); + + for (size_t i = 1; i <= source_children.size(); ++i) { + dp[i][0] = dp[i - 1][0] + MinTreeSize(source_children[i - 1]); + } + for (size_t j = 1; j <= target_children.size(); ++j) { + dp[0][j] = dp[0][j - 1] + TargetTreeSize(*target_children[j - 1]); + } + + for (size_t i = 1; i <= source_children.size(); ++i) { + for (size_t j = 1; j <= target_children.size(); ++j) { + const int del = dp[i - 1][j] + MinTreeSize(source_children[i - 1]); + const int ins = dp[i][j - 1] + TargetTreeSize(*target_children[j - 1]); + const int sub = dp[i - 1][j - 1] + + Distance(source_children[i - 1], *target_children[j - 1]); + dp[i][j] = std::min({del, ins, sub}); + } + } + return dp[source_children.size()][target_children.size()]; + } + + static int LabelCost(const PhysicalExpr& expr, const PhysicalPlanNode& target) { + return std::visit(utils::Overloaded{ + [](const physical::SeqScan& op, const SeqScan& t) { + return op.table == t.table && op.alias == t.alias ? 0 : 1; + }, + [](const physical::IndexSeek& op, const IndexSeek& t) { + return op.table == t.table && op.alias == t.alias + && EquivalentPredicate(op.predicate, t.predicate) + ? 0 + : 1; + }, + [](const physical::Filter& op, const PhysicalFilter& t) { + return EquivalentPredicate(op.predicate, t.predicate) ? 0 : 1; + }, + [](const physical::Projection& op, const PhysicalProjection& t) { + return op.expressions == t.expressions ? 0 : 1; + }, + [](const physical::NestedLoopJoin& op, const NestedLoopJoin& t) { + return op.type == t.type && EquivalentPredicate(op.qual, t.qual) ? 0 : 1; + }, + [](const physical::NestedLoopCrossJoin&, const NestedLoopCrossJoin&) { + return 0; + }, + [](const physical::HashJoin& op, const HashJoin& t) { + return op.type == t.type && EquivalentPredicate(op.qual, t.qual) ? 0 : 1; + }, + [](const physical::MergeJoin& op, const MergeJoin& t) { + return op.type == t.type && EquivalentPredicate(op.qual, t.qual) ? 0 : 1; + }, + [](const physical::Sort& op, const PhysicalSort& t) { + return op.keys == t.keys ? 0 : 1; + }, + [](const physical::Aggregation& op, const PhysicalAggregation& t) { + return op.group_by == t.group_by && op.aggregates == t.aggregates ? 0 : 1; + }, + [](const physical::StreamAggregation& op, const PhysicalStreamAggregation& t) { + return op.group_by == t.group_by && op.aggregates == t.aggregates ? 0 : 1; + }, + [](const physical::PartialAggregation& op, const PhysicalPartialAggregation& t) { + return op.group_by == t.group_by && op.aggregates == t.aggregates ? 0 : 1; + }, + [](const physical::FinalAggregation& op, const PhysicalFinalAggregation& t) { + return op.group_by == t.group_by && op.aggregates == t.aggregates ? 0 : 1; + }, + [](const auto&, const auto&) { + return 1; + }, + }, expr.root_operator, target.node); + } + + std::unordered_map, int, PairHash> distance_memo_; + std::unordered_set, PairHash> distance_visiting_; + std::unordered_map size_memo_; + std::unordered_set size_visiting_; +}; + } // namespace MatchResult IsReachable(utils::NotNull root, const PhysicalPlanNode& target) { auto r = MatchGroup(root.get(), target, 0); - return {r.ok, r.reason}; + TreeDistance distance; + return {r.ok, r.reason, distance.Distance(root.get(), target)}; } MatchResult IsPlanReachable(std::istream& sql, const PhysicalPlanNode& target, diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index 343ed0a..35ae135 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -43,6 +44,8 @@ std::shared_ptr Share(Expression e) { } std::string CanonicalKey(const Expression& e); +Expression NormalizePredicate(const Expression& e); +Expression NormalizeNegated(const Expression& e); std::string CanonicalKey(const BinaryExpression& e) { return std::format("({} {} {})", static_cast(e.binop), @@ -89,7 +92,7 @@ void CollectByOp(const Expression& e, BinaryOp op, std::vector& out) CollectByOp(*b->rhs, op, out); return; } - out.push_back(CanonicalizePredicate(e)); + out.push_back(NormalizePredicate(e)); } Expression ChainByOp(std::vector exprs, BinaryOp op) { @@ -103,9 +106,93 @@ Expression ChainByOp(std::vector exprs, BinaryOp op) { return acc; } -} // namespace +std::optional InvertComparison(BinaryOp op) { + switch (op) { + case BinaryOp::kGt: return BinaryOp::kLe; + case BinaryOp::kLt: return BinaryOp::kGe; + case BinaryOp::kLe: return BinaryOp::kGt; + case BinaryOp::kGe: return BinaryOp::kLt; + case BinaryOp::kNotEq: return BinaryOp::kEq; + case BinaryOp::kEq: return BinaryOp::kNotEq; + case BinaryOp::kOr: + case BinaryOp::kAnd: + case BinaryOp::kPlus: + case BinaryOp::kMinus: + case BinaryOp::kMul: + case BinaryOp::kDiv: + case BinaryOp::kMod: + case BinaryOp::kPow: + return std::nullopt; + } +} -Expression CanonicalizePredicate(const Expression& e) { +std::optional ReverseComparison(BinaryOp op) { + switch (op) { + case BinaryOp::kGt: return BinaryOp::kLt; + case BinaryOp::kLt: return BinaryOp::kGt; + case BinaryOp::kLe: return BinaryOp::kGe; + case BinaryOp::kGe: return BinaryOp::kLe; + case BinaryOp::kNotEq: return BinaryOp::kNotEq; + case BinaryOp::kEq: return BinaryOp::kEq; + case BinaryOp::kOr: + case BinaryOp::kAnd: + case BinaryOp::kPlus: + case BinaryOp::kMinus: + case BinaryOp::kMul: + case BinaryOp::kDiv: + case BinaryOp::kMod: + case BinaryOp::kPow: + return std::nullopt; + } +} + +std::optional InvertLiteral(Literal literal) { + switch (literal) { + case Literal::kTrue: return Literal::kFalse; + case Literal::kFalse: return Literal::kTrue; + case Literal::kNull: + case Literal::kUnknown: + return std::nullopt; + } +} + +Expression ExpandIn(const InExpression& in) { + Expression lhs = NormalizePredicate(*in.lhs); + std::vector values; + values.reserve(in.values.size()); + for (const auto& value : in.values) { + values.push_back(NormalizePredicate(value)); + } + std::ranges::sort(values, [](const Expression& lhs, const Expression& rhs) { + return CanonicalKey(lhs) < CanonicalKey(rhs); + }); + + if (values.empty()) { + return InExpression{Share(std::move(lhs)), {}, in.negated}; + } + + const BinaryOp leaf_op = in.negated ? BinaryOp::kNotEq : BinaryOp::kEq; + const BinaryOp join_op = in.negated ? BinaryOp::kAnd : BinaryOp::kOr; + + std::vector terms; + terms.reserve(values.size()); + for (auto& value : values) { + terms.push_back(BinaryExpression{Share(lhs), leaf_op, Share(std::move(value))}); + } + return ChainByOp(std::move(terms), join_op); +} + +Expression NormalizeBinary(const BinaryExpression& b) { + Expression lhs = NormalizePredicate(*b.lhs); + Expression rhs = NormalizePredicate(*b.rhs); + if (auto reversed = ReverseComparison(b.binop); + reversed && CanonicalKey(rhs) < CanonicalKey(lhs)) { + return BinaryExpression{Share(std::move(rhs)), *reversed, Share(std::move(lhs))}; + } + return BinaryExpression{Share(std::move(lhs)), b.binop, Share(std::move(rhs))}; +} + +Expression NormalizePredicate(const Expression& e) { return std::visit(utils::Overloaded{ [](const BinaryExpression& b) -> Expression { if (b.binop == BinaryOp::kAnd || b.binop == BinaryOp::kOr) { @@ -114,34 +201,77 @@ Expression CanonicalizePredicate(const Expression& e) { CollectByOp(*b.rhs, b.binop, terms); return ChainByOp(std::move(terms), b.binop); } - return BinaryExpression{ - Share(CanonicalizePredicate(*b.lhs)), - b.binop, - Share(CanonicalizePredicate(*b.rhs)), - }; + return NormalizeBinary(b); + }, + [](const UnaryExpression& u) -> Expression { + if (u.op == UnaryOp::kNot) { + return NormalizeNegated(*u.child); + } + return UnaryExpression{u.op, Share(NormalizePredicate(*u.child))}; + }, + [](const InExpression& i) -> Expression { + return ExpandIn(i); + }, + [](const AggregateExpression& a) -> Expression { + if (a.is_star || !a.argument) return a; + return AggregateExpression{a.function, Share(NormalizePredicate(*a.argument)), a.is_star}; + }, + [](const auto& leaf) -> Expression { return leaf; }, + }, e); +} + +Expression NormalizeNegated(const Expression& e) { + return std::visit(utils::Overloaded{ + [](const BinaryExpression& b) -> Expression { + if (b.binop == BinaryOp::kAnd || b.binop == BinaryOp::kOr) { + const BinaryOp op = b.binop == BinaryOp::kAnd ? BinaryOp::kOr : BinaryOp::kAnd; + std::vector terms; + CollectByOp(NormalizeNegated(*b.lhs), op, terms); + CollectByOp(NormalizeNegated(*b.rhs), op, terms); + return ChainByOp(std::move(terms), op); + } + if (auto inverted = InvertComparison(b.binop)) { + return BinaryExpression{ + Share(NormalizePredicate(*b.lhs)), + *inverted, + Share(NormalizePredicate(*b.rhs)), + }; + } + return UnaryExpression{UnaryOp::kNot, Share(NormalizePredicate(Expression{b}))}; }, [](const UnaryExpression& u) -> Expression { - return UnaryExpression{u.op, Share(CanonicalizePredicate(*u.child))}; + if (u.op == UnaryOp::kNot) { + return NormalizePredicate(*u.child); + } + return UnaryExpression{UnaryOp::kNot, Share(NormalizePredicate(Expression{u}))}; }, [](const InExpression& i) -> Expression { std::vector values; values.reserve(i.values.size()); for (const auto& value : i.values) { - values.push_back(CanonicalizePredicate(value)); + values.push_back(value); } - std::ranges::sort(values, [](const Expression& lhs, const Expression& rhs) { - return CanonicalKey(lhs) < CanonicalKey(rhs); - }); - return InExpression{Share(CanonicalizePredicate(*i.lhs)), std::move(values), i.negated}; + return ExpandIn(InExpression{Share(*i.lhs), std::move(values), !i.negated}); }, [](const AggregateExpression& a) -> Expression { - if (a.is_star || !a.argument) return a; - return AggregateExpression{a.function, Share(CanonicalizePredicate(*a.argument)), a.is_star}; + return UnaryExpression{UnaryOp::kNot, Share(NormalizePredicate(Expression{a}))}; + }, + [](Literal l) -> Expression { + if (auto inverted = InvertLiteral(l)) return *inverted; + return UnaryExpression{UnaryOp::kNot, Share(Expression{l})}; + }, + [](const auto& leaf) -> Expression { + return UnaryExpression{UnaryOp::kNot, Share(Expression{leaf})}; }, - [](const auto& leaf) -> Expression { return leaf; }, }, e); } +} // namespace + +Expression CanonicalizePredicate(const Expression& e) { + return NormalizePredicate(e); +} + bool EquivalentPredicate(const Expression& lhs, const Expression& rhs) { return CanonicalizePredicate(lhs) == CanonicalizePredicate(rhs); } diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 0619c46..febe06d 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -232,10 +232,10 @@ int main(int argc, char** argv) { return kOptimizerError; } if (mr.reachable) { - std::cout << "REACHABLE\n"; + std::cout << "REACHABLE distance=" << mr.closest_distance << "\n"; return kOk; } - std::cout << "NOT REACHABLE: " << mr.mismatch << "\n"; + std::cout << "NOT REACHABLE distance=" << mr.closest_distance << ": " << mr.mismatch << "\n"; return kNotReachable; } From fcec0c026565167809a1bafa1bb4f664f57ed49e Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 15 Jun 2026 17:08:31 +0300 Subject: [PATCH 114/120] More stats --- .../sql/logic/optimizer/logical_expr.hpp | 10 + include/stewkk/sql/logic/optimizer/memo.hpp | 23 + .../stewkk/sql/logic/optimizer/optimizer.hpp | 25 + .../sql/logic/optimizer/physical_expr.hpp | 15 + include/stewkk/sql/logic/optimizer/rules.hpp | 3 + .../sql/logic/optimizer/rules_applier.hpp | 4 + report/reach-fuzz-cross-mssql.pdf | Bin 0 -> 13418 bytes report/reach-fuzz-cross-ours.pdf | Bin 0 -> 16941 bytes report/vkr.tex | 81 + research/rule-lineage-random-1000-samples.csv | 3204 +++++++++++++++++ research/rule-lineage-random-1000-summary.csv | 21 + .../sql/logic/executor/plan_serializer.cpp | 22 +- .../logic/executor/plan_serializer_test.cpp | 2 +- src/stewkk/sql/logic/optimizer/memo.cpp | 21 + src/stewkk/sql/logic/optimizer/optimizer.cpp | 119 + .../sql/logic/optimizer/optimizer_test.cpp | 59 +- src/stewkk/sql/logic/optimizer/rules.cpp | 36 + .../sql/logic/optimizer/rules_applier.cpp | 31 +- src/stewkk/sql/main.cpp | 28 + 19 files changed, 3690 insertions(+), 14 deletions(-) create mode 100644 report/reach-fuzz-cross-mssql.pdf create mode 100644 report/reach-fuzz-cross-ours.pdf create mode 100644 research/rule-lineage-random-1000-samples.csv create mode 100644 research/rule-lineage-random-1000-summary.csv diff --git a/include/stewkk/sql/logic/optimizer/logical_expr.hpp b/include/stewkk/sql/logic/optimizer/logical_expr.hpp index 43f681d..67050c1 100644 --- a/include/stewkk/sql/logic/optimizer/logical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/logical_expr.hpp @@ -1,5 +1,8 @@ #pragma once +#include +#include + #include #include @@ -74,6 +77,13 @@ struct LogicalExpr { logical::PartialAggregation, logical::FinalAggregation, logical::Join, logical::CrossJoin> root_operator; utils::NotNull group; + + struct Provenance { + size_t rule_id; + std::string_view rule_name; + LogicalExpr* source; + }; + std::optional provenance; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/memo.hpp b/include/stewkk/sql/logic/optimizer/memo.hpp index b62a57d..4fef909 100644 --- a/include/stewkk/sql/logic/optimizer/memo.hpp +++ b/include/stewkk/sql/logic/optimizer/memo.hpp @@ -1,7 +1,9 @@ #pragma once #include +#include #include +#include #include #include @@ -10,6 +12,25 @@ namespace stewkk::sql { class Memo { public: + struct LogicalProvenance { + size_t rule_id; + std::string_view rule_name; + LogicalExpr* source; + }; + + class ScopedLogicalProvenance { + public: + ScopedLogicalProvenance(Memo& memo, LogicalProvenance provenance); + ~ScopedLogicalProvenance(); + + ScopedLogicalProvenance(const ScopedLogicalProvenance&) = delete; + ScopedLogicalProvenance& operator=(const ScopedLogicalProvenance&) = delete; + + private: + Memo& memo_; + std::optional previous_; + }; + size_t GroupCount() const; utils::NotNull AddGroup(LogicalOperator root_operator); LogicalExpr* GetGroup(LogicalOperator root_operator) const; @@ -19,9 +40,11 @@ class Memo { private: LogicalExpr* GetGroup(const std::string& key) const; + void SetProvenanceIfNew(utils::NotNull expr); std::deque groups_; std::unordered_map expr_index_; + std::optional current_provenance_; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/optimizer.hpp b/include/stewkk/sql/logic/optimizer/optimizer.hpp index ad9b974..82ee638 100644 --- a/include/stewkk/sql/logic/optimizer/optimizer.hpp +++ b/include/stewkk/sql/logic/optimizer/optimizer.hpp @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include #include #include @@ -22,6 +24,19 @@ namespace stewkk::sql { std::vector> GetChildren(utils::NotNull expr); std::vector> GetChildren(utils::NotNull expr); +enum class RuleLineageKind { + kTransformation, + kImplementation, + kEnforcer, +}; + +struct RuleLineageStat { + RuleLineageKind kind; + size_t rule_id; + std::string_view rule_name; + size_t count; +}; + template class Optimizer { public: @@ -35,6 +50,7 @@ class Optimizer { std::int64_t GetBestCost() const; utils::NotNull GetRootGroup() const; + std::vector GetSelectedPlanRuleLineage(); private: using Limit = std::optional; @@ -56,6 +72,15 @@ class Optimizer { void OptimizeGroup(utils::NotNull group, PropertySet required = PropertySet::Any(), Limit limit = std::nullopt); PhysicalPlanNode BuildOptimalPlan(Group* group, PropertySet required = PropertySet::Any()); + void CollectSelectedPlanRuleLineage( + Group* group, PropertySet required, + std::unordered_map& stats, + std::unordered_set& visited_physical, + std::unordered_set& visited_logical); + void CollectLogicalRuleLineage( + LogicalExpr* expr, + std::unordered_map& stats, + std::unordered_set& visited_logical); struct WinnerEntry { int64_t cost; diff --git a/include/stewkk/sql/logic/optimizer/physical_expr.hpp b/include/stewkk/sql/logic/optimizer/physical_expr.hpp index 17d6266..44f559b 100644 --- a/include/stewkk/sql/logic/optimizer/physical_expr.hpp +++ b/include/stewkk/sql/logic/optimizer/physical_expr.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -12,6 +13,7 @@ namespace stewkk::sql { struct Group; +struct LogicalExpr; namespace physical { @@ -122,6 +124,18 @@ struct FinalAggregation { } // namespace physical struct PhysicalExpr { + enum class ProvenanceKind { + kImplementation, + kEnforcer, + }; + + struct Provenance { + ProvenanceKind kind; + size_t rule_id; + std::string_view rule_name; + LogicalExpr* source; + }; + std::variant root_operator; utils::NotNull group; bool is_enforcer = false; + std::optional provenance; }; } // namespace stewkk::sql diff --git a/include/stewkk/sql/logic/optimizer/rules.hpp b/include/stewkk/sql/logic/optimizer/rules.hpp index fc336f8..5b97b50 100644 --- a/include/stewkk/sql/logic/optimizer/rules.hpp +++ b/include/stewkk/sql/logic/optimizer/rules.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -34,6 +35,8 @@ template struct Rules { std::array, NTransformation> transformation_rules; std::array, NImplementation> implementation_rules; + std::array transformation_rule_names; + std::array implementation_rule_names; }; Rules<14, 9> MakeMainRules(IndexCatalog indexes = {}); diff --git a/include/stewkk/sql/logic/optimizer/rules_applier.hpp b/include/stewkk/sql/logic/optimizer/rules_applier.hpp index 8834ecc..b511b24 100644 --- a/include/stewkk/sql/logic/optimizer/rules_applier.hpp +++ b/include/stewkk/sql/logic/optimizer/rules_applier.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -31,6 +32,9 @@ class RulesApplier { bool IsApplicable(ImplementationRuleId rule, utils::NotNull expr); std::vector> Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo); + std::string_view GetTransformationRuleName(TransformationRuleId rule) const; + std::string_view GetImplementationRuleName(ImplementationRuleId rule) const; + private: Rules rules_; std::unordered_map> applied_transformation_rules_; diff --git a/report/reach-fuzz-cross-mssql.pdf b/report/reach-fuzz-cross-mssql.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e3a8b7f77895f939ef022fffc82d6a862fa12115 GIT binary patch literal 13418 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 60) +ORDER BY orders.customer_id DESC, orders.id DESC;" +9,1351928,3939128,2497,2,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 2; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.customer_id AS c3674 +FROM orders AS t0 CROSS JOIN departments AS t1 +WHERE (t1.id >= 4 AND (t0.id IN (130) OR t1.id IS NULL));" +10,3639,6932,228,3,transformation 5 FilterPushdownThroughJoin: 3; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 2,"SELECT regions.id +FROM books RIGHT JOIN employees ON books.id = employees.id JOIN regions ON books.id = regions.id +WHERE books.price >= 6;" +11,5889,16616,226,22,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id +FROM users FULL JOIN employees ON users.id = employees.id +ORDER BY employees.department_id DESC;" +12,676416,1550366,1214,3,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT orders.id AS c2380, markets.region, markets.note +FROM markets JOIN orders ON markets.id = orders.id;" +13,2390300,2390300,2959,15000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT markets.region, orders.customer_id AS c8705, markets.note +FROM markets CROSS JOIN orders;" +14,2076,2076,135,10,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.department_id, t0.id AS c1827 +FROM employees AS t0 +WHERE (t0.department_id BETWEEN 5 AND 34 OR t0.id NOT IN (2, 68, 69));" +15,422,422,229,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.price +FROM books +WHERE (books.id < 2 AND (books.price NOT BETWEEN 41 AND 55 OR books.price IN (57, 63, 77, 77)));" +16,5405,16132,184,22,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.age AS c4948 +FROM users AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id;" +17,14805,29510,354,4,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age, COUNT(departments.id), COUNT(*) +FROM regions JOIN users ON regions.id = users.id CROSS JOIN departments +WHERE (users.age >= 52 OR regions.id IN (4, 9)) +GROUP BY users.age;" +18,102500,102500,291,436,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id +FROM customers +WHERE customers.region_id != 8 +ORDER BY customers.region_id ASC;" +19,2736,4463,264,2,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t0.id +FROM books AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id JOIN markets AS t2 ON t1.id = t2.id +WHERE t1.id < 3 +ORDER BY t0.id ASC;" +20,31196040,49896040,20899,85,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT orders.id AS c5497, orders.customer_id, departments.id AS c8484 +FROM departments CROSS JOIN users CROSS JOIN orders +WHERE orders.id = 82;" +21,1220,1220,123,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions;" +22,3740,3740,220,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.department_id +FROM employees AS t0 +GROUP BY t0.department_id +ORDER BY t0.department_id ASC;" +23,109562,155822,402,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id +FROM customers LEFT JOIN books ON customers.id = books.id +GROUP BY customers.region_id +ORDER BY customers.region_id ASC;" +24,39522,56902,652,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id, COUNT(t0.id) AS c2763, COUNT(t2.id) +FROM regions AS t0 CROSS JOIN users AS t1 LEFT JOIN markets AS t2 ON t0.id = t2.id +GROUP BY t2.id;" +25,68652,155432,263,3,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id +FROM books JOIN customers ON books.id = customers.id +ORDER BY customers.id DESC;" +26,1417306,4786826,4875,5489,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT customers.region_id, employees.department_id +FROM employees FULL JOIN orders ON employees.id = orders.id FULL JOIN customers ON employees.id = customers.id +ORDER BY customers.region_id ASC;" +27,1318590,6466259,4170,2,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT orders.customer_id, users.id +FROM users RIGHT JOIN orders ON users.id = orders.id CROSS JOIN departments +WHERE orders.customer_id IN (34, 321) +GROUP BY orders.customer_id, users.id;" +28,1425,1425,156,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id AS c2364, SUM(departments.id) +FROM departments +GROUP BY departments.id +ORDER BY departments.id ASC;" +29,110161,226916,320,3,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT customers.id, markets.id +FROM customers FULL JOIN departments ON customers.id = departments.id JOIN markets ON customers.id = markets.id;" +30,19986,32788,418,51,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT markets.id AS c2619 +FROM markets CROSS JOIN users CROSS JOIN books +WHERE markets.region != 'AMERICA';" +31,3125,3125,190,8,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, SUM(t0.id) +FROM users AS t0 +WHERE ((t0.id NOT IN (5) AND t0.age != 12) AND t0.age NOT BETWEEN 33 AND 64) +GROUP BY t0.id;" +32,3740,3740,166,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id AS c8338, COUNT(t0.department_id) +FROM employees AS t0 +GROUP BY t0.id +ORDER BY t0.id DESC;" +33,878460,2705500,1374,1000,transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id, customers.region_id +FROM departments RIGHT JOIN orders ON departments.id = orders.id CROSS JOIN customers +WHERE departments.id BETWEEN 4 AND 96 +ORDER BY customers.region_id DESC;" +34,22645472,27634772,76328,3,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note AS c1833, markets.region, SUM(books.id) AS c1917, COUNT(*) +FROM orders CROSS JOIN markets CROSS JOIN books +WHERE ((orders.id != 89 OR markets.note IS NOT NULL) OR (markets.id IN (22) AND books.id NOT BETWEEN 1 AND 3)) +GROUP BY markets.note, markets.region +ORDER BY markets.region DESC;" +35,7686500,1755811500,23921,50000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id, orders.id +FROM orders CROSS JOIN regions JOIN customers ON regions.id = customers.id +ORDER BY orders.id DESC, regions.id DESC;" +36,8426,8426,329,51,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT books.price AS c7084 +FROM books CROSS JOIN users;" +37,1916300,525797800,3304,1591,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id +FROM customers CROSS JOIN markets FULL JOIN orders ON markets.id = orders.id +WHERE orders.id < 95;" +38,1310710,4010688,2615,2,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 6,"SELECT t1.department_id, COUNT(*) +FROM regions AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id +WHERE ((t1.id = 3 OR t2.id = 185) OR (t1.id < 3 AND t2.id IS NULL)) +GROUP BY t1.department_id +ORDER BY t1.department_id DESC;" +39,433,433,401,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.note, t0.region +FROM markets AS t0 +WHERE t0.note IS NULL +ORDER BY t0.note DESC, t0.id DESC;" +40,615800,615800,692,500,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id, t1.region_id AS c2127 +FROM books AS t0 CROSS JOIN customers AS t1 +GROUP BY t1.id, t1.region_id;" +41,917612117,1196362017,1308879,50000,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id, orders.id AS c1616 +FROM orders CROSS JOIN customers +WHERE ((orders.id >= 3 OR customers.region_id != 41) OR orders.id IN (73)) +GROUP BY customers.region_id, orders.id;" +42,744958,1705422,1361,3,transformation 0 JoinCommutativity: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 2,"SELECT t1.price, t0.region_id, t2.customer_id AS c2615 +FROM customers AS t0 JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t0.id = t2.id +WHERE t2.id IS NOT NULL;" +43,422,422,293,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.region, markets.id AS c9574 +FROM markets +WHERE ((markets.note IS NOT NULL OR markets.region != 'AMERICA') AND (markets.region IN ('EUROPE', 'EUROPE') AND markets.note IN ('North, South', 'North, South')));" +44,72448,648028,243,6,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id AS c8372, t1.age AS c1550 +FROM customers AS t0 JOIN users AS t1 ON t0.id = t1.id +WHERE t1.id > 11 +ORDER BY t1.id ASC, t1.age DESC;" +45,4560,11225,172,0,transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.department_id AS c7018, t0.id AS c6686 +FROM regions AS t0 JOIN employees AS t1 ON t0.id = t1.id +WHERE t0.id >= 10 +GROUP BY t1.department_id, t0.id;" +46,1122,1122,164,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM regions AS t0 +WHERE ((t0.id IS NOT NULL AND t0.id != 5) AND (t0.id > 8 AND t0.id > 9));" +47,110844,436233,343,1,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id +FROM customers FULL JOIN employees ON customers.id = employees.id +WHERE employees.department_id = 32 +ORDER BY employees.id ASC;" +48,1443652,175655822,3485,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT customers.region_id AS c1201, SUM(customers.region_id) +FROM orders FULL JOIN customers ON orders.id = customers.id FULL JOIN markets ON orders.id = markets.id +GROUP BY customers.region_id;" +49,560554,560554,1253,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE ((orders.id = 130 OR orders.id <= 96) AND orders.id = 97) +ORDER BY orders.customer_id DESC, orders.id DESC;" +50,1239,1972,489,3,transformation 5 FilterPushdownThroughJoin: 1; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT markets.id +FROM markets RIGHT JOIN departments ON markets.id = departments.id +WHERE markets.id < 45;" +51,610,610,140,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM departments AS t0;" +52,3345275,5714300,8172,5000,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 3; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, COUNT(*) +FROM books CROSS JOIN orders +WHERE books.price NOT IN (45, 55, 55, 66) +GROUP BY orders.id;" +53,30725,62340,348,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id, COUNT(employees.id) AS c5902 +FROM employees CROSS JOIN users JOIN markets ON users.id = markets.id +GROUP BY users.id +ORDER BY users.id ASC;" +54,5100,5100,178,15,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, users.id AS c207, SUM(users.id) +FROM users +WHERE (users.age > 27 OR (users.age <= 123 AND users.age > 1)) +GROUP BY users.age, users.id +ORDER BY users.id ASC;" +55,1342,1342,128,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.department_id AS c7732 +FROM employees AS t0;" +56,40022332,53882332,79727,3,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id, SUM(orders.customer_id) AS c2549, COUNT(*) AS c1539 +FROM books CROSS JOIN employees CROSS JOIN orders +WHERE employees.id < 68 +GROUP BY books.id;" +57,881250,881250,1505,3001,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.id AS c9114 +FROM orders +WHERE (orders.customer_id > 214 OR orders.customer_id BETWEEN 75 AND 84);" +58,4073600,1927083100,3920,110,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, customers.region_id, COUNT(*), SUM(orders.customer_id) +FROM employees CROSS JOIN customers FULL JOIN orders ON customers.id = orders.id +WHERE customers.id <= 149 +GROUP BY employees.department_id, customers.region_id;" +59,175500,175500,469,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id, customers.region_id, COUNT(customers.region_id) +FROM customers +GROUP BY customers.id, customers.region_id;" +60,3577,5702,185,17,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id +FROM markets AS t0 FULL JOIN users AS t1 ON t0.id = t1.id +ORDER BY t0.id ASC;" +61,1763,2493,272,5,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.region, t1.id, t1.note +FROM departments AS t0 CROSS JOIN markets AS t1 +WHERE ((t0.id < 43 OR t0.id >= 2) AND t1.note = 'Old World') +ORDER BY t1.note DESC, t1.id ASC, t1.region ASC;" +62,69881,156916,323,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id AS c7718 +FROM departments LEFT JOIN books ON departments.id = books.id JOIN customers ON departments.id = customers.id;" +63,4771,9075,197,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.age AS c5029, COUNT(*) AS c2096, SUM(users.age) +FROM users FULL JOIN departments ON users.id = departments.id +GROUP BY users.age +ORDER BY users.age ASC;" +64,1494000,175610500,1709,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id AS c6827, orders.id, customers.id +FROM customers LEFT JOIN orders ON customers.id = orders.id +ORDER BY customers.region_id ASC, customers.id ASC, orders.id DESC;" +65,1558,2113,203,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.id AS c8656, markets.region +FROM markets FULL JOIN departments ON markets.id = departments.id +WHERE departments.id = 60 +GROUP BY markets.id, markets.region;" +66,563,563,234,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.note AS c5953, SUM(markets.id), SUM(markets.id) +FROM markets +WHERE markets.region = 'EUROPE' +GROUP BY markets.note;" +67,61000,61000,262,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id, customers.id AS c651 +FROM customers;" +68,1311707,6465260,5389,5001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT users.id, regions.id AS c5610, orders.id AS c9918 +FROM users FULL JOIN orders ON users.id = orders.id FULL JOIN regions ON orders.id = regions.id +ORDER BY users.id DESC;" +69,356822,548611,2595,2380,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id AS c499 +FROM books AS t0 FULL JOIN users AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 +WHERE ((t0.price > 66 OR t0.price NOT IN (55, 77, 93)) OR t2.id < 93) +ORDER BY t0.id ASC;" +70,574,574,156,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region, markets.note +FROM markets +WHERE markets.id IN (2, 31) +GROUP BY markets.region, markets.note +ORDER BY markets.note ASC, markets.region ASC;" +71,5300,5300,256,5,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id AS c3175, SUM(departments.id), COUNT(books.price) +FROM books CROSS JOIN departments +GROUP BY departments.id;" +72,788,788,138,4,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM departments AS t0 +WHERE t0.id >= 2 +ORDER BY t0.id ASC;" +73,67449,155422,437,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT customers.id, customers.region_id +FROM customers JOIN markets ON customers.id = markets.id +WHERE ((markets.id = 3 AND markets.region != 'AMERICA') AND (customers.id < 17 AND customers.region_id IS NULL));" +74,109996,226972,330,3,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT books.id AS c9785 +FROM customers RIGHT JOIN departments ON customers.id = departments.id RIGHT JOIN books ON departments.id = books.id +WHERE books.price >= 55;" +75,15960,15960,395,110,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.department_id AS c5193, t1.id +FROM regions AS t0 CROSS JOIN employees AS t1;" +76,6261,16988,208,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id AS c3431 +FROM users AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id +WHERE ((t1.id != 67 AND t0.id IS NOT NULL) OR (t0.age NOT BETWEEN 33 AND 123 OR t0.age >= 22));" +77,60475000,315425000,1366,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.region_id AS c1177, t0.id AS c3278, COUNT(*), COUNT(t0.id) AS c3474 +FROM orders AS t0 CROSS JOIN customers AS t1 +WHERE (t0.id = 64 AND t0.customer_id > 397) +GROUP BY t1.region_id, t0.id;" +78,61000,61000,263,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.region_id +FROM customers AS t0;" +79,2310,2310,601,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c7963, t0.age AS c5437 +FROM users AS t0 +WHERE t0.age IN (5, 11, 63);" +80,3730,6250,275,30,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT regions.id AS c2137 +FROM regions CROSS JOIN markets +WHERE markets.note != 'AMERICA';" +81,3837,9622,233,3,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region AS c3832, users.age, departments.id +FROM users LEFT JOIN departments ON users.id = departments.id RIGHT JOIN markets ON users.id = markets.id +WHERE departments.id <= 5;" +82,1833,1833,147,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age AS c4898, users.id AS c4014 +FROM users +WHERE ((users.id = 4 OR users.id BETWEEN 11 AND 16) AND (users.age = 22 AND users.id <= 57)) +ORDER BY users.age DESC;" +83,3478,5692,185,6,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.age AS c499, t1.price AS c7644, t0.id +FROM users AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id +WHERE t0.id < 7;" +84,3124,4574,510,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT books.price, regions.id, markets.id AS c8988 +FROM markets LEFT JOIN regions ON markets.id = regions.id LEFT JOIN books ON regions.id = books.id +WHERE ((books.price BETWEEN 6 AND 77 OR markets.id NOT IN (1, 2, 2, 3)) OR books.price NOT IN (55));" +85,175500,175500,331,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.region_id +FROM customers AS t0 +GROUP BY t0.id, t0.region_id;" +86,610000,610000,1135,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders;" +87,3256,3256,218,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id, employees.id AS c6314 +FROM employees +GROUP BY employees.department_id, employees.id;" +88,3612,6540,207,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT departments.id AS c2839, COUNT(*) +FROM employees RIGHT JOIN departments ON employees.id = departments.id +GROUP BY departments.id +ORDER BY departments.id DESC;" +89,822,822,176,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region AS c5477, t0.id AS c2794, COUNT(*) AS c9570 +FROM markets AS t0 +GROUP BY t0.region, t0.id;" +90,135000,135000,585,500,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id, customers.id AS c6247, COUNT(*) AS c8943 +FROM customers +WHERE customers.region_id <= 40 +GROUP BY customers.region_id, customers.id;" +91,610,610,181,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments;" +92,12280,12280,358,3,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region, markets.id +FROM markets CROSS JOIN regions +GROUP BY markets.region, markets.id +ORDER BY markets.region ASC;" +93,675822,1550366,1009,3,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT t0.id, t1.id AS c1156, t0.customer_id +FROM orders AS t0 JOIN books AS t1 ON t0.id = t1.id;" +94,4252,22032,305,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 2,"SELECT t1.price +FROM departments AS t0 CROSS JOIN books AS t1 RIGHT JOIN users AS t2 ON t1.id = t2.id +WHERE (t2.id BETWEEN 45 AND 86 AND t1.id IN (2));" +95,2646,7432,516,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 3; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.id +FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE ((t1.department_id IN (1, 5, 12, 34) AND t1.id IN (69)) AND t1.department_id <= 1);" +96,684299,6455219,1022,16,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id AS c5555, t0.id +FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.id;" +97,1274,1274,178,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id, SUM(regions.id), COUNT(regions.id) AS c9550 +FROM regions +WHERE ((regions.id < 2 AND regions.id = 32) AND (regions.id <= 2 AND regions.id != 3)) +GROUP BY regions.id +ORDER BY regions.id ASC;" +98,1232,2482,250,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 5; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT books.id +FROM books CROSS JOIN departments +WHERE ((books.price IS NULL AND departments.id = 1) AND (books.price IS NULL OR books.price NOT IN (55, 77)));" +99,58943,401263,262,0,transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id, SUM(customers.id), COUNT(customers.id) AS c8662 +FROM regions JOIN customers ON regions.id = customers.id +WHERE customers.region_id = 63 +GROUP BY customers.id;" +100,3009,3009,138,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age, users.id AS c7470 +FROM users +ORDER BY users.id ASC;" +101,4056,6624,461,50,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.id, departments.id AS c1258, markets.region +FROM employees LEFT JOIN markets ON employees.id = markets.id CROSS JOIN departments +WHERE ((markets.id IN (3) AND markets.region = 'EUROPE') OR employees.id < 69);" +102,610000,610000,1304,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.customer_id, t0.id AS c8685 +FROM orders AS t0;" +103,686541,6467000,1121,9,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT users.age AS c405 +FROM users JOIN orders ON users.id = orders.id RIGHT JOIN regions ON orders.id = regions.id +GROUP BY users.age +ORDER BY users.age DESC;" +104,1222,1222,196,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id +FROM employees +WHERE employees.id = 14;" +105,1306776,1551752,1464,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT markets.id, orders.customer_id, COUNT(*) +FROM orders RIGHT JOIN markets ON orders.id = markets.id LEFT JOIN books ON markets.id = books.id +GROUP BY markets.id, orders.customer_id;" +106,10392,18447,326,25,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price AS c2329, markets.note +FROM users CROSS JOIN books JOIN markets ON books.id = markets.id +WHERE (markets.region = 'EUROPE' OR (users.age NOT IN (5, 22, 64, 123) AND users.age < 22)) +ORDER BY markets.note ASC;" +107,1274,1274,159,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id +FROM regions +WHERE regions.id IN (5) +GROUP BY regions.id +ORDER BY regions.id ASC;" +108,102500,102500,239,51,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id AS c9166, customers.region_id +FROM customers +WHERE customers.id < 52 +ORDER BY customers.region_id ASC, customers.id DESC;" +109,5405,16132,208,22,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id, users.age, employees.department_id +FROM employees FULL JOIN users ON employees.id = users.id;" +110,3233,16153,330,0,transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id, employees.id, COUNT(users.id) AS c6401, COUNT(*) +FROM employees FULL JOIN users ON employees.id = users.id +WHERE ((employees.department_id = 31 AND employees.department_id NOT IN (6, 59, 72)) AND (employees.department_id NOT IN (1, 5, 6, 32) AND users.id = 5)) +GROUP BY employees.department_id, employees.id;" +111,541846,541846,2403,28,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE ((orders.id IN (97, 99, 184, 198) OR orders.id BETWEEN 31 AND 58) AND (orders.customer_id IS NOT NULL AND orders.id BETWEEN 3 AND 65));" +112,1305844,1550574,3017,2,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT markets.id, markets.note, COUNT(orders.id), SUM(orders.customer_id) +FROM markets RIGHT JOIN orders ON markets.id = orders.id +WHERE ((orders.id < 188 AND orders.customer_id >= 193) OR (orders.customer_id BETWEEN 239 AND 436 OR markets.id = 1)) +GROUP BY markets.id, markets.note +ORDER BY markets.id DESC, markets.note DESC;" +113,422,422,175,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.region, t0.note AS c6295 +FROM markets AS t0 +WHERE t0.id < 2;" +114,61000,61000,226,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM customers AS t0;" +115,3922,10020,204,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id AS c2831, t0.id, t0.department_id +FROM employees AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id;" +116,676779,1551363,1099,1,transformation 0 JoinCommutativity: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.customer_id +FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t1.id = t2.id +WHERE t2.customer_id > 244 +ORDER BY t2.customer_id DESC;" +117,744,744,354,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c6139 +FROM departments AS t0 +WHERE t0.id >= 5;" +118,3722,9763,328,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 5; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT books.id AS c118 +FROM departments RIGHT JOIN users ON departments.id = users.id FULL JOIN books ON departments.id = books.id +WHERE ((users.id > 3 AND books.price = 77) AND users.age > 443) +GROUP BY books.id;" +119,676308,2251048,1306,5,transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, COUNT(departments.id) +FROM departments JOIN orders ON departments.id = orders.id +WHERE departments.id < 36 +GROUP BY orders.id;" +120,1377824,4786342,1550,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id, employees.department_id +FROM employees JOIN customers ON employees.id = customers.id LEFT JOIN orders ON employees.id = orders.id;" +121,1222,1222,130,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id +FROM employees +WHERE ((employees.id > 68 OR employees.department_id = 5) AND (employees.id BETWEEN 2 AND 4 AND employees.department_id IN (3, 5, 5)));" +122,3184,5382,344,1,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 2; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note, employees.id +FROM employees LEFT JOIN markets ON employees.id = markets.id JOIN departments ON employees.id = departments.id +WHERE ((departments.id != 36 OR markets.region IS NULL) AND departments.id = 4);" +123,544,544,168,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.note, t0.region +FROM markets AS t0 +WHERE t0.id NOT BETWEEN 2 AND 21;" +124,59693,155433,332,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT books.price AS c5178 +FROM books RIGHT JOIN customers ON books.id = customers.id +WHERE customers.id = 158 +ORDER BY books.price DESC;" +125,1222,1222,152,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id AS c9929, employees.department_id +FROM employees +WHERE (employees.department_id = 35 AND employees.department_id < 32);" +126,3107,4593,277,0,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT books.price, books.id +FROM books FULL JOIN markets ON books.id = markets.id FULL JOIN regions ON books.id = regions.id +WHERE (markets.region != 'EUROPE' AND (regions.id IS NULL AND books.price > 66)) +GROUP BY books.price, books.id;" +127,81500,81500,286,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id +FROM customers AS t0 +WHERE t0.id IN (16, 32, 137) +ORDER BY t0.region_id DESC;" +128,1288,1288,144,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM regions +WHERE regions.id BETWEEN 9 AND 10 +ORDER BY regions.id DESC;" +129,1306842,1551818,1376,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT orders.customer_id, COUNT(orders.id) AS c1702 +FROM markets LEFT JOIN books ON markets.id = books.id LEFT JOIN orders ON markets.id = orders.id +GROUP BY orders.customer_id +ORDER BY orders.customer_id DESC;" +130,1308015,2255110,1379,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id, orders.id AS c452, orders.customer_id +FROM regions JOIN departments ON regions.id = departments.id LEFT JOIN orders ON departments.id = orders.id;" +131,1308440,4002960,2135,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id AS c9060, COUNT(orders.customer_id), COUNT(orders.id) +FROM orders FULL JOIN regions ON orders.id = regions.id +GROUP BY regions.id;" +132,2187,5572,196,0,transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id AS c4692, t1.department_id AS c2149, t1.id +FROM departments AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +WHERE (t1.id IN (32, 66, 68, 80) AND (t1.id <= 26 OR t1.department_id <= 5));" +133,678014,4351342,1007,11,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT t1.id AS c8251, t0.customer_id, t0.id AS c2451 +FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id;" +134,17111100,17111100,23355,55000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id AS c6356 +FROM employees CROSS JOIN orders +ORDER BY orders.customer_id ASC;" +135,1311707,6465260,2119,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT users.id, regions.id AS c3154 +FROM orders FULL JOIN users ON orders.id = users.id RIGHT JOIN regions ON orders.id = regions.id +ORDER BY users.id DESC, regions.id DESC;" +136,7798,11608,602,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT books.price +FROM regions CROSS JOIN markets LEFT JOIN books ON regions.id = books.id +GROUP BY books.price +ORDER BY books.price DESC;" +137,1425,1425,186,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, SUM(departments.id), COUNT(*) AS c6998 +FROM departments +GROUP BY departments.id;" +138,2960,2960,198,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c7258 +FROM regions +GROUP BY regions.id;" +139,563,563,179,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.id +FROM markets +WHERE ((markets.note = 'Old World' OR markets.id >= 2) OR (markets.region = 'AMERICA' AND markets.region = 'EUROPE')) +GROUP BY markets.id;" +140,422,422,162,3,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.price, t0.id AS c3105 +FROM books AS t0 +WHERE t0.id IS NOT NULL;" +141,2932,4903,508,0,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id AS c8895, t1.note AS c8854, SUM(t1.id) +FROM books AS t0 RIGHT JOIN markets AS t1 ON t0.id = t1.id RIGHT JOIN employees AS t2 ON t0.id = t2.id +WHERE t1.id > 24 +GROUP BY t1.id, t1.note;" +142,75995,661132,331,17,transformation 10 ProjectionPushdownThroughJoin: 7; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 4; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.region_id AS c1630 +FROM users AS t0 JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN employees AS t2 ON t0.id = t2.id;" +143,422,422,171,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.price +FROM books AS t0 +WHERE t0.price <= 55;" +144,7022,9744,298,10,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.department_id AS c3966, SUM(t1.id) AS c1392, COUNT(*) AS c3892 +FROM books AS t0 CROSS JOIN employees AS t1 +WHERE t1.department_id != 12 +GROUP BY t1.department_id;" +145,2159,3832,197,2,transformation 5 FilterPushdownThroughJoin: 1; transformation 7 FilterToJoinPredicate: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT t1.department_id AS c6376, t1.id AS c3596 +FROM books AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +WHERE ((t0.id < 1 OR t1.id IS NOT NULL) AND (t0.id != 3 AND t1.department_id <= 35));" +146,1590,1590,127,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id +FROM departments +GROUP BY departments.id +ORDER BY departments.id DESC;" +147,9987,12750,392,110,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id +FROM departments FULL JOIN employees ON departments.id = employees.id CROSS JOIN regions;" +148,3730,6250,284,20,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT books.id, books.price AS c5525, regions.id +FROM books CROSS JOIN regions +WHERE books.price < 69;" +149,102500,102500,393,422,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id AS c6318 +FROM customers AS t0 +WHERE t0.id > 78 +ORDER BY t0.region_id DESC;" +150,810500,1130500,1199,1040,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t1.id AS c921 +FROM regions AS t0 CROSS JOIN customers AS t1 +WHERE t1.region_id IN (5, 9, 51) +GROUP BY t0.id, t1.id;" +151,1310829,4014888,2354,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT regions.id, users.age, orders.id +FROM regions RIGHT JOIN users ON regions.id = users.id FULL JOIN orders ON users.id = orders.id +WHERE ((orders.customer_id BETWEEN 283 AND 359 AND users.id IN (10, 17, 17, 39)) OR (users.id IN (14, 16, 64, 75) AND users.id >= 81)) +ORDER BY orders.id ASC, regions.id DESC, users.age ASC;" +152,12160,12160,302,55,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, employees.department_id, employees.id +FROM departments CROSS JOIN employees +ORDER BY employees.id ASC;" +153,239300,239300,1299,1500,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.id, t0.region_id, t0.id +FROM customers AS t0 CROSS JOIN books AS t1;" +154,3226,3226,193,10,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id, SUM(regions.id) AS c8443 +FROM regions +WHERE (regions.id >= 1 OR (regions.id >= 8 OR regions.id = 5)) +GROUP BY regions.id +ORDER BY regions.id ASC;" +155,1308138,1554232,1515,2,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT markets.region +FROM markets LEFT JOIN orders ON markets.id = orders.id JOIN employees ON markets.id = employees.id +GROUP BY markets.region;" +156,1307140,4001220,1831,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.customer_id, t1.id AS c2544, t0.id AS c7170 +FROM regions AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id;" +157,126891,675750,1165,4840,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.region_id, t2.id +FROM users AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id CROSS JOIN regions AS t2 +WHERE t0.id IS NULL;" +158,4574,12322,266,0,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t1.id, t0.id AS c3888, t2.id AS c5161 +FROM employees AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id JOIN books AS t2 ON t0.id = t2.id +WHERE t0.id IS NULL;" +159,1307045,2251640,1502,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT orders.customer_id AS c3770, departments.id AS c4567, COUNT(*) AS c2771 +FROM departments LEFT JOIN orders ON departments.id = orders.id +WHERE ((orders.customer_id NOT BETWEEN 115 AND 380 OR departments.id IS NULL) OR orders.id = 174) +GROUP BY orders.customer_id, departments.id;" +160,610000,610000,1315,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.customer_id AS c1926 +FROM orders AS t0;" +161,91868,1210558,389,33,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t1.region AS c961, t2.id +FROM employees AS t0 CROSS JOIN markets AS t1 JOIN customers AS t2 ON t1.id = t2.id;" +162,1466,1466,137,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id, employees.department_id +FROM employees +WHERE ((employees.id NOT IN (5, 67, 68) AND employees.department_id = 28) OR (employees.id > 4 AND employees.department_id > 32));" +163,122820,1849979,435,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.region, COUNT(*), COUNT(*) +FROM users CROSS JOIN markets LEFT JOIN customers ON markets.id = customers.id +WHERE users.age >= 1 +GROUP BY markets.region;" +164,433,433,203,3,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.id, markets.note AS c529, markets.region +FROM markets +WHERE (markets.region = 'EUROPE' OR markets.id <= 91) +ORDER BY markets.region ASC, markets.id ASC, markets.note ASC;" +165,822,822,182,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id, COUNT(books.price), SUM(books.id) +FROM books +GROUP BY books.id;" +166,2328,2328,243,9,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM regions +WHERE regions.id NOT IN (2, 95) +ORDER BY regions.id ASC;" +167,52196,52196,305,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM customers AS t0 +WHERE ((t0.region_id > 32 AND t0.id = 78) AND (t0.id >= 20 OR t0.id IS NULL));" +168,110368,157908,560,1,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.region AS c6909, t1.note, SUM(t2.id) +FROM customers AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN departments AS t2 +WHERE ((t0.id = 89 OR t1.id BETWEEN 49 AND 71) AND t0.id IS NOT NULL) +GROUP BY t1.region, t1.note +ORDER BY t1.region ASC;" +169,1392,2113,295,2,transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id +FROM departments RIGHT JOIN markets ON departments.id = markets.id +WHERE departments.id != 1 +GROUP BY departments.id;" +170,1306995,2251590,3048,505,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.id AS c5737, t0.customer_id +FROM orders AS t0 LEFT JOIN departments AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.customer_id +ORDER BY t0.customer_id DESC, t1.id ASC;" +171,24626,37006,524,110,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id AS c3715 +FROM regions CROSS JOIN employees FULL JOIN books ON regions.id = books.id;" +172,111497,436875,382,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id, t0.department_id AS c3676, t1.region_id +FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id +WHERE t0.department_id >= 57 +ORDER BY t0.id DESC, t1.region_id ASC;" +173,27106700,27106700,22994,85000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id +FROM users CROSS JOIN orders +ORDER BY orders.customer_id DESC;" +174,2475,2475,139,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id, users.age +FROM users +WHERE users.id IN (3, 11, 12) +ORDER BY users.age DESC, users.id DESC;" +175,2273,3832,203,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, employees.id, employees.department_id +FROM employees RIGHT JOIN books ON employees.id = books.id +WHERE books.price = 77;" +176,563,563,268,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price, SUM(books.price) AS c5357 +FROM books +WHERE books.price >= 66 +GROUP BY books.price;" +177,3692,3692,175,14,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id, users.age AS c4847 +FROM users +WHERE (users.age < 16 OR users.age < 71) +ORDER BY users.id ASC, users.age DESC;" +178,3009,3009,347,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age AS c7380, users.id +FROM users +ORDER BY users.id DESC;" +179,221288,221288,659,500,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id, customers.region_id +FROM customers +WHERE ((customers.id != 141 OR customers.region_id != 10) OR (customers.id NOT IN (197) OR customers.region_id IN (8))) +GROUP BY customers.id, customers.region_id;" +180,225000,225000,394,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id AS c95, customers.region_id +FROM customers +GROUP BY customers.id, customers.region_id +ORDER BY customers.region_id DESC;" +181,3199300,3199300,3855,500,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id AS c397, customers.id AS c5003, SUM(books.id) +FROM customers CROSS JOIN books CROSS JOIN departments +GROUP BY customers.region_id, customers.id;" +182,970500,175675500,1144,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id AS c6022, t0.id +FROM orders AS t0 JOIN customers AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.id;" +183,65900,65900,256,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id, COUNT(customers.id), COUNT(customers.id) +FROM customers +WHERE customers.id = 24 +GROUP BY customers.id;" +184,171800,297800,1278,500,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT books.price AS c5308, customers.region_id AS c1694 +FROM books CROSS JOIN customers +WHERE books.price <= 55;" +185,610,610,132,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c9527 +FROM departments AS t0;" +186,5081,14820,190,18,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id +FROM regions FULL JOIN users ON regions.id = users.id;" +187,5791,15530,209,8,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id, regions.id, users.age AS c4755 +FROM users LEFT JOIN regions ON users.id = regions.id +WHERE ((regions.id != 31 AND users.age <= 64) OR users.id >= 66) +ORDER BY users.age DESC;" +188,3600,7573,313,0,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.price AS c5573, COUNT(*) +FROM employees AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE (t2.price > 55 AND t0.id BETWEEN 66 AND 69) +GROUP BY t2.price;" +189,57522,155422,250,0,transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT markets.id AS c7660 +FROM markets JOIN customers ON markets.id = customers.id +WHERE (markets.note IS NULL AND (customers.id = 198 AND markets.region IN ('AMERICA', 'EUROPE')));" +190,1590,1590,222,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id +FROM departments +GROUP BY departments.id +ORDER BY departments.id DESC;" +191,14474,21594,411,55,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 3; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id, employees.id +FROM departments JOIN regions ON departments.id = regions.id CROSS JOIN employees +WHERE employees.id IS NOT NULL +GROUP BY departments.id, employees.id +ORDER BY departments.id DESC, employees.id ASC;" +192,1252,1658,322,3,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT books.id, markets.region +FROM markets CROSS JOIN books +WHERE markets.region = 'EUROPE';" +193,114435,414820,343,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.region_id, regions.id +FROM users JOIN regions ON users.id = regions.id LEFT JOIN customers ON regions.id = customers.id;" +194,2490882,5620982,22803,25000,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t2.id +FROM customers AS t0 CROSS JOIN markets AS t1 CROSS JOIN users AS t2 +WHERE ((t1.id IN (3) OR t2.age != 1) OR (t1.id != 2 OR t2.id > 61));" +195,1307400,1553466,1893,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t0.id +FROM regions AS t0 FULL JOIN books AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t1.id = t2.id;" +196,617630,618900,807,30,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id, books.id, SUM(regions.id), SUM(customers.region_id) +FROM books JOIN regions ON books.id = regions.id CROSS JOIN customers +GROUP BY customers.region_id, books.id;" +197,70476,158466,310,3,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.price AS c8028, t2.id +FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id JOIN regions AS t2 ON t1.id = t2.id;" +198,2074,2074,158,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.age AS c2991 +FROM users AS t0;" +199,16360,30140,267,30,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t1.id, t0.id +FROM regions AS t0 CROSS JOIN users AS t1 +WHERE (t1.age BETWEEN 33 AND 33 OR t1.id IN (12, 49, 95));" +200,2428,2428,159,6,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id +FROM employees +WHERE ((employees.id > 66 OR employees.id IN (33)) OR employees.department_id IN (6, 12, 12, 50)) +ORDER BY employees.department_id DESC;" +201,610000,610000,1481,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders;" +202,4879,16712,225,6,transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.id AS c3304, users.id AS c2088 +FROM users JOIN employees ON users.id = employees.id +WHERE ((users.age IN (42, 64) OR users.id < 16) AND users.id != 99) +GROUP BY employees.id, users.id;" +203,822,822,256,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id, books.price +FROM books +GROUP BY books.id, books.price;" +204,69372,155822,327,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c8592, t1.region +FROM customers AS t0 JOIN markets AS t1 ON t0.id = t1.id +GROUP BY t0.id, t1.region;" +205,2016100,9975800,3442,1,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id AS c8725, SUM(t1.id), COUNT(*) +FROM users AS t0 CROSS JOIN orders AS t1 +WHERE (t0.age IN (33, 64) AND t1.id = 156) +GROUP BY t1.id;" +206,61000,61000,471,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c4257 +FROM customers AS t0;" +207,1236600,1931301600,1356,0,transformation 0 JoinCommutativity: 1; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t1.customer_id, t0.department_id +FROM employees AS t0 CROSS JOIN orders AS t1 JOIN customers AS t2 ON t1.id = t2.id +WHERE t0.department_id IS NULL;" +208,2388,3776,246,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price AS c3720, employees.department_id, books.id +FROM employees RIGHT JOIN books ON employees.id = books.id;" +209,69533,156493,311,0,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.region, t1.id, COUNT(t2.id) +FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id FULL JOIN markets AS t2 ON t0.id = t2.id +WHERE t0.id < 1 +GROUP BY t2.region, t1.id;" +210,2390300,2390300,3375,15000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT orders.id, books.id AS c7933, orders.customer_id +FROM books CROSS JOIN orders;" +211,12462200,2984422200,8506,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t2.region_id, t2.id, t0.customer_id +FROM orders AS t0 CROSS JOIN users AS t1 LEFT JOIN customers AS t2 ON t1.id = t2.id +WHERE t2.region_id >= 23;" +212,1306062,1550822,1381,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT orders.id +FROM books LEFT JOIN orders ON books.id = orders.id +GROUP BY orders.id;" +213,1620,1620,151,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM regions AS t0 +WHERE t0.id IN (4, 4, 9, 88) +ORDER BY t0.id ASC;" +214,28496600,51596600,97726,247665,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT orders.id, orders.customer_id, employees.id +FROM orders CROSS JOIN employees CROSS JOIN departments +WHERE orders.customer_id >= 52;" +215,805000,805000,1080,29,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.customer_id +FROM orders AS t0 +WHERE t0.id < 30;" +216,744,744,164,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments +WHERE departments.id IN (1, 3, 4, 60);" +217,72665,437525,314,3,transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t1.region_id +FROM employees AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id +WHERE t1.region_id >= 8 +GROUP BY t0.id, t1.region_id;" +218,1331,1916,204,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price AS c5412, books.id, departments.id AS c9618 +FROM departments LEFT JOIN books ON departments.id = books.id;" +219,5705600,9485600,43305,45000,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.note, t0.customer_id AS c4395 +FROM orders AS t0 CROSS JOIN markets AS t1 CROSS JOIN books AS t2 +WHERE t1.region IS NOT NULL;" +220,17063620,1931305120,30660,45001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id, orders.id, employees.id +FROM employees CROSS JOIN orders RIGHT JOIN customers ON employees.id = customers.id +WHERE (customers.id IN (181) OR employees.id BETWEEN 3 AND 92) +ORDER BY customers.region_id ASC;" +221,1133,1133,141,0,transformation 2 FilterSplit: 1; transformation 3 FilterMerge: 1; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c9777 +FROM regions AS t0 +WHERE ((t0.id <= 5 OR t0.id IN (4, 12)) AND (t0.id = 9 AND t0.id NOT IN (2, 4, 5, 89))) +ORDER BY t0.id ASC;" +222,3764,3764,183,11,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.department_id AS c2878, COUNT(t0.id), COUNT(*) AS c2633 +FROM employees AS t0 +WHERE ((t0.department_id IS NOT NULL OR t0.department_id IS NOT NULL) OR (t0.id > 26 OR t0.id = 52)) +GROUP BY t0.id, t0.department_id;" +223,7431100,7431100,16252,55000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t0.id +FROM orders AS t0 CROSS JOIN employees AS t1;" +224,1342,1342,139,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id +FROM employees;" +225,790056,4786342,1089,11,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id, customers.id AS c4775, employees.department_id AS c6986 +FROM employees LEFT JOIN customers ON employees.id = customers.id JOIN orders ON employees.id = orders.id;" +226,2374,3644,253,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, regions.id, books.price AS c1520 +FROM books LEFT JOIN regions ON books.id = regions.id +WHERE ((regions.id < 10 OR books.price = 77) OR books.price > 60);" +227,1305662,1550422,1986,9,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id, books.price, orders.customer_id AS c7568 +FROM orders FULL JOIN books ON orders.id = books.id +WHERE orders.customer_id = 63;" +228,100831,285106,925,1000,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t1.id AS c1443, t2.region_id AS c2237 +FROM employees AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id CROSS JOIN customers AS t2 +WHERE ((t1.id < 3 OR t1.region = 'AMERICA') AND (t2.region_id IS NULL OR t1.note != 'North, South'));" +229,111140,228445,393,0,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT departments.id +FROM departments LEFT JOIN customers ON departments.id = customers.id CROSS JOIN markets +WHERE markets.region IS NULL +ORDER BY departments.id ASC;" +230,1309060,2258260,2139,5000,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id, users.age AS c5139, orders.id +FROM departments JOIN users ON departments.id = users.id FULL JOIN orders ON users.id = orders.id;" +231,610,610,147,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments;" +232,116575,651154,322,16,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT customers.id, COUNT(*) AS c3789 +FROM customers RIGHT JOIN users ON customers.id = users.id +GROUP BY customers.id +ORDER BY customers.id DESC;" +233,109845,317650,643,1353,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id +FROM departments JOIN markets ON departments.id = markets.id CROSS JOIN customers +WHERE (customers.region_id NOT IN (10, 10) AND (customers.id <= 80 OR departments.id >= 1));" +234,2226,3466,165,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.note +FROM markets AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id;" +235,68524,155544,239,1,transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT t1.region_id AS c5511 +FROM books AS t0 JOIN customers AS t1 ON t0.id = t1.id +WHERE (t0.price NOT BETWEEN 66 AND 94 OR (t0.id > 3 AND t1.region_id = 10));" +236,1311747,4366616,1376,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t1.department_id AS c2338, t0.customer_id +FROM orders AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN users AS t2 ON t1.id = t2.id +ORDER BY t1.department_id ASC;" +237,134541,669120,1866,5010,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id +FROM users FULL JOIN customers ON users.id = customers.id CROSS JOIN regions;" +238,68974,436222,236,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 1; transformation 6 InToOrChain: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT customers.region_id +FROM customers LEFT JOIN employees ON customers.id = employees.id +WHERE (employees.id IN (38) AND customers.region_id != 5);" +239,2690,2690,170,6,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id +FROM employees +WHERE employees.id > 5 +GROUP BY employees.id +ORDER BY employees.id DESC;" +240,95524,95524,484,3,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.price AS c6143, SUM(t2.id) +FROM books AS t0 CROSS JOIN users AS t1 CROSS JOIN departments AS t2 +GROUP BY t0.price;" +241,3759405,3875500,4325,25000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id, customers.region_id, departments.id +FROM customers RIGHT JOIN departments ON customers.id = departments.id CROSS JOIN orders;" +242,3038,5320,370,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT books.id +FROM books CROSS JOIN employees +WHERE (employees.id != 33 AND (employees.id < 1 AND employees.department_id < 12));" +243,678835,4353843,959,0,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, books.price AS c4475, books.id AS c4655 +FROM orders JOIN employees ON orders.id = employees.id RIGHT JOIN books ON employees.id = books.id +WHERE ((orders.id >= 13 AND orders.customer_id != 233) OR (orders.id > 39 AND orders.customer_id <= 359)) +ORDER BY books.id DESC;" +244,4057,12322,431,0,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 4; transformation 5 FilterPushdownThroughJoin: 2; transformation 9 FilterLiftThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT regions.id +FROM regions RIGHT JOIN employees ON regions.id = employees.id LEFT JOIN markets ON employees.id = markets.id +WHERE (regions.id NOT BETWEEN 2 AND 8 AND markets.note = 'Fast lane');" +245,433,433,280,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.note, markets.region, markets.id +FROM markets +WHERE ((markets.region != 'AMERICA' AND markets.region = 'AMERICA') OR markets.id < 2) +ORDER BY markets.note DESC, markets.id ASC, markets.region DESC;" +246,1244,1244,150,9,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id AS c713 +FROM regions +WHERE regions.id BETWEEN 2 AND 45;" +247,670078,1550848,1189,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c7208 +FROM orders AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id +WHERE t0.customer_id NOT IN (244, 365) +GROUP BY t0.id +ORDER BY t0.id ASC;" +248,1311645,6455252,3403,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, COUNT(*), SUM(t0.id) AS c7387 +FROM users AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t1.customer_id = 494 AND t1.customer_id != 145) OR (t0.age > 53 OR t1.customer_id IS NOT NULL)) +GROUP BY t1.id;" +249,3488,5692,177,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region, users.age +FROM markets LEFT JOIN users ON markets.id = users.id +WHERE users.id < 17;" +250,110640,401220,258,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id, customers.region_id +FROM regions LEFT JOIN customers ON regions.id = customers.id;" +251,1307530,4001775,1809,42,implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id, regions.id, orders.id AS c3346 +FROM regions FULL JOIN orders ON regions.id = orders.id +WHERE orders.id <= 42 +ORDER BY regions.id ASC;" +252,4641438,7310933,6345,39,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT orders.id AS c8852, orders.customer_id, books.price AS c8813 +FROM books CROSS JOIN orders FULL JOIN departments ON orders.id = departments.id +WHERE ((orders.customer_id = 163 OR orders.id IN (69, 96, 152)) AND (orders.id IS NOT NULL AND books.id IS NOT NULL)) +ORDER BY orders.id DESC;" +253,81634,3916834,362,40,transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; transformation 9 FilterLiftThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT customers.id +FROM regions CROSS JOIN employees JOIN customers ON employees.id = customers.id +WHERE (employees.id IS NOT NULL AND customers.id >= 65);" +254,2418,3776,166,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.id AS c3977, employees.department_id +FROM markets FULL JOIN employees ON markets.id = employees.id;" +255,1975000,1975000,2178,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, orders.customer_id AS c7286 +FROM orders +GROUP BY orders.id, orders.customer_id;" +256,5474,7496,426,9,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t1.id AS c9218 +FROM markets AS t0 CROSS JOIN employees AS t1 +WHERE t1.department_id IN (5, 12, 33) +GROUP BY t0.id, t1.id;" +257,2652,3922,247,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.price, t0.id AS c7828 +FROM regions AS t0 JOIN books AS t1 ON t0.id = t1.id +GROUP BY t1.price, t0.id;" +258,75739,651158,303,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT customers.region_id +FROM customers JOIN users ON customers.id = users.id RIGHT JOIN markets ON customers.id = markets.id +GROUP BY customers.region_id +ORDER BY customers.region_id DESC;" +259,110500,110500,248,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id +FROM customers +ORDER BY customers.id ASC;" +260,72814,72814,233,118,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id, customers.id +FROM customers +WHERE ((customers.region_id IS NULL OR customers.id >= 198) AND customers.region_id <= 4);" +261,109628,155888,306,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT customers.region_id AS c4278, books.id +FROM books LEFT JOIN customers ON books.id = customers.id +GROUP BY customers.region_id, books.id +ORDER BY books.id ASC;" +262,15960,15960,259,110,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.department_id AS c5186, t0.id, t1.id +FROM regions AS t0 CROSS JOIN employees AS t1;" +263,3077,6483,228,2,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT markets.id, departments.id, regions.id +FROM regions LEFT JOIN departments ON regions.id = departments.id JOIN markets ON regions.id = markets.id +WHERE markets.note != 'Old World' +ORDER BY markets.id ASC, regions.id DESC;" +264,112407,160636,399,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT users.id AS c6920, markets.region AS c5238, users.age AS c1104 +FROM markets RIGHT JOIN users ON markets.id = users.id RIGHT JOIN customers ON markets.id = customers.id;" +265,5081,14820,202,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t0.id AS c2693 +FROM users AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id;" +266,59400,59400,235,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id AS c604, customers.region_id +FROM customers +WHERE customers.id = 135 +ORDER BY customers.id DESC, customers.region_id DESC;" +267,422,422,127,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.id +FROM books +WHERE books.price IS NULL;" +268,76971400,76971400,140145,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id, SUM(orders.customer_id) +FROM orders CROSS JOIN books CROSS JOIN employees +GROUP BY employees.department_id;" +269,366,366,310,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT books.price AS c8205 +FROM books;" +270,610000,610000,1415,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT orders.id AS c7922 +FROM orders;" +271,534702,2250622,1096,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT orders.id AS c8902, departments.id AS c4368, orders.customer_id +FROM orders JOIN departments ON orders.id = departments.id +WHERE ((orders.customer_id = 483 AND departments.id > 4) AND orders.id != 24);" +272,850563,1550563,1892,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id, orders.id, COUNT(*), COUNT(*) +FROM orders RIGHT JOIN books ON orders.id = books.id +WHERE books.id != 1 +GROUP BY orders.customer_id, orders.id;" +273,3256,3256,150,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, SUM(t0.department_id), COUNT(t0.department_id) +FROM employees AS t0 +GROUP BY t0.id;" +274,2066,2066,132,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c7269, t0.age +FROM users AS t0 +WHERE t0.age IN (33, 33);" +275,545750,545750,1554,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.id AS c6877 +FROM orders +WHERE ((orders.customer_id <= 56 OR orders.customer_id != 343) AND (orders.customer_id IN (52, 86) AND orders.customer_id >= 224));" +276,3536700,3536700,2615,11,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age AS c7960, SUM(users.id) +FROM customers CROSS JOIN users +GROUP BY users.age +ORDER BY users.age ASC;" +277,774,774,191,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id +FROM departments AS t0 +WHERE ((t0.id IN (2, 10, 59) OR t0.id IS NULL) AND (t0.id != 5 AND t0.id IS NOT NULL)) +GROUP BY t0.id +ORDER BY t0.id DESC;" +278,4334,8638,211,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id AS c8751 +FROM users AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id +WHERE (t0.age IS NULL OR (t1.id != 5 OR t1.id < 14));" +279,676493,4001263,1252,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 9 FilterLiftThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id, orders.id, COUNT(*), SUM(orders.customer_id) +FROM orders RIGHT JOIN regions ON orders.id = regions.id +WHERE ((regions.id IN (8, 9, 22) AND regions.id <= 6) AND orders.id IN (39, 49, 104, 106)) +GROUP BY regions.id, orders.id;" +280,679538,6451822,1025,0,transformation 5 FilterPushdownThroughJoin: 1; transformation 7 FilterToJoinPredicate: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT orders.customer_id +FROM users FULL JOIN orders ON users.id = orders.id +WHERE ((users.age > 33 AND orders.customer_id < 84) AND (users.id = 15 OR orders.id IN (68, 128, 128, 198)));" +281,433,433,167,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.note, t0.region +FROM markets AS t0 +WHERE ((t0.note = 'unknown' AND t0.id != 1) AND t0.id > 67) +ORDER BY t0.id ASC, t0.note DESC;" +282,2588310,13612010,1854,9,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT employees.id, orders.customer_id AS c5471, books.price +FROM books CROSS JOIN orders LEFT JOIN employees ON orders.id = employees.id +WHERE employees.id > 66;" +283,68793,521733,358,0,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 2; transformation 3 FilterMerge: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 2; transformation 9 FilterLiftThroughJoin: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id, markets.id, books.price AS c2723 +FROM books CROSS JOIN customers FULL JOIN markets ON customers.id = markets.id +WHERE ((markets.id > 55 AND customers.region_id NOT IN (8, 9, 10)) AND markets.region IN ('AMERICA', 'EUROPE')) +ORDER BY books.id DESC, markets.id ASC;" +284,822,822,143,2,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region AS c1153, SUM(t0.id) AS c3569 +FROM markets AS t0 +GROUP BY t0.region +ORDER BY t0.region ASC;" +285,5364,10836,332,0,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id AS c5654, users.id +FROM markets FULL JOIN employees ON markets.id = employees.id CROSS JOIN users +WHERE ((markets.note = 'Fast lane' AND employees.department_id NOT BETWEEN 11 AND 37) AND (users.id != 4 AND users.age <= 443));" +286,109668,225774,393,3,implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.id, COUNT(customers.id) AS c434, COUNT(*) +FROM customers FULL JOIN departments ON customers.id = departments.id +WHERE departments.id BETWEEN 2 AND 4 +GROUP BY customers.id +ORDER BY customers.id DESC;" +287,3181,5072,278,7,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t2.id, t1.id, t0.id +FROM books AS t0 JOIN departments AS t1 ON t0.id = t1.id RIGHT JOIN regions AS t2 ON t1.id = t2.id +WHERE t0.id IS NULL;" +288,5252,15332,178,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id AS c1673 +FROM users JOIN regions ON users.id = regions.id +WHERE (users.age IN (33, 47, 98) OR users.id > 54);" +289,1883,2493,414,3,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, books.price AS c551 +FROM departments CROSS JOIN books +WHERE departments.id = 5 +ORDER BY departments.id DESC;" +290,679184,4353832,1026,2,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; transformation 9 FilterLiftThroughJoin: 2; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.region, t1.department_id, t0.customer_id AS c8493 +FROM orders AS t0 JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id +WHERE t0.customer_id < 239;" +291,12321160,68844660,4406,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, COUNT(orders.id), SUM(regions.id) +FROM users CROSS JOIN orders JOIN regions ON orders.id = regions.id +GROUP BY orders.id;" +292,888,888,175,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.region, t0.id, SUM(t0.id), COUNT(*) +FROM markets AS t0 +GROUP BY t0.region, t0.id +ORDER BY t0.region ASC, t0.id DESC;" +293,2292,5692,281,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.age, t1.id +FROM users AS t0 FULL JOIN books AS t1 ON t0.id = t1.id +WHERE (t0.age = 18 AND (t0.age != 123 AND t1.id <= 89));" +294,848,848,165,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price AS c6589, books.id, COUNT(*) +FROM books +WHERE ((books.price > 77 OR books.id < 3) OR (books.price IN (49, 55, 55, 77) OR books.price IN (26, 66, 66, 68))) +GROUP BY books.price, books.id;" +295,4370,9075,190,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id, SUM(users.age), COUNT(users.id) +FROM users JOIN departments ON users.id = departments.id +GROUP BY users.id;" +296,432,432,144,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region, t0.id AS c2775, t0.note +FROM markets AS t0 +ORDER BY t0.id DESC;" +297,685683,6467110,1084,22,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.department_id +FROM orders AS t0 JOIN users AS t1 ON t0.id = t1.id FULL JOIN employees AS t2 ON t0.id = t2.id +WHERE ((t2.id NOT BETWEEN 4 AND 6 OR t1.age != 21) OR t0.id <= 61);" +298,988,988,153,4,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments +WHERE ((departments.id NOT IN (4, 4, 5, 7) OR departments.id NOT IN (2, 5)) OR (departments.id NOT BETWEEN 3 AND 27 OR departments.id IS NULL));" +299,2455,3843,262,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT books.price, employees.id AS c7128 +FROM employees RIGHT JOIN books ON employees.id = books.id +WHERE ((books.id > 68 OR books.id >= 52) AND (employees.department_id < 6 OR employees.department_id != 1)) +ORDER BY books.price DESC;" +300,1126398,2251983,2203,3,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT orders.id AS c9121 +FROM orders LEFT JOIN departments ON orders.id = departments.id RIGHT JOIN books ON departments.id = books.id +WHERE orders.customer_id <= 497 +ORDER BY orders.id ASC;" +301,3967,6092,289,3,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id, COUNT(markets.id), SUM(markets.id) +FROM users JOIN markets ON users.id = markets.id +GROUP BY users.id;" +302,74482,410460,402,10,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT regions.id, customers.region_id, employees.id +FROM regions FULL JOIN employees ON regions.id = employees.id JOIN customers ON regions.id = customers.id +ORDER BY customers.region_id ASC, employees.id ASC, regions.id ASC;" +303,1832,1832,166,8,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id, employees.department_id +FROM employees +WHERE ((employees.id <= 33 OR employees.id = 3) OR (employees.department_id NOT IN (5) AND employees.id = 67));" +304,1342,1342,138,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id AS c3770 +FROM employees;" +305,1822,1822,173,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c2143, COUNT(*), COUNT(*) +FROM regions +WHERE regions.id IN (3, 10, 89) +GROUP BY regions.id;" +306,3097,6272,186,5,transformation 0 JoinCommutativity: 1; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.id, employees.department_id, SUM(employees.id), SUM(employees.department_id) AS c8963 +FROM employees JOIN departments ON employees.id = departments.id +WHERE (departments.id <= 3 OR (employees.id = 68 OR employees.id <= 6)) +GROUP BY employees.id, employees.department_id;" +307,1307657,1553663,2492,4,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t0.note AS c4138 +FROM markets AS t0 JOIN regions AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t0.id = t2.id +WHERE ((t2.customer_id = 298 OR t0.region = 'AMERICA') OR t0.region != 'AMERICA') +GROUP BY t0.note;" +308,1092,1092,179,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id, COUNT(*) AS c9125 +FROM departments +WHERE (departments.id > 56 OR departments.id = 4) +GROUP BY departments.id +ORDER BY departments.id DESC;" +309,563,563,166,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c7541, COUNT(t0.id) +FROM markets AS t0 +WHERE (t0.note != 'Fast lane' AND (t0.id = 3 OR t0.note = 'Old World')) +GROUP BY t0.id;" +310,797661,7099420,1142,7,transformation 0 JoinCommutativity: 1; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.id, t2.id, SUM(t2.id) +FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id LEFT JOIN orders AS t2 ON t0.id = t2.id +WHERE (t2.customer_id < 243 OR (t2.id >= 38 AND t2.customer_id = 302)) +GROUP BY t1.id, t2.id +ORDER BY t2.id ASC;" +311,675695,1550433,1021,2,transformation 5 FilterPushdownThroughJoin: 1; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region, t1.customer_id AS c7183 +FROM markets AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t0.id <= 3 OR t0.note = 'Fast lane') AND (t0.note != 'North, South' OR t0.note = 'Fast lane')) +ORDER BY t0.region ASC;" +312,1308302,2255560,1399,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t1.id, t0.id +FROM departments AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id JOIN employees AS t2 ON t1.id = t2.id;" +313,678803,2255816,988,2,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id, orders.id AS c4699, orders.customer_id +FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN employees ON departments.id = employees.id +WHERE employees.department_id NOT BETWEEN 5 AND 33;" +314,2840,2840,185,13,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.age, t0.id +FROM users AS t0 +WHERE (t0.age > 5 AND t0.id != 2) +GROUP BY t0.age, t0.id;" +315,2638,5548,220,5,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM regions AS t0 JOIN departments AS t1 ON t0.id = t1.id +WHERE t1.id IS NOT NULL +GROUP BY t0.id;" +316,822,822,162,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id +FROM books +GROUP BY books.id;" +317,1305606,1550366,1945,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id AS c7996, books.price +FROM books FULL JOIN orders ON books.id = orders.id;" +318,4668,7332,236,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT books.price, books.id +FROM books FULL JOIN employees ON books.id = employees.id RIGHT JOIN regions ON employees.id = regions.id +GROUP BY books.price, books.id;" +319,563,563,148,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id AS c9150, books.price, COUNT(books.id) +FROM books +WHERE ((books.price IN (76, 77) AND books.id BETWEEN 1 AND 96) OR books.price IN (55, 66, 77)) +GROUP BY books.id, books.price;" +320,70514,436342,469,11,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT customers.region_id, employees.id +FROM customers JOIN employees ON customers.id = employees.id;" +321,495125,702625,868,10,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c6071, COUNT(*), COUNT(*) AS c7241 +FROM regions AS t0 CROSS JOIN customers AS t1 +WHERE ((t1.id >= 59 OR t0.id IS NULL) AND t1.id = 126) +GROUP BY t0.id;" +322,111676,403466,462,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t1.region_id, t1.id, t2.price +FROM regions AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN books AS t2 ON t0.id = t2.id;" +323,112483,650703,353,3,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t0.region_id +FROM customers AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id +WHERE t1.id < 14 +ORDER BY t0.region_id ASC;" +324,678284,2255244,928,3,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id AS c4187, regions.id +FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN regions ON departments.id = regions.id +WHERE regions.id < 4;" +325,1881,5932,317,4,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 4; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note AS c7216, books.price +FROM departments CROSS JOIN markets LEFT JOIN books ON markets.id = books.id +WHERE ((departments.id != 2 AND markets.note = 'Old World') AND (departments.id BETWEEN 1 AND 5 OR departments.id >= 41));" +326,2074,2074,160,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.age +FROM users AS t0;" +327,6154,6154,269,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.age +FROM users AS t0 +GROUP BY t0.age +ORDER BY t0.age ASC;" +328,14356396,44723198,27321,54310,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.department_id +FROM orders CROSS JOIN employees LEFT JOIN regions ON employees.id = regions.id +WHERE ((employees.id <= 25 OR orders.id NOT BETWEEN 47 AND 184) OR orders.id IS NULL);" +329,3541,5858,367,3,transformation 5 FilterPushdownThroughJoin: 1; transformation 10 ProjectionPushdownThroughJoin: 4; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 3; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM markets AS t0 JOIN users AS t1 ON t0.id = t1.id +WHERE (t0.id != 2 OR t0.id != 1) +ORDER BY t0.id ASC;" +330,104084,158984,1037,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 5; transformation 7 FilterToJoinPredicate: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT books.price, employees.id, COUNT(*) +FROM customers LEFT JOIN books ON customers.id = books.id FULL JOIN employees ON customers.id = employees.id +WHERE ((customers.id > 96 AND employees.department_id != 32) AND (employees.id > 5 OR books.id IS NOT NULL)) +GROUP BY books.price, employees.id +ORDER BY books.price DESC, employees.id DESC;" +331,15545500,1755762000,24523,50490,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.region_id, t2.id +FROM orders AS t0 CROSS JOIN regions AS t1 FULL JOIN customers AS t2 ON t1.id = t2.id;" +332,1610,1610,139,10,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id AS c7728 +FROM regions +WHERE regions.id IS NOT NULL;" +333,1415505,2476425,3742,6,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT departments.id, COUNT(*) +FROM orders FULL JOIN departments ON orders.id = departments.id LEFT JOIN customers ON departments.id = customers.id +GROUP BY departments.id;" +334,1775,1775,152,10,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c1480 +FROM regions +WHERE regions.id IS NOT NULL +ORDER BY regions.id DESC;" +335,433,433,131,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price, books.id +FROM books +WHERE (books.price < 44 AND (books.price IN (55, 55, 66, 66) AND books.price != 77)) +ORDER BY books.price DESC, books.id DESC;" +336,1222,1222,133,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.department_id +FROM employees AS t0 +WHERE ((t0.department_id = 12 AND t0.department_id < 35) AND (t0.id IN (4) OR t0.department_id != 31));" +337,2432,2432,210,10,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.id, users.age +FROM users +WHERE users.age IN (1, 21, 33, 64);" +338,1732,1732,138,9,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM regions AS t0 +WHERE ((t0.id NOT BETWEEN 1 AND 15 OR t0.id < 10) AND (t0.id <= 40 OR t0.id != 3));" +339,744,744,142,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments +WHERE ((departments.id <= 98 OR departments.id > 1) AND (departments.id IS NULL OR departments.id IN (3, 3, 30, 91)));" +340,109333,155563,539,13,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id AS c4276, markets.region AS c7002, COUNT(*), COUNT(*) AS c3968 +FROM customers LEFT JOIN markets ON customers.id = markets.id +WHERE (markets.note = 'Fast lane' OR customers.id IS NOT NULL) +GROUP BY customers.region_id, markets.region;" +341,112731,161092,479,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.id, SUM(customers.region_id) +FROM markets JOIN users ON markets.id = users.id RIGHT JOIN customers ON users.id = customers.id +GROUP BY customers.id;" +342,1222,1222,145,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id, employees.id +FROM employees +WHERE ((employees.id >= 66 OR employees.id != 2) AND (employees.id > 69 AND employees.department_id = 33));" +343,3009,3009,139,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age +FROM users +ORDER BY users.age ASC;" +344,2101,3522,188,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.price AS c605, t0.id AS c1651, t1.id +FROM regions AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id +WHERE (t1.id != 3 OR t1.id = 3);" +345,109172,155432,298,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT books.id, customers.id AS c5626 +FROM books LEFT JOIN customers ON books.id = customers.id +ORDER BY customers.id DESC;" +346,10087,29195,369,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.region, t2.id, COUNT(t1.id) +FROM employees AS t0 CROSS JOIN markets AS t1 FULL JOIN regions AS t2 ON t1.id = t2.id +WHERE t0.department_id = 36 +GROUP BY t1.region, t2.id;" +347,679596,6452676,958,0,transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT users.age AS c6973 +FROM users RIGHT JOIN orders ON users.id = orders.id +WHERE users.id > 94;" +348,347600,525100,2006,1187,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id, t0.id +FROM departments AS t0 CROSS JOIN customers AS t1 +WHERE ((t1.id BETWEEN 28 AND 146 AND t1.id IN (46, 50, 104, 146)) OR (t0.id < 4 AND t1.region_id NOT IN (2, 2, 10, 12))) +ORDER BY t1.id DESC;" +349,2832,5592,209,5,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT regions.id, departments.id AS c6050, COUNT(*), COUNT(*) +FROM regions RIGHT JOIN departments ON regions.id = departments.id +WHERE departments.id IS NOT NULL +GROUP BY regions.id, departments.id +ORDER BY departments.id ASC;" +350,3612,6375,203,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, departments.id AS c3106, COUNT(*) AS c7893 +FROM departments RIGHT JOIN employees ON departments.id = employees.id +GROUP BY employees.department_id, departments.id;" +351,7680023,32852932,14639,261,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.customer_id, t2.id AS c6006, t2.age +FROM orders AS t0 CROSS JOIN departments AS t1 FULL JOIN users AS t2 ON t1.id = t2.id +WHERE (t1.id >= 3 AND (t0.id < 55 OR t0.id < 88));" +352,2676728,5464128,4305,80,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t1.customer_id, t1.id, t0.id +FROM departments AS t0 CROSS JOIN orders AS t1 +WHERE (t1.customer_id IN (426) OR (t1.customer_id IS NULL OR t0.id >= 57));" +353,61000,61000,214,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.region_id +FROM customers AS t0;" +354,2372,2372,196,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.department_id, t0.id +FROM employees AS t0 +WHERE (t0.department_id >= 31 AND (t0.department_id > 34 OR t0.id < 33)) +GROUP BY t0.department_id, t0.id +ORDER BY t0.department_id DESC;" +355,62200,62200,258,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.id, customers.region_id +FROM customers +WHERE customers.id IN (153, 183);" +356,3413,5326,234,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT employees.department_id, departments.id +FROM books LEFT JOIN employees ON books.id = employees.id FULL JOIN departments ON employees.id = departments.id;" +357,1940000,1940000,2422,4914,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id AS c1456, orders.customer_id, COUNT(*), COUNT(orders.customer_id) +FROM orders +WHERE (orders.id > 86 OR orders.customer_id IS NULL) +GROUP BY orders.id, orders.customer_id;" +358,2525,2525,167,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.department_id, t0.id AS c8666, COUNT(*) AS c1170, COUNT(*) +FROM employees AS t0 +WHERE t0.id IS NULL +GROUP BY t0.department_id, t0.id;" +359,2960,2960,174,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id, COUNT(regions.id) AS c1004, COUNT(regions.id) AS c9498 +FROM regions +GROUP BY regions.id;" +360,366,366,122,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.note AS c1949, t0.region +FROM markets AS t0;" +361,130976600,130976600,208219,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t2.department_id, COUNT(t2.id), SUM(t0.id) +FROM departments AS t0 CROSS JOIN orders AS t1 CROSS JOIN employees AS t2 +GROUP BY t2.department_id;" +362,785550822,785550822,807862,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.id AS c6682, markets.note AS c3493 +FROM orders CROSS JOIN customers RIGHT JOIN markets ON customers.id = markets.id +GROUP BY markets.id, markets.note;" +363,433,433,178,3,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price +FROM books +WHERE books.price IS NOT NULL +ORDER BY books.price DESC;" +364,69900,69900,225,44,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id AS c2372 +FROM customers +WHERE customers.region_id IN (4, 89) +ORDER BY customers.region_id DESC;" +365,1373762,1705422,1959,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id AS c4468, t1.customer_id, t0.region +FROM markets AS t0 FULL JOIN orders AS t1 ON t0.id = t1.id JOIN customers AS t2 ON t0.id = t2.id +WHERE t0.id <= 17;" +366,2310,2310,171,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.id, users.age +FROM users +WHERE (users.id = 15 OR (users.id != 3 AND users.id IS NULL));" +367,2074,2074,172,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.age +FROM users AS t0;" +368,6428,12062,276,49,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.id, t1.age +FROM books AS t0 CROSS JOIN users AS t1 +WHERE (t1.id = 96 OR (t1.age != 18 OR t0.price <= 61));" +369,850563,1550563,1020,0,transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c4185, SUM(t0.id) +FROM markets AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t0.id BETWEEN 1 AND 7 OR t0.note != 'North, South') AND (t0.note != 'Old World' AND t0.note IN ('ASIA', 'Old World', 'unknown'))) +GROUP BY t0.id;" +370,422,422,147,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.note AS c2495, markets.id, markets.region +FROM markets +WHERE ((markets.note = 'North, South' AND markets.note != 'North, South') OR markets.note != 'Fast lane');" +371,15960,15960,285,110,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT regions.id +FROM regions CROSS JOIN employees;" +372,1293750,1293750,1728,3214,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM orders AS t0 +WHERE (t0.id <= 95 OR t0.customer_id BETWEEN 55 AND 369) +ORDER BY t0.id DESC;" +373,175500,175500,352,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id, COUNT(customers.region_id) +FROM customers +GROUP BY customers.id;" +374,4689550,6653000,3011,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id AS c9907, COUNT(*) AS c8627 +FROM departments CROSS JOIN orders +WHERE ((orders.id >= 79 OR orders.customer_id IN (63, 185, 226, 480)) AND departments.id IS NULL) +GROUP BY orders.id +ORDER BY orders.id ASC;" +375,957500,957500,1491,4999,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.customer_id AS c3627, t0.id AS c1197 +FROM orders AS t0 +WHERE (t0.customer_id <= 56 OR t0.id > 1);" +376,5325,14288,305,9,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t1.id, t0.id, t1.department_id +FROM regions AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id FULL JOIN departments AS t2 ON t0.id = t2.id +WHERE t0.id NOT IN (3);" +377,77608,77608,570,341,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id, customers.region_id, SUM(customers.region_id), SUM(customers.id) +FROM customers +WHERE ((customers.region_id != 9 OR customers.id = 20) AND (customers.region_id >= 3 AND customers.id > 5)) +GROUP BY customers.id, customers.region_id +ORDER BY customers.id DESC, customers.region_id ASC;" +378,822,822,363,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.region, markets.id AS c5516 +FROM markets +GROUP BY markets.region, markets.id;" +379,1342,1342,687,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id, employees.id +FROM employees;" +380,1692500,1692500,4349,4329,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id +FROM orders +WHERE (orders.id < 86 OR (orders.customer_id IN (21, 71) OR orders.customer_id NOT BETWEEN 371 AND 436)) +ORDER BY orders.customer_id ASC;" +381,6120,10354,289,34,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.age AS c6869, t0.id +FROM users AS t0 CROSS JOIN markets AS t1 +WHERE t1.note != 'Old World';" +382,848,848,182,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c3548, t0.note, SUM(t0.id) AS c5991, COUNT(*) +FROM markets AS t0 +WHERE ((t0.note IN ('Fast lane', 'Fast lane', 'Old World') OR t0.region = 'AMERICA') OR t0.id NOT IN (1, 2, 3)) +GROUP BY t0.id, t0.note;" +383,7457700,14597700,5603,8500,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT customers.id, customers.region_id +FROM regions CROSS JOIN customers CROSS JOIN users +WHERE regions.id < 2;" +384,20830,28390,456,9,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.id, books.id, COUNT(markets.id), COUNT(markets.id) +FROM regions CROSS JOIN books CROSS JOIN markets +WHERE regions.id != 5 +GROUP BY markets.id, books.id;" +385,2432,2432,160,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c9611, t0.age AS c4657 +FROM users AS t0 +WHERE ((t0.id >= 3 OR t0.id IS NULL) AND t0.age IS NULL);" +386,1307748,1553776,1822,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT markets.note, markets.region AS c394 +FROM markets LEFT JOIN orders ON markets.id = orders.id LEFT JOIN employees ON orders.id = employees.id;" +387,1692,3832,245,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT employees.id AS c1393 +FROM employees LEFT JOIN books ON employees.id = books.id +WHERE ((employees.id IS NULL AND books.id IS NOT NULL) AND (books.price = 55 AND employees.department_id = 12));" +388,3650500,3650500,11085,25000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT orders.customer_id AS c3285 +FROM orders CROSS JOIN departments;" +389,677641,1553832,987,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 10 ProjectionPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 3; implementation 6 ImplementHashJoin: 2,"SELECT employees.id AS c6990 +FROM orders LEFT JOIN markets ON orders.id = markets.id JOIN employees ON orders.id = employees.id +WHERE markets.id < 3;" +390,113850,160080,1873,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note AS c1438, customers.region_id, markets.id AS c7869 +FROM customers LEFT JOIN markets ON customers.id = markets.id CROSS JOIN regions;" +391,1306995,2251590,1424,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT orders.customer_id AS c6961, departments.id +FROM departments LEFT JOIN orders ON departments.id = orders.id +GROUP BY orders.customer_id, departments.id +ORDER BY departments.id DESC;" +392,43248,62366,679,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id AS c8803, SUM(users.id), SUM(employees.id) +FROM users CROSS JOIN employees LEFT JOIN markets ON employees.id = markets.id +WHERE ((markets.id >= 18 OR users.id = 4) OR employees.id >= 2) +GROUP BY employees.department_id +ORDER BY employees.department_id ASC;" +393,93800000,291050000,224105,384231,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 2; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT orders.customer_id, customers.id +FROM orders CROSS JOIN customers +WHERE (orders.id IS NOT NULL AND (orders.customer_id <= 190 AND customers.region_id IN (1, 5, 8, 9)));" +394,1832,1832,189,8,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM employees AS t0 +WHERE t0.department_id NOT IN (6, 11, 32, 94);" +395,2390300,2390300,10768,15000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT orders.id, orders.customer_id, books.price AS c2061 +FROM orders CROSS JOIN books;" +396,422,422,131,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.region, markets.id, markets.note +FROM markets +WHERE markets.region IS NULL;" +397,175500,175500,363,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.region_id, SUM(t0.region_id) +FROM customers AS t0 +GROUP BY t0.id, t0.region_id;" +398,69916,401976,271,10,transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT regions.id, customers.id, customers.region_id +FROM regions JOIN customers ON regions.id = customers.id +WHERE (customers.id NOT BETWEEN 18 AND 150 OR regions.id IN (1, 9, 10, 63));" +399,1092,1092,246,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id AS c2818, COUNT(departments.id), COUNT(departments.id) +FROM departments +WHERE departments.id <= 1 +GROUP BY departments.id +ORDER BY departments.id DESC;" +400,2226,3466,284,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note AS c7054, markets.region, regions.id +FROM markets FULL JOIN regions ON markets.id = regions.id;" +401,112878,438256,453,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id, customers.id +FROM customers FULL JOIN employees ON customers.id = employees.id +GROUP BY customers.region_id, customers.id;" +402,1456314,175572814,2560,2194,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id, orders.customer_id AS c5129, customers.id AS c8733 +FROM customers FULL JOIN orders ON customers.id = orders.id +WHERE (orders.customer_id > 283 AND (orders.customer_id IS NOT NULL OR orders.customer_id IS NULL));" +403,1246000,1246000,1346,44,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, COUNT(*), COUNT(t0.customer_id) AS c7688 +FROM orders AS t0 +WHERE t0.customer_id IN (15, 185, 359, 461) +GROUP BY t0.id;" +404,1122,1122,134,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id AS c6964 +FROM regions +WHERE (regions.id = 86 AND (regions.id IN (5, 9) AND regions.id < 9));" +405,610,610,130,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments;" +406,6451,16190,217,9,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.id AS c2861, t0.id +FROM regions AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id +WHERE t1.id IS NOT NULL +GROUP BY t1.id, t0.id +ORDER BY t0.id DESC;" +407,111830,405275,331,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT customers.id, customers.region_id, departments.id AS c3112 +FROM customers FULL JOIN regions ON customers.id = regions.id JOIN departments ON regions.id = departments.id +ORDER BY departments.id ASC, customers.id DESC, customers.region_id ASC;" +408,4788,10132,363,7,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id AS c868, t2.region +FROM users AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN markets AS t2 +WHERE ((t1.id <= 8 OR t0.age IN (64)) AND (t2.id = 1 OR t1.id = 3));" +409,113508,650692,318,1,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age AS c3766, customers.id AS c5291, markets.id +FROM users LEFT JOIN customers ON users.id = customers.id LEFT JOIN markets ON customers.id = markets.id +WHERE markets.id NOT IN (1, 1, 1, 3);" +410,422,422,152,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.region, t0.note, t0.id AS c8799 +FROM markets AS t0 +WHERE (t0.id IN (1) OR (t0.note IN ('AMERICA', 'Fast lane', 'North, South', 'unknown') AND t0.note != 'Old World'));" +411,822,822,137,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.price, t0.id, COUNT(*), SUM(t0.id) AS c6022 +FROM books AS t0 +GROUP BY t0.price, t0.id;" +412,3645,5814,228,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, books.price +FROM books LEFT JOIN users ON books.id = users.id +WHERE books.price NOT BETWEEN 66 AND 66;" +413,2398822,2721522,2134,1500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.id, books.price, COUNT(users.age) +FROM users CROSS JOIN customers RIGHT JOIN books ON users.id = books.id +GROUP BY customers.id, books.price;" +414,4551000,8751000,2981,920,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT regions.id +FROM orders CROSS JOIN regions +WHERE orders.id <= 92;" +415,6102,12200,244,6,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t0.id, t1.id +FROM employees AS t0 JOIN regions AS t1 ON t0.id = t1.id +GROUP BY t0.id, t1.id +ORDER BY t0.id DESC;" +416,1122,1362,330,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.note, books.id, markets.id +FROM books RIGHT JOIN markets ON books.id = markets.id +ORDER BY books.id DESC;" +417,785942,1705822,1166,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.price AS c5776, t0.id AS c5445, COUNT(t1.price) +FROM customers AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id JOIN orders AS t2 ON t1.id = t2.id +GROUP BY t1.price, t0.id;" +418,1306128,1550888,1442,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.id, t0.customer_id, COUNT(*) +FROM orders AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id +GROUP BY t1.id, t0.customer_id +ORDER BY t0.customer_id DESC;" +419,112961,233260,333,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t0.id AS c6883, t2.id +FROM departments AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id JOIN users AS t2 ON t1.id = t2.id;" +420,894875,894875,1916,2330,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM orders AS t0 +WHERE (t0.customer_id >= 270 AND (t0.customer_id IN (108, 315, 364) OR t0.id > 11)) +ORDER BY t0.id ASC;" +421,4298,6932,201,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT markets.note, markets.region +FROM markets FULL JOIN regions ON markets.id = regions.id JOIN employees ON regions.id = employees.id +WHERE ((regions.id > 39 AND employees.department_id IS NOT NULL) OR (markets.region IS NOT NULL AND markets.id != 47));" +422,932,1363,208,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id AS c7037, t0.region AS c4401, t0.id AS c405 +FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id +WHERE t0.note = 'Old World' +ORDER BY t0.id DESC;" +423,2690,2690,255,15,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT markets.note, departments.id, markets.id +FROM departments CROSS JOIN markets;" +424,682435,4014820,964,10,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 2,"SELECT orders.customer_id AS c6591, users.age AS c6962, users.id AS c7318 +FROM users JOIN regions ON users.id = regions.id JOIN orders ON users.id = orders.id;" +425,112495,647074,334,501,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, t1.age, t0.region_id AS c768 +FROM customers AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id;" +426,652500,652500,1144,102,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE orders.id BETWEEN 43 AND 144;" +427,2676,2676,168,7,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.age, users.id AS c2712 +FROM users +WHERE users.id >= 11;" +428,1252,1658,481,3,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT markets.id +FROM books CROSS JOIN markets +WHERE books.id IN (2);" +429,72226,160616,507,3,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id, COUNT(*) +FROM customers AS t0 JOIN books AS t1 ON t0.id = t1.id CROSS JOIN departments AS t2 +WHERE (t2.id <= 1 OR t1.id IS NULL) +GROUP BY t0.region_id;" +430,1377,2113,260,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id AS c2823, t1.id AS c3548, SUM(t1.price), COUNT(*) AS c5225 +FROM departments AS t0 RIGHT JOIN books AS t1 ON t0.id = t1.id +WHERE t1.price > 55 +GROUP BY t0.id, t1.id;" +431,1305662,1550422,1240,2,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, orders.id, books.price AS c8011 +FROM books LEFT JOIN orders ON books.id = orders.id +WHERE ((books.id > 1 OR books.price BETWEEN 66 AND 77) OR (books.price <= 66 AND orders.id = 187));" +432,14852,48496,400,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id, books.id, COUNT(users.id) +FROM users CROSS JOIN books FULL JOIN employees ON users.id = employees.id +WHERE (books.id > 3 AND (users.age IS NOT NULL OR employees.id BETWEEN 30 AND 49)) +GROUP BY users.id, books.id;" +433,3028,3028,320,9,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.age +FROM users AS t0 +WHERE t0.age >= 64 +ORDER BY t0.id DESC;" +434,68783,155433,264,0,transformation 0 JoinCommutativity: 1; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.note +FROM customers AS t0 JOIN markets AS t1 ON t0.id = t1.id +WHERE (t1.note IS NULL OR t0.id = 123) +ORDER BY t1.note DESC;" +435,3042,3042,218,9,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.id +FROM users +WHERE (users.id IS NULL OR users.age IN (5, 12, 33, 64));" +436,3547,14722,183,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT t1.id +FROM users AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id +WHERE t1.id = 8;" +437,3432,4918,250,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT t1.id AS c9930, SUM(t0.id), COUNT(t1.id) AS c171 +FROM markets AS t0 FULL JOIN books AS t1 ON t0.id = t1.id RIGHT JOIN regions AS t2 ON t1.id = t2.id +GROUP BY t1.id +ORDER BY t1.id DESC;" +438,61346,61346,258,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.id +FROM customers +WHERE ((customers.region_id NOT BETWEEN 2 AND 19 AND customers.id < 36) AND customers.id > 39);" +439,1306015,2250610,1289,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id AS c4906, orders.customer_id +FROM orders RIGHT JOIN departments ON orders.id = departments.id;" +440,225000,225000,369,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id, COUNT(*), COUNT(*) AS c6478 +FROM customers +GROUP BY customers.id +ORDER BY customers.id ASC;" +441,1220,1220,149,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions;" +442,3633,5692,185,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region AS c3227, users.age +FROM users FULL JOIN markets ON users.id = markets.id +WHERE (users.id IN (7, 15, 96) AND (users.age IN (33) OR markets.note != 'North, South'));" +443,366,366,149,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT books.price AS c5763 +FROM books;" +444,1278,1518,206,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.price, t1.id +FROM markets AS t0 FULL JOIN books AS t1 ON t0.id = t1.id +WHERE ((t1.price >= 55 AND t0.id IS NULL) OR (t0.note != 'North, South' OR t0.region != 'EUROPE')) +ORDER BY t1.price DESC;" +445,3073124,4408024,2652,5000,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t2.id, t1.region_id, t1.id AS c770 +FROM regions AS t0 CROSS JOIN customers AS t1 CROSS JOIN books AS t2 +WHERE (t2.id > 34 OR t2.id IN (2)) +ORDER BY t1.id ASC;" +446,111332,436710,455,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, t1.region_id +FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id +WHERE t0.id != 14;" +447,2320,3126,261,2,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.region, COUNT(t0.id), COUNT(*) AS c7336 +FROM books AS t0 CROSS JOIN markets AS t1 +WHERE (t1.id IS NOT NULL OR (t0.id <= 2 AND t0.price IS NOT NULL)) +GROUP BY t1.region +ORDER BY t1.region DESC;" +448,2778,4232,391,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, SUM(books.price) +FROM employees FULL JOIN books ON employees.id = books.id +GROUP BY books.id;" +449,1363,1363,160,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, COUNT(*) AS c6748 +FROM employees AS t0 +WHERE ((t0.department_id <= 31 OR t0.id BETWEEN 5 AND 49) AND (t0.department_id IS NULL AND t0.department_id BETWEEN 5 AND 31)) +GROUP BY t0.id;" +450,5219,5219,162,16,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id +FROM users +GROUP BY users.id;" +451,633,633,194,4,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id +FROM departments +WHERE ((departments.id BETWEEN 4 AND 4 OR departments.id <= 4) AND departments.id <= 47) +ORDER BY departments.id DESC;" +452,1310637,6454068,1484,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id AS c3185 +FROM orders RIGHT JOIN users ON orders.id = users.id +WHERE (users.age IN (17, 34, 64) OR (users.id < 12 AND orders.id IS NULL)) +GROUP BY users.id +ORDER BY users.id ASC;" +453,1220,1220,129,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions;" +454,1311205,6455219,1428,16,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, COUNT(*) +FROM orders AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id +GROUP BY t1.id;" +455,3072,4706,208,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT employees.id AS c8673 +FROM books LEFT JOIN employees ON books.id = employees.id JOIN markets ON books.id = markets.id;" +456,44507,154580,433,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.department_id, t0.age +FROM users AS t0 CROSS JOIN employees AS t1 RIGHT JOIN regions AS t2 ON t0.id = t2.id +WHERE ((t0.id IN (13, 79) OR t2.id >= 44) AND t2.id IS NULL) +ORDER BY t0.age DESC;" +457,957500,957500,1329,4999,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.id +FROM orders +WHERE (orders.id != 33 OR orders.customer_id > 461);" +458,2074,2074,152,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.age, t0.id AS c1193 +FROM users AS t0;" +459,685169,19762099,1076,55,transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM departments AS t0 CROSS JOIN employees AS t1 RIGHT JOIN orders AS t2 ON t1.id = t2.id +WHERE t1.id <= 91 +ORDER BY t0.id DESC;" +460,682089,6453009,897,17,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.customer_id, t0.age, t1.id +FROM users AS t0 JOIN orders AS t1 ON t0.id = t1.id +ORDER BY t1.customer_id ASC;" +461,1308264,4003644,2072,0,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT regions.id AS c8461 +FROM orders LEFT JOIN regions ON orders.id = regions.id RIGHT JOIN books ON regions.id = books.id +WHERE books.id NOT BETWEEN 1 AND 14;" +462,60649,409922,390,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 9 FilterLiftThroughJoin: 2; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 2,"SELECT regions.id, employees.department_id AS c5017, customers.region_id +FROM customers JOIN regions ON customers.id = regions.id RIGHT JOIN employees ON regions.id = employees.id +WHERE (employees.id < 54 AND customers.id = 67);" +463,2074,2074,149,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT users.id AS c7578 +FROM users;" +464,1361,1916,208,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id, markets.id, markets.region +FROM departments LEFT JOIN markets ON departments.id = markets.id;" +465,3256,3256,419,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.department_id AS c3122, COUNT(t0.id) AS c9921 +FROM employees AS t0 +GROUP BY t0.department_id;" +466,61000,61000,241,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM customers AS t0;" +467,5889,16616,256,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.age AS c4980 +FROM users AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +ORDER BY t0.age DESC;" +468,3664,3664,167,9,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM regions AS t0 +WHERE (t0.id > 5 OR (t0.id NOT IN (1, 3, 9, 96) OR t0.id NOT IN (1, 5))) +GROUP BY t0.id;" +469,676872,1550822,939,3,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c3150, COUNT(t1.customer_id) +FROM markets AS t0 JOIN orders AS t1 ON t0.id = t1.id +GROUP BY t0.id;" +470,2228125,2228125,2822,5000,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, COUNT(t0.id), COUNT(t0.id) +FROM orders AS t0 +WHERE ((t0.customer_id IS NOT NULL OR t0.customer_id < 310) OR t0.id <= 5) +GROUP BY t0.id;" +471,348050982,1135550932,92238,1500,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id +FROM customers CROSS JOIN orders JOIN departments ON orders.id = departments.id +WHERE departments.id NOT IN (3, 4, 33, 52) +ORDER BY customers.region_id DESC;" +472,1363,1363,159,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.id +FROM employees +WHERE (employees.department_id != 19 AND employees.id IN (2, 5)) +GROUP BY employees.id;" +473,6650300,6650300,8463,3,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.price +FROM orders AS t0 CROSS JOIN books AS t1 +GROUP BY t1.price;" +474,822,822,164,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price AS c6021, books.id AS c591 +FROM books +GROUP BY books.price, books.id;" +475,563,563,186,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price, SUM(books.price) AS c2521 +FROM books +WHERE books.price = 66 +GROUP BY books.price;" +476,2690,2690,298,15,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT markets.region, markets.note +FROM markets CROSS JOIN departments;" +477,3322,5213,237,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT books.id, COUNT(books.price) +FROM regions LEFT JOIN books ON regions.id = books.id FULL JOIN departments ON regions.id = departments.id +WHERE books.id IS NOT NULL +GROUP BY books.id;" +478,1377,2113,241,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT books.id, books.price AS c3187, COUNT(books.price), SUM(departments.id) +FROM departments JOIN books ON departments.id = books.id +WHERE books.id <= 98 +GROUP BY books.id, books.price;" +479,3364,8164,334,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT regions.id, departments.id +FROM departments CROSS JOIN regions +WHERE (departments.id >= 3 AND departments.id > 5);" +480,2979,5692,171,2,transformation 5 FilterPushdownThroughJoin: 1; transformation 6 InToOrChain: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT markets.id, markets.region, users.age +FROM markets JOIN users ON markets.id = users.id +WHERE (markets.note != 'ASIA' AND markets.id IN (1, 3, 89));" +481,4960163,9590890,14129,30000,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id AS c5950, t2.id AS c7759 +FROM users AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN orders AS t2 +WHERE t1.id IS NOT NULL;" +482,942989,2566838,2592,5000,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.department_id AS c6048, markets.region, markets.note +FROM markets LEFT JOIN employees ON markets.id = employees.id CROSS JOIN orders +WHERE (markets.id <= 2 AND (employees.id = 68 OR markets.region != 'AMERICA'));" +483,1307418,2252623,1534,3,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id, COUNT(*) AS c2015 +FROM orders AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE t1.id = 3 +GROUP BY t2.id;" +484,8367,19707,314,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.department_id +FROM departments AS t0 JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN users AS t2 +WHERE t1.id BETWEEN 43 AND 48 +ORDER BY t1.department_id DESC;" +485,744,744,158,5,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id +FROM departments +WHERE departments.id <= 96;" +486,1120,1120,156,5,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id AS c4502 +FROM departments +WHERE ((departments.id IS NOT NULL OR departments.id <= 2) OR (departments.id > 3 OR departments.id IN (1, 5))) +ORDER BY departments.id ASC;" +487,7676202,8350932,11659,15000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id AS c1414, t2.id AS c4044 +FROM orders AS t0 CROSS JOIN departments AS t1 RIGHT JOIN books AS t2 ON t1.id = t2.id +ORDER BY t1.id DESC;" +488,805000,805000,1406,4992,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE orders.customer_id != 133;" +489,2140,2140,184,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c266 +FROM regions +WHERE ((regions.id = 63 AND regions.id IN (1, 36)) OR (regions.id NOT IN (7) AND regions.id IS NULL)) +GROUP BY regions.id;" +490,5689,9112,367,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT markets.region AS c2686, users.age AS c2053, employees.department_id +FROM users RIGHT JOIN markets ON users.id = markets.id RIGHT JOIN employees ON markets.id = employees.id +ORDER BY users.age DESC, employees.department_id DESC, markets.region DESC;" +491,2824,10532,229,4,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 1; transformation 6 InToOrChain: 1; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT employees.id, regions.id AS c47 +FROM regions LEFT JOIN employees ON regions.id = employees.id +WHERE employees.id NOT IN (3, 6, 6, 75);" +492,69422,405122,358,0,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 5; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT regions.id AS c9972 +FROM customers LEFT JOIN regions ON customers.id = regions.id JOIN departments ON regions.id = departments.id +WHERE (departments.id IN (8, 31, 37) AND regions.id = 1);" +493,3644,5703,230,1,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.age AS c4963, t0.note +FROM markets AS t0 FULL JOIN users AS t1 ON t0.id = t1.id +WHERE t0.region != 'AMERICA' +ORDER BY t0.note ASC;" +494,3647,5538,301,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT regions.id, books.price, SUM(books.price) +FROM departments FULL JOIN books ON departments.id = books.id FULL JOIN regions ON books.id = regions.id +GROUP BY regions.id, books.price +ORDER BY books.price ASC;" +495,110392,226982,468,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT t2.region +FROM departments AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN markets AS t2 ON t0.id = t2.id +ORDER BY t2.region ASC;" +496,6093,18632,221,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT employees.department_id, books.price +FROM users LEFT JOIN employees ON users.id = employees.id LEFT JOIN books ON users.id = books.id +ORDER BY books.price ASC;" +497,4370,9075,188,5,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.age, t1.id, SUM(t0.id) AS c2929 +FROM departments AS t0 JOIN users AS t1 ON t0.id = t1.id +GROUP BY t1.age, t1.id;" +498,2024,3522,169,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 1; transformation 6 InToOrChain: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT regions.id AS c3913, markets.region +FROM regions JOIN markets ON regions.id = markets.id +WHERE ((markets.note = 'Fast lane' AND markets.id IN (1, 3, 51)) OR markets.region IN ('AMERICA', 'EUROPE', 'EUROPE'));" +499,1640,1640,244,4,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, COUNT(*), COUNT(departments.id) +FROM departments +WHERE ((departments.id IN (2, 58, 99) OR departments.id >= 2) OR departments.id >= 2) +GROUP BY departments.id;" +500,3039,8394,362,4,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 2; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id, users.age AS c9399, departments.id +FROM users JOIN departments ON users.id = departments.id +WHERE (users.age NOT IN (21, 22, 123) AND (departments.id < 4 OR users.id <= 15));" +501,4641630,7311075,7972,15000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id, t0.id, t0.note +FROM markets AS t0 CROSS JOIN orders AS t1 LEFT JOIN departments AS t2 ON t1.id = t2.id +ORDER BY t1.id ASC, t0.id DESC, t0.note DESC;" +502,910557480,3235555219,1646785,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id AS c3228, t0.id +FROM orders AS t0 CROSS JOIN customers AS t1 FULL JOIN users AS t2 ON t0.id = t2.id +GROUP BY t2.id, t0.id;" +503,1048,1048,174,5,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, SUM(t0.id), COUNT(*) +FROM departments AS t0 +WHERE t0.id IS NOT NULL +GROUP BY t0.id;" +504,8676000,12876000,4179,6910,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.customer_id +FROM orders AS t0 CROSS JOIN regions AS t1 +WHERE t0.customer_id <= 74 +ORDER BY t0.id ASC, t0.customer_id DESC;" +505,588,588,156,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.id, markets.region, markets.note +FROM markets +WHERE ((markets.id <= 3 OR markets.note != 'unknown') OR markets.id IN (2, 68)) +ORDER BY markets.note ASC;" +506,5558,5558,346,33,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT markets.region, employees.id AS c412, employees.department_id +FROM markets CROSS JOIN employees;" +507,3612,6540,214,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.id, COUNT(departments.id), COUNT(employees.department_id) +FROM departments RIGHT JOIN employees ON departments.id = employees.id +GROUP BY employees.id +ORDER BY employees.id DESC;" +508,4300,12463,243,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.department_id, SUM(t2.price) AS c7329 +FROM regions AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN books AS t2 ON t1.id = t2.id +WHERE (t1.id BETWEEN 3 AND 14 OR t1.department_id IN (1, 3, 33)) +GROUP BY t1.department_id;" +509,107641,416025,432,8,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT users.id, users.age, COUNT(*), COUNT(users.age) +FROM regions RIGHT JOIN customers ON regions.id = customers.id RIGHT JOIN users ON regions.id = users.id +WHERE customers.id != 8 +GROUP BY users.id, users.age;" +510,8645,29395,414,18,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.note, employees.id AS c4181 +FROM markets CROSS JOIN regions LEFT JOIN employees ON regions.id = employees.id +WHERE employees.department_id < 54 +ORDER BY markets.note DESC;" +511,1833,1833,172,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.age +FROM users AS t0 +WHERE ((t0.id = 3 AND t0.id IS NULL) AND t0.id BETWEEN 6 AND 95) +ORDER BY t0.age DESC;" +512,3009,3009,153,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c74, t0.age +FROM users AS t0 +ORDER BY t0.id ASC, t0.age DESC;" +513,1342,1342,123,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.department_id AS c4862, t0.id +FROM employees AS t0;" +514,1480714,175597214,2113,153,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.region_id AS c5690, customers.id, orders.customer_id AS c2293 +FROM customers RIGHT JOIN orders ON customers.id = orders.id +WHERE ((orders.id IS NULL OR customers.id = 97) OR orders.customer_id <= 14);" +515,822,822,151,2,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.region, COUNT(markets.id), COUNT(*) +FROM markets +GROUP BY markets.region;" +516,4314,6876,225,3,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 2; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT regions.id AS c4858, markets.note, markets.id +FROM employees LEFT JOIN markets ON employees.id = markets.id JOIN regions ON markets.id = regions.id;" +517,5471,15210,204,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.age AS c8314, t1.id, t0.id +FROM regions AS t0 FULL JOIN users AS t1 ON t0.id = t1.id +WHERE t0.id IS NOT NULL;" +518,1306180,2250775,2519,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT orders.customer_id +FROM orders LEFT JOIN departments ON orders.id = departments.id +ORDER BY orders.customer_id DESC;" +519,3794,7253,267,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id, t0.id +FROM users AS t0 JOIN books AS t1 ON t0.id = t1.id LEFT JOIN departments AS t2 ON t0.id = t2.id +WHERE t1.id IS NULL +ORDER BY t2.id DESC, t0.id DESC;" +520,422,422,151,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.price +FROM books +WHERE (books.price != 55 OR (books.price BETWEEN 66 AND 66 AND books.id < 1));" +521,422,422,143,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.id AS c5535, books.price +FROM books +WHERE ((books.id < 3 OR books.id IS NULL) AND books.id IS NOT NULL);" +522,1342,1342,131,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM employees AS t0;" +523,10286,11526,343,170,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t2.id +FROM markets AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id CROSS JOIN users AS t2;" +524,544,544,131,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.price +FROM books +WHERE books.price NOT IN (77);" +525,152440,477818,448,187,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id AS c7276, users.age, employees.department_id +FROM customers RIGHT JOIN employees ON customers.id = employees.id CROSS JOIN users +ORDER BY employees.department_id ASC;" +526,2320,2320,131,11,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM employees AS t0 +WHERE ((t0.id != 2 AND t0.department_id < 3) OR (t0.department_id NOT IN (1, 33) OR t0.department_id NOT IN (31)));" +527,20391700,27531700,21735,16,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id, users.age, COUNT(*) AS c3042, COUNT(users.age) +FROM orders CROSS JOIN users +WHERE orders.id IS NOT NULL +GROUP BY users.id, users.age;" +528,563,563,181,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.region AS c5933 +FROM markets AS t0 +WHERE ((t0.id != 1 AND t0.region = 'AMERICA') AND (t0.id IS NOT NULL OR t0.region = 'EUROPE')) +GROUP BY t0.id, t0.region;" +529,1415835,2476590,3712,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT orders.id, orders.customer_id, COUNT(*) +FROM departments FULL JOIN orders ON departments.id = orders.id FULL JOIN customers ON orders.id = customers.id +GROUP BY orders.id, orders.customer_id +ORDER BY orders.id DESC, orders.customer_id DESC;" +530,920550000,920550000,1297662,2500000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id AS c9140, customers.region_id, customers.id +FROM customers CROSS JOIN orders +ORDER BY customers.region_id ASC, customers.id ASC, orders.customer_id DESC;" +531,570413,2255572,1095,0,transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id, orders.id AS c4291, employees.department_id +FROM departments JOIN orders ON departments.id = orders.id LEFT JOIN employees ON orders.id = employees.id +WHERE orders.id IN (99);" +532,633,633,143,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM departments AS t0 +WHERE (t0.id < 2 AND (t0.id IN (1, 1, 5) OR t0.id >= 5)) +ORDER BY t0.id ASC;" +533,7775500,7775500,7589,25000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c1841, t1.id +FROM departments AS t0 CROSS JOIN orders AS t1 +ORDER BY t0.id ASC;" +534,5903,17315,226,6,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.age AS c2013, COUNT(*) AS c86, COUNT(employees.department_id) +FROM employees JOIN users ON employees.id = users.id +WHERE users.id != 10 +GROUP BY users.age +ORDER BY users.age ASC;" +535,1220,1220,126,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM regions AS t0;" +536,16891862,17771532,23633,55000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT orders.customer_id +FROM employees CROSS JOIN orders FULL JOIN markets ON orders.id = markets.id +ORDER BY orders.customer_id ASC;" +537,121968,668932,851,5,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 5; transformation 5 FilterPushdownThroughJoin: 4; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.region_id, t0.age, SUM(t0.id), COUNT(t2.id) AS c2707 +FROM users AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id CROSS JOIN regions AS t2 +WHERE ((t1.region_id >= 6 OR t0.age != 22) AND (t0.age >= 64 AND t0.age IN (22, 64))) +GROUP BY t1.region_id, t0.age;" +538,932,1363,195,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT books.id, markets.region +FROM markets RIGHT JOIN books ON markets.id = books.id +WHERE markets.region = 'AMERICA' +ORDER BY markets.region DESC, books.id DESC;" +539,11604,23544,239,22,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT regions.id +FROM employees CROSS JOIN regions +WHERE regions.id NOT BETWEEN 2 AND 9;" +540,678650,1554258,1074,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.price +FROM orders AS t0 JOIN books AS t1 ON t0.id = t1.id FULL JOIN employees AS t2 ON t0.id = t2.id +WHERE ((t0.customer_id > 224 AND t2.id NOT IN (2, 66, 67)) OR t0.customer_id < 119) +GROUP BY t1.price;" +541,7022,9744,836,11,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id, COUNT(t1.department_id) AS c9704, COUNT(t1.department_id) +FROM books AS t0 CROSS JOIN employees AS t1 +WHERE t0.id <= 2 +GROUP BY t1.id;" +542,115640,650219,432,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id AS c2902 +FROM customers LEFT JOIN users ON customers.id = users.id +GROUP BY customers.region_id;" +543,3449,5392,225,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT books.price AS c9867, employees.department_id +FROM departments RIGHT JOIN books ON departments.id = books.id FULL JOIN employees ON departments.id = employees.id +ORDER BY employees.department_id DESC, books.price DESC;" +544,3332,5282,327,15,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.note AS c8307, departments.id, books.price AS c1104 +FROM markets JOIN books ON markets.id = books.id CROSS JOIN departments +WHERE (departments.id >= 24 OR (markets.id BETWEEN 1 AND 2 OR books.id <= 96)) +ORDER BY departments.id DESC, books.price ASC, markets.note DESC;" +545,574,574,419,2,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.price AS c637, t0.id AS c2803 +FROM books AS t0 +WHERE t0.id IN (1, 2, 24) +GROUP BY t0.price, t0.id +ORDER BY t0.id ASC, t0.price ASC;" +546,366,366,131,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.note, t0.id AS c5805 +FROM markets AS t0;" +547,159512,159512,395,329,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id, customers.region_id, COUNT(customers.id), COUNT(customers.id) AS c8210 +FROM customers +WHERE (customers.id < 119 OR (customers.region_id <= 6 AND customers.region_id != 10)) +GROUP BY customers.id, customers.region_id;" +548,433,433,143,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id AS c7062, books.price AS c5593 +FROM books +WHERE books.price <= 66 +ORDER BY books.price DESC;" +549,515777,1057204,2573,7000,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id AS c529 +FROM employees RIGHT JOIN users ON employees.id = users.id CROSS JOIN customers +WHERE ((employees.department_id != 65 AND customers.region_id >= 8) OR users.id < 15);" +550,112495,647074,363,501,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id +FROM users FULL JOIN customers ON users.id = customers.id;" +551,125278,1217026,451,33,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id AS c8412, t1.price AS c8263, COUNT(t1.id) +FROM employees AS t0 CROSS JOIN books AS t1 LEFT JOIN customers AS t2 ON t0.id = t2.id +GROUP BY t0.id, t1.price;" +552,61000,61000,264,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT customers.id +FROM customers;" +553,2585,3973,222,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.department_id, t0.price, COUNT(*) AS c1800 +FROM books AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id +WHERE (t1.department_id IS NOT NULL AND (t0.price IS NOT NULL OR t0.id IN (3))) +GROUP BY t1.department_id, t0.price;" +554,686187,175725622,1888,0,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 2,"SELECT customers.id +FROM orders JOIN customers ON orders.id = customers.id RIGHT JOIN departments ON customers.id = departments.id +WHERE (orders.id IN (22, 50, 61, 149) AND orders.id IS NULL);" +555,563,563,171,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.note +FROM markets AS t0 +WHERE (t0.id < 1 AND (t0.region = 'AMERICA' AND t0.id BETWEEN 2 AND 3)) +GROUP BY t0.note;" +556,23036435700,23036435700,24496249,10,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id +FROM users CROSS JOIN customers CROSS JOIN orders +GROUP BY customers.region_id;" +557,110500,110500,396,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id, customers.id +FROM customers +ORDER BY customers.region_id ASC;" +558,3577,5636,167,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.region +FROM markets AS t0 FULL JOIN users AS t1 ON t0.id = t1.id;" +559,1220,1220,126,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions;" +560,672828,12055320,1633,27,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 5; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT employees.department_id, employees.id AS c3726, books.id +FROM books CROSS JOIN employees RIGHT JOIN orders ON employees.id = orders.id +WHERE (employees.department_id NOT IN (1, 35, 39, 88) AND (orders.id IS NOT NULL AND orders.customer_id != 133));" +561,111672,438832,491,2,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t2.note AS c4598, t0.department_id AS c1378, t0.id AS c1288 +FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id FULL JOIN markets AS t2 ON t0.id = t2.id +WHERE t2.region = 'AMERICA';" +562,1310198,6455692,1863,0,transformation 0 JoinCommutativity: 2; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.age, t2.price +FROM orders AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id JOIN books AS t2 ON t1.id = t2.id +WHERE ((t1.age = 123 AND t2.id IS NULL) OR (t0.customer_id = 354 AND t0.customer_id = 252));" +563,3110874,5210874,2149,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, COUNT(*), COUNT(*) +FROM markets AS t0 CROSS JOIN orders AS t1 RIGHT JOIN books AS t2 ON t1.id = t2.id +WHERE t2.price <= 42 +GROUP BY t0.id +ORDER BY t0.id DESC;" +564,671553,4351363,1635,0,transformation 5 FilterPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c6853 +FROM employees AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t1.id IS NULL AND t1.customer_id < 172) AND t0.id != 67) +GROUP BY t0.id;" +565,89730,161130,646,765,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT departments.id, users.id AS c5132 +FROM users CROSS JOIN regions CROSS JOIN departments +WHERE regions.id <= 9;" +566,68272,155422,286,2,transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT markets.id, markets.region, markets.note AS c6111 +FROM markets RIGHT JOIN customers ON markets.id = customers.id +WHERE markets.id IN (2, 3, 23, 41);" +567,610000,610000,1279,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders;" +568,366,366,122,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT books.price, books.id AS c5367 +FROM books;" +569,8406,23335,962,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.age +FROM books AS t0 CROSS JOIN departments AS t1 FULL JOIN users AS t2 ON t0.id = t2.id +WHERE ((t1.id IS NOT NULL OR t2.id = 4) AND (t0.price BETWEEN 66 AND 77 OR t0.price IS NULL)) +GROUP BY t2.age +ORDER BY t2.age ASC;" +570,3764,3764,176,11,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.department_id AS c7134, t0.id AS c6407, SUM(t0.department_id), COUNT(*) +FROM employees AS t0 +WHERE (t0.id IN (1, 42, 51) OR (t0.department_id >= 3 OR t0.department_id <= 34)) +GROUP BY t0.department_id, t0.id;" +571,366,366,125,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT markets.id, markets.note AS c5448, markets.region +FROM markets;" +572,2085,2085,151,9,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM regions +WHERE ((regions.id IN (7, 90) AND regions.id != 9) OR regions.id NOT IN (2, 2, 29)) +ORDER BY regions.id DESC;" +573,260498,522188,1486,1500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t2.price, COUNT(*) +FROM markets AS t0 CROSS JOIN customers AS t1 JOIN books AS t2 ON t0.id = t2.id +GROUP BY t1.id, t2.price +ORDER BY t2.price ASC, t1.id ASC;" +574,253000,463000,399,0,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.region_id, t0.id +FROM customers AS t0 CROSS JOIN departments AS t1 +WHERE t1.id < 1;" +575,2337,3832,213,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.price +FROM books AS t0 JOIN employees AS t1 ON t0.id = t1.id +WHERE t1.id >= 33;" +576,118847,653426,419,51,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price, customers.id AS c8754, users.age AS c3420 +FROM users LEFT JOIN customers ON users.id = customers.id CROSS JOIN books;" +577,1308754,6451833,1921,6,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.customer_id, t1.id, t0.id AS c4362 +FROM orders AS t0 FULL JOIN users AS t1 ON t0.id = t1.id +WHERE t1.age = 64 +ORDER BY t1.id DESC, t0.customer_id ASC;" +578,2525500,4625500,12855,25000,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT departments.id, orders.id +FROM departments CROSS JOIN orders +WHERE departments.id != 45;" +579,5041,15375,514,9,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id, regions.id +FROM regions JOIN users ON regions.id = users.id +WHERE users.id <= 8 +ORDER BY users.id DESC, regions.id DESC;" +580,3134,4880,300,20,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id, markets.note AS c9073 +FROM markets FULL JOIN regions ON markets.id = regions.id CROSS JOIN books +WHERE books.price IN (66, 77, 77);" +581,110137,157124,401,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT t1.id +FROM books AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id RIGHT JOIN departments AS t2 ON t0.id = t2.id +WHERE t1.region_id IN (9, 64) +GROUP BY t1.id +ORDER BY t1.id DESC;" +582,61000,61000,241,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id AS c8490 +FROM customers;" +583,3759405,3875500,347832,2500000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t2.id, t2.customer_id +FROM customers AS t0 LEFT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN orders AS t2;" +584,69714,156902,422,6,transformation 10 ProjectionPushdownThroughJoin: 7; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 4; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT markets.region +FROM markets JOIN customers ON markets.id = customers.id CROSS JOIN books +WHERE ((books.id IN (2, 3, 3, 63) AND markets.region != 'ASIA') OR (customers.region_id IS NOT NULL AND markets.id > 81));" +585,92456,92456,284,313,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id, customers.id AS c9727 +FROM customers +WHERE ((customers.region_id IN (6) OR customers.id IS NULL) OR (customers.id = 66 OR customers.region_id BETWEEN 5 AND 60));" +586,4783,7022,267,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT t0.region, t1.price, SUM(t1.id), SUM(t2.age) +FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id RIGHT JOIN users AS t2 ON t1.id = t2.id +GROUP BY t0.region, t1.price;" +587,1317032,1561792,29744,85000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id +FROM orders FULL JOIN books ON orders.id = books.id CROSS JOIN users +ORDER BY users.id DESC;" +588,87300,1807800,399,50,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t2.region_id AS c6587, t1.id AS c973, t0.id +FROM regions AS t0 CROSS JOIN departments AS t1 JOIN customers AS t2 ON t1.id = t2.id;" +589,1033750,1033750,1719,5000,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id +FROM orders +WHERE (orders.customer_id >= 10 OR (orders.id >= 28 OR orders.id != 171));" +590,544,544,150,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.id AS c8304 +FROM books +WHERE ((books.price >= 77 OR books.id != 1) OR books.id > 1);" +591,2620,4452,252,0,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT markets.region, markets.note, regions.id AS c1044 +FROM regions RIGHT JOIN markets ON regions.id = markets.id RIGHT JOIN books ON regions.id = books.id +WHERE markets.id = 45;" +592,2676,2676,167,16,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.id, users.age +FROM users +WHERE users.id != 12;" +593,1306015,2250610,2076,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id AS c6161 +FROM orders FULL JOIN departments ON orders.id = departments.id;" +594,1963,1963,148,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.id, SUM(users.age) +FROM users +WHERE users.age = 18 +GROUP BY users.id;" +595,1308995,6452074,2266,5001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, orders.customer_id AS c5702 +FROM orders FULL JOIN users ON orders.id = users.id;" +596,68894,225744,283,4,transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT customers.id, departments.id +FROM departments LEFT JOIN customers ON departments.id = customers.id +WHERE customers.region_id < 10;" +597,1425,1425,450,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, COUNT(*) +FROM departments AS t0 +GROUP BY t0.id;" +598,5219,5219,206,16,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age AS c5631, users.id, COUNT(users.id) +FROM users +GROUP BY users.age, users.id;" +599,9921,24850,440,6,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT departments.id AS c5260, COUNT(books.id) AS c2969, SUM(departments.id) +FROM books CROSS JOIN departments RIGHT JOIN users ON books.id = users.id +GROUP BY departments.id;" +600,27106700,27106700,26255,85000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age, orders.id +FROM orders CROSS JOIN users +ORDER BY orders.id ASC, users.age ASC;" +601,366,366,119,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.price +FROM books AS t0;" +602,4771,9075,244,16,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id, COUNT(*), SUM(departments.id) +FROM departments FULL JOIN users ON departments.id = users.id +GROUP BY users.id +ORDER BY users.id ASC;" +603,698250,698250,2540,4964,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id AS c3643 +FROM orders +WHERE ((orders.id >= 36 OR orders.customer_id IN (32, 70, 315)) AND orders.id != 113);" +604,1342,1342,210,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id AS c8290, employees.id +FROM employees;" +605,1610,1610,165,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions +WHERE regions.id <= 1;" +606,1306757,1552138,3197,4809,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT orders.id AS c7144, books.id, orders.customer_id +FROM books FULL JOIN departments ON books.id = departments.id RIGHT JOIN orders ON books.id = orders.id +WHERE (orders.id IS NULL OR (books.price = 55 OR orders.id >= 193)) +ORDER BY orders.id DESC, orders.customer_id DESC;" +607,120050,410630,1115,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id, COUNT(t2.price) +FROM customers AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +GROUP BY t2.id +ORDER BY t2.id ASC;" +608,2030,2030,146,7,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id +FROM employees +WHERE ((employees.department_id >= 6 AND employees.department_id > 34) OR employees.id < 22) +ORDER BY employees.department_id ASC;" +609,421490,421730,839,1500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.note, books.id AS c2320, customers.region_id AS c7927 +FROM markets RIGHT JOIN books ON markets.id = books.id CROSS JOIN customers +ORDER BY books.id ASC, customers.region_id DESC, markets.note DESC;" +610,2192,5122,171,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 9 FilterLiftThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT regions.id, departments.id +FROM regions LEFT JOIN departments ON regions.id = departments.id +WHERE (regions.id < 5 AND departments.id = 97);" +611,1421966,7100219,2935,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT customers.region_id AS c888 +FROM orders FULL JOIN users ON orders.id = users.id LEFT JOIN customers ON orders.id = customers.id +GROUP BY customers.region_id;" +612,1342,1342,147,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id +FROM employees;" +613,2585,5110,191,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id +FROM departments AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id;" +614,2257,3832,231,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT markets.id, markets.region +FROM employees JOIN markets ON employees.id = markets.id +WHERE markets.note != 'EUROPE';" +615,2960,2960,162,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM regions AS t0 +GROUP BY t0.id;" +616,3290,3290,164,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, users.id +FROM users +WHERE users.id IN (3, 8, 11) +GROUP BY users.age, users.id +ORDER BY users.age DESC;" +617,6476,20350,243,6,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t0.age +FROM users AS t0 JOIN employees AS t1 ON t0.id = t1.id FULL JOIN departments AS t2 ON t0.id = t2.id;" +618,2378,5713,275,4,transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id +FROM departments AS t0 JOIN employees AS t1 ON t0.id = t1.id +WHERE t0.id BETWEEN 2 AND 95 +GROUP BY t1.id;" +619,935433,1705433,1969,1,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 2; enforcer 0 SortEnforcer: 1,"SELECT customers.id AS c7618, orders.customer_id +FROM books LEFT JOIN orders ON books.id = orders.id LEFT JOIN customers ON books.id = customers.id +WHERE books.id < 2 +ORDER BY customers.id ASC;" +620,1660,1660,147,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c894 +FROM regions +ORDER BY regions.id DESC;" +621,1307580,4001660,3319,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT regions.id, orders.customer_id AS c8455 +FROM orders LEFT JOIN regions ON orders.id = regions.id +ORDER BY regions.id ASC;" +622,2658,3948,185,3,transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id, books.price AS c9301, COUNT(books.price) +FROM books JOIN regions ON books.id = regions.id +WHERE (regions.id NOT IN (3) OR books.id <= 3) +GROUP BY books.id, books.price;" +623,2425,2425,146,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, SUM(t0.id) AS c6358, COUNT(*) +FROM regions AS t0 +WHERE t0.id IS NULL +GROUP BY t0.id;" +624,422,422,509,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.price, t0.id AS c4296 +FROM books AS t0 +WHERE (t0.id < 2 OR (t0.id = 81 OR t0.price IN (21, 30)));" +625,3774,5833,242,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.age, markets.id +FROM markets RIGHT JOIN users ON markets.id = users.id +WHERE markets.note IS NOT NULL +GROUP BY users.age, markets.id;" +626,112495,647074,307,501,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.age +FROM customers AS t0 FULL JOIN users AS t1 ON t0.id = t1.id;" +627,72910,647310,229,9,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT t0.id, t1.age AS c4295, t0.region_id +FROM customers AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id +WHERE ((t1.id IN (4, 8) AND t1.id > 35) OR (t1.id <= 8 AND t0.region_id > 2));" +628,109136,155366,391,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region, markets.note, customers.region_id +FROM customers LEFT JOIN markets ON customers.id = markets.id;" +629,1975000,1975000,2290,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, orders.customer_id, COUNT(*) +FROM orders +GROUP BY orders.id, orders.customer_id;" +630,1361,1916,176,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note AS c3373, markets.region +FROM departments RIGHT JOIN markets ON departments.id = markets.id;" +631,1309320,4003400,1610,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t0.id, t1.id +FROM orders AS t0 RIGHT JOIN regions AS t1 ON t0.id = t1.id +GROUP BY t0.id, t1.id +ORDER BY t0.id ASC, t1.id DESC;" +632,9998,13520,356,0,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.region, t1.note +FROM employees AS t0 CROSS JOIN markets AS t1 +WHERE t1.id NOT BETWEEN 1 AND 83 +GROUP BY t1.region, t1.note +ORDER BY t1.region DESC, t1.note DESC;" +633,610000,610000,1334,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT orders.id +FROM orders;" +634,1875,1875,156,11,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id +FROM employees +WHERE employees.id != 49 +ORDER BY employees.department_id DESC;" +635,679260,4002960,999,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id, SUM(orders.id) AS c5946, COUNT(orders.id) +FROM orders JOIN regions ON orders.id = regions.id +GROUP BY regions.id;" +636,422,422,184,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c1836, t0.price +FROM books AS t0 +WHERE t0.price > 66;" +637,2083,5583,289,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, employees.department_id AS c5334, employees.id +FROM employees JOIN departments ON employees.id = departments.id +WHERE ((departments.id > 3 OR employees.id IN (5)) AND (employees.department_id IS NOT NULL AND employees.id IN (4, 4, 96))) +ORDER BY employees.id ASC, employees.department_id ASC, departments.id ASC;" +638,445582248,445582248,398994,55000,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.id, orders.id +FROM employees CROSS JOIN users CROSS JOIN orders +GROUP BY employees.id, orders.id;" +639,7453072,65202822,2907,10,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t0.id, t1.id AS c9098 +FROM regions AS t0 CROSS JOIN orders AS t1 LEFT JOIN users AS t2 ON t1.id = t2.id +WHERE t2.age IN (88);" +640,4420,4420,171,8,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.age, SUM(t0.age) AS c7571 +FROM users AS t0 +WHERE t0.id < 13 +GROUP BY t0.age +ORDER BY t0.age ASC;" +641,1734,1734,444,9,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.region, t0.id, t0.price +FROM books AS t0 CROSS JOIN markets AS t1;" +642,4298,6932,230,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT markets.region +FROM markets RIGHT JOIN regions ON markets.id = regions.id LEFT JOIN employees ON regions.id = employees.id +WHERE (employees.department_id >= 25 OR (regions.id != 8 AND markets.note = 'unknown'));" +643,6213,17132,248,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT t0.id AS c6788, t2.id +FROM regions AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id FULL JOIN markets AS t2 ON t0.id = t2.id +ORDER BY t0.id ASC, t2.id DESC;" +644,678796,4352076,896,10,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT employees.id, employees.department_id +FROM orders LEFT JOIN employees ON orders.id = employees.id +WHERE ((employees.id NOT IN (2, 4, 20) AND employees.department_id > 3) OR (orders.id NOT IN (150, 198) AND employees.department_id NOT IN (3)));" +645,1048,1048,228,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, SUM(departments.id) AS c664 +FROM departments +WHERE departments.id < 3 +GROUP BY departments.id;" +646,31399500,59194500,89761,190000,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT markets.region +FROM orders CROSS JOIN users CROSS JOIN markets +WHERE (users.id < 5 OR markets.region != 'EUROPE');" +647,682544,6455844,1136,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id +FROM orders JOIN users ON orders.id = users.id RIGHT JOIN books ON orders.id = books.id +WHERE books.price BETWEEN 1 AND 6 +GROUP BY orders.customer_id +ORDER BY orders.customer_id DESC;" +648,3917,22032,339,2,transformation 1 JoinAssociativity: 2; transformation 2 FilterSplit: 2; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT departments.id, users.age AS c8349, markets.region AS c8908 +FROM departments CROSS JOIN markets RIGHT JOIN users ON markets.id = users.id +WHERE ((markets.region = 'AMERICA' AND markets.note = 'North, South') AND (departments.id NOT BETWEEN 1 AND 3 OR departments.id IN (38, 78, 83)));" +649,3053,5816,232,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id +FROM employees RIGHT JOIN departments ON employees.id = departments.id +WHERE ((employees.department_id = 1 OR departments.id >= 99) OR (employees.id != 40 AND departments.id <= 85));" +650,2558,5738,280,4,transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id AS c5479, employees.id AS c3162, departments.id +FROM departments LEFT JOIN employees ON departments.id = employees.id +WHERE ((departments.id IN (2) OR departments.id NOT IN (51)) AND departments.id <= 4) +ORDER BY employees.department_id DESC, employees.id DESC;" +651,622,622,147,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id AS c1103 +FROM departments +WHERE ((departments.id <= 1 OR departments.id != 1) AND (departments.id = 50 OR departments.id = 4));" +652,6154,6154,254,16,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id, COUNT(users.age) AS c4429 +FROM users +GROUP BY users.id +ORDER BY users.id ASC;" +653,424011,426070,2060,8500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.region +FROM users FULL JOIN markets ON users.id = markets.id CROSS JOIN customers +ORDER BY markets.region ASC;" +654,1308980,4005925,3762,510,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT regions.id AS c4375, orders.customer_id AS c4532 +FROM regions FULL JOIN orders ON regions.id = orders.id LEFT JOIN departments ON orders.id = departments.id +GROUP BY regions.id, orders.customer_id;" +655,1342,1342,148,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.department_id AS c8831 +FROM employees AS t0;" +656,4261,6566,233,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t1.note AS c9009 +FROM users AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id JOIN books AS t2 ON t0.id = t2.id;" +657,684100,4007800,1066,50,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t2.id AS c86, t0.id AS c971 +FROM orders AS t0 JOIN regions AS t1 ON t0.id = t1.id CROSS JOIN departments AS t2;" +658,433,433,135,0,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region AS c1228, t0.note, t0.id +FROM markets AS t0 +WHERE (t0.id IN (76) AND (t0.id <= 2 AND t0.region != 'AMERICA')) +ORDER BY t0.note ASC, t0.id ASC, t0.region ASC;" +659,10312,30045,345,7,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.id +FROM markets AS t0 CROSS JOIN regions AS t1 FULL JOIN employees AS t2 ON t1.id = t2.id +WHERE t0.id > 2 +GROUP BY t2.id;" +660,2960,2960,168,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, SUM(t0.id) +FROM regions AS t0 +GROUP BY t0.id;" +661,1366,1366,143,4,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c6502 +FROM regions AS t0 +WHERE (t0.id <= 4 AND (t0.id >= 3 OR t0.id <= 6));" +662,3421000,3421000,6445,25500,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2,"SELECT t0.id, t2.id, t1.price AS c6596 +FROM customers AS t0 CROSS JOIN books AS t1 CROSS JOIN users AS t2;" +663,75082,442664,404,27,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id AS c1872 +FROM customers JOIN employees ON customers.id = employees.id CROSS JOIN books +WHERE employees.department_id >= 5 +ORDER BY customers.id ASC;" +664,1311267,6464820,2817,5001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT orders.id, regions.id AS c6643, users.id +FROM users FULL JOIN orders ON users.id = orders.id FULL JOIN regions ON orders.id = regions.id;" +665,6079,9502,273,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.note, COUNT(t2.id), COUNT(*) AS c2705 +FROM employees AS t0 FULL JOIN markets AS t1 ON t0.id = t1.id LEFT JOIN users AS t2 ON t1.id = t2.id +GROUP BY t1.note;" +666,4550,11225,224,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id, t1.id AS c8913, COUNT(*) AS c1414 +FROM regions AS t0 JOIN employees AS t1 ON t0.id = t1.id +WHERE t1.department_id <= 3 +GROUP BY t0.id, t1.id;" +667,1775,1775,167,7,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c2245 +FROM regions +WHERE regions.id > 3 +ORDER BY regions.id DESC;" +668,68586,155366,317,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT books.price, books.id, customers.region_id +FROM customers JOIN books ON customers.id = books.id;" +669,1308995,6452074,1967,5001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.customer_id +FROM users AS t0 FULL JOIN orders AS t1 ON t0.id = t1.id;" +670,1386309,7099068,1898,16,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id AS c9255, users.age, COUNT(*), COUNT(customers.id) +FROM orders RIGHT JOIN users ON orders.id = users.id JOIN customers ON orders.id = customers.id +WHERE customers.id != 40 +GROUP BY users.id, users.age;" +671,4657,10060,215,11,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, employees.id AS c3646 +FROM departments FULL JOIN regions ON departments.id = regions.id RIGHT JOIN employees ON departments.id = employees.id;" +672,118952,118952,280,357,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id +FROM customers AS t0 +WHERE (t0.id < 13 OR t0.region_id BETWEEN 4 AND 53) +ORDER BY t0.region_id DESC;" +673,16893483,44722363,23746,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id +FROM orders AS t0 CROSS JOIN employees AS t1 LEFT JOIN regions AS t2 ON t0.id = t2.id +WHERE ((t0.id > 126 AND t2.id = 3) OR t0.customer_id = 248) +GROUP BY t1.id;" +674,797300,797300,1370,1500,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id, books.price, COUNT(customers.region_id), COUNT(*) +FROM customers CROSS JOIN books +GROUP BY customers.id, books.price +ORDER BY customers.id ASC, books.price DESC;" +675,1325000,1325000,1421,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id, orders.id AS c1243 +FROM orders +ORDER BY orders.id DESC, orders.customer_id DESC;" +676,5252,5252,178,11,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age, users.id, COUNT(users.age), COUNT(*) +FROM users +WHERE users.age NOT BETWEEN 61 AND 64 +GROUP BY users.age, users.id;" +677,637302,175655422,1118,0,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 3; transformation 9 FilterLiftThroughJoin: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 2,"SELECT books.id +FROM customers JOIN orders ON customers.id = orders.id JOIN books ON customers.id = books.id +WHERE orders.customer_id = 89;" +678,1975000,1975000,2350,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c1600, SUM(t0.customer_id) +FROM orders AS t0 +GROUP BY t0.id;" +679,6711,18875,234,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT t1.age AS c5457, t0.id, t2.id AS c6810 +FROM regions AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id RIGHT JOIN departments AS t2 ON t1.id = t2.id +ORDER BY t1.age DESC, t2.id DESC, t0.id DESC;" +680,39066,56446,395,51,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.id, t0.age +FROM users AS t0 CROSS JOIN regions AS t1 RIGHT JOIN markets AS t2 ON t1.id = t2.id;" +681,1914392,3124292,2550,3067,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 5; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id +FROM orders CROSS JOIN books +WHERE ((orders.customer_id < 310 AND books.id >= 3) AND (books.price IN (77) OR books.id < 3)) +GROUP BY orders.id +ORDER BY orders.id DESC;" +682,111672,438832,513,10,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t2.id, t1.region_id AS c4049 +FROM employees AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id LEFT JOIN markets AS t2 ON t0.id = t2.id +WHERE ((t2.note = 'Old World' OR t0.id >= 2) AND t1.id <= 131);" +683,3184,5024,313,3,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.price, SUM(t1.id), SUM(t1.id) +FROM books AS t0 CROSS JOIN departments AS t1 +WHERE t1.id NOT IN (5, 8, 17, 45) +GROUP BY t0.price;" +684,2682,3922,217,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.region AS c7251 +FROM regions FULL JOIN markets ON regions.id = markets.id +GROUP BY markets.region;" +685,113430,648009,451,501,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.region_id, t0.id, t1.age AS c7926 +FROM customers AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id +ORDER BY t0.region_id ASC, t0.id ASC;" +686,671327,1551972,1261,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region AS c1187, markets.id, orders.id +FROM markets RIGHT JOIN departments ON markets.id = departments.id LEFT JOIN orders ON markets.id = orders.id +WHERE orders.customer_id BETWEEN 324 AND 365;" +687,2422,6822,282,9,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 3; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT regions.id, departments.id +FROM departments CROSS JOIN regions +WHERE ((regions.id >= 2 AND departments.id IN (2, 3, 5)) AND (departments.id != 1 AND departments.id IN (4, 4, 5)));" +688,3510,5393,248,2,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT t1.id +FROM markets AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id FULL JOIN employees AS t2 ON t0.id = t2.id +WHERE (t1.id < 3 OR (t1.id <= 1 AND t2.id IN (3, 6, 33, 85))) +ORDER BY t1.id ASC;" +689,5828,12772,274,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t2.id AS c3, t0.id +FROM departments AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id FULL JOIN users AS t2 ON t0.id = t2.id +WHERE t2.age = 51;" +690,1122700,1122700,2265,8500,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT users.id, customers.id +FROM users CROSS JOIN customers;" +691,110296,226916,340,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT customers.region_id AS c2257, customers.id AS c5252 +FROM departments LEFT JOIN customers ON departments.id = customers.id JOIN books ON customers.id = books.id;" +692,633,633,281,3,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id +FROM departments +WHERE (departments.id != 5 AND departments.id > 1) +ORDER BY departments.id ASC;" +693,2358,3843,176,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.region AS c9465, markets.id +FROM employees JOIN markets ON employees.id = markets.id +WHERE employees.id > 67 +ORDER BY markets.region DESC, markets.id ASC;" +694,6686,18875,247,5,transformation 0 JoinCommutativity: 2; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT regions.id AS c1390, users.age AS c184 +FROM users RIGHT JOIN regions ON users.id = regions.id JOIN departments ON users.id = departments.id +ORDER BY users.age DESC;" +695,2424,3973,237,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.note, employees.department_id AS c9332, SUM(employees.id) AS c3951 +FROM employees RIGHT JOIN markets ON employees.id = markets.id +WHERE markets.region = 'AMERICA' +GROUP BY markets.note, employees.department_id;" +696,1342,1342,145,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id, employees.id +FROM employees;" +697,366,366,130,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.price +FROM books AS t0;" +698,3898,16153,220,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id, COUNT(employees.department_id) AS c7934, COUNT(*) AS c8534 +FROM users LEFT JOIN employees ON users.id = employees.id +WHERE ((employees.id IS NULL AND employees.id >= 66) AND employees.id NOT IN (2, 6, 33, 68)) +GROUP BY employees.department_id;" +699,3922,10460,181,6,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id +FROM employees JOIN regions ON employees.id = regions.id +ORDER BY regions.id ASC;" +700,1922,1922,170,5,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.id, COUNT(employees.department_id) AS c6900 +FROM employees +WHERE ((employees.id < 5 AND employees.id <= 6) OR (employees.id = 67 AND employees.department_id >= 31)) +GROUP BY employees.id;" +701,3315,5079,445,3,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id, t0.note AS c5073 +FROM markets AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE t0.region = 'EUROPE' +ORDER BY t1.id DESC, t0.note DESC;" +702,1425,1425,166,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, COUNT(*) AS c4016, COUNT(t0.id) +FROM departments AS t0 +GROUP BY t0.id;" +703,2690000,2690000,1857,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.customer_id AS c8628, SUM(t0.customer_id) +FROM orders AS t0 +GROUP BY t0.customer_id +ORDER BY t0.customer_id DESC;" +704,690944,68842944,1034,51,transformation 0 JoinCommutativity: 1; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT users.id +FROM orders CROSS JOIN users RIGHT JOIN regions ON orders.id = regions.id +WHERE orders.customer_id BETWEEN 56 AND 310;" +705,1331,1916,185,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, t0.price AS c5080, t1.id +FROM books AS t0 LEFT JOIN departments AS t1 ON t0.id = t1.id;" +706,677417,1553644,1000,2,transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; transformation 10 ProjectionPushdownThroughJoin: 6; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 3; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region, orders.customer_id AS c9499, orders.id AS c2512 +FROM markets JOIN orders ON markets.id = orders.id JOIN regions ON orders.id = regions.id +WHERE markets.note NOT IN ('AMERICA', 'Old World');" +707,1293750,1293750,2125,5000,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE (orders.customer_id IS NOT NULL OR (orders.customer_id > 52 AND orders.customer_id <= 48)) +ORDER BY orders.id ASC, orders.customer_id DESC;" +708,2277500,2277500,2754,4991,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.customer_id, t0.id +FROM orders AS t0 +WHERE (t0.customer_id > 257 OR t0.customer_id NOT IN (88, 404)) +GROUP BY t0.customer_id, t0.id;" +709,69108,156778,387,1,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t2.id +FROM markets AS t0 JOIN books AS t1 ON t0.id = t1.id RIGHT JOIN customers AS t2 ON t0.id = t2.id +WHERE ((t0.id IS NOT NULL OR t2.region_id < 10) AND t0.region NOT IN ('AMERICA')) +GROUP BY t2.id;" +710,678892,6452676,986,13,transformation 5 FilterPushdownThroughJoin: 1; transformation 10 ProjectionPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1,"SELECT t1.id, t1.customer_id, t0.id +FROM users AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE t0.id <= 13;" +711,17610163,22240890,39324,5500,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT orders.customer_id, users.age +FROM users LEFT JOIN employees ON users.id = employees.id CROSS JOIN orders +WHERE users.age IS NOT NULL +GROUP BY orders.customer_id, users.age +ORDER BY orders.customer_id DESC, users.age DESC;" +712,3092,16012,211,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t1.id AS c8042, t0.id +FROM users AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +WHERE ((t0.age BETWEEN 4 AND 64 AND t1.department_id < 3) AND (t0.age = 33 AND t1.department_id IN (2, 5, 31, 48)));" +713,1361,1916,266,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.id, markets.note AS c3697 +FROM markets RIGHT JOIN departments ON markets.id = departments.id;" +714,65900,65900,279,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id AS c1736, customers.region_id AS c1547, COUNT(customers.id) AS c74 +FROM customers +WHERE customers.id = 166 +GROUP BY customers.id, customers.region_id;" +715,115207,660260,563,501,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t0.id, t2.id, t1.id AS c5704 +FROM customers AS t0 FULL JOIN users AS t1 ON t0.id = t1.id FULL JOIN regions AS t2 ON t0.id = t2.id +ORDER BY t2.id ASC, t0.id DESC;" +716,4024,4024,167,15,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age +FROM users +WHERE (users.age >= 443 OR users.id NOT BETWEEN 13 AND 14) +ORDER BY users.age DESC;" +717,763,763,154,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id +FROM departments +WHERE (departments.id IS NOT NULL AND (departments.id BETWEEN 4 AND 37 OR departments.id >= 4)) +GROUP BY departments.id;" +718,26362,26362,270,187,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT users.age, users.id +FROM employees CROSS JOIN users;" +719,1494000,175610500,2992,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id AS c3382, t1.customer_id, t0.region_id AS c6097 +FROM customers AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +ORDER BY t1.customer_id DESC;" +720,683600,5753350,1064,15,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t2.id, t1.price, t1.id +FROM departments AS t0 CROSS JOIN books AS t1 JOIN orders AS t2 ON t1.id = t2.id +ORDER BY t1.price DESC, t1.id DESC;" +721,1660,1660,131,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c5795 +FROM regions AS t0 +ORDER BY t0.id DESC;" +722,113611,234075,442,14,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT departments.id, users.age AS c5964, COUNT(users.age) +FROM departments RIGHT JOIN customers ON departments.id = customers.id LEFT JOIN users ON customers.id = users.id +GROUP BY departments.id, users.age;" +723,112808,233272,542,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t1.id AS c5700, t2.age, t2.id +FROM departments AS t0 FULL JOIN customers AS t1 ON t0.id = t1.id FULL JOIN users AS t2 ON t1.id = t2.id +WHERE (t1.id != 184 AND (t1.region_id IS NOT NULL OR t1.region_id >= 82));" +724,3178,5124,322,30,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id, markets.note +FROM markets FULL JOIN regions ON markets.id = regions.id CROSS JOIN books +WHERE books.id < 37;" +725,1822,1822,145,0,transformation 2 FilterSplit: 1; transformation 3 FilterMerge: 1; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id AS c8444 +FROM users AS t0 +WHERE ((t0.age IN (10, 33, 64, 88) AND t0.age IN (21, 33, 92)) AND (t0.id IS NULL AND t0.age < 64));" +726,22101000,22101000,22796,50000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, regions.id AS c2828, COUNT(*) +FROM orders CROSS JOIN regions +GROUP BY orders.id, regions.id;" +727,4022,5942,337,9,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.id AS c2746, books.price, departments.id +FROM departments CROSS JOIN markets RIGHT JOIN books ON departments.id = books.id +ORDER BY markets.id DESC;" +728,2074,2074,155,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT users.id +FROM users;" +729,1308299,4005244,1463,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT orders.customer_id AS c7513 +FROM orders RIGHT JOIN regions ON orders.id = regions.id FULL JOIN departments ON regions.id = departments.id +WHERE orders.id IS NULL;" +730,102133,155563,488,356,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id, t1.id, COUNT(t0.id), COUNT(t0.id) +FROM customers AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id +WHERE t0.region_id >= 4 +GROUP BY t0.id, t1.id;" +731,868050300,1498050300,984190,2500000,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT orders.id, customers.id +FROM customers CROSS JOIN orders CROSS JOIN markets +WHERE markets.region != 'AMERICA';" +732,83440,423880,351,0,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM customers JOIN regions ON customers.id = regions.id CROSS JOIN employees +WHERE employees.department_id IS NULL +ORDER BY regions.id ASC;" +733,76799,650219,275,11,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age, COUNT(customers.region_id), SUM(users.age) AS c9006 +FROM users JOIN customers ON users.id = customers.id +GROUP BY users.age;" +734,1308580,4005110,1832,5,transformation 0 JoinCommutativity: 2; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id +FROM orders LEFT JOIN regions ON orders.id = regions.id JOIN departments ON regions.id = departments.id;" +735,2235,3445,264,0,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, books.id AS c2211, books.price +FROM departments CROSS JOIN books +WHERE books.price IS NULL +ORDER BY books.price DESC, departments.id ASC;" +736,69042,155822,271,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id AS c7269, t1.price AS c9813 +FROM customers AS t0 JOIN books AS t1 ON t0.id = t1.id +GROUP BY t1.id, t1.price;" +737,1342,1342,158,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.department_id, t0.id AS c7129 +FROM employees AS t0;" +738,74400,74400,297,282,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.region_id +FROM customers AS t0 +WHERE ((t0.region_id NOT IN (8, 10) AND t0.id BETWEEN 50 AND 141) OR (t0.region_id > 6 AND t0.region_id != 1));" +739,805000,805000,1274,4999,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id, orders.id +FROM orders +WHERE orders.id != 185;" +740,3581,5472,245,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.id, COUNT(t0.id) AS c1028, SUM(t2.id) +FROM books AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id RIGHT JOIN departments AS t2 ON t0.id = t2.id +GROUP BY t1.id;" +741,433,433,172,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id AS c935, books.price +FROM books +WHERE ((books.price BETWEEN 26 AND 66 AND books.price < 66) AND (books.price BETWEEN 66 AND 91 AND books.price IS NOT NULL)) +ORDER BY books.id ASC, books.price DESC;" +742,109192,155422,483,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note +FROM markets FULL JOIN customers ON markets.id = customers.id +WHERE markets.id < 1;" +743,4529,7294,364,6,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.id +FROM markets AS t0 LEFT JOIN users AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE ((t0.note = 'Fast lane' AND t1.id != 6) OR t0.note != 'Old World');" +744,850433,1550433,1943,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.region, t1.note +FROM orders AS t0 RIGHT JOIN markets AS t1 ON t0.id = t1.id +WHERE t1.id != 3 +ORDER BY t1.region ASC, t1.note ASC;" +745,652500,652500,1159,35,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.id AS c7997 +FROM orders +WHERE orders.customer_id BETWEEN 477 AND 480;" +746,2797,5560,173,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id, departments.id +FROM departments LEFT JOIN employees ON departments.id = employees.id;" +747,110640,401220,327,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.region_id AS c5955, customers.id AS c1522 +FROM customers LEFT JOIN regions ON customers.id = regions.id;" +748,744,744,131,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT departments.id AS c497 +FROM departments +WHERE departments.id >= 5;" +749,6821,16560,306,12,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.age AS c5325, COUNT(*), SUM(users.age) +FROM users FULL JOIN regions ON users.id = regions.id +GROUP BY users.age +ORDER BY users.age ASC;" +750,69552,401122,228,0,transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT customers.id AS c5621, regions.id, customers.region_id +FROM regions JOIN customers ON regions.id = customers.id +WHERE (customers.id = 154 OR regions.id = 74);" +751,404006,2238756,903,55,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, customers.id, SUM(employees.department_id) +FROM customers CROSS JOIN departments JOIN employees ON customers.id = employees.id +GROUP BY departments.id, customers.id;" +752,5505,15620,308,4,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id AS c7811, t0.id +FROM books AS t0 CROSS JOIN departments AS t1 RIGHT JOIN employees AS t2 ON t0.id = t2.id +WHERE t2.id > 33;" +753,168180,648180,491,0,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 3; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id AS c1319 +FROM customers AS t0 CROSS JOIN regions AS t1 +WHERE ((t0.region_id NOT IN (6) OR t1.id IN (8)) AND (t0.id = 53 AND t0.id > 175)) +GROUP BY t0.region_id;" +754,6154,6154,166,16,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id AS c8201 +FROM users +GROUP BY users.id +ORDER BY users.id DESC;" +755,22333,33348,410,5,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id, COUNT(t1.id) AS c3083 +FROM regions AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id CROSS JOIN users AS t2 +WHERE (t2.id < 15 OR (t2.id BETWEEN 5 AND 78 OR t0.id IN (9))) +GROUP BY t0.id;" +756,2292,5692,251,0,transformation 0 JoinCommutativity: 1; transformation 3 FilterMerge: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 6 InToOrChain: 3; transformation 7 FilterToJoinPredicate: 2; transformation 9 FilterLiftThroughJoin: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT users.id AS c8257, markets.note AS c8225, markets.region AS c1435 +FROM markets JOIN users ON markets.id = users.id +WHERE ((markets.region IN ('unknown') OR users.age BETWEEN 5 AND 33) AND (users.id IN (13) AND markets.id IN (96)));" +757,8530,8530,298,55,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.id +FROM departments AS t0 CROSS JOIN employees AS t1;" +758,968798,1507498,2197,1500,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id, regions.id AS c2521 +FROM customers CROSS JOIN regions +WHERE ((regions.id >= 8 OR regions.id IN (10, 11, 23)) OR (customers.region_id > 10 AND customers.region_id > 93)) +ORDER BY customers.region_id DESC;" +759,152102,152102,426,500,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id AS c6281, customers.id +FROM customers +WHERE ((customers.id >= 24 OR customers.id IN (10, 19, 31, 38)) OR (customers.id >= 31 OR customers.id != 127)) +ORDER BY customers.id ASC;" +760,80500,80500,305,500,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id AS c9204 +FROM customers +WHERE customers.region_id <= 59;" +761,1875,1875,172,11,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id, employees.id AS c1116 +FROM employees +WHERE employees.id != 13 +ORDER BY employees.department_id DESC, employees.id DESC;" +762,734412,175936222,1099,0,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 2,"SELECT t0.id AS c87, t2.id, t1.region_id +FROM orders AS t0 LEFT JOIN customers AS t1 ON t0.id = t1.id JOIN employees AS t2 ON t0.id = t2.id +WHERE (t2.id BETWEEN 5 AND 67 AND t1.region_id = 1);" +763,11939,46176,287,33,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price, users.id, employees.id +FROM books CROSS JOIN employees LEFT JOIN users ON employees.id = users.id;" +764,5864,15252,292,21,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price, employees.id +FROM departments CROSS JOIN books RIGHT JOIN employees ON departments.id = employees.id;" +765,2522,2522,163,12,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.age AS c3911, t0.id, COUNT(t0.age) +FROM users AS t0 +WHERE ((t0.age IS NOT NULL AND t0.age > 18) AND (t0.id < 2 OR t0.age IS NOT NULL)) +GROUP BY t0.age, t0.id;" +766,2072,5583,250,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.department_id +FROM employees AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id +WHERE (t1.id <= 79 AND t0.department_id = 6) +ORDER BY t0.department_id DESC;" +767,1956040,3862300,685207,2499996,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id +FROM customers LEFT JOIN books ON customers.id = books.id CROSS JOIN orders +WHERE ((books.id < 2 OR orders.id NOT IN (36, 91, 181, 188)) OR customers.id != 3);" +768,432,432,147,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.note +FROM markets +ORDER BY markets.note DESC;" +769,774,774,177,1,transformation 2 FilterSplit: 1; transformation 3 FilterMerge: 1; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id, COUNT(departments.id), COUNT(departments.id) AS c9545 +FROM departments +WHERE ((departments.id IN (1, 4, 5, 74) AND departments.id > 4) AND (departments.id BETWEEN 4 AND 19 OR departments.id IN (2, 3, 49))) +GROUP BY departments.id +ORDER BY departments.id DESC;" +770,5550,9750,302,0,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT regions.id +FROM departments CROSS JOIN regions +WHERE regions.id IS NULL;" +771,68894,225744,255,5,transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT customers.id +FROM departments LEFT JOIN customers ON departments.id = customers.id +WHERE customers.region_id >= 4;" +772,1460000,1460000,2111,2996,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, orders.customer_id, SUM(orders.customer_id) AS c6858 +FROM orders +WHERE orders.customer_id >= 207 +GROUP BY orders.id, orders.customer_id;" +773,2074,2074,152,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT users.id, users.age AS c2495 +FROM users;" +774,2311,5692,183,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, users.id AS c8300 +FROM books LEFT JOIN users ON books.id = users.id +WHERE users.age = 5;" +775,254300,380300,669,387,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id +FROM books CROSS JOIN customers +WHERE customers.id <= 129 +ORDER BY customers.region_id DESC;" +776,2196,3466,174,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id AS c6446, books.price AS c1473, books.id AS c4530 +FROM regions FULL JOIN books ON regions.id = books.id;" +777,1822,1822,131,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.age, users.id +FROM users +WHERE users.age = 86;" +778,610000,610000,1117,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.customer_id +FROM orders AS t0;" +779,3318,6933,241,4,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t1.id, t2.note +FROM departments AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id LEFT JOIN markets AS t2 ON t0.id = t2.id +WHERE t0.id NOT IN (2, 2, 2, 63) +ORDER BY t2.note DESC;" +780,1975000,1975000,1807,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.customer_id, COUNT(orders.id), COUNT(*) AS c1649 +FROM orders +GROUP BY orders.customer_id;" +781,1342,1342,138,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT employees.id, employees.department_id +FROM employees;" +782,70978,230548,348,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id, departments.id AS c1329, COUNT(customers.region_id) +FROM customers RIGHT JOIN departments ON customers.id = departments.id LEFT JOIN regions ON departments.id = regions.id +WHERE customers.region_id >= 60 +GROUP BY customers.region_id, departments.id;" +783,819128,7170288,747,44,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 2; transformation 7 FilterToJoinPredicate: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT employees.id, customers.region_id, users.id +FROM employees CROSS JOIN customers LEFT JOIN users ON employees.id = users.id +WHERE ((customers.id < 45 OR users.age IN (33, 64, 64, 443)) AND users.id IN (4, 11, 15, 73));" +784,1236,1972,175,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, t0.price +FROM books AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id +WHERE t0.price IN (77);" +785,136783,671362,1650,5511,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id +FROM customers LEFT JOIN users ON customers.id = users.id CROSS JOIN employees;" +786,585048,1550433,1412,0,transformation 5 FilterPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.price, t0.id, t1.customer_id +FROM books AS t0 JOIN orders AS t1 ON t0.id = t1.id +WHERE ((t1.id >= 39 AND t1.customer_id BETWEEN 319 AND 371) AND t0.price = 66) +ORDER BY t0.id DESC, t0.price ASC;" +787,1308995,6452074,2794,5001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id, users.id AS c419, orders.id +FROM users RIGHT JOIN orders ON users.id = orders.id;" +788,6599,17548,265,15,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT users.id +FROM users LEFT JOIN regions ON users.id = regions.id LEFT JOIN books ON regions.id = books.id +WHERE ((users.age <= 18 AND users.id < 6) OR (books.price NOT IN (9, 55, 77, 77) OR users.age NOT IN (11, 18))) +GROUP BY users.id;" +789,2454,3842,203,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id, t0.price +FROM books AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id +ORDER BY t0.price DESC;" +790,1308138,1554232,4448,12,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.department_id, COUNT(t1.id), COUNT(t1.id) AS c7952 +FROM markets AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN orders AS t2 ON t1.id = t2.id +GROUP BY t1.department_id;" +791,2908,4903,359,1,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.department_id AS c4790, t2.id, COUNT(t0.id) AS c1515, COUNT(t0.department_id) +FROM employees AS t0 JOIN markets AS t1 ON t0.id = t1.id RIGHT JOIN books AS t2 ON t0.id = t2.id +WHERE t1.note = 'North, South' +GROUP BY t0.department_id, t2.id;" +792,1586400,16287420,4020,10,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 2,"SELECT t1.region, t2.customer_id AS c3350, t1.note +FROM regions AS t0 CROSS JOIN markets AS t1 CROSS JOIN orders AS t2 +WHERE (t1.region IN ('EUROPE') AND t2.id IN (117));" +793,4779,10724,374,51,transformation 0 JoinCommutativity: 2; transformation 2 FilterSplit: 2; transformation 5 FilterPushdownThroughJoin: 4; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.price, t0.region +FROM markets AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id CROSS JOIN users AS t2 +WHERE ((t1.price = 77 OR t1.price < 77) AND (t0.id IN (2) OR t0.region != 'EUROPE')) +ORDER BY t0.region ASC, t1.price ASC;" +794,2004,3214,265,0,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.id, t1.region AS c4531, t1.note +FROM departments AS t0 CROSS JOIN markets AS t1 +WHERE t0.id IS NULL;" +795,5833,16866,231,11,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.age, t1.department_id AS c5680, t1.id +FROM users AS t0 RIGHT JOIN employees AS t1 ON t0.id = t1.id +WHERE (t1.department_id IS NOT NULL OR t1.department_id IS NULL);" +796,6057,18566,247,3,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT markets.note, users.id +FROM users FULL JOIN employees ON users.id = employees.id JOIN markets ON users.id = markets.id;" +797,114500,405080,1485,1500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price +FROM regions RIGHT JOIN customers ON regions.id = customers.id CROSS JOIN books;" +798,2474,3832,411,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.note AS c2770, t0.region AS c8751 +FROM markets AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id +WHERE (t1.department_id BETWEEN 5 AND 6 OR t1.department_id <= 11);" +799,1660,1660,189,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM regions +ORDER BY regions.id ASC;" +800,26882,26882,638,153,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2,"SELECT users.age AS c9040, users.id, markets.note AS c4935 +FROM users CROSS JOIN markets CROSS JOIN books;" +801,1342,1342,165,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.department_id +FROM employees AS t0;" +802,4536,7186,242,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT t2.age, t1.note, t1.id +FROM departments AS t0 RIGHT JOIN markets AS t1 ON t0.id = t1.id FULL JOIN users AS t2 ON t1.id = t2.id;" +803,1640,1640,173,4,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, COUNT(departments.id), COUNT(*) AS c7527 +FROM departments +WHERE departments.id NOT IN (1, 65) +GROUP BY departments.id;" +804,4744,8768,317,48,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT books.price AS c5825, users.id, books.id +FROM users CROSS JOIN books +WHERE (users.id < 17 AND books.price != 83);" +805,27408,37348,347,7,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.department_id, employees.id AS c1965, SUM(employees.department_id) +FROM employees CROSS JOIN regions +WHERE ((employees.department_id IN (64) OR employees.department_id >= 11) OR (regions.id = 32 AND employees.department_id != 5)) +GROUP BY employees.department_id, employees.id +ORDER BY employees.id ASC, employees.department_id DESC;" +806,1062,1493,237,1,transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id +FROM books AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id +WHERE t1.region != 'AMERICA' +GROUP BY t0.id +ORDER BY t0.id ASC;" +807,317000,937000,1960,4960,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t1.id, t0.region_id AS c3707, t0.id +FROM customers AS t0 CROSS JOIN regions AS t1 +WHERE t0.id NOT IN (33, 42, 91, 200);" +808,678304,6451944,985,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 9 FilterLiftThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT t0.age, t1.id, t0.id +FROM users AS t0 RIGHT JOIN orders AS t1 ON t0.id = t1.id +WHERE (t0.id < 4 AND (t1.id >= 151 AND t0.id IS NULL));" +809,1220,1220,150,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM regions AS t0;" +810,174981,303070,1785,1500,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, users.id, users.age +FROM users LEFT JOIN books ON users.id = books.id CROSS JOIN customers +WHERE books.price <= 95;" +811,633,633,149,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id +FROM departments +WHERE departments.id = 13 +ORDER BY departments.id DESC;" +812,1660,1660,136,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM regions +ORDER BY regions.id ASC;" +813,366,366,118,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT books.price AS c8764, books.id +FROM books;" +814,70867,230432,352,1,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.region_id, t2.id, t1.id +FROM departments AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id JOIN customers AS t2 ON t1.id = t2.id +WHERE ((t1.id = 8 OR t2.region_id > 57) OR t1.id IS NULL) +ORDER BY t2.region_id DESC, t2.id DESC;" +815,563,563,172,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.note +FROM markets AS t0 +WHERE ((t0.id > 7 AND t0.region != 'EUROPE') AND t0.id < 2) +GROUP BY t0.note;" +816,80500,80500,223,500,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.id +FROM customers +WHERE customers.region_id != 78;" +817,840200,840200,1459,31,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c573, t0.customer_id +FROM orders AS t0 +WHERE (t0.customer_id IN (178, 239) OR t0.customer_id = 84) +ORDER BY t0.customer_id DESC;" +818,4254550,7107050,7951,5098,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT orders.id, orders.customer_id +FROM orders CROSS JOIN regions +WHERE ((orders.customer_id = 337 OR regions.id = 86) OR (regions.id = 10 AND orders.id != 156));" +819,109515,225610,511,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, t1.id, t1.region_id +FROM departments AS t0 RIGHT JOIN customers AS t1 ON t0.id = t1.id;" +820,1034588,1199375,3651,4960,transformation 2 FilterSplit: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, orders.customer_id, COUNT(orders.id) AS c5012, SUM(orders.customer_id) +FROM orders +WHERE ((orders.id != 129 OR orders.customer_id BETWEEN 72 AND 352) AND orders.customer_id NOT IN (191, 289, 289, 404)) +GROUP BY orders.id, orders.customer_id;" +821,5866,12760,247,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT departments.id, users.id AS c1842, users.age +FROM users FULL JOIN departments ON users.id = departments.id RIGHT JOIN regions ON departments.id = regions.id;" +822,2960,2960,203,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, COUNT(t0.id), SUM(t0.id) +FROM regions AS t0 +GROUP BY t0.id;" +823,318040,693140,1917,1,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id, COUNT(employees.department_id) +FROM employees CROSS JOIN customers +WHERE (customers.id != 157 AND (customers.id NOT BETWEEN 13 AND 55 AND employees.department_id = 34)) +GROUP BY employees.department_id;" +824,4927,22342,314,3,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.note, t0.id, t2.id +FROM departments AS t0 CROSS JOIN markets AS t1 JOIN users AS t2 ON t0.id = t2.id +WHERE t0.id IN (1, 33) +ORDER BY t0.id DESC, t1.note ASC;" +825,4099,6092,224,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT users.age, markets.note, COUNT(markets.id) +FROM markets LEFT JOIN users ON markets.id = users.id +GROUP BY users.age, markets.note +ORDER BY users.age ASC;" +826,3473,5326,262,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT employees.department_id, markets.note AS c1405, departments.id +FROM markets LEFT JOIN employees ON markets.id = employees.id LEFT JOIN departments ON employees.id = departments.id;" +827,2347,3832,230,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.id, employees.id +FROM markets JOIN employees ON markets.id = employees.id +WHERE employees.department_id IS NOT NULL;" +828,1048,1048,249,4,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id, COUNT(*) AS c4059, SUM(departments.id) AS c8530 +FROM departments +WHERE ((departments.id > 3 OR departments.id IN (2)) OR departments.id IN (3)) +GROUP BY departments.id;" +829,422,422,164,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.id, markets.region, markets.note +FROM markets +WHERE (markets.note != 'AMERICA' AND markets.region = 'AMERICA');" +830,3256,3256,151,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM employees AS t0 +GROUP BY t0.id;" +831,1975000,1975000,1793,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id +FROM orders +GROUP BY orders.id;" +832,677748,1553466,960,3,transformation 0 JoinCommutativity: 1; transformation 10 ProjectionPushdownThroughJoin: 6; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 3; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id AS c5347, markets.id AS c3605, orders.id +FROM orders JOIN markets ON orders.id = markets.id JOIN regions ON markets.id = regions.id;" +833,8121,22900,335,15,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.note, t0.id +FROM markets AS t0 CROSS JOIN departments AS t1 LEFT JOIN users AS t2 ON t1.id = t2.id +ORDER BY t0.note ASC;" +834,744100,744100,1011,5500,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT customers.id, employees.id, customers.region_id +FROM employees CROSS JOIN customers;" +835,3413,6866,221,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT employees.id, books.price, departments.id +FROM employees FULL JOIN departments ON employees.id = departments.id JOIN books ON departments.id = books.id;" +836,1278,1518,229,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT books.id, markets.note +FROM books JOIN markets ON books.id = markets.id +WHERE (books.id > 1 OR markets.note != 'unknown') +ORDER BY books.id ASC, markets.note ASC;" +837,3786,5144,300,9,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price, markets.id, books.id AS c9062 +FROM markets LEFT JOIN employees ON markets.id = employees.id CROSS JOIN books;" +838,1313696,1558426,19341,85000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.region, markets.id AS c8264 +FROM orders FULL JOIN markets ON orders.id = markets.id CROSS JOIN users;" +839,112105,405110,489,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT regions.id +FROM customers LEFT JOIN regions ON customers.id = regions.id FULL JOIN departments ON regions.id = departments.id;" +840,1220,1220,149,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions;" +841,111333,403533,398,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT markets.note, customers.id, regions.id +FROM regions FULL JOIN customers ON regions.id = customers.id JOIN markets ON customers.id = markets.id +WHERE ((customers.region_id = 41 OR regions.id IS NULL) AND (customers.id IN (32, 65, 97, 184) OR markets.id <= 13)) +ORDER BY markets.note DESC, customers.id ASC, regions.id DESC;" +842,1822,1822,165,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.age, t0.id AS c599 +FROM users AS t0 +WHERE (t0.id IN (5) AND t0.age < 88);" +843,15036300,31386300,34689,149880,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT books.id, orders.id, books.price +FROM books CROSS JOIN orders CROSS JOIN regions +WHERE orders.id NOT BETWEEN 50 AND 53;" +844,2988,4903,368,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 7 FilterToJoinPredicate: 1; transformation 11 OuterJoinToInner: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT books.price, COUNT(employees.department_id) AS c475 +FROM employees RIGHT JOIN books ON employees.id = books.id RIGHT JOIN markets ON books.id = markets.id +WHERE (employees.id < 3 AND (employees.department_id IS NULL OR markets.note = 'unknown')) +GROUP BY books.price;" +845,422,422,183,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.note, markets.region AS c5409 +FROM markets +WHERE markets.id IS NULL;" +846,54514,54514,277,26,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id, customers.id +FROM customers +WHERE (customers.region_id = 6 AND customers.id NOT BETWEEN 29 AND 200);" +847,2046000,2046000,1327,10,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.region_id, COUNT(customers.region_id) +FROM regions CROSS JOIN customers +GROUP BY customers.region_id;" +848,67736,89716,348,16,transformation 0 JoinCommutativity: 1; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t1.age AS c2807 +FROM regions AS t0 CROSS JOIN users AS t1 +WHERE ((t0.id NOT IN (10) OR t1.age = 21) OR t1.id != 15) +GROUP BY t1.id, t1.age +ORDER BY t1.age ASC;" +849,422,422,126,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.id AS c2855, books.price AS c862 +FROM books +WHERE books.id IN (3);" +850,3381,5636,175,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT users.age, books.price, books.id +FROM users JOIN books ON users.id = books.id;" +851,1319042,4017922,1570,10,transformation 0 JoinCommutativity: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT orders.id +FROM regions LEFT JOIN orders ON regions.id = orders.id CROSS JOIN departments +WHERE ((departments.id <= 8 AND orders.id <= 71) OR regions.id != 7) +GROUP BY orders.id +ORDER BY orders.id DESC;" +852,5210,29176,464,15,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id AS c5743, regions.id AS c3685 +FROM books CROSS JOIN employees RIGHT JOIN regions ON employees.id = regions.id +WHERE (employees.department_id != 5 AND employees.id IS NOT NULL);" +853,3730,6250,272,10,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t1.id, t0.id AS c1844 +FROM markets AS t0 CROSS JOIN regions AS t1 +WHERE t0.region != 'AMERICA';" +854,681154,6452074,926,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT users.id AS c8433, orders.id, users.age AS c5978 +FROM orders JOIN users ON orders.id = users.id;" +855,822,822,148,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.note, t0.region +FROM markets AS t0 +GROUP BY t0.note, t0.region;" +856,1222,1222,220,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT employees.department_id +FROM employees +WHERE (employees.department_id > 35 AND employees.id = 2);" +857,5837,15576,238,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id AS c3241, users.id, users.age +FROM regions LEFT JOIN users ON regions.id = users.id +WHERE ((users.age != 64 OR users.age >= 33) OR regions.id > 9);" +858,113694,234290,520,393,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT customers.id +FROM customers FULL JOIN departments ON customers.id = departments.id FULL JOIN users ON customers.id = users.id +WHERE ((users.id != 8 OR departments.id IS NOT NULL) OR customers.id > 122) +GROUP BY customers.id;" +859,4668,7332,274,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT regions.id, books.id, COUNT(*) AS c2626 +FROM employees LEFT JOIN books ON employees.id = books.id RIGHT JOIN regions ON employees.id = regions.id +GROUP BY regions.id, books.id;" +860,788,788,190,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT departments.id +FROM departments +WHERE departments.id <= 2 +ORDER BY departments.id ASC;" +861,54051700,54051700,46969,500,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.customer_id +FROM users AS t0 CROSS JOIN orders AS t1 +GROUP BY t1.customer_id +ORDER BY t1.customer_id DESC;" +862,1308778,4353954,1550,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t0.department_id +FROM employees AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id RIGHT JOIN markets AS t2 ON t1.id = t2.id +WHERE ((t2.note != 'Old World' OR t0.department_id <= 12) OR (t0.department_id != 35 OR t1.id NOT BETWEEN 4 AND 78));" +863,1319320,18364979,1814,32,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id, markets.id +FROM markets CROSS JOIN users LEFT JOIN orders ON markets.id = orders.id +WHERE markets.id > 1 +GROUP BY users.id, markets.id;" +864,3589,5844,218,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t1.price AS c2144 +FROM users AS t0 JOIN books AS t1 ON t0.id = t1.id +WHERE (t0.age IS NULL OR t0.age = 21) +GROUP BY t1.id, t1.price +ORDER BY t1.id ASC, t1.price DESC;" +865,12026,12026,322,33,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price, employees.id AS c7767, COUNT(books.price) AS c6906, COUNT(*) +FROM books CROSS JOIN employees +GROUP BY books.price, employees.id;" +866,1875,1875,156,11,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.department_id, t0.id +FROM employees AS t0 +WHERE t0.department_id IS NOT NULL +ORDER BY t0.department_id ASC, t0.id DESC;" +867,2475,2475,146,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age AS c9309, users.id +FROM users +WHERE users.age IN (45, 75, 88) +ORDER BY users.id DESC, users.age DESC;" +868,3377,8272,260,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 9 FilterLiftThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT users.id +FROM departments FULL JOIN users ON departments.id = users.id +WHERE (departments.id >= 3 AND (users.age = 11 OR users.id > 15));" +869,110128,401488,277,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.id AS c2844 +FROM regions LEFT JOIN customers ON regions.id = customers.id +WHERE regions.id IN (6, 9, 32, 41);" +870,3042,3042,142,16,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.age +FROM users +WHERE (users.age IN (3, 50, 69, 95) OR users.id != 13);" +871,111030,401610,321,1,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id AS c476, customers.region_id AS c8704, customers.id +FROM customers RIGHT JOIN regions ON customers.id = regions.id +WHERE (customers.region_id >= 66 OR regions.id = 6);" +872,97942,671362,480,187,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT users.age, users.id AS c6703 +FROM users JOIN customers ON users.id = customers.id CROSS JOIN employees;" +873,366,366,125,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT markets.id, markets.region +FROM markets;" +874,6031,12760,219,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t2.id AS c1600, t1.age AS c5206 +FROM departments AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id LEFT JOIN regions AS t2 ON t0.id = t2.id;" +875,678740,1552690,1047,15,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT markets.id +FROM markets JOIN orders ON markets.id = orders.id CROSS JOIN departments;" +876,677111,1551916,1030,5,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, orders.customer_id, books.price +FROM books JOIN orders ON books.id = orders.id FULL JOIN departments ON orders.id = departments.id;" +877,1220,1220,128,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions;" +878,3215,5194,317,3,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT markets.note AS c9740, departments.id +FROM markets JOIN regions ON markets.id = regions.id LEFT JOIN departments ON markets.id = departments.id +WHERE (markets.note != 'North, South' OR markets.region IS NOT NULL);" +879,683000,683000,1259,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.customer_id +FROM orders AS t0 +WHERE t0.id IN (24, 100, 169);" +880,110500,110500,284,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id +FROM customers +ORDER BY customers.id DESC;" +881,4422165,2185552525,29179,55000,transformation 0 JoinCommutativity: 1; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, employees.id AS c6235, SUM(employees.department_id) +FROM orders CROSS JOIN customers RIGHT JOIN employees ON customers.id = employees.id +WHERE customers.id <= 83 +GROUP BY orders.id, employees.id;" +882,610000,610000,1363,5000,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.customer_id AS c4872, t0.id AS c6904 +FROM orders AS t0;" +883,228608,3911463,755,0,transformation 0 JoinCommutativity: 1; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT customers.id AS c9594, departments.id +FROM customers CROSS JOIN users RIGHT JOIN departments ON users.id = departments.id +WHERE customers.region_id = 58 +GROUP BY customers.id, departments.id;" +884,748788,4401488,1078,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 2,"SELECT regions.id AS c6190 +FROM customers JOIN regions ON customers.id = regions.id JOIN orders ON customers.id = orders.id +WHERE orders.id IN (23, 82, 167, 183);" +885,4876,15210,221,15,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id, t1.age AS c5455, t1.id AS c7095 +FROM regions AS t0 RIGHT JOIN users AS t1 ON t0.id = t1.id +WHERE t1.age >= 11;" +886,1732,1732,163,3,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM regions AS t0 +WHERE (t0.id IS NULL OR (t0.id > 7 AND t0.id IS NOT NULL));" +887,5293,12168,184,6,transformation 7 FilterToJoinPredicate: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.id AS c2880, employees.department_id, COUNT(regions.id) AS c3583, SUM(employees.department_id) +FROM regions JOIN employees ON regions.id = employees.id +WHERE ((employees.department_id >= 22 OR regions.id IS NOT NULL) OR (employees.id >= 2 AND employees.id < 66)) +GROUP BY employees.id, employees.department_id;" +888,1220,1220,135,10,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id AS c6441 +FROM regions;" +889,8756,12584,373,12,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id AS c1119, t1.note AS c6695, COUNT(*) AS c7579, COUNT(*) +FROM employees AS t0 CROSS JOIN markets AS t1 LEFT JOIN books AS t2 ON t0.id = t2.id +GROUP BY t2.id, t1.note;" +890,563,563,192,1,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id, t0.note, COUNT(*) AS c5980 +FROM markets AS t0 +WHERE (t0.region != 'AMERICA' AND (t0.note NOT IN ('AMERICA') OR t0.region != 'AMERICA')) +GROUP BY t0.id, t0.note;" +891,9222,17622,267,20,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT t2.region, t1.id +FROM regions AS t0 CROSS JOIN departments AS t1 LEFT JOIN markets AS t2 ON t1.id = t2.id +WHERE ((t2.note NOT IN ('North, South', 'North, South') OR t2.region IS NOT NULL) AND (t2.id IN (1, 3) AND t2.region IN ('AMERICA', 'EUROPE')));" +892,366,366,122,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT markets.id, markets.note +FROM markets;" +893,945706300,945706300,794257,7500000,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2,"SELECT t0.region, t2.customer_id +FROM markets AS t0 CROSS JOIN customers AS t1 CROSS JOIN orders AS t2;" +894,4121,8425,210,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT users.id, users.age, departments.id +FROM users RIGHT JOIN departments ON users.id = departments.id +ORDER BY users.id DESC, departments.id DESC;" +895,422822,424210,1309,5500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, customers.region_id, customers.id +FROM books RIGHT JOIN employees ON books.id = employees.id CROSS JOIN customers +ORDER BY employees.department_id DESC;" +896,110500,110500,300,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id +FROM customers AS t0 +ORDER BY t0.region_id DESC;" +897,422,422,162,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT books.id +FROM books +WHERE (books.id = 3 OR books.price = 77);" +898,1092,1972,321,0,transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.id, t1.price, t1.id AS c28 +FROM departments AS t0 LEFT JOIN books AS t1 ON t0.id = t1.id +WHERE ((t0.id >= 4 OR t0.id IN (42, 48)) AND (t0.id BETWEEN 3 AND 56 AND t1.id = 2));" +899,61000,61000,244,500,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT customers.region_id +FROM customers;" +900,2647,7063,365,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 5; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.id AS c9569 +FROM employees JOIN departments ON employees.id = departments.id FULL JOIN books ON employees.id = books.id +WHERE ((books.price BETWEEN 55 AND 77 OR books.id IN (2, 2)) AND (books.id = 2 AND employees.id = 1)) +GROUP BY employees.id +ORDER BY employees.id ASC;" +901,1056,1296,206,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.id, books.price +FROM markets RIGHT JOIN books ON markets.id = books.id;" +902,15960,15960,288,110,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.department_id AS c4915 +FROM regions AS t0 CROSS JOIN employees AS t1;" +903,91125,91125,393,196,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.region_id, t0.id AS c4393 +FROM customers AS t0 +WHERE t0.region_id BETWEEN 2 AND 5 +GROUP BY t0.region_id, t0.id;" +904,14262,47796,546,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.id AS c1939 +FROM markets CROSS JOIN users FULL JOIN employees ON markets.id = employees.id +WHERE ((markets.id < 2 OR users.id < 33) AND users.age = 91);" +905,1188612,2251972,2182,0,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 5; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT departments.id, markets.region AS c1481, orders.customer_id +FROM orders LEFT JOIN departments ON orders.id = departments.id FULL JOIN markets ON orders.id = markets.id +WHERE ((orders.id = 16 OR orders.customer_id != 311) AND markets.note IN ('ASIA'));" +906,822,822,157,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.region, markets.note, COUNT(*), COUNT(markets.id) +FROM markets +GROUP BY markets.region, markets.note;" +907,115472,1107972,422,20,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id AS c6763, t0.id +FROM regions AS t0 CROSS JOIN books AS t1 LEFT JOIN customers AS t2 ON t0.id = t2.id +WHERE t1.id IN (1, 1, 3, 97) +GROUP BY t1.id, t0.id;" +908,16034,17304,337,44,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t0.price, t2.department_id AS c7096, COUNT(*) AS c2148 +FROM books AS t0 FULL JOIN regions AS t1 ON t0.id = t1.id CROSS JOIN employees AS t2 +GROUP BY t0.price, t2.department_id +ORDER BY t2.department_id DESC, t0.price DESC;" +909,1610,1610,194,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT regions.id +FROM regions +WHERE regions.id >= 66;" +910,2309766,6019600,3273,5000,transformation 0 JoinCommutativity: 1; transformation 2 FilterSplit: 1; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id +FROM users AS t0 JOIN regions AS t1 ON t0.id = t1.id CROSS JOIN orders AS t2 +WHERE (t0.id < 11 AND t1.id = 7);" +911,1307140,4001220,1382,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT regions.id +FROM regions LEFT JOIN orders ON regions.id = orders.id;" +912,72243,160692,335,1,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.id AS c8092 +FROM markets JOIN customers ON markets.id = customers.id LEFT JOIN users ON markets.id = users.id +WHERE (users.id = 17 OR markets.region != 'AMERICA');" +913,366,366,123,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT books.price, books.id +FROM books;" +914,366,366,124,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT markets.region AS c7952 +FROM markets;" +915,433,433,145,3,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.id, markets.note +FROM markets +WHERE (markets.note IS NOT NULL OR markets.id IN (1, 3, 3)) +ORDER BY markets.id ASC;" +916,5055,12333,307,2,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT employees.department_id, markets.note, markets.id +FROM employees LEFT JOIN regions ON employees.id = regions.id FULL JOIN markets ON regions.id = markets.id +WHERE (markets.region = 'AMERICA' OR (markets.note = 'North, South' AND markets.region != 'unknown')) +ORDER BY markets.note ASC, markets.id ASC;" +917,419320,1259700,1857,1501,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT books.id, customers.id, COUNT(books.id) AS c1217, SUM(customers.id) +FROM customers CROSS JOIN books RIGHT JOIN regions ON books.id = regions.id +GROUP BY books.id, customers.id +ORDER BY customers.id ASC;" +918,26767433,27192133,32958,17,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.price, t0.age, t0.id +FROM users AS t0 CROSS JOIN orders AS t1 FULL JOIN books AS t2 ON t1.id = t2.id +WHERE t2.price = 77 +ORDER BY t0.id ASC;" +919,64542,156983,335,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 5; transformation 6 InToOrChain: 1; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT departments.id +FROM markets LEFT JOIN departments ON markets.id = departments.id FULL JOIN customers ON markets.id = customers.id +WHERE ((markets.note = 'ASIA' AND markets.region = 'EUROPE') AND customers.region_id IN (2, 7)) +ORDER BY departments.id DESC;" +920,1311328,4366665,1984,17,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT t2.age, t0.customer_id AS c4744 +FROM orders AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id JOIN users AS t2 ON t0.id = t2.id +WHERE t0.customer_id IS NOT NULL +ORDER BY t2.age ASC, t0.customer_id ASC;" +921,1309378,4353256,3596,511,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.customer_id, t1.id, COUNT(t1.department_id), SUM(t0.id) AS c8528 +FROM orders AS t0 LEFT JOIN employees AS t1 ON t0.id = t1.id +GROUP BY t0.customer_id, t1.id;" +922,3009,3009,141,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age +FROM users +ORDER BY users.age DESC;" +923,2690,2690,249,15,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.note AS c7666 +FROM departments AS t0 CROSS JOIN markets AS t1;" +924,677986,4353954,1037,2,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.customer_id, books.price AS c537 +FROM orders JOIN employees ON orders.id = employees.id JOIN books ON employees.id = books.id +WHERE (employees.department_id NOT IN (1, 5, 6, 14) OR (books.price NOT IN (55, 66, 93) OR employees.id > 3));" +925,432,432,211,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id AS c1708, books.price AS c6613 +FROM books +ORDER BY books.id ASC, books.price ASC;" +926,114285,414844,412,0,implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT users.age, regions.id AS c873 +FROM regions JOIN users ON regions.id = users.id FULL JOIN customers ON regions.id = customers.id +WHERE regions.id IN (9, 9);" +927,6045,6630,272,30,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.price AS c9588, t0.id, t2.id +FROM departments AS t0 JOIN books AS t1 ON t0.id = t1.id CROSS JOIN regions AS t2;" +928,2226,3466,216,10,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.id +FROM regions AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id;" +929,227750,227750,490,404,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT customers.region_id, customers.id AS c650, COUNT(customers.region_id) +FROM customers +WHERE ((customers.region_id NOT IN (1, 9, 46) OR customers.id = 28) OR (customers.id NOT IN (135) AND customers.id BETWEEN 140 AND 147)) +GROUP BY customers.region_id, customers.id +ORDER BY customers.region_id ASC;" +930,71454,440694,454,3,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT departments.id, customers.id AS c5398 +FROM customers LEFT JOIN employees ON customers.id = employees.id LEFT JOIN departments ON employees.id = departments.id +WHERE employees.department_id < 6;" +931,11673302,17248202,24718,50000,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, orders.customer_id, regions.id AS c3962 +FROM regions CROSS JOIN orders +WHERE (orders.customer_id != 353 OR (regions.id != 58 OR orders.customer_id = 281)) +ORDER BY orders.id DESC, orders.customer_id ASC, regions.id DESC;" +932,1603000,1751193000,2148,10,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 6 ImplementHashJoin: 1,"SELECT customers.id, orders.id, customers.region_id +FROM customers CROSS JOIN regions JOIN orders ON customers.id = orders.id +WHERE orders.customer_id IN (97, 268);" +933,3667,5498,271,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 4,"SELECT t1.note, t1.id, COUNT(t2.id) AS c841 +FROM departments AS t0 LEFT JOIN markets AS t1 ON t0.id = t1.id JOIN regions AS t2 ON t0.id = t2.id +WHERE (t2.id IS NULL OR (t1.id NOT BETWEEN 1 AND 3 AND t1.note != 'Old World')) +GROUP BY t1.note, t1.id;" +934,4370,8492,308,33,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t1.price, t1.id, t0.department_id AS c8063 +FROM employees AS t0 CROSS JOIN books AS t1 +WHERE (t0.department_id >= 1 OR (t1.price <= 77 OR t0.department_id NOT BETWEEN 18 AND 33));" +935,9698,24047,378,51,transformation 0 JoinCommutativity: 2; transformation 6 InToOrChain: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t2.id +FROM users AS t0 FULL JOIN employees AS t1 ON t0.id = t1.id CROSS JOIN books AS t2 +WHERE ((t2.price IN (13, 66) AND t1.department_id > 53) OR (t0.id > 4 OR t0.id != 58)) +ORDER BY t2.id ASC;" +936,1775,1775,170,7,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id +FROM regions +WHERE regions.id <= 7 +ORDER BY regions.id DESC;" +937,1306862,2251982,1792,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT orders.id AS c9311, books.price, orders.customer_id +FROM departments LEFT JOIN orders ON departments.id = orders.id LEFT JOIN books ON orders.id = books.id +ORDER BY orders.id ASC, books.price ASC, orders.customer_id ASC;" +938,4212,8516,207,5,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, departments.id, users.id +FROM users RIGHT JOIN departments ON users.id = departments.id +WHERE (departments.id != 3 OR (users.id < 5 AND users.id != 17));" +939,633,633,166,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id +FROM departments AS t0 +WHERE t0.id = 5 +ORDER BY t0.id ASC;" +940,892,1352,289,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1,"SELECT t0.note AS c4575 +FROM markets AS t0 JOIN books AS t1 ON t0.id = t1.id +WHERE ((t0.id >= 1 AND t0.region IS NULL) AND t1.price != 66);" +941,1307140,4001220,2081,5000,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT orders.id, orders.customer_id, regions.id +FROM regions RIGHT JOIN orders ON regions.id = orders.id;" +942,3922,10020,172,15,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.department_id, regions.id, employees.id +FROM employees FULL JOIN regions ON employees.id = regions.id;" +943,1317110,12057028,2701,4997,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT t1.id, t1.note +FROM employees AS t0 CROSS JOIN markets AS t1 FULL JOIN orders AS t2 ON t1.id = t2.id +WHERE (t1.region IS NULL OR t1.region = 'unknown');" +944,805000,805000,1368,2978,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id AS c1298, orders.id +FROM orders +WHERE orders.customer_id <= 300;" +945,1309930,6453009,3132,5001,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT users.age, orders.customer_id, orders.id +FROM orders LEFT JOIN users ON orders.id = users.id +ORDER BY users.age ASC, orders.customer_id DESC, orders.id ASC;" +946,422,422,168,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.region, markets.id +FROM markets +WHERE (markets.region = 'AMERICA' AND (markets.note IS NULL AND markets.id <= 21));" +947,422,422,135,2,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.region +FROM markets +WHERE markets.region != 'EUROPE';" +948,1308242,4003532,1324,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 5,"SELECT orders.customer_id +FROM orders RIGHT JOIN regions ON orders.id = regions.id RIGHT JOIN books ON orders.id = books.id +ORDER BY orders.customer_id DESC;" +949,1309963,6453042,2038,47,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age AS c940, orders.id +FROM orders FULL JOIN users ON orders.id = users.id +WHERE (orders.customer_id IN (84, 108, 233, 290) OR users.age > 64);" +950,1826,1826,149,11,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT employees.department_id AS c483 +FROM employees +ORDER BY employees.department_id DESC;" +951,422,422,139,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT markets.id, markets.note, markets.region AS c2312 +FROM markets +WHERE (markets.id = 1 AND markets.region = 'EUROPE');" +952,563,563,174,1,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.id, SUM(books.price) AS c4950 +FROM books +WHERE books.id > 2 +GROUP BY books.id;" +953,1875,1875,153,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.department_id AS c600 +FROM employees AS t0 +WHERE t0.id IS NULL +ORDER BY t0.department_id DESC;" +954,822,822,386,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT books.price, books.id AS c2022 +FROM books +GROUP BY books.price, books.id;" +955,4594,14044,222,0,transformation 0 JoinCommutativity: 2; transformation 5 FilterPushdownThroughJoin: 4; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, employees.id AS c9494, departments.id AS c9282 +FROM regions RIGHT JOIN employees ON regions.id = employees.id JOIN departments ON employees.id = departments.id +WHERE employees.department_id >= 33;" +956,113102,410020,348,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 3,"SELECT customers.region_id AS c272, regions.id +FROM regions RIGHT JOIN customers ON regions.id = customers.id RIGHT JOIN employees ON customers.id = employees.id;" +957,2383,5263,190,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id, t1.id, COUNT(*) AS c5678 +FROM departments AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id +WHERE (t1.id >= 8 AND (t0.id IS NULL AND t1.id NOT BETWEEN 3 AND 10)) +GROUP BY t0.id, t1.id;" +958,113219,647798,312,6,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.age, users.id AS c4390, customers.id AS c5582 +FROM users LEFT JOIN customers ON users.id = customers.id +WHERE (users.age <= 22 OR customers.region_id = 1);" +959,2388,3776,175,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT books.price AS c3041 +FROM employees JOIN books ON employees.id = books.id;" +960,2690,2690,311,15,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t1.id, t1.price +FROM departments AS t0 CROSS JOIN books AS t1;" +961,5785,9268,261,7,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; enforcer 0 SortEnforcer: 4,"SELECT employees.id AS c7515 +FROM books RIGHT JOIN users ON books.id = users.id FULL JOIN employees ON users.id = employees.id +WHERE (employees.department_id >= 12 OR books.price > 55) +ORDER BY employees.id DESC;" +962,3993,8698,189,0,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id AS c6095, COUNT(*) +FROM users AS t0 JOIN departments AS t1 ON t0.id = t1.id +WHERE t0.age IS NULL +GROUP BY t1.id;" +963,417240,1257520,798,1500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT markets.note, markets.id +FROM markets CROSS JOIN customers LEFT JOIN regions ON customers.id = regions.id;" +964,4729,8792,367,1,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 1; transformation 10 ProjectionPushdownThroughJoin: 3; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 2; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT users.id, users.age +FROM regions FULL JOIN markets ON regions.id = markets.id JOIN users ON regions.id = users.id +WHERE markets.note = 'Old World';" +965,2074,2074,172,17,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.age +FROM users AS t0;" +966,1705750,1705750,1999,4998,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, orders.customer_id +FROM orders +WHERE ((orders.id < 52 OR orders.id NOT IN (71, 82)) OR orders.id = 92) +ORDER BY orders.id ASC, orders.customer_id DESC;" +967,74906,661500,338,6,transformation 0 JoinCommutativity: 2; transformation 1 JoinAssociativity: 2; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 2,"SELECT employees.id +FROM customers JOIN users ON customers.id = users.id LEFT JOIN employees ON users.id = employees.id +WHERE employees.department_id <= 31;" +968,563,563,188,1,transformation 2 FilterSplit: 1; transformation 3 FilterMerge: 1; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.region, markets.note, COUNT(markets.id) AS c1532 +FROM markets +WHERE ((markets.region IN ('AMERICA', 'EUROPE') OR markets.region NOT IN ('AMERICA')) AND (markets.note IN ('AMERICA', 'AMERICA', 'North, South', 'unknown') AND markets.id <= 2)) +GROUP BY markets.region, markets.note;" +969,70410,401610,299,1,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT customers.id, customers.region_id +FROM customers JOIN regions ON customers.id = regions.id +WHERE ((customers.region_id IN (5) AND customers.region_id > 5) OR customers.region_id <= 2);" +970,69760,401610,288,10,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1,"SELECT t0.id, t1.id AS c5601 +FROM customers AS t0 LEFT JOIN regions AS t1 ON t0.id = t1.id +WHERE t1.id != 53;" +971,1307948,4351826,1402,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.department_id, t1.customer_id AS c5553, t0.id +FROM employees AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id +ORDER BY t0.id DESC, t1.customer_id DESC, t0.department_id DESC;" +972,1398700,2124700,13080,5500,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t2.id +FROM customers AS t0 CROSS JOIN markets AS t1 CROSS JOIN employees AS t2 +WHERE t1.note = 'North, South';" +973,366,366,123,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT books.id, books.price AS c662 +FROM books;" +974,2610,3998,194,11,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.id, books.id +FROM books RIGHT JOIN employees ON books.id = employees.id +WHERE ((books.id IS NULL OR employees.id IS NOT NULL) OR books.id BETWEEN 2 AND 14) +ORDER BY employees.id DESC, books.id ASC;" +975,6650300,6650300,4507,5000,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT orders.id, COUNT(books.id), COUNT(books.id) +FROM books CROSS JOIN orders +GROUP BY orders.id;" +976,3323,10063,227,0,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 3; transformation 9 FilterLiftThroughJoin: 3; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT employees.department_id, employees.id AS c8812, COUNT(*), COUNT(*) +FROM employees RIGHT JOIN regions ON employees.id = regions.id +WHERE (regions.id >= 9 AND (employees.id < 2 AND employees.department_id >= 31)) +GROUP BY employees.department_id, employees.id;" +977,1306838,1551778,1363,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT t1.customer_id AS c4052, t0.id AS c3598, COUNT(*), COUNT(*) AS c317 +FROM books AS t0 LEFT JOIN orders AS t1 ON t0.id = t1.id LEFT JOIN markets AS t2 ON t1.id = t2.id +WHERE ((t2.id NOT IN (61) OR t2.note IN ('Fast lane', 'Fast lane')) OR t0.price NOT IN (55, 55, 66, 77)) +GROUP BY t1.customer_id, t0.id;" +978,5325,7850,315,15,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT regions.id +FROM departments LEFT JOIN regions ON departments.id = regions.id CROSS JOIN books +ORDER BY regions.id ASC;" +979,6925,11125,263,50,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id, t0.id +FROM departments AS t0 CROSS JOIN regions AS t1 +WHERE t0.id <= 5 +ORDER BY t0.id DESC, t1.id DESC;" +980,109202,155432,376,500,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; enforcer 0 SortEnforcer: 3,"SELECT markets.region +FROM markets RIGHT JOIN customers ON markets.id = customers.id +ORDER BY markets.region ASC;" +981,366,366,128,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id, t0.price +FROM books AS t0;" +982,7846500,7846500,14033,25000,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2; enforcer 0 SortEnforcer: 1,"SELECT t1.id, t0.id, t2.id +FROM customers AS t0 CROSS JOIN regions AS t1 CROSS JOIN departments AS t2 +ORDER BY t0.id ASC, t2.id DESC;" +983,5923,9192,258,3,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 2; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 5,"SELECT markets.id +FROM regions RIGHT JOIN markets ON regions.id = markets.id JOIN users ON regions.id = users.id +GROUP BY markets.id +ORDER BY markets.id ASC;" +984,74556,452315,349,2,transformation 0 JoinCommutativity: 3; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t2.id AS c3607, COUNT(t0.region_id) +FROM customers AS t0 JOIN employees AS t1 ON t0.id = t1.id RIGHT JOIN users AS t2 ON t1.id = t2.id +WHERE t1.id >= 5 +GROUP BY t2.id;" +985,3018,5998,236,5,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t1.id, t0.department_id, COUNT(*) +FROM employees AS t0 RIGHT JOIN departments AS t1 ON t0.id = t1.id +WHERE t0.department_id <= 12 +GROUP BY t1.id, t0.department_id;" +986,210758,210758,487,500,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t0.id AS c6190 +FROM customers AS t0 +WHERE ((t0.id IN (2, 24, 27, 41) OR t0.id NOT IN (75, 109)) OR t0.region_id IN (1, 5, 5)) +GROUP BY t0.id;" +987,15668,45964,305,4,transformation 0 JoinCommutativity: 1; implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1; implementation 7 ImplementMergeJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 3,"SELECT t0.id, COUNT(*) +FROM books AS t0 CROSS JOIN users AS t1 RIGHT JOIN regions AS t2 ON t0.id = t2.id +GROUP BY t0.id +ORDER BY t0.id ASC;" +988,68692,155892,325,2,transformation 0 JoinCommutativity: 1; transformation 5 FilterPushdownThroughJoin: 2; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 2; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 2,"SELECT t0.region_id +FROM customers AS t0 JOIN markets AS t1 ON t0.id = t1.id +WHERE (t1.note != 'Fast lane' OR (t1.note NOT IN ('Fast lane') AND t1.region != 'unknown')) +GROUP BY t0.region_id +ORDER BY t0.region_id DESC;" +989,610,610,137,5,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT t0.id +FROM departments AS t0;" +990,11510800,11510800,37851,75000,implementation 0 ImplementTable: 3; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 2,"SELECT books.price, orders.id, departments.id +FROM books CROSS JOIN orders CROSS JOIN departments;" +991,2132,2132,140,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT users.age +FROM users +WHERE ((users.id NOT BETWEEN 13 AND 16 OR users.id = 34) AND users.id BETWEEN 14 AND 15) +ORDER BY users.age ASC;" +992,1098532,1098532,2037,5000,transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT orders.customer_id AS c1752 +FROM orders +WHERE ((orders.id BETWEEN 69 AND 86 OR orders.customer_id > 243) OR (orders.customer_id NOT IN (224) OR orders.id IS NOT NULL));" +993,99532,99532,341,396,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT t0.region_id +FROM customers AS t0 +WHERE ((t0.region_id BETWEEN 3 AND 5 OR t0.id IS NULL) OR t0.id >= 148);" +994,1133,1133,142,0,transformation 2 FilterSplit: 1; transformation 3 FilterMerge: 1; transformation 6 InToOrChain: 1; implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1; enforcer 0 SortEnforcer: 1,"SELECT regions.id AS c494 +FROM regions +WHERE ((regions.id = 100 OR regions.id NOT IN (5)) AND regions.id IN (29)) +ORDER BY regions.id ASC;" +995,366,366,146,3,implementation 0 ImplementTable: 1; implementation 3 ImplementProjection: 1,"SELECT markets.id, markets.region +FROM markets;" +996,1900450,2614450,2199,418,transformation 0 JoinCommutativity: 1; transformation 8 CrossJoinToJoin: 1; implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT t1.id, t1.region_id AS c505, COUNT(*) +FROM users AS t0 CROSS JOIN customers AS t1 +WHERE t1.id >= 83 +GROUP BY t1.id, t1.region_id;" +997,12910,12910,509,85,implementation 0 ImplementTable: 2; implementation 3 ImplementProjection: 1; implementation 5 ImplementCrossJoin: 1,"SELECT t0.id, t1.id, t0.age AS c6537 +FROM users AS t0 CROSS JOIN departments AS t1;" +998,2798,2798,157,0,implementation 0 ImplementTable: 1; implementation 1 ImplementFilter: 1; implementation 3 ImplementProjection: 1,"SELECT users.id AS c9941 +FROM users +WHERE ((users.id >= 12 OR users.age < 22) AND (users.age IS NULL OR users.id IS NULL));" +999,70213,403663,443,3,transformation 0 JoinCommutativity: 4; transformation 1 JoinAssociativity: 3; transformation 5 FilterPushdownThroughJoin: 3; transformation 6 InToOrChain: 1; transformation 7 FilterToJoinPredicate: 2; transformation 9 FilterLiftThroughJoin: 4; transformation 11 OuterJoinToInner: 1; implementation 0 ImplementTable: 3; implementation 1 ImplementFilter: 2; implementation 3 ImplementProjection: 1; implementation 4 ImplementJoin: 1; implementation 6 ImplementHashJoin: 1; implementation 8 ImplementAggregation: 1; enforcer 0 SortEnforcer: 1,"SELECT markets.note +FROM customers RIGHT JOIN regions ON customers.id = regions.id LEFT JOIN markets ON customers.id = markets.id +WHERE ((markets.id != 52 OR customers.id IN (129, 173)) AND (markets.region != 'ASIA' AND customers.region_id > 1)) +GROUP BY markets.note;" diff --git a/research/rule-lineage-random-1000-summary.csv b/research/rule-lineage-random-1000-summary.csv new file mode 100644 index 0000000..fdb56bc --- /dev/null +++ b/research/rule-lineage-random-1000-summary.csv @@ -0,0 +1,21 @@ +kind,rule_id,rule_name,total_lineage_occurrences,queries_with_rule,query_frequency_percent,max_occurrences_in_one_query +transformation,0,JoinCommutativity,594,517,51.70,4 +transformation,1,JoinAssociativity,75,29,2.90,4 +transformation,2,FilterSplit,70,42,4.20,5 +transformation,3,FilterMerge,7,7,0.70,1 +transformation,5,FilterPushdownThroughJoin,469,191,19.10,5 +transformation,6,InToOrChain,158,153,15.30,3 +transformation,7,FilterToJoinPredicate,27,23,2.30,2 +transformation,8,CrossJoinToJoin,82,82,8.20,1 +transformation,9,FilterLiftThroughJoin,40,19,1.90,4 +transformation,10,ProjectionPushdownThroughJoin,106,30,3.00,7 +transformation,11,OuterJoinToInner,101,91,9.10,2 +implementation,0,ImplementTable,1977,1000,100.00,3 +implementation,1,ImplementFilter,531,487,48.70,2 +implementation,3,ImplementProjection,1038,1000,100.00,4 +implementation,4,ImplementJoin,156,153,15.30,2 +implementation,5,ImplementCrossJoin,157,145,14.50,2 +implementation,6,ImplementHashJoin,171,162,16.20,2 +implementation,7,ImplementMergeJoin,493,394,39.40,2 +implementation,8,ImplementAggregation,319,319,31.90,1 +enforcer,0,SortEnforcer,1494,706,70.60,6 diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index e219df0..deff5ae 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -661,9 +661,9 @@ struct DotBuilder { int EmitAlternative(const SeqScan& n, const std::optional& metadata) { if (n.alias) { - return Emit(std::format("SeqScan\\n{} AS {}", n.table, *n.alias), metadata); + return Emit(std::format("SeqScan\n{} AS {}", n.table, *n.alias), metadata); } - return Emit(std::format("SeqScan\\n{}", n.table), metadata); + return Emit(std::format("SeqScan\n{}", n.table), metadata); } int EmitAlternative(const PhysicalFilter& n, @@ -700,7 +700,7 @@ struct DotBuilder { const std::optional& metadata) { int lhs = EmitNode(*n.lhs); int rhs = EmitNode(*n.rhs); - int id = Emit(std::format("NL {}\\nON {}", ToString(n.type), ToString(n.qual)), + int id = Emit(std::format("NL {}\nON {}", ToString(n.type), ToString(n.qual)), metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); @@ -708,14 +708,14 @@ struct DotBuilder { } int EmitAlternative(const IndexSeek& n, const std::optional& metadata) { - return Emit(std::format("IndexSeek\\n{}\\n{}", n.table, ToString(n.predicate)), + return Emit(std::format("IndexSeek\n{}\n{}", n.table, ToString(n.predicate)), metadata); } int EmitAlternative(const HashJoin& n, const std::optional& metadata) { int lhs = EmitNode(*n.lhs); int rhs = EmitNode(*n.rhs); - int id = Emit(std::format("Hash {}\\nON {}", ToString(n.type), ToString(n.qual)), + int id = Emit(std::format("Hash {}\nON {}", ToString(n.type), ToString(n.qual)), metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); @@ -725,7 +725,7 @@ struct DotBuilder { int EmitAlternative(const MergeJoin& n, const std::optional& metadata) { int lhs = EmitNode(*n.lhs); int rhs = EmitNode(*n.rhs); - int id = Emit(std::format("Merge {}\\nON {}", ToString(n.type), ToString(n.qual)), + int id = Emit(std::format("Merge {}\nON {}", ToString(n.type), ToString(n.qual)), metadata); EmitEdge(lhs, id); EmitEdge(rhs, id); @@ -743,7 +743,7 @@ struct DotBuilder { keys += k.column; keys += k.dir == Direction::kAsc ? " asc" : " desc"; } - int id = Emit(std::format("Sort\\n{}", keys), metadata); + int id = Emit(std::format("Sort\n{}", keys), metadata); EmitEdge(src, id); return id; } @@ -761,7 +761,7 @@ struct DotBuilder { if (!group_by.empty()) group_by += ", "; group_by += ToString(e); } - int id = Emit(std::format("HashAgg\\nGROUP BY {}\\n{}", group_by, aggs), + int id = Emit(std::format("HashAgg\nGROUP BY {}\n{}", group_by, aggs), metadata); EmitEdge(src, id); return id; @@ -780,7 +780,7 @@ struct DotBuilder { if (!group_by.empty()) group_by += ", "; group_by += ToString(e); } - int id = Emit(std::format("StreamAgg\\nGROUP BY {}\\n{}", group_by, aggs), + int id = Emit(std::format("StreamAgg\nGROUP BY {}\n{}", group_by, aggs), metadata); EmitEdge(src, id); return id; @@ -799,7 +799,7 @@ struct DotBuilder { if (!group_by.empty()) group_by += ", "; group_by += ToString(e); } - int id = Emit(std::format("PartialAgg\\nGROUP BY {}\\n{}", group_by, aggs), + int id = Emit(std::format("PartialAgg\nGROUP BY {}\n{}", group_by, aggs), metadata); EmitEdge(src, id); return id; @@ -818,7 +818,7 @@ struct DotBuilder { if (!group_by.empty()) group_by += ", "; group_by += ToString(e); } - int id = Emit(std::format("FinalAgg\\nGROUP BY {}\\n{}", group_by, aggs), + int id = Emit(std::format("FinalAgg\nGROUP BY {}\n{}", group_by, aggs), metadata); EmitEdge(src, id); return id; diff --git a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp index ed59687..2867e5d 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer_test.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer_test.cpp @@ -267,7 +267,7 @@ TEST(PlanSerializerDotTest, RendersMetadataWhenPresent) { auto dot = SerializeDot(plan); - EXPECT_THAT(dot, ::testing::HasSubstr("SeqScan\\\\nusers\\ncard=42\\ncost=4200")); + EXPECT_THAT(dot, ::testing::HasSubstr("SeqScan\\nusers\\ncard=42\\ncost=4200")); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index f041b94..8393763 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -76,6 +76,16 @@ size_t Memo::GroupCount() const { return groups_.size(); } +Memo::ScopedLogicalProvenance::ScopedLogicalProvenance( + Memo& memo, LogicalProvenance provenance) + : memo_(memo), previous_(memo.current_provenance_) { + memo_.current_provenance_ = provenance; +} + +Memo::ScopedLogicalProvenance::~ScopedLogicalProvenance() { + memo_.current_provenance_ = previous_; +} + LogicalExpr* Memo::GetGroup(LogicalOperator root_operator) const { auto key = ToKey(root_operator); return GetGroup(key); @@ -96,6 +106,7 @@ utils::NotNull Memo::AddGroup(LogicalOperator root_operator) { } auto& group = groups_.emplace_back(Group(groups_.size())); auto expr = group.AddLogicalExpr(std::move(root_operator)); + SetProvenanceIfNew(expr); expr_index_[key] = expr; return expr; } @@ -107,10 +118,20 @@ utils::NotNull Memo::AddLogicalExprToGroup(utils::NotNull return g; } auto expr = group->AddLogicalExpr(std::move(root_operator)); + SetProvenanceIfNew(expr); expr_index_[key] = expr; return expr; } +void Memo::SetProvenanceIfNew(utils::NotNull expr) { + if (!current_provenance_) return; + expr->provenance = LogicalExpr::Provenance{ + .rule_id = current_provenance_->rule_id, + .rule_name = current_provenance_->rule_name, + .source = current_provenance_->source, + }; +} + utils::NotNull Memo::Populate(const Operator& op) { return std::visit(utils::Overloaded{ [this](const Table& t) { diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index dd75a5b..b0ab890 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include @@ -270,6 +271,52 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi }, expr->root_operator); } +char RuleLineageKindCode(RuleLineageKind kind) { + switch (kind) { + case RuleLineageKind::kTransformation: + return 't'; + case RuleLineageKind::kImplementation: + return 'i'; + case RuleLineageKind::kEnforcer: + return 'e'; + } + return '?'; +} + +int RuleLineageKindOrder(RuleLineageKind kind) { + switch (kind) { + case RuleLineageKind::kTransformation: + return 0; + case RuleLineageKind::kImplementation: + return 1; + case RuleLineageKind::kEnforcer: + return 2; + } + return 3; +} + +void AddRuleLineageStat(std::unordered_map& stats, + RuleLineageKind kind, size_t rule_id, + std::string_view rule_name) { + std::string key; + key.reserve(rule_name.size() + 32); + key.push_back(RuleLineageKindCode(kind)); + key.push_back(':'); + key += std::to_string(rule_id); + key.push_back(':'); + key += rule_name; + + auto [it, _] = stats.emplace( + std::move(key), + RuleLineageStat{ + .kind = kind, + .rule_id = rule_id, + .rule_name = rule_name, + .count = 0, + }); + ++it->second.count; +} + } // namespace std::vector> GetChildren(utils::NotNull expr) { @@ -577,6 +624,12 @@ void Optimizer::OptimizeGroup( auto op = enforcer->TryBuild(group, required, schema_); if (!op) continue; auto enf_expr = group->AddPhysicalExpr(*op, true); + enf_expr->provenance = PhysicalExpr::Provenance{ + .kind = PhysicalExpr::ProvenanceKind::kEnforcer, + .rule_id = 0, + .rule_name = "SortEnforcer", + .source = nullptr, + }; auto lc = CalcCost(enf_expr, cardinality_, schema_); Log("Enforcer local cost for group {}: {}", group->GetId(), lc); local_cost_[enf_expr.get()] = lc; @@ -713,6 +766,72 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G return plan; } +template +void Optimizer::CollectLogicalRuleLineage( + LogicalExpr* expr, std::unordered_map& stats, + std::unordered_set& visited_logical) { + if (!expr || !visited_logical.insert(expr).second) return; + + if (!expr->provenance) return; + AddRuleLineageStat(stats, RuleLineageKind::kTransformation, + expr->provenance->rule_id, expr->provenance->rule_name); + CollectLogicalRuleLineage(expr->provenance->source, stats, visited_logical); +} + +template +void Optimizer::CollectSelectedPlanRuleLineage( + Group* group, PropertySet required, + std::unordered_map& stats, + std::unordered_set& visited_physical, + std::unordered_set& visited_logical) { + WinnerKey key{group, required}; + auto it = winner_.find(key); + if (it == winner_.end() || !it->second.plan) { + throw std::runtime_error{"no optimal plan for group"}; + } + + auto* best_expr = it->second.plan; + const bool first_visit = visited_physical.insert(best_expr).second; + if (first_visit && best_expr->provenance) { + const auto& provenance = *best_expr->provenance; + auto kind = provenance.kind == PhysicalExpr::ProvenanceKind::kEnforcer + ? RuleLineageKind::kEnforcer + : RuleLineageKind::kImplementation; + AddRuleLineageStat(stats, kind, provenance.rule_id, provenance.rule_name); + CollectLogicalRuleLineage(provenance.source, stats, visited_logical); + } + + utils::NotNull best_expr_nn{best_expr}; + auto children = GetChildren(best_expr_nn); + for (size_t i = 0; i < children.size(); ++i) { + CollectSelectedPlanRuleLineage( + children[i].get(), RequiredInputProps(best_expr_nn, required, i, schema_), + stats, visited_physical, visited_logical); + } +} + +template +std::vector Optimizer::GetSelectedPlanRuleLineage() { + std::unordered_map stats; + std::unordered_set visited_physical; + std::unordered_set visited_logical; + CollectSelectedPlanRuleLineage( + root_->group.get(), global_required_, stats, visited_physical, visited_logical); + + std::vector result; + result.reserve(stats.size()); + for (const auto& [_, stat] : stats) { + result.push_back(stat); + } + std::ranges::sort(result, [](const RuleLineageStat& lhs, const RuleLineageStat& rhs) { + if (RuleLineageKindOrder(lhs.kind) != RuleLineageKindOrder(rhs.kind)) { + return RuleLineageKindOrder(lhs.kind) < RuleLineageKindOrder(rhs.kind); + } + return lhs.rule_id < rhs.rule_id; + }); + return result; +} + template void Optimizer::RunSearch(Limit limit) { Log("Starting optimization"); diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index b7678a1..a04f77f 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -50,6 +50,16 @@ SchemaCatalog MakeTestSchema() { }); } +size_t RuleLineageCount(const std::vector& stats, + RuleLineageKind kind, std::string_view rule_name) { + for (const auto& stat : stats) { + if (stat.kind == kind && stat.rule_name == rule_name) { + return stat.count; + } + } + return 0; +} + TEST(CardinalityEstimatesTest, AppliesFilterHeuristics) { ASSERT_THAT(EstimateCardinality("SELECT * FROM users WHERE users.id = 1;", {{"users", 1000}}), Eq(100)); @@ -111,7 +121,7 @@ TEST(OptimizerTest, Simple) { ASSERT_THAT(SerializeDot(got), Eq("digraph G { rankdir=BT;\n" - " n0 [label=\"SeqScan\\\\nusers\\ncard=10\\ncost=1000\"]\n" + " n0 [label=\"SeqScan\\nusers\\ncard=10\\ncost=1000\"]\n" "}\n")); ASSERT_THAT(optimizer.GetBestCost(), Eq(1000)); } @@ -282,6 +292,53 @@ TEST(OptimizerTest, PushesSelectiveFilterIntoHashBuildSide) { " (SeqScan lineorder lo))")); } +TEST(OptimizerTest, TracksSelectedPlanRuleLineage) { + std::stringstream s{ + "SELECT * FROM lineorder AS lo " + "JOIN supplier AS s ON lo.suppkey = s.id " + "WHERE s.region = 'AMERICA';"}; + Operator op = GetAST(s).value().op; + SchemaCatalog schema({ + {"lineorder", {Attribute{"lineorder", "suppkey"}, Attribute{"lineorder", "value"}}}, + {"supplier", {Attribute{"supplier", "id"}, Attribute{"supplier", "region"}}}, + }); + Optimizer optimizer(op, MakeMainRules(), CardinalityEstimates({ + {"lineorder", 6000}, + {"supplier", 100}, + }), std::move(schema)); + + auto got = optimizer.Optimize(); + auto stats = optimizer.GetSelectedPlanRuleLineage(); + + ASSERT_THAT(Serialize(got), + HasSubstr("(PhysicalFilter (= (attr s region) (str \"AMERICA\")) " + "(SeqScan supplier s))")); + EXPECT_THAT(RuleLineageCount(stats, RuleLineageKind::kTransformation, + "FilterPushdownThroughJoin"), Gt(0)); + EXPECT_THAT(RuleLineageCount(stats, RuleLineageKind::kImplementation, + "ImplementTable"), Eq(2)); + EXPECT_THAT(RuleLineageCount(stats, RuleLineageKind::kImplementation, + "ImplementFilter"), Eq(1)); + EXPECT_THAT(RuleLineageCount(stats, RuleLineageKind::kImplementation, + "ImplementHashJoin"), Eq(1)); +} + +TEST(OptimizerTest, TracksSelectedPlanEnforcerLineage) { + std::stringstream s{"SELECT * FROM users ORDER BY users.id;"}; + auto parsed = GetAST(s).value(); + SchemaCatalog schema({{"users", {Attribute{"users", "id"}, Attribute{"users", "age"}}}}); + PropertySet required{SortProperty{*parsed.required_order}}; + Optimizer optimizer(parsed.op, MakeMainRules(), {}, std::move(schema), std::move(required)); + + auto got = optimizer.Optimize(); + auto stats = optimizer.GetSelectedPlanRuleLineage(); + + ASSERT_THAT(Serialize(got), Eq("(Sort (keys users.id Asc) (SeqScan users))")); + EXPECT_THAT(RuleLineageCount(stats, RuleLineageKind::kEnforcer, "SortEnforcer"), Eq(1)); + EXPECT_THAT(RuleLineageCount(stats, RuleLineageKind::kImplementation, + "ImplementTable"), Eq(1)); +} + TEST(OptimizerTest, UsesHashJoinForConjunctiveEquiJoinPredicate) { std::stringstream s{ "SELECT * FROM lineorder AS lo " diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index 204386e..48dc4d5 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -33,6 +33,33 @@ Rules<14, 9> MakeMainRules(IndexCatalog indexes) { std::make_unique(), std::make_unique(), }, + .transformation_rule_names = { + "JoinCommutativity", + "JoinAssociativity", + "FilterSplit", + "FilterMerge", + "FilterPushdownThroughProjection", + "FilterPushdownThroughJoin", + "InToOrChain", + "FilterToJoinPredicate", + "CrossJoinToJoin", + "FilterLiftThroughJoin", + "ProjectionPushdownThroughJoin", + "OuterJoinToInner", + "AggregationPushdownThroughJoin", + "AggregationJoinTranspose", + }, + .implementation_rule_names = { + "ImplementTable", + "ImplementFilter", + "ImplementIndexSeek", + "ImplementProjection", + "ImplementJoin", + "ImplementCrossJoin", + "ImplementHashJoin", + "ImplementMergeJoin", + "ImplementAggregation", + }, }; } @@ -47,6 +74,15 @@ Rules<0, 6> MakeNaiveRules() { std::make_unique(), std::make_unique(), }, + .transformation_rule_names = {}, + .implementation_rule_names = { + "ImplementTable", + "ImplementFilter", + "ImplementProjection", + "ImplementJoin", + "ImplementCrossJoin", + "ImplementAggregation", + }, }; } diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 5d0758e..1b81376 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -17,6 +17,14 @@ template utils::NotNull RulesApplier::Apply( TransformationRuleId rule, utils::NotNull expr, Memo& memo, RuleContext& ctx) { applied_transformation_rules_[expr.get()][rule.value] = 1; + Memo::ScopedLogicalProvenance provenance{ + memo, + Memo::LogicalProvenance{ + .rule_id = rule.value, + .rule_name = rules_.transformation_rule_names[rule.value], + .source = expr.get(), + }, + }; return rules_.transformation_rules[rule.value]->Apply(expr, memo, ctx); } @@ -29,7 +37,28 @@ bool RulesApplier::IsApplicable(Implementation template std::vector> RulesApplier::Apply(ImplementationRuleId rule, utils::NotNull expr, Memo& memo) { applied_implementation_rules_[expr.get()][rule.value] = 1; - return rules_.implementation_rules[rule.value]->Apply(expr, memo); + auto result = rules_.implementation_rules[rule.value]->Apply(expr, memo); + for (auto physical_expr : result) { + physical_expr->provenance = PhysicalExpr::Provenance{ + .kind = PhysicalExpr::ProvenanceKind::kImplementation, + .rule_id = rule.value, + .rule_name = rules_.implementation_rule_names[rule.value], + .source = expr.get(), + }; + } + return result; +} + +template +std::string_view RulesApplier::GetTransformationRuleName( + TransformationRuleId rule) const { + return rules_.transformation_rule_names[rule.value]; +} + +template +std::string_view RulesApplier::GetImplementationRuleName( + ImplementationRuleId rule) const { + return rules_.implementation_rule_names[rule.value]; } template class RulesApplier<14, 9>; diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index febe06d..74ae0cd 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -175,6 +175,31 @@ void PrintRelation(const Relation& rel, bool preserve_order) { for (const auto& r : rows) std::cout << r << '\n'; } +std::string_view RuleLineageKindName(RuleLineageKind kind) { + switch (kind) { + case RuleLineageKind::kTransformation: + return "transformation"; + case RuleLineageKind::kImplementation: + return "implementation"; + case RuleLineageKind::kEnforcer: + return "enforcer"; + } + return "unknown"; +} + +void PrintRuleLineageStats(const std::vector& stats) { + std::cerr << "Selected plan rule lineage:\n"; + if (stats.empty()) { + std::cerr << " \n"; + return; + } + for (const auto& stat : stats) { + std::cerr << " " << RuleLineageKindName(stat.kind) << ' ' + << stat.rule_id << ' ' << stat.rule_name + << ": " << stat.count << '\n'; + } +} + boost::asio::awaitable> RunQuery(const std::string& data_dir, const PhysicalPlanNode& plan) { CsvDirSequentialScanner seq_scan{data_dir}; @@ -264,6 +289,9 @@ int main(int argc, char** argv) { LoadConstraintCatalogFromCsvDir(args.data_dir)); plan = optimizer.Optimize(); plan_cost = optimizer.GetBestCost(); + if (args.stats) { + PrintRuleLineageStats(optimizer.GetSelectedPlanRuleLineage()); + } PropertySet naive_required = parsed.required_order ? PropertySet{SortProperty{*parsed.required_order}} From b2a1810f6d4791f0390f0081a079193985f688c1 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 15 Jun 2026 18:08:16 +0300 Subject: [PATCH 115/120] Done? --- .../stewkk/sql/logic/executor/executor.hpp | 2 +- report/naive-vs-optimizer.png | Bin 25109 -> 27856 bytes report/optimizer-speedup.png | Bin 28446 -> 18338 bytes report/vkr.tex | 142 +- research/benchmark-results/ssb-sf01.json | 3240 +++++++++++++++++ research/benchmarks.ipynb | 12 +- src/stewkk/sql/logic/executor/executor.cpp | 54 +- src/stewkk/sql/logic/optimizer/rule_test.cpp | 30 + .../aggregation_pushdown_through_join.cpp | 33 +- 9 files changed, 3412 insertions(+), 101 deletions(-) create mode 100644 research/benchmark-results/ssb-sf01.json diff --git a/include/stewkk/sql/logic/executor/executor.hpp b/include/stewkk/sql/logic/executor/executor.hpp index 0cfc999..8549848 100644 --- a/include/stewkk/sql/logic/executor/executor.hpp +++ b/include/stewkk/sql/logic/executor/executor.hpp @@ -77,7 +77,7 @@ class Executor { TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteMergeJoin(const MergeJoin& join, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); - boost::asio::awaitable ExecuteHashAggregate(const PhysicalAggregation& agg, + boost::asio::awaitable ExecuteHashAggregate(PhysicalAggregation agg, AttributesInfoChannel& attr_chan, TuplesChannel& tuples_chan); boost::asio::awaitable ExecuteStreamAggregate(const PhysicalStreamAggregation& agg, diff --git a/report/naive-vs-optimizer.png b/report/naive-vs-optimizer.png index ed0bc7a05323f292206b5b3f5563f7dd9a4c2c34..8a320751ea674a9dd56d90ae5216750fdbf36326 100644 GIT binary patch literal 27856 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 Z{Nv$lv7dG%&1^Qx;S+}v4xGODe*vI{WCQ>J literal 28446 zcma%k1zeTs);%-c8OI(K10@VlQN&R|r5y_pMQITM6_65;?wGMrLPQvm5a|{qlyt@b zMWjPgMY^P=|7+tpI`{kTcjwRV267JXdE4%K{nc{R%8B zKNz#He0TY$AMq0w_0aeDUlGd#$1N32&sy4?HrHi2a@z9zIaAAX24~h->zZ2_n3@Ri zZ~ui~m~V}~rR8}Gk!{#aG z|ErR1KzF@efZWjZbYH8`_?zP|f|7I!Ou8=p`ZjsLlAF$Gih@i?@&;KQOjp6{(aDmcp~=JAcM7ud?g$J#YBaIPEF6;1dovW!S}4@s{CeD6 z%~y90T@Svzcx~%ntq2seQz(l#QWl$-6SH)qoV0h^xwrS9URkty!R#+@V|nZD8L9R2 z(xss<+*far@?fvYb;-@J=}kEK*xaDx{sFh^*URG69`0DTk@0?=d7O;~wV5`iR_&z+ z9EQ8(_v~?X$X0uJ_Qb=p?j`3L@A9g*6-$|Hj|?9Cc)y9+DW@7L3z^haTkd2Y)LM+QhI9A%J)`~2w{mk` z+^h8Wwn&h$rRbP7AF!(?tLrJHDQh*(OS zW)J!1jQ5DTvk4r$vWTm)-lj3$ropb&H_<6O#2BZLa{B3ysrn`BI9>`&`Qx|uoNa1q zU-9T9e>P6VUqH{}M2db$dV{@ew*8Pf*DSoDrT^(7$+k-?G>;9m6wA6ixsuU=I>Fg89Os}g_WMS`DvRo0z>)}k$I*0|<&;ymA_^?jDB zjkPJu`TXHJKIG<)3)!Q3>N7h(Jiq?p>31wFYbFogSh?1(Abh0JMe_L*6>mpJ$H4}N z-j~hh1|Rcp_6+@bVRk{YdApyMvwUru@v`O1BiMz_+miA)%aXM7>RJyRJZLyR+F?qbhzO;~J%qkPx>U zH_Fvbvv05KO--;HvP&H5%gvpd9w?HGRgP78b$g57_uqf7go`W;mXv%xlxVX0f#ayT zRd%1LJq9QosyKb!ayu_A*Es}kbh zy*qX3;>9SLTN}oj{j?MU{d{|+#`M&0WLR}>UbAM;5A&8QO;1f?p*JhFK0e96fKzOD zg}shWScYZ0cTA{h?xf05vA&Du&9B07q||e76+@T`U@FF40To+ zRm3P~V38crrI*&q$jF>{Y#x69{(YrK=ieIzDTYZe#)Tc(q7rvZK|#Sydy&{D*F(O1 z(KrG9Pw)Obk!73YFKFj{0t3&ZLMA!Ebcv6tqpX!vwOHF%^W&u!TjrKn?T zn~Q?A9-B9NbH|^2tYFnyS@H7LMj^X?9VaZMn3Io_Iqlm*j7++VQ;k$d$HokYyWXC7 zaOyWlC#S^GI$GdAF5--n;&IV_Wj9bBuf7Y>ZAZo9U7ZTvmlts*(2ID`W!P&% z4#VdHC7e!-)LD31cU8Za*cRVdQ_HFy{k)bD;~y% zZQHgv;nuE_bk5poTod-=f>kF691tj7ukbAr(l358Hr|`77{?*$Tojw@6$^CfS2i+z`=t!79OgZ=Gx`e%?2CvCnv3jfj~CG z*Vkh~A9*4;I?KZtZAy_5}9M9J?%04WnF5)0KW@a5gU zy)UD+A+7-5x8oc;>K6D(K|0 ztG~B5QZ7(rGvZms^f_F~8h6wEzJL4?_29uTBdxp4hs5aWwjB);n>%-|!nt!@3yNwH z(trQ`_qy6SCvQu-OtE@8IXe1?+L&N1iD^8ZniO+(cBVJ)*|R5R= zW1pTbsz@5){z*$q5If4w z!68;N+kTahp$|5{LV&|V{=}9z&FnFu-~xO#^|pTQYl;pUIiY6qd??{=gXC(QuXI!K zPBF2QKmhXl_g^$`d2Lr{^Cp!~mfvqng@iud@W2zd;C^W6P~on|HYDb%x~gIPUrmQ)~~? zjBAJewX_iESUnSmM(T~Q;N*K7vMYcuXrDGZjRa~s4Jiv5l;Pbo#eq*EetW8=}Dy2s17xPm)Ar&dl(P9~0CHmX|vmu7DUkF0N&i8anW?1=y6 zG{imWz6}fU&+{HrljEJ8iMf@u8V+1v9=`JR1|FVv;1z6|j>cS-F9Q*nj$Sw$^BC^F#i-f(GljxVV53dN0=s*!EBEmy$Ai z>CGczKN#h3{bE=ccj4V#+bSLdVz^zqCX#&=^Q@Y;E$d!pZ;m?cnVv`3WB@k3IpYb=6Ma(d zT#}kr9py4Zsq%=&TuvG7B;%R~0f9uZ!)S*dtqu;YDfs%YE3 z4|9L|>DZ;Y%S;MJmakqN3+NMzAKHJowlT%5=>=NT()6l+#Mv8`}`Ui zQO82|ikN-4Xx&p6y;VJ}t?Z~|c6h7l+vM<9e%lhGqBbGMshXLYQRsDBzBNX)H%s6- zBKwXVI~4X^Sy*9|m>nTG^?BcsyE~O_Z66`J#^77t-Mf$PyFCA9n4pVfV(wIiFQ3|d zAS}aoPkzH@D#c~TKGZ9U7}FH7>InO8){pvlf%Z32LJ07Yl(6~7M=c{$l<^%#dJG$L zvKMlSMOA4!9Ki*aVr^K+Y7mH-4l~dnH(kMh^4Q_SHzkrlng~c6) zm4-ShhK6fRJH!1nOZ%GgfHU~(okr?Uq?-f+0XP*Vsy{j(LKzG&M~mN27WbeW`=hzF zwN*kd-)k*JEBnE=5afYa1Xe7RY2(qH4<9~Qw!CKRZpc!_yls4mZj4Tb=%s|3#8Ff5M>869YiMQX2_Xh1I5R~RI&zDRQ70l#Ke zR9l-qP|?~7=jT|fp8^Up##H_^7(^(EvS@u1-4OTd5{DYxYMsRwW-qGrTD#A(t9ttg zXUroZwfF)yfwOJbHUU1#FgGNW~Q3G!TX3Vu8 z>Iiq99D9k7yVVSva^`E-J0S0q8J04O#0QT>tgPO!abstZh3t8WyZSG8x`0y>(yCLI^`g}T~1^C2K)Q77D{+00)1BVFN`0$u6{UO z|BUeu788SvG6eWE|LxkB|N85%a(ur!DD(XLz3cyEyk(8(p|awgNIAU2o?{rRnFbp7H|o$37L)>8OMer2g(3XopL z_yAVPN{4=+0Cjr2*aJCJV@3z|@7Hh4ae8$}ATp_yd14#;Y>(C=PILeQMprIfy0qfK z>3yCF$n~3W5B6gZs=BWdVr65CKIpzGdjGX0K`*d0>C2Vx&!&)Wqy^ypaHUQ}gyNc1 zBk_z%Zys6JWy`{8`K(*FS2;$hq&!+t-2Go)evL)#pnsZ_SJ)qatQ=_-weBLkIBuq( z;GHwtvKrwvKXl_Xw%Fj*cyFvtZ-YHJYpOxn1_Tw^si`S~CNTrsu!*j(*p|Vyal;1t zK}W`cz21h~>8n3B*9C7NB588r=anmoY1j>ZeEIUFo10tdr}s~JWax}=azpq8Een0o zGtYinz_#OA=(k%UGf=#9=S~%0T?+BQ^SAn23OglQKwYn1{Rx1=Velic#xVp9g}B>W z)m4I>hTjSm^)}|_+K=>fI|l&$tUKUlI~c$`u{(5PDf;p<({&t1hw3w|K-?2pjWTU| zttG2+kw*&}8yl+!5JBl{&)HioA>GrsnSL9N_=f>DylOU&K740~eb3`orHI39o(TgV zu5XJ0>{=z^_(;UE?HP^{?^boCki9=RjkQN|YQ$oj5;JXi6Br8&-RZuop%|fg2w=*7 z)x4RrgCg-S&)yWL=G&^}xh^gXI79@WkKOzALOB*|s%c|GXlK34^dwO)ad+lESM$!Z zsd3O7woJdu`Ql{&`hLH6}x;;o&uxf|SRU|&|4<{Mtx~B#Thf~WPJ#Lxa z?2#al>1-p;Tiig>VPRpGFBo^+wd*+~7;|&;gC7~c$I`aE;VOw2^yOtHwyH)GuqRZ? zQw5*5Y{`=Q#l^>z<4-7SzqnD-T;M0LdHt8SvgoWfXyAMgSd;-ZAr*uXa>{Wm-dnnA zW0NC|w57MICGRir+olS9d$5HWrTMlN?yFtA{$Sg?KQ9n7R!TbaoHY+&A_4%M*#9aq z+XwA87@y*09A@Wm@ug#3>jS-}~(v z;Vb&`G7cYg&j&3G1LBRrNp{p{reh7Rm#In8z5)R)l0(#5zv+cL+j7<~zrm7xL2!|A z!R;-PMB}jw${?%o`4#ZUB=gDYzVaza)-ABC(y-AzevI)8`3rG^x2NnLCIK26bymjL zWILpDM=M1ufFzqA)L~xdxxCPjZe;+Cv&Wc=lxHZl#6UWN8oo~#{CQDE2Gv9MZ z+W$(LV#Hy25UPV`8Eb0)7p#zWnBTsq%+< zM~&+mia31dK12wAH^#kV z@vtngscE>Hm}u%>ByQ1igVSkH{z#yR^85Gi*%pKE&wR13-*-7J$aeUxUd8)dE9s;8YRAzTviZvpzOk|5(K4=x$o)NqQ~9z%}Lk{D}S|HHrj71nM9 z(JKTx)+0$bR$lKvc^S{)-Ec;D2mqGRP_?#aG}x<%GMxa!rtfM=8ig% zYS`b`cN2hJB~df}+R}}$z?;GNqjMr$rl$aQea4%xr_z^jG0tMgRs;})>=`)zV)WxJ zk|KwYJ&`clag)mfge}S=k8+6*ycS@)i7YVlmArrvzb!k;c@IcQb^di}9%(qBixu={ z1m1sp^OZF3!IrzG9jR5CWzda$AoD?gpLP2!*SsDl>b4wzk*Pf zeUOod+smXDFJ4U2&=4YA2iPCmP3B%q=D|||`YC~&^|8A<{tB1#aU|JdBBhY?^!7_I z&OToShZ_6*xee*N3fJcYXbYCHg`Z!pq@-lC{Qdn0br?{?^<0y0!_}^sd-v85X+~N~ z2a8CtXq8iZ%sAQ__5ROt>M|lWJpnlT(3Zlxv8Vq0ebp|L0MhXqoyQ9;|MtN-Wy3e6 zI79+_2% z7d4x2PhlnxOKCvIojZs9gPFVfb$_xb^CR9(+fE$R@wNm?rqnZgA$u{{xdJF$1qJirUdDI)7!+#@ zu5oA+uX(cTIC-`fSGr+ug2S zEyk)+PSh0lOkn0BwO^5ou+tr5Qc==sqpSd3HW4YAZf*Nq3v6*21*n##R?Lq&zuB|# z>S6CU!IFu%Glqk0C8Yi1){&BI`2)xnRR^eSf>@Rtp@^Ee&4A{^=?o?8@&M*`p@g7##z-dMSPFWw|GV!;e-XPa+VE^RFe zPDI8BsQ9&`Dlr%lJ{*Xajjb9XUQyPUuLSWy8Df2BP!(_{HrcC5GbrdLIx!A% z-XEBxvm$mQAR(5m#t8e--VES*y`jE5u1=^Ss^Ex_@_1w*kQ~DYNmViVPuv;+1*|tV zmwr+*yvu=tSv!d_`SEMqkYwf?9c#|)#di#Rb>EH-GCtI+Jq*~1@edX@&ycOmOIr6g zpps;DRDI^>u143o(#v~(+Lh{}GcR*JOaA>E3yl}C@4mP9(%hG|wY490zhlW?9`H$W z!;)!>nX_XnY%AUg`~qPolF}=1q<@wm%bHtfif0zQtJ=XC2%~iFT-I}KUIU_Ht}WnC}W-dCK4Bv+GR6`M2B zFI$nIp$=gP3SJeSKq7=ieMmBFHwP}KnbgO4dHt+imANvvsycN?DY9&r$9Y9dgM}LF z9)2i_5T@_^n=eYVm-1~Kl=0hB*?O@`IMHm4Q*u-11a`lHNRh6ZZ}ZDb7cN{NFh$Z7 zZ)H`2Ml7MMuD1_^PV#G@6#Mw$iZ7Ss8X6#Cb?Efz(^cX&$ihU{ROLj zIpx|avmol^YiC# z`Es_394xMLkmzbbj=$T^c=Rl#Tjv|kUa-oCk==Hl|0^(LiOrSoS&~<5%VcIImMKqw z6?;27EFg^$TNK|izGub->z2M^YZT6SIkj>e)p95Lub+Jr5WRNa<(2c8Q2y;r#Oca- z^~e(rBqoC{7&K(rbyUXR{aY$yt1U}IrDUupv-hwDiQM#+%(H%9E$XpGrC~CgPd<8Z zt$_KlY0Z7ZKLPLZHe7w3%ty7dUw{3T3J5p8F{u~OIv$xdDa<#{&dT!HWvW>br>2PC z;hb#?Vku}psLvs6zMo22FFd&t9eN(;HFbXZT$Vj5@36d4s(TUSh;y|^l&7k0v`Kvi z#rg6$HG%Hxq=D08Rx_jNhuxArf@|ZBrE?Skf}J7EF|cU_I#GprHLpWn}}h*r$YmT>%hzA!*o5kTb7kPt%(Ewy9@?))2sHjuWoMr{3iQV`{% z#s?tl7y(TgHe@|^h(Gh(ZL>ny)gR}t^n#wEJe^}yl^oaE@DlYWm!Y2e+R5F*!fG4k z0*;|%Vrn~*SdU$=jJhxf7z(z#b)K2v%r3??ww2+sv7!I-w`Pa@e0AHucrD&7C>r?e zp6`r`6i^gjg+0Hr<9UUi=qigI<5FrrzFdE-uroMkr?-9lpL zG&0kOLPAt%i;fKH7hL}3C@eY@4vZjsS63f*8Z40_u>)}yWx};qUDfia$Z=}SSvS`r#w$*D_9l zW%`rtQFR%Aafh^?oN*HZkXU@)VZeFqNF%#eeT@XG8R3osEaF5vLZ1p0NN!#f{ZJ>` z6}X6T$mC^s=dBG#N}*s5)fgqd%xj%ad*%)$5%JkjkaSr3(%FTJ*VfiX?fJG+C&f(A zpqoq;!%G9udaFv@A4p#QhLeD^Dv%Bj>o9S|xq{Y~$gn}s(9XAd!4)WV>!|rsO#`XM z@Y&VH{yU9NeC0IkTL8ogTQ6U_q~$60n%a6cx=>kfpn2x*S$*j(2 z?LC6;w0sf}Xqv#IhZYx1gd;O__dyszmT_`AKlO}lefJ_6aj+mcPJQwNeG1941R!{2 zQI5WgB^m=znHj2MPo-B-ZW8#Q=87X2lVSqau&zBgmj#f;i@)p?;zkC_cRtWtK?FNM zM3li8nwy%|!=!{VBjBeT@L8&8OjF;gk@<-h7C3*2tT$yIRgcuN-W1;1ZT3N^3b-R) zRnzVOScxAul)6sq7q7fO-??Kw@mlaYE-7oQBi0@&{4!S7Fz6^V&j{>vQ$aFhm+}lN zBeF@L5cojUFd_{&Uoco5W`_BPKRCV(FHrv?90Grq<~WVhg8_f&pc=>V`nS`D_zFM}e08)q$5 zI7qcDa{U1BQYxVu7WsJ;Bjs*$TlF?*}_RhQPSTPKLf zOyyFX9dy6c6y1X5R4TIv+!H$Wge5cddo?#?=|_)t)5#FuM21Oq7%^G4P4grb=@6mr zA>!yMsYre5?X0f;jU;xD%U#h|hkVKPgz`(JILvO$-} z$K$xTE5Ucp_6d~Dh^`{GpYAz)a#E)9&WaU!QhZX;0F_qLH#=SW7HRDA)5sXK)z37k z7ny|ZqJLmOHc1mD3=Rp$>f^seQZ|{I7&y9Y>xn`CJY+VzGD)S+QhgtuFN1v&73;F> zmZqjqGNnMetwKaF)fUm?MS8*NUW6rk$QydqQY_^sP80bz*Yi$&f1$JKKU_>KN*ghn z*%?r1;-Fd>f(TnnnR7dz^?zD)_#u{OB|&m1;&e`@_y76q`45{esDUd~K*Xr072 zd5OtkB?zK%$k-!IFm{FQ&e3`4tu%eY&FDX!Zz8ItggXVzKT0b{D_na2Ve8)(Rvm1U zJ=w046BD#)>Oqrx$R47E3R<^Y>&mL}ysftUnU?LaQ=%m5W&SZggjX?Qlc1myqW-J9 zyAq*&7P@$yE=R1k?5PvJbm@}D05G&S{6ap)nsIFHsE+|;v}j40)%J-MAVby`nGgD>He$ebu9(BbFgRPhS5^5muJ_@^WYFU|IQWE&*w}w!skvN z^MttSaBOJF=?O(FO&q^6NZf%mK9u`6;o+0r6>(w5W`@$W<4&xp$kmils^dMGwWtl+ z%#oyBofQiMvlexB``*qR>>r#rcR61a&L`$*umnX8@@=`Z3o8Ki&zn^%_<3TW2)T(b zQ(I@w45b6YEQ$QW?*8Yutz>C{uPW>W+$y<{T=e#>Yn^dr#vR|zA#Se(IA4?Flvx?4 z77BX>Le{GuTMuuX2DHDhqjz@brsx%MN*x^&nD>fZP|m~&cMQ%>qQQ#^z{2)CiNG5 zL|Asvwh(Lr$Vtp+J>sMs=z-;>M|$_5+8#gOVJ(<%nDq~5>Czp zSY#+6Ljk>rPmF-c06Xs}8CC!Zx;)xesy&wFI+_c4^9M>b^!Tv8Wykc&+UG9Y+=geR zg6!#j<%^)@3R9LNEn;%{KvwelBCvM{Em+%4HWjEl6wRqX0^2B$q@?7LJ39^_&Zmn8 zh3Yi(i#L=F1CGc;%%UooJBO$WP;doE$52OXVvK2H4%^M`vckYgcq-a9H~40F28(oe zV=h0f8^c0>Aw>J+Bi911^B3MfYSFf%Nv!YL(lH>pZjYNhV77yHop1!k`DxnA0IewC zlgQ*uj$CBy#4eAP-9)0{hTxHTdU=5&3_=KmoMeLb-)(lkuswihi%mP2A65rkMe;L+ z$KJOOrQq~5A2iNOe+tz^35Mw5!tJhr{sk$SI3H5*ww`=M#otmGcj7k&+5Y7;(N+?Q z+_^?0V(|=Qg~qX;!XBz%@K$JS)yz7MsAN99=p|XAu&0R9@7!280aaj(cm=E}k6Y|f ztZ698BtLM$1Rfs+*=SPX$gzU3$>kqg)z0z(Rx z573sTN_%Nj_hOi^?xDyWv8pEFTPf9xEqk=(F0?^kMA1-W?~dmyw90XkL$G5%DtbT3 zQRX25j$;AS>Xw3JSjyHF-Vu<3xRslgooxl%HxCRNSoswYC8MD&<@H3};neUy5KMR- zA;}loXN!wAmes}?bo5#3so*_gPg&S@khX~icvJBeSSSXCdHb%UymNA`j<}i0qI-RB zDraCv5*IOoIf?9-sB-YM2a6k{a;1nO{eBd%ErV;JP(L)_cz4$27jJKGG6hXN_4;up zNLaK6+89C~r}8t843@Lv!?T6t44)jyomSqv_j?-wd)Jvur04^rO@&MHV!>TFV=hKA z{9?+j&$Ow+SrT%Zc?uAf6k#n`#((lSYQFMcQu57DZ$x{`5#8dE@f5vb!jl)(7Wtm; zNO~3aLUV7gsm=U6h?u_x&805O|To1#rKt zs!|0S$JI8UlWSwA_ny50W2_PGk(;}F1%MV^C;>oVA4Q<_ZjaWL&?m~%8=Yfkb2*a3 zKz7Jz0?Ra+_s+mfFyMUOxYQ_2iS8g=C7!Ua33-~Rr={gG znToPtxL%OmqV?LZPkWz|@D`%0B8dNkK5=#xo^S)$r zKZ8u;8hs1gZ2QfU_{vKT)1+=-K2U^(DXFkw6`x z9MU@~X53iq)jhjC4&o)fv48#eV+S1#`rNWrt73qfXY4WHf16d}q9Cl*a+GW*pAl_z z1edc~&6clTX++rR*FxbU%lKsHzh=x-pm}72B)LM|J|)PpUxsY{>j%CN;&(fd?*d4* zCYf(#4Z@o|l6yI7AKl1efG3Jq7ILJVEnM}(4?keB?t0#bQ?B-TZAVY7q0Aa9(!R-k zSDmLM5GKiVGjxd79aiKS{qbp3!MF=s(+n#%&$_jnOXG{kfJloyKBG7M`?qgkjE~a` zc2a@E$xBy_=mXhf;MLH__ttq9K4iA1RueKxjJBvrXVNq3O<4d|0-RKLcL>(qdc&HO zXib+%E16RGZI$7;fzBw>R4Q`S&yQL)rZjqUt4{K-=>6!l^q=sK8ZHPnt*6w8BQxE# z5lH?ND#L{>I&YSMq+(@KV}iAmSr(m0<5fPWso1% z@|Yp4@8htBB(1$^Q9_as9?_R<^S{5%zkyo7S&|N^(*qmFMGcp7sPDIw0$PPfsYp+D zWHP<(-Md#1dfVve=wr`mq=pJSAiuR2bT`(dn+5}Q-!v450zuBx?nNI@{loLn8$%t0 zr_kY|37F@FG93<3mfPIqpnIO7t9Gv9eF!~y6E4+krK`aFyVuS+{hy?i#mHg$PmW z^K2BG0^-!oosc;yW-SuChtf^^S9u?LRVkRFGP(%>Txb8s_5W>G%y|;MvgYiXg5*Is zAt@F>e%p+_O6Bqvt*uX{k)zs5p_I-9y8ra;7(`x@lnCm=I0rEOP}EyHV7J*`7+@4( z*sM1KF|PV!ySC+Uml}M32a#7&wue~gT;XS{Syc)Bgnoz{tPK66-i+OSCUG!f)Xe99 zK~&6ddm&;G+#Ljm+XM@`_l%~3LZiQ^O#%!jXH56Zw#Dm8_x5~8Ak~}v1X!|Bz{v!q zX;(PGv4CfHt58NDx2rhZul~Daf5_=jJLRb;i?tJpnyxB5rzxTY+Wz}GZK19yzinET zNGBA+199~zkNd!Ek19reANy&TrT~0ykN2V3&C>xZe}ON9;H6=GMk*|;XKciz{_&9zS^z3n97+QtC8Ip*vgy2cEdCbmd1SyX zP-&?TN8g34w{>qrJRn{tjDglKEH9ob3BNSo?~gz9@us4V>ZDMJeJ0c&SoyF>!U&49 zskM~Ff0NHi&K7WjflYT3?zQMj7>K1};WXXJZ5{-}CHcO3^1xxzAp5;@&Vr7#W%urC z4}FhYGdH1@kC#`51UC3i$;k-atG-9tT_qez;X8|U_w@k~j0;S@i?pjq8 z_LD@g2tEXK@PzV(%2ob_FVC;Gv}m8?^XwWa#KS+$AhUVhsQn zShVLqtjjDb)Q-q?g3>&-KFFB6aI&)pe5j*Tws?D4Eh?edR&l5%cOn^+3wG$mYSTxa zHi!#A(f(p~$?m*?Yeg+zuD+@3+FlkJi|p@@J`L_@2!?YPEKmkkvP5Z0#6i-%76^&C zA!e!=RF0g%ip-xHO?>Vn>0@fVaoP~ts!A39N9@y|K^-2LoCu1$@k}Rl#(rrAT&LqY#^CkhA2 zq7mz7H2(h*(Dw}gf*4KiBuLeoS^6jjm0jN7@=J zaw?;es2E2O8j6fZgVx);9u~DiR8+t@dY!vkTQ_QHX^m)OX*qj^FaC$XZqPs#1Ym}C zL`kI_$5Dj^t8Q8Y!&RbL2}x@sh@}c>G0uZDZ!`{$+-;IUUD5lDwl;NStzH_zwXb&m z1F#e95?OD)f>MC<1i&_F@2RoQZK9#V-_pqcfwNS|i@<*}3fq_CYW`_)wNM@*Qa-VU zPoS+fJ&_>6jCj4f0mYFaXr7Ue9!kW%lT&|+i|qFB(*4InA}t*OwRz+`-o0za^k==) zyBuWouD5UzxTc`)D^}zRo0%R2e&ARm#T~7@$e(0tAXadE8mPV*<~OkAyWZhkHq-@z zuXmTJnFl$GYK+kyW>v|0=sinxc#XbbP_Xpv?hmP>kC+^%}hZH&p9i_&H zZ*pbLDtOH1kno4ouui0|CNeIA)Kx?rS&jN!2~x_h{}3?!SD*<1<{~X>h{77_@|Y#< zjl0GQ!50`J^0=qFyE0BEany6Z+_~_a{ ziiQ8~=SQ+qz>J6kdpVf)!&3CLf!cK53lZx^fvCn*r+GrIWVsF{!|T z8;252CRbIQT3LkUo4x;ZNmY+6^o$VVQ5K6s-{zAUyXe4br#0PFxQs<;tArX+Z$#EX zw5U3fvu)=FS;?LhAwCocaJ3eann`CaaoWE7Zp1Pdsh8?u8hz}S{wd%l0yCnyE|+cw zc(Xd<{^7pgRu|k{e+6t{eC8aeKu*PIH04nb2c9`3MY7I!0)M56YG&-7ka+)kBOl*k z)RvXN%Xnl!{}j;8QXC)aRn(|A-?`2d9teH7n87%I_`XgM}$0D+>| z$#JBoo}#4toWKkJbXT^)#F)WF9YnxE?eI5K(-=7d00Uoxi7sPjkDH!om84>z(An23 zt$OO-_RUh4=`t{?0s4=F`mK&y_e?$*>r9N?Jq7cy8obG2N7@7a>6yGfjuHX5PICQr zcJc{UA}F4QbqQ9a0)PZxD4-Q+$nJy~2i6yWVu2bGMe1DEO{bt*HYW2Gtb$1+)wb`< z-CN_t;gTtZc2ORyx~(4OMSIlBh&CVy=g^da6`HocLIW*>KSDXn z)~xW4?fZyQ<21TGY&*MxR_O_?-er=K1L2g_2(P4IazH%nfG5Q52OpqXcS=!2@1N3X zp~HB0dOUowozQ)gB&H`Uj8G1$#3`QxQCEZdn+j?8{H zUBu2tun`XbVEOYuan!8*d}$-BB04_B5fD&o?nK@&6}CnxY$Y)$a56;DCtP z)nL1iWPDttkWT*3=sPM$;X@(E(XJbs{rZD9jsdCCzzHfMVHQgX_=+wFkR5QGpnmZh zs)Q2YhMg^n6z0D!&LJmyw}&5poq^GD9JV4+OA^5K5Dc#>Xs)J|HPVMV$L&q>fBpaD zM@aIb#9)XHFW;t##jKQYQW$)KI?j?rgPK68VgTK&^YWKae=F3IHY{-kL>v^)x;%6) z*N+S62thp|_pLEF@)kkCaL1ksEp*D!SzqYJ{U z3+RwMM<^)VI}6+fDKK*Fl_5jgos3; z@X49*An@>$)e56+u6+cUe4YjKm z-Z@y)TkyqOxF>B1dbmZ=7oL#^02PP6V5q%ndoc6G3KRzW6^?i)h}<%0Lq}(No3UIA zCEoHBgR=5mIF!NTOC@X9v7EIi}@^~AB17UyFm?~@}UQ*sY}GJKa86O5D{R=eqVZx=@(9j zhIk3FpWWsKdqUJ;m;0UsrP!$&>F1dr}{T zL$jOfj zc>{S67qpy5!>Q&(20W;XXw!Un(38{HMlf#_ylfElr7-5;BV%cuh5No3n^{gO0@pM+ zjcABZPYlq$L2oP=1~sP8+!ItrX@*Muc7g0?&z`Y*GWse|v5E!sCoAlD02*;c*NMyw zi!cdy8J_(HRq_SbUYmg$zU5$8tnO5yvquQC3urb5+B$)~XcPgF(accc-)9t9)tI4J zZDDky%~Y;@e0(f3n}jRT-OYu}a2WEoDyTZJ?s`*GQ{oPA3Y9?tLH;aQ`4y+j1&Kw& ziljMEjc#kGYA{5!9<3Qnf-SfNRGSd^Q?2!`4Rs}|p=fkT=>ysQV3&q<22kAS=2H78EsKC(2Ck#okE%ORGci`> z1VVo0Oc3SMQP8wzw1VwvLD&y&2L>Xk2Rsi6I09XOZD@=+ed_K(X!rlUFV0%Z@&*u| zJb1U2TPoR`;cq1wjc&C@mTgId<=OL*3`4vLNv70xc*ti{2zE#e8c3;TP@lx!iSTv; z(3_|c=I+c0h_DUOEuo@F$#~LP)Cl~e;fw14z2l|^5oHLD72&cgNP7gQuOtTuRO;H* zf*j0exaKxini9?4pj+6JJMD~oQku=Ve7Ut~sICkw5D)1S;ov&CNaFK7m`hLDgdL8B zY&(XYTol!LWbC_Bt7gD7DzDyySpL-FKph`}+siI7ABaNV7si_EY~_O$562&1KgyXV zHd%b#ur&1#4W)`6j9B*b&-bvuqoi-H^A4lY6-c!e5F+?xAWrAPFMAIPQ7xN*hGQ4Q z-RSyS4~fuPD&HGi@Ye$e4p2)3Zzb|he6aJF3>LE9DTk%d{1w5sA%Nb8R$+k9Os%uy zpRpu48rL$nXP5#w57qUl-xe{j+vAol?CvKJ1rMb*fcIm_){D#g-<087G-(~h>LfXt zoO0xVb`smL;ULc;p9kAdkJ-Kb8du7I(!txJL3s@^8ibq~^*7mjfw;+KlnP6hL!r~f zo3IE!rA{yebfRd;5{KO6rlC)Dz`gtshfHFwl7vp++)Av6RGpVgfHMvQR?0&)#M9nV z5vzJsQ?qVq+chZZv4B#*6Q|s0l2+&SZ8_9XV|=JZ421#`?of79j0;8_M|!Mc_YnQz z>y3B`?-6-AsDVn$vF{Rsb|lO|Q6#ovvIly3x;_4Ar&kgE6v6GOjb5e{@GKF^We1!B zRGI5q&_=y{6(}q#p^XPhSw`cUqL<9I_s(|$u9p+ZI@bt2i+_H1fkGVa&1v|9sMVW< z0#xkCSb|5OFjGBj*#wiHDpkZVq6e6P&=5+`s$hXW7><$+0oGb7OP850y-XlI6aK2- z?&S^(ks9Cz;FUk-3y~3yN_rI5H68m7NcH~tI%55d0>SbqgbKSr--lBrKu0if;aBgK z)gRK-@m^%?aENq~$8!hXh%SSbOmVZo*GsxgvNYMIPMD$qhJP6ETc`ID^oL|283oKQ zflg>uzbLF884C-?$8Zvu$QvLTLA)=C*~GRZ9jpW>Wm`oC&K*W=pk_YkVU?OS;J(8n_i&vj-t7I^F(Z>1;13<%mhJUrmmb|7EWBb5!S0y(NEVMB%#AMbj& z`PeHlXG?evwW0ld zC(pjKe|M|Y0`Dqf#g89{h)2FCV6f_CMcdDuIaBIr0$oGk z7nv6y$PWGc_o-(qP zgUqiDeF%i;c+C5BZuFk}I$aQF<>E@D=yt*d<{Xk9NbhFikt#uxy4^C~x@xFDn7hUQ zJTWmrqd~x@YL^w=gbywOaWV#X(fcE3IfM#jcO6}G!drn-y)!wt;aOL@RX=_dF0z1MuAj{cWiL%?fli($;Zqyi8ea}PxQ zL*W4qZx_S5z@Uiva@xz8si3YHjCly-b_}2*c!$9!M6Np|7eBHTQ86Uo=lm0;J3W}J zf@mc@Kb$O3D&~V?HPfSYe;Gg_3MxP)lpDe-tX!_of|!xz8lJZiM1HI>-*NYc+%V^w zQ|&4fXSj&w+uwl#B>plj=n@XiGv}cx1 zFL)Lq7Z`&wU@cpr89FvYValWDVUpZYA+T}ak~|MMrmq25BqYIb!QMP;9)KYHlU>uBUC z%~*tmv6^FR+4XDJ%v^Fz8zr)lUx>7j(*jf?Vs|=u>O_OIspE)DghI{}wwa+T^O#FJ ze~+f7CWvZugKbw#Y@Y4<9Yx&0(tynrJxH)KWXZw69unr6k?CCo)=esiB?b{}5*8MI zo&^8@Tc1~KUn&MXbgRhTixfm|@Xx!r# z>QNHDK0Y+?hs+rXwjP3JAIKg_Q?(Q^)&TREYB7G6g4S1b3|YX;r2!?`Y&c$FCQ&5? zdO;qXMz+}aZz{HO^A(UI3d&u59-@#E+>t|VB~Nkma+EaS`d*nP^(6rA+5EpAEX)%7 zX?h@LGStg^U1K)V@7atV2m^_9#9p>P{*~`s&B^G-i=OCRV-0K(qZsMo=&0b~4Jvpa zNkAZF=n42RO--QgghSHO(pDPKY#~V^msBV6FOA2Hk%c@Fz1idxs+wZ7-+mWc; zF*+&~;({T{;NSCCiK97x1+`vMnFX~!liim44H-y>+W=+S;ma@gob&v0ZLX{P`}>KK z-`-`~z)Fgu3QVK~j{s_6bBBp09*g9h4Xe(XuM5uz^E2baTpBFn04w@OMr^ob4;>t`!tH!zo2DdQj;p4}TthH9`Fi}%EkU$DRHTBHy+;CWuIRWbt&7qY>)$jj! zB!bv$lry;;Km7(}8J0I`jDNWWB!^zIbuuDOV=0t7pt?kXNRbXe02nm6t|ctpgSjXY z44^W3he5z4;Rr?Wog2+_u5j8*lXnEAA68aYZY`}w*1W)p7Pa&O>JK50>ZC2U6@?p$ zQaH~jc#nxghF(eQV(dkhx(%3u`sn>#PjR#-pq?f`Mog4t6w$rMJ^9dGDrD~^ven6y zGVmcbd^K3tBW8BlWr@ZdI;}>R>1>*c*ZtDp$43WS2GR9;{bKfQ5J}*yu#s%Qu7@-d z_~A30<6T$J&i@u*v0E%LiIj%ZVf4kL_ks5xC4pMgP({q+b8-{^{iZdlu%#g1LYP_= zuaT)jm0*O=`n-|u+DKGgYX10T^6RqQ#R{Juv1UMQip%7bwrF`x^A{>G%@ES{5v0vz zQQy!wjG+Z$QH3|$>SO+5@&5evG;FgzFW9by4ZuK!Y69DJ$C#Mz$pU~dIUGwK=hNlk z&BKj}kx=@}QJ_QxUMm`zpra-=mW=t1qy29=iWbwHL7MwRbr9;(!k5HOR76p^d|EP{ zj~4VVOL|ud1`88wp@t@a3j><~zGfsd`X`Mc*$lS_oob?Hw!%b)WI{KjKa4bM74jr; zho)R+|2F^3x6p>UJ78c0ApVD4@GZ62f$thYxhCO}Dsdn<`e;|P2Y9C(lezw^A&gih z&{lx+yv{fQF=DR5O>|r6C?*d!F?;yW@52UdD$JWNBQ0G_PseG@l6V+RHl%5hF#kRh z?SY>emF%a*!yC}ZMTJ)<Vt(}lVU4k`2=V;g&!eL>bdByMogal{ zk&WB8%ab;PoMbHB#!iFRFdQfrlWz5a7l=-y5*LO!vPv^G7tM@sPYo{2Jzy);CI>B2 z--caE9Y7EeBLdTuWfWkMC#r_7DspFoz68N(ND2x$p(@cL4`677LaTM&p*6+Y2>OQ=Ab3#MXgGWV zG1wUhTDO3%^=!oQ@^5XN83F|Rpe*1}8Tu*)u_)U}4}J36EV8lC6Gb|xs?!?nxLVe1 z{xX>l$QX>QzQ^_j^FFysVV6fh-q~ZCGa3O=raa5e0_aDURCv)75i6i?V4rJH$2Q4l z^m*Xpr4SXA(ddCX`ERHIK&4cZG2pcM0RPOS7CRwXH zhI;$iqM&$M+faCs@xy6|JuN~PdS@ zF+f3Mxj#k;l_SQ$Q09$tY&=}Koe7ye2pjU>QW=V_v_>+lyUE(S31cIp-^d(3tOOM% z6}rUgB_gtz^9M`PedyX40x4T6Y4ZyP9?@7kth39x7*$9l7Y`L}%sVJ=Vu`B&Gm}ta zlPLFX9gy>v=sEQgP+uU;_kgaW443mcxhq{g|6LcHY^{{}21wDUC6Q`et8!F)$cMCB z{B8k=E#?XPz3||OjSP0K>AC7!3$-r}k%j6iRcNk@0_m^jc&YvE@*y~t;Bn84BfuUf zR!MC>G)IK$S74Y1Hv8ZCqg{m$wwz3D+t+XJGNg?)Psx{oT~{>Eu=A)Xf?L@9)D|XYd2+-DMGcg!DzW-z=2>9Rd557}4ZUG+0~Wrm zz-}U#pV(bfoFXW~H_J*S-EzG4SBOZ+ah3#G%7_xg1k2bo}$;s(9 zAmF}r7T<0j>5BwZNE0PcI6~?)5yaKE){3GknMEZa!%2v&^3+QJ+5hWAwkKvJqC)hJ zMu;L6n!6p&k}3#;WaFZ7w!=Rjp3Mv~EbPQl{x1Q{m!J6@Sk^2(%@~=2nQ!~QN}?<* z1~*}&q|vdY3_^1{$zNqvByRTMnepMXUzr_?$1gZ}^yg+s=9Uy!zWhoZS#~TQX3koA zw;O%11oTp!CqA3O9Z>6)&;IR1TkTi>bTZ3U9ycvr*j?=_z<9EKgIvHS82~{N+u*jS z%R^kDrA*Vr6KoGYV2YV6d7IEG&dm!SHG~nlq-DP&VgfW#(>%=VWeHc?zm^AFn`lrn zgE5P`nSH$xyDJfDSy9e{8U!|B)b(S*>YEHOdp-afaIAW|35^9NQzsfjq`g60!oe77 z0{ESnPnhL=0O+g%usjh<%>S?J#E|<+DJ zP1HRB@QbK$&(xq;*jtgsN$W^;1`=c4cXA^$OS3#NV@L-XTv{Aob%QOwiGUfLtf=E=7wW=w;NUoCB#ffosll48{U~eMzx6WfVKm37?cO~3IQ4&qTxtP z178t9#@|T}OWvHn^RAVxx;Bg(%JNAG@t24t(cf=t?=(}<1>n`^YfENI`JFicD?a6se zD2>ez{?0fd4+}tZveQGMpt;^8@;mNkn;Ef8Z#f@;jMauXNMbw8JZt<4bZxk`zpaR- zid1>to}2W8R`$ z6NZmG;8h#zJE+4rS9U!#uc>tu=1r|&n*Uh#Z1{^Q3bC+90*s+<;*05Brhk(H@WCkh z(fkK_lxb$_-*t~ldZfQX8mwA!$}HrPfT8FtIjgYaf=GhiuKl77g?8&a*%jXwnk|-h z85I9}G*%mOAq`Za2m$S_hNDpX+e#`S5RJb^LpmDv_AxX$T1sSo!rj z&IceVkwQrT4t+7@a9Goff+PNdHw*BmFv!e=Q84bn-`W-@iaviWM6-xdp_Y_hg03J* z7{Ak?)Cz|qN%`q({|1;@@^E$kH=dQ{`dg$%6-g1X4Yq@$GhrLm*6hod4|!AIfw1xlfCo^G@HLep zn1q%kk5?@@3|5giR3S*1p=lP}GN{PFTk#M?;M@M(jUcUrdOWGEc>Xa+o!(QAJJW!s zc1Fr_eVtY7x}NNTX!RnrmX$U2Skek;6NgiT=i!{3P3PA=hGjL(jDKF&zJ8MH;fr5S zPv`H`$o@7q^{1ID)#0Tf+bAof0 z*a8(0iDv%T2_zE&9BA;mdAi66DSm$DPW)Q(ikYXBzk_Co;lKn+scDBM_CsSjOn(T0 z7BbDI_eSkB1^O$i7XG4$9DHq0Cs9&-ia$0x!APvjjA)`7DL(iBTsXH3wvsCL3)a?V z;#%Hepm6|CM*u&15{*m4uED^W0L+(}n}AflSu@MlKKB4VLucvC7Ir=NzJnueTJ%(Q z5GXZeJ!%|4SqK+FjVBt9&i@LkXc4Rm{X?m$6VaDQ3v`+`P%eLT8vyVd4&TMY-sAhF zD3-qj#D&T!INvCoO0);+TfH>80DndUKfi5w_aa$zC6A)74CgHfbB{AZVa9PNyM%;ZEbG7M)*Ca~k@1=3hWbdLKr;#~qY$pd38zzp6V{QuO zJCEQ8bb~l%aIGt!F@$F~43C8AJ?j4rSSp=5t({zdQwMnW7jTN<8gR+Y*CWFIDK9|B zJ}P8GCKC?;YuBZ~4Ye7-<#(VdjJt(E^By=rDinz$wxBa=J@nzl8L;IIFR{rgq=3c& k8w1FN9&9{;!D!-t_FqRbc{Lut3IZwfboFyt=akR{00*`^zyJUM diff --git a/report/vkr.tex b/report/vkr.tex index 4d2d1da..288e655 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -1634,24 +1634,32 @@ \subsection{Модуль стоимостной оптимизации план \begin{itemize} \item коммутативность соединения; \item ассоциативность соединения; - \item разбиение конъюнкции на последовательность фильтров; + \item разбиение фильтра на конъюнкты; \item объединение последовательных фильтров; \item проталкивание фильтра через проекцию; \item проталкивание фильтра во входы соединения; - \item преобразование выражения \verb|IN| в цепочку сравнений. + \item преобразование выражения \verb|IN| в цепочку сравнений; + \item перенос фильтра в предикат соединения; + \item превращение декартова произведения в соединение; + \item поднятие фильтра над соединением; + \item проталкивание проекции через соединение; + \item преобразование внешнего соединения во внутреннее; + \item проталкивание агрегации ниже соединения; + \item перестановка агрегации и соединения. \end{itemize} И следующие правила реализации: \begin{itemize} \item последовательное сканирование таблицы; \item фильтрация; + \item сканирование по индексу; \item проекция; - \item хэш-агрегация; - \item потоковая агрегация; - \item декартово произведение вложенными циклами; \item соединение вложенными циклами; + \item декартово произведение вложенными циклами; \item хеш-соединение; - \item соединение слиянием. + \item соединение слиянием; + \item хэш-агрегация; + \item потоковая агрегация. \end{itemize} Данный набор правил все основные алгоритмы, реализующие операторы реляционной @@ -2397,20 +2405,6 @@ \subsection{Руководство пользователя} формат проекта и запускает программу в режиме \verb|--check-reachable|, как показано на листинге~\ref{lst:reach-fuzz}. -\begin{listing}[H] - \caption{Запуск фаззеров.} - \label{lst:reach-fuzz} - \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} -docker compose up -d -python -m research.fuzz.reach_fuzz \ - --cli build/bin/sql \ - --data-dir test/static/executor/test_data -python -m research.fuzz.diff_fuzz \ - --cli build/bin/sql \ - --data-dir test/static/executor/test_data - \end{minted} -\end{listing} - % \begin{figure}[H] % \centering % \includegraphics[width=0.8\textwidth]{reach-fuzz.png} @@ -2573,10 +2567,10 @@ \subsection{Дифференциальный анализ и тестирова \label{fig:reach-fuzz-cross-mssql} \end{figure} -Модельная СУБД для того же запроса строит другой достижимый план, представленный -на рисунке~\ref{fig:reach-fuzz-cross-ours}. В нем фильтр по таблице -\verb|markets| используется как предикат внутреннего соединения, а не как -отдельный оператор \verb|PhysicalFilter| над чтением этой таблицы. +Модельная СУБД для того же запроса строит план, представленный на +рисунке~\ref{fig:reach-fuzz-cross-ours}. В нем фильтр по таблице \verb|markets| +используется как предикат внутреннего соединения, а не как отдельный оператор +\verb|PhysicalFilter| над чтением этой таблицы. \begin{figure}[H] \centering @@ -2628,8 +2622,8 @@ \subsection{Дифференциальный анализ и тестирова трех повторений запросов SSB. На рисунке~\ref{fig:benchmark-speedup} приведено относительное ускорение -запросов на том же наборе данных. Видно, что оптимизатор дает ускорение на -$20-50\%$, а на накоторых запросах в $6$ и более раз. +запросов на том же наборе данных. Видно, что оптимизатор дает ускорение в $2$ и +более раз а на накоторых запросах в $30$ раз. \begin{table}[H] \centering @@ -2639,23 +2633,80 @@ \subsection{Дифференциальный анализ и тестирова \hline Запрос & \texttt{Naive}, мс & \texttt{Optimized}, мс & Ускорение \\ \hline - \texttt{q1.1} & 8.11 & 6.51 & 1.25 \\ - \texttt{q1.2} & 8.20 & 6.59 & 1.24 \\ - \texttt{q1.3} & 8.00 & 6.58 & 1.22 \\ - \texttt{q2.1} & 8.80 & 9.33 & 0.94 \\ - \texttt{q2.2} & 8.84 & 6.18 & 1.43 \\ - \texttt{q2.3} & 8.68 & 5.80 & 1.50 \\ - \texttt{q3.1} & 35.67 & 5.90 & 6.04 \\ - \texttt{q3.2} & 35.88 & 5.58 & 6.43 \\ - \texttt{q3.3} & 38.05 & 5.86 & 6.49 \\ - \texttt{q3.4} & 37.12 & 5.77 & 6.43 \\ - \texttt{q4.1} & 9.06 & 12.21 & 0.74 \\ - \texttt{q4.2} & 9.05 & 11.12 & 0.81 \\ - \texttt{q4.3} & 9.28 & 6.31 & 1.47 \\ + \texttt{q1.1} & 172.82 & 61.51 & 2.81 \\ + \texttt{q1.2} & 167.64 & 63.25 & 2.65 \\ + \texttt{q1.3} & 166.89 & 64.17 & 2.60 \\ + \texttt{q2.1} & 301.34 & 65.05 & 4.63 \\ + \texttt{q2.2} & 300.50 & 58.72 & 5.12 \\ + \texttt{q2.3} & 303.55 & 58.67 & 5.17 \\ + \texttt{q3.1} & 1629.95 & 63.39 & 25.71 \\ + \texttt{q3.2} & 1590.02 & 56.05 & 28.37 \\ + \texttt{q3.3} & 1583.15 & 54.40 & 29.10 \\ + \texttt{q3.4} & 1587.09 & 54.16 & 29.30 \\ + \texttt{q4.1} & 351.49 & 161.92 & 2.17 \\ + \texttt{q4.2} & 354.18 & 163.33 & 2.17 \\ + \texttt{q4.3} & 350.95 & 59.86 & 5.86 \\ \hline \end{tabular} \end{table} +Дополнительно была собрана статистика по правилам, которые участвовали в +создании оптимальных планов на 1000 случайных запросах +(таблица~\ref{tbl:rule-lineage-random}). Это реализовано через восстановление +цепочки правил, через которую были получены выражения, вошедшие в итоговый план. +Это позволяет оценить, какие правила чаще входят в оптимальные планы, что может +быть полезно для определения подмножеств правил для многоэтапной оптимизации. + +\begin{table}[H] + \centering + \scriptsize + \setlength{\tabcolsep}{3pt} + \caption{Правила в происхождении выбранных планов на 1000 случайных запросах.} + \label{tbl:rule-lineage-random} + \begin{tabular}{|p{2.6cm}|p{5.0cm}|r|r|r|r|} + \hline + Тип & Правило & Всего & Запросов & Доля, \% & Максимум \\ + \hline + Трансформация & \texttt{JoinCommutativity} & 594 & 517 & 51.70 & 4 \\ + Трансформация & \texttt{JoinAssociativity} & 75 & 29 & 2.90 & 4 \\ + Трансформация & \texttt{FilterSplit} & 70 & 42 & 4.20 & 5 \\ + Трансформация & \texttt{FilterMerge} & 7 & 7 & 0.70 & 1 \\ + Трансформация & \makecell[l]{\texttt{FilterPushdown}\\\texttt{ThroughJoin}} & 469 & 191 & 19.10 & 5 \\ + Трансформация & \texttt{InToOrChain} & 158 & 153 & 15.30 & 3 \\ + Трансформация & \texttt{FilterToJoinPredicate} & 27 & 23 & 2.30 & 2 \\ + Трансформация & \texttt{CrossJoinToJoin} & 82 & 82 & 8.20 & 1 \\ + Трансформация & \texttt{FilterLiftThroughJoin} & 40 & 19 & 1.90 & 4 \\ + Трансформация & \makecell[l]{\texttt{ProjectionPushdown}\\\texttt{ThroughJoin}} & 106 & 30 & 3.00 & 7 \\ + Трансформация & \texttt{OuterJoinToInner} & 101 & 91 & 9.10 & 2 \\ + Реализация & \texttt{ImplementTable} & 1977 & 1000 & 100.00 & 3 \\ + Реализация & \texttt{ImplementFilter} & 531 & 487 & 48.70 & 2 \\ + Реализация & \texttt{ImplementProjection} & 1038 & 1000 & 100.00 & 4 \\ + Реализация & \texttt{ImplementJoin} & 156 & 153 & 15.30 & 2 \\ + Реализация & \texttt{ImplementCrossJoin} & 157 & 145 & 14.50 & 2 \\ + Реализация & \texttt{ImplementHashJoin} & 171 & 162 & 16.20 & 2 \\ + Реализация & \texttt{ImplementMergeJoin} & 493 & 394 & 39.40 & 2 \\ + Реализация & \texttt{ImplementAggregation} & 319 & 319 & 31.90 & 1 \\ + Обеспечение свойства & \texttt{SortEnforcer} & 1494 & 706 & 70.60 & 6 \\ + \hline + \end{tabular} +\end{table} + +В таблице~\ref{tbl:rule-lineage-random} столбец <<Всего>> обозначает суммарное +число уникальных выражений в происхождении выбранных планов, полученных данным +правилом. Столбец <<Запросов>> показывает, в скольких запросах правило +встретилось хотя бы один раз, а <<Максимум>>~--- максимальное число таких +выражений для одного запроса. Наиболее часто среди логических преобразований +встречается коммутативность соединения, что показывает важность выбора +правильного порядка соединений. Правило проталкивания фильтра через соединение +встречается реже, но его появление в $19.10\%$ запросов показывает, что оно +реально участвует в построении выбранных планов, а не только расширяет +пространство поиска. Высокая частота \texttt{SortEnforcer} объясняется +генерацией запросов с \texttt{ORDER BY} и выбором физических операторов, +требующих отсортированный вход, например \texttt{MergeJoin} и потоковой +агрегации. Часть правил не встретилась ни в одном из планов, но это не является +признаком того, что их можно удалить, так как на других данных или при другой +конфигурации генератора запросов эти правила могут дать более оптимальные планы. + \subsection{Калибровка стоимостной модели} Для калибровки коэффициентов в стоимостных формулах реализованы отдельные @@ -3243,5 +3294,18 @@ \subsection{Калибровка стоимостной модели} \label{fig:cost-on-random-queries} \end{figure} +\begin{listing}[H] + \caption{Запуск фаззеров.} + \label{lst:reach-fuzz} + \begin{minted}[style=bw, breaklines, frame=single, fontsize=\footnotesize]{text} +docker compose up -d +python -m research.fuzz.reach_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data +python -m research.fuzz.diff_fuzz \ + --cli build/bin/sql \ + --data-dir test/static/executor/test_data + \end{minted} +\end{listing} \end{document} diff --git a/research/benchmark-results/ssb-sf01.json b/research/benchmark-results/ssb-sf01.json new file mode 100644 index 0000000..ff44585 --- /dev/null +++ b/research/benchmark-results/ssb-sf01.json @@ -0,0 +1,3240 @@ +{ + "context": { + "date": "2026-06-15T17:51:46+03:00", + "host_name": "nixos", + "executable": "./build-release/bin/benchmarks", + "num_cpus": 8, + "mhz_per_cpu": 4200, + "cpu_scaling_enabled": true, + "caches": [ + { + "type": "Data", + "level": 1, + "size": 49152, + "num_sharing": 2 + }, + { + "type": "Instruction", + "level": 1, + "size": 32768, + "num_sharing": 2 + }, + { + "type": "Unified", + "level": 2, + "size": 1310720, + "num_sharing": 2 + }, + { + "type": "Unified", + "level": 3, + "size": 8388608, + "num_sharing": 8 + } + ], + "load_avg": [0.994629,0.942871,0.696289], + "library_version": "v1.9.0", + "library_build_type": "release", + "json_schema_version": 1 + }, + "benchmarks": [ + { + "name": "SSB/q2.1/Interpreted/Naive/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 2, + "real_time": 3.0132044150013828e+08, + "cpu_time": 3.0055295099999994e+08, + "time_unit": "ns", + "execution_us": 3.0131933950000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 2, + "real_time": 3.0173666499831599e+08, + "cpu_time": 3.0100849399999982e+08, + "time_unit": "ns", + "execution_us": 3.0173572450000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 2, + "real_time": 3.0096618300012779e+08, + "cpu_time": 3.0044530150000018e+08, + "time_unit": "ns", + "execution_us": 3.0096520899999997e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_mean", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0134109649952734e+08, + "cpu_time": 3.0066891549999994e+08, + "time_unit": "ns", + "execution_us": 3.0134009100000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_median", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0132044150013822e+08, + "cpu_time": 3.0055295099999994e+08, + "time_unit": "ns", + "execution_us": 3.0131933950000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_stddev", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.8565606325874460e+05, + "cpu_time": 2.9896868059997144e+05, + "time_unit": "ns", + "execution_us": 3.8567668125554911e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Naive/real_time_cv", + "family_index": 0, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.2797990972311655e-03, + "cpu_time": 9.9434515903580817e-04, + "time_unit": "ns", + "execution_us": 1.2798717886348188e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 11, + "real_time": 6.6300351000046991e+07, + "cpu_time": 6.5752068545454495e+07, + "time_unit": "ns", + "execution_us": 6.6300112090909097e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.3765069999999996e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 11, + "real_time": 6.5030775545561813e+07, + "cpu_time": 6.4883817545454472e+07, + "time_unit": "ns", + "execution_us": 6.5030539727272728e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 5.0194009999999998e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 11, + "real_time": 6.3826902363375254e+07, + "cpu_time": 6.3701150545454577e+07, + "time_unit": "ns", + "execution_us": 6.3826689636363641e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.4800919999999996e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_mean", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.5052676302994676e+07, + "cpu_time": 6.4779012212121166e+07, + "time_unit": "ns", + "execution_us": 6.5052447151515153e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.6253333333333330e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_median", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.5030775545561813e+07, + "cpu_time": 6.4883817545454465e+07, + "time_unit": "ns", + "execution_us": 6.5030539727272728e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.4800919999999996e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_stddev", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.2368697473645334e+06, + "cpu_time": 1.0294679592404409e+06, + "time_unit": "ns", + "execution_us": 1.2368567463898894e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 3.4518032604760992e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.1/Interpreted/Optimized/real_time_cv", + "family_index": 1, + "per_family_instance_index": 0, + "run_name": "SSB/q2.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.9013356831063911e-02, + "cpu_time": 1.5891998412532311e-02, + "time_unit": "ns", + "execution_us": 1.9013223953114292e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 7.4628205400895778e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 4, + "real_time": 1.6835229600110325e+08, + "cpu_time": 1.6807579225000003e+08, + "time_unit": "ns", + "execution_us": 1.6835176475000000e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 4, + "real_time": 1.6602187325042906e+08, + "cpu_time": 1.6574644450000009e+08, + "time_unit": "ns", + "execution_us": 1.6602126324999999e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 4, + "real_time": 1.6629480125084227e+08, + "cpu_time": 1.6603537775000009e+08, + "time_unit": "ns", + "execution_us": 1.6629423624999999e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_mean", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6688965683412486e+08, + "cpu_time": 1.6661920483333340e+08, + "time_unit": "ns", + "execution_us": 1.6688908808333334e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_median", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6629480125084230e+08, + "cpu_time": 1.6603537775000009e+08, + "time_unit": "ns", + "execution_us": 1.6629423624999999e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_stddev", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.2740123323341666e+06, + "cpu_time": 1.2696872774559760e+06, + "time_unit": "ns", + "execution_us": 1.2740470313451747e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Naive/real_time_cv", + "family_index": 2, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 7.6338603392326126e-03, + "cpu_time": 7.6202937033940620e-03, + "time_unit": "ns", + "execution_us": 7.6340942716937856e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 11, + "real_time": 6.3132156454561144e+07, + "cpu_time": 6.3026987363636397e+07, + "time_unit": "ns", + "execution_us": 6.3131871818181819e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.5031120000000001e+03, + "plan_cost": 6.5305070000000000e+06 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 11, + "real_time": 6.5914543272810988e+07, + "cpu_time": 6.5730933818181701e+07, + "time_unit": "ns", + "execution_us": 6.5914327363636359e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.4627139999999999e+03, + "plan_cost": 6.5305070000000000e+06 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 11, + "real_time": 6.3453278999738604e+07, + "cpu_time": 6.3343623999999978e+07, + "time_unit": "ns", + "execution_us": 6.3453044727272725e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.4836089999999999e+03, + "plan_cost": 6.5305070000000000e+06 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_mean", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.4166659575703569e+07, + "cpu_time": 6.4033848393939346e+07, + "time_unit": "ns", + "execution_us": 6.4166414636363632e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.4831449999999998e+03, + "plan_cost": 6.5305070000000000e+06 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_median", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.3453278999738604e+07, + "cpu_time": 6.3343623999999978e+07, + "time_unit": "ns", + "execution_us": 6.3453044727272725e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.4836089999999999e+03, + "plan_cost": 6.5305070000000000e+06 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_stddev", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5222033327443090e+06, + "cpu_time": 1.4782215303379109e+06, + "time_unit": "ns", + "execution_us": 1.5222309897005246e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.0202996634195987e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.3/Interpreted/Optimized/real_time_cv", + "family_index": 3, + "per_family_instance_index": 0, + "run_name": "SSB/q1.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.3722651963024810e-02, + "cpu_time": 2.3085002188902033e-02, + "time_unit": "ns", + "execution_us": 2.3723173537545043e-02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.3621727231117653e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 4, + "real_time": 1.6996481874957681e+08, + "cpu_time": 1.6953964400000033e+08, + "time_unit": "ns", + "execution_us": 1.6996439600000001e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 4, + "real_time": 1.6641380549845052e+08, + "cpu_time": 1.6610005074999988e+08, + "time_unit": "ns", + "execution_us": 1.6641331250000000e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 4, + "real_time": 1.6653429200050595e+08, + "cpu_time": 1.6626286925000012e+08, + "time_unit": "ns", + "execution_us": 1.6653372550000000e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_mean", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6763763874951109e+08, + "cpu_time": 1.6730085466666678e+08, + "time_unit": "ns", + "execution_us": 1.6763714466666666e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_median", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6653429200050595e+08, + "cpu_time": 1.6626286925000012e+08, + "time_unit": "ns", + "execution_us": 1.6653372550000000e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_stddev", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.0162971789446652e+06, + "cpu_time": 1.9405568080502811e+06, + "time_unit": "ns", + "execution_us": 2.0163578301029145e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Naive/real_time_cv", + "family_index": 4, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.2027711640328420e-02, + "cpu_time": 1.1599204390896156e-02, + "time_unit": "ns", + "execution_us": 1.2028108890259877e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 11, + "real_time": 6.3506060363910034e+07, + "cpu_time": 6.3394548454545423e+07, + "time_unit": "ns", + "execution_us": 6.3505853363636365e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 8.7491200000000003e+02, + "plan_cost": 6.5323070000000000e+06 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 11, + "real_time": 6.3108547727593258e+07, + "cpu_time": 6.3004551090909027e+07, + "time_unit": "ns", + "execution_us": 6.3108312000000005e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 8.6265099999999995e+02, + "plan_cost": 6.5323070000000000e+06 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 11, + "real_time": 6.3132328454891898e+07, + "cpu_time": 6.3026034545454383e+07, + "time_unit": "ns", + "execution_us": 6.3132119181818183e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 8.5707600000000002e+02, + "plan_cost": 6.5323070000000000e+06 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_mean", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.3248978848798387e+07, + "cpu_time": 6.3141711363636263e+07, + "time_unit": "ns", + "execution_us": 6.3248761515151513e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 8.6487966666666671e+02, + "plan_cost": 6.5323070000000000e+06 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_median", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.3132328454891890e+07, + "cpu_time": 6.3026034545454375e+07, + "time_unit": "ns", + "execution_us": 6.3132119181818183e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 8.6265099999999995e+02, + "plan_cost": 6.5323070000000000e+06 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_stddev", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.2295640786477245e+05, + "cpu_time": 2.1922666491679070e+05, + "time_unit": "ns", + "execution_us": 2.2296604987195695e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 9.1244693178936931e+00, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.2/Interpreted/Optimized/real_time_cv", + "family_index": 5, + "per_family_instance_index": 0, + "run_name": "SSB/q1.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 3.5250594068525140e-03, + "cpu_time": 3.4719785096456036e-03, + "time_unit": "ns", + "execution_us": 3.5252239653506016e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.0549987090181361e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 1, + "real_time": 1.5763709120001295e+09, + "cpu_time": 1.5739780290000026e+09, + "time_unit": "ns", + "execution_us": 1.5763686769999999e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 1, + "real_time": 1.5951611780037637e+09, + "cpu_time": 1.5870406919999986e+09, + "time_unit": "ns", + "execution_us": 1.5951587109999999e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 1, + "real_time": 1.5779306569966137e+09, + "cpu_time": 1.5757620909999979e+09, + "time_unit": "ns", + "execution_us": 1.5779279870000000e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_mean", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5831542490001690e+09, + "cpu_time": 1.5789269373333330e+09, + "time_unit": "ns", + "execution_us": 1.5831517916666665e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_median", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5779306569966137e+09, + "cpu_time": 1.5757620909999979e+09, + "time_unit": "ns", + "execution_us": 1.5779279870000000e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_stddev", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0427509730889013e+07, + "cpu_time": 7.0831123383810744e+06, + "time_unit": "ns", + "execution_us": 1.0427485115149297e+04, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Naive/real_time_cv", + "family_index": 6, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.5865405960754868e-03, + "cpu_time": 4.4860291954634838e-03, + "time_unit": "ns", + "execution_us": 6.5865352709936547e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 13, + "real_time": 5.4263174384966701e+07, + "cpu_time": 5.4176567230769292e+07, + "time_unit": "ns", + "execution_us": 5.4262966923076921e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.2146563000000002e+04, + "plan_cost": 8.1735020000000000e+06 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 13, + "real_time": 5.4822232768996254e+07, + "cpu_time": 5.4457524230769284e+07, + "time_unit": "ns", + "execution_us": 5.4821983923076921e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.0021783000000003e+04, + "plan_cost": 8.1735020000000000e+06 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 13, + "real_time": 5.4119724692449935e+07, + "cpu_time": 5.4026307923077062e+07, + "time_unit": "ns", + "execution_us": 5.4119498538461543e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.0062478000000003e+04, + "plan_cost": 8.1735020000000000e+06 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_mean", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.4401710615470976e+07, + "cpu_time": 5.4220133128205217e+07, + "time_unit": "ns", + "execution_us": 5.4401483128205124e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.0743608000000007e+04, + "plan_cost": 8.1735020000000000e+06 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_median", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.4263174384966709e+07, + "cpu_time": 5.4176567230769299e+07, + "time_unit": "ns", + "execution_us": 5.4262966923076921e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 6.0062478000000003e+04, + "plan_cost": 8.1735020000000000e+06 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_stddev", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.7117868308285315e+05, + "cpu_time": 2.1888436803367294e+05, + "time_unit": "ns", + "execution_us": 3.7116234077954061e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.2151650380808983e+03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.3/Interpreted/Optimized/real_time_cv", + "family_index": 7, + "per_family_instance_index": 0, + "run_name": "SSB/q3.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.8229230089190598e-03, + "cpu_time": 4.0369574068753016e-03, + "time_unit": "ns", + "execution_us": 6.8226511381103668e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.0004821545682602e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 1, + "real_time": 1.5819988250004826e+09, + "cpu_time": 1.5796358200000000e+09, + "time_unit": "ns", + "execution_us": 1.5819962500000000e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 1, + "real_time": 1.5888754689949565e+09, + "cpu_time": 1.5866314660000000e+09, + "time_unit": "ns", + "execution_us": 1.5888732890000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 1, + "real_time": 1.5904124320004485e+09, + "cpu_time": 1.5808928719999998e+09, + "time_unit": "ns", + "execution_us": 1.5904103160000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_mean", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5870955753319626e+09, + "cpu_time": 1.5823867193333333e+09, + "time_unit": "ns", + "execution_us": 1.5870932850000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_median", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5888754689949563e+09, + "cpu_time": 1.5808928719999998e+09, + "time_unit": "ns", + "execution_us": 1.5888732890000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_stddev", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 4.4803138033816479e+06, + "cpu_time": 3.7294035220849733e+06, + "time_unit": "ns", + "execution_us": 4.4805621681357461e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Naive/real_time_cv", + "family_index": 8, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.8229640816965483e-03, + "cpu_time": 2.3568218037473090e-03, + "time_unit": "ns", + "execution_us": 2.8231246458431999e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 13, + "real_time": 5.4271727000013933e+07, + "cpu_time": 5.4172577615384169e+07, + "time_unit": "ns", + "execution_us": 5.4271531692307690e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.3050309999999998e+04, + "plan_cost": 8.1730440000000000e+06 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 13, + "real_time": 5.4145620692557149e+07, + "cpu_time": 5.4056849000000045e+07, + "time_unit": "ns", + "execution_us": 5.4145442000000003e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.1143557000000001e+04, + "plan_cost": 8.1730440000000000e+06 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 13, + "real_time": 5.4057425922879845e+07, + "cpu_time": 5.3956011307692416e+07, + "time_unit": "ns", + "execution_us": 5.4057194230769230e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.0936512999999999e+04, + "plan_cost": 8.1730440000000000e+06 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_mean", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.4158257871816970e+07, + "cpu_time": 5.4061812641025543e+07, + "time_unit": "ns", + "execution_us": 5.4158055974358969e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.1710126666666663e+04, + "plan_cost": 8.1730440000000000e+06 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_median", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.4145620692557156e+07, + "cpu_time": 5.4056849000000060e+07, + "time_unit": "ns", + "execution_us": 5.4145442000000003e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.1143557000000001e+04, + "plan_cost": 8.1730440000000000e+06 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_stddev", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0770799246103613e+05, + "cpu_time": 1.0836844423885930e+05, + "time_unit": "ns", + "execution_us": 1.0772405078816776e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.1652404600308216e+03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.4/Interpreted/Optimized/real_time_cv", + "family_index": 9, + "per_family_instance_index": 0, + "run_name": "SSB/q3.4/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.9887639797417766e-03, + "cpu_time": 2.0045285007077702e-03, + "time_unit": "ns", + "execution_us": 1.9890679022742160e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.7936632016081667e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 2, + "real_time": 3.5241248099919176e+08, + "cpu_time": 3.5189126650000089e+08, + "time_unit": "ns", + "execution_us": 3.5241135600000003e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 2, + "real_time": 3.5169160749865115e+08, + "cpu_time": 3.5110009350000125e+08, + "time_unit": "ns", + "execution_us": 3.5169059200000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 2, + "real_time": 3.4873572150172549e+08, + "cpu_time": 3.4818190100000024e+08, + "time_unit": "ns", + "execution_us": 3.4873472200000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_mean", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5094660333318943e+08, + "cpu_time": 3.5039108700000077e+08, + "time_unit": "ns", + "execution_us": 3.5094555666666670e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_median", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5169160749865115e+08, + "cpu_time": 3.5110009350000125e+08, + "time_unit": "ns", + "execution_us": 3.5169059200000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_stddev", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.9483104232848715e+06, + "cpu_time": 1.9536800572068950e+06, + "time_unit": "ns", + "execution_us": 1.9482601541875974e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Naive/real_time_cv", + "family_index": 10, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 5.5515864942996514e-03, + "cpu_time": 5.5757127669371640e-03, + "time_unit": "ns", + "execution_us": 5.5514598124349066e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 12, + "real_time": 5.9645183333486788e+07, + "cpu_time": 5.9522327583333492e+07, + "time_unit": "ns", + "execution_us": 5.9644964416666662e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5695851000000001e+05, + "plan_cost": 8.4052230000000000e+06 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 12, + "real_time": 5.9652490916657068e+07, + "cpu_time": 5.9542881250000216e+07, + "time_unit": "ns", + "execution_us": 5.9652292750000001e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5590823499999999e+05, + "plan_cost": 8.4052230000000000e+06 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 12, + "real_time": 6.0287974500170089e+07, + "cpu_time": 5.9551037000000305e+07, + "time_unit": "ns", + "execution_us": 6.0287758916666666e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5670725500000000e+05, + "plan_cost": 8.4052230000000000e+06 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_mean", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.9861882916771315e+07, + "cpu_time": 5.9538748611111343e+07, + "time_unit": "ns", + "execution_us": 5.9861672027777771e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5652466666666666e+05, + "plan_cost": 8.4052230000000000e+06 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_median", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.9652490916657068e+07, + "cpu_time": 5.9542881250000216e+07, + "time_unit": "ns", + "execution_us": 5.9652292750000001e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5670725500000000e+05, + "plan_cost": 8.4052230000000000e+06 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_stddev", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.6902422450914892e+05, + "cpu_time": 1.4794143376796630e+04, + "time_unit": "ns", + "execution_us": 3.6902026201846189e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 5.4842799756808597e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.3/Interpreted/Optimized/real_time_cv", + "family_index": 11, + "per_family_instance_index": 0, + "run_name": "SSB/q4.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.1645943383074010e-03, + "cpu_time": 2.4847924623722599e-04, + "time_unit": "ns", + "execution_us": 6.1645498616748366e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.1379152527297674e-03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 4, + "real_time": 1.7256533999898237e+08, + "cpu_time": 1.7227216825000015e+08, + "time_unit": "ns", + "execution_us": 1.7256479375000001e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 4, + "real_time": 1.7304333700121787e+08, + "cpu_time": 1.7278107275000033e+08, + "time_unit": "ns", + "execution_us": 1.7304267400000000e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 4, + "real_time": 1.7286145250000119e+08, + "cpu_time": 1.7259499649999911e+08, + "time_unit": "ns", + "execution_us": 1.7286093799999999e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_mean", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.7282337650006714e+08, + "cpu_time": 1.7254941249999985e+08, + "time_unit": "ns", + "execution_us": 1.7282280191666668e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_median", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.7286145250000116e+08, + "cpu_time": 1.7259499649999911e+08, + "time_unit": "ns", + "execution_us": 1.7286093799999999e+05, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_stddev", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.4126255381868556e+05, + "cpu_time": 2.5749635595540810e+05, + "time_unit": "ns", + "execution_us": 2.4121184457857026e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Naive/real_time_cv", + "family_index": 12, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.3960064819043263e-03, + "cpu_time": 1.4923050285981609e-03, + "time_unit": "ns", + "execution_us": 1.3957177056698807e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 11, + "real_time": 6.1513489272990473e+07, + "cpu_time": 6.1417641818181321e+07, + "time_unit": "ns", + "execution_us": 6.1513300000000003e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.6536199999999997e+02, + "plan_cost": 7.0400420000000000e+06 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 11, + "real_time": 6.1589314636710860e+07, + "cpu_time": 6.1496196454545386e+07, + "time_unit": "ns", + "execution_us": 6.1589097181818186e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.5630899999999997e+02, + "plan_cost": 7.0400420000000000e+06 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 11, + "real_time": 6.1422892454588287e+07, + "cpu_time": 6.1323304272727206e+07, + "time_unit": "ns", + "execution_us": 6.1422677090909092e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.6858399999999995e+02, + "plan_cost": 7.0400420000000000e+06 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_mean", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.1508565454763196e+07, + "cpu_time": 6.1412380848484635e+07, + "time_unit": "ns", + "execution_us": 6.1508358090909089e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.6341833333333318e+02, + "plan_cost": 7.0400420000000000e+06 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_median", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.1513489272990465e+07, + "cpu_time": 6.1417641818181328e+07, + "time_unit": "ns", + "execution_us": 6.1513300000000003e+04, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.6536199999999997e+02, + "plan_cost": 7.0400420000000000e+06 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_stddev", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 8.3320277637441162e+04, + "cpu_time": 8.6566072945526728e+04, + "time_unit": "ns", + "execution_us": 8.3320036695321633e+01, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.3641406594664716e+00, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q1.1/Interpreted/Optimized/real_time_cv", + "family_index": 13, + "per_family_instance_index": 0, + "run_name": "SSB/q1.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.3546125977969609e-03, + "cpu_time": 1.4095866623230382e-03, + "time_unit": "ns", + "execution_us": 1.3546132473927360e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 9.5929526509916669e-03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 1, + "real_time": 1.5893743029955659e+09, + "cpu_time": 1.5870318680000041e+09, + "time_unit": "ns", + "execution_us": 1.5893720660000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 1, + "real_time": 1.5899839299963787e+09, + "cpu_time": 1.5876547589999959e+09, + "time_unit": "ns", + "execution_us": 1.5899814920000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 1, + "real_time": 1.5907088900057716e+09, + "cpu_time": 1.5884123220000036e+09, + "time_unit": "ns", + "execution_us": 1.5907066880000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_mean", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5900223743325720e+09, + "cpu_time": 1.5876996496666677e+09, + "time_unit": "ns", + "execution_us": 1.5900200819999999e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_median", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5899839299963787e+09, + "cpu_time": 1.5876547589999959e+09, + "time_unit": "ns", + "execution_us": 1.5899814920000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_stddev", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.6812356468380569e+05, + "cpu_time": 6.9132097501057561e+05, + "time_unit": "ns", + "execution_us": 6.6814733577609024e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Naive/real_time_cv", + "family_index": 14, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.2019758681965551e-04, + "cpu_time": 4.3542301918106244e-04, + "time_unit": "ns", + "execution_us": 4.2021314280236261e-04, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 12, + "real_time": 5.6016307000390954e+07, + "cpu_time": 5.5919624833333492e+07, + "time_unit": "ns", + "execution_us": 5.6016071999999993e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.3391750000000000e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 12, + "real_time": 5.6160404916226983e+07, + "cpu_time": 5.6047049750000380e+07, + "time_unit": "ns", + "execution_us": 5.6160177166666668e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.3681062000000002e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 12, + "real_time": 5.5984875833625369e+07, + "cpu_time": 5.5872650916666567e+07, + "time_unit": "ns", + "execution_us": 5.5984649500000000e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.3643873000000000e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_mean", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.6053862583414428e+07, + "cpu_time": 5.5946441833333470e+07, + "time_unit": "ns", + "execution_us": 5.6053632888888882e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.3572228333333333e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_median", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.6016307000390954e+07, + "cpu_time": 5.5919624833333492e+07, + "time_unit": "ns", + "execution_us": 5.6016071999999993e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.3643873000000000e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_stddev", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 9.3597174490967431e+04, + "cpu_time": 9.0239137212874077e+04, + "time_unit": "ns", + "execution_us": 9.3598107471192762e+01, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.5740100708784567e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.2/Interpreted/Optimized/real_time_cv", + "family_index": 15, + "per_family_instance_index": 0, + "run_name": "SSB/q3.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.6697720759507760e-03, + "cpu_time": 1.6129557887112789e-03, + "time_unit": "ns", + "execution_us": 1.6697955627019861e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 6.6773919233280949e-03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 2, + "real_time": 3.0116734100010943e+08, + "cpu_time": 3.0071568349999470e+08, + "time_unit": "ns", + "execution_us": 3.0116636050000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 2, + "real_time": 3.0130158599786228e+08, + "cpu_time": 2.9894364249999940e+08, + "time_unit": "ns", + "execution_us": 3.0130057250000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 2, + "real_time": 2.9904670999894732e+08, + "cpu_time": 2.9861006699999851e+08, + "time_unit": "ns", + "execution_us": 2.9904576400000002e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_mean", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0050521233230633e+08, + "cpu_time": 2.9942313099999750e+08, + "time_unit": "ns", + "execution_us": 3.0050423233333329e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_median", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0116734100010943e+08, + "cpu_time": 2.9894364249999940e+08, + "time_unit": "ns", + "execution_us": 3.0116636050000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_stddev", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.2648822957832406e+06, + "cpu_time": 1.1317407510047185e+06, + "time_unit": "ns", + "execution_us": 1.2648520169424914e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Naive/real_time_cv", + "family_index": 16, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 4.2091858772303143e-03, + "cpu_time": 3.7797372141056395e-03, + "time_unit": "ns", + "execution_us": 4.2090988440371072e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 12, + "real_time": 5.8780332416669510e+07, + "cpu_time": 5.8673196416666687e+07, + "time_unit": "ns", + "execution_us": 5.8780129416666663e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.7295889999999999e+03, + "plan_cost": 8.4048830000000000e+06 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 12, + "real_time": 5.8804952749900013e+07, + "cpu_time": 5.8705007250000089e+07, + "time_unit": "ns", + "execution_us": 5.8804767833333339e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.4991710000000003e+03, + "plan_cost": 8.4048830000000000e+06 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 12, + "real_time": 5.8585657666602254e+07, + "cpu_time": 5.8484857750000186e+07, + "time_unit": "ns", + "execution_us": 5.8585396333333338e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.5757399999999998e+03, + "plan_cost": 8.4048830000000000e+06 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_mean", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.8723647611057252e+07, + "cpu_time": 5.8621020472222321e+07, + "time_unit": "ns", + "execution_us": 5.8723431194444449e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.6015000000000000e+03, + "plan_cost": 8.4048830000000000e+06 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_median", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.8780332416669510e+07, + "cpu_time": 5.8673196416666687e+07, + "time_unit": "ns", + "execution_us": 5.8780129416666663e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 7.5757399999999998e+03, + "plan_cost": 8.4048830000000000e+06 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_stddev", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.2013516879223859e+05, + "cpu_time": 1.1898822408740532e+05, + "time_unit": "ns", + "execution_us": 1.2017478959573222e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.1734903868801585e+02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.2/Interpreted/Optimized/real_time_cv", + "family_index": 17, + "per_family_instance_index": 0, + "run_name": "SSB/q2.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.0457715703889275e-03, + "cpu_time": 2.0297876619836072e-03, + "time_unit": "ns", + "execution_us": 2.0464538115596590e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.5437616087353266e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 1, + "real_time": 1.6100362020006287e+09, + "cpu_time": 1.6076350769999976e+09, + "time_unit": "ns", + "execution_us": 1.6100339399999999e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 1, + "real_time": 1.6541845409956295e+09, + "cpu_time": 1.6481450769999952e+09, + "time_unit": "ns", + "execution_us": 1.6541821020000000e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 1, + "real_time": 1.6256416459946194e+09, + "cpu_time": 1.6215455370000029e+09, + "time_unit": "ns", + "execution_us": 1.6256393810000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_mean", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6299541296636260e+09, + "cpu_time": 1.6257752303333321e+09, + "time_unit": "ns", + "execution_us": 1.6299518076666668e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_median", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6256416459946194e+09, + "cpu_time": 1.6215455370000029e+09, + "time_unit": "ns", + "execution_us": 1.6256393810000001e+06, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_stddev", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.2387878317331016e+07, + "cpu_time": 2.0583555433167849e+07, + "time_unit": "ns", + "execution_us": 2.2387782824781250e+04, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Naive/real_time_cv", + "family_index": 18, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.3735281202024510e-02, + "cpu_time": 1.2660763338698186e-02, + "time_unit": "ns", + "execution_us": 1.3735242182914689e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 11, + "real_time": 6.3512496454429559e+07, + "cpu_time": 6.3341084545453697e+07, + "time_unit": "ns", + "execution_us": 6.3512237181818185e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.5829574000000001e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 11, + "real_time": 6.3377376727161884e+07, + "cpu_time": 6.2939674181818485e+07, + "time_unit": "ns", + "execution_us": 6.3377143636363631e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.4656114000000001e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 11, + "real_time": 6.3273171454387590e+07, + "cpu_time": 6.3050591090909719e+07, + "time_unit": "ns", + "execution_us": 6.3272941272727279e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.3474784000000000e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_mean", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.3387681545326330e+07, + "cpu_time": 6.3110449939393960e+07, + "time_unit": "ns", + "execution_us": 6.3387440696969694e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.4653490666666668e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_median", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 6.3377376727161884e+07, + "cpu_time": 6.3050591090909719e+07, + "time_unit": "ns", + "execution_us": 6.3377143636363631e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 2.4656114000000001e+04, + "plan_cost": 8.1671240000000000e+06 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_stddev", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.1999481601353527e+05, + "cpu_time": 2.0729177821532093e+05, + "time_unit": "ns", + "execution_us": 1.1997981130229516e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.1773971918741618e+03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q3.1/Interpreted/Optimized/real_time_cv", + "family_index": 19, + "per_family_instance_index": 0, + "run_name": "SSB/q3.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.8930305240416646e-03, + "cpu_time": 3.2845872341963453e-03, + "time_unit": "ns", + "execution_us": 1.8928010025814298e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.7757829014699701e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 2, + "real_time": 3.5733826149953532e+08, + "cpu_time": 3.5637254399999565e+08, + "time_unit": "ns", + "execution_us": 3.5733725550000003e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 2, + "real_time": 3.4999329749916798e+08, + "cpu_time": 3.4937872349999565e+08, + "time_unit": "ns", + "execution_us": 3.4999221100000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 2, + "real_time": 3.5522493250027764e+08, + "cpu_time": 3.5440063499999750e+08, + "time_unit": "ns", + "execution_us": 3.5522369349999999e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_mean", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5418549716632694e+08, + "cpu_time": 3.5338396749999624e+08, + "time_unit": "ns", + "execution_us": 3.5418438666666672e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_median", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5522493250027764e+08, + "cpu_time": 3.5440063499999756e+08, + "time_unit": "ns", + "execution_us": 3.5522369349999999e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_stddev", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.7811960279498813e+06, + "cpu_time": 3.6060492094187345e+06, + "time_unit": "ns", + "execution_us": 3.7812086291369365e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Naive/real_time_cv", + "family_index": 20, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 1.0675750583243718e-02, + "cpu_time": 1.0204337324439523e-02, + "time_unit": "ns", + "execution_us": 1.0675819633730897e-02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 4, + "real_time": 1.6235981549834833e+08, + "cpu_time": 1.6207399474999917e+08, + "time_unit": "ns", + "execution_us": 1.6235926550000001e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.4857716899999999e+06, + "plan_cost": 8.4211030000000000e+06 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 4, + "real_time": 1.6256094900018069e+08, + "cpu_time": 1.6222403449999943e+08, + "time_unit": "ns", + "execution_us": 1.6256034599999999e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.3536921800000002e+06, + "plan_cost": 8.4211030000000000e+06 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 4, + "real_time": 1.6506758575087589e+08, + "cpu_time": 1.6468362775000146e+08, + "time_unit": "ns", + "execution_us": 1.6506698650000000e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.3569620880000000e+06, + "plan_cost": 8.4211030000000000e+06 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_mean", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6332945008313498e+08, + "cpu_time": 1.6299388566666666e+08, + "time_unit": "ns", + "execution_us": 1.6332886599999998e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.3988086526666665e+06, + "plan_cost": 8.4211030000000000e+06 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_median", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6256094900018069e+08, + "cpu_time": 1.6222403449999943e+08, + "time_unit": "ns", + "execution_us": 1.6256034599999999e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 3.3569620880000000e+06, + "plan_cost": 8.4211030000000000e+06 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_stddev", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.5086253249233707e+06, + "cpu_time": 1.4652812742932725e+06, + "time_unit": "ns", + "execution_us": 1.5086104521252651e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 7.5329944054557054e+04, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.2/Interpreted/Optimized/real_time_cv", + "family_index": 21, + "per_family_instance_index": 0, + "run_name": "SSB/q4.2/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 9.2367011837453557e-03, + "cpu_time": 8.9897928888563964e-03, + "time_unit": "ns", + "execution_us": 9.2366431548313397e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 2.2163631952464884e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 2, + "real_time": 3.5135333549987990e+08, + "cpu_time": 3.5069528999999732e+08, + "time_unit": "ns", + "execution_us": 3.5135238000000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 2, + "real_time": 3.5084772699701715e+08, + "cpu_time": 3.5017025850000036e+08, + "time_unit": "ns", + "execution_us": 3.5084673800000001e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 2, + "real_time": 3.5227306849992603e+08, + "cpu_time": 3.5165139699999768e+08, + "time_unit": "ns", + "execution_us": 3.5227209200000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_mean", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5149137699894100e+08, + "cpu_time": 3.5083898183333182e+08, + "time_unit": "ns", + "execution_us": 3.5149040333333332e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_median", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.5135333549987990e+08, + "cpu_time": 3.5069528999999732e+08, + "time_unit": "ns", + "execution_us": 3.5135238000000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_stddev", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 7.2262797591793910e+05, + "cpu_time": 7.5095161047108343e+05, + "time_unit": "ns", + "execution_us": 7.2263153594247910e+02, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Naive/real_time_cv", + "family_index": 22, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.0558910494129028e-03, + "cpu_time": 2.1404451881228736e-03, + "time_unit": "ns", + "execution_us": 2.0559068728177392e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 4, + "real_time": 1.6307732399945962e+08, + "cpu_time": 1.6273075100000155e+08, + "time_unit": "ns", + "execution_us": 1.6307669149999999e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.9473111000000004e+04, + "plan_cost": 8.4221730000000000e+06 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 4, + "real_time": 1.6145620075076294e+08, + "cpu_time": 1.6112029925000116e+08, + "time_unit": "ns", + "execution_us": 1.6145562625000000e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.7432722999999998e+04, + "plan_cost": 8.4221730000000000e+06 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 4, + "real_time": 1.6123671624882263e+08, + "cpu_time": 1.6087974650000092e+08, + "time_unit": "ns", + "execution_us": 1.6123599475000001e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.8082785000000003e+04, + "plan_cost": 8.4221730000000000e+06 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_mean", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6192341366634837e+08, + "cpu_time": 1.6157693225000119e+08, + "time_unit": "ns", + "execution_us": 1.6192277083333331e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.8329539666666664e+04, + "plan_cost": 8.4221730000000000e+06 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_median", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.6145620075076294e+08, + "cpu_time": 1.6112029925000116e+08, + "time_unit": "ns", + "execution_us": 1.6145562625000000e+05, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 8.8082785000000003e+04, + "plan_cost": 8.4221730000000000e+06 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_stddev", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.0053234078127592e+06, + "cpu_time": 1.0064490485261864e+06, + "time_unit": "ns", + "execution_us": 1.0053403292820642e+03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.0423347335560413e+03, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q4.1/Interpreted/Optimized/real_time_cv", + "family_index": 23, + "per_family_instance_index": 0, + "run_name": "SSB/q4.1/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 6.2086352124732271e-03, + "cpu_time": 6.2289154430098352e-03, + "time_unit": "ns", + "execution_us": 6.2087643640736509e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.1800522650627965e-02, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 2, + "real_time": 3.0640868749833316e+08, + "cpu_time": 3.0580860949999791e+08, + "time_unit": "ns", + "execution_us": 3.0640767900000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 2, + "real_time": 3.0176305550048709e+08, + "cpu_time": 2.9928094450000489e+08, + "time_unit": "ns", + "execution_us": 3.0176174949999998e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 2, + "real_time": 3.0249018450194854e+08, + "cpu_time": 3.0186889550000018e+08, + "time_unit": "ns", + "execution_us": 3.0248920350000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_mean", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0355397583358955e+08, + "cpu_time": 3.0231948316666764e+08, + "time_unit": "ns", + "execution_us": 3.0355287733333331e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_median", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 3.0249018450194854e+08, + "cpu_time": 3.0186889550000018e+08, + "time_unit": "ns", + "execution_us": 3.0248920350000000e+05, + "includes_order_by": 1.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_stddev", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 2.4988423645448335e+06, + "cpu_time": 3.2870768962827683e+06, + "time_unit": "ns", + "execution_us": 2.4989431261091308e+03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Naive/real_time_cv", + "family_index": 24, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Naive/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 8.2319539965924095e-03, + "cpu_time": 1.0872858281748964e-02, + "time_unit": "ns", + "execution_us": 8.2323157272036849e-03, + "includes_order_by": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 0, + "threads": 1, + "iterations": 11, + "real_time": 5.8630359363715716e+07, + "cpu_time": 5.8503151727273136e+07, + "time_unit": "ns", + "execution_us": 5.8630108818181820e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.4296940000000004e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 1, + "threads": 1, + "iterations": 11, + "real_time": 5.8582719363171652e+07, + "cpu_time": 5.8459474727271751e+07, + "time_unit": "ns", + "execution_us": 5.8582436272727275e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.3965360000000001e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "iteration", + "repetitions": 3, + "repetition_index": 2, + "threads": 1, + "iterations": 11, + "real_time": 5.8810965545655400e+07, + "cpu_time": 5.8684096636363074e+07, + "time_unit": "ns", + "execution_us": 5.8810713454545454e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.3967389999999996e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_mean", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "mean", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.8674681424180903e+07, + "cpu_time": 5.8548907696969323e+07, + "time_unit": "ns", + "execution_us": 5.8674419515151509e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.4076563333333324e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_median", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "median", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 5.8630359363715708e+07, + "cpu_time": 5.8503151727273136e+07, + "time_unit": "ns", + "execution_us": 5.8630108818181820e+04, + "includes_order_by": 1.0000000000000000e+00, + "optimizer_us": 4.3967389999999996e+03, + "plan_cost": 8.3643830000000000e+06 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_stddev", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "stddev", + "aggregate_unit": "time", + "iterations": 3, + "real_time": 1.2040520644265502e+05, + "cpu_time": 1.1909641927127035e+05, + "time_unit": "ns", + "execution_us": 1.2041676102318856e+02, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 1.9085449073674976e+01, + "plan_cost": 0.0000000000000000e+00 + }, + { + "name": "SSB/q2.3/Interpreted/Optimized/real_time_cv", + "family_index": 25, + "per_family_instance_index": 0, + "run_name": "SSB/q2.3/Interpreted/Optimized/real_time", + "run_type": "aggregate", + "repetitions": 3, + "threads": 1, + "aggregate_name": "cv", + "aggregate_unit": "percentage", + "iterations": 3, + "real_time": 2.0520811280116099e-03, + "cpu_time": 2.0341356304660004e-03, + "time_unit": "ns", + "execution_us": 2.0522872150800452e-03, + "includes_order_by": 0.0000000000000000e+00, + "optimizer_us": 4.3300674168581157e-03, + "plan_cost": 0.0000000000000000e+00 + } + ] +} diff --git a/research/benchmarks.ipynb b/research/benchmarks.ipynb index 629f6fe..b837812 100644 --- a/research/benchmarks.ipynb +++ b/research/benchmarks.ipynb @@ -728,7 +728,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 24, "id": "b16b9fb4", "metadata": {}, "outputs": [], @@ -762,7 +762,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 25, "id": "d3172304", "metadata": {}, "outputs": [ @@ -825,7 +825,7 @@ " 25 q2.3 Interpreted Optimized 6.071635)" ] }, - "execution_count": 16, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -851,7 +851,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 26, "id": "f4e060f2", "metadata": {}, "outputs": [ @@ -923,7 +923,7 @@ " 47 26010000 NestedLoopCrossJoin 500 26000000.0 16.636418)" ] }, - "execution_count": 17, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -957,7 +957,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 27, "id": "2075a20f", "metadata": {}, "outputs": [ diff --git a/src/stewkk/sql/logic/executor/executor.cpp b/src/stewkk/sql/logic/executor/executor.cpp index 631af91..5df06ca 100644 --- a/src/stewkk/sql/logic/executor/executor.cpp +++ b/src/stewkk/sql/logic/executor/executor.cpp @@ -1097,16 +1097,6 @@ boost::asio::awaitable Executor::ExecuteJoin(const Nes namespace { -size_t FindAttrIndex(const AttributesInfo& attrs, const Attribute& a) { - auto it = std::find_if(attrs.begin(), attrs.end(), [&](const AttributeInfo& ai) { - return ai.table == a.table && ai.name == a.name; - }); - if (it == attrs.end()) { - throw std::runtime_error{"hash join key attribute not found: " + a.table + "." + a.name}; - } - return static_cast(it - attrs.begin()); -} - bool AttrMatches(const AttributeInfo& ai, const Attribute& a) { return ai.name == a.name && (a.table.empty() || ai.table == a.table); } @@ -1185,21 +1175,6 @@ int CompareNonNullValues(const Value& lhs, const Value& rhs, Type type) { std::unreachable(); } -std::optional FindHashJoinKey(const Expression& qual) { - std::vector conjuncts; - CollectConjuncts(qual, conjuncts); - for (const auto& conjunct : conjuncts) { - const auto* bin = std::get_if(&conjunct); - if (!bin || bin->binop != BinaryOp::kEq) continue; - if (!std::holds_alternative(*bin->lhs) - || !std::holds_alternative(*bin->rhs)) { - continue; - } - return *bin; - } - return std::nullopt; -} - } // namespace @@ -1216,13 +1191,6 @@ boost::asio::awaitable Executor::ExecuteHashJoin( if (join.type != JoinType::kInner) { throw std::logic_error{"HashJoin executor supports only Inner joins"}; } - const auto bin = FindHashJoinKey(join.qual); - if (!bin) { - throw std::logic_error{"HashJoin qual must contain an equality between attributes"}; - } - const auto* a = std::get_if(bin->lhs.get()); - const auto* b = std::get_if(bin->rhs.get()); - auto exec = co_await boost::asio::this_coro::executor; auto [lhs_attrs_chan, lhs_tuples_chan] = co_await GetChannels(); auto lhs_task = SpawnExecutor(exec, *join.lhs, lhs_attrs_chan, lhs_tuples_chan); @@ -1231,23 +1199,9 @@ boost::asio::awaitable Executor::ExecuteHashJoin( auto lhs_attrs = co_await lhs_attrs_chan.async_receive(boost::asio::use_awaitable); auto rhs_attrs = co_await rhs_attrs_chan.async_receive(boost::asio::use_awaitable); - - - auto lhs_has = [&](const Attribute& attr) { - return std::any_of(lhs_attrs.begin(), lhs_attrs.end(), [&](const AttributeInfo& ai) { - return ai.table == attr.table && ai.name == attr.name; - }); - }; - const Attribute* lhs_attr = nullptr; - const Attribute* rhs_attr = nullptr; - if (lhs_has(*a)) { lhs_attr = a; rhs_attr = b; } - else if (lhs_has(*b)) { lhs_attr = b; rhs_attr = a; } - else { - throw std::runtime_error{"HashJoin qual: neither side of equality found in lhs attrs"}; - } - - size_t lhs_key_idx = FindAttrIndex(lhs_attrs, *lhs_attr); - size_t rhs_key_idx = FindAttrIndex(rhs_attrs, *rhs_attr); + auto keys = ResolveExecutorJoinKeys(join.qual, lhs_attrs, rhs_attrs); + size_t lhs_key_idx = FindAttrIndexFlexible(lhs_attrs, keys.lhs); + size_t rhs_key_idx = FindAttrIndexFlexible(rhs_attrs, keys.rhs); AttributesInfo out_attrs = lhs_attrs; std::ranges::copy(rhs_attrs, std::back_inserter(out_attrs)); @@ -1473,7 +1427,7 @@ boost::asio::awaitable Executor::ExecuteMergeJoin( template boost::asio::awaitable Executor::ExecuteHashAggregate( - const PhysicalAggregation& agg, AttributesInfoChannel& out_attr_chan, + PhysicalAggregation agg, AttributesInfoChannel& out_attr_chan, TuplesChannel& out_tuples_chan) { Log("Executing hash aggregate"); auto close_on_fail = boost::scope::make_scope_fail( diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index ff9e24b..a4e7f8e 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -246,6 +246,36 @@ TEST(TransformationRulesTest, PushesPartialAggregationBelowJoin) { new_join.lhs->GetLogicalExprs()[0]->root_operator)); } +TEST(TransformationRulesTest, PartialAggregationBelowJoinKeepsOnlyLeftGroupBy) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join = memo.AddGroup(logical::Join{ + a, b, JoinType::kInner, Eq(Attribute{"a", "id"}, Attribute{"b", "aid"})})->group; + auto agg = memo.AddGroup(logical::Aggregation{ + join, + {Attribute{"a", "region"}, Attribute{"b", "brand"}}, + {Sum(Attribute{"a", "x"})}}); + SchemaCatalog schema; + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; + AggregationPushdownThroughJoin rule; + + auto result = rule.Apply(agg, memo, ctx); + + const auto& final = std::get(result->root_operator); + const auto& new_join = std::get( + final.source->GetLogicalExprs()[0]->root_operator); + const auto& partial = std::get( + new_join.lhs->GetLogicalExprs()[0]->root_operator); + EXPECT_THAT(partial.group_by, ::testing::ElementsAre( + Expression{Attribute{"a", "region"}}, + Expression{Attribute{"a", "id"}})); + EXPECT_THAT(final.group_by, ::testing::ElementsAre( + Expression{Attribute{"a", "region"}}, + Expression{Attribute{"b", "brand"}})); +} + TEST(TransformationRulesTest, TransposesAggregationAndJoinWithConstraints) { Memo memo; auto a = memo.AddGroup(logical::Table{"a"})->group; diff --git a/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp b/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp index 01ec4d1..d584af7 100644 --- a/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp +++ b/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp @@ -58,10 +58,33 @@ bool AggregatesUseOnlyLeft(const logical::Aggregation& agg, }); } +bool GroupByCanBeReconstructedAfterJoin(const logical::Aggregation& agg, + const std::unordered_set& lhs_tables, + const std::unordered_set& rhs_tables) { + return std::ranges::all_of(agg.group_by, [&](const Expression& expr) { + return ExprUsesOnlyTables(expr, lhs_tables) || ExprUsesOnlyTables(expr, rhs_tables); + }); +} + bool ContainsExpr(const std::vector& exprs, const Expression& needle) { return std::ranges::any_of(exprs, [&](const Expression& e) { return e == needle; }); } +std::vector PartialGroupBy(const logical::Aggregation& agg, + const std::unordered_set& lhs_tables, + const Attribute& join_key) { + std::vector out; + for (const auto& expr : agg.group_by) { + if (ExprUsesOnlyTables(expr, lhs_tables)) { + out.push_back(expr); + } + } + if (!ContainsExpr(out, Expression{join_key})) { + out.push_back(join_key); + } + return out; +} + std::vector FinalAggregates(const std::vector& aggregates) { std::vector out; out.reserve(aggregates.size()); @@ -78,7 +101,9 @@ bool CanApply(const logical::Aggregation& agg) { const auto* join = FindInnerJoin(agg.source); if (join == nullptr || !EquiJoinKeys(*join)) return false; auto lhs_tables = GroupTables(join->lhs); - return AggregatesUseOnlyLeft(agg, lhs_tables); + auto rhs_tables = GroupTables(join->rhs); + return AggregatesUseOnlyLeft(agg, lhs_tables) + && GroupByCanBeReconstructedAfterJoin(agg, lhs_tables, rhs_tables); } } // namespace @@ -98,10 +123,8 @@ LogicalOperator AggregationPushdownThroughJoin::ApplyImpl(utils::NotNulllhs})) { - partial_group_by.push_back(keys->lhs); - } + auto lhs_tables = GroupTables(join->lhs); + auto partial_group_by = PartialGroupBy(agg, lhs_tables, keys->lhs); auto partial = memo.AddGroup( logical::PartialAggregation{join->lhs, partial_group_by, agg.aggregates})->group; From fa35de010615726936dabf15c05782be5910515c Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Mon, 15 Jun 2026 21:05:55 +0300 Subject: [PATCH 116/120] Fix all --- report/reach-fuzz-cross-mssql.pdf | Bin 13418 -> 12456 bytes report/reach-fuzz-cross-ours.pdf | Bin 16941 -> 15315 bytes report/vkr.pdf | Bin 0 -> 1118222 bytes report/vkr.tex | 135 +++++++++++++++++------------- research/benchmarks.ipynb | 72 ++++++++-------- 5 files changed, 114 insertions(+), 93 deletions(-) create mode 100644 report/vkr.pdf diff --git a/report/reach-fuzz-cross-mssql.pdf b/report/reach-fuzz-cross-mssql.pdf index e3a8b7f77895f939ef022fffc82d6a862fa12115..c8d7a500a4bc3efec80a3d56656b251df5bb6c0c 100644 GIT binary patch delta 2084 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 diff --git a/report/reach-fuzz-cross-ours.pdf b/report/reach-fuzz-cross-ours.pdf index 4e15405a5855e3da1ee257f3b7f844e720177c78..f13d7055faefbc74b126d2eb39fa80b84671b32e 100644 GIT binary patch delta 2333 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 Rv4cq?3%z-HlgmrJe*p$lCXxUE diff --git a/report/vkr.pdf b/report/vkr.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8cb54e0bdbacb21c5ece53bd1899fe5c857775df GIT binary patch literal 1118222 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
f{>5PI-wb>SyZ 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ٌ<5{v8;(wZnwgUk1GIjqT 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
w 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

Em#>Cu-Gj$S_o+9 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 U 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 BZs+ZVv7` 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�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 Executor::Execute(const Physica boost::asio::awaitable operator()(const PhysicalStreamAggregation& agg) const { return executor.ExecuteStreamAggregate(agg, attr_chan, tuples_chan); } + boost::asio::awaitable operator()(const PhysicalPartialAggregation& agg) const { + return executor.ExecuteHashAggregate( + PhysicalAggregation{agg.source, agg.group_by, agg.aggregates}, + attr_chan, tuples_chan); + } + boost::asio::awaitable operator()(const PhysicalFinalAggregation& agg) const { + return executor.ExecuteHashAggregate( + PhysicalAggregation{agg.source, agg.group_by, agg.aggregates}, + attr_chan, tuples_chan); + } boost::asio::awaitable operator()(const MergeJoin& join) const { return executor.ExecuteMergeJoin(join, attr_chan, tuples_chan); } diff --git a/src/stewkk/sql/logic/executor/plan.cpp b/src/stewkk/sql/logic/executor/plan.cpp index 5fddf24..55c82d0 100644 --- a/src/stewkk/sql/logic/executor/plan.cpp +++ b/src/stewkk/sql/logic/executor/plan.cpp @@ -51,4 +51,12 @@ bool PhysicalStreamAggregation::operator==(const PhysicalStreamAggregation& othe return *source == *other.source && group_by == other.group_by && aggregates == other.aggregates; } +bool PhysicalPartialAggregation::operator==(const PhysicalPartialAggregation& other) const { + return *source == *other.source && group_by == other.group_by && aggregates == other.aggregates; +} + +bool PhysicalFinalAggregation::operator==(const PhysicalFinalAggregation& other) const { + return *source == *other.source && group_by == other.group_by && aggregates == other.aggregates; +} + } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/executor/plan_serializer.cpp b/src/stewkk/sql/logic/executor/plan_serializer.cpp index 819fdea..e219df0 100644 --- a/src/stewkk/sql/logic/executor/plan_serializer.cpp +++ b/src/stewkk/sql/logic/executor/plan_serializer.cpp @@ -237,6 +237,34 @@ std::string SerializeNode(const PhysicalPlanNode& node) { return std::format("(StreamAggregate (group_by {}) (aggs {}) {})", group_by_str, aggs_str, SerializeNode(*n.source)); } + std::string operator()(const PhysicalPartialAggregation& n) const { + std::string group_by_str; + for (const auto& e : n.group_by) { + if (!group_by_str.empty()) group_by_str += ' '; + group_by_str += SerializeExpr(e); + } + std::string aggs_str; + for (const auto& e : n.aggregates) { + if (!aggs_str.empty()) aggs_str += ' '; + aggs_str += SerializeExpr(e); + } + return std::format("(PartialAggregate (group_by {}) (aggs {}) {})", + group_by_str, aggs_str, SerializeNode(*n.source)); + } + std::string operator()(const PhysicalFinalAggregation& n) const { + std::string group_by_str; + for (const auto& e : n.group_by) { + if (!group_by_str.empty()) group_by_str += ' '; + group_by_str += SerializeExpr(e); + } + std::string aggs_str; + for (const auto& e : n.aggregates) { + if (!aggs_str.empty()) aggs_str += ' '; + aggs_str += SerializeExpr(e); + } + return std::format("(FinalAggregate (group_by {}) (aggs {}) {})", + group_by_str, aggs_str, SerializeNode(*n.source)); + } }; return std::visit(Visitor{}, node.node); } @@ -757,6 +785,44 @@ struct DotBuilder { EmitEdge(src, id); return id; } + + int EmitAlternative(const PhysicalPartialAggregation& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); + std::string aggs; + for (const auto& e : n.aggregates) { + if (!aggs.empty()) aggs += ", "; + aggs += ToString(e); + } + std::string group_by; + for (const auto& e : n.group_by) { + if (!group_by.empty()) group_by += ", "; + group_by += ToString(e); + } + int id = Emit(std::format("PartialAgg\\nGROUP BY {}\\n{}", group_by, aggs), + metadata); + EmitEdge(src, id); + return id; + } + + int EmitAlternative(const PhysicalFinalAggregation& n, + const std::optional& metadata) { + int src = EmitNode(*n.source); + std::string aggs; + for (const auto& e : n.aggregates) { + if (!aggs.empty()) aggs += ", "; + aggs += ToString(e); + } + std::string group_by; + for (const auto& e : n.group_by) { + if (!group_by.empty()) group_by += ", "; + group_by += ToString(e); + } + int id = Emit(std::format("FinalAgg\\nGROUP BY {}\\n{}", group_by, aggs), + metadata); + EmitEdge(src, id); + return id; + } }; } // namespace diff --git a/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp b/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp index 8164a5c..cf8a586 100644 --- a/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp +++ b/src/stewkk/sql/logic/implementation_rules/implement_aggregation.cpp @@ -5,10 +5,21 @@ namespace stewkk::sql { bool ImplementAggregation::IsApplicable(utils::NotNull expr) { - return std::holds_alternative(expr->root_operator); + return std::holds_alternative(expr->root_operator) + || std::holds_alternative(expr->root_operator) + || std::holds_alternative(expr->root_operator); } std::vector> ImplementAggregation::Apply(utils::NotNull expr, Memo&) { + if (auto* partial = std::get_if(&expr->root_operator)) { + return {expr->group->AddPhysicalExpr( + physical::PartialAggregation{partial->source, partial->group_by, partial->aggregates})}; + } + if (auto* final = std::get_if(&expr->root_operator)) { + return {expr->group->AddPhysicalExpr( + physical::FinalAggregation{final->source, final->group_by, final->aggregates})}; + } + auto& agg = std::get(expr->root_operator); std::vector> result{ expr->group->AddPhysicalExpr( diff --git a/src/stewkk/sql/logic/optimizer/cardinality.cpp b/src/stewkk/sql/logic/optimizer/cardinality.cpp index 9097843..4f4ed0e 100644 --- a/src/stewkk/sql/logic/optimizer/cardinality.cpp +++ b/src/stewkk/sql/logic/optimizer/cardinality.cpp @@ -109,6 +109,20 @@ int64_t CardinalityEstimates::GetCardinality(const LogicalOperator& op) { } return source_cardinality; }, + [this](const logical::PartialAggregation& a) -> int64_t { + auto source_cardinality = GetCardinality(a.source); + if (a.group_by.empty()) { + return 1; + } + return source_cardinality; + }, + [this](const logical::FinalAggregation& a) -> int64_t { + auto source_cardinality = GetCardinality(a.source); + if (a.group_by.empty()) { + return 1; + } + return source_cardinality; + }, [this](const logical::CrossJoin& j) -> int64_t { return GetCardinality(j.lhs) * GetCardinality(j.rhs); }, diff --git a/src/stewkk/sql/logic/optimizer/memo.cpp b/src/stewkk/sql/logic/optimizer/memo.cpp index 2515a79..f041b94 100644 --- a/src/stewkk/sql/logic/optimizer/memo.cpp +++ b/src/stewkk/sql/logic/optimizer/memo.cpp @@ -36,6 +36,30 @@ std::string ToKey(const LogicalOperator& op) { return "Aggregation(" + group_by + ";" + aggregates + ";" + std::to_string(a.source->GetId()) + ")"; }, + [](const logical::PartialAggregation& a) { + std::string group_by; + for (const auto& e : a.group_by) { + group_by += ToString(e) + ","; + } + std::string aggregates; + for (const auto& e : a.aggregates) { + aggregates += ToString(e) + ","; + } + return "PartialAggregation(" + group_by + ";" + aggregates + ";" + + std::to_string(a.source->GetId()) + ")"; + }, + [](const logical::FinalAggregation& a) { + std::string group_by; + for (const auto& e : a.group_by) { + group_by += ToString(e) + ","; + } + std::string aggregates; + for (const auto& e : a.aggregates) { + aggregates += ToString(e) + ","; + } + return "FinalAggregation(" + group_by + ";" + aggregates + ";" + + std::to_string(a.source->GetId()) + ")"; + }, [](const logical::CrossJoin& j) { return "CrossJoin(" + std::to_string(j.lhs->GetId()) + "," + std::to_string(j.rhs->GetId()) + ")"; }, diff --git a/src/stewkk/sql/logic/optimizer/optimizer.cpp b/src/stewkk/sql/logic/optimizer/optimizer.cpp index 02abba3..86bbeb4 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer.cpp @@ -110,6 +110,8 @@ PropertySet RequiredInputProps(utils::NotNull expr, [&](const physical::Sort&) { return PropertySet::Any(); }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, [&](const physical::StreamAggregation& a) { return SortOnGroupBy(a.group_by); }, + [&](const physical::PartialAggregation&) { return PropertySet::Any(); }, + [&](const physical::FinalAggregation&) { return PropertySet::Any(); }, }, expr->root_operator); } @@ -134,6 +136,8 @@ PropertySet DeriveOutputProps(utils::NotNull expr, [&](const physical::Sort& s) { return PropertySet{SortProperty{s.keys}}; }, [&](const physical::Aggregation&) { return PropertySet::Any(); }, [&](const physical::StreamAggregation& a) { return SortOnGroupBy(a.group_by); }, + [&](const physical::PartialAggregation&) { return PropertySet::Any(); }, + [&](const physical::FinalAggregation&) { return PropertySet::Any(); }, }, expr->root_operator); } @@ -172,6 +176,12 @@ int64_t LowerBoundLocalCost(utils::NotNull expr, CardinalityEstima [&](const logical::Aggregation& a) -> int64_t { return 510 * cardinality.GetCardinality(a.source); }, + [&](const logical::PartialAggregation& a) -> int64_t { + return 510 * cardinality.GetCardinality(a.source); + }, + [&](const logical::FinalAggregation& a) -> int64_t { + return 510 * cardinality.GetCardinality(a.source); + }, [&](const logical::CrossJoin& j) -> int64_t { return 104 * cardinality.GetCardinality(j.lhs) * cardinality.GetCardinality(j.rhs); }, @@ -237,6 +247,12 @@ int64_t CalcCost(utils::NotNull expr, CardinalityEstimates& cardi [&](const physical::StreamAggregation& a) -> int64_t { return 130 * cardinality.GetCardinality(a.source); }, + [&](const physical::PartialAggregation& a) -> int64_t { + return 510 * cardinality.GetCardinality(a.source); + }, + [&](const physical::FinalAggregation& a) -> int64_t { + return 510 * cardinality.GetCardinality(a.source); + }, }, expr->root_operator); } @@ -256,6 +272,12 @@ std::vector> GetChildren(utils::NotNull exp [](const logical::Aggregation& a) -> std::vector> { return {a.source}; }, + [](const logical::PartialAggregation& a) -> std::vector> { + return {a.source}; + }, + [](const logical::FinalAggregation& a) -> std::vector> { + return {a.source}; + }, [](const logical::CrossJoin& j) -> std::vector> { return {j.lhs, j.rhs}; }, @@ -300,15 +322,23 @@ std::vector> GetChildren(utils::NotNull ex [](const physical::StreamAggregation& a) -> std::vector> { return {a.source}; }, + [](const physical::PartialAggregation& a) -> std::vector> { + return {a.source}; + }, + [](const physical::FinalAggregation& a) -> std::vector> { + return {a.source}; + }, }, expr->root_operator); } template Optimizer::Optimizer( const Operator& expr, Rules&& rules, - CardinalityEstimates cardinality, SchemaCatalog schema, PropertySet required) + CardinalityEstimates cardinality, SchemaCatalog schema, PropertySet required, + ConstraintCatalog constraints) : memo_(), rules_applier_(std::move(rules)), root_(memo_.Populate(expr)), cardinality_(std::move(cardinality)), schema_(std::move(schema)), + constraints_(std::move(constraints)), global_required_(std::move(required)) { } @@ -398,7 +428,8 @@ template void Optimizer::ApplyRule( TransformationRuleId rule, utils::NotNull expr, Limit limit) { Log("Applying transformation rule {} to group {}", rule.value, expr->group->GetId()); - auto new_expr = rules_applier_.Apply(rule, expr, memo_); + RuleContext ctx{schema_, constraints_}; + auto new_expr = rules_applier_.Apply(rule, expr, memo_, ctx); tasks_.emplace([this, new_expr, limit]() { ExploreExpression(new_expr, limit); }); @@ -416,7 +447,8 @@ template void Optimizer::TryRules( utils::NotNull expr, Limit limit) { for (size_t rule = 0; rule < NTransformation; rule++) { - if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr)) { + RuleContext ctx{schema_, constraints_}; + if (!rules_applier_.IsApplicable(TransformationRuleId{rule}, expr, ctx)) { continue; } tasks_.emplace([this, expr, rule, limit]() { @@ -616,6 +648,22 @@ PhysicalPlanNode Optimizer::BuildOptimalPlan(G .aggregates = op.aggregates, }; }, + [this, best_expr_nn, required](const physical::PartialAggregation& op) -> PhysicalPlanNode { + return PhysicalPartialAggregation{ + .source = std::make_shared( + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), + .group_by = op.group_by, + .aggregates = op.aggregates, + }; + }, + [this, best_expr_nn, required](const physical::FinalAggregation& op) -> PhysicalPlanNode { + return PhysicalFinalAggregation{ + .source = std::make_shared( + BuildOptimalPlan(op.source.get(), RequiredInputProps(best_expr_nn, required, 0, schema_))), + .group_by = op.group_by, + .aggregates = op.aggregates, + }; + }, }, best_expr->root_operator); plan.metadata = PlanNodeMetadata{ @@ -675,7 +723,7 @@ utils::NotNull Optimizer::GetRootGroup return root_->group; } -template class Optimizer<7, 9>; +template class Optimizer<14, 9>; template class Optimizer<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 03a23c1..be8360a 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -1,5 +1,7 @@ #include +#include +#include #include #include #include @@ -83,6 +85,23 @@ TEST(SchemaCatalogTest, MissingTableSchemaThrows) { ASSERT_THROW(schema.GetWidth(root->group), std::runtime_error); } +TEST(ConstraintCatalogTest, LoadsUniqueAndForeignKeyMetadata) { + auto dir = std::filesystem::temp_directory_path() / "iu9_sql_constraints_test"; + std::filesystem::create_directories(dir); + { + std::ofstream out{dir / "constraints.meta"}; + out << "unique departments id\n"; + out << "foreign_key users department_id departments id\n"; + } + + auto catalog = LoadConstraintCatalogFromCsvDir(dir); + + EXPECT_TRUE(catalog.IsUnique(Attribute{"departments", "id"})); + EXPECT_TRUE(catalog.HasForeignKey(Attribute{"users", "department_id"}, + Attribute{"departments", "id"})); + std::filesystem::remove_all(dir); +} + TEST(OptimizerTest, Simple) { std::stringstream s{"SELECT * FROM users;"}; Operator op = GetAST(s).value().op; diff --git a/src/stewkk/sql/logic/optimizer/reachability.cpp b/src/stewkk/sql/logic/optimizer/reachability.cpp index c36000c..c8e4e65 100644 --- a/src/stewkk/sql/logic/optimizer/reachability.cpp +++ b/src/stewkk/sql/logic/optimizer/reachability.cpp @@ -159,6 +159,28 @@ InternalMatch TryMatchExpr(utils::NotNull pe, if (!child.ok) child.reason = "StreamAggregation.source: " + child.reason; return child; }, + [&](const physical::PartialAggregation& op) -> InternalMatch { + const auto* t = std::get_if(&target.node); + if (!t) return {false, depth, "type mismatch: expected PartialAggregate"}; + if (op.group_by != t->group_by) + return {false, depth + 1, "PartialAggregation group_by mismatch"}; + if (op.aggregates != t->aggregates) + return {false, depth + 1, "PartialAggregation aggregates mismatch"}; + auto child = MatchGroup(op.source.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "PartialAggregation.source: " + child.reason; + return child; + }, + [&](const physical::FinalAggregation& op) -> InternalMatch { + const auto* t = std::get_if(&target.node); + if (!t) return {false, depth, "type mismatch: expected FinalAggregate"}; + if (op.group_by != t->group_by) + return {false, depth + 1, "FinalAggregation group_by mismatch"}; + if (op.aggregates != t->aggregates) + return {false, depth + 1, "FinalAggregation aggregates mismatch"}; + auto child = MatchGroup(op.source.get(), *t->source, depth + 1); + if (!child.ok) child.reason = "FinalAggregation.source: " + child.reason; + return child; + }, }, pe->root_operator); } diff --git a/src/stewkk/sql/logic/optimizer/rule.cpp b/src/stewkk/sql/logic/optimizer/rule.cpp index 81c387a..e3237ad 100644 --- a/src/stewkk/sql/logic/optimizer/rule.cpp +++ b/src/stewkk/sql/logic/optimizer/rule.cpp @@ -4,8 +4,9 @@ namespace stewkk::sql { -utils::NotNull TransformationRule::Apply(utils::NotNull expr, Memo& memo) { - return memo.AddLogicalExprToGroup(expr->group, ApplyImpl(expr, memo)); +utils::NotNull TransformationRule::Apply(utils::NotNull expr, + Memo& memo, RuleContext& ctx) { + return memo.AddLogicalExprToGroup(expr->group, ApplyImpl(expr, memo, ctx)); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rule_test.cpp b/src/stewkk/sql/logic/optimizer/rule_test.cpp index 269f88e..ff9e24b 100644 --- a/src/stewkk/sql/logic/optimizer/rule_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rule_test.cpp @@ -1,12 +1,46 @@ #include +#include +#include + #include #include #include #include +#include +#include +#include +#include +#include +#include namespace stewkk::sql { +namespace { + +Expression Eq(Attribute lhs, Attribute rhs) { + return BinaryExpression{ + std::make_shared(std::move(lhs)), + BinaryOp::kEq, + std::make_shared(std::move(rhs))}; +} + +Expression EqConst(Attribute lhs, IntConst rhs) { + return BinaryExpression{ + std::make_shared(std::move(lhs)), + BinaryOp::kEq, + std::make_shared(rhs)}; +} + +Expression Sum(Attribute attr) { + return AggregateExpression{ + AggregateFunction::kSum, + std::make_shared(std::move(attr)), + false}; +} + +} // namespace + class JoinCommutativityTest : public ::testing::Test { protected: void SetUp() override { @@ -18,13 +52,16 @@ class JoinCommutativityTest : public ::testing::Test { Group* a = nullptr; Group* b = nullptr; JoinCommutativity rule; + SchemaCatalog schema; + ConstraintCatalog constraints; }; TEST_F(JoinCommutativityTest, ReturnsSwappedJoin) { auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; auto expr = join_group->GetLogicalExprs()[0]; - auto result = rule.Apply(expr, memo); + RuleContext ctx{schema, constraints}; + auto result = rule.Apply(expr, memo, ctx); const auto& join = std::get(result->root_operator); EXPECT_EQ(join.lhs.get(), b); @@ -35,7 +72,8 @@ TEST_F(JoinCommutativityTest, AddsNewJoinIntoGroup) { auto join_group = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; auto expr = join_group->GetLogicalExprs()[0]; - rule.Apply(expr, memo); + RuleContext ctx{schema, constraints}; + rule.Apply(expr, memo, ctx); EXPECT_EQ(join_group->GetLogicalExprs().size(), 2u); const auto& new_join = std::get(join_group->GetLogicalExprs()[1]->root_operator); @@ -60,16 +98,20 @@ class JoinAssociativityTest : public ::testing::Test { Group* ab = nullptr; Group* abc = nullptr; JoinAssociativity rule; + SchemaCatalog schema; + ConstraintCatalog constraints; }; TEST_F(JoinAssociativityTest, CreatesNewGroup) { - rule.Apply(abc->GetLogicalExprs()[0], memo); + RuleContext ctx{schema, constraints}; + rule.Apply(abc->GetLogicalExprs()[0], memo, ctx); EXPECT_EQ(memo.GroupCount(), 6u); } TEST_F(JoinAssociativityTest, ReturnsCorrectExpression) { - auto result = rule.Apply(abc->GetLogicalExprs()[0], memo); + RuleContext ctx{schema, constraints}; + auto result = rule.Apply(abc->GetLogicalExprs()[0], memo, ctx); const auto& outer = std::get(result->root_operator); EXPECT_EQ(outer.lhs.get(), a); @@ -86,14 +128,147 @@ TEST_F(JoinAssociativityTest, DoesNotApplyWhenInnerJoinIsOuter) { auto expr = memo.AddGroup( logical::Join{outer_ab, c, JoinType::kInner, Literal::kTrue}); - EXPECT_FALSE(rule.IsApplicable(expr)); + RuleContext ctx{schema, constraints}; + EXPECT_FALSE(rule.IsApplicable(expr, ctx)); } TEST_F(JoinAssociativityTest, DoesNotApplyWhenOuterJoinIsOuter) { auto expr = memo.AddGroup( logical::Join{ab, c, JoinType::kFull, Literal::kTrue}); - EXPECT_FALSE(rule.IsApplicable(expr)); + RuleContext ctx{schema, constraints}; + EXPECT_FALSE(rule.IsApplicable(expr, ctx)); +} + +TEST(TransformationRulesTest, MovesFilterIntoInnerJoinPredicate) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join = memo.AddGroup(logical::Join{a, b, JoinType::kInner, Literal::kTrue})->group; + auto filter = memo.AddGroup(logical::Filter{join, Eq(Attribute{"a", "id"}, Attribute{"b", "id"})}); + SchemaCatalog schema; + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; + FilterToJoinPredicate rule; + + auto result = rule.Apply(filter, memo, ctx); + + const auto& got = std::get(result->root_operator); + EXPECT_EQ(got.type, JoinType::kInner); + EXPECT_EQ(got.qual, Eq(Attribute{"a", "id"}, Attribute{"b", "id"})); +} + +TEST(TransformationRulesTest, ConvertsFilteredCrossJoinToInnerJoin) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto cross = memo.AddGroup(logical::CrossJoin{a, b})->group; + auto pred = Eq(Attribute{"a", "id"}, Attribute{"b", "id"}); + auto filter = memo.AddGroup(logical::Filter{cross, pred}); + SchemaCatalog schema; + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; + CrossJoinToJoin rule; + + auto result = rule.Apply(filter, memo, ctx); + + const auto& got = std::get(result->root_operator); + EXPECT_EQ(got.type, JoinType::kInner); + EXPECT_EQ(got.qual, pred); +} + +TEST(TransformationRulesTest, ConvertsNullRejectedLeftJoinToInnerJoin) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join = memo.AddGroup(logical::Join{ + a, b, JoinType::kLeft, Eq(Attribute{"a", "id"}, Attribute{"b", "aid"})})->group; + auto filter = memo.AddGroup(logical::Filter{join, EqConst(Attribute{"b", "aid"}, 7)}); + SchemaCatalog schema; + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; + OuterJoinToInner rule; + + auto result = rule.Apply(filter, memo, ctx); + + const auto& got_filter = std::get(result->root_operator); + const auto& got_join = std::get( + got_filter.source->GetLogicalExprs()[0]->root_operator); + EXPECT_EQ(got_join.type, JoinType::kInner); +} + +TEST(TransformationRulesTest, PushesProjectionBelowJoinInputs) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join = memo.AddGroup(logical::Join{ + a, b, JoinType::kInner, Eq(Attribute{"a", "id"}, Attribute{"b", "aid"})})->group; + auto projection = memo.AddGroup(logical::Projection{ + join, {Attribute{"a", "x"}}, {}}); + SchemaCatalog schema({ + {"a", {Attribute{"a", "id"}, Attribute{"a", "x"}, Attribute{"a", "unused"}}}, + {"b", {Attribute{"b", "aid"}, Attribute{"b", "unused"}}}, + }); + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; + ProjectionPushdownThroughJoin rule; + + auto result = rule.Apply(projection, memo, ctx); + + const auto& got_projection = std::get(result->root_operator); + const auto& got_join = std::get( + got_projection.source->GetLogicalExprs()[0]->root_operator); + EXPECT_TRUE(std::holds_alternative( + got_join.lhs->GetLogicalExprs()[0]->root_operator)); + EXPECT_TRUE(std::holds_alternative( + got_join.rhs->GetLogicalExprs()[0]->root_operator)); +} + +TEST(TransformationRulesTest, PushesPartialAggregationBelowJoin) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join = memo.AddGroup(logical::Join{ + a, b, JoinType::kInner, Eq(Attribute{"a", "id"}, Attribute{"b", "aid"})})->group; + auto agg = memo.AddGroup(logical::Aggregation{ + join, {Attribute{"a", "id"}}, {Sum(Attribute{"a", "x"})}}); + SchemaCatalog schema; + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; + AggregationPushdownThroughJoin rule; + + auto result = rule.Apply(agg, memo, ctx); + + const auto& final = std::get(result->root_operator); + const auto& new_join = std::get( + final.source->GetLogicalExprs()[0]->root_operator); + EXPECT_TRUE(std::holds_alternative( + new_join.lhs->GetLogicalExprs()[0]->root_operator)); +} + +TEST(TransformationRulesTest, TransposesAggregationAndJoinWithConstraints) { + Memo memo; + auto a = memo.AddGroup(logical::Table{"a"})->group; + auto b = memo.AddGroup(logical::Table{"b"})->group; + auto join = memo.AddGroup(logical::Join{ + a, b, JoinType::kInner, Eq(Attribute{"a", "id"}, Attribute{"b", "id"})})->group; + auto agg = memo.AddGroup(logical::Aggregation{ + join, {Attribute{"a", "id"}}, {Sum(Attribute{"a", "x"})}}); + SchemaCatalog schema; + ConstraintCatalog constraints( + {UniqueKeyInfo{.table = "b", .column = "id"}}, + {ForeignKeyInfo{.from_table = "a", .from_column = "id", + .to_table = "b", .to_column = "id"}}); + RuleContext ctx{schema, constraints}; + AggregationJoinTranspose rule; + + auto result = rule.Apply(agg, memo, ctx); + + const auto& projection = std::get(result->root_operator); + const auto& new_join = std::get( + projection.source->GetLogicalExprs()[0]->root_operator); + EXPECT_TRUE(std::holds_alternative( + new_join.lhs->GetLogicalExprs()[0]->root_operator)); } } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules.cpp b/src/stewkk/sql/logic/optimizer/rules.cpp index dadda82..204386e 100644 --- a/src/stewkk/sql/logic/optimizer/rules.cpp +++ b/src/stewkk/sql/logic/optimizer/rules.cpp @@ -4,7 +4,7 @@ namespace stewkk::sql { -Rules<7, 9> MakeMainRules(IndexCatalog indexes) { +Rules<14, 9> MakeMainRules(IndexCatalog indexes) { return { .transformation_rules = { std::make_unique(), @@ -14,6 +14,13 @@ Rules<7, 9> MakeMainRules(IndexCatalog indexes) { std::make_unique(), std::make_unique(), std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), + std::make_unique(), }, .implementation_rules = { std::make_unique(), diff --git a/src/stewkk/sql/logic/optimizer/rules_applier.cpp b/src/stewkk/sql/logic/optimizer/rules_applier.cpp index 41a9186..5d0758e 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier.cpp @@ -7,15 +7,17 @@ RulesApplier::RulesApplier(Rules -bool RulesApplier::IsApplicable(TransformationRuleId rule, utils::NotNull expr) { +bool RulesApplier::IsApplicable( + TransformationRuleId rule, utils::NotNull expr, RuleContext& ctx) { return !applied_transformation_rules_[expr.get()][rule.value] && - rules_.transformation_rules[rule.value]->IsApplicable(expr); + rules_.transformation_rules[rule.value]->IsApplicable(expr, ctx); } template -utils::NotNull RulesApplier::Apply(TransformationRuleId rule, utils::NotNull expr, Memo& memo) { +utils::NotNull RulesApplier::Apply( + TransformationRuleId rule, utils::NotNull expr, Memo& memo, RuleContext& ctx) { applied_transformation_rules_[expr.get()][rule.value] = 1; - return rules_.transformation_rules[rule.value]->Apply(expr, memo); + return rules_.transformation_rules[rule.value]->Apply(expr, memo, ctx); } template @@ -30,7 +32,7 @@ std::vector> RulesApplierApply(expr, memo); } -template class RulesApplier<7, 9>; +template class RulesApplier<14, 9>; template class RulesApplier<0, 6>; } // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp index d49d40e..699b4c3 100644 --- a/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp +++ b/src/stewkk/sql/logic/optimizer/rules_applier_test.cpp @@ -13,10 +13,13 @@ TEST(RulesApplierTest, ChecksThatRuleAlreadyApplied) { RulesApplier applier(MakeMainRules()); constexpr TransformationRuleId kJoinCommutativity{0}; + SchemaCatalog schema; + ConstraintCatalog constraints; + RuleContext ctx{schema, constraints}; - EXPECT_TRUE(applier.IsApplicable(kJoinCommutativity, expr)); - applier.Apply(kJoinCommutativity, expr, memo); - EXPECT_FALSE(applier.IsApplicable(kJoinCommutativity, expr)); + EXPECT_TRUE(applier.IsApplicable(kJoinCommutativity, expr, ctx)); + applier.Apply(kJoinCommutativity, expr, memo, ctx); + EXPECT_FALSE(applier.IsApplicable(kJoinCommutativity, expr, ctx)); } TEST(RulesApplierTest, ApplyImplementationRule) { diff --git a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp index e0a36fe..54ffb2c 100644 --- a/src/stewkk/sql/logic/optimizer/schema_catalog.cpp +++ b/src/stewkk/sql/logic/optimizer/schema_catalog.cpp @@ -22,6 +22,23 @@ bool IndexCatalog::HasSortedIndex(const std::string& table, const std::string& c }); } +ConstraintCatalog::ConstraintCatalog(std::vector unique_keys, + std::vector foreign_keys) + : unique_keys_(std::move(unique_keys)), foreign_keys_(std::move(foreign_keys)) {} + +bool ConstraintCatalog::IsUnique(const Attribute& attr) const { + return std::ranges::any_of(unique_keys_, [&](const UniqueKeyInfo& key) { + return key.table == attr.table && key.column == attr.name; + }); +} + +bool ConstraintCatalog::HasForeignKey(const Attribute& from, const Attribute& to) const { + return std::ranges::any_of(foreign_keys_, [&](const ForeignKeyInfo& fk) { + return fk.from_table == from.table && fk.from_column == from.name + && fk.to_table == to.table && fk.to_column == to.name; + }); +} + SchemaCatalog::SchemaCatalog(std::unordered_map tables) : tables_(std::move(tables)) {} @@ -38,6 +55,19 @@ std::int64_t SchemaCatalog::GetWidth(utils::NotNull group) { return std::max(1, GetSchema(group).size()); } +std::optional SchemaCatalog::ResolveBaseAttribute(const Attribute& attr, + utils::NotNull group) { + auto schema = GetSchema(group); + auto it = std::ranges::find_if(schema, [&](const Attribute& schema_attr) { + return schema_attr.name == attr.name + && (attr.table.empty() || attr.table == schema_attr.table); + }); + if (it == schema.end()) { + return std::nullopt; + } + return *it; +} + // TODO: refactor to remove duplicate logic: both executor and optimizer derive // attributes Schema SchemaCatalog::Derive(const LogicalOperator& op) { @@ -80,6 +110,32 @@ Schema SchemaCatalog::Derive(const LogicalOperator& op) { } return out; }, + [this](const logical::PartialAggregation& a) -> Schema { + GetSchema(a.source); + Schema out; + for (const auto& expr : a.group_by) { + if (const auto* attr = std::get_if(&expr)) { + out.push_back(*attr); + } + } + for (size_t i = 0; i < a.aggregates.size(); ++i) { + out.push_back(Attribute{"", std::format("__agg{}", i)}); + } + return out; + }, + [this](const logical::FinalAggregation& a) -> Schema { + GetSchema(a.source); + Schema out; + for (const auto& expr : a.group_by) { + if (const auto* attr = std::get_if(&expr)) { + out.push_back(*attr); + } + } + for (size_t i = 0; i < a.aggregates.size(); ++i) { + out.push_back(Attribute{"", std::format("__agg{}", i)}); + } + return out; + }, [this](const logical::CrossJoin& j) -> Schema { auto l = GetSchema(j.lhs); auto r = GetSchema(j.rhs); @@ -146,6 +202,39 @@ IndexCatalog LoadIndexCatalogFromCsvDir(const std::filesystem::path& dir) { return IndexCatalog{std::move(indexes)}; } +ConstraintCatalog LoadConstraintCatalogFromCsvDir(const std::filesystem::path& dir) { + std::vector unique_keys; + std::vector foreign_keys; + std::ifstream input{dir / "constraints.meta"}; + if (!input) { + return ConstraintCatalog{}; + } + + std::string line; + while (std::getline(input, line)) { + auto first = line.find_first_not_of(" \t\r\n"); + if (first == std::string::npos || line[first] == '#') { + continue; + } + + std::istringstream fields{line}; + std::string kind; + fields >> kind; + if (kind == "unique") { + UniqueKeyInfo key; + if (fields >> key.table >> key.column) { + unique_keys.push_back(std::move(key)); + } + } else if (kind == "foreign_key") { + ForeignKeyInfo fk; + if (fields >> fk.from_table >> fk.from_column >> fk.to_table >> fk.to_column) { + foreign_keys.push_back(std::move(fk)); + } + } + } + return ConstraintCatalog{std::move(unique_keys), std::move(foreign_keys)}; +} + std::unordered_map LoadTableSizesFromCsvDir( const std::filesystem::path& dir) { std::unordered_map sizes; diff --git a/src/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.cpp b/src/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.cpp new file mode 100644 index 0000000..6f8782f --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/aggregation_join_transpose.cpp @@ -0,0 +1,114 @@ +#include + +#include +#include +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +namespace { + +struct JoinKeys { + Attribute lhs; + Attribute rhs; +}; + +const logical::Join* FindInnerJoin(utils::NotNull source) { + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* j = std::get_if(&inner_expr->root_operator); + j != nullptr && j->type == JoinType::kInner) { + return j; + } + } + return nullptr; +} + +std::optional EquiJoinKeys(const logical::Join& join) { + const auto* bin = std::get_if(&join.qual); + if (bin == nullptr || bin->binop != BinaryOp::kEq) return std::nullopt; + const auto* l = std::get_if(bin->lhs.get()); + const auto* r = std::get_if(bin->rhs.get()); + if (l == nullptr || r == nullptr) return std::nullopt; + auto lhs_tables = GroupTables(join.lhs); + auto rhs_tables = GroupTables(join.rhs); + if (lhs_tables.contains(l->table) && rhs_tables.contains(r->table)) { + return JoinKeys{*l, *r}; + } + if (lhs_tables.contains(r->table) && rhs_tables.contains(l->table)) { + return JoinKeys{*r, *l}; + } + return std::nullopt; +} + +bool ContainsExpr(const std::vector& exprs, const Expression& needle) { + return std::ranges::any_of(exprs, [&](const Expression& e) { return e == needle; }); +} + +bool AggregateInputsOnLeft(const logical::Aggregation& agg, + const std::unordered_set& lhs_tables) { + return std::ranges::all_of(agg.aggregates, [&](const Expression& expr) { + const auto* a = std::get_if(&expr); + return a != nullptr + && (a->is_star || (a->argument && ExprUsesOnlyTables(*a->argument, lhs_tables))); + }); +} + +bool GroupByOnLeft(const logical::Aggregation& agg, + const std::unordered_set& lhs_tables) { + return std::ranges::all_of(agg.group_by, [&](const Expression& expr) { + return ExprUsesOnlyTables(expr, lhs_tables); + }); +} + +std::vector OutputProjection(const logical::Aggregation& agg) { + std::vector out = agg.group_by; + for (size_t i = 0; i < agg.aggregates.size(); ++i) { + out.push_back(Attribute{"", std::format("__agg{}", i)}); + } + return out; +} + +bool CanApply(const logical::Aggregation& agg, RuleContext& ctx) { + const auto* join = FindInnerJoin(agg.source); + if (join == nullptr) return false; + auto keys = EquiJoinKeys(*join); + if (!keys) return false; + auto lhs_tables = GroupTables(join->lhs); + if (!AggregateInputsOnLeft(agg, lhs_tables) || !GroupByOnLeft(agg, lhs_tables)) { + return false; + } + if (!ContainsExpr(agg.group_by, Expression{keys->lhs})) { + return false; + } + return ctx.constraints.IsUnique(keys->rhs) + && ctx.constraints.HasForeignKey(keys->lhs, keys->rhs); +} + +} // namespace + +bool AggregationJoinTranspose::IsApplicable(utils::NotNull expr, + RuleContext& ctx) { + if (!std::holds_alternative(expr->root_operator)) return false; + return CanApply(std::get(expr->root_operator), ctx); +} + +LogicalOperator AggregationJoinTranspose::ApplyImpl(utils::NotNull expr, + Memo& memo, RuleContext& ctx) { + const auto& agg = std::get(expr->root_operator); + if (!CanApply(agg, ctx)) { + throw std::runtime_error{"AggregationJoinTranspose requires unique/full inner equijoin"}; + } + const auto* join = FindInnerJoin(agg.source); + auto agg_lhs = memo.AddGroup( + logical::Aggregation{join->lhs, agg.group_by, agg.aggregates})->group; + auto new_join = memo.AddGroup( + logical::Join{agg_lhs, join->rhs, join->type, join->qual})->group; + return logical::Projection{new_join, OutputProjection(agg), {}}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp b/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp new file mode 100644 index 0000000..01ec4d1 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/aggregation_pushdown_through_join.cpp @@ -0,0 +1,113 @@ +#include + +#include +#include +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +namespace { + +struct JoinKeys { + Attribute lhs; + Attribute rhs; +}; + +const logical::Join* FindInnerJoin(utils::NotNull source) { + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* j = std::get_if(&inner_expr->root_operator); + j != nullptr && j->type == JoinType::kInner) { + return j; + } + } + return nullptr; +} + +std::optional EquiJoinKeys(const logical::Join& join) { + const auto* bin = std::get_if(&join.qual); + if (bin == nullptr || bin->binop != BinaryOp::kEq) return std::nullopt; + const auto* l = std::get_if(bin->lhs.get()); + const auto* r = std::get_if(bin->rhs.get()); + if (l == nullptr || r == nullptr) return std::nullopt; + auto lhs_tables = GroupTables(join.lhs); + auto rhs_tables = GroupTables(join.rhs); + if (lhs_tables.contains(l->table) && rhs_tables.contains(r->table)) { + return JoinKeys{*l, *r}; + } + if (lhs_tables.contains(r->table) && rhs_tables.contains(l->table)) { + return JoinKeys{*r, *l}; + } + return std::nullopt; +} + +bool IsSupportedAggregate(const Expression& expr) { + return std::holds_alternative(expr); +} + +bool AggregatesUseOnlyLeft(const logical::Aggregation& agg, + const std::unordered_set& lhs_tables) { + return std::ranges::all_of(agg.aggregates, [&](const Expression& expr) { + if (!IsSupportedAggregate(expr)) return false; + const auto& a = std::get(expr); + return a.is_star || (a.argument && ExprUsesOnlyTables(*a.argument, lhs_tables)); + }); +} + +bool ContainsExpr(const std::vector& exprs, const Expression& needle) { + return std::ranges::any_of(exprs, [&](const Expression& e) { return e == needle; }); +} + +std::vector FinalAggregates(const std::vector& aggregates) { + std::vector out; + out.reserve(aggregates.size()); + for (size_t i = 0; i < aggregates.size(); ++i) { + out.push_back(AggregateExpression{ + AggregateFunction::kSum, + std::make_shared(Attribute{"", std::format("__agg{}", i)}), + false}); + } + return out; +} + +bool CanApply(const logical::Aggregation& agg) { + const auto* join = FindInnerJoin(agg.source); + if (join == nullptr || !EquiJoinKeys(*join)) return false; + auto lhs_tables = GroupTables(join->lhs); + return AggregatesUseOnlyLeft(agg, lhs_tables); +} + +} // namespace + +bool AggregationPushdownThroughJoin::IsApplicable(utils::NotNull expr, + RuleContext&) { + if (!std::holds_alternative(expr->root_operator)) return false; + return CanApply(std::get(expr->root_operator)); +} + +LogicalOperator AggregationPushdownThroughJoin::ApplyImpl(utils::NotNull expr, + Memo& memo, RuleContext&) { + const auto& agg = std::get(expr->root_operator); + const auto* join = FindInnerJoin(agg.source); + auto keys = join == nullptr ? std::optional{} : EquiJoinKeys(*join); + if (join == nullptr || !keys) { + throw std::runtime_error{"AggregationPushdownThroughJoin requires an inner equijoin"}; + } + + auto partial_group_by = agg.group_by; + if (!ContainsExpr(partial_group_by, Expression{keys->lhs})) { + partial_group_by.push_back(keys->lhs); + } + + auto partial = memo.AddGroup( + logical::PartialAggregation{join->lhs, partial_group_by, agg.aggregates})->group; + auto new_join = memo.AddGroup( + logical::Join{partial, join->rhs, join->type, join->qual})->group; + return logical::FinalAggregation{new_join, agg.group_by, FinalAggregates(agg.aggregates)}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/cross_join_to_join.cpp b/src/stewkk/sql/logic/transformation_rules/cross_join_to_join.cpp new file mode 100644 index 0000000..82620f3 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/cross_join_to_join.cpp @@ -0,0 +1,36 @@ +#include + +#include + +namespace stewkk::sql { + +namespace { + +const logical::CrossJoin* FindCrossJoin(utils::NotNull source) { + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* j = std::get_if(&inner_expr->root_operator)) { + return j; + } + } + return nullptr; +} + +} // namespace + +bool CrossJoinToJoin::IsApplicable(utils::NotNull expr, RuleContext&) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& filter = std::get(expr->root_operator); + return FindCrossJoin(filter.source) != nullptr; +} + +LogicalOperator CrossJoinToJoin::ApplyImpl(utils::NotNull expr, + Memo&, RuleContext&) { + const auto& filter = std::get(expr->root_operator); + const auto* cross = FindCrossJoin(filter.source); + if (cross == nullptr) { + throw std::runtime_error{"CrossJoinToJoin requires a cross join below filter"}; + } + return logical::Join{cross->lhs, cross->rhs, JoinType::kInner, filter.predicate}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/filter_lift_through_join.cpp b/src/stewkk/sql/logic/transformation_rules/filter_lift_through_join.cpp new file mode 100644 index 0000000..ae7e40c --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/filter_lift_through_join.cpp @@ -0,0 +1,57 @@ +#include + +#include +#include + +#include + +namespace stewkk::sql { + +namespace { + +struct LiftCandidate { + logical::Filter filter; + bool left; +}; + +std::optional FindCandidate(const logical::Join& join) { + const bool can_left = join.type == JoinType::kInner || join.type == JoinType::kLeft; + const bool can_right = join.type == JoinType::kInner || join.type == JoinType::kRight; + if (can_left) { + for (auto expr : join.lhs->GetLogicalExprs()) { + if (const auto* f = std::get_if(&expr->root_operator)) { + return LiftCandidate{*f, true}; + } + } + } + if (can_right) { + for (auto expr : join.rhs->GetLogicalExprs()) { + if (const auto* f = std::get_if(&expr->root_operator)) { + return LiftCandidate{*f, false}; + } + } + } + return std::nullopt; +} + +} // namespace + +bool FilterLiftThroughJoin::IsApplicable(utils::NotNull expr, RuleContext&) { + if (!std::holds_alternative(expr->root_operator)) return false; + return FindCandidate(std::get(expr->root_operator)).has_value(); +} + +LogicalOperator FilterLiftThroughJoin::ApplyImpl(utils::NotNull expr, + Memo& memo, RuleContext&) { + const auto& join = std::get(expr->root_operator); + auto candidate = FindCandidate(join); + if (!candidate) { + throw std::runtime_error{"FilterLiftThroughJoin requires a child filter"}; + } + auto new_lhs = candidate->left ? candidate->filter.source : join.lhs; + auto new_rhs = candidate->left ? join.rhs : candidate->filter.source; + auto new_join = memo.AddGroup(logical::Join{new_lhs, new_rhs, join.type, join.qual})->group; + return logical::Filter{new_join, candidate->filter.predicate}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp b/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp index 4411a3e..d30bd82 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_merge.cpp @@ -20,13 +20,13 @@ const logical::Filter* FindInnerFilter(utils::NotNull source) { } // namespace -bool FilterMerge::IsApplicable(utils::NotNull expr) { +bool FilterMerge::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& outer = std::get(expr->root_operator); return FindInnerFilter(outer.source) != nullptr; } -LogicalOperator FilterMerge::ApplyImpl(utils::NotNull expr, Memo&) { +LogicalOperator FilterMerge::ApplyImpl(utils::NotNull expr, Memo&, RuleContext&) { const auto& outer = std::get(expr->root_operator); const auto* inner = FindInnerFilter(outer.source); if (inner == nullptr) { diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp index 23fcb6b..d8d2bfb 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_join.cpp @@ -79,14 +79,14 @@ const logical::Join* FindPushableJoin(utils::NotNull source, } // namespace -bool FilterPushdownThroughJoin::IsApplicable(utils::NotNull expr) { +bool FilterPushdownThroughJoin::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& f = std::get(expr->root_operator); return FindPushableJoin(f.source, f.predicate) != nullptr; } LogicalOperator FilterPushdownThroughJoin::ApplyImpl(utils::NotNull expr, - Memo& memo) { + Memo& memo, RuleContext&) { const auto& f = std::get(expr->root_operator); const auto* join = FindPushableJoin(f.source, f.predicate); if (join == nullptr) { diff --git a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp index 1765de7..91f2128 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_pushdown_through_projection.cpp @@ -11,31 +11,6 @@ namespace stewkk::sql { namespace { -void CollectAttributes(const Expression& e, std::vector& out) { - std::visit(utils::Overloaded{ - [&](const Attribute& a) { out.push_back(a); }, - [&](const BinaryExpression& b) { - CollectAttributes(*b.lhs, out); - CollectAttributes(*b.rhs, out); - }, - [&](const UnaryExpression& u) { CollectAttributes(*u.child, out); }, - [&](const InExpression& i) { - CollectAttributes(*i.lhs, out); - for (const auto& value : i.values) { - CollectAttributes(value, out); - } - }, - [&](const AggregateExpression& a) { - if (!a.is_star && a.argument) { - CollectAttributes(*a.argument, out); - } - }, - [&](const IntConst&) {}, - [&](const StringConst&) {}, - [&](const Literal&) {}, - }, e); -} - bool ProjectionPassesThrough(const std::vector& proj_exprs, const std::vector& needed) { return std::all_of(needed.begin(), needed.end(), [&](const Attribute& a) { @@ -62,14 +37,14 @@ const logical::Projection* FindPushableProjection(utils::NotNull source, } // namespace -bool FilterPushdownThroughProjection::IsApplicable(utils::NotNull expr) { +bool FilterPushdownThroughProjection::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& f = std::get(expr->root_operator); return FindPushableProjection(f.source, f.predicate) != nullptr; } LogicalOperator FilterPushdownThroughProjection::ApplyImpl(utils::NotNull expr, - Memo& memo) { + Memo& memo, RuleContext&) { const auto& f = std::get(expr->root_operator); const auto* proj = FindPushableProjection(f.source, f.predicate); if (proj == nullptr) { diff --git a/src/stewkk/sql/logic/transformation_rules/filter_split.cpp b/src/stewkk/sql/logic/transformation_rules/filter_split.cpp index e61a54c..47eb0f1 100644 --- a/src/stewkk/sql/logic/transformation_rules/filter_split.cpp +++ b/src/stewkk/sql/logic/transformation_rules/filter_split.cpp @@ -17,13 +17,13 @@ size_t ConjunctCount(const Expression& e) { } // namespace -bool FilterSplit::IsApplicable(utils::NotNull expr) { +bool FilterSplit::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& f = std::get(expr->root_operator); return ConjunctCount(f.predicate) >= 2; } -LogicalOperator FilterSplit::ApplyImpl(utils::NotNull expr, Memo& memo) { +LogicalOperator FilterSplit::ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext&) { const auto& f = std::get(expr->root_operator); std::vector conjs; diff --git a/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp b/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp new file mode 100644 index 0000000..a3e14d3 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/filter_to_join_predicate.cpp @@ -0,0 +1,44 @@ +#include + +#include +#include + +#include + +namespace stewkk::sql { + +namespace { + +const logical::Join* FindInnerJoin(utils::NotNull source) { + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* j = std::get_if(&inner_expr->root_operator); + j != nullptr && j->type == JoinType::kInner) { + return j; + } + } + return nullptr; +} + +} // namespace + +bool FilterToJoinPredicate::IsApplicable(utils::NotNull expr, RuleContext&) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& filter = std::get(expr->root_operator); + return FindInnerJoin(filter.source) != nullptr; +} + +LogicalOperator FilterToJoinPredicate::ApplyImpl(utils::NotNull expr, + Memo& memo, RuleContext&) { + const auto& filter = std::get(expr->root_operator); + const auto* join = FindInnerJoin(filter.source); + if (join == nullptr) { + throw std::runtime_error{"FilterToJoinPredicate requires an inner join below filter"}; + } + + std::vector conjs; + CollectConjuncts(join->qual, conjs); + CollectConjuncts(filter.predicate, conjs); + return logical::Join{join->lhs, join->rhs, join->type, AndConjuncts(conjs)}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp b/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp index 4fb62c8..d25dfdb 100644 --- a/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp +++ b/src/stewkk/sql/logic/transformation_rules/in_to_or_chain.cpp @@ -62,13 +62,13 @@ Expression ExpandIn(const InExpression& in) { } // namespace -bool InToOrChain::IsApplicable(utils::NotNull expr) { +bool InToOrChain::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& f = std::get(expr->root_operator); return ContainsIn(f.predicate); } -LogicalOperator InToOrChain::ApplyImpl(utils::NotNull expr, Memo& memo) { +LogicalOperator InToOrChain::ApplyImpl(utils::NotNull expr, Memo&, RuleContext&) { const auto& f = std::get(expr->root_operator); return logical::Filter{f.source, Expand(f.predicate)}; } diff --git a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp index c5a0e47..6c7b961 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_associativity.cpp @@ -8,7 +8,7 @@ namespace stewkk::sql { -bool JoinAssociativity::IsApplicable(utils::NotNull expr) { +bool JoinAssociativity::IsApplicable(utils::NotNull expr, RuleContext&) { if (!std::holds_alternative(expr->root_operator)) return false; const auto& outer = std::get(expr->root_operator); if (outer.type != JoinType::kInner) return false; @@ -19,7 +19,7 @@ bool JoinAssociativity::IsApplicable(utils::NotNull expr) { return false; } -LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, Memo& memo) { +LogicalOperator JoinAssociativity::ApplyImpl(utils::NotNull expr, Memo& memo, RuleContext&) { const auto& outer = std::get(expr->root_operator); for (auto inner_expr : outer.lhs->GetLogicalExprs()) { if (!std::holds_alternative(inner_expr->root_operator)) continue; diff --git a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp index 7776cb1..0cc9dbb 100644 --- a/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp +++ b/src/stewkk/sql/logic/transformation_rules/join_commutativity.cpp @@ -2,11 +2,11 @@ namespace stewkk::sql { -bool JoinCommutativity::IsApplicable(utils::NotNull expr) { +bool JoinCommutativity::IsApplicable(utils::NotNull expr, RuleContext&) { return std::holds_alternative(expr->root_operator); } -LogicalOperator JoinCommutativity::ApplyImpl(utils::NotNull expr, Memo&) { +LogicalOperator JoinCommutativity::ApplyImpl(utils::NotNull expr, Memo&, RuleContext&) { auto join = std::get(expr->root_operator); std::swap(join.lhs, join.rhs); if (join.type == JoinType::kLeft) { diff --git a/src/stewkk/sql/logic/transformation_rules/outer_join_to_inner.cpp b/src/stewkk/sql/logic/transformation_rules/outer_join_to_inner.cpp new file mode 100644 index 0000000..186b5d3 --- /dev/null +++ b/src/stewkk/sql/logic/transformation_rules/outer_join_to_inner.cpp @@ -0,0 +1,56 @@ +#include + +#include + +#include +#include + +namespace stewkk::sql { + +namespace { + +const logical::Join* FindReducibleJoin(utils::NotNull source, + const Expression& predicate) { + for (auto inner_expr : source->GetLogicalExprs()) { + const auto* join = std::get_if(&inner_expr->root_operator); + if (join == nullptr || join->type == JoinType::kInner) continue; + auto lhs_tables = GroupTables(join->lhs); + auto rhs_tables = GroupTables(join->rhs); + if (join->type == JoinType::kLeft + && IsNullRejectingForTables(predicate, rhs_tables)) { + return join; + } + if (join->type == JoinType::kRight + && IsNullRejectingForTables(predicate, lhs_tables)) { + return join; + } + if (join->type == JoinType::kFull + && IsNullRejectingForTables(predicate, lhs_tables) + && IsNullRejectingForTables(predicate, rhs_tables)) { + return join; + } + } + return nullptr; +} + +} // namespace + +bool OuterJoinToInner::IsApplicable(utils::NotNull expr, RuleContext&) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& filter = std::get(expr->root_operator); + return FindReducibleJoin(filter.source, filter.predicate) != nullptr; +} + +LogicalOperator OuterJoinToInner::ApplyImpl(utils::NotNull expr, + Memo& memo, RuleContext&) { + const auto& filter = std::get(expr->root_operator); + const auto* join = FindReducibleJoin(filter.source, filter.predicate); + if (join == nullptr) { + throw std::runtime_error{"OuterJoinToInner requires a null-rejecting filter"}; + } + auto inner = memo.AddGroup( + logical::Join{join->lhs, join->rhs, JoinType::kInner, join->qual})->group; + return logical::Filter{inner, filter.predicate}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp index 84b7dbd..4cef467 100644 --- a/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp +++ b/src/stewkk/sql/logic/transformation_rules/predicate_utils.cpp @@ -1,5 +1,6 @@ #include +#include #include #include @@ -59,12 +60,80 @@ void CollectAttrTables(const Expression& e, std::unordered_set& out }, e); } +void CollectAttributes(const Expression& e, std::vector& out) { + std::visit(utils::Overloaded{ + [&](const Attribute& a) { out.push_back(a); }, + [&](const BinaryExpression& b) { + CollectAttributes(*b.lhs, out); + CollectAttributes(*b.rhs, out); + }, + [&](const UnaryExpression& u) { CollectAttributes(*u.child, out); }, + [&](const InExpression& i) { + CollectAttributes(*i.lhs, out); + for (const auto& value : i.values) { + CollectAttributes(value, out); + } + }, + [&](const AggregateExpression& a) { + if (!a.is_star && a.argument) { + CollectAttributes(*a.argument, out); + } + }, + [&](const IntConst&) {}, + [&](const StringConst&) {}, + [&](const Literal&) {}, + }, e); +} + std::unordered_set ExprTables(const Expression& e) { std::unordered_set out; CollectAttrTables(e, out); return out; } +bool ExprUsesOnlyTables(const Expression& e, const std::unordered_set& tables) { + auto expr_tables = ExprTables(e); + return std::all_of(expr_tables.begin(), expr_tables.end(), + [&](const auto& table) { return tables.contains(table); }); +} + +bool IsNullRejectingForTables(const Expression& e, + const std::unordered_set& tables) { + return std::visit(utils::Overloaded{ + [&](const Attribute& a) { return tables.contains(a.table); }, + [&](const BinaryExpression& b) { + if (b.binop == BinaryOp::kAnd) { + return IsNullRejectingForTables(*b.lhs, tables) + || IsNullRejectingForTables(*b.rhs, tables); + } + if (b.binop == BinaryOp::kOr) { + return IsNullRejectingForTables(*b.lhs, tables) + && IsNullRejectingForTables(*b.rhs, tables); + } + if (b.binop == BinaryOp::kEq || b.binop == BinaryOp::kNotEq + || b.binop == BinaryOp::kGt || b.binop == BinaryOp::kLt + || b.binop == BinaryOp::kGe || b.binop == BinaryOp::kLe) { + return IsNullRejectingForTables(*b.lhs, tables) + || IsNullRejectingForTables(*b.rhs, tables); + } + return false; + }, + [&](const UnaryExpression& u) { + if (u.op == UnaryOp::kIsNull) return false; + return IsNullRejectingForTables(*u.child, tables); + }, + [&](const InExpression& i) { + return IsNullRejectingForTables(*i.lhs, tables); + }, + [&](const AggregateExpression& a) { + return !a.is_star && a.argument && IsNullRejectingForTables(*a.argument, tables); + }, + [&](const IntConst&) { return false; }, + [&](const StringConst&) { return false; }, + [&](const Literal&) { return false; }, + }, e); +} + namespace { void CollectGroupTables(utils::NotNull g, std::unordered_set& out, @@ -77,6 +146,8 @@ void CollectGroupTables(utils::NotNull g, std::unordered_set + +#include +#include +#include + +#include +#include + +namespace stewkk::sql { + +namespace { + +const logical::Join* FindJoin(utils::NotNull source) { + for (auto inner_expr : source->GetLogicalExprs()) { + if (const auto* j = std::get_if(&inner_expr->root_operator)) { + return j; + } + } + return nullptr; +} + +bool ContainsAttr(const std::vector& attrs, const Attribute& attr) { + return std::ranges::any_of(attrs, [&](const Attribute& a) { return a == attr; }); +} + +std::vector NeededForSide(const std::vector& needed, + const Schema& schema) { + std::vector out; + for (const auto& attr : needed) { + auto it = std::ranges::find_if(schema, [&](const Attribute& schema_attr) { + return schema_attr.name == attr.name + && (attr.table.empty() || attr.table == schema_attr.table); + }); + if (it != schema.end() && !ContainsAttr(out, *it)) { + out.push_back(*it); + } + } + return out; +} + +std::vector AttrExpressions(const std::vector& attrs) { + std::vector out; + out.reserve(attrs.size()); + for (const auto& attr : attrs) { + out.push_back(attr); + } + return out; +} + +bool CanPush(const logical::Projection& projection, const logical::Join& join, + RuleContext& ctx) { + std::vector needed; + for (const auto& expr : projection.expressions) { + CollectAttributes(expr, needed); + } + CollectAttributes(join.qual, needed); + + auto lhs_schema = ctx.schema.GetSchema(join.lhs); + auto rhs_schema = ctx.schema.GetSchema(join.rhs); + auto lhs_needed = NeededForSide(needed, lhs_schema); + auto rhs_needed = NeededForSide(needed, rhs_schema); + return (!lhs_needed.empty() && lhs_needed.size() < lhs_schema.size()) + || (!rhs_needed.empty() && rhs_needed.size() < rhs_schema.size()); +} + +} // namespace + +bool ProjectionPushdownThroughJoin::IsApplicable(utils::NotNull expr, + RuleContext& ctx) { + if (!std::holds_alternative(expr->root_operator)) return false; + const auto& projection = std::get(expr->root_operator); + const auto* join = FindJoin(projection.source); + return join != nullptr && CanPush(projection, *join, ctx); +} + +LogicalOperator ProjectionPushdownThroughJoin::ApplyImpl(utils::NotNull expr, + Memo& memo, RuleContext& ctx) { + const auto& projection = std::get(expr->root_operator); + const auto* join = FindJoin(projection.source); + if (join == nullptr) { + throw std::runtime_error{"ProjectionPushdownThroughJoin requires a join below"}; + } + + std::vector needed; + for (const auto& e : projection.expressions) { + CollectAttributes(e, needed); + } + CollectAttributes(join->qual, needed); + + auto lhs_schema = ctx.schema.GetSchema(join->lhs); + auto rhs_schema = ctx.schema.GetSchema(join->rhs); + auto lhs_needed = NeededForSide(needed, lhs_schema); + auto rhs_needed = NeededForSide(needed, rhs_schema); + + auto lhs = join->lhs; + if (!lhs_needed.empty() && lhs_needed.size() < lhs_schema.size()) { + lhs = memo.AddGroup(logical::Projection{join->lhs, AttrExpressions(lhs_needed), {}})->group; + } + auto rhs = join->rhs; + if (!rhs_needed.empty() && rhs_needed.size() < rhs_schema.size()) { + rhs = memo.AddGroup(logical::Projection{join->rhs, AttrExpressions(rhs_needed), {}})->group; + } + + auto new_join = memo.AddGroup(logical::Join{lhs, rhs, join->type, join->qual})->group; + return logical::Projection{new_join, projection.expressions, projection.aliases}; +} + +} // namespace stewkk::sql diff --git a/src/stewkk/sql/main.cpp b/src/stewkk/sql/main.cpp index 172431e..0619c46 100644 --- a/src/stewkk/sql/main.cpp +++ b/src/stewkk/sql/main.cpp @@ -260,7 +260,8 @@ int main(int argc, char** argv) { : PropertySet::Any(); Optimizer optimizer(parsed.op, MakeMainRules(LoadIndexCatalogFromCsvDir(args.data_dir)), CardinalityEstimates{LoadTableSizesFromCsvDir(args.data_dir)}, - LoadSchemaFromCsvDir(args.data_dir), std::move(required)); + LoadSchemaFromCsvDir(args.data_dir), std::move(required), + LoadConstraintCatalogFromCsvDir(args.data_dir)); plan = optimizer.Optimize(); plan_cost = optimizer.GetBestCost(); From eead31c63c55496a462a79aee88a72222889c717 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 14 Jun 2026 14:15:34 +0300 Subject: [PATCH 107/120] Fix --- report/vkr.tex | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index 4630b3f..c5a149f 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -262,6 +262,7 @@ } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{ragged2e} % выравнивание по горизонтали +\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash}p{#1}} \usepackage[explicit]{titlesec} % явное указание заголовка \usepackage{placeins} % не даеёт объектам «утекать» за барьеры \usepackage{xparse} % позволяет создавать более крутые команды, чем с \newcommand @@ -1093,8 +1094,8 @@ \subsection{Поиск оптимального плана} op/.style={rectangle, draw, fill=gray!12, minimum width=4.25cm, minimum height=1.2cm, align=center, font=\small} ] - \node[op] (p1j2) at (-4.4, 2.9) {Hash Join\\\scriptsize \(10^6\) чтений}; - \node[op] (p1j1) at (-6.5, 1.2) {Hash Join\\\scriptsize \(1{,}26 \cdot 10^5\) чтений}; + \node[op] (p1j2) at (-4.4, 2.9) {Hash Join\\\footnotesize \(10^6\) чтений}; + \node[op] (p1j1) at (-6.5, 1.2) {Hash Join\\\footnotesize \(1{,}26 \cdot 10^5\) чтений}; \node[rel] (p1l) at (-2.3, 1.2) {\texttt{lineitem}}; \node[rel] (p1c) at (-7.8, -0.3) {\texttt{customer}}; \node[rel] (p1o) at (-4.4, -0.3) {\texttt{orders}}; @@ -1105,8 +1106,8 @@ \subsection{Поиск оптимального плана} \draw[->] (p1o) -- (p1j1); \node[font=\small\bfseries] at (-4.4, 4.0) {План \(P_1\)}; - \node[op] (p2j2) at (4.4, 2.9) {Nested Loop Join\\\scriptsize \(1{,}25 \cdot 10^{14}\) чтений}; - \node[op] (p2j1) at (2.3, 1.2) {Nested Loop Join\\\scriptsize \(1{,}25 \cdot 10^8\) чтений}; + \node[op] (p2j2) at (4.4, 2.9) {Nested Loop Join\\\footnotesize \(1{,}25 \cdot 10^{14}\) чтений}; + \node[op] (p2j1) at (2.3, 1.2) {Nested Loop Join\\\footnotesize \(1{,}25 \cdot 10^8\) чтений}; \node[rel] (p2l) at (6.5, 1.2) {\texttt{lineitem}}; \node[rel] (p2c) at (1.0, -0.3) {\texttt{customer}}; \node[rel] (p2o) at (4.4, -0.3) {\texttt{orders}}; @@ -1169,7 +1170,7 @@ \subsection{Поиск оптимального плана} \node[op] (p1proj) at (-3.5, 7.7) {\(\ProjectionOp{\texttt{ename}}\)}; \node[op] (p1sig2) at (-3.5, 6.2) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)}; \node[op] (p1sig1) at (-3.5, 4.7) {\(\SelOp{\texttt{Emp.did}=\texttt{Dept.did}}\)}; - \node[op] (p1cp) at (-3.5, 3.2) {\(\CProd{\texttt{Emp}}{\texttt{Dept}}\)\\\scriptsize \(50{,}050\) чтений}; + \node[op] (p1cp) at (-3.5, 3.2) {\(\CProd{\texttt{Emp}}{\texttt{Dept}}\)\\\footnotesize \(50{,}050\) чтений}; \node[rel] (p1emp) at (-5.2, 1.7) {\texttt{Emp}}; \node[rel] (p1dept) at (-1.8, 1.7) {\texttt{Dept}}; @@ -1181,9 +1182,9 @@ \subsection{Поиск оптимального плана} \node[font=\small\bfseries] at (3.5, 8.8) {План \(P_2\)}; \node[op] (p2proj) at (3.5, 7.7) {\(\ProjectionOp{\texttt{ename}}\)}; - \node[op] (p2join) at (3.5, 5.5) {Index NL Join\\\(\texttt{Emp.did}=\texttt{Dept.did}\)\\\scriptsize \(23\) чтения}; + \node[op] (p2join) at (3.5, 5.5) {Index NL Join\\\(\texttt{Emp.did}=\texttt{Dept.did}\)\\\footnotesize \(23\) чтения}; \node[rel] (p2emp) at (1.6, 3.5) {\texttt{Emp}}; - \node[op] (p2sig) at (5.4, 3.5) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)\\\scriptsize \(3\) чтения}; + \node[op] (p2sig) at (5.4, 3.5) {\(\SelOp{\texttt{dname}=\texttt{'Toy'}}\)\\\footnotesize \(3\) чтения}; \node[rel] (p2dept) at (5.4, 1.8) {\texttt{Dept}}; \draw[->] (p2emp) -- (p2join); @@ -2754,6 +2755,7 @@ \subsection{Калибровка стоимостной модели} \begin{algorithm}[H] \caption{Алгоритм поиска (часть 1).}% \label{alg:cascades-search} + \footnotesize \begin{algorithmic}[1] \Procedure{Optimize}{$root, required$} \State Push task $\Call{OptimizeGroup}{root.group, required, +\infty}$ @@ -2798,6 +2800,7 @@ \subsection{Калибровка стоимостной модели} \begin{algorithm}[H] \caption{Алгоритм поиска (часть 2).}% \label{alg:cascades-search-2} + \footnotesize \begin{algorithmic}[1] \Procedure{OptimizeGroup}{$group, required, limit$} \If{$winner[group, required]$ exists \textbf{or} $group$ is explored \textbf{and} $\Call{LowerBound}{group} \geq limit$} @@ -2838,8 +2841,8 @@ \subsection{Калибровка стоимостной модели} \end{algorithmic} \end{algorithm} -\begin{scriptsize} -\begin{longtable}{|c|p{2.6cm}|c|p{4.2cm}|} +\begin{footnotesize} +\begin{longtable}{|c|L{3.1cm}|c|L{3.7cm}|} \caption{Правила трансформации.}\label{tbl:transformation_rules}\\ \hline № & Название & Правило & Комментарий \\ @@ -2856,7 +2859,7 @@ \subsection{Калибровка стоимостной модели} \endlastfoot 1 & Коммутативность соединения & - \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{\scriptsize внутреннее или полное внешнее соединение}}{\InnerJoin{S}{\theta}{R}}\) & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{внутреннее или полное внешнее соединение}}{\InnerJoin{S}{\theta}{R}}\) & Перестановка входов соединения. Позволяет рассмотреть оба порядка вычисления. \\ \hline @@ -2949,7 +2952,7 @@ \subsection{Калибровка стоимостной модели} \end{tabular} \end{table} -\begin{longtable}{|c|p{2.8cm}|c|p{4.5cm}|} +\begin{longtable}{|c|L{3.4cm}|c|L{3.9cm}|} \caption{Правила реализации.}\label{tbl:implementation_rules}\\ \hline № & Название & Правило & Комментарий \\ @@ -2971,7 +2974,7 @@ \subsection{Калибровка стоимостной модели} \hline 2 & Сканирование по индексу & - \(\TransRule{\LogicalGet}{\text{\scriptsize есть совместимый индекс}}{\IndexScan}\) & + \(\TransRule{\LogicalGet}{\text{есть совместимый индекс}}{\IndexScan}\) & Индекс должен быть совместим с предикатом или требуемым порядком. \\ \hline @@ -2981,12 +2984,12 @@ \subsection{Калибровка стоимостной модели} \hline 4 & Хеш-соединение & - \(\TransRule{\InnerJoin{R}{\theta}{S}}{\theta\ \text{\scriptsize содержит равенство по ключам}}{\HashJoin}\) & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\theta\ \text{содержит равенство по ключам}}{\HashJoin}\) & Хеш-таблица строится по ключам равенства. \\ \hline 5 & Соединение слиянием & - \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{\scriptsize входы упорядочены по ключам соединения}}{\MergeJoin}\) & + \(\TransRule{\InnerJoin{R}{\theta}{S}}{\text{входы упорядочены по ключам соединения}}{\MergeJoin}\) & Требуемый порядок может быть обеспечен явным оператором \Sort{}. \\ \hline @@ -3000,7 +3003,7 @@ \subsection{Калибровка стоимостной модели} Эффективна при уже отсортированном входе. Может быть выгодна, если требуемый порядок нужен и родительскому оператору. \\ \hline \end{longtable} -\end{scriptsize} +\end{footnotesize} \begin{listing}[H] \caption{Вычисление локальной стоимости физических операторов.} From 1c9a7b757c9664dbb854415d05b09d13736354a0 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 14 Jun 2026 14:33:43 +0300 Subject: [PATCH 108/120] Fix --- report/vkr.tex | 226 ++++++++++++++++++++++++------------------------- 1 file changed, 110 insertions(+), 116 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index c5a149f..d81639d 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -628,7 +628,7 @@ \section*{#1}\vspace*{2.5ex} % по госту положены 3 пустые \setlength{\tabcolsep}{3pt} \newpage -\thispagestyle{empty} +% \thispagestyle{empty} \section*{АННОТАЦИЯ} @@ -657,7 +657,7 @@ \section*{АННОТАЦИЯ} оптимизации запросов и итеративного развития набора правил оптимизатора. \newpage -\setcounter{page}{2} +\setcounter{page}{5} %---------------------------------------------------------------------------- % ОТСЮДА --- СОБСТВЕННО ТЕКСТ %---------------------------------------------------------------------------- @@ -668,7 +668,7 @@ \section*{АННОТАЦИЯ} В эпоху стремительного роста объемов данных системы управления базами данных (СУБД) являются важной частью информационных систем. По данным аналитических -исследований\cite{DBReport}, объем мирового рынка СУБД ежегодно увеличивается, +исследований~\cite{DBReport}, объем мирового рынка СУБД ежегодно увеличивается, что обусловлено как расширением круга решаемых задач, так и усложнением структуры обрабатываемых данных и увеличением их объема. Реляционные базы данных, работающие с различными диалектами языка SQL, продолжают занимать @@ -697,7 +697,7 @@ \section*{АННОТАЦИЯ} итеративного улучшения путем сравнения с промышленными реализациями. Для достижения поставленной цели прежде всего требуется изучить архитектуру -оптимиазторов Cascades и на ее основе проработать собственную. +оптимизаторов Cascades и на ее основе проработать собственную. После выбора архитектурной основы необходимо формализовать поддерживаемое подмножество SQL и соответствующее ему подмножество реляционной алгебры. Эта @@ -715,7 +715,7 @@ \section*{АННОТАЦИЯ} Правила трансформации должны порождать логически эквивалентные планы, а правила реализации сопоставлять логическим операторам допустимые физические операторы. -Для оптимизации алгоритма поиска нужно реазивовать метод ветвей и границ. Этот +Для оптимизации алгоритма поиска нужно реализовать метод ветвей и границ. Этот метод должен использовать оценки стоимости для отсечения заведомо неоптимальных планов и уменьшения объема пространства поиска, исследуемого оптимизатором. @@ -731,7 +731,7 @@ \section{Исследовательская часть} обеспечивающий хранение, извлечение и модификацию структурированных данных. Несмотря на разнообразие существующих реализаций, архитектура большинства реляционных СУБД включает ряд типовых компонентов, взаимодействие которых -обеспечивает выполнение пользовательских запросов\cite{petrov2019database}. +обеспечивает выполнение пользовательских запросов~\cite{petrov2019database}. К основным компонентам СУБД относятся~\refImage{fig::dbms_arch}: @@ -803,31 +803,25 @@ \subsection{Процесс исполнения SQL-запроса} Процесс исполнения SQL-запроса в реляционной СУБД проходит несколько последовательных этапов. -\begin{enumerate} - \item \emph{Синтаксический анализ} --- запроса проходит лексический и - синтаксический разбор. Результатом данного этапа является синтаксическое - дерево, узлы которого соответствуют конструкциям языка SQL: операторам - \SELECT, \FROM, \WHERE, \JOIN, \GROUPBY, \ORDERBY{} и другим. На этом же - этапе выполняется семантический анализ: проверяется существование - указанных таблиц и столбцов, разрешаются имена объектов и определяются - типы выражений. - - \item \emph{Оптимизация} --- синтаксическое дерево преобразуется в логический - план запроса, выраженный в терминах реляционной алгебры. Оптимизатор - исследует пространство эквивалентных логических планов и для каждого из - них рассматривает возможные физические реализации операторов. С помощью - модели стоимости оптимизатор оценивает затраты на выполнение каждого - плана и выбирает план с наименьшей оценочной стоимостью. Результатом - этого этапа является физический план исполнения. Под этим понимается - дерево физических операторов с указанием конкретных алгоритмов - соединения, методов доступа к данным и порядка операций. - - \item \emph{Исполнение физического плана} --- движок выполнения реализует - физический план, порождая потоки кортежей. Данные извлекаются из - хранилища, обрабатываются операторами плана и формируют результирующий - набор, возвращаемый пользователю. -\end{enumerate} - +\emph{Синтаксический анализ} --- запрос проходит лексический и синтаксический +разбор. Результатом данного этапа является синтаксическое дерево, узлы которого +соответствуют конструкциям языка SQL: операторам \SELECT, \FROM, \WHERE, \JOIN, +\GROUPBY, \ORDERBY{} и другим. На этом же этапе выполняется семантический +анализ: проверяется существование указанных таблиц и столбцов, разрешаются имена +объектов и определяются типы выражений. + +\emph{Оптимизация} --- синтаксическое дерево преобразуется в логический план +запроса, выраженный в терминах реляционной алгебры. Оптимизатор исследует +пространство эквивалентных логических планов и для каждого из них рассматривает +возможные физические реализации операторов. С помощью модели стоимости +оптимизатор оценивает затраты на выполнение каждого плана и выбирает план с +наименьшей оценочной стоимостью. Результатом этого этапа является физический +план исполнения. Под этим понимается дерево физических операторов с указанием +конкретных алгоритмов соединения, методов доступа к данным и порядка операций. + +\emph{Исполнение физического плана} --- движок выполнения реализует физический +план, порождая потоки кортежей. Данные извлекаются из хранилища, обрабатываются +операторами плана и формируют результирующий набор, возвращаемый пользователю. Сформулируем задачу, которую решает оптимизатор: по запросу, представленному в форме дерева операторов реляционной алгебры, построить эквивалентный и @@ -865,40 +859,43 @@ \subsection{Реляционная алгебра} \] Среди основных операторов реляционной алгебры выделяют -следующие\cite{silberschatz2020database}. +следующие~\cite{silberschatz2020database}. -\begin{enumerate} - \item \emph{Фильтрация} \(\Sel{p}{R}\) --- возвращает подмножество кортежей - отношения \(R\), удовлетворяющих предикату \(p\). Например, - \(\Sel{\text{age} > 30}{\text{Employee}}\) вернет все кортежи из - отношения Employee, для которых значение атрибута age больше 30. - \item \emph{Проекция} \(\Projection{A_1, \ldots, A_k}{R}\) --- формирует новое - отношение, содержащее только перечисленные атрибуты. - \item \emph{Декартово произведение} \(\CProd{R}{S}\) --- формирует отношение, - каждый кортеж которого является конкатенацией кортежа из \(R\) и кортежа - из \(S\), при этом результат содержит \(|\CProd{R}{S}| = |R| \cdot |S|\) - элементов. - \item \emph{Соединение} \(\InnerJoin{R}{p}{S}\) --- комбинирует кортежи двух - отношений на основании предиката \(p\). Внутреннее соединение - определяется как - \(\InnerJoin{R}{R.a = S.b}{S} = \Sel{R.a = S.b}{\CProd{R}{S}}\). - \item \emph{Объединение} \(R \cup S\) --- возвращает все кортежи, - принадлежащие хотя бы одному из двух совместимых по схеме отношений. - \item \emph{Разность} \(R - S\) --- выбирает кортежи, принадлежащие \(R\), но - отсутствующие в \(S\). - \item \emph{Агрегация} \(\Agg{G}{f}{R}\) --- разбивает отношение \(R\) на - непересекающиеся множества по набору атрибутов \(G\) и вычисляет - агрегированные значения функции \(f\) по каждому такому множеству. - Примеры функций: \COUNT, \SUM, \AVG, \MIN, \MAX. - \item \emph{Apply} \(\Apply{R}{S(t)}\) --- для каждого кортежа \(t\) - отношения \(R\) вычисляет параметризованное им отношение \(S(t)\) и - конкатенирует \(t\) с каждым кортежем результата: +\emph{Фильтрация} \(\Sel{p}{R}\) --- возвращает подмножество кортежей отношения +\(R\), удовлетворяющих предикату \(p\). Например, +\(\Sel{\text{age} > 30}{\text{Employee}}\) вернет все кортежи из отношения +Employee, для которых значение атрибута age больше 30. + +\emph{Проекция} \(\Projection{A_1, \ldots, A_k}{R}\) --- формирует новое +отношение, содержащее только перечисленные атрибуты. + +\emph{Декартово произведение} \(\CProd{R}{S}\) --- формирует отношение, каждый +кортеж которого является конкатенацией кортежа из \(R\) и кортежа из \(S\), при +этом результат содержит \(|\CProd{R}{S}| = |R| \cdot |S|\) элементов. + +\emph{Соединение} \(\InnerJoin{R}{p}{S}\) --- комбинирует кортежи двух отношений +на основании предиката \(p\). Внутреннее соединение определяется как +\(\InnerJoin{R}{R.a = S.b}{S} = \Sel{R.a = S.b}{\CProd{R}{S}}\). + +\emph{Объединение} \(R \cup S\) --- возвращает все кортежи, принадлежащие хотя +бы одному из двух совместимых по схеме отношений. + +\emph{Разность} \(R - S\) --- выбирает кортежи, принадлежащие \(R\), но +отсутствующие в \(S\). + +\emph{Агрегация} \(\Agg{G}{f}{R}\) --- разбивает отношение \(R\) на +непересекающиеся множества по набору атрибутов \(G\) и вычисляет агрегированные +значения функции \(f\) по каждому такому множеству. Примеры функций: \COUNT, +\SUM, \AVG, \MIN, \MAX. + +\emph{Apply} \(\Apply{R}{S(t)}\) --- для каждого кортежа \(t\) отношения \(R\) +вычисляет параметризованное им отношение \(S(t)\) и конкатенирует \(t\) с каждым +кортежем результата: \[ \Apply{R}{S(t)} = \bigcup_{t \in R} \{t\} \times S(t). \] - В отличие от соединения, правая сторона зависит от текущего кортежа - левой и используется для представления коррелированных подзапросов. -\end{enumerate} +\noindent{} В отличие от соединения, правая сторона зависит от текущего кортежа +левой и используется для представления коррелированных подзапросов. \subsection{Преобразование синтаксического дерева в реляционную алгебру}\label{sec:translation} @@ -910,40 +907,38 @@ \subsection{Преобразование синтаксического дере правил вывода. Если для всех поддеревьев известны алгебраические представления, то алгебраическое представление составной конструкции выражается через них. -\begin{enumerate} - \item \emph{Базовый случай.} Для ссылки на таблицу \(T\) выполняется - \(\Tr{T} = T\). - \item \emph{Блок \texttt{SELECT-FROM-WHERE}.} Пусть \(\bar{T} = T_1, \ldots, - T_n\) --- ссылки на таблицы или вложенные подзапросы, \(p\) --- - предикат фильтрации, \(\bar{a} = a_1, \ldots, a_k\) --- список - выражений проекции. Тогда +\emph{Базовый случай.} Для ссылки на таблицу \(T\) выполняется \(\Tr{T} = T\). + +\emph{Блок \texttt{SELECT-FROM-WHERE}.} Пусть \(\bar{T} = T_1, \ldots, T_n\) --- +ссылки на таблицы или вложенные подзапросы, \(p\) --- предикат фильтрации, +\(\bar{a} = a_1, \ldots, a_k\) --- список выражений проекции. Тогда \[ \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} {\Tr{\SELECT\ \bar{a}\ \FROM\ \bar{T}\ \WHERE\ p} = \Projection{\bar{a}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. \] - \item \emph{Группировка.} Пусть \(\bar{g} = g_1, \ldots, g_m\) --- список - группирующих атрибутов, \(\bar{f} = f_1, \ldots, f_l\) --- список - агрегирующих функций. Тогда - \[ - \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} - {\Tr{\SELECT\ \bar{g}, \bar{f}\ \FROM\ \bar{T}\ \WHERE\ p\ \GROUPBY\ \bar{g}} - = \Agg{\bar{g}}{\bar{f}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. - \] - \item \emph{Вложенные подзапросы.} Пусть \(Q\) --- внешний блок, а \(Q'(t)\) - --- коррелированный подзапрос, зависящий от кортежа \(t\) из - \(\Tr{Q}\). Тогда - \[ - \frac{\Tr{Q} = E \quad \Tr{Q'(t)} = E'(t)} - {\Tr{Q\ \text{с подзапросом}\ Q'} = \Apply{E}{E'(t)}}, - \] - где \(\mathcal{A}\) --- оператор Apply, который впоследствии может быть - удалён процедурой декорреляции. - \item \emph{Сортировка.} Конструкция \ORDERBY{} не выражается в виде - операторов реляционной алгебры. Вместо этого она задает требуемое - физическое свойство упорядоченности результата, учитываемое на этапе - выбора физического плана. -\end{enumerate} + +\emph{Группировка.} Пусть \(\bar{g} = g_1, \ldots, g_m\) --- список +группирующих атрибутов, \(\bar{f} = f_1, \ldots, f_l\) --- список +агрегирующих функций. Тогда +\[ + \frac{\Tr{T_1} = E_1 \quad \cdots \quad \Tr{T_n} = E_n} + {\Tr{\SELECT\ \bar{g}, \bar{f}\ \FROM\ \bar{T}\ \WHERE\ p\ \GROUPBY\ \bar{g}} + = \Agg{\bar{g}}{\bar{f}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. +\] +\emph{Вложенные подзапросы.} Пусть \(Q\) --- внешний блок, а \(Q'(t)\) +--- коррелированный подзапрос, зависящий от кортежа \(t\) из +\(\Tr{Q}\). Тогда +\[ + \frac{\Tr{Q} = E \quad \Tr{Q'(t)} = E'(t)} + {\Tr{Q\ \text{с подзапросом}\ Q'} = \Apply{E}{E'(t)}}, +\] +\noindent{} где \(\mathcal{A}\) --- оператор Apply, который впоследствии может быть +удалён процедурой декорреляции. +\emph{Сортировка.} Конструкция \ORDERBY{} не выражается в виде +операторов реляционной алгебры. Вместо этого она задает требуемое +физическое свойство упорядоченности результата, учитываемое на этапе +выбора физического плана. Приведём пример применения этих правил к SQL-запросу из листинга~\ref{lst:correlated_subquery}. Трансляция этого запроса в реляционную @@ -973,7 +968,7 @@ \subsection{Преобразование синтаксического дере \[ \Tr{Q'(e)} = \Agg{\varnothing}{\AVG(\text{salary})}{\Sel{\text{dept} = e.\text{dept}}{\text{Employee}}}. \] - Подзапрос коррелирован, так как зависит от атрибута \(e.\text{dept}\) + \noindent{} Подзапрос коррелирован, так как зависит от атрибута \(e.\text{dept}\) внешнего кортежа. \item По правилу вложенных подзапросов результат \(\Tr{Q'(e)}\) присоединяется к внешнему блоку оператором \(\mathcal{A}\), добавляя к каждому кортежу @@ -987,7 +982,7 @@ \subsection{Преобразование синтаксического дере \[ \Projection{e.\text{name}}{\Sel{e.\text{salary} > c}{\Apply{\text{Employee}\;e}{\Agg{\varnothing}{\text{AVG}(\text{salary}) \to c}{\Sel{\text{dept} = e.\text{dept}}{\text{Employee}}}}}}. \] -Соответствующее дерево операторов изображено на +\noindent{} Соответствующее дерево операторов изображено на рисунке~\ref{fig:correlated_subquery_tree}. \begin{figure}[!htb]\centering @@ -1122,23 +1117,22 @@ \subsection{Поиск оптимального плана} \label{fig::join_plan_comparison} \end{figure} -\begin{itemize} - \item План \(P_1\): - \(\NJoin{(\NJoin{\texttt{customer}}{\texttt{orders}})}{\texttt{lineitem}}\) - с реализацией обоих соединений через Hash Join, для чего сначала - полностью считываются \(P_C + P_O = 1{,}26 \cdot 10^5\) страниц для - построения хеш-таблицы, после чего промежуточный результат размером - \(10^7\) строк соединяется с \texttt{lineitem}, требуя считывания ещё % - \(P_L = 10^6\) страниц. В сумме --- порядка \(1{,}126 \cdot 10^6\) - операций чтения с диска. - \item План \(P_2\): тот же запрос, но реализованный как соединение с помощью - вложенных циклов без использования индексов: для каждой строки - \texttt{customer} полностью читается таблица \texttt{orders}, для каждой - результирующей пары --- \texttt{lineitem}. Совокупный объём ввода-вывода - оценивается величиной - \(P_C \cdot P_O \cdot P_L \approx 1{,}25 \cdot 10^{14}\) операций - чтения, что на восемь порядков превышает \(P_1\). -\end{itemize} +План \(P_1\): +\(\NJoin{(\NJoin{\texttt{customer}}{\texttt{orders}})}{\texttt{lineitem}}\) +с реализацией обоих соединений через Hash Join, для чего сначала +полностью считываются \(P_C + P_O = 1{,}26 \cdot 10^5\) страниц для +построения хеш-таблицы, после чего промежуточный результат размером +\(10^7\) строк соединяется с \texttt{lineitem}, требуя считывания ещё % +\(P_L = 10^6\) страниц. В сумме --- порядка \(1{,}126 \cdot 10^6\) +операций чтения с диска. + +План \(P_2\): тот же запрос, но реализованный как соединение с помощью +вложенных циклов без использования индексов: для каждой строки +\texttt{customer} полностью читается таблица \texttt{orders}, для каждой +результирующей пары --- \texttt{lineitem}. Совокупный объём ввода-вывода +оценивается величиной +\(P_C \cdot P_O \cdot P_L \approx 1{,}25 \cdot 10^{14}\) операций +чтения, что на восемь порядков превышает \(P_1\). На еще одном примере запроса из листинга~\ref{lst:logical_transform_query} рассмотрим влияние логических преобразований. Отношение \texttt{Emp} содержит @@ -1354,7 +1348,7 @@ \subsection{Правила трансформации и реализации}\l \[ r : \TransRule{pattern(e)}{condition(e)}{substitute(e)}, \] -где \(e\) --- исходное выражение, \(pattern\) --- структурный образец, +\noindent{} где \(e\) --- исходное выражение, \(pattern\) --- структурный образец, \(condition\) --- предикат применимости, \(substitute\) --- выражение-замена. Для правил трансформации результатом применения является новое логическое выражение в группе, а для правил реализации физическое выражение в той же @@ -1420,7 +1414,7 @@ \subsubsection{Метод ветвей и границ} C_{local}(e) + \sum_{i=1}^{k} LB(G_i, P_i) \geq C^*, \] -то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает нижнюю границу +\noindent{}то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает нижнюю границу стоимости оптимизации дочерней группы под требуемым свойством \(P_i\). Чем точнее нижняя граница, тем эффективнее отсечение. @@ -1461,7 +1455,7 @@ \subsubsection{Оценка кардинальности} \frac{|R| \cdot |S|}{\max(NDV(R.a), NDV(S.b))}, \] -где \(NDV\) --- число различных значений атрибута. Такая оценка удобна, но может +\noindent{}где \(NDV\) --- число различных значений атрибута. Такая оценка удобна, но может быть грубой, если данные имеют корреляции, сильный перекос или сложные зависимости между атрибутами. Экспериментальные исследования показывают, что ошибки кардинальности часто являются одной из основных причин выбора неудачных @@ -1483,7 +1477,7 @@ \subsubsection{Оценка стоимости} Cost(p) = w_{io} \cdot IO(p) + w_{cpu} \cdot CPU(p). \] -Коэффициенты \(w_{io}\), \(w_{cpu}\) зависят от конкретной аппаратной +\noindent{}Коэффициенты \(w_{io}\), \(w_{cpu}\) зависят от конкретной аппаратной конфигурации. Стоимость является аддитивной и вычисляется рекурсивно по дереву физического @@ -1655,7 +1649,7 @@ \subsection{Модули синтаксического анализа и пос Модуль синтаксического анализа SQL-запросов отвечает за лексический и синтаксический разбор поступающих на вход SQL-запросов. В качестве основы для -грамматики выбран диалект PostgreSQL\cite{PostgresDocs}, так как он широко +грамматики выбран диалект PostgreSQL~\cite{PostgresDocs}, так как он широко используется на практике и имеет открытый исходный код. Использование готовой грамматики из официального репозитория~\cite{PostgresBisonGrammar} гарантирует совместимость. @@ -2036,8 +2030,8 @@ \subsubsection{Метод ветвей и границ} \min(69(N_l + N_r), 70N_lN_r). \] -Если нижняя граница не меньше стоимости уже известного решения, исследование -ветви прекращается. Фрагмент реализации приведен в +\noindent{}Если нижняя граница не меньше стоимости уже известного решения, +исследование ветви прекращается. Фрагмент реализации приведен в листинге~\ref{lst:lower-bound}. \begin{listing}[H] From 64b4713c5c7850557cd63072dace709c26f04105 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Sun, 14 Jun 2026 17:42:02 +0300 Subject: [PATCH 109/120] Update --- report/vkr.tex | 164 +-- research/benchmarks.ipynb | 1117 ++--------------- src/stewkk/sql/logic/executor/executor.cpp | 37 +- .../implement_hash_join.cpp | 13 +- src/stewkk/sql/logic/optimizer/optimizer.cpp | 22 +- .../sql/logic/optimizer/optimizer_test.cpp | 23 + .../filter_to_join_predicate.cpp | 51 +- 7 files changed, 322 insertions(+), 1105 deletions(-) diff --git a/report/vkr.tex b/report/vkr.tex index d81639d..18a9dcb 100644 --- a/report/vkr.tex +++ b/report/vkr.tex @@ -926,6 +926,7 @@ \subsection{Преобразование синтаксического дере {\Tr{\SELECT\ \bar{g}, \bar{f}\ \FROM\ \bar{T}\ \WHERE\ p\ \GROUPBY\ \bar{g}} = \Agg{\bar{g}}{\bar{f}}{\Sel{p}{E_1 \times \cdots \times E_n}}}. \] + \emph{Вложенные подзапросы.} Пусть \(Q\) --- внешний блок, а \(Q'(t)\) --- коррелированный подзапрос, зависящий от кортежа \(t\) из \(\Tr{Q}\). Тогда @@ -935,6 +936,7 @@ \subsection{Преобразование синтаксического дере \] \noindent{} где \(\mathcal{A}\) --- оператор Apply, который впоследствии может быть удалён процедурой декорреляции. + \emph{Сортировка.} Конструкция \ORDERBY{} не выражается в виде операторов реляционной алгебры. Вместо этого она задает требуемое физическое свойство упорядоченности результата, учитываемое на этапе @@ -1358,27 +1360,6 @@ \subsection{Правила трансформации и реализации}\l тем самым определяют пространство планов, исследуемое оптимизатором. Наиболее важные из них представлены в таблице~\ref{tbl:transformation_rules}. -% TODO: может это вообще убрать? + нигде не описываю как выводятся свойства - -\begin{Definition} -Null-отбрасывающим называется предикат, который при замене всех атрибутов -соответствующей стороны на \texttt{NULL} принимает значение, отличное от -\texttt{TRUE}. -\end{Definition} - -\begin{Definition} -Конъюнкты \(\theta_1 \land \theta_2\) называются перераспределяемыми, если их -можно разбить на две группы \(\theta'_1\) и \(\theta'_2\) такие, что атрибуты -\(\theta'_2\) принадлежат \(attrs(S) \cup attrs(T)\), а конъюнкты с атрибутами -из \(attrs(R)\) остаются в \(\theta'_1\). -\end{Definition} - -\begin{Definition} -Функция агрегации называется разделяемой, если она представима композицией -частичного агрегата и финального комбинатора. Например, \SUM{} раскладывается в -сумму частичных сумм, \AVG{} --- в пару \SUM{} и \COUNT{}. -\end{Definition} - Правила реализации переводят логические операторы в физические. Используемые в настоящей работе правила собраны в таблице~\ref{tbl:implementation_rules}. @@ -1393,48 +1374,6 @@ \subsection{Правила трансформации и реализации}\l сортировкой может конкурировать с планом на основе соединения слиянием, которое сохраняет порядок результата. -\subsubsection{Метод ветвей и границ} - -% актуализировать: формулы, алгос и у меня другая селективность... - -Метод ветвей и границ используется для сокращения пространства поиска и, как -следствие, неасимптотического улучшения скорости работы алгоритма. В контексте -Cascades ветвями являются альтернативные выражения и комбинации физических -реализаций дочерних групп, а границей является текущая лучшая стоимость плана -для заданной группы и требуемых физических свойств. Если нижняя оценка стоимости -частично построенного плана уже превышает текущую лучшую, дальнейшее -исследование по этой ветке не имеет смысла. - -Пусть для группы \(G\) и требуемого свойства \(P\) уже найден план стоимости -\(C^*\). Рассматривается физическое выражение \(e\), имеющее локальную стоимость -\(C_{local}(e)\) и дочерние группы \(G_1, \ldots, G_k\). Если даже минимально -возможная оценка дочерних групп приводит к неравенству - -\[ - C_{local}(e) + \sum_{i=1}^{k} LB(G_i, P_i) \geq C^*, -\] - -\noindent{}то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает нижнюю границу -стоимости оптимизации дочерней группы под требуемым свойством \(P_i\). Чем -точнее нижняя граница, тем эффективнее отсечение. - -На практике в качестве \(LB(G_i, P_i)\) принимается лучшая стоимость, найденная -для пары \((G_i, P_i)\) на текущий момент работы алгоритма. Поскольку -оптимизация группы является рекурсивным процессом, к моменту отсечения для -\((G_i, P_i)\) уже могут быть найдены некоторые планы, и их минимальная -стоимость служит нижней границей. Если же группа \(G_i\) под свойством \(P_i\) -ещё не рассматривалась, используется тривиальная граница \(LB = 0\), или, при -условии наличия минимальной стоимости на кортеж, можно принимать -\(LB(G_i, P_i) = |G_i| \cdot \mathit{minCostPerRow}\). - -Требуемые свойства дочерних групп \(P_i\) определяются оператором выражения \(e\) -совместно с требованием родителя \(P\). Каждый физический оператор описывает, какие -свойства он ожидает от своих входов: например, оператор сортирующего слияния требует -упорядоченности обоих входов по соответствующим ключам, тогда как хеш-соединение не -предъявляет требований к порядку. Таким образом, при спуске по дереву поиска каждый -оператор транслирует глобальное требование \(P\) в конкретные требования \(P_1, -\ldots, P_k\) к своим дочерним группам. - \subsubsection{Оценка кардинальности} Оценка кардинальности является процессом предсказания числа кортежей, @@ -1517,7 +1456,17 @@ \subsubsection{Оценка стоимости} \(\Sort(R)\) & \(2 P(R) \cdot \lceil \log_M P(R) \rceil\) & \(|R| \cdot \log_2 |R|\) \end{longtable} -Для операторов \(\FilterOp\) и \(\ProjOp\) стоимость ввода-вывода равна \(0\), потому что это конвейерные операторы, которые не используют диск. +Для операторов \(\FilterOp\) и \(\ProjOp\) стоимость ввода-вывода равна \(0\), +потому что это конвейерные операторы, которые не используют диск. + +На оценке стоимости исполнения также основывается метод ветвей и границ. Он +используется для сокращения пространства поиска и, как следствие, +неасимптотического улучшения скорости работы алгоритма. В контексте Cascades +ветвями являются альтернативные выражения и комбинации физических реализаций +дочерних групп, а границей является текущая лучшая стоимость плана для заданной +группы и требуемых физических свойств. Если нижняя оценка стоимости частично +построенного плана уже превышает текущую лучшую, дальнейшее исследование по этой +ветке не имеет смысла. \subsection{Дифференциальный анализ физических планов} @@ -1762,15 +1711,45 @@ \subsection{Модуль стоимостной оптимизации план дифференциального сравнения планов для последующего расширения покрытия правилами трансформации. -Выбор лучшего плана выполняется на основе стоимостной модели. Стоимость -физического оператора рассчитывается с учетом оценок кардинальности входных и -выходных групп. Формулы для вычисления стоимости откалиброваны по результатам -бенчмарков и представлены в табилце~\ref{tbl:cost-model-coefficients}. -Кардинальность базовых отношений берется из описания входных таблиц, а для -фильтров, соединений, агрегаций и проекций оценивается эвристически. Чтобы -сократить перебор, оптимизатор использует метод ветвей и границ. Если локальная -стоимость или нижняя оценка стоимости поддерева уже превышает текущий лучший -результат, соответствующая ветвь пространства поиска не рассматривается дальше. +Выбор лучшего плана выполняется на основе стоимостной модели. Пусть для группы +\(G\) и требуемого свойства \(P\) уже найден план стоимости \(C^*\). +Рассматривается физическое выражение \(e\), имеющее локальную стоимость +\(C_{local}(e)\) и дочерние группы \(G_1, \ldots, G_k\). Если даже минимально +возможная оценка дочерних групп приводит к неравенству + +\[ + C_{local}(e) + \sum_{i=1}^{k} LB(G_i, P_i) \geq C^*, +\] + +\noindent{}то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает +нижнюю границу стоимости оптимизации дочерней группы под требуемым свойством +\(P_i\). Чем точнее нижняя граница, тем эффективнее отсечение. При этом \(C^{*}\) +должна быть вычислена в том же запуске оптимизатора, а значит использует оценки +дочерних групп не хуже чем \(LB(G_{i}, P_{i}), i=1, \ldots{} ,k\). + +В качестве \(LB(G_i, P_i)\) принимается лучшая стоимость, найденная для пары +\((G_i, P_i)\) на текущий момент работы алгоритма. Поскольку оптимизация группы +является рекурсивным процессом, к моменту отсечения для \((G_i, P_i)\) уже могут +быть найдены некоторые планы, и их минимальная стоимость служит нижней границей. +Если же группа \(G_i\) под свойством \(P_i\) ещё не рассматривалась, +используется минимальная из стоимостей физических операторов, которые реализуют +логический оператор из группы \(G_{i}\). + +Требуемые свойства дочерних групп \(P_i\) определяются оператором выражения +\(e\) совместно с требованием родителя \(P\). Каждый физический оператор +описывает, какие свойства он ожидает от своих входов: например, оператор +сортирующего слияния требует упорядоченности обоих входов по соответствующим +ключам, тогда как хеш-соединение не предъявляет требований к порядку. Таким +образом, при спуске по дереву поиска каждый оператор транслирует глобальное +требование \(P\) в конкретные требования \(P_1, \ldots, P_k\) к своим дочерним +группам. + +Стоимость физического оператора рассчитывается с учетом оценок кардинальности +входных и выходных групп. Формулы для вычисления стоимости откалиброваны по +результатам бенчмарков и представлены в +табилце~\ref{tbl:cost-model-coefficients}. Кардинальность базовых отношений +берется из описания входных таблиц, а для фильтров, соединений, агрегаций и +проекций оценивается эвристически. Для оценки кардинальности промежуточных результатов используется коэффициент селективности \(sel(p)\), показывающий долю кортежей, удовлетворяющих предикату @@ -1793,12 +1772,12 @@ \subsection{Модуль стоимостной оптимизации план условий соединения применяется селективность \(1\), чтобы не занижать стоимость плана при отсутствии надежной информации. -Отдельно учитываются физические свойства результата. В данной работе таким +Также учитываются физические свойства результата. В данной работе таким свойством является порядок строк, требуемый предложением \ORDERBY{}. Если выбранный план не обеспечивает требуемую сортировку, оптимизатор может добавить -обеспечивающий физический оператор сортировки и сравнить его стоимость с -другими альтернативами. Результатом работы модуля является дерево физических -операторов, которое передается в модуль исполнения. +обеспечивающий физический оператор сортировки и сравнить его стоимость с другими +альтернативами. Результатом работы модуля является дерево физических операторов, +которое передается в модуль исполнения. \section{Технологическая часть} @@ -2497,12 +2476,13 @@ \subsection{Дифференциальный анализ и тестирова \label{fig:benchmark-speedup} \end{figure} -В таблице~\ref{tbl:ssb-benchmark} приведено среднее время выполнения трех -повторений запросов SSB. Ускорение рассчитывается как отношение времени -выполнения наивного плана ко времени выполнения оптимизированного плана. +В таблице~\ref{tbl:ssb-benchmark} и на +рисунке~\ref{fig:benchmark-naive-optimized} приведено среднее время выполнения +трех повторений запросов SSB. -Видно, что на стандартном наборе запросов оптимизатор дает на $20-50\%$ раз, а -на накоторых запросах в $6$ и более раз. +На рисунке~\ref{fig:benchmark-speedup} приведено относительное ускорение +запросов на том же наборе данных. Видно, что оптимизатор дает ускорение на +$20-50\%$, а на накоторых запросах в $6$ и более раз. \begin{table}[H] \centering @@ -2835,6 +2815,26 @@ \subsection{Калибровка стоимостной модели} \end{algorithmic} \end{algorithm} +\begin{Definition} +Null-отбрасывающим называется предикат, который при замене всех атрибутов +соответствующей стороны на \texttt{NULL} принимает значение, отличное от +\texttt{TRUE}. +\end{Definition} + +\begin{Definition} +Конъюнкты \(\theta_1 \land \theta_2\) называются перераспределяемыми, если их +можно разбить на две группы \(\theta'_1\) и \(\theta'_2\) такие, что атрибуты +\(\theta'_2\) принадлежат \(attrs(S) \cup attrs(T)\), а конъюнкты с атрибутами +из \(attrs(R)\) остаются в \(\theta'_1\). +\end{Definition} + +\begin{Definition} +Функция агрегации называется разделяемой, если она представима композицией +частичного агрегата и финального комбинатора. Например, \SUM{} раскладывается в +сумму частичных сумм, \AVG{} --- в пару \SUM{} и \COUNT{}. +\end{Definition} + + \begin{footnotesize} \begin{longtable}{|c|L{3.1cm}|c|L{3.7cm}|} \caption{Правила трансформации.}\label{tbl:transformation_rules}\\ diff --git a/research/benchmarks.ipynb b/research/benchmarks.ipynb index 4eeae6b..22b41b0 100644 --- a/research/benchmarks.ipynb +++ b/research/benchmarks.ipynb @@ -2,76 +2,98 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "b5291871", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "2026-06-09T23:45:24+03:00\n", - "Running ./build-release/bin/benchmarks\n", - "Run on (8 X 4200 MHz CPU s)\n", - "CPU Caches:\n", - " L1 Data 48 KiB (x4)\n", - " L1 Instruction 32 KiB (x4)\n", - " L2 Unified 1280 KiB (x4)\n", - " L3 Unified 8192 KiB (x1)\n", - "Load Average: 0.41, 0.52, 0.86\n", - "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", - "----------------------------------------------------------------------------------------------------------------------------------------------------\n", - "Benchmark Time CPU Iterations\n", - "----------------------------------------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19715 ns 19630 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19839 ns 19745 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 324 ns 314 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.64 % 1.60 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19566 ns 19478 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19396 ns 19323 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 336 ns 324 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.72 % 1.66 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19754 ns 19666 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19761 ns 19648 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 289 ns 283 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 1.47 % 1.44 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 19804 ns 19725 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 19577 ns 19499 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 533 ns 523 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.69 % 2.65 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 70585 ns 69363 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 69486 ns 68784 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1996 ns 1071 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.83 % 1.54 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 43139 ns 42969 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 42265 ns 42095 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1908 ns 1873 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 4.42 % 4.36 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 68980 ns 68288 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 67762 ns 67089 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 2321 ns 2267 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 3.37 % 3.32 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 44213 ns 44019 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 43826 ns 43656 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 1117 ns 1099 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 2.53 % 2.50 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 90198 ns 89113 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 89940 ns 88866 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 3059 ns 2960 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 3.39 % 3.32 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 96809 ns 94872 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 95242 ns 93994 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 6365 ns 5128 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 6.58 % 5.40 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 95552 ns 93781 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 100165 ns 98047 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 8398 ns 8292 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 8.79 % 8.84 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_mean \u001b[m\u001b[0;33m 87877 ns 86576 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_median \u001b[m\u001b[0;33m 86511 ns 85319 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_stddev \u001b[m\u001b[0;33m 4625 ns 4531 ns \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m\u001b[0;32mBM_SQL/real_time_cv \u001b[m\u001b[0;33m 5.26 % 5.23 % \u001b[m\u001b[0;36m 3\u001b[m\n", - "\u001b[m" + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mFailed to start the Kernel. \n", + "\u001b[1;31mFailed to find the URL of the launched Jupyter notebook server\n", + "\u001b[1;31m[W 2026-06-14 17:27:38.911 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m Traceback (most recent call last):\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", + "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", + "\u001b[1;31m self._load_metadata()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", + "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", + "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", + "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", + "\u001b[1;31m from .labapp import LabApp\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", + "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", + "\u001b[1;31m from .pypi import PyPIExtensionManager\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", + "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", + "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", + "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", + "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", + "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m[I 2026-06-14 17:27:38.917 ServerApp] jupyter_lsp | extension was successfully linked.\n", + "\u001b[1;31m[I 2026-06-14 17:27:38.923 ServerApp] jupyter_server_terminals | extension was successfully linked.\n", + "\u001b[1;31m[W 2026-06-14 17:27:38.926 JupyterNotebookApp] 'iopub_data_rate_limit' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.\n", + "\u001b[1;31m[W 2026-06-14 17:27:38.931 ServerApp] ServerApp.iopub_data_rate_limit config is deprecated in 2.0. Use ZMQChannelsWebsocketConnection.iopub_data_rate_limit.\n", + "\u001b[1;31m[I 2026-06-14 17:27:38.932 ServerApp] notebook | extension was successfully linked.\n", + "\u001b[1;31m[W 2026-06-14 17:27:41.699 ServerApp] jupyterlab | error adding extension (enabled: True): Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m Traceback (most recent call last):\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 365, in add_extension\n", + "\u001b[1;31m extpkg = ExtensionPackage(name=extension_name, enabled=enabled)\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 219, in __init__\n", + "\u001b[1;31m self._load_metadata()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/manager.py\", line 228, in _load_metadata\n", + "\u001b[1;31m self.module, self.metadata = get_metadata(name, logger=self.log)\n", + "\u001b[1;31m ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyter_server/extension/utils.py\", line 76, in get_metadata\n", + "\u001b[1;31m return module, module._jupyter_server_extension_points()\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/__init__.py\", line 20, in _jupyter_server_extension_points\n", + "\u001b[1;31m from .labapp import LabApp\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/labapp.py\", line 46, in \n", + "\u001b[1;31m from .extensions import MANAGERS as EXT_MANAGERS\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/__init__.py\", line 12, in \n", + "\u001b[1;31m from .pypi import PyPIExtensionManager\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/jupyterlab/extensions/pypi.py\", line 76, in \n", + "\u001b[1;31m \"http://\": httpx.AsyncHTTPTransport(proxy=http_proxy_url),\n", + "\u001b[1;31m ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_transports/default.py\", line 296, in __init__\n", + "\u001b[1;31m proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy\n", + "\u001b[1;31m ~~~~~^^^^^^^^^^^\n", + "\u001b[1;31m File \"/nix/store/mvrqpz0dm2101n2r2m2s3nmrji30gf56-python3-3.13.13-env/lib/python3.13/site-packages/httpx/_config.py\", line 214, in __init__\n", + "\u001b[1;31m raise ValueError(f\"Unknown scheme for proxy URL {url!r}\")\n", + "\u001b[1;31m ValueError: Unknown scheme for proxy URL URL('socks://localhost:1081')\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.702 ServerApp] notebook_shim | extension was successfully linked.\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.774 ServerApp] notebook_shim | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.778 ServerApp] jupyter_lsp | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.785 ServerApp] jupyter_server_terminals | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.816 ServerApp] notebook | extension was successfully loaded.\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.819 ServerApp] The port 8888 is already in use, trying another port.\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.821 ServerApp] Serving notebooks from local directory: /home/st/c/iu9-sql-compiler/research\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] Jupyter Server 2.17.0 is running at:\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] http://localhost:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] http://127.0.0.1:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", + "\u001b[1;31m[I 2026-06-14 17:27:41.822 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n", + "\u001b[1;31m[C 2026-06-14 17:27:41.836 ServerApp] \n", + "\u001b[1;31m \n", + "\u001b[1;31m To access the server, open this file in a browser:\n", + "\u001b[1;31m file:///home/st/.local/share/jupyter/runtime/jpserver-29560-open.html\n", + "\u001b[1;31m Or copy and paste one of these URLs:\n", + "\u001b[1;31m http://localhost:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", + "\u001b[1;31m http://127.0.0.1:8889/tree?token=c5ff0bd91935fa65038e4a11fe748322a019a84f3a190f69\n", + "\u001b[1;31m[I 2026-06-14 17:27:42.864 ServerApp] Skipped non-installed server(s): basedpyright, bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyrefly, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server. \n", + "\u001b[1;31mView Jupyter log for further details." ] } ], @@ -82,652 +104,37 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "94b2cd75", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2026-06-09T23:45:52+03:00\n", - "Running ./build-release/bin/benchmarks\n", - "Run on (8 X 4200 MHz CPU s)\n", - "CPU Caches:\n", - " L1 Data 48 KiB (x4)\n", - " L1 Instruction 32 KiB (x4)\n", - " L2 Unified 1280 KiB (x4)\n", - " L3 Unified 8192 KiB (x1)\n", - "Load Average: 1.00, 0.64, 0.90\n", - "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", - "----------------------------------------------------------------------------------------------------------\n", - "Benchmark Time CPU Iterations UserCounters...\n", - "----------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10529208 ns 10430532 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.5291k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10357855 ns 10266127 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.3577k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 680061 ns 657238 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=680.069\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 6.46 % 6.30 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.46%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 11087104 ns 10938563 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.087k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.52226k\u001b[m plan_cost=836.223k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 11374830 ns 11181105 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.3748k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.59036k\u001b[m plan_cost=836.223k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 807685 ns 805879 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=807.683\u001b[m includes_order_by=0\u001b[m optimizer_us=142.327\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 7.28 % 7.37 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.28%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.58%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8696587 ns 8625517 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.69653k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8424029 ns 8351053 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.42397k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 614383 ns 602582 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=614.378\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 7.06 % 6.99 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.06%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 8481006 ns 8356025 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.48094k\u001b[m includes_order_by=0\u001b[m optimizer_us=464.225\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 8430650 ns 8195103 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.43059k\u001b[m includes_order_by=0\u001b[m optimizer_us=463.328\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 413000 ns 423645 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=413.003\u001b[m includes_order_by=0\u001b[m optimizer_us=5.17612\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 4.87 % 5.07 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.87%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.12%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10591798 ns 10470366 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.5917k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10967922 ns 10832180 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.9678k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 778749 ns 750058 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=778.722\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 7.35 % 7.16 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.35%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 8042493 ns 7973771 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.04242k\u001b[m includes_order_by=0\u001b[m optimizer_us=389.801\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7975113 ns 7919581 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.97505k\u001b[m includes_order_by=0\u001b[m optimizer_us=373.936\u001b[m plan_cost=654.297k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 716234 ns 709722 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=716.23\u001b[m includes_order_by=0\u001b[m optimizer_us=40.4184\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 8.91 % 8.90 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.91%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=10.37%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 41079134 ns 40719159 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.0788k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 41251745 ns 40951561 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=41.2516k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1772659 ns 1741817 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.77282k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 4.32 % 4.28 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=4.32%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6184696 ns 6137487 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.18463k\u001b[m includes_order_by=1\u001b[m optimizer_us=97.5624k\u001b[m plan_cost=816.714k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6169728 ns 6119638 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.16966k\u001b[m includes_order_by=1\u001b[m optimizer_us=96.677k\u001b[m plan_cost=816.714k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 35201 ns 43807 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=35.2042\u001b[m includes_order_by=0\u001b[m optimizer_us=2.64896k\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.57 % 0.71 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.57%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=2.72%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 39726018 ns 39369045 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=39.7258k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 39289269 ns 38939516 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=39.289k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 1152565 ns 1067549 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.15258k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.71 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.90%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6226768 ns 6189600 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2267k\u001b[m includes_order_by=1\u001b[m optimizer_us=46.7043k\u001b[m plan_cost=816.714k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6217583 ns 6181985 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.2175k\u001b[m includes_order_by=1\u001b[m optimizer_us=46.7191k\u001b[m plan_cost=816.714k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 74863 ns 74631 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=74.8587\u001b[m includes_order_by=0\u001b[m optimizer_us=496.521\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.4/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.20 % 1.21 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.20%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.06%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10159185 ns 10079207 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.1591k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 10047677 ns 9977358 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0476k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 345553 ns 338814 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=345.524\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.40 % 3.36 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.40%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6886022 ns 6843094 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.88595k\u001b[m includes_order_by=1\u001b[m optimizer_us=592.57k\u001b[m plan_cost=841.353k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6878252 ns 6836928 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.87819k\u001b[m includes_order_by=1\u001b[m optimizer_us=594.328k\u001b[m plan_cost=841.353k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 13616 ns 11041 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.5977\u001b[m includes_order_by=0\u001b[m optimizer_us=8.90421k\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 0.20 % 0.16 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.20%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.50%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 8560502 ns 8501831 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.56041k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 8474498 ns 8421813 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=8.47444k\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 236679 ns 232363 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=236.611\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.76 % 2.73 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.76%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 7188918 ns 7145194 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.18887k\u001b[m includes_order_by=0\u001b[m optimizer_us=386.236\u001b[m plan_cost=705.057k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 7065500 ns 7025301 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=7.06544k\u001b[m includes_order_by=0\u001b[m optimizer_us=278.406\u001b[m plan_cost=705.057k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 220209 ns 217250 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=220.214\u001b[m includes_order_by=0\u001b[m optimizer_us=189.749\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q1.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.06 % 3.04 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.06%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=49.13%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38735087 ns 38507394 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.7349k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 38800745 ns 38599089 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.8006k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 794694 ns 787590 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=794.706\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 2.05 % 2.05 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.05%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6717959 ns 6675562 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.71791k\u001b[m includes_order_by=1\u001b[m optimizer_us=44.7762k\u001b[m plan_cost=816.374k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6691263 ns 6649855 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.69122k\u001b[m includes_order_by=1\u001b[m optimizer_us=44.9583k\u001b[m plan_cost=816.374k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 223132 ns 219030 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=223.132\u001b[m includes_order_by=0\u001b[m optimizer_us=1.38305k\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.32 % 3.28 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.32%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.09%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9318865 ns 9262092 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.31879k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9317950 ns 9264243 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.31784k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 43983 ns 43352 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=43.9888\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.47 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.47%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6690732 ns 6651178 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.69067k\u001b[m includes_order_by=1\u001b[m optimizer_us=13.2656k\u001b[m plan_cost=841.323k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6611059 ns 6573641 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.611k\u001b[m includes_order_by=1\u001b[m optimizer_us=12.9576k\u001b[m plan_cost=841.323k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 178965 ns 175813 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=178.964\u001b[m includes_order_by=0\u001b[m optimizer_us=613.922\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.67 % 2.64 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.67%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=4.63%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 38097914 ns 37891700 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.0977k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 38067251 ns 37869328 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=38.0671k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 714779 ns 706378 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=714.755\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 1.88 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.88%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6528813 ns 6491827 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.52875k\u001b[m includes_order_by=1\u001b[m optimizer_us=44.0747k\u001b[m plan_cost=816.374k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6443385 ns 6408645 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.44333k\u001b[m includes_order_by=1\u001b[m optimizer_us=43.7956k\u001b[m plan_cost=816.374k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 189025 ns 188359 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=189.037\u001b[m includes_order_by=0\u001b[m optimizer_us=772.954\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q3.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.90 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=2.90%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.75%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 10061357 ns 9987626 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=10.0613k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9866919 ns 9808790 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.86683k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 371172 ns 350939 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=371.183\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 3.69 % 3.51 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.69%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 11892791 ns 11823670 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=11.8927k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.70535M\u001b[m plan_cost=842.823k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 12032078 ns 11957276 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=12.032k\u001b[m includes_order_by=1\u001b[m optimizer_us=1.70999M\u001b[m plan_cost=842.823k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 367685 ns 356358 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=367.683\u001b[m includes_order_by=0\u001b[m optimizer_us=14.1195k\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.2/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 3.09 % 3.01 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=3.09%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=0.83%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9553308 ns 9491710 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.55323k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9540526 ns 9479518 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.54045k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 69032 ns 72719 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=69.0264\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.77 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.72%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 13055569 ns 12976693 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.0555k\u001b[m includes_order_by=1\u001b[m optimizer_us=735.421k\u001b[m plan_cost=842.793k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 13123589 ns 13043514 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=13.1234k\u001b[m includes_order_by=1\u001b[m optimizer_us=739.537k\u001b[m plan_cost=842.793k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 168357 ns 154483 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=168.342\u001b[m includes_order_by=0\u001b[m optimizer_us=14.5603k\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q4.1/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.29 % 1.19 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.29%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=1.98%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_mean \u001b[m\u001b[0;33m 9503878 ns 9404200 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.50381k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_median \u001b[m\u001b[0;33m 9463379 ns 9405731 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=9.4633k\u001b[m includes_order_by=1\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_stddev \u001b[m\u001b[0;33m 85021 ns 20695 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=85.0251\u001b[m includes_order_by=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Naive/real_time_cv \u001b[m\u001b[0;33m 0.89 % 0.22 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=0.89%\u001b[m includes_order_by=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_mean \u001b[m\u001b[0;33m 6292484 ns 6256305 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.29241k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.39098k\u001b[m plan_cost=836.223k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_median \u001b[m\u001b[0;33m 6233794 ns 6199432 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=6.23372k\u001b[m includes_order_by=1\u001b[m optimizer_us=5.35577k\u001b[m plan_cost=836.223k\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_stddev \u001b[m\u001b[0;33m 108967 ns 104938 ns \u001b[m\u001b[0;36m 3\u001b[m execution_us=108.969\u001b[m includes_order_by=0\u001b[m optimizer_us=196.278\u001b[m plan_cost=0\u001b[m\n", - "\u001b[m\u001b[0;32mSSB/q2.3/Interpreted/Optimized/real_time_cv \u001b[m\u001b[0;33m 1.73 % 1.68 % \u001b[m\u001b[0;36m 3\u001b[m execution_us=1.73%\u001b[m includes_order_by=0.00%\u001b[m optimizer_us=3.64%\u001b[m plan_cost=0.00%\u001b[m\n", - "\u001b[m" - ] - } - ], + "outputs": [], "source": [ "!cd .. && SSB_DATA_DIR=benchmarks/datasets/ssb/generated/sf001 timeout 180s ./build-release/bin/benchmarks --benchmark_filter='^SSB/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/ssb-sf001.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "6f8e3873", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2026-06-09T23:47:09+03:00\n", - "Running ./build-release/bin/benchmarks\n", - "Run on (8 X 4200 MHz CPU s)\n", - "CPU Caches:\n", - " L1 Data 48 KiB (x4)\n", - " L1 Instruction 32 KiB (x4)\n", - " L2 Unified 1280 KiB (x4)\n", - " L3 Unified 8192 KiB (x1)\n", - "Load Average: 1.62, 0.92, 0.97\n", - "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", - "----------------------------------------------------------------------------------------------------------------------\n", - "Benchmark Time CPU Iterations UserCounters...\n", - "----------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCost/SeqScan/1024/real_time_mean \u001b[m\u001b[0;33m 39153 ns 39016 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_median \u001b[m\u001b[0;33m 39303 ns 39169 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=1.024k\u001b[m plan_cost=102.4k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_stddev \u001b[m\u001b[0;33m 267 ns 265 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/1024/real_time_cv \u001b[m\u001b[0;33m 0.68 % 0.68 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_mean \u001b[m\u001b[0;33m 72348 ns 72079 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_median \u001b[m\u001b[0;33m 71402 ns 71146 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=2.048k\u001b[m plan_cost=204.8k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_stddev \u001b[m\u001b[0;33m 1791 ns 1734 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/2048/real_time_cv \u001b[m\u001b[0;33m 2.48 % 2.41 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_mean \u001b[m\u001b[0;33m 158147 ns 156559 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_median \u001b[m\u001b[0;33m 157558 ns 155985 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=4.096k\u001b[m plan_cost=409.6k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_stddev \u001b[m\u001b[0;33m 2396 ns 2315 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/4096/real_time_cv \u001b[m\u001b[0;33m 1.51 % 1.48 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_mean \u001b[m\u001b[0;33m 358960 ns 356073 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_median \u001b[m\u001b[0;33m 357023 ns 354120 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=8.192k\u001b[m plan_cost=819.2k\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_stddev \u001b[m\u001b[0;33m 4165 ns 4140 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/8192/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.16 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_mean \u001b[m\u001b[0;33m 797004 ns 790772 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_median \u001b[m\u001b[0;33m 796509 ns 790000 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.6384M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_stddev \u001b[m\u001b[0;33m 5029 ns 5064 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/16384/real_time_cv \u001b[m\u001b[0;33m 0.63 % 0.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_mean \u001b[m\u001b[0;33m 1990887 ns 1971823 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_median \u001b[m\u001b[0;33m 1989976 ns 1972159 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=32.768k\u001b[m plan_cost=3.2768M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_stddev \u001b[m\u001b[0;33m 26044 ns 24709 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/32768/real_time_cv \u001b[m\u001b[0;33m 1.31 % 1.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_mean \u001b[m\u001b[0;33m 4947678 ns 4898438 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_median \u001b[m\u001b[0;33m 4843216 ns 4796793 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.5536M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_stddev \u001b[m\u001b[0;33m 274098 ns 266515 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/65536/real_time_cv \u001b[m\u001b[0;33m 5.54 % 5.44 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_mean \u001b[m\u001b[0;33m 10909127 ns 10799682 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_median \u001b[m\u001b[0;33m 10878576 ns 10770947 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=131.072k\u001b[m plan_cost=13.1072M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_stddev \u001b[m\u001b[0;33m 76933 ns 76956 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/131072/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.71 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_mean \u001b[m\u001b[0;33m 22613130 ns 22403648 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_median \u001b[m\u001b[0;33m 22384763 ns 22194274 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=262.144k\u001b[m plan_cost=26.2144M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_stddev \u001b[m\u001b[0;33m 664045 ns 632355 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/SeqScan/262144/real_time_cv \u001b[m\u001b[0;33m 2.94 % 2.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_mean \u001b[m\u001b[0;33m 74024 ns 73756 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_median \u001b[m\u001b[0;33m 74202 ns 73951 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=102.4k\u001b[m output_rows=512\u001b[m plan_cost=204.8k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_stddev \u001b[m\u001b[0;33m 359 ns 404 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/1024/real_time_cv \u001b[m\u001b[0;33m 0.49 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_mean \u001b[m\u001b[0;33m 137533 ns 136994 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_median \u001b[m\u001b[0;33m 139308 ns 138685 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=204.8k\u001b[m output_rows=1.024k\u001b[m plan_cost=409.6k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_stddev \u001b[m\u001b[0;33m 3697 ns 3617 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/2048/real_time_cv \u001b[m\u001b[0;33m 2.69 % 2.64 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_mean \u001b[m\u001b[0;33m 261600 ns 260569 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_median \u001b[m\u001b[0;33m 260040 ns 259070 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=409.6k\u001b[m output_rows=2.048k\u001b[m plan_cost=819.2k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_stddev \u001b[m\u001b[0;33m 3351 ns 3281 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/4096/real_time_cv \u001b[m\u001b[0;33m 1.28 % 1.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_mean \u001b[m\u001b[0;33m 513833 ns 511511 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_median \u001b[m\u001b[0;33m 516091 ns 513709 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=819.2k\u001b[m output_rows=4.096k\u001b[m plan_cost=1.6384M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_stddev \u001b[m\u001b[0;33m 4408 ns 4202 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/8192/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_mean \u001b[m\u001b[0;33m 1066718 ns 1061351 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_median \u001b[m\u001b[0;33m 1050933 ns 1045549 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.6384M\u001b[m output_rows=8.192k\u001b[m plan_cost=3.2768M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_stddev \u001b[m\u001b[0;33m 34164 ns 33246 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/16384/real_time_cv \u001b[m\u001b[0;33m 3.20 % 3.13 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_mean \u001b[m\u001b[0;33m 2189729 ns 2178064 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_median \u001b[m\u001b[0;33m 2177674 ns 2166723 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.2768M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.5536M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_stddev \u001b[m\u001b[0;33m 40807 ns 39296 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/32768/real_time_cv \u001b[m\u001b[0;33m 1.86 % 1.80 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_mean \u001b[m\u001b[0;33m 4602133 ns 4576376 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_median \u001b[m\u001b[0;33m 4612541 ns 4587562 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.5536M\u001b[m output_rows=32.768k\u001b[m plan_cost=13.1072M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_stddev \u001b[m\u001b[0;33m 53265 ns 54115 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/65536/real_time_cv \u001b[m\u001b[0;33m 1.16 % 1.18 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_mean \u001b[m\u001b[0;33m 9965140 ns 9905109 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_median \u001b[m\u001b[0;33m 9961682 ns 9898928 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=13.1072M\u001b[m output_rows=65.536k\u001b[m plan_cost=26.2144M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_stddev \u001b[m\u001b[0;33m 367014 ns 358618 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/131072/real_time_cv \u001b[m\u001b[0;33m 3.68 % 3.62 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_mean \u001b[m\u001b[0;33m 20746154 ns 20612936 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_median \u001b[m\u001b[0;33m 20609234 ns 20480861 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.2144M\u001b[m output_rows=131.072k\u001b[m plan_cost=52.4288M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_stddev \u001b[m\u001b[0;33m 432544 ns 413377 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Filter/262144/real_time_cv \u001b[m\u001b[0;33m 2.08 % 2.01 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_mean \u001b[m\u001b[0;33m 102501 ns 102103 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_median \u001b[m\u001b[0;33m 102476 ns 102063 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=22.528k\u001b[m output_rows=1.024k\u001b[m plan_cost=124.928k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_stddev \u001b[m\u001b[0;33m 1037 ns 1019 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/1024/real_time_cv \u001b[m\u001b[0;33m 1.01 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_mean \u001b[m\u001b[0;33m 192335 ns 191492 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_median \u001b[m\u001b[0;33m 191735 ns 190906 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=45.056k\u001b[m output_rows=2.048k\u001b[m plan_cost=249.856k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_stddev \u001b[m\u001b[0;33m 6489 ns 6398 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/2048/real_time_cv \u001b[m\u001b[0;33m 3.37 % 3.34 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_mean \u001b[m\u001b[0;33m 358122 ns 356961 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_median \u001b[m\u001b[0;33m 357740 ns 356476 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=90.112k\u001b[m output_rows=4.096k\u001b[m plan_cost=499.712k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_stddev \u001b[m\u001b[0;33m 1726 ns 1799 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/4096/real_time_cv \u001b[m\u001b[0;33m 0.48 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_mean \u001b[m\u001b[0;33m 730814 ns 727359 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_median \u001b[m\u001b[0;33m 730561 ns 727062 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=180.224k\u001b[m output_rows=8.192k\u001b[m plan_cost=0.999424M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_stddev \u001b[m\u001b[0;33m 2539 ns 2763 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/8192/real_time_cv \u001b[m\u001b[0;33m 0.35 % 0.38 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_mean \u001b[m\u001b[0;33m 1526678 ns 1518388 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_median \u001b[m\u001b[0;33m 1514234 ns 1505967 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=360.448k\u001b[m output_rows=16.384k\u001b[m plan_cost=1.99885M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_stddev \u001b[m\u001b[0;33m 66490 ns 65574 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/16384/real_time_cv \u001b[m\u001b[0;33m 4.36 % 4.32 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_mean \u001b[m\u001b[0;33m 3121936 ns 3104686 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_median \u001b[m\u001b[0;33m 3144138 ns 3126492 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=720.896k\u001b[m output_rows=32.768k\u001b[m plan_cost=3.9977M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_stddev \u001b[m\u001b[0;33m 42438 ns 41442 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/32768/real_time_cv \u001b[m\u001b[0;33m 1.36 % 1.33 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_mean \u001b[m\u001b[0;33m 6595264 ns 6544746 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_median \u001b[m\u001b[0;33m 6608749 ns 6555081 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.44179M\u001b[m output_rows=65.536k\u001b[m plan_cost=7.99539M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_stddev \u001b[m\u001b[0;33m 58317 ns 53393 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/65536/real_time_cv \u001b[m\u001b[0;33m 0.88 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_mean \u001b[m\u001b[0;33m 14333160 ns 14219076 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_median \u001b[m\u001b[0;33m 14192064 ns 14077398 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.88358M\u001b[m output_rows=131.072k\u001b[m plan_cost=15.9908M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_stddev \u001b[m\u001b[0;33m 467177 ns 461157 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/131072/real_time_cv \u001b[m\u001b[0;33m 3.26 % 3.24 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_mean \u001b[m\u001b[0;33m 33368177 ns 33128753 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_median \u001b[m\u001b[0;33m 33354850 ns 33124116 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=262.144k\u001b[m plan_cost=31.9816M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_stddev \u001b[m\u001b[0;33m 57832 ns 25519 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Projection/262144/real_time_cv \u001b[m\u001b[0;33m 0.17 % 0.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_mean \u001b[m\u001b[0;33m 119077 ns 118631 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_median \u001b[m\u001b[0;33m 119114 ns 118725 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=123.904k\u001b[m output_rows=1.024k\u001b[m plan_cost=226.304k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_stddev \u001b[m\u001b[0;33m 1155 ns 1165 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/1024/real_time_cv \u001b[m\u001b[0;33m 0.97 % 0.98 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_mean \u001b[m\u001b[0;33m 276292 ns 275137 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_median \u001b[m\u001b[0;33m 275547 ns 274427 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=270.336k\u001b[m output_rows=2.048k\u001b[m plan_cost=475.136k\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_stddev \u001b[m\u001b[0;33m 3680 ns 3546 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/2048/real_time_cv \u001b[m\u001b[0;33m 1.33 % 1.29 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_mean \u001b[m\u001b[0;33m 623962 ns 621336 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_median \u001b[m\u001b[0;33m 619550 ns 617008 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=585.728k\u001b[m output_rows=4.096k\u001b[m plan_cost=995.328k\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_stddev \u001b[m\u001b[0;33m 17605 ns 17229 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/4096/real_time_cv \u001b[m\u001b[0;33m 2.82 % 2.77 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_mean \u001b[m\u001b[0;33m 1387995 ns 1380934 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_median \u001b[m\u001b[0;33m 1386525 ns 1379373 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.26157M\u001b[m output_rows=8.192k\u001b[m plan_cost=2.08077M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_stddev \u001b[m\u001b[0;33m 6569 ns 6278 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/8192/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.45 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_mean \u001b[m\u001b[0;33m 3127599 ns 3111158 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_median \u001b[m\u001b[0;33m 3122047 ns 3105723 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.70336M\u001b[m output_rows=16.384k\u001b[m plan_cost=4.34176M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_stddev \u001b[m\u001b[0;33m 10847 ns 11610 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/16384/real_time_cv \u001b[m\u001b[0;33m 0.35 % 0.37 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_mean \u001b[m\u001b[0;33m 8567436 ns 8516854 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_median \u001b[m\u001b[0;33m 8411857 ns 8357809 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=5.76717M\u001b[m output_rows=32.768k\u001b[m plan_cost=9.04397M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_stddev \u001b[m\u001b[0;33m 348230 ns 347847 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/32768/real_time_cv \u001b[m\u001b[0;33m 4.06 % 4.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 21204896 ns 21056618 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_median \u001b[m\u001b[0;33m 21202786 ns 21049976 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 47868 ns 34465 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.16 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_mean \u001b[m\u001b[0;33m 61087203 ns 60619246 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_median \u001b[m\u001b[0;33m 61025748 ns 60603653 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=25.9523M\u001b[m output_rows=131.072k\u001b[m plan_cost=39.0595M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_stddev \u001b[m\u001b[0;33m 318956 ns 262983 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/131072/real_time_cv \u001b[m\u001b[0;33m 0.52 % 0.43 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_mean \u001b[m\u001b[0;33m 178916260 ns 177525137 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_median \u001b[m\u001b[0;33m 176367090 ns 174983458 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=54.7881M\u001b[m output_rows=262.144k\u001b[m plan_cost=81.0025M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_stddev \u001b[m\u001b[0;33m 5229156 ns 5156914 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Sort/262144/real_time_cv \u001b[m\u001b[0;33m 2.92 % 2.90 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_mean \u001b[m\u001b[0;33m 285190 ns 284193 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_median \u001b[m\u001b[0;33m 284445 ns 283487 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=522.24k\u001b[m output_rows=1.024k\u001b[m plan_cost=624.64k\u001b[m rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_stddev \u001b[m\u001b[0;33m 1726 ns 1620 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/1024/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.57 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_mean \u001b[m\u001b[0;33m 554982 ns 552824 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_median \u001b[m\u001b[0;33m 554354 ns 551916 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.04448M\u001b[m output_rows=2.048k\u001b[m plan_cost=1.24928M\u001b[m rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_stddev \u001b[m\u001b[0;33m 1503 ns 1594 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/2048/real_time_cv \u001b[m\u001b[0;33m 0.27 % 0.29 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_mean \u001b[m\u001b[0;33m 1186394 ns 1179677 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_median \u001b[m\u001b[0;33m 1161393 ns 1154736 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=2.08896M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.49856M\u001b[m rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_stddev \u001b[m\u001b[0;33m 52944 ns 51987 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/4096/real_time_cv \u001b[m\u001b[0;33m 4.46 % 4.41 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_mean \u001b[m\u001b[0;33m 2432833 ns 2420872 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_median \u001b[m\u001b[0;33m 2442240 ns 2429133 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=4.17792M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.99712M\u001b[m rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_stddev \u001b[m\u001b[0;33m 22609 ns 21015 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/8192/real_time_cv \u001b[m\u001b[0;33m 0.93 % 0.87 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_mean \u001b[m\u001b[0;33m 5847840 ns 5806488 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_median \u001b[m\u001b[0;33m 5801578 ns 5764441 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=8.35584M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.99424M\u001b[m rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_stddev \u001b[m\u001b[0;33m 104961 ns 103759 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/16384/real_time_cv \u001b[m\u001b[0;33m 1.79 % 1.79 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_mean \u001b[m\u001b[0;33m 16878386 ns 16728186 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_median \u001b[m\u001b[0;33m 16986629 ns 16833720 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=16.7117M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.9885M\u001b[m rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_stddev \u001b[m\u001b[0;33m 210596 ns 201562 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/32768/real_time_cv \u001b[m\u001b[0;33m 1.25 % 1.20 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_mean \u001b[m\u001b[0;33m 53712474 ns 53266495 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_median \u001b[m\u001b[0;33m 51282451 ns 50872196 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=33.4234M\u001b[m output_rows=65.536k\u001b[m plan_cost=39.977M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_stddev \u001b[m\u001b[0;33m 4359336 ns 4263240 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/65536/real_time_cv \u001b[m\u001b[0;33m 8.12 % 8.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_mean \u001b[m\u001b[0;33m 132381802 ns 131439592 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_median \u001b[m\u001b[0;33m 132670408 ns 131630071 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=66.8467M\u001b[m output_rows=131.072k\u001b[m plan_cost=79.9539M\u001b[m rows=131.072k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_stddev \u001b[m\u001b[0;33m 513538 ns 448055 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/131072/real_time_cv \u001b[m\u001b[0;33m 0.39 % 0.34 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_mean \u001b[m\u001b[0;33m 312772495 ns 310749663 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_median \u001b[m\u001b[0;33m 312614458 ns 310482767 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=133.693M\u001b[m output_rows=262.144k\u001b[m plan_cost=159.908M\u001b[m rows=262.144k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_stddev \u001b[m\u001b[0;33m 21372055 ns 21016226 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/Aggregation/262144/real_time_cv \u001b[m\u001b[0;33m 6.83 % 6.76 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 160722 ns 160185 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 161083 ns 160544 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=404.48k\u001b[m output_rows=1.024k\u001b[m plan_cost=609.28k\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 980 ns 1021 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.61 % 0.64 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 309777 ns 308490 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 309907 ns 308710 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=808.96k\u001b[m output_rows=2.048k\u001b[m plan_cost=1.21856M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 506 ns 522 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.16 % 0.17 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_mean \u001b[m\u001b[0;33m 608952 ns 605721 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_median \u001b[m\u001b[0;33m 608893 ns 605644 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=4.096k\u001b[m model_cost=1.61792M\u001b[m output_rows=4.096k\u001b[m plan_cost=2.43712M\u001b[m rhs_rows=4.096k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_stddev \u001b[m\u001b[0;33m 3530 ns 3421 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/4096/4096/real_time_cv \u001b[m\u001b[0;33m 0.58 % 0.56 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_mean \u001b[m\u001b[0;33m 1317737 ns 1309485 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_median \u001b[m\u001b[0;33m 1316605 ns 1308784 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.192k\u001b[m model_cost=3.23584M\u001b[m output_rows=8.192k\u001b[m plan_cost=4.87424M\u001b[m rhs_rows=8.192k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_stddev \u001b[m\u001b[0;33m 59555 ns 59083 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/8192/8192/real_time_cv \u001b[m\u001b[0;33m 4.52 % 4.51 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_mean \u001b[m\u001b[0;33m 2961361 ns 2936971 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_median \u001b[m\u001b[0;33m 2968359 ns 2943681 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=16.384k\u001b[m model_cost=6.47168M\u001b[m output_rows=16.384k\u001b[m plan_cost=9.74848M\u001b[m rhs_rows=16.384k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_stddev \u001b[m\u001b[0;33m 19681 ns 19421 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/16384/16384/real_time_cv \u001b[m\u001b[0;33m 0.66 % 0.66 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_mean \u001b[m\u001b[0;33m 7050325 ns 6989873 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_median \u001b[m\u001b[0;33m 7009057 ns 6949558 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32.768k\u001b[m model_cost=12.9434M\u001b[m output_rows=32.768k\u001b[m plan_cost=19.497M\u001b[m rhs_rows=32.768k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_stddev \u001b[m\u001b[0;33m 77824 ns 79054 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/32768/32768/real_time_cv \u001b[m\u001b[0;33m 1.10 % 1.13 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_mean \u001b[m\u001b[0;33m 15872398 ns 15737241 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_median \u001b[m\u001b[0;33m 15615015 ns 15477258 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.536k\u001b[m model_cost=25.8867M\u001b[m output_rows=65.536k\u001b[m plan_cost=38.9939M\u001b[m rhs_rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_stddev \u001b[m\u001b[0;33m 780189 ns 771653 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/HashJoin/65536/65536/real_time_cv \u001b[m\u001b[0;33m 4.92 % 4.90 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 355795 ns 353483 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_median \u001b[m\u001b[0;33m 353326 ns 350916 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=286.72k\u001b[m output_rows=64\u001b[m plan_cost=299.52k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 4527 ns 4451 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 1.27 % 1.26 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 1116378 ns 1110421 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_median \u001b[m\u001b[0;33m 1115505 ns 1109645 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.14688M\u001b[m output_rows=128\u001b[m plan_cost=1.17248M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 26324 ns 25069 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 2.36 % 2.26 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 3971691 ns 3955265 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_median \u001b[m\u001b[0;33m 3974506 ns 3958255 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=4.58752M\u001b[m output_rows=256\u001b[m plan_cost=4.63872M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 42789 ns 40950 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 1.08 % 1.04 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 15476134 ns 15410251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_median \u001b[m\u001b[0;33m 15283883 ns 15218578 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=18.3501M\u001b[m output_rows=512\u001b[m plan_cost=18.4525M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 398036 ns 392643 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 2.57 % 2.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 58703697 ns 58489336 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 58646104 ns 58442294 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=73.4003M\u001b[m output_rows=1.024k\u001b[m plan_cost=73.6051M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 142367 ns 137251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 0.24 % 0.23 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_mean \u001b[m\u001b[0;33m 232975373 ns 232184958 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_median \u001b[m\u001b[0;33m 233174267 ns 232347277 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.048k\u001b[m model_cost=293.601M\u001b[m output_rows=2.048k\u001b[m plan_cost=294.011M\u001b[m rhs_rows=2.048k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_stddev \u001b[m\u001b[0;33m 540173 ns 549641 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopJoin/2048/2048/real_time_cv \u001b[m\u001b[0;33m 0.23 % 0.24 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_mean \u001b[m\u001b[0;33m 128773 ns 127708 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_median \u001b[m\u001b[0;33m 129039 ns 128024 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=32\u001b[m model_cost=106.496k\u001b[m output_rows=1.024k\u001b[m plan_cost=112.896k\u001b[m rhs_rows=32\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_stddev \u001b[m\u001b[0;33m 3861 ns 3750 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/32/32/real_time_cv \u001b[m\u001b[0;33m 3.00 % 2.94 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_mean \u001b[m\u001b[0;33m 301369 ns 298177 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_median \u001b[m\u001b[0;33m 300985 ns 298775 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=64\u001b[m model_cost=425.984k\u001b[m output_rows=4.096k\u001b[m plan_cost=438.784k\u001b[m rhs_rows=64\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_stddev \u001b[m\u001b[0;33m 4541 ns 6191 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/64/64/real_time_cv \u001b[m\u001b[0;33m 1.51 % 2.08 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_mean \u001b[m\u001b[0;33m 958867 ns 951371 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_median \u001b[m\u001b[0;33m 959321 ns 951939 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=128\u001b[m model_cost=1.70394M\u001b[m output_rows=16.384k\u001b[m plan_cost=1.72954M\u001b[m rhs_rows=128\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_stddev \u001b[m\u001b[0;33m 18581 ns 18282 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/128/128/real_time_cv \u001b[m\u001b[0;33m 1.94 % 1.92 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_mean \u001b[m\u001b[0;33m 5563806 ns 5491910 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_median \u001b[m\u001b[0;33m 5620555 ns 5545799 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=256\u001b[m model_cost=6.81574M\u001b[m output_rows=65.536k\u001b[m plan_cost=6.86694M\u001b[m rhs_rows=256\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_stddev \u001b[m\u001b[0;33m 457987 ns 448836 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/256/256/real_time_cv \u001b[m\u001b[0;33m 8.23 % 8.17 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_mean \u001b[m\u001b[0;33m 26439028 ns 26166619 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_median \u001b[m\u001b[0;33m 26442389 ns 26176889 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=512\u001b[m model_cost=27.263M\u001b[m output_rows=262.144k\u001b[m plan_cost=27.3654M\u001b[m rhs_rows=512\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_stddev \u001b[m\u001b[0;33m 405176 ns 377192 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/512/512/real_time_cv \u001b[m\u001b[0;33m 1.53 % 1.44 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_mean \u001b[m\u001b[0;33m 125006665 ns 123963251 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_median \u001b[m\u001b[0;33m 126435572 ns 125317023 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.024k\u001b[m model_cost=109.052M\u001b[m output_rows=1.04858M\u001b[m plan_cost=109.257M\u001b[m rhs_rows=1.024k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_stddev \u001b[m\u001b[0;33m 2622394 ns 2620609 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCost/NestedLoopCrossJoin/1024/1024/real_time_cv \u001b[m\u001b[0;33m 2.10 % 2.11 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m" - ] - } - ], + "outputs": [], "source": [ "!cd .. && timeout 300s ./build-release/bin/benchmarks --benchmark_filter='^OperatorCost/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/operator-cost.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "bcfd11fc", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2026-06-09T23:49:41+03:00\n", - "Running ./build-release/bin/benchmarks\n", - "Run on (8 X 4200 MHz CPU s)\n", - "CPU Caches:\n", - " L1 Data 48 KiB (x4)\n", - " L1 Instruction 32 KiB (x4)\n", - " L2 Unified 1280 KiB (x4)\n", - " L3 Unified 8192 KiB (x1)\n", - "Load Average: 2.21, 1.41, 1.15\n", - "***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.\n", - "------------------------------------------------------------------------------------------------------------------------------------------------\n", - "Benchmark Time CPU Iterations UserCounters...\n", - "------------------------------------------------------------------------------------------------------------------------------------------------\n", - "\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_mean \u001b[m\u001b[0;33m 316342 ns 313634 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_median \u001b[m\u001b[0;33m 317098 ns 314269 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=6.4k\u001b[m plan_cost=640k\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_stddev \u001b[m\u001b[0;33m 2952 ns 3126 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/SeqScan/6400/real_time_cv \u001b[m\u001b[0;33m 0.93 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_mean \u001b[m\u001b[0;33m 410811 ns 409047 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_median \u001b[m\u001b[0;33m 402156 ns 400612 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640k\u001b[m output_rows=3.328k\u001b[m plan_cost=1.28M\u001b[m rows=6.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_stddev \u001b[m\u001b[0;33m 15061 ns 14626 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Filter/6400/real_time_cv \u001b[m\u001b[0;33m 3.67 % 3.58 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_mean \u001b[m\u001b[0;33m 3125994 ns 3104770 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_median \u001b[m\u001b[0;33m 3137797 ns 3116535 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.002k\u001b[m output_rows=29.091k\u001b[m plan_cost=3.5491M\u001b[m rows=29.091k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_stddev \u001b[m\u001b[0;33m 26115 ns 26160 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Projection/29091/real_time_cv \u001b[m\u001b[0;33m 0.84 % 0.84 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_mean \u001b[m\u001b[0;33m 701764 ns 698672 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_median \u001b[m\u001b[0;33m 699974 ns 696724 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.068k\u001b[m output_rows=4.476k\u001b[m plan_cost=1.08767M\u001b[m rows=4.476k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_stddev \u001b[m\u001b[0;33m 3525 ns 3485 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Sort/4476/real_time_cv \u001b[m\u001b[0;33m 0.50 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_mean \u001b[m\u001b[0;33m 349396 ns 348160 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_median \u001b[m\u001b[0;33m 351086 ns 349758 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=640.05k\u001b[m output_rows=1.255k\u001b[m plan_cost=765.55k\u001b[m rows=1.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_stddev \u001b[m\u001b[0;33m 3908 ns 3846 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/Aggregation/1255/real_time_cv \u001b[m\u001b[0;33m 1.12 % 1.10 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_mean \u001b[m\u001b[0;33m 250126 ns 249104 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_median \u001b[m\u001b[0;33m 249492 ns 248365 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=1.62k\u001b[m model_cost=639.9k\u001b[m output_rows=1.62k\u001b[m plan_cost=963.9k\u001b[m rhs_rows=1.62k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_stddev \u001b[m\u001b[0;33m 2392 ns 2313 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/HashJoin/1620/1620/real_time_cv \u001b[m\u001b[0;33m 0.96 % 0.93 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_mean \u001b[m\u001b[0;33m 668448 ns 665227 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_median \u001b[m\u001b[0;33m 666944 ns 663827 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=96\u001b[m model_cost=645.12k\u001b[m output_rows=96\u001b[m plan_cost=664.32k\u001b[m rhs_rows=96\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_stddev \u001b[m\u001b[0;33m 3379 ns 3351 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopJoin/96/96/real_time_cv \u001b[m\u001b[0;33m 0.51 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_mean \u001b[m\u001b[0;33m 401858 ns 399119 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_median \u001b[m\u001b[0;33m 396831 ns 394275 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=78\u001b[m model_cost=632.736k\u001b[m output_rows=6.084k\u001b[m plan_cost=648.336k\u001b[m rhs_rows=78\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_stddev \u001b[m\u001b[0;33m 9520 ns 9122 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:640000/NestedLoopCrossJoin/78/78/real_time_cv \u001b[m\u001b[0;33m 2.37 % 2.29 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_mean \u001b[m\u001b[0;33m 344957 ns 343365 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_median \u001b[m\u001b[0;33m 344845 ns 343551 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=10k\u001b[m plan_cost=1M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_stddev \u001b[m\u001b[0;33m 627 ns 873 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/SeqScan/10000/real_time_cv \u001b[m\u001b[0;33m 0.18 % 0.25 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_mean \u001b[m\u001b[0;33m 639288 ns 636139 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_median \u001b[m\u001b[0;33m 641247 ns 638152 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1M\u001b[m output_rows=5.12k\u001b[m plan_cost=2M\u001b[m rows=10k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_stddev \u001b[m\u001b[0;33m 5981 ns 5665 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Filter/10000/real_time_cv \u001b[m\u001b[0;33m 0.94 % 0.89 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_mean \u001b[m\u001b[0;33m 4977023 ns 4946997 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_median \u001b[m\u001b[0;33m 4972650 ns 4944757 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00001M\u001b[m output_rows=45.455k\u001b[m plan_cost=5.54551M\u001b[m rows=45.455k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_stddev \u001b[m\u001b[0;33m 23603 ns 25476 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Projection/45455/real_time_cv \u001b[m\u001b[0;33m 0.47 % 0.51 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_mean \u001b[m\u001b[0;33m 1141130 ns 1136359 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_median \u001b[m\u001b[0;33m 1136818 ns 1132508 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.999999M\u001b[m output_rows=6.993k\u001b[m plan_cost=1.6993M\u001b[m rows=6.993k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_stddev \u001b[m\u001b[0;33m 9853 ns 9369 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Sort/6993/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.82 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_mean \u001b[m\u001b[0;33m 528994 ns 527024 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_median \u001b[m\u001b[0;33m 529591 ns 527675 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=1.00011M\u001b[m output_rows=1.961k\u001b[m plan_cost=1.19621M\u001b[m rows=1.961k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_stddev \u001b[m\u001b[0;33m 2349 ns 2195 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/Aggregation/1961/real_time_cv \u001b[m\u001b[0;33m 0.44 % 0.42 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_mean \u001b[m\u001b[0;33m 398480 ns 396620 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_median \u001b[m\u001b[0;33m 393039 ns 391403 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=2.532k\u001b[m model_cost=1.00014M\u001b[m output_rows=2.532k\u001b[m plan_cost=1.50654M\u001b[m rhs_rows=2.532k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_stddev \u001b[m\u001b[0;33m 14227 ns 13787 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/HashJoin/2532/2532/real_time_cv \u001b[m\u001b[0;33m 3.57 % 3.48 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_mean \u001b[m\u001b[0;33m 988039 ns 983092 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_median \u001b[m\u001b[0;33m 984337 ns 979219 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=120\u001b[m model_cost=1.008M\u001b[m output_rows=120\u001b[m plan_cost=1.032M\u001b[m rhs_rows=120\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_stddev \u001b[m\u001b[0;33m 18469 ns 18091 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopJoin/120/120/real_time_cv \u001b[m\u001b[0;33m 1.87 % 1.84 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_mean \u001b[m\u001b[0;33m 576046 ns 572361 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_median \u001b[m\u001b[0;33m 575840 ns 571979 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=98\u001b[m model_cost=998.816k\u001b[m output_rows=9.604k\u001b[m plan_cost=1.01842M\u001b[m rhs_rows=98\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_stddev \u001b[m\u001b[0;33m 1501 ns 1458 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:1000000/NestedLoopCrossJoin/98/98/real_time_cv \u001b[m\u001b[0;33m 0.26 % 0.25 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_mean \u001b[m\u001b[0;33m 1237620 ns 1228930 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_median \u001b[m\u001b[0;33m 1199173 ns 1191634 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=32.4k\u001b[m plan_cost=3.24M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_stddev \u001b[m\u001b[0;33m 78181 ns 76723 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/SeqScan/32400/real_time_cv \u001b[m\u001b[0;33m 6.32 % 6.24 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_mean \u001b[m\u001b[0;33m 2123351 ns 2112531 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_median \u001b[m\u001b[0;33m 2125920 ns 2114863 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24M\u001b[m output_rows=16.384k\u001b[m plan_cost=6.48M\u001b[m rows=32.4k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_stddev \u001b[m\u001b[0;33m 18255 ns 16526 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Filter/32400/real_time_cv \u001b[m\u001b[0;33m 0.86 % 0.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_mean \u001b[m\u001b[0;33m 19539424 ns 19390815 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_median \u001b[m\u001b[0;33m 19513198 ns 19372676 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24001M\u001b[m output_rows=147.273k\u001b[m plan_cost=17.9673M\u001b[m rows=147.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_stddev \u001b[m\u001b[0;33m 443369 ns 422122 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Projection/147273/real_time_cv \u001b[m\u001b[0;33m 2.27 % 2.18 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_mean \u001b[m\u001b[0;33m 4003506 ns 3985189 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_median \u001b[m\u001b[0;33m 3993834 ns 3973445 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.23994M\u001b[m output_rows=19.636k\u001b[m plan_cost=5.20354M\u001b[m rows=19.636k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_stddev \u001b[m\u001b[0;33m 36678 ns 37672 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Sort/19636/real_time_cv \u001b[m\u001b[0;33m 0.92 % 0.95 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_mean \u001b[m\u001b[0;33m 1891951 ns 1881946 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_median \u001b[m\u001b[0;33m 1864059 ns 1855129 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=3.24003M\u001b[m output_rows=6.353k\u001b[m plan_cost=3.87533M\u001b[m rows=6.353k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_stddev \u001b[m\u001b[0;33m 79166 ns 76712 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/Aggregation/6353/real_time_cv \u001b[m\u001b[0;33m 4.18 % 4.08 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_mean \u001b[m\u001b[0;33m 1296747 ns 1289704 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_median \u001b[m\u001b[0;33m 1290494 ns 1283508 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=8.203k\u001b[m model_cost=3.24018M\u001b[m output_rows=8.203k\u001b[m plan_cost=4.88078M\u001b[m rhs_rows=8.203k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_stddev \u001b[m\u001b[0;33m 15252 ns 15284 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/HashJoin/8203/8203/real_time_cv \u001b[m\u001b[0;33m 1.18 % 1.19 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_mean \u001b[m\u001b[0;33m 3015413 ns 2998763 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_median \u001b[m\u001b[0;33m 2948122 ns 2933215 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=215\u001b[m model_cost=3.23575M\u001b[m output_rows=215\u001b[m plan_cost=3.27875M\u001b[m rhs_rows=215\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_stddev \u001b[m\u001b[0;33m 134096 ns 129989 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopJoin/215/215/real_time_cv \u001b[m\u001b[0;33m 4.45 % 4.33 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_mean \u001b[m\u001b[0;33m 1969269 ns 1950102 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_median \u001b[m\u001b[0;33m 1974125 ns 1956105 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=177\u001b[m model_cost=3.25822M\u001b[m output_rows=31.329k\u001b[m plan_cost=3.29362M\u001b[m rhs_rows=177\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_stddev \u001b[m\u001b[0;33m 10036 ns 10656 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:3240000/NestedLoopCrossJoin/177/177/real_time_cv \u001b[m\u001b[0;33m 0.51 % 0.55 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_mean \u001b[m\u001b[0;33m 3823546 ns 3788256 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_median \u001b[m\u001b[0;33m 3771835 ns 3738111 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=67.6k\u001b[m plan_cost=6.76M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_stddev \u001b[m\u001b[0;33m 138085 ns 136090 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/SeqScan/67600/real_time_cv \u001b[m\u001b[0;33m 3.61 % 3.59 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_mean \u001b[m\u001b[0;33m 5038810 ns 5006184 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_median \u001b[m\u001b[0;33m 4977493 ns 4945750 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76M\u001b[m output_rows=33.808k\u001b[m plan_cost=13.52M\u001b[m rows=67.6k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_stddev \u001b[m\u001b[0;33m 229683 ns 228503 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Filter/67600/real_time_cv \u001b[m\u001b[0;33m 4.56 % 4.56 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_mean \u001b[m\u001b[0;33m 40927066 ns 40634020 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_median \u001b[m\u001b[0;33m 40860570 ns 40567388 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76001M\u001b[m output_rows=307.273k\u001b[m plan_cost=37.4873M\u001b[m rows=307.273k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_stddev \u001b[m\u001b[0;33m 758964 ns 753831 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Projection/307273/real_time_cv \u001b[m\u001b[0;33m 1.85 % 1.86 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_mean \u001b[m\u001b[0;33m 10002418 ns 9938893 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_median \u001b[m\u001b[0;33m 9986793 ns 9928882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.75998M\u001b[m output_rows=38.409k\u001b[m plan_cost=10.6009M\u001b[m rows=38.409k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_stddev \u001b[m\u001b[0;33m 184919 ns 176850 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Sort/38409/real_time_cv \u001b[m\u001b[0;33m 1.85 % 1.78 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_mean \u001b[m\u001b[0;33m 4512331 ns 4483187 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_median \u001b[m\u001b[0;33m 4517228 ns 4488908 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=6.76005M\u001b[m output_rows=13.255k\u001b[m plan_cost=8.08555M\u001b[m rows=13.255k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_stddev \u001b[m\u001b[0;33m 242531 ns 238082 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/Aggregation/13255/real_time_cv \u001b[m\u001b[0;33m 5.37 % 5.31 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_mean \u001b[m\u001b[0;33m 3195742 ns 3168838 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_median \u001b[m\u001b[0;33m 3199407 ns 3171066 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=17.114k\u001b[m model_cost=6.76003M\u001b[m output_rows=17.114k\u001b[m plan_cost=10.1828M\u001b[m rhs_rows=17.114k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_stddev \u001b[m\u001b[0;33m 92711 ns 91091 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/HashJoin/17114/17114/real_time_cv \u001b[m\u001b[0;33m 2.90 % 2.87 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_mean \u001b[m\u001b[0;33m 6023061 ns 5995465 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_median \u001b[m\u001b[0;33m 6061931 ns 6032607 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=311\u001b[m model_cost=6.77047M\u001b[m output_rows=311\u001b[m plan_cost=6.83267M\u001b[m rhs_rows=311\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_stddev \u001b[m\u001b[0;33m 129421 ns 129301 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopJoin/311/311/real_time_cv \u001b[m\u001b[0;33m 2.15 % 2.16 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_mean \u001b[m\u001b[0;33m 5240152 ns 5179676 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_median \u001b[m\u001b[0;33m 5243997 ns 5177842 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=255\u001b[m model_cost=6.7626M\u001b[m output_rows=65.025k\u001b[m plan_cost=6.8136M\u001b[m rhs_rows=255\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_stddev \u001b[m\u001b[0;33m 364980 ns 356835 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:6760000/NestedLoopCrossJoin/255/255/real_time_cv \u001b[m\u001b[0;33m 6.97 % 6.89 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_mean \u001b[m\u001b[0;33m 6678741 ns 6612679 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_median \u001b[m\u001b[0;33m 6699675 ns 6627888 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=122.5k\u001b[m plan_cost=12.25M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_stddev \u001b[m\u001b[0;33m 65692 ns 66168 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/SeqScan/122500/real_time_cv \u001b[m\u001b[0;33m 0.98 % 1.00 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_mean \u001b[m\u001b[0;33m 9281903 ns 9218854 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_median \u001b[m\u001b[0;33m 9174524 ns 9110491 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=61.44k\u001b[m plan_cost=24.5M\u001b[m rows=122.5k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_stddev \u001b[m\u001b[0;33m 215303 ns 216576 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Filter/122500/real_time_cv \u001b[m\u001b[0;33m 2.32 % 2.35 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_mean \u001b[m\u001b[0;33m 74886058 ns 74388591 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_median \u001b[m\u001b[0;33m 74916742 ns 74404628 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.25M\u001b[m output_rows=556.818k\u001b[m plan_cost=67.9318M\u001b[m rows=556.818k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_stddev \u001b[m\u001b[0;33m 68523 ns 73385 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Projection/556818/real_time_cv \u001b[m\u001b[0;33m 0.09 % 0.10 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_mean \u001b[m\u001b[0;33m 20096736 ns 19977034 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_median \u001b[m\u001b[0;33m 19966628 ns 19853229 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2552M\u001b[m output_rows=65.536k\u001b[m plan_cost=18.8088M\u001b[m rows=65.536k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_stddev \u001b[m\u001b[0;33m 455925 ns 435200 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Sort/65536/real_time_cv \u001b[m\u001b[0;33m 2.27 % 2.18 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_mean \u001b[m\u001b[0;33m 10384281 ns 10310905 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_median \u001b[m\u001b[0;33m 10051196 ns 9984556 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=12.2502M\u001b[m output_rows=24.02k\u001b[m plan_cost=14.6522M\u001b[m rows=24.02k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_stddev \u001b[m\u001b[0;33m 594931 ns 586651 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/Aggregation/24020/real_time_cv \u001b[m\u001b[0;33m 5.73 % 5.69 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_mean \u001b[m\u001b[0;33m 6415603 ns 6363475 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_median \u001b[m\u001b[0;33m 6434016 ns 6382291 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=31.013k\u001b[m model_cost=12.2501M\u001b[m output_rows=31.013k\u001b[m plan_cost=18.4527M\u001b[m rhs_rows=31.013k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_stddev \u001b[m\u001b[0;33m 66815 ns 64167 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/HashJoin/31013/31013/real_time_cv \u001b[m\u001b[0;33m 1.04 % 1.01 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_mean \u001b[m\u001b[0;33m 10091080 ns 10051311 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_median \u001b[m\u001b[0;33m 10123201 ns 10083856 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=418\u001b[m model_cost=12.2307M\u001b[m output_rows=418\u001b[m plan_cost=12.3143M\u001b[m rhs_rows=418\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_stddev \u001b[m\u001b[0;33m 65437 ns 68353 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopJoin/418/418/real_time_cv \u001b[m\u001b[0;33m 0.65 % 0.68 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_mean \u001b[m\u001b[0;33m 10794051 ns 10661406 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_median \u001b[m\u001b[0;33m 10805562 ns 10678400 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=343\u001b[m model_cost=12.2355M\u001b[m output_rows=117.649k\u001b[m plan_cost=12.3041M\u001b[m rhs_rows=343\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_stddev \u001b[m\u001b[0;33m 58571 ns 53030 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:12250000/NestedLoopCrossJoin/343/343/real_time_cv \u001b[m\u001b[0;33m 0.54 % 0.50 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_mean \u001b[m\u001b[0;33m 17073667 ns 16907574 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_median \u001b[m\u001b[0;33m 16767850 ns 16581281 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=260.1k\u001b[m plan_cost=26.01M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_stddev \u001b[m\u001b[0;33m 1427241 ns 1398924 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/SeqScan/260100/real_time_cv \u001b[m\u001b[0;33m 8.36 % 8.27 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_mean \u001b[m\u001b[0;33m 19234040 ns 19127109 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_median \u001b[m\u001b[0;33m 19265841 ns 19167215 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=130.052k\u001b[m plan_cost=52.02M\u001b[m rows=260.1k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_stddev \u001b[m\u001b[0;33m 128928 ns 127286 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Filter/260100/real_time_cv \u001b[m\u001b[0;33m 0.67 % 0.67 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_mean \u001b[m\u001b[0;33m 157051171 ns 155918245 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_median \u001b[m\u001b[0;33m 156611403 ns 155561846 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=1.18227M\u001b[m plan_cost=144.237M\u001b[m rows=1.18227M\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_stddev \u001b[m\u001b[0;33m 1135507 ns 1133326 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Projection/1182273/real_time_cv \u001b[m\u001b[0;33m 0.72 % 0.73 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_mean \u001b[m\u001b[0;33m 60817722 ns 60398176 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_median \u001b[m\u001b[0;33m 61052310 ns 60624938 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.0101M\u001b[m output_rows=131.364k\u001b[m plan_cost=39.1465M\u001b[m rows=131.364k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_stddev \u001b[m\u001b[0;33m 1963798 ns 1937882 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Sort/131364/real_time_cv \u001b[m\u001b[0;33m 3.23 % 3.21 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_mean \u001b[m\u001b[0;33m 35574296 ns 35336538 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_median \u001b[m\u001b[0;33m 34202010 ns 33985413 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=26.01M\u001b[m output_rows=51k\u001b[m plan_cost=31.11M\u001b[m rows=51k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_stddev \u001b[m\u001b[0;33m 2962023 ns 2918702 ns \u001b[m\u001b[0;36m 3\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/Aggregation/51000/real_time_cv \u001b[m\u001b[0;33m 8.33 % 8.26 % \u001b[m\u001b[0;36m 3\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_mean \u001b[m\u001b[0;33m 16676661 ns 16546743 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_median \u001b[m\u001b[0;33m 16172905 ns 16059889 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=65.848k\u001b[m model_cost=26.01M\u001b[m output_rows=65.848k\u001b[m plan_cost=39.1796M\u001b[m rhs_rows=65.848k\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_stddev \u001b[m\u001b[0;33m 875878 ns 864388 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/HashJoin/65848/65848/real_time_cv \u001b[m\u001b[0;33m 5.25 % 5.22 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_mean \u001b[m\u001b[0;33m 21875298 ns 21785712 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_median \u001b[m\u001b[0;33m 21873879 ns 21796083 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=610\u001b[m model_cost=26.047M\u001b[m output_rows=610\u001b[m plan_cost=26.169M\u001b[m rhs_rows=610\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_stddev \u001b[m\u001b[0;33m 190499 ns 184831 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopJoin/610/610/real_time_cv \u001b[m\u001b[0;33m 0.87 % 0.85 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_mean \u001b[m\u001b[0;33m 23857713 ns 23609004 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_median \u001b[m\u001b[0;33m 23866731 ns 23617933 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=500\u001b[m model_cost=26M\u001b[m output_rows=250k\u001b[m plan_cost=26.1M\u001b[m rhs_rows=500\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_stddev \u001b[m\u001b[0;33m 168299 ns 160750 ns \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0\u001b[m model_cost=0\u001b[m output_rows=0\u001b[m plan_cost=0\u001b[m rhs_rows=0\u001b[m\n", - "\u001b[m\u001b[0;32mOperatorCostMatched/target_cost:26010000/NestedLoopCrossJoin/500/500/real_time_cv \u001b[m\u001b[0;33m 0.71 % 0.68 % \u001b[m\u001b[0;36m 3\u001b[m lhs_rows=0.00%\u001b[m model_cost=0.00%\u001b[m output_rows=0.00%\u001b[m plan_cost=0.00%\u001b[m rhs_rows=0.00%\u001b[m\n", - "\u001b[m" - ] - } - ], + "outputs": [], "source": [ "!cd .. && timeout 300s ./build-release/bin/benchmarks --benchmark_filter='^OperatorCostMatched/' --benchmark_repetitions=3 --benchmark_display_aggregates_only=true --benchmark_out=research/benchmark-results/operator-cost-matched.json --benchmark_out_format=json" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "b16b9fb4", "metadata": {}, "outputs": [], @@ -752,74 +159,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "d3172304", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "( executor query mode \\\n", - " 0 InterpretedExpressionExecutor kSimpleSelectSmall Naive \n", - " 1 InterpretedExpressionExecutor kSimpleSelectSmall Optimized \n", - " 2 CachedJitCompiledExpressionExecutor kSimpleSelectSmall Naive \n", - " 3 CachedJitCompiledExpressionExecutor kSimpleSelectSmall Optimized \n", - " 4 InterpretedExpressionExecutor kJoinSmall Naive \n", - " 5 InterpretedExpressionExecutor kJoinSmall Optimized \n", - " 6 CachedJitCompiledExpressionExecutor kJoinSmall Naive \n", - " 7 CachedJitCompiledExpressionExecutor kJoinSmall Optimized \n", - " 8 InterpretedExpressionExecutor kComplex5 Naive \n", - " 9 InterpretedExpressionExecutor kComplex5 Optimized \n", - " 10 CachedJitCompiledExpressionExecutor kComplex5 Naive \n", - " 11 CachedJitCompiledExpressionExecutor kComplex5 Optimized \n", - " \n", - " time_ms \n", - " 0 0.019715 \n", - " 1 0.019566 \n", - " 2 0.019754 \n", - " 3 0.019804 \n", - " 4 0.070585 \n", - " 5 0.043139 \n", - " 6 0.068980 \n", - " 7 0.044213 \n", - " 8 0.090198 \n", - " 9 0.096809 \n", - " 10 0.095552 \n", - " 11 0.087877 ,\n", - " query executor mode time_ms\n", - " 0 q2.1 Interpreted Naive 10.529208\n", - " 1 q2.1 Interpreted Optimized 11.087104\n", - " 2 q1.3 Interpreted Naive 8.696587\n", - " 3 q1.3 Interpreted Optimized 8.481006\n", - " 4 q1.2 Interpreted Naive 10.591798\n", - " 5 q1.2 Interpreted Optimized 8.042493\n", - " 6 q3.3 Interpreted Naive 41.079134\n", - " 7 q3.3 Interpreted Optimized 6.184696\n", - " 8 q3.4 Interpreted Naive 39.726018\n", - " 9 q3.4 Interpreted Optimized 6.226768\n", - " 10 q4.3 Interpreted Naive 10.159185\n", - " 11 q4.3 Interpreted Optimized 6.886022\n", - " 12 q1.1 Interpreted Naive 8.560502\n", - " 13 q1.1 Interpreted Optimized 7.188918\n", - " 14 q3.2 Interpreted Naive 38.735087\n", - " 15 q3.2 Interpreted Optimized 6.717959\n", - " 16 q2.2 Interpreted Naive 9.318865\n", - " 17 q2.2 Interpreted Optimized 6.690732\n", - " 18 q3.1 Interpreted Naive 38.097914\n", - " 19 q3.1 Interpreted Optimized 6.528813\n", - " 20 q4.2 Interpreted Naive 10.061357\n", - " 21 q4.2 Interpreted Optimized 11.892791\n", - " 22 q4.1 Interpreted Naive 9.553308\n", - " 23 q4.1 Interpreted Optimized 13.055569\n", - " 24 q2.3 Interpreted Naive 9.503878\n", - " 25 q2.3 Interpreted Optimized 6.292484)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "synthetic_pattern = re.compile(\n", " r\"BM_SQL<(?P[^,]+), (?P[^,]+), PlannerMode::k(?P[^>]+)>/real_time_mean\"\n", @@ -841,83 +184,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "f4e060f2", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "( operator input_rows model_cost time_ms\n", - " 0 SeqScan 1024 102400.0 0.039153\n", - " 1 SeqScan 2048 204800.0 0.072348\n", - " 2 SeqScan 4096 409600.0 0.158147\n", - " 3 SeqScan 8192 819200.0 0.358960\n", - " 4 SeqScan 16384 1638400.0 0.797004\n", - " .. ... ... ... ...\n", - " 59 NestedLoopCrossJoin 64 425984.0 0.301369\n", - " 60 NestedLoopCrossJoin 128 1703936.0 0.958867\n", - " 61 NestedLoopCrossJoin 256 6815744.0 5.563806\n", - " 62 NestedLoopCrossJoin 512 27262976.0 26.439028\n", - " 63 NestedLoopCrossJoin 1024 109051904.0 125.006665\n", - " \n", - " [64 rows x 4 columns],\n", - " target_cost operator input_rows model_cost time_ms\n", - " 0 640000 SeqScan 6400 640000.0 0.316342\n", - " 1 640000 Filter 6400 640000.0 0.410811\n", - " 2 640000 Projection 29091 640002.0 3.125994\n", - " 3 640000 Sort 4476 640068.0 0.701764\n", - " 4 640000 Aggregation 1255 640050.0 0.349396\n", - " 5 640000 HashJoin 1620 639900.0 0.250126\n", - " 6 640000 NestedLoopJoin 96 645120.0 0.668448\n", - " 7 640000 NestedLoopCrossJoin 78 632736.0 0.401858\n", - " 8 1000000 SeqScan 10000 1000000.0 0.344957\n", - " 9 1000000 Filter 10000 1000000.0 0.639288\n", - " 10 1000000 Projection 45455 1000010.0 4.977023\n", - " 11 1000000 Sort 6993 999999.0 1.141130\n", - " 12 1000000 Aggregation 1961 1000110.0 0.528994\n", - " 13 1000000 HashJoin 2532 1000140.0 0.398480\n", - " 14 1000000 NestedLoopJoin 120 1008000.0 0.988039\n", - " 15 1000000 NestedLoopCrossJoin 98 998816.0 0.576046\n", - " 16 3240000 SeqScan 32400 3240000.0 1.237620\n", - " 17 3240000 Filter 32400 3240000.0 2.123351\n", - " 18 3240000 Projection 147273 3240006.0 19.539424\n", - " 19 3240000 Sort 19636 3239940.0 4.003506\n", - " 20 3240000 Aggregation 6353 3240030.0 1.891951\n", - " 21 3240000 HashJoin 8203 3240185.0 1.296747\n", - " 22 3240000 NestedLoopJoin 215 3235750.0 3.015413\n", - " 23 3240000 NestedLoopCrossJoin 177 3258216.0 1.969269\n", - " 24 6760000 SeqScan 67600 6760000.0 3.823546\n", - " 25 6760000 Filter 67600 6760000.0 5.038810\n", - " 26 6760000 Projection 307273 6760006.0 40.927066\n", - " 27 6760000 Sort 38409 6759984.0 10.002418\n", - " 28 6760000 Aggregation 13255 6760050.0 4.512331\n", - " 29 6760000 HashJoin 17114 6760030.0 3.195742\n", - " 30 6760000 NestedLoopJoin 311 6770470.0 6.023061\n", - " 31 6760000 NestedLoopCrossJoin 255 6762600.0 5.240152\n", - " 32 12250000 SeqScan 122500 12250000.0 6.678741\n", - " 33 12250000 Filter 122500 12250000.0 9.281903\n", - " 34 12250000 Projection 556818 12249996.0 74.886058\n", - " 35 12250000 Sort 65536 12255232.0 20.096736\n", - " 36 12250000 Aggregation 24020 12250200.0 10.384281\n", - " 37 12250000 HashJoin 31013 12250135.0 6.415603\n", - " 38 12250000 NestedLoopJoin 418 12230680.0 10.091080\n", - " 39 12250000 NestedLoopCrossJoin 343 12235496.0 10.794051\n", - " 40 26010000 SeqScan 260100 26010000.0 17.073667\n", - " 41 26010000 Filter 260100 26010000.0 19.234040\n", - " 42 26010000 Projection 1182273 26010006.0 157.051171\n", - " 43 26010000 Sort 131364 26010072.0 60.817722\n", - " 44 26010000 Aggregation 51000 26010000.0 35.574296\n", - " 45 26010000 HashJoin 65848 26009960.0 16.676661\n", - " 46 26010000 NestedLoopJoin 610 26047000.0 21.875298\n", - " 47 26010000 NestedLoopCrossJoin 500 26000000.0 23.857713)" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "operator = []\n", "for row in mean_rows(\"operator-cost.json\"):\n", @@ -947,21 +217,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "2075a20f", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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G88++6x1LPN9upmMjAzj6tWrRkxMjCHJ+Pnnn637evbsecOf9zZt2hgVK1a0bmfnvbuRU6dOGZKMCRMmZNn3ww8/GKVLlzYkGZIMX19f47HHHjPmzZtn85oNwzDGjBljeHh4WI8NCQkx+vXrZ/NaDON/94l/Pzw9PW96L1q/fr0hyVi9erXdrw8AAJgHM20BAIApeHh46O2339auXbv0xRdf3PS4PXv2qF27dvL395erq6vc3d3Vo0cPpaena//+/Td9nr+/v9q2bau5c+da14xMSkrS119/rR49esjN7fpS/ytWrFDBggXVtm1bXbt2zfqoVauWAgMDs/ya+b+lpKTotddeU/ny5eXm5iY3Nzf5+Pjo4sWL2rdvX5bj27VrZ7Ndo0YNSbIup7Bx40ZJUrdu3WyOe+qpp6w138p3332n/Pnz64knnrAZz1xG4N+zOR955BEFBARYt11dXdW5c2cdPHhQx44du+31bqZZs2bKnz+/dbty5cqSpIiICFkslizj/15O4mb27dundu3aqVGjRvr000+t58puH+/2/c3UqVMneXl5Wbd9fX3Vtm1bbd68Wenp6TbH3qjnV65cUWJioqTrvx7/8ssva8WKFTp69Kik6zPM16xZo/79+1tf44MPPqhz586pS5cu+vrrr284k/vf9u/fr0OHDqlv37429f7btWvXNG7cOFWpUkUeHh5yc3OTh4eHDhw4cMOf4+zq2rWrTb+Dg4PVqFEjax9u5q+//lLXrl0VGBho/XvftGlTScpSj8ViyTIDt0aNGjY/U3fy3kmyLl1SrFixLPvq1aungwcPas2aNRoxYoQaNmyoDRs2qEePHmrXrp3NzNs333xTR48e1aeffqoXXnhBPj4++vDDD1WnTh0tXLgwy7nnzZun2NhYxcbGavXq1erZs6deeuklTZ8+PcuxmbUdP348W68JAACYE6EtAAAwjaefflq1a9fWyJEjs6xRK0lHjx5V48aNdfz4cU2bNk3ff/+9YmNjNWPGDEm67dIFffr00fHjx7V+/XpJ0sKFC5WammqzDuqpU6d07tw563qR/3wkJCTcNtzp2rWrpk+frmeffVZr167VDz/8oNjYWBUtWvSG9fn7+9tse3p62ryWzF+dDgwMtDnOzc0ty3Nv5MyZMwoMDLQJyqTrwY6bm1uWX83+93X+OZadX+O+mcKFC9tse3h43HL8ypUrtz3niRMn1Lp1a5UsWVJLly61PlfKfh/v9v3NdLP3LS0tTSkpKTbjt+u5dP1n1dvb27o26YwZM+Tt7a0+ffpYj+nevbs+/fRTHTlyRI8//riKFSum+vXrW3++byRzPd+SJUve8vVERkbqzTffVIcOHfTf//5XO3fuVGxsrGrWrHnbv2e3crP36VY/WykpKWrcuLF27typt99+W5s2bVJsbKyWLl0qKevf+3z58mUJpD09PW1+pu7kvfvntW4WeLu7u6tVq1YaO3as1q5dq/j4eIWFhWnFihVavXq1zbEBAQHq3bu3PvzwQ+3du1cxMTHy8PDQoEGDspy3cuXKqlu3rurWravWrVvro48+UsuWLTVs2LAsyyBk1nY3fQIAAI6X/ekDAAAAucxisWjixIkKDw/P8g3skrR8+XJdvHhRS5cuVXBwsHX8p59+ytb5W7VqpeLFiys6OlqtWrVSdHS06tevrypVqliPyfxCsH9+M/w/+fr63vT858+f14oVKzRq1Ci9/vrr1vHU1FSdPXs2WzX+W2bAl5CQoBIlSljHr127lq0Q1d/fXzt37pRhGDbBbWJioq5du6YiRYrYHJ+QkJDlHJlj9oSYuS05OVlt2rRRRkaGVq1aJT8/P5v92e3j3b6/mW72vnl4eMjHxyfb58nk5+ennj17avbs2XrllVcUHR2trl27qmDBgjbH9e7dW71799bFixe1efNmjRo1So899pj2799v83ckU9GiRSXptrOmP//8c/Xo0cO6fnGm06dPZ6nBHjd7n271s/Xdd9/pxIkT2rRpk3V2raS7XrPV3vdOkvXvS3b/Pvv7+2vw4MHatGmTfv31V7Vp0+amxzZp0kQtW7bU8uXLlZiYeMPZvP9Uo0YNrV27Vvv379eDDz5oHc+s7d9/twEAwL2FmbYAAMBUWrRoofDwcI0ZMybLDMXM0DFzZqIkGYahjz/+OFvndnV1Vffu3bV8+XJ9//332rVrl83MRUl67LHHdObMGaWnp1tntv3zUbFixZue32KxyDAMm/okafbs2Vl+RT67wsLCJEnz58+3Gf/iiy907dq12z7/kUceUUpKipYvX24zPm/ePOv+f9qwYYPNF1Klp6dr8eLFKleunHV25o1mhualtLQ0dezYUYcPH9bq1atvOGs0u3282/c309KlS21mcl64cEH//e9/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0aOSpIEDB2rChAl2nWv8+PGqV6+efH19VaxYMXXo0EF//vmnzTG9evWSxWKxeTRo0MDesgEAAAAAAADgnmB3aDt8+HD9/PPP2rRpk7y8vKzjLVq00OLFi+06V0xMjF566SXt2LFD69ev17Vr19SyZUtdvHjR5rjWrVvr5MmT1seqVavsLRsAAAAAAAAA7gl2r2m7fPlyLV68WA0aNJDFYrGOV6lSRYcOHbLrXGvWrLHZjo6OVrFixbR7926bLzPz9PRUYGCgvaUCAAAAAAAAwD3H7pm2f//9t4oVK5Zl/OLFizYh7p04f/68JKlw4cI245s2bVKxYsUUGhqq5557TomJiTc9R2pqqpKTk20eAAAAAAAAAHCvsDu0rVevnlauXGndzgxqP/74YzVs2PCOCzEMQ5GRkXr44YdVrVo163hERITmz5+v7777TpMnT1ZsbKyaN2+u1NTUG55n/Pjx8vPzsz5KlSp1xzUBAAAAAAAAQF6ze3mE8ePHq3Xr1vr999917do1TZs2Tb/99pu2b9+umJiYOy7k5Zdf1t69e7Vlyxab8c6dO1v/XK1aNdWtW1fBwcFauXKlOnXqlOU8w4cPV2RkpHU7OTmZ4BYAAAAAAADAPcPumbaNGjXS1q1bdenSJZUrV07r1q1TQECAtm/frjp16txREQMGDNA333yjjRs3qmTJkrc8NigoSMHBwTpw4MAN93t6eqpAgQI2DwAAAAAAAAC4V9g901aSqlevrrlz5971xQ3D0IABA7Rs2TJt2rRJISEht33OmTNnFB8fr6CgoLu+PgAAAAAAAACYzR2FtpKUmJioxMREZWRk2IzXqFEj2+d46aWXtGDBAn399dfy9fVVQkKCJMnPz0/e3t5KSUlRVFSUHn/8cQUFBenw4cMaMWKEihQpoo4dO95p6QAAAAAAAABgWnaHtrt371bPnj21b98+GYZhs89isSg9PT3b55o5c6YkKSwszGY8OjpavXr1kqurq3755RfNmzdP586dU1BQkJo1a6bFixfL19fX3tIBAAAAAAAAwPTsDm179+6t0NBQffLJJwoICJDFYrnji/879P03b29vrV279o7PDwAAAAAAAAD3GrtD27i4OC1dulTly5fPjXoAAAAAAAAAwKm52PuERx55RD///HNu1AIAAAAAAAAATs/umbazZ89Wz5499euvv6patWpy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", - "text/plain": [ - "

7NLbw;em|iC} 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 literal 0 HcmV?d00001 diff --git a/report/thesis.tex b/report/thesis.tex index c49cc15..2d54d16 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -347,7 +347,7 @@ \section{Цель оптимизатора} \begin{Example} Ассоциативность соединения: \[ - (R \bowtie S) \bowtie T = R \bowtie (S \bowtie T). + (R \bowtie S) \bowtie T \equiv R \bowtie (S \bowtie T). \] \end{Example} From ca605f4a94f44c14cfb75b97229790653c9404eb Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Tue, 5 May 2026 20:43:37 +0300 Subject: [PATCH 016/120] Wip --- flake.nix | 5 +- report/biblio.bib | 125 +++++++++-------- report/cascades.dot | 27 ++++ report/cascades.pdf | Bin 0 -> 16363 bytes report/thesis.tex | 329 ++++++++++++++++++++++++++++++++------------ 5 files changed, 340 insertions(+), 146 deletions(-) create mode 100644 report/cascades.dot create mode 100644 report/cascades.pdf diff --git a/flake.nix b/flake.nix index da6ce7d..2e59869 100644 --- a/flake.nix +++ b/flake.nix @@ -55,10 +55,11 @@ perl tex plantuml - inkscape + inkscape llvmPackages_21.llvm llvmPackages_21.llvm.dev - nodejs_20 + nodejs_20 + graphviz ]; nativeBuildInputs = [ diff --git a/report/biblio.bib b/report/biblio.bib index edb22c7..91f4984 100644 --- a/report/biblio.bib +++ b/report/biblio.bib @@ -1,70 +1,85 @@ - -@misc{DBReport, -title = {Исследование рынка СУБД}, -url = {https://www.mordorintelligence.com/industry-reports/database-market}, -language = {english}, -note = {(дата обращения: 17.01.2026)} +@inproceedings{Selinger1979, + author = {Selinger, P. Griffiths and Astrahan, M. M. and Chamberlin, D. D. and Lorie, R. A. and Price, T. G.}, + title = {Access path selection in a relational database management system}, + booktitle = {Proceedings of the 1979 ACM SIGMOD International Conference on Management of Data}, + series = {SIGMOD '79}, + pages = {23--34}, + year = {1979}, + doi = {10.1145/582095.582099}, + language = {english}, + note = {(дата обращения: 01.05.2026)} } -@misc{PostgresDocs, -title = {Документация PostgreSQL}, -url = {https://www.postgresql.org/docs/current/sql-select.html}, -language = {english}, -note = {(дата обращения: 17.01.2026)} +@article{Graefe1995, + author = {Graefe, Goetz}, + title = {The Cascades Framework for Query Optimization}, + journal = {IEEE Data Engineering Bulletin}, + volume = {18}, + number = {3}, + pages = {19--29}, + year = {1995}, + language = {english}, + note = {(дата обращения: 01.05.2026)} } -@misc{PostgresBisonGrammar, -title = {Грамматика PostgreSQL}, -url = {https://github.com/postgres/postgres/blob/master/src/backend/parser/gram.y}, -language = {english}, -note = {(дата обращения: 17.01.2026)} +@inproceedings{GraefeMcKenna1993, + author = {Graefe, Goetz and McKenna, William J.}, + title = {The {Volcano} Optimizer Generator: Extensibility and Efficient Search}, + booktitle = {Proceedings of IEEE 9th International Conference on Data Engineering}, + pages = {209--218}, + year = {1993}, + doi = {10.1109/ICDE.1993.344061}, + language = {english}, + note = {(дата обращения: 01.05.2026)} } -@misc{Antlr4PostgreSQL, -title = {Грамматика PostgreSQL для ANTLR4}, -url = {https://github.com/antlr/grammars-v4/blob/master/sql/postgresql/PostgreSQLParser.g4}, -language = {english}, -note = {(дата обращения: 17.01.2026)} +@article{DingNarasayya2024, + author = {Ding, Bailu and Narasayya, Vivek and Chaudhuri, Surajit}, + title = {Extensible Query Optimizers in Practice}, + journal = {Foundations and Trends in Databases}, + volume = {14}, + number = {3-4}, + pages = {186--402}, + year = {2024}, + doi = {10.1561/1900000077}, + language = {english}, + note = {(дата обращения: 01.05.2026)} } -@book{silberschatz2020database, - title={Database system concepts}, - author={Silberschatz, Abraham and Korth, Henry F and Sudarshan, Shashank and others}, - year={2020}, - publisher={Mcgraw-hill New York}, - language = {english}, - note = {(дата обращения: 17.01.2026)} +@inproceedings{Begoli2018Calcite, + author = {Begoli, Edmon and Camacho-Rodr{\'i}guez, Jes{\'u}s and Hyde, Julian + and Mior, Michael J. and Lemire, Daniel}, + title = {Apache {Calcite}: A foundational framework for optimized query + processing over heterogeneous data sources}, + booktitle = {Proceedings of the 2018 International Conference on Management of Data}, + series = {SIGMOD '18}, + pages = {221--230}, + year = {2018}, + doi = {10.1145/3183713.3190662} } -@inproceedings{pantilimonov2019machine, - title={Machine code caching in postgresql query jit-compiler}, - author={Pantilimonov, Michael and Buchatskiy, Ruben and Zhuykov, Roman and Sharygin, Eugene and Melnik, Dmitry}, - booktitle={2019 Ivannikov Memorial Workshop (IVMEM)}, - pages={18--25}, - year={2019}, - organization={IEEE}, - language = {english}, - note = {(дата обращения: 17.01.2026)} +@inproceedings{ArmbrustCatalyst2015, + author = {Armbrust, Michael and Xin, Reynold S. and Lian, Cheng and Huai, Yin + and Liu, Davies and Bradley, Joseph K. and Meng, Xiangrui and Kaftan, Tomer + and Franklin, Michael J. and Ghodsi, Ali and Zaharia, Matei}, + title = {Spark {SQL}: Relational data processing in {Spark}}, + booktitle = {Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data}, + pages = {1383--1394}, + year = {2015}, + doi = {10.1145/2723372.2742797} } -@book{petrov2019database, - title={Database Internals: A deep dive into how distributed data systems work}, - author={Petrov, Alex}, - year={2019}, - publisher={O'Reilly Media}, - language = {english}, - note = {(дата обращения: 17.01.2026)} +@phdthesis{XuColumbia1998, + author = {Xu, Yongwen}, + title = {Efficiency in the {Columbia} Database Query Optimizer}, + school = {Portland State University}, + year = {1998} } -@article{graefe2002volcano, - title={Volcano - an extensible and parallel query evaluation system}, - author={Graefe, Goetz}, - journal={IEEE Transactions on Knowledge and Data Engineering}, - volume={6}, - number={1}, - pages={120--135}, - year={2002}, - publisher={IEEE}, - language = {english}, - note = {(дата обращения: 17.01.2026)} +@misc{IntroToTheJoinOrderingProblem, +title = {Introduction to the Join Ordering Problem}, +url = {https://www.querifylabs.com/blog/introduction-to-the-join-ordering-problem}, +language = {english}, +note = {(дата обращения: 01.05.2026)} } + diff --git a/report/cascades.dot b/report/cascades.dot new file mode 100644 index 0000000..307d9f9 --- /dev/null +++ b/report/cascades.dot @@ -0,0 +1,27 @@ +digraph optimizer { + node [shape=box] + + Entry [shape=none, label=""] + OptGrp [label="Оптимизация группы\n(OptGrp)"] + OptExpr [label="Оптимизация выражения\n(OptExpr)"] + OptInputs [label="Оптимизация входных групп\n(OptInputs)"] + ApplyRule [label="Применение правила\n(ApplyRule)"] + ExplGrp [label="Исследование группы\n(ExplGrp)"] + ExplExpr [label="Исследование выражения\n(ExplExpr)"] + + Entry -> OptGrp [label="Выражение"] + + OptGrp -> OptExpr + OptExpr -> OptExpr + OptExpr -> OptGrp + OptExpr -> OptInputs + OptExpr -> ApplyRule + OptExpr -> ExplGrp + OptInputs -> OptInputs + OptInputs -> OptGrp + ApplyRule -> OptInputs + ExplGrp -> ApplyRule + ExplGrp -> ExplExpr + ExplExpr -> ExplGrp + ExplExpr -> OptGrp +} diff --git a/report/cascades.pdf b/report/cascades.pdf new file mode 100644 index 0000000000000000000000000000000000000000..14fa81da8ef0784067d65faf64fdcd9454b1e4fe GIT binary patch literal 16363 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] (p1j1) -- (p1j2); + \draw[->] (p1l) -- (p1j2); + \draw[->] (p1c) -- (p1j1); + \draw[->] (p1o) -- (p1j1); + \node[font=\small\bfseries] at (-4.4, 4.0) {План \(P_1\)}; + + \node[op] (p2j2) at (4.4, 2.9) {Nested Loop Join\\\scriptsize \(1{,}25 \cdot 10^{14}\) чтений}; + \node[op] (p2j1) at (2.3, 1.2) {Nested Loop Join\\\scriptsize \(1{,}25 \cdot 10^8\) чтений}; + \node[rel] (p2l) at (6.5, 1.2) {\texttt{lineitem}}; + \node[rel] (p2c) at (1.0, -0.3) {\texttt{customer}}; + \node[rel] (p2o) at (4.4, -0.3) {\texttt{orders}}; + + \draw[->] (p2j1) -- (p2j2); + \draw[->] (p2l) -- (p2j2); + \draw[->] (p2c) -- (p2j1); + \draw[->] (p2o) -- (p2j1); + \node[font=\small\bfseries] at (4.4, 4.0) {План \(P_2\)}; +\end{tikzpicture} +\caption{Сравнение планов для запроса из листинга~\ref{lst:join_query}.} +\label{fig::join_plan_comparison} +\end{figure} \begin{itemize} \item План \(P_1\): @@ -411,21 +454,97 @@ \section{Цель оптимизатора} чтения, что на восемь порядков превышает \(P_1\). \end{itemize} -{\color{red} TODO: пример с логическими трансформациями, аналогично визуализация - планов (tikz). Адаптировать абзац ниже.} +На еще одном примере запроса из листинга~\ref{lst:logical_transform_query} +рассмотрим влияние логических преобразований. Отношение \texttt{Emp} содержит +\(10{,}000\) кортежей, что эквивалентно \(1{,}000\) страницам. \texttt{Dept} +включает \(500\) записей и \(50\) страниц соответственно. Атрибут +\texttt{Emp.did} является внешним ключом к \texttt{Dept.did}, поэтому каждому +кортежу из \texttt{Dept} соответствует \(10{,}000 / 500 = 20\) из \texttt{Emp}. +Пусть на \texttt{Emp.did} и \texttt{Dept.dname} построены индексы, а в +промежуточную страницу помещается \(5\) кортежей. + +\begin{listing} + \caption{Пример запроса с проекцией, фильтрацией и соединением.} + \label{lst:logical_transform_query} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT DISTINCT ename + FROM Emp E JOIN Dept D ON E.did = D.did + WHERE D.dname = 'Toy' + \end{minted} +\end{listing} + +\begin{figure}[!htb]\centering +\begin{tikzpicture}[ + rel/.style={rectangle, draw, rounded corners=2pt, minimum width=2.0cm, + minimum height=0.8cm, align=center, font=\small}, + op/.style={rectangle, draw, fill=gray!12, minimum width=4.5cm, + minimum height=1.2cm, align=center, font=\small} +] + \node[font=\small\bfseries] at (-3.5, 8.8) {План \(P_1\)}; + \node[op] (p1proj) at (-3.5, 7.7) {\(\pi_{\texttt{ename}}\)}; + \node[op] (p1sig2) at (-3.5, 6.2) {\(\sigma_{\texttt{dname}=\texttt{'Toy'}}\)}; + \node[op] (p1sig1) at (-3.5, 4.7) {\(\sigma_{\texttt{Emp.did}=\texttt{Dept.did}}\)}; + \node[op] (p1cp) at (-3.5, 3.2) {\(\texttt{Emp} \times \texttt{Dept}\)\\\scriptsize \(50{,}050\) чтений}; + \node[rel] (p1emp) at (-5.2, 1.7) {\texttt{Emp}}; + \node[rel] (p1dept) at (-1.8, 1.7) {\texttt{Dept}}; + + \draw[->] (p1emp) -- (p1cp); + \draw[->] (p1dept) -- (p1cp); + \draw[->] (p1cp) -- (p1sig1); + \draw[->] (p1sig1) -- (p1sig2); + \draw[->] (p1sig2) -- (p1proj); + + \node[font=\small\bfseries] at (3.5, 8.8) {План \(P_2\)}; + \node[op] (p2proj) at (3.5, 7.7) {\(\pi_{\texttt{ename}}\)}; + \node[op] (p2join) at (3.5, 5.5) {Index NL Join\\\(\texttt{Emp.did}=\texttt{Dept.did}\)\\\scriptsize \(23\) чтения}; + \node[rel] (p2emp) at (1.6, 3.5) {\texttt{Emp}}; + \node[op] (p2sig) at (5.4, 3.5) {\(\sigma_{\texttt{dname}=\texttt{'Toy'}}\)\\\scriptsize \(3\) чтения}; + \node[rel] (p2dept) at (5.4, 1.8) {\texttt{Dept}}; + + \draw[->] (p2emp) -- (p2join); + \draw[->] (p2sig) -- (p2join); + \draw[->] (p2join) -- (p2proj); + \draw[->] (p2dept) -- (p2sig); +\end{tikzpicture} +\caption{Сравнение планов для запроса из + листинга~\ref{lst:logical_transform_query}.} +\label{fig::logical_transform_plans} +\end{figure} + +Рассмотрим два плана~\refImage{fig::logical_transform_plans}: -Различие на восемь порядков в первом случае показывает, что разница между -удачным и неудачным планами может составлять сотни миллионов раз. Если -исполнение \(P_1\) на современной системе занимает порядка секунд, то наивный -\(P_2\) будет завершен через десятки лет. Более того, если в плане \(P_1\) -дополнительно использовать индекс по внешнему ключу при соединении с -\texttt{lineitem}, стоимость может снизиться ещё в несколько раз. +\begin{itemize} + \item План \(P_1\) соответствует прямому преобразованию запроса в реляционную + алгебру. Если рассматривать стоимость исполнения такого плана в модели + итераторов, то каждый оператор запрашивает у дочернего следующий кортеж + через вызов \texttt{next()}, поэтому \(\sigma\) и~\(\pi\) работают в + режиме конвейера и не инициируют обращений к диску. Вся стоимость + ввода-вывода сосредоточена в операторе~\(\times\), реализованном через + вложенные циклы с \texttt{Dept} в роли внешней таблицы: \texttt{Dept} + читается один раз, а \texttt{Emp} перечитывается полностью для каждой + страницы~\texttt{Dept}: + \[ + 50 + 50 \times 1{,}000 = 50{,}050 \text{ чтений.} + \] + + \item План \(P_2\) является оптимизированным вариантом, где применено правило + проталкивания предиката и декартово произведение заменено на соединение + по предикату. Причем для доступа к таблице \texttt{Dept} применяется + сканирование по индексу, что дает всего \(3\) чтения с диска. Соединение + реализуется через вложенные циклы с использованием индекса, что в итоге дает: + \[ + 3 + (3 + 20) = 26 \text{ чтений.} + \] +\end{itemize} -Этот пример наглядно демонстрирует, что оптимизатор отвечает не за доли -процентов производительности, а за принципиальную возможность исполнения сложных -аналитических запросов за приемлемое время. Именно поэтому разработка -качественного оптимизатора занимает центральное место в проектировании любой -реляционной СУБД. +Оба приведенных примера наглядно демонстрируют, что оптимизатор отвечает не за +доли процентов производительности, а за принципиальную возможность исполнения +сложных аналитических запросов за приемлемое время. В первом случае разница +между физическими планами составляет восемь порядков: если \(P_1\) завершается +за секунды, то наивный \(P_2\) потребует десятков лет. Во втором случае даже +единственное логическое преобразование, в виде протаскивания предиката, снижает +число чтений с диска в \(1{,}900\) раз. Именно поэтому качественный оптимизатор +является конкурентным преимуществом и одной из самых важных частей СУБД. \section{Обзор архитектур оптимизаторов} @@ -433,11 +552,9 @@ \section{Обзор архитектур оптимизаторов} \subsection{System R} -{\color{red} TODO: ссылка на статью по System R. Есть в лекциях Andy} - -Оптимизатор System~R, разработанный в IBM Research в конце 1970-х годов, стал -первым стоимостным оптимизатором запросов и заложил фундаментальные принципы, -используемые во всех последующих системах. +Оптимизатор System~R, разработанный в IBM Research в конце 1970-х +годов~\cite{Selinger1979}, стал первым стоимостным оптимизатором запросов и +заложил фундаментальные принципы, используемые во всех последующих системах. Архитектуру, аналогичную System~R, реализуют PostgreSQL и ранние версии IBM DB2. @@ -483,13 +600,10 @@ \subsection{System R} \subsection{Volcano} Volcano --- расширяемый, основанный на правилах, стоимостной оптимизатор -запросов, разработанный Грефе в 1993 году. Volcano ввел ряд концепций, ставших -основой для последующих расширяемых оптимизаторов: физические свойства -выражений, обеспечивающие правила, структуру данных Memo и нисходящий алгоритм -поиска на основе динамического программирования. - -{color{red} TODO: ссылка на статью (взять из лекций Andy). Добавить системы - использующие Volcano} +запросов, разработанный Грефе в 1993 году~\cite{GraefeMcKenna1993}. Volcano ввел +ряд концепций, ставших основой для последующих расширяемых оптимизаторов: +физические свойства выражений, обеспечивающие правила, структуру данных Memo и +нисходящий алгоритм поиска на основе динамического программирования. Volcano разделяет поиск на две фазы: @@ -519,7 +633,7 @@ \subsection{Volcano} \section{Архитектура Cascades} Cascades --- это расширяемая архитектура оптимизатора запросов, являющаяся -логическим продолжением идеи Volcano. +логическим продолжением идеи Volcano~\cite{Graefe1995}. Основными объектами Cascades являются: @@ -591,38 +705,102 @@ \subsection{Структура Memo} предоставляемые физические свойства, например сортировка выходного потока, и рассчитанная стоимость исполнения этого оператора. -На рисунке~\ref{fig:memo-structure} показан пример Memo для запроса с тремя -отношениями. Группа \(G_5\) представляет результат соединения трех отношений, а -внутри нее находятся два логически эквивалентных выражения с разной -ассоциацией соединений. Дочерние выражения ссылаются на группы, поэтому общие -подпланы не дублируются. +\begin{listing} + \caption{Пример запроса.} + \label{lst:query} + \begin{minted}[style=bw, breaklines, frame=single, fontsize = \footnotesize, linenos=false, xleftmargin = 1.5em]{SQL} + SELECT * FROM A JOIN B ON p_1 JOIN C ON p_2; + \end{minted} +\end{listing} + +На рисунке~\ref{fig:memo-structure} показан пример Memo для запроса из +листинга~\ref{lst:query}. Например, группа \(G_5\) представляет результат +соединения трех отношений, в ней находятся два логически эквивалентных выражения +с разной ассоциацией соединений и четыре физические реализации для них. Входными +данными для операторов являются группы группы, поэтому общие подвыражения не +дублируются. -{\color{red} TODO: поправить схему} -{\color{red} TODO: привести сам запрос} \begin{figure}[H] \centering \begin{tikzpicture}[ - group/.style={draw, rounded corners, align=left, minimum width=4.0cm, minimum height=1.5cm}, - expr/.style={draw, align=center, fill=white, minimum width=3.3cm, minimum height=0.6cm}, - arrow/.style={-{Stealth[length=2mm]}, thick} + scale=0.85, transform shape, + group/.style={draw, rounded corners, text width=4.8cm, inner sep=5pt}, + arrow/.style={-{Stealth[length=2.5mm]}, thick}, + altarrow/.style={-{Stealth[length=2.5mm]}, thick, dashed} ] - \node[group] (g1) at (0,0) {\textbf{Группа G1}\\Scan(A)}; - \node[group] (g2) at (5,0) {\textbf{Группа G2}\\Scan(B)}; - \node[group] (g3) at (10,0) {\textbf{Группа G3}\\Scan(C)}; - \node[group] (g4) at (2.5,-3) {\textbf{Группа G4}\\Join(G1,G2)\\HashJoin(G1,G2)}; - \node[group] (g6) at (7.5,-3) {\textbf{Группа G6}\\Join(G2,G3)\\HashJoin(G2,G3)}; - \node[group] (g5) at (5,-6) {\textbf{Группа G5}\\Join(G4,G3)\\Join(G1,G6)}; + \node[group] (g5) at (6,0) { + \textbf{Группа G5}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G4,G3)\\ + Join(G1,G6)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G4,G3)\\ + NestedLoopJoin(G4,G3)\\ + HashJoin(G1,G6)\\ + NestedLoopJoin(G1,G6) + }; + \node[group] (g4) at (3,-6) { + \textbf{Группа G4}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G1,G2)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G1,G2)\\ + NestedLoopJoin(G1,G2) + }; + \node[group] (g6) at (9,-6) { + \textbf{Группа G6}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Join(G2,G3)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + HashJoin(G2,G3)\\ + NestedLoopJoin(G2,G3) + }; + \node[group] (g1) at (0,-12) { + \textbf{Группа G1}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(A)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(A) + }; + \node[group] (g2) at (6,-12) { + \textbf{Группа G2}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(B)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(B) + }; + \node[group] (g3) at (12,-12) { + \textbf{Группа G3}\\[2pt] + \hrule\vspace{2pt} + \textit{Логические:}\\ + Scan(C)\\[2pt] + \hrule\vspace{2pt} + \textit{Физические:}\\ + SeqScan(C) + }; + \draw[arrow] (g5) -- (g4); + \draw[arrow, rounded corners=5pt] + (g5.east) -- (15.5,0) -- (15.5,-12) -- (g3.east); + \draw[altarrow] (g5) -- (g6); + \draw[altarrow, rounded corners=5pt] + (g5.west) -- (-3.5,0) -- (-3.5,-12) -- (g1.west); \draw[arrow] (g4) -- (g1); \draw[arrow] (g4) -- (g2); \draw[arrow] (g6) -- (g2); \draw[arrow] (g6) -- (g3); - \draw[arrow] (g5) -- (g4); - \draw[arrow] (g5) -- (g6); - \draw[arrow] (g5) -- (g3); - \draw[arrow] (g5) -- (g1); \end{tikzpicture} - \caption{Пример структуры Memo с группами эквивалентных выражений} + \caption{Пример структуры Memo.} \label{fig:memo-structure} \end{figure} @@ -646,40 +824,11 @@ \subsection{Алгоритм поиска} На рисунке~\ref{fig:cascades-tasks} показана схема взаимодействия задач в оптимизаторе. -{\color{red} TODO: поправить рисунок} - \begin{figure}[H] - \centering - \begin{tikzpicture}[ - node distance=0.9cm and 1.1cm, - block/.style={draw, rounded corners, align=center, minimum width=3.4cm, minimum height=0.9cm}, - small/.style={draw, rounded corners, align=center, minimum width=2.9cm, minimum height=0.8cm}, - arrow/.style={-{Stealth[length=2mm]}, thick} - ] - \node[block] (root) {запрос\\к оптимизации}; - \node[block, right=of root] (memo) {вставка\\в Memo}; - \node[block, right=of memo] (optgroup) {задача\\оптимизации группы}; - \node[small, below left=of optgroup] (explore) {исследовать\\группу}; - \node[small, below=of optgroup] (implement) {реализовать\\выражение}; - \node[small, below right=of optgroup] (enforce) {обеспечить\\свойство}; - \node[small, below=of explore] (rules) {применить\\правила}; - \node[small, below=of implement] (cost) {оценить\\стоимость}; - \node[small, below=of enforce] (winner) {обновить\\победителя}; - - \draw[arrow] (root) -- (memo); - \draw[arrow] (memo) -- (optgroup); - \draw[arrow] (optgroup) -- (explore); - \draw[arrow] (optgroup) -- (implement); - \draw[arrow] (optgroup) -- (enforce); - \draw[arrow] (explore) -- (rules); - \draw[arrow] (rules) -| (memo); - \draw[arrow] (implement) -- (cost); - \draw[arrow] (cost) -- (winner); - \draw[arrow] (enforce) -- (winner); - \draw[arrow] (winner) -| (optgroup); - \end{tikzpicture} - \caption{Взаимодействие задач в оптимизаторе Cascades} - \label{fig:cascades-tasks} +\centering +\includegraphics[width=0.8\textwidth]{cascades.pdf} +\caption{Схема взаимодействия задач в оптимизаторе Cascades} +\label{fig:cascades-tasks} \end{figure} На листинге~\ref{alg:cascades-search} приведен псевдокод алгоритма поиска в @@ -915,6 +1064,8 @@ \subsection{Оценка кардинальности} ошибки кардинальности часто являются одной из основных причин выбора неудачных планов~\cite{leis2015}. +{\color{red} TODO: поправить ссылку} + Для повышения качества оценок используются гистограммы, статистики по многоколоночным ключам, сведения об уникальности, функциональные зависимости, ограничения на схему, а в современных исследованиях также модели машинного From 030283d8266d7bb3c44eb39eb6a40ca8026bb3d0 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 6 May 2026 03:58:04 +0300 Subject: [PATCH 017/120] Wip --- report/biblio.bib | 12 ++ report/thesis.tex | 178 +++++++++++------- .../sql/logic/optimizer/optimizer_test.cpp | 1 + 3 files changed, 126 insertions(+), 65 deletions(-) diff --git a/report/biblio.bib b/report/biblio.bib index 91f4984..901497b 100644 --- a/report/biblio.bib +++ b/report/biblio.bib @@ -83,3 +83,15 @@ @misc{IntroToTheJoinOrderingProblem note = {(дата обращения: 01.05.2026)} } +@article{leis2015good, + title={How good are query optimizers, really?}, + author={Leis, Viktor and Gubichev, Andrey and Mirchev, Atanas and Boncz, Peter and Kemper, Alfons and Neumann, Thomas}, + journal={Proceedings of the VLDB Endowment}, + volume={9}, + number={3}, + pages={204--215}, + year={2015}, + publisher={VLDB Endowment}, + language = {english}, + note = {(дата обращения: 01.05.2026)} +} diff --git a/report/thesis.tex b/report/thesis.tex index 1fbb10f..982891f 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -831,63 +831,10 @@ \subsection{Алгоритм поиска} \label{fig:cascades-tasks} \end{figure} -На листинге~\ref{alg:cascades-search} приведен псевдокод алгоритма поиска в +На листингах~\ref{alg:cascades-search}-\ref{alg:cascades-search-3} приведен псевдокод алгоритма поиска в архитектуре Cascades. -{color{red} TODO: поправить листинг, убрать в приложение} - -\begin{algorithm}[H] - \caption{Top-down Cascades search} - \label{alg:cascades-search} - \begin{algorithmic}[1] - \Function{Optimize}{$rootExpr, requiredProps$} - \State $rootGroup \gets Memo.Insert(rootExpr)$ - \State $upperBound \gets +\infty$ - \State \Return \Call{OptimizeGroup}{$rootGroup, requiredProps, upperBound$} - \EndFunction - \Statex - \Function{OptimizeGroup}{$group, props, bound$} - \If{$group$ has winner for $props$ with cost $\le bound$} - \State \Return stored winner - \EndIf - \State \Call{ExploreGroup}{$group$} - \State $bestPlan \gets null$ - \State $bestCost \gets bound$ - \ForAll{$expr \in group.expressions$} - \State $candidate \gets$ \Call{OptimizeExpression}{$expr, props, bestCost$} - \If{$candidate.cost < bestCost$} - \State $bestPlan \gets candidate$ - \State $bestCost \gets candidate.cost$ - \EndIf - \EndFor - \State \Call{StoreWinner}{$group, props, bestPlan, bestCost$} - \State \Return $bestPlan$ - \EndFunction - \Statex - \Function{ExploreGroup}{$group$} - \ForAll{$expr \in group.logicalExpressions$} - \ForAll{$rule \in MatchingRules(expr)$} - \If{\Call{IsApplicable}{$rule, expr$}} - \State $newExpr \gets$ \Call{ApplyRule}{$rule, expr$} - \State \Call{Memo.InsertIntoEquivalentGroup}{$newExpr, group$} - \EndIf - \EndFor - \EndFor - \EndFunction - \Statex - \Function{OptimizeExpression}{$expr, props, bound$} - \If{$expr$ is logical} - \State generate physical expressions using implementation rules - \EndIf - \State optimize children with derived required properties - \State prune expression if lower bound exceeds $bound$ - \State add local operator cost and enforcer cost if needed - \State \Return physical candidate - \EndFunction - \end{algorithmic} -\end{algorithm} - -{color{red} TODO: добавить описание алгоритма} +{\color{red} TODO: добавить описание алгоритма} \section{Правила трансформации и реализации} @@ -971,7 +918,7 @@ \subsection{Логические правила трансформации} атрибуты заказов, а ограничение внешнего ключа гарантирует существование соответствующего клиента. -{color{red}: дописать, мб примеры?} +{\color{red} TODO: дописать, мб примеры?} \subsection{Правила реализации} @@ -1000,7 +947,7 @@ \subsection{Правила реализации} Если требуемый порядок нужен также родительскому оператору, потоковая агрегация может оказаться выгодной даже учитывая затраты на сортировку. -{color{red} TODO: псевдокод алгоритмов} +% {\color{red} TODO: псевдокод алгоритмов} \subsection{Обеспечивающие операторы} @@ -1018,7 +965,7 @@ \subsection{Обеспечивающие операторы} \section{Метод ветвей и границ} Метод ветвей и границ используется для сокращения пространства поиска и, как -следствие, неасимптотическим улучшением скорости работы алгоритма. В контексте +следствие, неасимптотического улучшения скорости работы алгоритма. В контексте Cascades ветвями являются альтернативные выражения и комбинации физических реализаций дочерних групп, а границей является текущая лучшая стоимость плана для заданной группы и требуемых физических свойств. Если нижняя оценка стоимости @@ -1062,9 +1009,7 @@ \subsection{Оценка кардинальности} быть грубой, если данные имеют корреляции, сильный перекос или сложные зависимости между атрибутами. Экспериментальные исследования показывают, что ошибки кардинальности часто являются одной из основных причин выбора неудачных -планов~\cite{leis2015}. - -{\color{red} TODO: поправить ссылку} +планов~\cite{leis2015good}. Для повышения качества оценок используются гистограммы, статистики по многоколоночным ключам, сведения об уникальности, функциональные зависимости, @@ -1094,7 +1039,7 @@ \subsection{Оценка стоимости} При этом локальная стоимость зависит от кардинальности входов и физических свойств, а также конкретного физического оператора. -{\color{red} TODO: табличка формул для разных операторов} +% {\color{red} TODO: табличка формул для разных операторов} \section{Дифференциальный анализ физических планов} @@ -1106,8 +1051,6 @@ \section{Дифференциальный анализ физических пл строгих условий активации правил или отсутствия определенных правил в их наборе. -{\color{red} TODO: почему нет формализации?} - Данная проблема особенно актуальна при разработке нового оптимизатора: после реализации базового набора правил возникает вопрос о полноте и корректности этого набора по сравнению с устоявшимися и проверенными временем промышленными @@ -1185,7 +1128,7 @@ \subsection{Область применения} улучшение качества оптимизатора и позволяет новым или открытым оптимизаторам быстрее достигать качества устоявшихся промышленных оптимизаторов. -{\color{red} TODO: описать как нормализовать и т.п.} +% {\color{red} TODO: описать как нормализовать и т.п.} \renewcommand\refname{СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ} \clearpage @@ -1194,4 +1137,109 @@ \subsection{Область применения} \printbibliography } \newpage + +\settocdepth{section} +\anonsection{ПРИЛОЖЕНИЕ А} +\vspace{-30pt} + +\begin{algorithm}[H] + \caption{Алгоритм поиска (часть 1).} + \label{alg:cascades-search} + \begin{algorithmic}[1] + + \Procedure{Optimize}{$root$} + \State Push task $\Call{OptimizeGroup}{root.group, \bot}$ onto task stack + \While{task stack is not empty} + \State Pop and execute next task + \EndWhile + \State \Return $best\_plan[root.group]$ + \EndProcedure + + \Procedure{OptimizeGroup}{$group, limit$} + \If{$best\_cost[group]$ exists \textbf{and} ($limit = \bot$ \textbf{or} $best\_cost[group] < limit$)} + \State \Return + \EndIf + \If{$group$ is not explored} + \State Push task $\Call{OptimizeGroup}{group, limit}$ onto task stack + \State Push task $\Call{ExploreGroup}{group, limit}$ onto task stack + \State \Return + \EndIf + \For{each logical expression $expr \in group$} + \State Push task $\Call{OptimizeExpression}{expr, limit}$ onto task stack + \EndFor + \EndProcedure + + \Procedure{ExploreGroup}{$group, limit$} + \State Mark $group$ as explored + \For{each logical expression $expr \in group$} + \State Push task $\Call{ExploreExpression}{expr, limit}$ onto task stack + \EndFor + \EndProcedure + \end{algorithmic} +\end{algorithm} + +\begin{algorithm}[H] + \caption{Алгоритм поиска (часть 2).} + \label{alg:cascades-search-2} + \begin{algorithmic}[1] + \Procedure{ExploreExpression}{$expr, limit$} + \For{each applicable transformation rule $r$} + \State Push task $\Call{ApplyTransformation}{r, expr, limit}$ onto task stack + \EndFor + \For{each child group $child \in \Call{Children}{expr}$} + \If{$child$ is not explored} + \State Push task $\Call{ExploreGroup}{child, limit}$ onto task stack + \EndIf + \EndFor + \EndProcedure + + \Procedure{OptimizeExpression}{$expr, limit$} + \For{each applicable implementation rule $r$} + \State Push task $\Call{ApplyImplementation}{r, expr, limit}$ onto task stack + \EndFor + \For{each child group $child \in \Call{Children}{expr}$} + \If{$child$ is not explored} + \State Push task $\Call{ExploreGroup}{child, limit}$ onto task stack + \EndIf + \EndFor + \EndProcedure + + \Procedure{ApplyTransformation}{$rule, expr, limit$} + \State $new\_expr \leftarrow \Call{Apply}{rule, expr}$ + \State Push task $\Call{ExploreExpression}{new\_expr, limit}$ onto task stack + \EndProcedure + + \Procedure{ApplyImplementation}{$rule, expr, limit$} + \State $phys \leftarrow \Call{Apply}{rule, expr}$ + \State $lc \leftarrow \Call{CalcLocalCost}{phys}$ + \If{$limit \neq \bot$ \textbf{and} $lc \geq limit$} + \State \Return + \EndIf + \State $child\_limit \leftarrow (limit = \bot) \mathbin{?} \bot \mathbin{:} limit - lc$ + \State Push task $\Call{OptimizeInputs}{phys, child\_limit, 0}$ onto task stack + \EndProcedure + \end{algorithmic} +\end{algorithm} + +\begin{algorithm}[H] + \caption{Алгоритм поиска (часть 3).} + \label{alg:cascades-search-3} + \begin{algorithmic}[1] + \Procedure{OptimizeInputs}{$expr, limit, i$} + \State $children \leftarrow \Call{Children}{expr}$ + \If{$i \geq |children|$} + \State $total \leftarrow local\_cost[expr] + accum\_child\_cost[expr]$ + \If{$best\_cost[expr.group]$ does not exist \textbf{or} $total < best\_cost[expr.group]$} + \State $best\_cost[expr.group] \leftarrow total$ + \State $best\_plan[expr.group] \leftarrow expr$ + \EndIf + \State \Return + \EndIf + \State $child \leftarrow children[i]$ + \State Push task: \textbf{if} $best\_cost[child]$ exists \textbf{then} accumulate child cost \textbf{and} push $\Call{OptimizeInputs}{expr, \ldots, i+1}$ + \State Push task $\Call{OptimizeGroup}{child, limit}$ onto task stack + \EndProcedure + \end{algorithmic} +\end{algorithm} + \end{document} diff --git a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp index 8a972eb..1119055 100644 --- a/src/stewkk/sql/logic/optimizer/optimizer_test.cpp +++ b/src/stewkk/sql/logic/optimizer/optimizer_test.cpp @@ -156,6 +156,7 @@ class Optimizer { if (!best_cost_.contains(child.get())) return; auto cc = best_cost_.at(child.get()); accum_child_cost_[expr.get()] += cc; + // FIXME add -LB(children[child_index+1..k]) Limit next = limit ? std::optional{*limit - local_cost_[expr.get()] - accum_child_cost_[expr.get()]} : std::nullopt; if (next && *next < 0) return; OptimizeInputs(expr, next, child_index + 1); From 8833c041cdc20619f524f649449d261783c56592 Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 6 May 2026 04:22:31 +0300 Subject: [PATCH 018/120] Wip --- report/thesis.tex | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/report/thesis.tex b/report/thesis.tex index 982891f..b3315ea 100644 --- a/report/thesis.tex +++ b/report/thesis.tex @@ -834,7 +834,6 @@ \subsection{Алгоритм поиска} На листингах~\ref{alg:cascades-search}-\ref{alg:cascades-search-3} приведен псевдокод алгоритма поиска в архитектуре Cascades. -{\color{red} TODO: добавить описание алгоритма} \section{Правила трансформации и реализации} @@ -985,6 +984,23 @@ \section{Метод ветвей и границ} стоимости оптимизации дочерней группы под требуемым свойством \(P_i\). Чем точнее нижняя граница, тем эффективнее отсечение. +На практике в качестве \(LB(G_i, P_i)\) принимается лучшая стоимость, найденная +для пары \((G_i, P_i)\) на текущий момент работы алгоритма. Поскольку +оптимизация группы является рекурсивным процессом, к моменту отсечения для +\((G_i, P_i)\) уже могут быть найдены некоторые планы, и их минимальная +стоимость служит нижней границей. Если же группа \(G_i\) под свойством \(P_i\) +ещё не рассматривалась, используется тривиальная граница \(LB = 0\), или, при +условии наличия минимальной стоимости на кортеж, можно принимать +\(LB(G_i, P_i) = |G_i| \cdot min_cost_per_row\). + +Требуемые свойства дочерних групп \(P_i\) определяются оператором выражения \(e\) +совместно с требованием родителя \(P\). Каждый физический оператор описывает, какие +свойства он ожидает от своих входов: например, оператор сортирующего слияния требует +упорядоченности обоих входов по соответствующим ключам, тогда как хеш-соединение не +предъявляет требований к порядку. Таким образом, при спуске по дереву поиска каждый +оператор транслирует глобальное требование \(P\) в конкретные требования \(P_1, +\ldots, P_k\) к своим дочерним группам. + \subsection{Оценка кардинальности} Оценка кардинальности является процессом предсказания числа кортежей, From 068388899614b4853ca540a57a3e17760cf2671b Mon Sep 17 00:00:00 2001 From: Alexandr Starovoytov Date: Wed, 6 May 2026 04:41:16 +0300 Subject: [PATCH 019/120] Done --- report/biblio.bib | 11 ----------- report/thesis.pdf | Bin 573217 -> 702601 bytes report/thesis.tex | 26 +++++++++++++++++++------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/report/biblio.bib b/report/biblio.bib index 901497b..9203646 100644 --- a/report/biblio.bib +++ b/report/biblio.bib @@ -58,17 +58,6 @@ @inproceedings{Begoli2018Calcite doi = {10.1145/3183713.3190662} } -@inproceedings{ArmbrustCatalyst2015, - author = {Armbrust, Michael and Xin, Reynold S. and Lian, Cheng and Huai, Yin - and Liu, Davies and Bradley, Joseph K. and Meng, Xiangrui and Kaftan, Tomer - and Franklin, Michael J. and Ghodsi, Ali and Zaharia, Matei}, - title = {Spark {SQL}: Relational data processing in {Spark}}, - booktitle = {Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data}, - pages = {1383--1394}, - year = {2015}, - doi = {10.1145/2723372.2742797} -} - @phdthesis{XuColumbia1998, author = {Xu, Yongwen}, title = {Efficiency in the {Columbia} Database Query Optimizer}, diff --git a/report/thesis.pdf b/report/thesis.pdf index c5566253fd684f5173cb6d41d3f1ea5bbc35f367..fe3913a016f2138fd34ee6ff852a04458b96ab1a 100644 GIT binary patch delta 351443 zcmZs>V{x3{iCe6QJ+rlQOf|+$7pbH!MTDqa_h~xp6vEC%ks$D2z8%kX zX5QxGrd&lWyf2!{m7kY4w~JSU$EO7SzF(iHTM`&suc16=7LI$QpOWjtte=EOe!kq_ zo(rY2W#N}xJ122G03mx8hTV}0U4*VS&6c#`nW-nuwDF63L~`T2)RlusDvgxR%hF{m#4Ud} zVB0%R0Y>XCUYjG|jopg(Pq6PRxLL4WL3cZ1L<1Y!^ z6#qX;=QEQNi$#C0gE%(0&wt7SRfcy&I7H`0;0d{8T=`XBvodO-RD+d79MF^{`h6?o z0I%UjKT_{Byrm55qB#a*4uxrF#Qa@`DyX0^JcVB`FslX(LkZp+{{mVnY` znC3_H7%G`y83OfM4TsF{2FPdU%sFAOX|X=33W4f)4x}Z|<=*i2YGBM6S)i=}D8*#u z{($E1${WgPt6dwC&DfMk9J@Hf7r=dDjWZf+>)Z?6({$0dh zODa#dJrr7?xKiBOHA6IncU}^_46Va4Wv|o%4BsJK9}wK*wIWVyq{lp9cQ!LVz#uJz zPV!At0y2m7WkteU<*_0MqZvn{V>5CWTIcQ;swEiBwd&$hiIuk;>wCJ2ogMHnxwTGQ z2#cc9?{g!w<7aeJhY#mll&fL~Kdw!nY9wM-POYyY*OBl8A5{157*oENpi0E5cInY# zm(&?XB59NoTM1dX_zgB$^VkukV7gq<HPX#x*Kx6Be^mq!;r@JeJA+?M<4@sVDF zC6n>%%LyQgBZ(+D-5MNpx$Rmv_$jX3?1WLZvDi~nxm~P+?|JG`B?mW3|UP&GnJ2+QIgLd!-@nse6g~!}g~zco0BtSGu7L?K4AlAn1$F%KvB^K30WK#KlyS#kf?U(;q!GFXHNK5& zE5$y1A<#MtH;yx&6CH>`xczm^_Ob{a9;TJWL!al58Mef_&?n?K%hCY7#KJQJLoO6z zGraf{=d=g*m#RPziF3+7Qggj@J}A8mawl~iK=*Y(eBV{EP+Q=}OF>xZW|}d&K94PI zz}o=Y%;mV4s1N>?z4JGxV=V2dh@hJyrKk2bve?%m{WBw%R&g@wrd1NW$&nH*jd7X8 znv!JZCsRVnQL~UU_+>tfBr7Knf)K|93w$gFynNq3KRM@(e2CUKX~nhB{&d~bYWSH6 z(CDuUpGF)#4u-m8W0b0a*sXzbt7;R-({r#de*{tVBc~g&~ zBcavtVc=s;^!E0BJ^r|y-qz(OJk4zJOycll!v3y?rnaerPy0BMbsnWga*LYa;bdVc zv4bsyd63ElxXXS)Oo#4eLAH+ex8fB6hA|gh9LmkG9i#~@SvwK;)BJfw4g?$kJ+o&} zpt;TP|29SpSnfC)mj~Z-zxvKz3qCQW5gBhU|8zcvV7Fj$;YVeeZnCE{CZ;ZcOpZ29 z!vLEb^;<40f2bmc5ursoC2zmSl3(<%ganTMZuSjFB1qAbL<4*M0)d0Mdm$K_FEUgm=2qlohg zPjcWbX^=XP_oeUTY7bvOap69i{P8!Iyl2}Kx><3Z#4M*PL`faCuywADCXGA73$Yiw zBn8B?)L&Wa>eSlndmJNgl98YV4by7Apv%Ns%=KfxiS=~#d-yjz2ADJz$p{PuospH0 zk9KG-eEm0vJusqYTTB{NB;GzGvmu{-iqu87{7OLL#0Zv%D z`)rVB4AMf6a7N!D^Q2a~ZhZt1;P^^%&HtY{ha#D!CnJNjzAb)&8(IPM=^$D57Gn>C z#>{fdX>U6uT_sIr2bBJsgS3P_vx^MtpOPI_K(0D1$S!uEw0?h+ z3Hbw&S$EGEH8%Y52MQaNu+1^}ev(GG#m_0<-_8rEy?l+Vw3zLUuxGSZkBl5#-s~6U z$t@r-u4{y{Z}VdLV%FC&yE|MQO?Jo@pcYW*)%OJrbTtOJBZ1*Hdo)5DaeDDFL|RBK z&TD4o7$3Yc`3^M0opWhwLvi~q*b_;4q*Gs?sd+*IHixoz-v_R3e`>a%%?eOUEx|1p zH!XvNn8b8KADBI&+&H3Dkvzb88aYA> z-5!xc3+DkYPcU2#8hjX|Hp#)6qzgr@(h6Q!`*lgH>BOd~66#a}qy8}~W$Gy=d`d^l znn{o~PaKobWvpBz1d_075Y||8!@$#^G5(iEqX~EtvrWx0e|H48Tp~R7#Dd{@)gX!S zd~{-{-^5jnT)a}%9*j^gEcul*4kaw(dY_3JhwTAlY5}NA5y7neuwR~Nun%HXf6VuG zb6BhWt&NyNaw0`-=CsJ{F5uDO?gq%}eJ}=Nq8Yd_yJ2%o>-A|zz}r}lIKF`k>eBzIjWKW&%#30Bhg0&D!*r^9X zXng=CSEi3lT(BQ83wjJLbfzqQv?@6={zZeZ(j6JH1JIyQ)?CV~CD;IN4gCmPF;{P* zMV>zgcBF0>bt)|39M;V4sKxv@tFRiu6UG_13kttA0bE){!9}Y+dymt>jMfb_DyhV3 zxu_1?MT*tpXMAhJMh7Zz&N&LIuE0rfWITWZTxuYxnM;CRK14XTEb{StEcZXQ5{zoG zZ57(`Llg3>%EN^RVqMJK<2s67ge@uY+>aoP`>=LTD5VFeR*EE^6h+AEAizr~Jt#SwcrNQ~hwL?&Zm(a0 zy3^+}9t|?YasflXO!XdV?I9Mz&HIv4RFC07fKu0}y6MAE4RHiM*exTzSeSkn>6woB= zYIuY4zx+e*itcV6K4*@A&{Ab}dU$^3!A|}UAcocLKx7TV-52sAW}bFmVD6B}2dach zaN<-YBl*a?b29XTDHgJSrs~?GFT-sBVd+u`G>vyOrEs8)S>ObhpQBgDd9NW*@IZPs zAlA7xT|M{t1SXZLv*|IH+?bhjie<0^&RvUe=mYVUKh48nWx)Ay+O1%LuSJzyE~Q0Y zgFLM+buGJpqyuC>*Q{8MxXR;0MddI;lj-;~tfcI27E#lrIf>p@cu&3hYeq@|7^p`V zs7VbEnEsQhyS*8dT(pa6T$@-3+K2pPGOa@kB)e`W?f%mMT zk$BFZXczaJ?!y0+*Qw%klBBhIRxH%Y3Qq$mc*fHwReD{x_)}jNB8#UjJDU1cx~+Ab zqVtP(9*mmCF852qY6~kI6X3uAVa;I3T;O>ZnA83ZI-kdmgRV;ThtXa!C|S}OXj4uE z>ho3g@R30K?-CHZEm*NND8v?q^hvCk{^UBQ{LHNT+fZ_lz1A$*Oq%)~^qOu_8oGPM<5dgCTC58;3^6>5B#)LoRzIQx?iI0NNk&-m`*Vl!|O5n#&gAy?2Z13Qh z?1QboA|q<%R;6FCi78rD_$&iZ(ju97Hl40H$*r_uD0z{mx%pZkGklu-MEL!A-~7z{ z(#Qh}ejVp2y+^pC_qvG0U@pl2iK4VCaZR(08 zf^1!dB{o=~vdre51237GKZI^^^K+sUz(Te>o=0wx+sx&WEHlsHEsrL+LQ-(1q!Z(vDPM$LAw?8Gd1|DdU|ept|~wM8B-OB>mo#vh|T%L^MFdCAD#y{ zdT-js1T?Xj={8|sBBacW=q51CaVs?qFxTI4KFCDzLueH>QX8^cBkuWDHY&}2d6BcPWP9eXo3__pxrUzaHQ)o;Dd+-#X}+LHe6&uewfe&`_8uV#Rp@js>c62cBw9?uOMV#J^`y|$VH3Wmvc4+x z04L%GEaj@w(&k#BVCBbSx(Z~KYy{VKp8<%)}H};>F zN8ot3`!oR;MF3yi^W*h5s2`|3jyLKuIr}(gv8*U|q1Y);Od(xV$q=0V>CcAMiYA}5 zEq#AEEBA9PUv21CUt#m{nv>7Y3%4X20IgOOZ0Y^LOO8V^ib}meRGezTR0tM%*+rMk zg23h8y!QcVFdm&-5z+pa7h1!8huh^mrrM|e951)A+e_Kc9#qne*v6RdSgFSZ?W%Ht zUx$MSd4s~{y(5YS_$~Otdf^rzQxagDAEOl<%t2_T&TIQHRSWOtBLpX!`Zvo0V4{%L zquUD`eVF5y&I?j8vVu`-XLJI*edyBAHZ7qr^Dw*!p?VWS>7e^B>6O?^ZRcf=hWs)L z)>s*lMMiWPD1{^~Vv0_$jj=(E9-FeSDin}ztw5n_z(mF*j?nSy^$}})VRRcsq-f~$ z*!eteppv(M`Tw!*skla9P{54;b?xjN|2+w*G1_4809XT&8}imB`3=Ho6fH5OH7+(w z`sw`Zd_XU0s0jQk8C8gpW&Uwjucs2jOlfSz=f|zQy8+L7H(hS+Y$t{Tud6mRm*#Hv z?-c~%LR7YgxTQtsW9m)4#%CeKx&RhcZdBy&ohhN;1%=6Bs0sVD{8QsO&lksqk5Wf3#@3)RlUvb>q==N+ZNc;nD*4u{KIEjX3 zfT5+Nv9NJVa%gphK^+Yfe&2)t7Zei7`o`sB)@Q9CB5*D+PBJw8J=Y&bC2np}xDYC- zaaB~8$0ku|b-gA3WwKtWzQQ3_ET0B)%jC2L_IWaibJ|6XvL@zD(JBg0c2fHAk3KZ& zWQm#h9LZ&;_1rB3aQN~bXFEyjhKM;BK>#3)~(VOR1wL@Z!Ayu!! zhb4q&l3a~(a6^&`T|(yHXPWX#Ru1lXLAAUkwa%lyYDZ%?eM=kgzp@oI%7qY6QyDpr zQd-mrRa$x%{xRqw{CNKn(2f1U^XnRK*(K`U5q5mI)I9wb19>IV=1fIAA>J3DwX^OE>fY=Q@uRzHY)dpDtqv{qd8E0-kk7WHq5jx35FGo&e2!r3X| z;1|r{+}W}+ve#q9^L{-SkG^ZOu~?jPU*VA@NZZT8rUK!MlCi-0A6*ZEx=t?ZF(tmWm-h|t8P zUU?foOq=|m54}q?c>+DvI8tsa2QpC=g!fY1oo{ZXZ`jK-&%`H2FN3WFMHJS(gmvnT z?o_bIQDbImanI4D#lIf@kIqFeWENhwT_}e2-|496JVX1PsUc`i5iBiWz&OmA*W!~O z3Nc3HOA2mU^SX#q?9$$P11hQdd_5H!MRiny%$#SBjse|k(rxF_}mnetzB6g*SvkeR^lW>@=CK|U4OhB6N{>t z_kMctO#~xWF?vXn@*V3g!0^CI4u_0ik4$KB!PxRA!y)SJJD>3jp<-;S~e>7MBVRds~TDtvH+glF3ouZdv9s!xfd$%d1Vn?HmQ0GuKo#KIyPZY52s z9UQz)GDRA`iJDi+qCTbRm(l5P+e3W@%Tu}aIrb+N`>yg(@reAGgiRC@=2)c&(ba7Z z#iTg*`yQfu>!bbwvK0D}{)N4zo2jc$m{%XwOgXvvYO~I395d;KWh>kM8Z;xJ9_!ex zY!AS#>V~qKpg#sQK(&IGZ3i+r%@j#jMZq?z%GKwA}goA z^CgU%-A|04b5&eCo=(#r(RK1Vh9S;*#1Q`T!A7%dNkbJ3@L;5?R^bvKUj|p58_PS^ z&)lkX6yC-tT$oO@Z!PDvP9I*FZRO`>lEcw~K)X%#LoQ1d5a;v$4HBPi@UGFtKe$5H zxz2kivwn=ahV$)ok6pX!{AVm+J*C~E-xDQom@&TB+Sh2~-Ld!T`Gpr@;H$rWhELQ5 zHT-K9U$^1`!21mc=SjxnF%!eIbe(D+H@jP)p$yD%x6W(}|bp+aEVCiF*h z6+J!%m*SIkMqW=EZ?xhqmM8}ff@CL>qpHAaS(lZmWuL%{V zrKLJ{let9-34FUfUk{CHfS*UhrQC@!0t9}#AGQf<$2>VjsD>8sC5KuB161hmvWlaB z^NP-jztkPyy1xg#!yQ#J6XfN?LqC7b~ZJ zUiqL)ic$Rw(^JfQQ0I-ZM)A%=W+N<396ihDM`{0At^op(-)$k`RGVLK-7tLk9KZHehSa|@nE8FL|lg{Qu zdYfj;Ze>@#eb(CL8nQ?nEwxcIg%qQ!3e)$i+eB@f}6wvfE!PIsip4?b$1eTU7jN9`Pj znuK8a%srtWrIeBF7SS^H{LE6L^|GdAjtZQ?r#bYUXvmld8aA6f-nDB2U$Xh|SARIC zwDXi5R(cPc38FDu`*QWM7xJ-f*0jNZG$F#UEugZ82JFO>pZVd6ZNlrs4+!s~>98q+ zk$XqEp)Fu$)oh&NXN3dRjqrrB#H-)8?_bpfW4Y40ZxXL;(Q4LqH11zbzP|p6eA*86 zJWspor=8H*;H(G!DxMA=z0041So1Omm|&bBr$AWF51SN1jY8w3TnOXj>40xq`uE8* zT4M=Z0#Yyf<|GFRUSKYHj@Ni|E^{%R?g<_w}k;FX2emMAXY}uo1NK6!_Ip&)hM=pm|6IGYKIoGkvtyh5cmu3MjWG zfcq0D2y4*)?c;(2wE*8}YhqlwQNH_wX5DGi06tC#{{qd}2AMwZb7`X%wzesDlar`ata@^&n8hY1%qsbw z02ocb&>@^GqC(0Cff(u4^EDC>`b}`8c%st$_z_@ya%NNR?-IS#RrdL}-KER-bY?tJ zDIzQ!>LNJEB#X+5B9N{T?RtPJmKhCTs*+<2!08g)HM@uW)7`E$;2-Hf${sPeS1?a# zI#!nM0b($Ez;V+`HLCjZ?ag71R5q z3*SlDHpUsGl2=%#P54eN@K#*rh6p4$7i2g+-CL_^y?2vz>y;f{n^?Wk?}}g=fZJwq zTXj|EQbP;@nxep5lu__tA1KmnKgR+=IQ#fvsMpqAkY4=duzKKkcTke~KOq=0xBRu9 zuk@_b`;qd)DE{3WrxA}Y&6^G{rzmf2v;ppQE<3#nl)|)YcMRiZLx-4orU}oqPuoFg zo3456b0-ikuVwY8!^N*Lb(sPoKwRC5@7Y*}?;rylh14RJN^k0c*Seh}{{*JlOB(yr z^-Yu0XHS4{o_W}SQoANWf8AA~TUnAPss*jpa?YoN zb#UFnCvio)=(RUbiUWoIt$?zbJ!-bN$zdq1OhGL*PIi2F*twtY-yIWj05&Z25}YH& z#j=Zql+#Faba^API%*&jy#Ume{^E=0=HEfiLCxvj4;8DCI=<&Ti#xFWd&Y#1wHUW! zJWPaA5wDpEf!;q71($2(5geGHEkQC{MUckXZGY99^0baJ9*0ZZCvh(O0MwPcl6_G_&Es)TvR=GFOgFfr3dlvR#W?vz5hpl(t8x%KzwE;suTmA*Lp!kQiV8%oyp^pq&=+R`QEY5~{+p*^u(14ZW5UVI zp12Q51t?bMalm1M-T9_r{qWaBB8x~`1+fc|_x&rw%x0NlPRadrt5F~-#c!YsiU(iH z6TdXNDzTm0;|KBh;C(t3>2zWO=;gV-5n#mr^Aa|7@@Ta(k~414J38M8sO9;mr~@x+bEIn6f#E?>Wwl>0IPfG={dbWtSvddqA~7>@ail7KgHff< z+kv40KuCvx*}XT9fWU}>0|?>601EGRuWNkWMqE|qEt@r|m-lL(`n+2JniLPf_TBOJ zKx*y8=_vvSLl3Jp@JyRnBkxz2=5U*9*&Pb!hv>65^}9Cq zqqeo&F4y@?;JSn3UNjrEy8NZAgGQ zMZu7^c-HNhuTmJu8|z6s-7rl&uEj z1UX+YF`Idhm^2>Q^M=<>Kt;swA~iGdI!y)~7|Vot<8ic*4?YKaBNTvtr)=FZ><3D{ z$ae=e0LqtRTr}BARpDNi1jp&tv7!6`UN%A$)O02++H2fUyS^)21c^J6GEpzVSMgaI z)jbVN);o}@L5lD?*oBc?!QFK@M#}3}QW{07W>sU?*CmzN0c;bvIThX!OcZdlC~c|1 zpVP05ya!Y`fw%h~iqzL991n#Xq2?{@`|v}{ht|kx%4+VXe1A%kTanz-Elx6Oj5@^K z3LOcBDSnFw^OR*AYLz$fC@3q+E&J>)tH8nZkHf9JMZVnk8zs!zuQBklW*?S$@EPsh zXIPE7r8)UpofP%6X0l*`VIWseZt~p@vfZ>aZDzpC{UZFa{A%$ zGjo)~$5Vy@s(|tQ>cKGGqEp$H@Gz`oz=22# z?D8KXdJtS&(m&0HKE>zyC!;Jm)L>l#nZ&qmf|0j%_I;0Z+%|L5B>X!Lz4~j2&}qyUK(z{r(=SUHBSUPJ%n=nxP^!mzUIU7qF&g zhlh8-{GE0X+3wLxBV$lZ9R~yM*j*p zm35gptbggl85cVnyj9kcLjlTeP-`x&qOcMjxEankxWYTY^2i>xSTjk&SkhX2&66R7 zm62pAA2Z?TM3WiVVZ_lBOk;D=kc`2AA=O1z+gp@ALc^a}oeWr)5%T5_luSI4kpdfF z4-ww0P@AVtrOUX`9$m%dl2PxEiFtPGF%Mr}!1FTc3ZimVxZ+q2vW?Sdewefj#UnP- z{xt4TFwnwS)O;tI+h*&LXVso(7W`v?hAtbnp}UC0vdIew9eA(u-k>B~4RvCP2If3L(?hG=Wo3J12i?M$;*s+V~Hc>qQVNi(5 z%Cw`$6j{gg8rBil-UXhVcT4v`u0KWvG9zM)WC)d%HxK%hW}L^gWsJ-KdfC^kB?&18 z$Xv*t#kHq}ij@z|TDgX!X^di&+yh73V1d+uKGW3&O6_Ko*%~I{%tSuv*zZ71I;pH( zI^FV^1#l;I8|8Htwcu%S^=S>*FkS7u4aIw!G-~~hSgZ07h&tlLfFEF*mOCBW%sRd8 zG?+05b!TsUAe7m6si;dwz#PfOo`uZmo2Wh(SAqJD1A zo62{U_6@Iek&dUYhV?O(CW~Wcs$g{X%>vTl11C0=X^2`38Eh20f@A@lkNb6W(M@g$ zX}*Jtvi!5>?n}TMm=mqc&=7f&5E8||MDP=sgBMV%2JM&{dz38O;q_?m>U9n>ccr+P z#h`bnTik12uT_JA?8pq-rgj3OJOj<4D{}$6NPjtD5!72InnmB(%@=wkA&LjQ{4;-R z43HxKXO(fcI+vv|nUtwa3`7g+vbh~_l+Uos*?1hPyBZPevTYL)d$O%XnVdD&Qd5vQ zFT&Hf`oR0MF9AqZxeXyN$ltQk^^%~`r>ZgzH2DvMn0_O)2k0${ZFTxTH_9e3IMet&&Pzw$f0E$q(arri%^9x|N6A_RLDHW$A(w2)A9OzMYqby zigEb+dY+4S$?sOxssGK-bDh)0*l@^5w~%)8RDbA`j^5%rawj!b%;S4@P<@I;(rRJ6Sta=8e{IrQ$yd8%zTaHJOq{D6ejL&Qb80rSADP}jz z!Ca$P16iC0TNW^I8(^O93yBPS4!i^%&ZB$ zp~WYH_@D>R+BO&qL?NM=H8Yvlh`?>_!9z!u<`ZxOy~U(6;ZS1@NnYyhI*ca<2}lM( zL_|0LM4}WQK${OXnE!sg+&q_473?}FjsI+KPY1Kk8GO6@)@NlJ7#Pr=o?OJTM=SU` z!v$iX1CqIvLC}@*b>Y(sG`!SI zTKq4o&Jg&Vk>kRel;&DaiF=nslam?EflS6EiZ--}(#d}cZozDR=^^CBKSk$SaRmjrYRsz{nFKLn2Q= zG734JN8+c%GsNP`X!kU>=jYQnXN4X6teRYOcVuhu&>nVIxz~Th$+l}n?R{*O8GGg9Ru$4{yFex|a-hL++%&}j zp&phn$T-n#49%8<=~4v^$P~;B2ro`rr+)-O4GeB8!=*6D7I>7&li9*i$`H{yme5pl zOtfZaKl#vGJRA(ZRbijRvY>G7$?4eJ0XMg6(zLSrSK_f46YiITm4hxkzt5%j!}l-d zU*D;N_jC9(LFi~vrs_0Vu?ugR!2K%iwv^{0GpQ{&cpgf5WWM3}p={ZJQ#fr5{Y`d^ zL5=<7W5X&femmk7Gg#x2rUGT^IjDx5GZ*RU#B$}51bMDQpd%Trz?3mY`NC2^fOd!{ zZIu@)Txww4j5W=WyW+sMg^jiCiz1cXT`e_< z(Oz|yx`J_Y=gP}O@N?^EF2d;JOJLgl-?Lm0UQH;RX{%&;`+Yifl8P(Fw;PeYux_TS z6e#~#_eH_}@_!w;R1~tsk9w#yfC`gMGf&<`%^|??Hw@9`^S_rQ-P|rwzq2R)J4_q# zekG#dSj+|f5dQv;%31>f1mWjjIPKR@$#hS?TwovI{iaEs#tf`~Ibx!iGyZ||Qu%Ju zh^N#za1u2U#oS>3QhcTPEBzUN2p1}xxGOcW8#YES&wChiv$5PYG1W&}01L7;I=!QH zK?In3SEFC{L6mCYD8mJ%ES~#xr3@~#(SkeCs61MivRcx?yO)#{8za1?BhbFC8u>4m zP-g8%Wu#c{MrJd3$v(c>jpy3H&vPB>nIopMKFjL7sym9C8p5nM@lh{?5>Fx8t&|MA z2d;S!Hm&u(hziBlw-#!Q?C?R_DjS&`UE)^y ziT9XB1hnue`n)!z-D+;?^$|~S3N|Yz3%z-ZwlVSI3w>A*es+ycX5-cjUY8=x(Frs7 zn@xysjwVGF0_w=XY30m{8&{SI7s2s}cj)Zrp);c;XqrI5AgS6NK!2kk2M9x2Ma`ds zDXR+d%Xb4my7+8TtxL`8&H7_I1YY{iPbVBF;C}A|)UM9tEgTgKPtcng*b;{)(B_`S z$o9i>*Ial_WPB#wOf~o5M;`k7khV4Vr<@iv4z31ngky=9JiM87%5P@9^%c42_IH*; z;-2H2p-_F@I7+l#O&MxxW$Fq!GmG%L5iTH)LutPH<8L~0Wuws68B>lC9I2frMK=_G zl>Lha7IGvl+3_IO;rxUNjpcF}&#Es3W886Y!L;=@HT{3^6D})TzMR)TkhxeXp8u6R z5cdCzEO2nK{?GrA8o(2K#14CNtHGHKnRb6JB=wR4oB$*gF=*DYU5R`&ftvaoD~T#K zkH3C7PBd(6&W9@H`}G$0b^r68h}YxyX&6%b56drpmf)6v|0io;Z_3nMa`3y>2tM(C zGOi$3H)#Lo^p5*uavGea#}i|hH;9AaD^sCQLBtPxAv2a90Lb`)d`5X-VSM799D112 z?b!lMiyPJXX%prvAuMKvWX2}yjhVBXKO$SoL~fihAdOrIG9gV5r~W>=5Qsb1a6$|- zxdZv*N~ww9*3u$x4fAY>JSHZe=#9{xr^a{9UL+C~=T{-}l`{Q}CoAXO_=u2(h1!$= zs5}s#x1vmf7uTtR)AwoPhV)z#4>uT0>QdOa zcgZ+xVHYG;7!;r9X`y`y#)s-baP=&~+U|!0N^7thfNHmmwNNmAJ{69FG3y*dykY-s z@)po^yfG)lJQOToQ+zmPO)GJb<{Kepy>w#bL%_Pva1vc9pMrD%dU<4iaip}09bH;e ztX??MS`8esn0@5jiU?0U_m8GZM~DAsq<2#7xQm&XBpx!=GjRV1WhCe}cj2~vJ2uxX zHPYW(fUhsnmiwM7HMcwxLYM}-Vmgeja2qt#oHjS}tZB8p?qXO_uFmz<>}g5+5-RHWChhv{;(=HP_{OwH8l#ElfJcWMc4C=6hY7T-8!8wSpWM zMwjwl1(GYX(^#04aA@V<*<$L60T1Vhm2z|pfGml1a4upU&(zitiKYx0YL!y(UVcP* zgAUoJuL|qKBINXKa$3g#^~j=E0ga~oVzcgNaf9#|Sh80B^8Seh4HQN!Zn&M=Ktuh% zW08nBGBsjOuVI4IKzdQp+@(ue%JA-Tzs2tJ0C!eeE<=L?eTs93*2RnqDN}`I%}Q}x zz!h0RoqasWMhjW5r5h}r$5F~am$9(z^B(EDy*sA(c0MNbyuCWLb=yN6;h+!4^hh<#G!Oofrz*36ZPf}-9?r8IZhnY{IUm*(WxiX(uOYZ@- zyxE?Ta59J9pK+R?hcjH4C3{5$-VAm`gp#CTss`Jo5V;r}Hve=Q8$NLj+s8W`b}>&q z{d-*8D?_6R!!~Dlzv-gP(Q{)HY=IZ}iQ20%XvrBrX!M&hQ($2kl71#yU08%rfQz1X zG*7!yl@#T4qWi4FHX7Nl?0FP2ZD|F9wC-?pAI0NlBY$bf z{X#ZvE!j=QXdB7GF$7x+G4ZLsLS@vMleRlgWDq+$zGLKyLz~)a_7VE|oGo$Z#nFsN zO_F%h4%dljsY9`LB&E^AUxz+6fG~mG6Kr1Ys+xSWrlJtND{XY~#q!fTzKk$4H5V4@ z=o57#RCs#du{Q47)W}wSC2tvd;lWn#+?je0`(X!H78jF7`7LKh8y7#6NuxI`iOl|$ z`Y}hUm9B+r2>3l!7{rnS7y4_(akv!dW^!vO!;JLsqdA3UC2{d*MQdpSz=k1Kf6cOY zAPjhP_oV`+-Ci?hHgzl{4xNR+2SotKiLnL0 z%pF(epC^F;c$+z+oCVm+>U6^nLVPh$_P?i0yq8>mMx@8P36$&Z0P>O?_-=Ys&Y#{F z@drB^rtwBRnb-zir_q^oznYqj+=-_{G%O}~Hw8gsKmz_g6wsskS!m*5EPKjhB<;&!QZ=fyWIR#uUnqhcDK^u_?*g}_>q z*JHb%i>)d=N{Li2pF51SW3-8xpY55SYtw|wYkDXtL$9xw z^WS5v$_;K8BK_jUn?H>8%mhd3`l-f0xC_i;V{Ci_U@&%Dup2d33a<#iAiihPO{qv& z;HVhP|37i+|0DbW)!K5g_^ojNAtusxPQYK1#e8QW+Lt7i!GNzyymdYi*J>`wJH_oV zzCY2(lnTs?z8!rSc|YOBlu(~}N!ey=0KQO@pR*Xwp1otor60crwG27mXVW0swj-a% zAGtDh!WVY;_(9B@&fo6sS_W2^`c|b6zYqtFQNM=*9?H~!9uD@NLBLxkU$$Bu>%{d= z1@l6Ic#*h>biq{(LMe>gQsPrIvlCwdxWH|YH5;Rc|p3G(80xoHn}hR&dBV(HWH(f4Kv=Y+Z+P`RAJ}x;JyNGH!4XC34CsMS$!+V zGW;5fiJ*aH9ueS&n`;&6Fk6{T;GqG7#0bdog4ftVGCL#s}C9rNw@fa z*gD4;O~Q6tx9#cfX=B>9ZQHhO_uJF9ZQHhO+qTU;-`*!DCpr61C6&~Vs-&K$D)(CJ zS{048lmKA>RH$bBBb`QNhzwog4mzoehMG!qGDwu2%Q`o@2_ERL^EJ7L)W4A1-k+Z) z#zRw{ERGv%Sja1$%NbBd=5Rhxf}#vmtR~O2msO>-mGL`fzrUZ)d?G3AFRns5{<1a2 zFufjiLeE;-j!t1dHdC%6Hn7)u;LiK{g=T9^696Vn+rLg};1nil2}Bgb3{M->7)3Y8 zt4AZd8U(~XlN-@K1k?(6*r`kcK{K{+DNzN$c51n}LT`4N3oz_0uPkW#bU0MNe5M!J z|4g8&z}ZKr?tnsMjpDtQKLRC&x_#~rGHJODrauuD{&6%mwg5|mI%21aBc8ToQpj#X z?gQKi@Juz6d91#A!sce2Cz0nJu0vht4HCxjS;IMxv2spmulo}?tmQUJzhQu5xR6S4{W_*px>+zFMyx; z(<_udQ4!bp3H%8@+VAX$fAdhPEFinz7hShl>oDCzAi1>qHwsnxJ&T67w+&mE`5>aN zGWY({74MI}V~9Q9&H^2J6Fsj37ZY%e5K3Ub5FmAP;Np_gij3D|0?+~@Hm8i9UgG95 zW;3phsiiatdByuPLCuzi? z;)WZ{C|>`mmkRLkv5LvnDkj;jeEt=LDf{L^tuk*>*;3_ciRPH6^oxnx`L@yBGD0hq*4(uCv6?w*f?PC0Lk;nb>jfD!ahzO^Qww%H)gmR&g)O{XVSF!n-- zwwmI5bAbo)+UYj3uBs|twy^dnF#|<5g#e2jru)fheLJ^VEQKaRTyxmfyJ?u2nRt{J z#4gE2$8LPx^K{R8rZ|;0X*M9^zM?`dWT9n+OWK167vZ*7uG<<|`nV9Z%a=n{cFS1hnm46sy~r|2V}5Nph^aZKV4<@b|70HRPW{8ahY=viP4o0CLsa7d z4MBx#x>QW-`8IvejSurGAkL>xr7*j7WGx-D$0W-(rpy;FFUfO^BuJUy7K+(bcDcz$ zEh1bBD?5Me5a8`r7BzK75YyTt6`|OSlcp(TCKNWEhpT903el|a_=qGgKl9HnMWkQ- z6}(>Cd7176J|fjT4+R)#Sx(B^Uz1eLE{3YF6v<=!^CBZ8Nosx;m{93pj=xeY&U2Yg ziLoTvhePpF2pzAv8#Rtuh;M+OZI2uGOdHi&Be!mD0M%SReV#6)fN!^%5Rg$gXG1#C z!O^^4s7ZR{1K5nn_FY;OQ+;uI+Keq8h+_3<#da~U3aC!c8d@NYrcJ`$_As zpX&u}H$KorX`qi-^9c0H61xL%*Kh)zcy~(Nvo~*p8-^;zYFyHE`FuS;t`|!RXAJ?~gI7A@a*d$fYj z@7Dt39T=?{X37Y-=LyNMtk9Beq0TBf9nU&_wJ2(bveJyi6> zt$?@bjQx5|GSC(ISdU2iWAo+;jH|Vw5%MHF61*0DsH##(R{Bg_%$Uh_%2=l>U9~e6>abUCdjcB>$1WhQEz;kBfC1I_rYe7OSPIzIGI@ZW`p!N0pS;%k^^dSWPP0;N9& zIsn;)R)8HPWmh$*-gofu6xJpEfplluN}o2J8Uo`BrpR{UHrj^|9df&SkcT-#S;d&g zpecWs>n6i+G&>@zEh7Z=V3a#6DGuuHAfP2A_Uwc{MoFg??$^8oV>ye7;02@XqNi-c5ZMzAC$J< zC%$$(uEGCUXxQoh|6f%mHs=3Cie{^qLxB~Vv+B*Pr( zXKYQ9NFoK}|LG(9wC#pj4S~A4IJtOLRQ|rm$)nflc^8oC`|aLel0(Mp<94u8qnG7< zSGABJPi=lutoD-{m^A5sSZOHwdbTw5_-ZLqT;*w%}znov2#U0AT(kkOg=@ z88`73`*Lun>W<8rNgCoBG2|@IZh4Y+&70YnU;o}Yr-zvkmgwe#E{`tCF=x9m7 zpAS_CTnQ2T__gEH+WL9x;G}6fb^EoZR?@)U`Sx@_RWi}Cq17NG!tLvFzY*4}#TzDJ zKj4p+z!X2GU-HmGRs%R(0D$B1rm-va$^C>0?Z~b>!acbISh~19c&QE3Y7-XzLSM&J z^^uMFBUYeAHcgg&RLZ-{2kS=DBDowsz#zK{`ctaYlb)-I_facfEBj5m^lwd!$l(JX z&Yf8W@xPJKxXA0p?Ki$wQ1qS1@FYPjQV~fdZm%ND08*c7gT-1n_piyxP_9pP6>9>B=TVi>ZQ0+7eaQI|1xR8m}?OKua$(VuC`l1seQ!3v@wu#{O(VYk6P2urJBAW@WW& z-K4N!?I2GpyrU&lXDqv)bej^QL4g?}75e%yvBUQrFL<2*aI^E3VHk}V6T-tbBeb@% zHb@-=9;WyM$sDwx-$x-g0FvMrYKR9DRbU-u<}U0xNU)C(;ZlI~r85rnE^Z^-=fLyb z@0D=tvB0mezuEZOY3_N^Nu1@4#GhX~={R%cuB)p~>xLi=Gt#J%pzOv?4P9h$Ybi}$ zyTM6ai(Hrmh+LRNv(fQVZwR=fmZd^m*s5I#;j@wU^@)9(?YtOkNc^@RZd*+c2r8mWJyG7H51_Gu@62SC-cuPc%A5oaPat$&q{@dFMjOFP zk}M=3i4{lkAIr!tgz{mOKC!UPmz<*3?xv$MrMw&m1UKrh3n}JbCT3zWB{^?1>6SI- z`inI|nAzphI`vsP2vNXH(zCsk`@Ch6~tnn9$ha@a`5nz3XqMHzL1T8Ga!Se zI!O2rGD8e1qL)D{C2o2Q#RcI z`X1_dXnjkZ2mwD>VzdthgN_I60#?P>kpjje+>4}&WvK8$&9&l#77>R+9f6f893hVG z1ccd1*`1;uN_c}~AcXw0*7#BEXM0bNMvLR%?4JHT06}JLkiDyNy@?l#n_GDB&C7Juz8&ENg01uT7k`Z+E;@E}RRl7>4L~UhJL79&$JCvO*#T?6v0^VHJbF z>^A1Fm#~^3oDy~{3n-M`=fP~?;M z_|hS_KyvQQs5k4NADgr3T_x~O62v;oZXxEt&s zZ$4HVr8s^P=Z64trb?dAS_MCI`cr5h@wxYKGitmMo0Mq=3jJ$l`%2G18!Nv-u^&Ip zoy}I)$IM<<4)ttAH>Jj4ua!f9360w=uW5-V^+4(33n66mja(3ywl6o@@$K3DpQSjt zoh~mxV?J0p(crbFLi$cqKB{LyA?mHPF}zzTMa6cyYtBoM6lZT+)-FS?yj*Ak@MiOf zpTVf$^`-%TRKNf1iVMbgZQg)AS!Ay~3&+3=D)G0#27-!BhD``Z&Q?9(iU8Pu_wRW3 z1wpJcCPheg0DW&LYH@+0+XO)rV-@j@xXw(T!bi4{*wmL_vlz`hES1kl-u)&U4)MI> zwaw`}nlKFQZL@&b85Tm+IvWnBWnA@@f=lhP-uN2Vp6drZYC6sSn9nD09d5O$wx&Q%I8bX+~{egw25G% z!p%f$&!F^!vPEbuBwnah|GiFCL1;bPHYR#;$vbI1$va8axB?sXOigp*NjJf|WnGCJ zc=GEVO43VN=Y3sN5Yw$dw%_pWY+8`XMR|K+gsD_)?ZjlKcVxN)Cmq6n0NAVA@UDWnyhLQ7_jHl@w#{s}M6kF_ z7ZX#-(vla@om2p@cV3KbyTOzn8Q>rcKV7Erg5aFMGqy+_E#u8QQ&qQ!c>Qib)AJaG zoY_&Cg6ai|ZECr}&?gNyL+1VQ{kv-q7VWJ>#vZAwp42V0X^VckNWEL6(`z-rPj(~m zkD}7U|CRFyO90j&xmlx=``6v_p9F<|sL*5Az+cV1-+BQUCnCLDnF9IzvHEnoY46j% z#-7{?3aG+%x-CcOorMaW?)cMkxD~~bM1>l`muAV-=D`px<+ZL8*T797J27?Pa5TK0 zyYF2mn_P0|iJQ%-MnN0nVgZRIXKksgR`_(`-r)5{H!a~f3&8iyp3nHL@}~~T>BL{V zU%10Im)c%FwE)PxnlP)~p*l!S@buj0aS~rLXH>#Mk^#(Y&7R6 zY=U!DkU#`Ih-tXcoCj;h3ZKP^y7}HWpL5-cnrmxuHhqJGo5VgawnhU#=R@FP1Zym! zP76s=7T6Tn!c8ig%v_9xG!r6iWO8?8#T^eQw>{||%>JoA4*d{BudU*8>>jQEXWXqU z%Lu_rvc=L+lG!4Si#R*GRCMg2hit2|HH1x5h1+9>94KsL$RA2Jv^V@~lg&I2={@ii z_gShI*_>zSVt*0+ZVRe>lxzq$o;XYNG_j!J<#Vc?MI8R;?XoN}1T0f}?VsH@X@mlB zPzsCwa5M$5Qge()=*`lbx=1WZLi1|ChhCg>AzArsuXA$bSfnpPzdv=z6p!9eVE(0G zn}*p^GLHC;f!R_#S*l*ndI4%w?Gc-IKP&hu^sw;IJ=Sws_Nxz?C1h_m(KF~znYiyZQ0 zEO7H3IDqp3Ji4c_<~x}dV@b>4C?ku6c~C;B87diiNJYIKIO1O3*x00DH)n(lbGpL1 ztYTMBnAb)N($FdV0Ud2!f=e{Qcp>r66=F(8Q8>Iw!WSl=bY)LOPm#2s6Nv}FM@Qd( zqq`UE^4aeiwnQn3=%F>cN%uJfU4JZbZ^8V)J@3Te+oc$imx*+MljyEjVk;kNRN>hh za!m(bu^FgcYRIZ$Rzs{!!GHE_Z~N^t)etLnHE2omWFv*upfvAyK}7N|F_^-fP4UhE zRN#7hKXH`DZT83`#&-Q42?PpoW%3t$Ty>72crJpTqj|XRTuq`Ol|hg_`AoS!NLTsp z$VxTI;Xr*NK^H4YxSG7%c624kUos^nOw2RgiIoh+E<&MB(NGl}Fr|narHtEd%H&qD z=JoJ9{$0Lw{@!Se<4v8t{#j5J*(hpZQYhzUW8&U3R~IIw3KWJD=pq3q^E{>+sAt&Q z%+FX*Z)^)aDk`1QfYTASmts>_oMTU4-g5+w+wTgobS9eOj~8B`kV4i7bfk>lx%>yY zY8^Oexp7kj-o9_AB}hfZRccoO`H`hT(W2PzwL9`+KN-O|x0$>*eGquXVsjb;g`Ut*ZtGj(0T~IiMdP5 zCZCLFAtmUPd9pnkakorN5l#QOy6?6yV!`&Oy~rAgzu2Weltk^xx_ zMi(ZCUm#*XQ41g9!LWHmHz+2@r z7J^)XG-{1jeCfcKSSBA7Z9ejZ@_WheS$J$iq{BWdzc?|E8(gv| zKQhs0Rsdx@GN;h*P=R#(4>^;`l)NIj862ldztPDxeAGJskl_YDp*=xRx=vU%wL~l7y^$4*LZSEiyx+6h_@ZG{GO8 z8+A}4N1Wxa9>iq&&~DC|K8|YAMSXmh?U(PP_rIBZ4bkKf5*SOMh{p zCXGe~mV57sxu&9@HglUb&75WfvI%auhjimfKrpaaK`Cj68o;J=w*$i%n;=3Hp7a=k zM-3_>4E!$$OB+yz6Vs=;yEXCVE_06YE)Kmm=;5k57HLBixN`n7#uxX@&j4coSE70tFI*Vdvh-b4vwstl7wRh zwck@t`&%$Ihq+D-daEFV3&Gos5eV;IdpBg;;&11E3hj-p~c*_nEgrEfM^*}S-LdNai(c4AJa zINjgh;JAqP4;w8%tl2MfF5-HcD^FFcIm_I;4&Oh3sh^s@@0bUG+{cLQvl@1mT)p9U zh1LYCCID@-a&v^s_H1E@Lsj9rjn!JgMUPEOY01L`N|tB;v?#*)KJxAIevYBrVMPD; zA`z2^bEMcv>mG&-Tj6?4w1fG`D%s>}{`pJitMG_`(AJT)7duX8L@-^+O)oyI)*wGNw0+AHEe{E8nA5g!!F2S!%as}u)vKd|DAngd#&cibObLzUQF}SQ z-hiK(Ig5>-C9z_RWErbN#GNSK85yWbUcJPc>J>jNikW&@4+O+q@7FD3#;lAC2_qq{ zktRVOtwy6|^!8?=CD+Juo4EBqEg}^nS~O)#@tXhZp>3&tSPT>g_VDP#!|AK#?obbO zGJS2$yg3yhH_!v82cLuQ;AEiOhb2}%wD#8}dS8&DH%A8^MsVpUmGA|(N+ys`J2GA3 zi);kI{DF)5pR3|dQ9^2}MYn?seq(TO==_b7bok@R6*=)DMck#2e8Y%i6ebc7VNqeB zeF_ZmTP^(s9TsDbOTy(h$v^O6ZN+mt*jV{!QwzXSq8G!>2%1MfY$>VLAN)mV%{F@# z6b@f!Yz40ZE`0nsj3^|8kc2&_W-S&=r;3X#`f-mWzBA%z-H60!4iUHZahC*Tkb*UY zBsmqwYReMu3OE>%)<8|SUq6!dj#jb}@nLX(4{N0wr2?0Ia7*2jUT*Q6ShuE*!DtF? zEecQ+l7@r4R-DvDCfY>Nw4|blNY8C5b!>$Z>DO^-Nc^-%K}ZC(+Zl*LnLE^qErpnk zQj5Eey-b4c9zN6l-{&BI{(4?D5w06{_*{(f^xlSosV=Yeu7aLVj}pA>QD#Ooth}hH zw;CcMZATSBsu_e$>kiP>m9{#kR8ac?67lra$0ME1p$jB%A7~}VWgZAxChL^2+U;!H z(&cC$Cb=F4uRI7pq6TMqmDb3ZCTVilO^u#;q_yr17V4K>*HnM&NKC+R$r!X;dD@>) z%WJ7AGF_$(P1sWNRC;4dMf&tK4f@}P8@=V|*J(SLBx{vp7_G)}d^EM0;A?*Yu1SAC z93Pf@WjU{v80o~c+m1iGEjJZj_A#G9$l$ybN?Z#hSkDr>D(bynt-LHTiJ3 z_ljUb`_s55Qd`v1@rd-Y7s+QXZ;*Y~93ZAN#BuSwHF{7ltQKz%M7s<`$JG%#v8@3u zl8mRYLo~>n=@NDHrxcVcxaX;=(zmSpP%kU$!|yQJJAu|Gw( z6LyB;e93(6Mw>H923fV+$1I0@V<=u#X!J8~d@h}~c{rwCcA4$&6S)nW7bR4YS`!Jj zjJuf4P<4!n7>{E+&fr@OG2>`!w=?S^-ulRXM0W`N1W4I_60RY|D5yEFj|4_ng?3`F`fMZ(;_W@%@o88B+bFVKzV%%kw!WeEx}SeUd-{7=OOicDv{Vz zlHXT$=*UuN>TJR{j-y$-)OsA>zYRG#WdD1pkIwPGp?Vop1Z4l2HJ7xsVzgV}eRuR6 zwz*+n$=jvK{_4$JD`J=7ZooeFJqy*jZlN|iS@@CubmNmKq%fHcH#AV_6KUK~izpnD zg%>t%(pBet=$A^oO;7y$xCH{Z{z8odOiPIxn zwSNP=A00Tf;e@B>{rjA5C8a^h^<`?{WCaobLC%i%^WZB3>VNgWS0`6Ijs?7Sr&upq{<3 z`!eF0(90SNx5$8bmDaCVJ-XM*CG5T31TEjg$zn5lWZcuTD|?3`ZDf?U+sx+NudBKYo-r$=MBDaZ#K8(=-9p3u8tusGf7jU)s?i;CRp28 zN`VIDgP_4Z=YON*lC#di^TFJavNM4|>GZ;j*$@2FV0wb!mlbp&CFDvfSi?vm^DH32q!Q#|Ms2Z(MSSR=h(c(nV@0iTq#GAPVxd}5!Z z=%@HwcfSPa_TY<}&xkb-?7we_kQ7d#48)8iQ;3R1L&3e2a&u}P7WhcPp?ZZ!Y z@12l;XB8N#GC@7Weif?v=Z1g)K z7EoP;vTlV-2sTuk!Ye)eM}c7e``xttHGPOVcNcd$Sb~af(~)*P0+m6~D3_?x(mW=Y z0o%!>(SXpbr)Xe~=mdcrK}BiElEg8{n8EhCk_%blC?867LW`j6cbzy>nIG}tK$^H= zJrj^(A1%2H(CFllbYuaC9})DW-(~*ME})H0^R6E5(2HFD`ihY6yw-Iua%l6f1Lf^1 zWtEC^31|$_i2^=(!GdiLBsXnTUx!6AFHB*L(CELXZzp*as^^0L%-q#X(iFb9i7g5nVc9!M}dYx6HsHw zY(h;TMbV6s6ry#-W*ve;src$pN;I+UfCl2(!>4CsTkKqQstE+U*)~y^_{mY@81D9= z;csIT3nxZhz{|FJ0Wsrj66Y#_;t*k<4s-b;T-@dIS`)WJQeVVOtV2{1fSsv~B_Zja zh-#ZVClwI@*eX1eW>pZjYNS)70&vKalbBV)V#Xjc7G{}cQC^wW=Ef(;H_avuzku+^ zBar3MC{a|-$fTv0s=T>@Hl>YOIh$V|K*#-HRT)S5Jw7Z!J3xVtzM!)pCv)Be?#liu zqogOt^4`9k`la}qTE#~g;8yjjx~;;ToiRSu(TK(?j`=TgV+TJ+Q(zZF4zN~-Sb>4X zh)d@h#V&KJl*IikSMcb$z?z~cXADqM8G_82hcK``(}4j`MeK9Q-XQOiQaRsMjMBV1 zAi;wAz(5bNJjQ({3-m3x%G#9BqDj=|J(rziYyAZ|wVksZS-^)D^|A^52Ho=ON}tq^ zU*p;_H(v>QCUF&lvsLRj4kJ z?MF0nRH%IfSC?UGC}6Q-aYUCP^(wgr<9U>7So08O$Z)f)1_MpRWYoh1kRUo2!mug& z?{#rqmKVxg3?& z;YEz^>($@^Cgfae6=T?I-F~FmN)ItlxACPqfDobOYRSRx2jFos($v^?L_^0nf#9Wg zd%k=A(rrDqc_p#+0n`)Eo-QfD8OZLtnxxDz*Puf3ryit4WFFXBIkq>LJ~$tqP<{Tu zlSt(LcUt(oWKe=AekUaeEJOG%==f5*Fx;(bNCvo-A~c)Kkz@ch2Hp`0=kO=kUu^ZH zZSqPmXd}ag7r++3$-p_x)Ths-#QL|7=8_UjkSopA$(wq8c=;63#2SqX@$5fp~LB-uLyq1(H#CCZ&mP{M{x38Ysj_C9DM7thTB zivB!pYz@oMkn9fL}ysVoKx|c2GnY%OqcVi7+r(q0NX2?g-+)Hq$Okf0T!9m@1e7gvg z>wI-zNQPhIn}Ll6M`Jt+={bs>3^Rl50y8ID9nf65= z7wwZgCGM6bW1L?RY?qw~C&3Ai?PJ_rrOP!4gTCmb_GsJ_KV^DdG0tnBv-TjLrLA0C z&47Y0ZF|K!jtVM%WHU!?bS3)8QOTOe>AKvv*w*Y)c1H)3x_8eQEyhY7c zp0wjK!+CnJWg1kVMi>Q#M@R&KN_EXgXo7Cv3SsN{N#4(Pw(Q8d^HnJeg{^iP^X_Cj zNO*4U@T|@_kJN5Q82)Oj_Tt>k)&dPV2T7jvo8M-@K%-ydMA+CNhs#(nT>vdk)Zb>ho5av#oKx_bR0kbU{;*LCTbBf0rDc4!@AQqo^}E-=eP3^T-_I6*Tx#^x9P)^38e*7_VYBPf@r4`vpSJ_#bpG2s6|FxRtWh zC#nxv;kI^aZs!Gzbi)3Sc!k@ByTUlLkk@ydRbN>{rhfC4|E3sMC~naKll>F7e{dUn ze{t0!XZ!Z~G(?;8yW{iE489#*4L%X=bOxxAwk?1Lp=#}gMAQr@=ID9kzImHxs6(v% zLw|$mtN4+pcS|hiTT1S*>5-@P5di44=5LlzYIPsoS+LFj?6{`HqW1y05v}Y<C_La_NXO;jq#@}J(@A-Z_N$I&b$N1awB=pNsbCiR= zF~sCS3`RZzZtWkY>s`mEFh?YQ*BR&a$(CmFu^UZd1#G0~>7#7W(uS99_z4j5x%$y| zgL?9BV8oGI2f<915Fjyaj4Uu+&v65q*f_s9J|pTA|Ojc zi}@N@8KgF03qF+3lH;egb`GFxWh*2K!>oh-^?WOZ)$d_e2F<#jf=fX=5lle@L}55B zyzT%H!r8yAhlrW zam4g0L7Zi)uxi4B?j!3=a7s_nbYdq-$!QJL2dRUm~i~;UIvQ4He6A{Mb6$`_F zGc?d#a&QLHTX{oASgD3?yj|Xp)4QFlPQuzCwOnXT+Sxg>#78*3#}A*R$l|gz_7@(D z2QQed50tp%G$UU*)(qe^?xayz`?~)XcJ&!;1(_|Lf~Lu(bgZf)Nxdi^K@;^L$)c>2 zXVlHV(olWry+stA6YRJ72sNo5(S+i zZauWBkl@-ROkB@MeNK_ZC} z@sM=I7GoNNsEsC8ZqFc2w5zw;x>7{V$W>9c9G-aHm>1IV(z7PJ^`Txv4=I#~Htpe0 z>V-yhwYf>yPzbPOEB6p7tHDIpvGzRlW)zzoek0R)g8r5HRxM}RmxXCDXe||ZRhqaA zX_R4dPV+N1N+J{}o4O#e9>ShI!Yt5&9~ZsFdMcfvX2e`M>aR)>M0&8#0o7+Gw_eH5 zhMdEv%7Qa|$Egevf+A6E)2#?jSATNmhSI0$o^O?U^#M>Y)4ZniGW^^gz+CBh=%}y0bbG&6( z3s56coQ&`oi|#^ORUKKKy9VI8h)W@GV9O>zDT42YhIc(4@7hBlzRza*s( za^N_n?}E)1)Y^g_{&>0Oyh^der|F&@Va)O^cmW`h@v@tcLU$edb9XdhkkiFeHY^?w zr*$OzLWY@8siyKPBn3PveggraMsNzwscK!rl9Ps~?QUAM)S1I$ge$RKDj*fr3OaC& z<7s;k@fVpQTf-#Y^_)iag=_IDd!*E&9@2fc>jW@WOYpMFI*!6ip666)No4!@B;hlX z(giuu;zJcee51>6HBFvqyP3l$j90MS)Q(AHc;FYz^y}}p=X*pRuqVO)vw5@qXY)>> zTZEtjRB1@XV6*+Fs%X*yqKV8?K3*p`r7(k8B%p8`+;eq`(7a_sC>&%BNZ`lkiGaeg zvaU;@PTigR4@G!P4C>eC@vSZ*V$96qEq&=83!uBz!)O8^_gF)s+v- z&g{UT_06ai*I*s1WSFbsD+?U=XCTYvZjA~;6F8}R2$0f~`j29?5R#EoP)={obwg;Z zLNnPxZ(Wu1gvZj=AS%NdE7<;Nc87JTyP;E90V#ePvg_SBQ`_s#+4AVnhP1(4DbqC~pfK*~S@ zL#yPluGuj2@zx5+aXmS7)qV5D|$!zb_%m@2sNDq**%oW^}aJua;H~3t4-b}B`N`!kC`&Kd#m3c29P5kJ#I@N zyaun9dm#tGx-4BhA4)7EchS5xO5KRd@#ch#k#;GfA5w!If=r^QQP<3#axr?csBr&z zM2SIDS(-pVM7j(fLn4thUFnn)%rkDAI&t_XnYfyHjoC@4KCdF19_m0TSC8nUu-ySjZ=tSg1 zqV>-)bdz-gZgP7{T_b}MVTOdIvN4`sDq3nt5`)i>eyjbex|^aS=O`z zAFjVL<&v^IV8C6Xuv4m%6yX?8XMMZDc(d@-8eEf_4I97;1`~dPP4}rcYeYH7>c)&= z`fsN3hg`<<<=Lm-VHjoRgz21xqaQ6c)(0o$hWf`kh3#%X?nOs6Hgtgu=aJ4XLX9dF z)eiuCXX(ZGQkB>2T1Z>(-p^AiQrNo20U5n}KRdTeds`b!8wxAQphM_dD2m6*v;9dT z0wK#=Xe@Ic{H;U(L^^mfyfVCoD$xC|$7x@UNOs70G9L&beJD`n(22GJY3T}8Woje_ zi8dhtL7&_C`t^#tmYiw?HJ^p)#t`3i2MNFpX`2;wVSkL7@S;?d{WOtvcuHExJ=~d) z2t$D;fwp1$lkmA4css?U%msr94ws-ouRc;yJH*WU_n=3(s^v{r2%XrT7LS}ke? zW^l-R-n=7GjYT?I&J6EI`91uyykMg(hK`ZAhKe;5R3QfHMvgQmU>7(8Qbv>Mra3^D z>Pkl-w5MEK_rJ?0q8R5CA_m(gOwU(1Q}&o*dN(X=U%~L z2TAAP^!_-rK*2)w_)lbl#bRnGVk^M$i9I}=VDPeYQU&+}~}pES6raDWv>0=jY$@>)Au!<qpUq)Fjv4m09GV- zj|?k&bTz=0RG$1}3s%Ef$hdws5thOZ4P9pn(+W5T>6G_CbrGs+Dfj(KT0W#!<7P>G zPO7Cy0(fVJq8P3PyMM{V&^@1l-fWjec!Co=>s373bv%6ZQ6Q3DbysBce(**B&NCO+ zw3vu2J0*ejpyPsK8LyMT&lb=jYq#_&)N-)t33ca+|FC}`)PAtjBWZX|Ry9m#LhJUk znu4i<*+V6DZ4NzL(`t+^^>GS;R%487;`#D3@RX5)&*$SQZ9;ZAteJ2&p54vzk zF55&7aabs>n1TWO$LCx!K~Pe=Fclw8F2gcOMeDDESVX6Q56l%tW&>cUdF>ZbZVq>O zKhqRpy5y$pHuse35W)5Wp$7=0tN*&hGf&R=!-{Y2Q3AyR++J(ot7bLM4!p4eboHTs z2#mKZsyo1vvrw3CXHt_TO1co_u&s=`Z9@}+qq)*tkgjFJ<3$>)cagA zf;*d-e2$TIfNQR6EMw{(CQYV!B?4tEZPQXi&Sl@VSzIK~p)ahdnI9MN&MEuvJWk9f z%@dp?v{d2?xA|zFO4^wlpW4XL8^@zr_^3$=Hpd9|+7m?bIzIsKiB=GTBsL(KZ&+X| z?!GOqB%xOgGLVYZMSf&kztdhjR^9ykF<|)3nS@+hC)Vy$nG7b5WVTe4#&>iVcs`gU z=MA`E1?)t3{58U>EO>o>!{)&X{ioc-I`AYn|0yK- z*Cm*ucL4^Ta=HPAmLl`@ui5cGpJp5uqO0R*J*hCbCf(hu3Z-uGudQ_FMR2H11Z=%-WZR!@IOD7d&grDPyr5> z!5ASSdLd&}SI2~+1=N!R108z~-dCM+fcK_=Prl9U`G`k!>u=>92tdO3{R#gLgkDeB zyK>KSUN=x_KQ}GG9>e@HH8ZrMk}8UA6|O?q6cqtL@;<+U@}NKW6J2{t?-|$<%B>Ub z>d7O`)N76}^lWV_xRSIcRDQ{i6qGwm1kEFfdBID!iTPn_poQX^%u4z3*9hz44TZ3P z5wVL8t%1;&M*UOzBcKDT@qJiqGbUT1R7f{zTP$E1a~t`*8U-;54?;S6dYRWF&a&4} z@_J1hH--$>_H*z1;^gIDe5B-VZN_D-J`_((#oHyfIP}|*29xUPL^;luG7xDcNTC9O zXQUNO)5f7`h&_Ms^gLP(u(M9@+s5Mi`S4Zpeyy7>?|-Fr3#jLm6pxf^Alqcfc(lMy zhQ(9T)<*?qNku^_Tb6?SyAVz@Xp$5$qxFfiYAIP`qYAk(UP7!oiWpJ9=Ufm7^*E`D zbE<0B{hks>DA6|O80Z(im1|sjBVu8cr>N!L7)C5V*NiJtd{F=;Qp{Ye*DN;x7q9bZ zIj32K>*k$<2>6Iz^KTXHFrh)|)==woJZ*_n>2ps}O;b4%+43`vYEm(+3pIvVm#H81 zN+Y{*w?mB=O6sdPz-kwNz{SRD+hx*JuR1noy**XC|AN_I5tBD&REA2>5BpgA)lzPz zD|1(3@yD_dGPR=HN+;2QSd4Ju7QG-H`0U6H4Nnd>27pPBRU#>Oap3Z=1YC81fW4At zYd9PJp>>d?MytED#NBvsYBdbDGIW)#-E2lzM)V#?xbgt~SdK;CG1orm5wh3da`jMd zPyC_n&l8wQVG+WML_gF0hI>qTPTWJ`nh3Yay~)`TX1 z((4Jb#af#pD8C)?w^<6v^aTpZxKepM?MdOF0${ssG5%!tIIBD#bp;It#(oAEqJ7a3 zo|?I%+Ulglf(jK5MT*1|-HC>Y0kc*EqB4jdEY^OD)8TvfUaJ8?Cd;Z!q8Ey2G`BU- z5VJ!u!{x>HrXHl8@hP4vbJ0c~Wv2nM)+W)9vIp>U#zbY7&HH3U8!_!cBDc-~ z_OGFh%u%c@@aZkMEFYr`WCg2A&uIVtvJm?z4@(nWI7FA`Y{-*5Ahz&jbmqFx930#; z$Xs~SYNYAlR@eI7fkF|z4r$cf^UL|+RTS}N z-mMHHF{5O!rv83GpX{iwXe4H!A|s_s3lK_el^#!Bl5bN=VjbkjtD}KLiq^zs=&z&{ zFNF?;JV$vog^Vmf#tCHBCEkB&y=?2JpUow9!z{w`;D4bGcN1C_cN$;p+(?~0G)@yc z3&Y!BNRgroIagVG@D~Tg=lw{YMdcO%c3Mg9I^sghcEvCX-To8ERq)-Ck#muu$%60;2%-<1s5N zZI{tkE?wI8#A^AuUZ$cswp;C%WdPcS?N->*5PG)$poU^LIwTF5EovCJoLB}CgvbPo z8zU9BKZN?d&B~tVpAyM1F}cBq#ucw9&Z=L6YBKlhm)u*L4Y9OKk~@EvIGq+IvdE)v z2vBC)?lLMEDgnFLw-Me&4E{JGrr)8{4+$#NDM4yJmW?vuCfhoN|;Yuf7IlaH0;O{T$db?wH0_51~n} zT;c`_%(2Kxcn?CWjOL0t=&Hk^Qu8-;b{9Iu#L=s?ltOQteS?6 zx$*cV>&`8Y^*4wZ^5lC*LdW#5slXZy0Nm;9kstl{=3i~TTH`-6j5A!7kyB|`9B_!Q ztGYPF$mHi&mTlx5oR?-|eO0v>%hLV1^V`tD_Hhub>i!7nC9CL0A=Pq%3yPg?Bu zGWBAUR$;DHe2OaVSEft>;MuIL@!HmG2Z50Jp=YY1ZVJ7NrV<9Gy2`ua__ie+W2KVEwsLp}>Oe%gf%o8O~-MTB$L9(e9}UI_H1d(1g7}oapr0>H~H3O^n-t zH8)6uD}qPxqz3Lu0)BCEOF7CHHU)!@m=8-z%KQD3qvTO$q``kCwAX-qrvqpL9zLjJz&OqUH&Av5I3}CrVn$3i#TdtatQGH5pL(aF_slQ4CX0M9dV~=EY;2l^P zAJ3wpP|#ya6hAjACjBRGSEJFp%WsUtTxZ?CAm7;#fIwZ|&?Ap{Ijq+~zJ~hn?6Zpb zc7Of0v=<*3lYX#BTfh7meRpCU`}^K`ZY@6x45WsXRSNfLt`IaTrXjZC=BQbOoSm8x zDI!xk!l4o0cDZQin9f6-O4UxQB4A4-X`I2>(CBQQ^HK;VceFE<;8f- zKr-k?W_J;%QsG4#!D{?mwrc@;;W|17Ekcj$sJ z+xChstH9=GaYkRNNrnMUWe!WX*@r#vJA_nqFV8;(6;vSRe|_Xwng5j`1x%<*h2ygS zi`({K?;A)H@#jV;*+PjBAx(yjmx2df9^;INKEGm;PIFIfWaQ+e32B5a3#m$#9~Pu+ z=?HupH^!DA<~p5bm*GbYDVw;d29U#d@4=WA--gmgJ_sDfYZR9q&AN``j@7$4Z=#?{=~qP`i3! zTw=p=dXvHAdp{!y!FULVVey&0FB&YwGft9`L-*}@Ne{1GA)|4LWV?TnV=_AmB$+_Ubp~G2Lo&)@5Yunma)L2 zu|Hen!{x>7eyi&axsww_SB;wv#^lLo*7*xoF-f_6Ubx{SR0F&`KF`p|@$Xc~QVzPi zb-8f8+`bq#2Ir7}+NC{nBzT@#MtfP0wZT;Im*y8Y&l|p!pal@5E7YBrdWTbydSDfv$kN+oGl`*$nHX{#^OhX8LaC4BqW<;3NVr zm;F05S(xvRua1IvCkpUwSG$)#A>A|fB>9TpG5e7&t|kFD@C_}@`GpZKw+}*>Cl05x zcNfH=ny4wXkmKzTK;o?z@;H#gpn;IXU2s>VcB6o$do9px3ZIwTqq8E?sjtO23V&12 zeI!Y2hMXknoO1=6qcX8}M3>yGCt1`vo}J}-7XeSN$S6jJBm4x=wR&-2xjN!{3Gh6g z1*Z@p6*>TNS$e6o5~3P&CIH}nNr0`TnH`3)V(fOIx9;9cH#j(Q|f|hpmPs(D2p7=N%r3`EH zk_I+onWD%V^r)SRIif|X^Zr%0+k4fPd+L;Xx0c!ad>#6;NnTq#U$w@h3^3>f zuyuC$oO`l92@&80E3M+HL_)mmcQpX+0@cS*lOpM6>uFu=0%=t1C3B<3T*a1_YiWRu zHVao*B>cHLVwo04cq$J-+79y=%j=dnGfm^Y;aq2i4Ms3&~)`jboaD)uNnzM;bYMc0DLf zJS8S6VnTHPiwXiV?$(IGq0lv4AG6;3n`zx6x3zta)*Bj5hmjWX)T>qQKkfP3^R(d& zbnri5`Y^$hakET@$Zn#Og8^Va@XfSh{!?lH&IsR?b`UlWj{nGYO4+WnA$Gl~9k;-^ znZsu*I+Xd73H$*T*-76Jo-PnXu!jHq5|EgLEhcu zJ~=BWMtHdU+&R4L42H_6qf0s2nHs^Y&VyHS3U`2!M#wH6nv**U551GfBpR68czFtr zcD>SeJ+DRNF|WP>SWn&GI03rU=QvPLT@6KNjQFnEkbrv7vZyOZqu&_is$r&xvT0Ei zY1*JFG_)d8FM+w-O+uBJet~i4n`Tu+%ds8bm&S)~&!L!RSv5TW4X$TRrTTh2$sCf~ z%7lEh8Y4$E7N84+rqYc>4Wv>C_=9@DsgSIcwF$ys?Qm=aSnT86?VhC)EwV{MN-R=J z;s8z3mWyc&3~LamCa>mXB|pNFpHVyFOc%+hq?RR29vuH<(-v`$&>`7?b60X>HThli z93zWLV6^em2Vp-S@*YdxbeG;4J&Eo2uBfjZS{A-B$w)7hb=}kqeb|U#3)3%$mhy3N zClfNtX(Nv#0DB&*uZV6~Fe|5P>11Sq7@`|BM|c+znVZk3YF)P$NBS;S=t_hrPF-V^ zm*LGRG;{@dG}@(ViZCYar*A~v8dX!73eXsIJO1#D3KBfM4c~(W8|kteeExX9`v|$R z3bk4n2QATzXY*iZi{J5I1yhGjb9+>I`zXA7?98xXK<@L_-H0KDVMJNpF~j7&Y{tSb z6hwXW3%(zq1wrFe?2f%ncV+Mh)s5fHJ!j$xq0ow%cEXAHjCZt^9pgEatQt ztpR!(q~}u4RX0VZB>-vO<2TN;>W~T~SewhGWtdXU{Gu+fI4xtNv@~utT84)RpFBKc zxC-KV(N8rq;BZa&{BeC=?Cn z0OKn5V&zbZ1eIhI&I`Ntnv47T<#NS(Yfmal!h zqpYz~0C>BytMb`Y#xUDw4N0|dNkkbtxctov>;?zl==Fus`x1(ZccX^cdTRZ|^^AON?-~C>iD(q#)pbS-a)gz17%`7lIQwPR&Jgq1kZa2!oY; zd*KY0wBff>JJpl_G$Po?w9WpInFmS87rBh?uYROzPI|_UY-ykK3D-9y0PPdg+5S&9 z)&`ZzuG5pCvs~izoUefJY5Kng=WB=PuFmWObzb#7tGZpN%k<7cn(^t!K_B`dbt zstk_yL7*S};aQRxZ04xI*=}E{Whw_$9s^0T=9viQyG2;6+FJewz6 z1_;DhT+T?uLE#mGD+~t=VLPnpZUtRwn>MKxhrv7Wj7lO{XH2H%jC*#I5gYOsLtkyz zjd9?$TefbBc09aiHXk&8e(lYAuL>j15(mTR-EtcA9|}!);oK;eM5mk4cdJ9zpTLl<**CAjwmT$f$6+lDNQMnb#=c#&nPdbda zAW0*6Vot~x#R3EPc|yLFR+x~oo@Pb);Hp^Dbs{6R@kS50X)2YkQdO6~aq@U)u)N#+ zX6K2Sln;`0($>q{$^P-Wv{?uTtMX}gmjIY%7&GsBQhZ)es{>IfraGTUj}DSI1)Cio}T~u zIwB{BuWN-d?{Y`pwS9O}j-lE4!U=e0=WE`DQBt`;dlvV^sSDOA<23TTn(50YH3RKxzddy~s9 zcSy=2qCD`%b8ksH!<1%jN`?O^gY7uL)9o*`&;9#on2yJ22n3%T-O%{j0Em{CZGX>w zMA49aaD(s5L>r$^L=s#|0XWG#@-DhP>Z)hd&A^Pwqva{b&jX{5H)k)_*Ef-x~)!$>&! zs%BKYHn30bNoQhDfxiUUN~vBZFFoa(r#)Z=moQ*}f=9!tuGOpjhf|~0Bdk)7wo=hJ z1`wEGnHpC&c2H78Q?4_|`BrQ1LGvK*FpVBv8(^W-xR8Dx$V81AMup_i$YCmHVpF`9 zdAgv+8*))v$*QosuQekD_rwv^BJnFUy|dJ%KI=md*ajRSQq_JyxC~PB>?wwynmr1u z)FV^PtAy=7Rg7k&UZoOGlFYt}VtFba8-U!Pl2JJ#uT?Wu%TJUP@Yh1onJwW5Dnq_B zzV@;rBig=vMi;7>%*^a5?jH=>&y+nub794yfeC>Ld2PGnA;g-|0v#(L3k_U6UuOf(ht>WvZ=H4P2da3VBAB6<+gn&$E zpn$#0KQ%k?95Ax0kaTRTtTQwZfvbl3U@;{eFL*%i(=+g>eLDi!((8Y3c4XQ8UJ=k?0;=Wo#k z-Wk#rr!j`QKZ)8W7@(3`k9Fb^ryo3 z5`E^uipx}Ll5sc}M>sLbUm`rP_hIkol4K66*Y1mekYK?UoeI3?ZZR^)Z z1dFdf`cNih%BJeFyg!esZBfe{-?rDMW%@4$zHPhi{TvtpGSsZxNL) z{gFw5`7RjWe@Ts95k#-);NE+ce;j^XX|B4wAAPiE^8r3DMEl8J^4DyL0849cl#917 z2QgQLW=T4%^wb&V!nt-_$SecmT1iq-tJ3mWRBf{*b*$orxUQ9fq8G$JrcEmwenFz{ z`Wh9GTS+EvlmbCnC$dWD6a(TWHR2zKSW7ofXcAo{j`hTXcA8eG znPu3J%XK6iirJ~FT#qNV`LrKKv-p{t;0{$AA8R758Y3jraP_;;*PMQ>YQ`i5!H`y) zQ!lHoP%X*SOk85Pqx4e-xh?&)-8Iv+2(mso>5ZgaY}(S)!A zgV%qw*Yai6TA7H$)1ri0yKT&ccB9UpSr3LS@$(IEyGN;*wn5{i53lr_mL%w%9A-im zv%)$?X^Xg5z4fjF!fjJU>4PPch6I_HRa}`8>Vd#&gxRwqw(d#x<>?y}uM$O2Lfblj zYs?ulyVUpUr9j)p0|EqXMQZ5CM1e>fx5M?cd{|f+$bvA)tg}O4Vruw;kY$4FrL}kh zVRFo(;sd2<+n&Gd{^&`F*bu`k(>UnNtAruE*y#~orJ=EOqN*O8c|GeFKj@5b$U!NO z6%fHO`Kd;m(y)Ye3@!kE)G^@z!8Kbc=UL5!wLrIkn%Iqbe+n2VpNWtqt9=7rJp4Tu zYE+eK#~WYX`lj>yPWNxh$b8u%{$HATU+_yu$R;D$*YY(?24s*IWD4Q=Ts(~fDrxrK zlt#2}Nyh!(k2`p3?^ID$bf+i=(xvrFYTX58uQvi9N=L=kY#cm^oLq{>z!^S!53e7| zD&ddk=BW$vs)h0m@`|k(ugx#MNSR?;u%Ym0yxN-5fp)leT`=CA{}w< zQYZp&9I`){IvY-}*I7k!Y)B9Zn8zs6()Sj34BD=fWdPT$eO%wLHtJ4d#fD@~vDiF^ z4PeUcYwk!CA`z6Q%GlkR8#NYkp)jgTzL?#a+9kqraRtDZUxgspiD>F2!?^$$=7c5w z(*la>5707_NRu*%>kgMR^T5my5G~kyD0(uF@^5cj`3vo4C?;@CvS9|c*?S*!194Az zu07dIo1gG8jML=9DaQ-f`fZnaD*UFyDX{z@SXK=RH?})i&899A537TRDa?V*6S~?N z5)h)|+2ingirJDv*82;D#<4oD{|2A_sfZ%;P^b>X?~ITX**sPfnNeLxw(3H)RkEq? z{vwqZoj2lB8s0+o3*U!5!HditDe;KR<0a$owwVGXPhKnVAkzn`vxaE`5oibe{2WK@ zS}myw;bzVv(YWyXiD_H#z*UeBp@$lQI<}b~!w>=MH4kkLyJ}(%vT<{R+W&JF6}E>+ zGEN{;LM0!i*T_o)fw)qq?F@_DcHo)dOkAo3BwL3(`pY z#U)%VuLR|fnI#gf5Mib9Itv)%1V+$CS}2Iom;mCflmL`YGW|@0(Y}h1%N5nS7~(zP zwgnQN6#s|bU2!Uvgs&<}am(hXlxGPjC#oXARf{hXR}pC@hC`hL#`LqYkR*$wqC)ir z)HMz$f;rEipGM==AB!2uvII;Qt3BCgW#X#DHXFD(~}zrr+>z>#p@z*+hwik zqnciFy4>GczP5XgwseD0A1Nj6{25(Uus|!gc?W|ad0Z8)%-oU=roUsvZuc-qn>O>z zub+Fc+IBL6gs!|Fey~HzUf1GR=yZ+Kv=k{dnN|F&9vcDVea!Lr^`p1G!S`RtiOItD z|BGQVF|cv`W9$XU{Qdi%!pT1%G#`Cg#ZBo{Q?o!28kH8fo6{W zb2zt38zYFQk_C72#-6UT&F3ljl8;}z^wP1ojs4(t?qQ)^H}9+gj|{`m^+T=rfkoQl z)L`DNwEbjD6K`uRXH&Bpo}ByiexUW9x}aS43vd$2e9|nVmRx54| ziL}}|GO0H&spoelJV6!ULUs|(@LX0DVJ6zDaGY|CK%k0<@g}u!6bB9brL;@l{3sPW zfCBZP6!4c_A)X7H-L)j{p_2jlV$?OqY;!1P2e>MbI(6i%4xWTpU99fUNbi7{Dhj&W zZTWIu&9Z>>11ePvPo_-8a2uHav9Y2oG_)s~WxAePg|$!;r!C}lg8@f?D=Yq=k|Ku12DDOQR|D!RF#GvS0MaNS_b z=m4&hZ7%{t95izoR2$;uXQNOOqp+JUW()azf6Q#7M+uX11rvUClf22yxVl90cfUV> zWLHZ^$WTcu@tqo4)}{!uKi{8E9w`}>tfXVsR2e+{HhBUT&~j)kPfnpZOh`0f-2*Y~ zS1|BBQw?_**B7Ru+WL3|-_2|}T+holcb3HHK~S8B!asjKQ9<0_0h;7@2I^;O|3%X~)%Rm_(h!_Xcexrfx$ z`;#c4PG_L@?GJj^kr0MBSFi>2Q5tPzwI=?;8xTWU0ujk5uWd@BcG>1$P(5K`cLFeo z#+X%7q}Edk7h!C^t<*J6-8U9V@uNtED~-&JMU3=c6@$gCdNjloS_gi{iZ2)asnF7E zNo%cRHm}w;P4dRYpmfMYc~IR!N(Q68U9JyO0*S|R3?WXSDu%0p9s{B9?RapUoM7&T zp}Orh_s^n9bdK=mg|E6{zcc7yH3h^!qtdXqgNwAcq@o8pl*b9VGYN$dtCeQxK#i?5 zhu;MpI$6tTI%rCi;-vDxWWb!oK}d@Iu*vFA)8;Fyqpa3v2Uj)OaZAVDRK z$1+xkEDwWpN@@*>Ye1`~WwUVdiwEkC7LikFqFAZ778GY!pyJv{DyNQh%>by~HHL^E zs5sSugsYZJ2jK(hED52y+oeJ{BzwubQ58``WFyoe8`q+tWoR!%kg76aUZ|l|s*>X3 z^onqRL0=35O^xg>z@8}xEq16^Pgv@d?UKNIMFz_dP+0gVbl8x5_v42mFE(d_i$eLF zsg~upEiS}ygd`C{hc*_(a02R^Ak0b@b|sk?f%9|c`S-g6Xhpqt9SYmtpDrAO*{?RW zoY`yAboYz`@h9b+7n=XzzKL_C|3D`f0dBs-t|ARMdK5ykS66SjJ#4QhZ8U4H-779? zW4K-iZcwq(G^0dvUIEXjb{$XuC^tR4kW0Vs%xurQh#BR4>suLiFbNve8n;KKa3Z4+eq@_sPC6 zx^cR+K9Jzq`Mc$Y0+2#gL@^`GQCQZsONgO6Yc%w;B!hUgG_Eu@jYQ*~uJ|HUw}ErL zWclmU4f5kI`HlW-v+KnL^DX!)`eks~S9#UpL3cri=UVNK_3RG=e^<)lDD?6);$7{l8kg$%C@rVklboAJ! z@H5o6gX3m?rKm7mg$Y^BY@Tcztb-Ra*s{DY7ny5aRu6Mgem1tREHQ?YVWF5K*u`LYYjOU@-zHwf)t9>`0Fd%J)V}t%Ry`H0r15owh3H$+ z)I}nBgi>fd2H=eHLvU3ob=(Wl_-NkpoJFuP2g&Ys&x_Yh3F)Gwex`H*6~zy2)`Qhk*d5B)P{^}dRx%dkk z)S@T9tPr*{Q>D!9a3?V8MdmE z4s_5WsJ+Dh&%&WR#!}cwWI&titU-CdSmTF;%TIdo+~VM(K>NakC7!&zQNuAc$6^GNNv1wW0e38h*MlaK@G z)cSzIx@In*=o0`{Y~D_k@^fhM?OJNh>8cti%3qiRxNj~S|6CLjF@<*q8+4FbbUAx{ z#T{-HeQ<$8vECLq?Fgm!aIJHt6-{9Z>p^8$`zTEeZS1MCMCb|3cYs`Zo7KY#j;qH7 zu)wT8HA4kP-NdOuN?m3V))KZL_EZg?h%pEToziiyXW1{gWFX z*@skOLGxZLrNbe6Dw&M#U|^BkGiHod0?yL5MZsf_|?U7~|f(%hJ~uB+Fwf zv|uei@dpz%JA0ueJNz2VCKd zEm_nf0+U1Jf`Zf*u)p~wya~c-{9Wk)0Dcl*SN4>SbOF)d;WER)erl;xQI_BYgHo36 zmb9+cWs#P^$HDtsP1wS~I$n4E#$p=f^U^(DTJFgqJooPfS>1EXx1;)}rlwA}+u~A) zVdR91SVwAeFhcNPa^{qKz1|;IpWd%KWAc6+&d1Y>Q2pM+21@-g-@wqBH}vm%&#D!r zwa>cZrq{D$`(BfK+eYEU(1k2JK@;~%$7&nBoQ{@m$oBlKmZEs&q}pENF1%XT;@? z#wP>g1AgQ(JE{L8?1{EHI=EmQfNS|9g@X?}xFF>(=Rh@v|G*mDR z)RrbJ*!DiIu#DSZOo}D68i%BqmCHo93x+h7kl)O9D*Y72*vfxqRT&a+0gdEylha^r zBX|^)WpBlTIEDr=DtdLmjbK4kxRq|U$e1BDaPry@h;K7N)=AKiu`8^eNZ+~xLEi;? z+CZ%drr^BRb~mOgD`Ww+2<+cN#&-&Fpkd(CsCm;goLp~z7t{Z4Vr%TbO#204CF zJ5%DkSfT4E!~se?(v=J2zFinN1}T6wqw(6)uDa7v7q%|Voxk@ky2=T6oMDLW&XLo- z^)n0bb-l7VdWhn4HO`4%oC>-Frsu0y?U4r#-m0!e2xLxS07c9K;6Vz65~umwcjO4% z!n_^EsN$T~2o}&!Qwg#LK`jC@@{&Qz^#c{YaYoCbq$W2=x0fo#{98V4V0;eRXU7V7 z@lRhGvKJTzBU%Joq3QFw-ahWG0RA92Xn}bd8 zE2P9R=z6)Ok!$oiz&;;mJwkdq);?GN`JC0s^5D}NHN!LLc;;o$s;lPqDoWs&*5_X8 z-pf&?4c*p8BAdWIDf-awpL-THsL$y0a&CnDY7XO==g=iV*V0+mxI6*+Eq^6?&d8c6 zc8Zwkesm=bE1TOiJpZfWp066u!oD6Anvi#{RXb5?0F?fSf z%Nw#e6RCnqfG8>s%AlSL<`&PM;^)j0LQX(Nu{eKV3E#PI+uy?ANXqV*;Qror!q4M4 z8J5FSe0#!%#B%8n3{0)O0dHdTP(Q#R(6_kLlX+`b8rwO`Nz9+&P!?edH2ul4ZFm4( z(69}Xo&X5SpGnYx=(;lnr#;~F86+BIH#XzJ@)~5U2vaCwy_a zl095$6qB1JwvW;{|2BI6fxJHak$U$<&flyOeZS$qupEgBpyDJN$4b`jPC%;+?jYw^ zj$<`*{XrfT2YcWa0=*B(hv|pd2iK~avsAW#N&#RVzQZ5T)%t+(LnEwx)bQ_AN4#7J z79`j7C6;%@I@e<$!Ujljqz1=92!;WV=jP{NFEg=`-XSpy+Rv7Z0b$g25OdAt~=Zq0+U-rhoNE#HeVuHM0A zN=wvZ(>W{X8O+jRv7$y334V~$=mfuL4P(tsNxMiaG_~&Pg6a#(s1LZtAu}`_;B&tm z_fq9}n3?HL-6nAV^Wb?kf5jjRfaClZ65+5he&;${0}JSXlBcw>jj59vArl+xKMC+Z z=}tRt!y zPABc?FDy*ql}#KieE~#1?$q3bL{V0?zr-(Dix{bb>tsXI`1$ZPXB{`Ih^)A>y!(EL zqru7sPer9E1Sq6JTiIHi@kAHhWOU67z{Dy6{t8V3sk2O2BmZS#ef7q00{Bgr0v{jE z+2+_M6Q9~x0t7mRglw4UnuJSctAnDk&w{df_h~@nE5;N;%!7uHD_sFhc2=U_nSgta zkbjtfF+3F#w?8}~6qlcD4hjWGru`_=J!BZW(=d$yuYm%&AY+jLZ-|0(h4db(^g1Ea zG!Q5t5Lg5-9ePY}A__PT2>Fyme1}q|&Euc{xhETT0QE;Ad_>n z6amaS6(}N5t7Qj1QpMO1^mWVY)pve|N8==E;B`~#8Ob$$hri`ay^w#zbV5Y-w!v6+ z$?+Dy0@9!OIr20KF|1**Wg0y3-q#p@8kM@Qov1gDwMAM329{2dMxE&0NLbA?K5`gf zFa7dH?$EIfHGE~i%F)DZIB}fu{LCbU?s$Sq5GoK9)W}XSe-Wp~4h)Ami$oZSDt7IA zN$`n1aw01+E1~p%GQBV>A=M8R7>2;!G2L)4a&hm%9K!6P-GyO3#_lWK!Lm-&m}X;| zK|OUBI#0LrK33Qe4WJbd$+Q<%Y6M3=J;fJS-G2bP(4_(WH@^Q@rI77kNcSCIbijYV z<&1=E94svV;6XW*=+};gx`N333)AD5Ksll-O`u6{s*4=-X*j%fwZ>9Ld^djlH@mw7OMI zrx_N`)~(dg=*=pZjkl#vfaOMgy($0H=GN22)~ELtRBiwwu{ohY$CxT@Wh>)h>K3v= zrvRi{n^ixTt>dMf4U&P>&j9?Air-zQ;X(YaCDR&F!>R0kYo0Il9{^wyD))~ACi_gvbd!uPLbVKo}n zeAW0WXZ;imqs=bI%)R}ezoZAGfWsmy*kH<0R8z*h3CXa3X$Hx)E#RQlAE{Q)Cp&sb zSU6jVQBBuHCN8yQZ3YcD7WB#K7TF6%_7bO;-SvGY%zHNr(%(d&_zjyoBq^J=3vw2j^Py}5(o@}QSq&VgA?%k2q);OjD8 zw*#FMT_f)^uUpsKRYF`Q;@9;%8N4^RPgBr9Jk=nIEr2AhaHaQ5qOu3iC4u~yBo!QX z9D#&eu#L5pecAEh19)N^MExph-sU&=+Dc}U$e?W;Xx_FT6p8+EpBpE@D|FY0tH|{< z<5gO_h;L2h%EG0wJ;M00p+k#P?UB>lLAm~2D>jeHy_?%%-&vy!ABWrf(8wnG^CszW zXxl1a5}+t220rGpUhgI$WjGgob86P2XG=^MHv&t#K!ZcGpxSQ%QTi01*XS9T&l9N5 zoA>+CNYW28J2o%3z%)nmG@MAJ{?_)DrB}|glXKIv6B3gvsK_0O_7{rSkG#Io^ev#<5jY4UrmZUxHM{wuV`5}vI|e2mnU{g8_}elN%oJAn zmR&vEpIV>I^>H%E(my%cdA7`c$Wn}cuYSJzD$}z`$vL>c#%wTs0ZC!57VIU5ZWJOk z?6+8`Po!C#a{xwR`9|-i?Qu^QyKH;zC!m9)(#(9VHveMrV(oM=jA28RKme*akXp6W z=b`2`;*@-~%`&FmVTE&Sry*UA-yQDG0p81g&9pQ_mwn+@!pu85-UaS8mo? zH1&?u%(a5NWM+9mha~@eb5rM+K=XY5qxc4Av4hrA+jZE%--O6R{lWZ$G{>W7H9!+A zU5>8JO5R_`qox3?(2`=G%CxDH+0@=c-ST4bdA|UJJD)gl?!<$V=*Ep5r;rQunNX2j zmH88AGGb`bhTW-T3JY0)Q*AT#jtK$DTjPDgv9M2|dlC#JP!={I_%XUx$i^ zXm8R|NYJ~VaIjCr*l~Gg;(e&X{VOT~59RBOHn_`!9i6MiNl8U9}$mJR7 zgA_}W!T%?9--b&#!zMFUT~ewAnF7g9c+7j(z*0dgwtQGS0kcS- z4tC60rHINg(YWo#p*PTK3%^V zBycUKPB#mBJ6#aQB%F2&h6nLun?D;24STa&S@l2>9O}uND0eayTI!oCR zJWbXJuYfrl%hts%hdfNI;7c#cV5D}uK0(uh1}@1Z{15zjJ4}k`+Y|t<%jXi8eNT&{ zVuxNRs5Rh9nC>P9+c;u!*X~YWuNfyd2~V~m6p~<1Cv@0#H6GZHRqsiY>>8+fn;eLa zobxYrvxjE^{=}V;-07L{4|AKLpdVbBnTpx7slZz^zZ_68M^X%WhCldNz53Ac@fQQ;M8 zihIVrR`zyla8Sp5Bl^Oea=u z^!sF&`t(j^e6`H6Z>m_X%2>^8w13^ZN`M&=P&=O)ZK;dxm&^b+V-}j1vBM)6Q8T1c z778ev{0yXCY+4_e!CHbw*CWl3ncj&$qCwus9ezi#B30C``unk$)GX<7N*vM6(?)C) zjH#V`d{KO2T-8qQ5Q~|zs}OimB1TpQF{qlbU*p>ki0UXF#v`I&V&r8IGNg}75c&Sj*GArnF(@rq z3RR4-AT0o_a%K>!=F3fk=+Y`<3PvfG=mgWt8`R?T&}n-EQUpC?c&i^*yX3OZiyqmf zliIG9<2Qb3M%S1(Mb#ryH-@QF^ZP|2imHo-0J$f~Oq&gw=3pis{Cx)Xia9H=)@oa2 z=eSdtydj=^8Q3l!It71P#5>?wFYI>jqnZ68Q5*(HH(EaHNdE$%5#YBV3^PEnc(8O+ z9Gm%Zb4J+X5Wxr@iaab}J4ro3_PXKCDoSKCfa?G3Y9thG0YoGkf*nuMf`WId2J`IE z0gymVKwh29{q{%9NN>=r%o`cTS{1o3z2M?ydk6&QJ)l70&?aiD<@7)>bw;6^3{`K! z1l5CV#9ghiL!f?W93?dBY2dTcRC321kq`f;5?{e28tMBtvu3qsKV}g zOdMi1k0`3u{!J z!w~l%mmo(Fq0%sh-ji3}{4pK1n4Kuv2@y_SGd&n$SsU+8qrN>8;ksqnb1eY=_f!Y9 zz@*HFH`1tM{tg9Q*Sz?{G7zVV*PRjeO`az%qS|zbUvFXTC|T*@#!Rs_Vk8enA#?>& zNN&;7AM2!-hPGrrJkr-)$5MFMvt88^5ZVG`_8m5E>rs1PTTx$kVvdyrb8H?deBq^r z9NK;Nj<0ve&s+QyAKhA41O$LHJM$hIJvMJ!*u3thuSKrMZcB+@^~ga)Db8j@L5$sx zn4$0d3E%8x;YcIeENu*TggLZ|4dK3FSZ;BMMSgP4yblcb&ZL?nuDL@UB5f9!BYTa! zm0#Q+jxDluQQlE^)U_LeRC#+JcAROe+f2=|b_@uXcX_r>F?1;*(vASmqu}hL~ z3ZzD+Hd!TyEzk?%oRO9{I;T|CoY;thN924gS)D4k!EUbTehotrv>W3RRI7Q>!G)*c?Hajj%n}Lq$fY%Lg`#$$7d&y$CalSVnsOGz#Poe zw}}o4;L&%W9c!yY#|sH|>BJ?9!Ty4Xf&f*|j~K7xohlzhk`e#SMk7uc!UwFB$&hG$JiWB7qy8;K*7c`b5 zKjw;}qBa~ad#g;nZt0WN$-PAs4VK<-G)3UH5&$1&c7FGyX}JTP8u&qbE?gG`NN6Dpuh92l zf^p=_4sqPVY8wQw#)rN?=K2WsaGK5>)|#H$T?!D@?7LmGL%5a-Dyj#(h(v6ez_PG}Kuc5o0#JpOk$lI@jFfaL80oYHf>R&GsE?PF>z(;;FipQMXL{;rW!I@2Rp}-yU(n3F3+UywT3I ze95$2dEG8wrHxhN7(DJm)<0R53p0w?EgW>w^6&^i9TAPxT?BL(@#chwf;>oeADlLC28t~Ig8iB>uR9GS}eP+ zfwr`uv5JIdMK4i!KIKyHEQ_g(>M0Xa$6~BcM6R&fCN>G7@WO0{ed-S@W3~!}Rv8;p zU%&#CSZpV&nbaH@*J$lfGj9`R+{^O^2-S>3p;6JOcMBH|rSVE(cV39(N7>EQlNM1$h3!iLGg05J0b zN>$@z5OJyxNmM^m$cCSfOjV~LC^S1U#E0gK+GzGKtW?lcCGb-#_S7E4xtnHIoMI~9 z3Vh!!&?6cUhp5ResGaV=Wjp3n%*CuXW8#wPo(kBcT0~5E8#TB``jGUxizy&b)Pwt_ zx734DJFcAREWq%cIb66qik_W#rna0j?%<}ZwN*hOp{!U{l)cSpqPQq(bvwYRpmmg8 zT3{&bvg0q1m`-u^@UTR)=cc6|0rKF1U>S-Ku-hg=u-Rl)K=k8Sf%Kq-z?X#umvXKP z->cyt4lp+i1P}P%P=4Ox%Ks&CX+-g$Xy6?G>E8Z_CI5fO8wV#RWZ26=l7oat+6EWH>40xNyAuI=sTHs<*v_clj*pG%cD0eXvzYRB1c(_98* zA;`iprZhmr+nw%i;wF7C8c<5eA+w*0G^w=T#^=j9A)e!o3vpx(f(S1luNLMK*N<2}b^Dh_yiLt85b*wE(Z&Qz+Z;`feAk&2AW|oDZ^=_4;m$ z*ZxPE7YI!tq8_Rhz_g~*_a2%JJLI-uXBeV8!mecV+Mq@w31yDthZ4*;4Dm-0wkFs} zQrC1%E>6V8;{0OLb(6)KNXFBob?!rTkl?n3brR+0p~5pv`*KZ!+A=?y@~TFI;71!Y zSrX(f!!6gK6uG!wYMm4<6Lbi|0B0F0JCt*eOwZapUi%sz;PgDT(}7Sa>rY_gNX}H3 zC6JEp@4F};-h@iNgk0Y@K!a^xlq%8XDjO3^!f+5?8>=EvveKm3<#!^b~f4&3Oz zmmU_+95j*++(yMX*W>|l=t6c(p%6wC*(D@)lNHhlj1Go}Q9n;1pvmk(9c;34u0J$2{%PC^hSvAc&?k$m__PhPj~{y@Bw}lWd7d!@wnt(yQB(8=mB$*N z*z3H-RBR?M9eL5%%HE@=mr_qm@1bRxshzCtzO1#){tNqCs5>5G zwt2bcw-G%0pzFDl$HVhBx`S7?K>f#52zG|XRDzzqSwzk@lprr^aTSGrNb>0 zz^~)MspcZBOjyUNQ-@FJ^?J^tA?T$s=-Vy?_#U4G!FI|Z&X@1)1#5{oLvMg3{0l7# zgDndk3pWhI^gUUzXu9lj`1XH1Z(Z+&zaRj(?X!&NXXgPf+Bb1j7rSA-%l_mMI&nYxEjHrYy`TtR~D7QeD-K!Scjzn26GlrIoNeJoOSDo1c?(IYDD>a66?sa`~E;B zGJ=H5r^sI_B0Nayyn%OnOW<<34*2hDh*VQFmwGjF04$e3H{VVbSXL6H#Oj zL1kq-qGe68?#gmHHk|Yi?xP?#F>~^J<^3jPak5@El*#Jp!tLgVA-bl2p+5lyQ0eE8 zSnZbo17kdzYd9O4Xy=J*{iA!1^qB4Kv~57q`~9J^k<(Oq*0Nr4TI;&=FI-I`=E}`} zv)jJ6$AJSGn4r+Fid2Bwh_K&r5R^u|&=<;&vanCSF*4&0F14*$3o}BL&(ES4BO)mD z#z+=#vz&W94uBET6cDc2uJrTg-FmJm^>1CjIRcP5)8}rDO|K9Ig@o!C&r2$qD&9TK z2xS`TCu}aw8H*7Ejbv)0IX<&Q7UlY=J6qI5pI$f!w*^ZvdMoSm)5wzki;bZ9@XL)I ztHArt36V2{b`(GD-_S&%?eEP7;|fSPZ?L4=U@al=PxU{tq4=+^w`*={fIMfIMTj>A za^&oVCvZMl6K~JsmzAj3`}65P7LVyAJ)#b$Jf-K|vhyxv!Z#lc9$fg*#X}0 z6n;vfSfF*8cncM?btoabxsEjqv>s^ZlrgT{QBjFox!eP%JAF2$8?%Hs=m?R;t7JOL zEa@D%+;XrWF>m9*f;gC~|f$%R$yFm@(-#{Az!Q(e{fxmH9#iqEuN|^~VmXrw7 zCm&Jptxa6qnCsmq?<(RWmz+^>T8gJAkz#-7DQB9{Z#u}o$)vw(-92o4l4X;k3WVwr zYhjR18aY(VMStC;o&%T;07x)d455X)0=n zj)l`qI;_9nF6sbpBHxM4+_)AAZVjP|+O0N;-Fk|+${kcN8G3)ur&Rlsel~*WNCU;d6 z;zl1{R2mLy8UbP$-ceBWtPRwZ zL*!0FXdM|^;}tgIoX}ZaZjrP3RCm*23${{D99iRy*=%L2lzsM%7kfLW_OePA0afXd z82Wv>a5Y^`M zJf%f$8l7U5#SVb1+K)h7+YL|c(}L9PFoR{|0Kh_MxeQcfBVKcS?s=ax4quTr6 zd(pX)SYg5;GjjEpD z8<23-jzC~v(mHSD%H6HUSDLG+P%&a%iC&XWMIk@CfEInFc3dv-5$RoT|F2s#%_(38 z2?a}~UR_^S%~8Us9B}zVe#Z>uT?74|s_FOp9|-NpD6zwid*nD@>#S3Yg-F&V=yDtp2?)Tq?x z2$yPvT{Kt5!pWl{<3ir3lu;(zB-5m(Kuwpd618Hm*%VK2#x88?!@5O##ZcEl%VCqS zy1qJLd2RV^8GNY}wwe$PU^_`zD~Sw=$Hf&2W~E(GSSzorVV9p4XKm4lzSbuHD7NS3 z^(=mc6csfh>$%U_rK3}c_iwhy!XcAleT%BIUUVW4gcttx51z^Cprw4KriJPO_Y5(` z9~OJ}QSt=u`39_dX(0V^SDuF0le~d5kX7+0z7-hj6EzmKypTisQIqp6|P}E zQY*8k>qK$4>x;sAE?+^eMm#R3qo~@l5n;zm_>4Auj+e@(@+aYv@55`EaTdX*{`Pt? zSh2<$4m?kn1McgK#`YVlGwxo0gtrZAEDNQRG3OvQ-In-WvPoG9^N^wH2dUs^i;=gk zn9_{3QF(2dg!;cU09&n_X|cFUYjMBN0pA<`bMBpffE9mchUjBD@YG%=~@1T2AXQ^}WR5PG?vYw}y)t%d>5 zJv7$A2sVUZAo4#l%okfa`XRDrO)@Zt5_TwrLvt7lx*-=X0AYa6jitOcFet)taWe8y z^~;BD{=%iYIc1`xXYlsaO~7@idD#?jSlcG*4ON3&L#9|9a&#~UH!oGh1xyb2{1S`U zwwvhNHOZU9`*`EYLx|baLkP3a*2c2rcr*M08JLV~mEYvb-3bLRlN2kS)sf4inec1ZrH|I~TK;kR%8c6#fDpTqlTDb-}_zk&ed-SIK zC-g4_AP(1}e?wy?4qE+$5n9P7HE6u|VHH+8Jz{0$LbygO&KJC+svA$p08E1^B7^u75h;84|=6NZ;OFB>iuvr*aYo!a}2L-Xi)vZ;R8_2EJdfX<27VxF}koKf1_k!&f%` zO<`lqjFtp-->(?kg?EEvIPJdNZDzZRS}C5XA*XD0%Upc4=^b9Mmn#-rgV;;;21x*5 z8|L`ojx>9J2?^eOZ(jB@T73?l1$Qxbm22*2ou81v5G%e>fuwBA z;Z)=Rl274mjJ_di`GY4VlQC?#j@J12@eVDcwzleVXvM29lx9eAW}fps!Bk+X#6yrw zb-ulvNFtuN$)q@N@I{)I%bRNc=Pd&Kb;5D_1o~NmwC7KoIG!zPi)$I?%KoOL67s54 znxoR>lJjp9)$R*Iep@*=&E%A;QxvMAXuQ1?r_5J?{!^T|FkqX#tA4RAW?w?ELyf7f z038DnL$(Xc)fZZ-PFC1DGxcKTbrf;)ZEZekEFLr|tI1*7WYEd(LQi0L2$c#*4ERmd z7aoN1{cj?gq<`LGdP=g3t=`sfDKf=ug~NuP-uA%UY6F zuH={^_hwJdT?r#)3~T)EdZgB$+xT)uZks;{{?( znj8oSRbIpEJ{^iPdu2UcO{U!92ffa9s87EcnJal ze}azZb|gXlUu4nV3!rCI`w%iopMnvaYB=hb5SwJf2bg*JkTVJ7Os1%LAB!h*r9&yq zI9(Nu!-X9YNAQw&43h-{2=E>I0;_$KK;@LaA`veDoOzcTMu6>o`4$Gy`0M6|k(?V( zo>=kNk1am(mSt$4b*f1D!{>BE1&D1;jTvl(zAK1H+g3bxiC4XsCL7#~4X3C}RihCT zG}{rXmHHHbtxp7>I#9gW>m}v#6C!WN)HJ?au*7<;n`rIr`o(O342Npp!0XL#9DLg# zh{?L)?IfZSLP!|;YicvSzQuUPKxwp|}CTa^i z$WrlN>kmse>?-A5e>C-)x`q_$s=EFtN&^jqXF3M6=f(azWleP(qX|>ZmXz9NLA&Jm z-Nbr*O>LJbI<*3GDX>Z|FgBf6vPGhnV&GKK*E2-gVSrGyPeBFrm6~A!G>lrgE@PtF zk4cYoqewUu`o3(S%eze{^o}{bvR{vSk_*hEg0T|%%CYYfDcvh8cB(3T-PZAZ>ffzn zG*+ov-vTX2)*7e^F(Z~K`zq8AtxjO6kL0J!+A%e2W;E)WBIDsxl_YB;?%~>Yq2_q-NRx8z}l=br+#QsQTWq+*9O z4c<@mRi-D&*9jt_(w8mej7h6Llv~!ReU2kGk@&%N@Q?TD75n4U_?-`g)a%;Kaa2OYN3%V@luqwhZHDiRkxnrOuM4(u@A_8o$3DS-e zvp?ugaW>QmEg|)+yY^yTH2gQO=2TLdfHof`QzX`<_#Czun!0-fcv zPVjdYWehc{cBjRu|14kDi@wQ+x$NF__8}GE=A0CS7;g=2n}9=r=g{dlBb{aNUBJ9; zI83?}z0|W^i5sI#{1+Xc7h7|z`AM;Ta~E}Kew^-hZ->w4+0;5u;;tM#Ys2jM-z*I% zrRIz4^sQZ%9T{Cl?N&9F(sYoJQJAILxn~I9Lq6lq7c1IpQ$C< zwY(cJTf;Ri^`5mBhl_G<1N$MaE_EUY#$73jPvB6@BQURTkdc&}W>98d0Lr9EcluZZ zBiG-F`t;YD*9}uWb`_&L(xn7SPAOCXPW_RHKVS;k#!YnbJZaKU&(WkM*@tC>oEQc) z=>y74EXnlM1AYG;k&<8Ru>U+UPJa>`vL|CEBAcBi{nv%o;&jBquAFn58L*s|e(DKX znf2klj?yA*ZeuplNqN#^VVcBo>W1aoj?8vab&TeqW$yrn>0;J{a>?Evvt%|vH-Or} z$v_{q|7GHOChz&|cH(w&=vc8o5ujFLCbU10MJ4X0dgrG}fVZV4o=vy_LWyNCS-VCFzB5r=8KL<0j9F@57y!?)`j&R9Urspy2d7*5c0E!z#*pNUn5T1#MkkNaT~& zzBtu4D>g$hYd46|%Bl#5zswWx+l@D1)kaRTB+RfWN z`xTT4yQ1s98{#rfohGFBcnDl9n)H5^WP(0Ev(e|$-%49k{z1SI`1&`ldKC_Np zU38J@oUGa9{h|teok;Ck#kox`_GtdyP^63Eo|S3$Y;C8Oj~)AGDp{QWC59gbCkk${ zSr615P-3`BEr20AF$B z$Q7%D0Kw>$)e#7xK1sYi`dg+A_eHFF7tXU7(J3H@3)#EY$&77VZd++9RUyY?w#zPX z=7MXfud){(2#EjAM((T9fHMsQUM zr*Ojjtc!ZV>MUtJN*{DV(HucFiT4_+AE^&ohZjXD$h0~uKE;<4+FWhXxWRn(n{I|Q zj2g9J+SN={m$764yD6exm2H4M2L~yUa2)CIPe2YX=E{hUEQ0!CqRboGS}GwV8*-Mb zx*hj3;(o=~(l0XrhEugrpReh32qn&o%t#n`kOrUNn)4IF2j);{qM=)u3;&!cA4}xI z0eR3M`Picflqg%nl(8CJwQ1(!+G~0nvmJMc0~4rZ%_d?nTnYCqxY$;UL?xdR{E8$V z9VL)SCE^5)#i@@JGEQcpMA;!2{o=LwI&L^QrN6nHA_ot^5;g$>y~~qq+c=aj{t{S8 zCuj3MW!CQMZ6yFf%;DExo59}6P-YfygA0#h8@Fz%`aic|>P8`M46j~_ z>Wdh+(?ZgvCl)BymfV0>^dCh?RB`pB%6wI>-H`);l`B-%Awmc5q6oP}dmE`Zs+(K7 zvZ429E|K+U$#xzpp_Ci*Vv)Ykj;z|4UizaezU4wOB2yQOEvrz=qM>K$$?`lkb(>Q{ zW?tSR*19Hi=eKk|zH>vr3HCt5cszTUQc=XVPZ0{X725lmBQccEvr1%ZPu^N@;Lfvg zP$;(5;V-!L*|OU%*A79h83|?1n>o>dcspqFW3}Le)JVe3<=J#v$c>I=lDaI_VQ|VU zVBvk{%N+dU^$`Yi_BTNt!u>bxVESePmn@XonX_I_nMSIXg?DJ8zgiR7O}tXgJRM^ z{5I%!S6ek3(E@jhNR+qspv$9iSZ3&5IXoB0o4j*lnoxNB3_mYxoq>#gTnCDnc$^tp zGvS%6CtREAtJnS3+*(F(xE+wV-zDnZ2uC>OdwGZ|iw4P~1Xc-2-@*eZp+lE~ztYdL z7$1cMq5wM$j&jG0#%rN7ig_Eo#TYA%a)% z9c+%H9yz~VzTG?D*8OZ%WN$KFAXo1J5`3I9idJk}=ZAcf@a5P?ojqfGWyBMpf4K*O znT=mK?j{D14|MUYnHO3Q?brS?nX3>^O2q3IjtI4hT!(9NMt1ZrBaY|TfBE*rR zV+rQO5Ja6ZY?6-}^Px>-)pkaeM6sV49Xm@z%fc|4R9U)peP@i|da_xNPG6>dRTap_ zHgsISMb$~$+-K*+JHVAF$tI%2$R_0Z%SFg5qgo_0N(X8YGTC?vuk6~>CQfGV>y~_X z_pw!Uh3Q`RCy4;Po>z%W`*-vLaNpRAA zZ3Wk9g#qptY;XN|Z-r2D(yyi(iDqw@e9lo0NF>&4PIgqRK+R01SXP-=4r%%RHO7e#7jCw@3{=^`^&s_Om zvc{6&A%g(VNjS;|BVryac9kiW>g9IA_0FAA>k9zWo)E5tkP!fRxG!nKUW0!Ye@nm0 z4QDNR)jqn19f&|Xa#b&_zlv_9JGuTaSvd5sY}T6BWD@P>`O=jGBB)%IK%+bAx9SNlNzvOPtE)<<%=y>bBOX{;@Fko zQTTTj-5Le4gArx;t>;|A!Yha*B&4P|vCpCx1J1S*u1xdfw9O)S=8aI|sQta>`~0Lr z?ngG&Hd<+12jN1UG z<>5=n7l9WZiwqEY2&ZUpiNV7SsAo6a$1dSplk18!3oEP@41>)?Rr~fqX_V1!rCR9j z5u-&CF`1HoOA&{}hn3X@2Jk@Yu`O%?@Ope5(+Oqb@3I)B5^%qUb99&cA5uj)YHF^} z?IcE=M5tC~;}ngyXfwMsNQ;iy&A|ZvV5<}R#rq&hA;JYwg9a9f?UT>xok5 zYFX+X`v;8z0SvN_g|06c^HqSRu6~AN@vg_bV4r|A&$aHmmiE}_Zfh03Ti|*QBy%%C z`8&SMqhq~V`se2px4|SNw(fUQ`tMp?ye$tB+j8a$7ArO#%6$3QuYCFDq_>-1@&?;< zRNH}~tK@eOmiTW1-i8OOIMEg*$zEe$_(0jO0{0yJeX-%YT7U;0f-nojudi!BPPluERBw(xf)pp`dWqvfY#gd@1F40Q z!Y#vISzNg&A^^5}68SY=C*jX6WfAjXK@d+n{8AOym) z?ka_lO3FL?#NsYC!IpcLd{OZx%&@=VC0Gs97q-TKwE_K+fBw=1fHB!ghaq_TkWLwn zq$nXPsbpB6i9ZHWMcscA&U1RlQ!6IB|hU0a=p5vs)bIY~=Jx7oM&pcQVIvb7c2&ChuzIyUHh{PeW75@UWir_K$q>l`t5o8ZqUZJI}E+ z0m|aWoHV}C2I8vV@Hk>v72>1REzm+CHfFtoySl1<%#&h*g{q~|f)MZwb#ryJ1jzyP zk9;G34h=JZz?guGJUC6M1P;BYu*oUKw#0U%Eubx+FD&IwlyCkn+wz#))>Z-^R=@%vXrUz^*#XXFZ!Mso-$+j;Xl<4#pXnwAb}3|$#!PW ziuy+BIjo@GDe*Jd-cL=>sH@Y2!a>%mo69b-o1eXR1X>0oO*hO)w;Gcx;y?K+&2yKQ zrnyLM9xcS}xk#vsVmV^?;%9!_Ze=farwzQ78<8XtLdfe}~J zF;rAi#yT-kd+hReZp4{Zh}TtmxMAhrhg5lAkCsMaQLRK{Nm91$6A(TBD4&An*`agZ znaV) z-d);CLN7>~)sVD8k#F%JPb0dy6e%}TaaL=`xtJ5c(EaOT0atWtopmmlU3cSb3d zY$xTAK${Ko5+16nQ?Rj>xeA`1f`805W3K<5sT8^!fHHCxfcj*-(;L&+qS2i_k=+_U zNp}=fY6taaXM2H4%^ubd&ca*L;AXi}$l4AZ#E&x_O&(loQYquKLh+f`6K#sCcsU7lkfOBN|(%gE;}gA(&Obi^P4HK=)|Y%D;snR08}oL{xA zttfW4nlLaPQReUPhhyrD8KRmw^TTvG=nR4qD#oID|4{BB%8mR)HFfRHj>f>zwoTRp$3b29#Ooq~oKK*z2$l2W zx^unkCs6DjMPOT+oJ!vQL%0^O#AuBTrvuYFj5s*6O13@cI2Z4)<6>Q?604?jTk=Ps zR|PLxE+Yor!5raiBvnJ-5N-)z)FJf8i)GD*Wu0f!$aSAqV;*zbr>jv`q)+s(U#_mg z{V_sWB><=;2*~Zf#S(+_|FOIOBS-nKmn}zqEDl8owtGfnp`L^+NBhG087)$1FNCla z3tp1sC<64Omon|r+5#(rv&lO$?fBS2Bd%;FPucVH5plpKVt1gemxm9R07{tp9$Iww zfsdARqyfB;)k1UNl#Ewy2JE(7(dxO0=b-Bj!&;-6BVwlH$i11T1xDG2{;m3=2awB; zPrwuk>JpgAHKTGrInVKWirYWmw7nNsMhoeEK#7I5$j1Cje5ndsSa2vLNTv#Xz<@UH zm3ixn>{>dP6du*!&jOuNB&*JoBo{`0>$T@UA{ia>nrNrr1yepp#m&dR=VjYs&{g45 zn^6@jtcnZ*ninuBn#();4}~|)=mC<->7hWz$`F{bVvKv~V9>6t<;9RqsMhYuxc>%l z^l0eop1wE=a%4cp9}Y)mwp$mOJc6JnVW^};%1#CHooh391qvFbSDc;rmN@J{P~c0Y z5@}^y#2Mrj{++T!2F0*PaZ}!Ac;KlA7a!HH~opMSq1!i+62e_L*Q+0g2q(2SA#$A0{SElNGoGPUisq zX@LMIJg*PBZql=FfWL6`AqT7GL}7bcw%m)*d6`atD%DZ7zc-$!kP`yhFMBz~fAV-Z z+$dsTV!&vH46nkw-s8*iQ3kNA>!%9#Ur3Z-$SkN)C{WV73hksX>kGQA|0CRMX?$m4 zC`wV4_p0_sp#UpjN*B+%zRH?hZcvjDtgW$5+F07|`sxq|i+mQbk`nmbbA!J*S5u0W zwQ$W0lR#fkF>lsWo5$&3wa8#!AAJ5jMeV*c)T7^GBCyn1xp^%u<;s%LvG;n~o#Rci zRej(5#EX7jGd23`uc-TZ3f0~;AEL~;1MCu`ra9p{|Mq#hi@>&s7xlkG&GnxN`2Ra% zg^ekVX#t!HFs1z?@oh!wIoEiohuE^ZS0e4CJ256fLOdV@^5x|x;5$)hnSh0H(9K~Q@F#Qqip-oJ7%oOe7{G#r;38sqGjr+kIuv}Qsk3KMQ2kg4PR}L z1I+X-@x@$3hblv*Qly;KNav~}RO@zEp!K`~4wJOSCwuAxA5-h`*IWM2UnXD8ty_qa z$x&2$S;Zh(-v~X;f|Xq>(oGsieMyf26=#wx?UW(oDAlwdAihWb6knoxUN-Isq~`6^ zT4gG+4^cwigf;!6nkRY(&hu5W8qeb-St+b46nPKE@~6*c(=pH(FfQy}2P#C`Z>e;E zVzP_fqJFv3vy{aFFuP(*DScL;;6zj&fl-4I;f2NXC<}2;g8p&(b(e(!P$O-DOB4%K`c2UtwCFDO1CuH{(Itn<<%b6I zQv9d791ob5FFPZKr*s0P8g0(yx1Ns7r~xKl20-z=iN+@Yab(pZw*6@MiBAzVzGeABU~h{n076j zGLPL&EDx`d`FQX;{WVTvMk4kV2{B(wox&kFZ5m$CQm|(lPhwALD9ULE>u1*kGXo{D zOAsrf=bi)xXSKlXUsY?q^0oIp_)3??QiCo#Hd7LLT?ORVl|NA z2vAu~CAi{8`qj2b7Fh$u3G4a**Ai@~2v41wE9H2xrp~!xEMO9Yf)mUK|Tb7+w;B zZfMC25-&m6qR)d<#*3lURA4CyR{I1{8J3F>L`irJLTTJi&iay?#a3R@h*sH_z@%@4 zn0GKqe;ogv>#~$3^Z#Y4wGHb`R!UJ7hOs=L7I1wOHulw!dBxp`*A80t+ppL$3(+80 zXMeISNufd!D_2Ve1P9j$VL63NmQ1#K5Hr-`uIZCG`4@t^6Fz$-n;*wb2vx+UY>p-X z%_bo&gXeCz8Sywq=rKlUv)G#dP60z4z`5W?E`_dtfX>Ra)->HdK^xgFaivY6WG%rv z=v6Lq$E%Ht)PYZCb*=Q=@7K1{60UULEzOioHXO$!(JgZT+;kK@OaXd03xW+|Hu(Yh znloTgPT4DgrX)K`z^&&al{l9yZ{EFio|GtX6AD4p!NW|FSEga*t+Ofjudyb-l-cyc zb9$yIsNDvXRk8$hZniOajB2L-eAq1L?zz+d3$|o&8MhvP3Fa3V`&`5iS|%ZKfXjy_22~- z#)c85rsx7_tCXMP-v8;X^Bq<7HDW>nc`=HaD@5=@!$1-bhBAE3*M9IKZ zeQTTpJi>1ONPPV%KFe@CTd6_{u{Upl0Lx$xf6Zk(|2RuLvvgZYoQmmi{)tY^UI?kU z5XTjB3{Uk)`NJMbu8ylsMU~>>*K*)F0Me!sZrPktA{t%U4)^yJbOEGHiKJHjwbglY z-`u4t^YU0`Tuu;V@oFY1nF7SeZDZiosEvaUa3yPpc@!r2Z+e5}PQ?D4kER4cHNXJy zc60AJrq=3r=~2X0H>?83{&{yRK%!&}4`Jv1dEWMZ;F=`g^=-$RrKN6}@ovY9Lk^MH z`i;LJecpvQEhf9=8t-x>dQX%yuL<~$i7&rmYlyVo7{$+H#==}IR*#e#Oz2fepwqg>N)<-Q_MkP*YdgQbU;L*E1mV3S6q&MavDf^8 zgK^KBK9*PeUvTy8864UKjDH*R8h_txXaq}B6tb6ouj!8GR6)-Cy{sF*kHjHLd26|Y zR~E${XoX9ZV5O*I$_$y^$U{kkpG)%r#EIaFi5j4=)%@ar@e%zObix zmYzE{s5YI+Qf#-PNsFNkRIlEr|?wVes4nH(iF=^R!Z{ytDHkrZHj;@UUDw(coNPf>!t-z{~emU`t7!<$o}c zi~YYa5QsHR;S-bwAmf0`0o!w3o4!w5M{_PD%>wUDwFY`pAZb^G!4uwO1yT$(%O3u8 ztbr^RnYmcQ0qMrdoUsMiIz9a?F4K5?y&SkYG7A{vY!-%`AGn?m zlJ0ba?xTb`f4H&t&d$SqqkuRX^TNwJWtim%8ThhXW}|}wh>A}cbWs^>ZV`RA`21Ym z@;AbB0YIeMNT_*+_h0sQiG3T1+$q-4&bcq37`++Nk4?SK3cR#_&vF*)jTVbi$l5@G9P#WZHL!wfcqN}*6)AVXpTlG8e@_^_uA{MLQ_5t`h^*= z<(`UJx=)^frk$f@(X;MXPuEKMaWXa~3zEy6pB!JT*dgQ&=QSH(g_fA(M+wW z7&QTIB7(`yDM1LVqTF=IiF`X$id2~$Q-C~GfC)fW{YMeCEY0xyk&D}|2yDZ35R-QL zx3Un{kyWCqg7Rt(7fDp3O!hgS=2GJcd(@O`KQ5@ZDK3OHloDBy>_U0^aTV~dZs02z zG)i1yN^y_F?m;VUtfII>#urFCW`+UIX1$CeEYcXn3cEt?tMOSh(37^W5V}0yz~sqw zmRSH9BKJYI06NT5;T7T{*TmzGK4ZZ!e4XD@x!^*h@-QG}1?UB0KpbHNtK#Tjk%n8Jq=$a?Kd8L%}yG z*LD=b6*6X<0bhefcs+xpgf!Y#^eBo(P4h_E!YC({1jA4MbJK8!>*+6R1}GvkqC&&2 zZGKCQ9{ZM>Ar9{*syPb4l(hF819%w^yM-T@aZUVTrcqLM)1ofLUkd-aHXV7O?}`9@ zVi{!I3tESIn8Z-drA6BZG*1a)l_=VZviDn=Je1OKRSU-n0d70Wi|p;$WQrQ+=q6(4_`CY3Y^3(*AQxZyGRT>xiwwH)f=WS zDbLhvgIY8WkM&TSU$ib&a@<%(Rm%WqoC+D*Cn84la<`a@(B&^Uq;W%(}QaU3P{zd z`K+=#IYALlz5Z)_J^$uAC8IY3`y)QT4^r}of746X-ahWT_P$4UwD6~8URv$FYyD6LpUBW(1?4Fq~99pS?|~9^aQI;_HFg)Wz>+P7V7jjA=(aBNWxW zqmb5y9-(EaJ(aNHvX_pP%DlnLLrec7EmY`p|bX6qf9L*lm< zGr=j*Lul+~1jVHC*t!s1(OYA5w}a3`$No!kgBie7KPzu8F1-Y>BDdovy#SH4RSqG$9Vm+w@*l})9P2z>KcjSSbgzjq_58Mk z#}?>nZ%_k=A=Z7-70N?zHRLgXU`jzGv)pYJQ&tEr>)&5(d0&_r#Mme$e29r9Mse}- zF*H&W+O!_EIe`QLx2o zV+$zaDPh%V5@;M`H<9K#J|53S7seuNrNe#Gk14C*gn}zRz#wA24$;c*PFV&V!tnjR z^^5j~o!1Nq3B&?8;bb}^D>GE1sK8S+cf?qF3ER|W&5jT9x@_w6L^dTq;QQN-OT}?aYLwl`aSZu*2^26paW)pGuANGpADNQ;D3e^h5WIt{R3>pdl+H3lx9BO6%~}nEV#P z+vJ}t5ciYGZfTT>0Za@4?wW%r%3)-vCcl>Pf2xk|jS4k*TYbM0G%rzk+Zfqp_c37j zx_V2iJPKe&PkANF*v?+X9KPD;>MtLkEgUg~GRlp_Sc;z);0FuZGcxeslXf*sIE( z(r_xU5$UAAS#)sN%+!CsX!_AB)Bg>xr0y)UDA2tz$dp6^$v}%x+vO&P5M>Aex5c`` z?v!&_NG3%8h7j8RW3ybU=D`pt^t0uxO^BQ-hYI4^&7UU5i5ZZ)V+>t99!8MZe{Mqs zu9vaG0@x8A4wnc3q3-C_`l=KEir_(l6 zsi3*AzztJqo3yYcH^hy$T-W`jOzjrZ$SGml!&zqn&9u-@n<@`Rok|#{B~-gbF7$bE z2?cpO)^F|2Ent6^2DaXtSt7j}MGZ7worjU6DYm}26N3~<{aoY4tWa(P_-8@Y$irD? z0gjonR@T-|1BtE$n_#*lgjS;t#@e<;o&x*30K>x5#=yyBr_x#l#GVqThX z?1?@0@tday+V@D4|1`&k>&^N45hsXuo3n2}9aaCw3JMvJ)le#=iE>Y9&ipETX^h<{ zky%4(FF9#>T&}Ypm#%8wpJ#2DJx+Sjh(k^T^x5whU8a709W87B8SGYw8S7n-rV3a( zjZIFhBtCz((-E^sm>(@fG_GxBVOz3?p=*Ny0}7~k42FbFCR(y z)%`DT_3-rhN)1ng8ouNI-`rol`Zl=1s97x#hWn4h;$~&fL-2Ms9)|nBhKF&PPR6P6 z(JFYfPCZ%=NrcQiJn#+@qnUMdhejDk)fPozWhW6ZOyaZcU?DsqHRJsMpB<_pSF2B zS%*hT;*&3u{mSlWE8^qvaC9h;qEE@B(R#&*M$f@5WW>C~*Mn#8sBA`5n~avJGCG*t)Vwr|$^O`}QLp9|#JW(@` z;jT!}Old^I;O~5Y;_UA^8(5)j&tzL=Flb~zM*CW2(_wXbGGk@#fY;FPSurcj7sZ7@ zRCF}*I+$&M772TSPnwj&1ieijb|;z_cMz{2OoZ_gJeo(7u4Gnkq(pLFJ$;IAqHw0M zX^q#NoyiF&6QIF`_?mJsg>`TjXDIPHPOLV45Wa9{GN=oGD_0t6BBBK3k&Ouw&+0ko zxJ5HZS!Iifk90lt?bto?*>gglh=g8qC@RcLnJ*xz2uG#;GprPfgV4@-m#HoZZF3F> zpK_KYilHiDrkYz2sm9p zS0L~ZH|O(z7(2FL4qB)T=xalf#89udAW(QoA0@Avaoaoyo+Me(ehDJ{tgDA&gke2r z?VYS77+qd!eQBQ3081c@CESE<^$ zf-;2Y}<= zq-v4VR5FTYdxfS*FwB7hG_=V9l~bpa5^^kI%-oMr?T{J3Sn~%Q9yq`C@lyzJZUcyac0qQzjY+DW#CST}A-S>%n%Cci_0ot0GL1F#PN($E$y_6q)bGN-Yz$T)(3 zM$|$b^dGWh1tp3>@`X2|OtM;Dc4$PYzoJUv@wk5FU3N^&|<48gy~oMXWB5dgYEy<)GW+5Iw!3 zqT;u`OVDDlDjM^B9cx)T4SGurr0(2*95vHUK2h$aJeNejtL;q7JfmO*0e8(jg6#RI zweIoD`dYs^1$8p4i)}k93fgE}ON09Q&Z6>7D)QA{6M5V6t**q(dO*m?>g4aLfVlO4B@2gk zFhK=P^$Fp44+_c{=sW4%9Q(LiR(0&n&wizmQkS%9N{#)IHEW{Oi-%F(#n+bWy3>Fn zFukkDBm*OdlM$Jq)OrNZZvZ+YyDL#1RCfY7_lD$dCqt5s?)vHWH zo;lfWPQMdgsjwRJfGFklD)7f6IWBHKcqmDI>6b9UyOSMo_?3tT&2@u@Cs;R3d15K; zI-Ca$bA&&W+VzJM_%Po7`u6VT`!_uk-n_ZF`|bDJUaS8w=Iq>jog9pfL_rUyCCrLu z5UabyxA#~70j&3;UCvw*>UZ-P1;VJwrSmbU}VN-PZl*4-HHGGJxj?pDax@dDZXeN zg1`dUmuD9XfGQ{`-AbGRcG#;RQU9 z!e9HQFoJdpvkNkyBc)I1z9Jo zahTkK)>5kuVI2CoD@#85RQcNUM1v=a4~X?6`mB+cobMwE^>jDCsEKm1=DDr zJ)i((!!};C43<#f$vp~Ie}ZFggm*!u zWMdNsj@syiqQ?l_jus0|M~5eC8skO>O>00n227wOS|hZ`T_PhPe`5B?KEs%n3L-J~ zl_VdNmoJm-K%BBvQoIw{hd=&=1gV78AzA97u*ubU{4x3NyVbO|rS(y#>^AGrIu}w2 zNOWmM_Np3J^~p3J6~fHB{E|0KQBQ=PzkdIvIXY?brV!LtB-vp#X~fHyB0GdN&Ac`{ zgv5##eGcL7@Y|HUduIf?2RWz@9Tbz~oe)UD1GFvvb1Y^Q*eJWyW=xVK_&2~>2qZ@ifL zRSwk$deS8Dw`se z|2Zkfh)6{Z7l=y%fb+xk(cp#wfVhv}DH=L{wWVCcYPQ!pq!0E1Fnf=C>y2`^Pj$O3eb zNZhdVQ8sn7hDX2^?6ND+BV2)ot^iL&#HOc+jhzU%sfo23nmBG^;*L_ZTwj4b+C?nU zG4;DuU~j4DEh1fYb`pwRL>X-ds?~a1@0mvqe?9}*;eH3(sMI34aPTH)_+$!O41=Tt z7Ky>Gv&9Iz+wZiin=-fD@a{_^75^GH%iAx%?9|#k0+VL#9nUISXtLcsKFN;fzKpmZ zG!zn<#U_7KG#fWSvoTwuS%6|5Z+_>wW zo%D87_q2nT22^ba$5ZfBB?sQ^Ll0U+0tAlzWb@lk8YD^%b*&mV@G- za#XxK+P~=vY0j=jMGeE{WnBr@YHGw^&n}u~I{SB)wbkc!KD{VMv$U$u|9bu$W7S2@ z?svede5PWMQsLMBL-X6}Y;{YIVOD(ym0T$S%Y0U}M#+Bo@#y%EAO3Yv{GI=He|1vS z<>w^(eln`gfGv?7pFuHYbN%8qKvK*`#pEoXG~Ba|UapN=(BS*(*GY*^Fu7Ahtt~SF zRdGX?k2fEF-QWMS&&Od|&ze^kc`Y<0*_(XvqDajl#T?b;w5jU$qM^0j9q+%FlfB8T zys1b~an@Wg-&(=fy^`&5Z1<;;e+4LwRX28v@=-relp>f!7jG*f7Hw(T3Lg=6D5w@{ z8bFjP+BO5d`2`h0VQ4Wi(!exQbRn!YyN!tKp!T*eSa(oo5DE;TB_A@2vV%z%hR2kjoHwb_3t%Jlk|SE-u;6C37N4uDAf zIVn>ay+ah}n8Z0mYs5w@S=M4PC1Qe3t@pr|CJCD&e?%516Ck;-w*H+*xVl&Sp+*!WMqyv0Hd&Si; zmXnl9E8E$yPxNysf=8_f=LF6WB5gZDr`9^C#DZh<@#D~2RE%&suk9qWv~zix(bvd!Y^AvGScQJQpB4Zt`(Cf7+Xzj|-SI+vDie zh)CfkR5juSb|An^K7C!3=NC=e6HowreiK2?ORw8f%ThTm_&U<9M(k?&R)O?E`ON=Q zyl^9))+*6TCnictEP#8P3)uB9NBXo6Y!z0}Y8O&v>D!(9eE9j(-<)W1)A1z~u;qcd zAD#$#wdHYvf5dr10%q2uCBnKF+!Jp+c5;OhhKB^fY^(W4 zY~#X;Z5;Ob&e8YakL&jdNArmw|f@l4N;`!@UA4r?R-(beP{w*mhHj-Zmmlc5O{0x>a{VFm>h0y8y} z@DnJP3=Rbdf9F^9u}7Ne_))fdt{?(LAOX9#4TmUM5+oF)Bp`l1epHpKyY1edz#-b1 zZo6Kt`syoBp5OoSlOEoEdZvbVgBrf&zhB)yd;TK8pzU;p5Qh8T2Cc8tRb7V=^km>V z+`km zE)=<-NS1u#(^DV+LD3Qvu3l;PEYCzOCO%R6r04iu0n0P!g)jTSpk2vEw9BiLg|T=U ze0iSi4uPbAIsJP7a=2KS<}h50o`RbxSlM-tW8rw3mDHVB9s;EC!`gg6k!yK&9v8fVVoB6@+Xru zQv8!v&AXty0bewFOPY=(eTk&Bz=fI-+t{vmf5`Ktyh(aQ5y(i^tkk$x7Y*g?>caI;VTWb9KWc`>vmv#MPsc9=~lBMq&`SQ=-KOC{HRYI3`Opnx6$s5%@ ze}VM36J7&${Q8f-K7D@t`1rQO`1=oUAOA@o!*~}9X?*j#<5O0tj3?#2=p-Fk=-s|3 z%)smip_5_ZP;o3*hMRK0Bs|t$VonCen&O@UX7JPz6DUl%kaakK-T5dy=C0yh4XDI7 z1xRe_5a3C(+((^9YI160SHO_R}Sfpu1KV4Z@m3@F89JO^G*Oq^2OFQICv+amvm-u5kCszvOAV*3p1!beX z*)MzYfI9<-d?p+;+mf1FCDkW2ZEiudE!x!~Vm2Gr3WQTt-kK;Cd0x~0?O{`Ae>*Rf z6LAuCN$^6amQ1Fmh-x~B-Km@>a;M0Tvf)-LR9I@-sYMo}oJC~|N+a^3>?6q%fjrsl z&Ll9$Hg8CvmyO5d34UWdr5eMtQhU2;$444@E>~9f6sV$(ogra9G$eR4w)<}unXuSfS)E$Y z7-&GIqFrX(R%ix5CC)`uM9wB}IT?+>FeOd!n>|@KiWvHO zNY(MeeJg~(mU=eR)Tw$hR?QtKwCcJ8g=HV7nZp4I?dEW18AM658f=$#a&Nz&s$9w7_!j=M@1`OYMq(o$Y! zIGX!Kqt7Wq#HEsOsKf8GhL>jt*;UZKXIoR;mZ@seV)462AKo6`z8)`u1W=85KHiInq`jA z;>nPLX*@tlybjA@)`_bRtilEf2!TRVQ(umA%OoMKPvPp~#>ZEWIh{HrxsHZiDqK8z zvI9+cmE#7ZCN)F8f69r`buqfO1b3b|jv9UCgsL|?S`@6WC`Wb3#JKWX3O1N}?c1)BCGo`FVawInalX^BH!=*Pw*xMF^9552&7Wv< zuC~TJyWnfbCeu`lY96=Eo(u=uzG4NnxXxOGN|w2oE7assf6khW0dk6|+#Sa6*G5FE z5fIjn9Aw~aVzxznN; z*_j!7^QD3C)O=Z%Xl6Y0WXZSaDYGFX7!n;A$X`fkoFf?_tS}n7zve*Ly|I#edm~L* zkxn95c}Wm9f44HdTY&}#2fmkdn@jj3Zo~HO5w`85c~!V*Y#=Bpp>d!%Q&zXGkMYgks0nh^q+(5tCXbgTgKQgE7K3Q97y%#!Ik%+NzyyBm02BXGya(_6 z8!~lweXd!sOQ}|wadQvS?Z&>k@!n=+<!%yu{_S9R8({dZ z*DvSY%QuPx!US`m;rw@);{^URQ1TO|Fr5Dkuj4%V{ShOK7w^)=2Y2z&=PO)%%J&H` zo`Oh3%5UnYBM_N$W6T}-KcFZzo;3ha7ncC$vdQzc@T ztf#0vt0y<$XwTwN14zzTuhl;CbGOZCG%z!64L)=e#aZC1`QcCkZf4>bJXFbie}^aQ za$34CfY!Wo;1%`?r<^VpqhW?5D1b;F#AL%%pNtB5hgk_`6X5o)#0+5})7(vr7&fZoDdB$Joq<}0yrT31l=dmjZ! z&$_Ya>qB+6l2#s6!cH}2OPrI$e~ow2m{>sxp_0N`oS4ZDA9S)yQ|$0)ov9w1fpr#Z zy&1{d$!H`l(%wi*luCOrNojha;~+o^4grsMN>CZ*u2Pp;uMrHBN>oHS?P8H^hmx$I zk%P^|OA%wwLhn+Bjy0xFB@P`Ao6G=AOQF|egfMbPHu+VQ(%L7ny}&^ufBw8wzplvJ z_N`W1La11P#Wy&Kd{M~WAo-L(i`I#Kf?aXH*;X%g(ityG){+ikDd5oFrZgUGVE6jH zF$h*2NqHbcuz5yPY8q)BMd>=U=xzY_K9RV^mIP@W{&pNPdJUA?iV~R7j;3{i>8r>M zP0ih2h1PE9xR6#% zra-{9=M&G%t9+P79)le?v#^@)iv5kotRpU(ShY2>HeNDvaRnY8b#~LT4GR-_#gN^| zj74eE0qnZ+cth4xpjI9naC|Oy{^>%*8hhQa=KG7(_ImW8XqcFgUdG0TYQc=&AZu`w z2+QFd&DyWSxk|o=JOZuuD)CEt9x(?JpRU8I>9*T2|Ir{=btJBaq`q(Ca$JC@MBDr?nb#+rqGv_kZ%ThX@BRZ2MKB7Jp$QWLGBcB*4-*46H#n2<6DWVp zSW9!;HW0r1SMXMH#)9x90Qb;|ZN+sO*G{aa2RjE^Vq~=x<(Trg?yv7ImSQA|RhXI1 zq{+|(7R!BLcfSQR9KXL3(X2Y)(JbQ8S@S*~9}Hhx9ZAl((>5A^iiFTi8yVSDF`4RU zJdJMRTP4M<5*8kg<3vcHi4-2045WYI@p`4^N|RJ0P2DP`Zxy%1&1GT)&^ho5LyrO; zY1&exOa!lWNLzFBppPVzw2$LAjWfX$p_tb;cruWlX`!NlN}2GrCxUH#6Wt61=Qchs zSC5H{m(!=oYQ8MN8sXy=QgG;C2z>EbTx?)cMM&8L?{$+*bw zDmGazhA1wQni=lEX~C><$_9U;ryv%9Ry ziL}VdY?eq9=Zm~t)pB1FnZ{KjV2@$9g3uu?UBT8uWNC6%zpwKGlL&u>JpOA~Z*Y?^ z5LimM!6|1SX^vTgZ%V*Po=-tsg)|;7KhfHkTt=$!))V~|*5=6tk+09sE-p`L0g5AJ zfQ-v#50K|%S$;~CMpI#b%1KV_u!(3nuZ{L(^hIlTl(A$HyieDg$!Jd1f+MtUhlmJK z6Qx43(z`s6eT@$=|G|HH%AgkC>E-#JattQGR(lz809cw(V8%)A4GS;dO281~ zP!ItFzF%pmZKl!q;PZh9-ikNOtsh+Q()Z90{fU2rNBi^}kdgY9es`0Tj|B*mjnuv47CqAXT zZ7J4{rK#(qSTbk*Ud6E2%D3Ep!w4Y8YmoVnI3F*INmee2aQOg`v6?UDeFs=(6N9Al@=3m-u=myQH z0Y<`m6^L$wSmPiL0d|lMXOEpv_ahuiM1&KVDfm}F^}>I^hBjs5^OMuj<|^2+F$E0c zsp!JHwFw=d`JK>D_dq}G0J((wZ{SaR2~LZi@TZv$%s@ZxC}XIc8K8y;bdGd2zOZ10i$UY>Pgz> z8`IR2#B)a|C%-GVJ9&e~KFQlr{NJ9+rcWvh1bMSBlcZxx_R3^1*ZErcDMn>Cfi-vp z&7_A~Xez1RuNQ=Qqqg-PcQ)`8IF;z5);QSXy}f@-q|gto*jD>%0_l*2%BV8DcD;nl zS64rWP(kkW+yZU)H*^rD)7I91NCaF1yY@k9&~06>eelff)eNE#g0?iD+-FbI`=`1r zcl9go;K-$W`3{L9_l6&ZX|A^|xW+RD0Mq(7P~g!5LbHiPxW0L^sE7q`bNIdrQG{z= zxT$~0a15Yhgm=sVU~VDN>qNp`=Bb-7!AAJv|1i;V3aG zr{pMJsxc(cwd;_;s^r4#5H~v`O#NZaK#dV7s_PTM)*>|>G&=-$Cjjz%b8B>8Z;csE z!~xX-DpiCD#GI;s=u^6r8&K;X(?`LNlc5O{0x~(5K@|lP0yHp_;Rh*y?O5G!+cpq? z_g}$B^1&>RHwK!IUd=QlSPGFwTEIF@JG=(fLpM@mX-nX;AET?=#%0x5nR zfA_l&p7dh!<_g$dHB#)3Dfa5A{c$pS@sqbqE2%Q;+2odK>!gL8d1s_{mQCht%HJCB zZ;e*ehR4w31R{+qM-S3}JJxdw#aN>XGfG@fUXLy(qd!MLrzr+3L#YhOHknkIvDxEj zdac-;=3X-;eeT)2xbl(N3}lv5cgcPm{n`PH42;aJkAPd5+DQ#ha0wz390&C1x{n0W zni?JiY*Fe_&A4cAT@XcPJX^@ef zR<9&WWR*O_E=wlQPO;QAFMxE~=%8b+r8ky&x}@*%ULns zQ4e_0&)_d>;rMp(xcH|CMAQor7+7hni!i2qLtJ=XmfNJ9z#w!{?J1%doh3oJS_gfR zSiJ{KkrG$C>b|yr!B&hx@tf*FbRoamh>VxJb&bn*U=L8};!cc>Yu|V4@0#^`Z~YjY z=P!E?IpUz@Y8wzH^{513J2n%L^M~hDOBl_I*=}1jc9#41nS>^};vm+Wprg~a6o6yPS4lS+n zIC8nJNphbrN3{XpAKC{29fP;#j6|F%h512#u((az-D-Hg-DhRHVW7!}8#)nb-Zvq& zsFOmK4szpvvlxTDLi!EWHHqz#gqHu1PREwYnU{TlNZC!AcDm%hGTJer^YZpT{Qya5WZXPpoI^8`hdmz=XS$$^yNui~4pSHkZVuAF%7QKGG zBqwsbnD^gpgGfc0f!^m7)Ua#rGnPNYa^%-i=>U9x8ex}D*8E2J(*I%9V%{7&tRB4$ z6Q&Guds136W`3>_sH)BIe)BvgX*FWOxK zfs>&L6ah1np$`-SH8+<)pady@SzB-0HWYsMuizu~V3mhgF~d--L0hyKux|64T@0?R zBt~Uht7UZEuiufx*p^IMa+;(m)(3-cwb(@a&aQ1Vn75 zF=TYLlWBNt6_C-KjOj#xm|$1vCva`0}4TTYri) zP4TK4H=D(JRgzL~LOX$sh18WwW15!BxS>BqL(rOLNE4@v<)ZMOQL+ndjT;~tK|Nw% zs>a8=@NtF!uOh)IsvU%tPG=D)dQ%&5n&;VKHvN#L^?iY?(CKP_gJP0W3<{;oX@R)w zd3*wvZnM-&!H`QqZ_jRPXA(MJ_X4bIz~aKQ`cR}OE&6V|aaan}4H0cV*0;YPw1_ME zWfWD4hj3Ne%9bs|Rz5Uw!{X-1;vS(8Hq3feM5vn=%ceA$dxqw-^kajX_UI!viM8c5 zvGO52slHxh^ZNFG8kGek3lVMeu(Ql?N5$IQt>LXT=ry4%mneE!9$3ZZ*>Z{4_xfvsM&5u2UscTD*YTv5%jOF=x=8n!4&E#SxBPZQ+a*? z2~p_JL*{&c!c+XEUh$dVe2IoaBlW== z|NTZ>(u;yxgV|jPxSVFQU)Qr~cDZ)`dnOSr6NJL4@9Q+My;{gqJx$379QdM-6z$jc z=kSi_;Ra{Anuq()9`@lXu-)vypnuV2qg!%LBZm7!O>nk^m*V!oVo~j z5KeWHfwL2gsgQ(*3-@*^{&nrb!P}8Hs|Wj$rvs<_={N`hi=WpZ zg{{Y69ZwZs32^0Z1mq8T; zK7Y+uOOMkq5We?U_~-~Fc>H$Z1OmifSfICdg-V;O$FlDGmg`ClRAB@0PUf2 z>c{x|z8Q}_&j+6_f!wTmjNA}L-fi0-J;0U`AXa5eIAW~KjI(5N-y2>rGR3hA!m!Jb zpViEJA}wUr;pZLs-21pS^=i<2{?;f0B7bwz7&5rt+B7_K3dmqehIAxAjD%t%p#gt9 zd@D5)QY0x?jEdxHaDk@eLsP?QXe5}QEc|3_H5y>GF>gpF^(V zJWLg1bg@i8(qfWN*Z2iA?^f``BGI&*-OqmK@8<~!x>%PhFG*N}UILj3sVhK3n*T!E z+|UPpqttLl%$b17S@rZkEIT2HT*YS%z3)R zQ}m%URwh6T44~>GuScmmhanY0V6cgw_f=ecercF|Px-IZOPrl7mzE9Rxg5k*_aMAe4@ z(4tz@Fm5YivXed#@up$QWLIXIWmWd{=y zI5aZ~FHB`_XLM*XATuyDGcuP^AqNx%GchnVG?VcYCzs_Q1#$-@BPFS>phLG_Aq6Ku z1Ee@xw}@c{a|C}VG{5Ybgjnxd@f@l<#ezai&JNWDiM~$jB4>;$Hw(+d>MEQ~B4rn+ zlfP>GO-%Jh@$9dq#xz5*DxQ~ITB@)j5~s%40kddUgNv2jZ9}52)2Q?uM>gBD8!LsX z!`3^`CAR##&zx#WjXX;Uh>7F~i0LdXQGFmFF_klJqNpUnA{9||>h@dln>rhAPEc3C;E$C3y{(aW#X)$V#XrL~1H zie;hlCBM21-yX-0a-L>s=qob}lDqntXSQia{?akNa`Z8n!C+mwcQA%&b}^x#aUprc zT*H_TipJ)oV_kF!SBB_7HR}N6L#+;xKXnJRtH9nYN zc$uMb8-_26LLTk%a#aQJWu_y)s>=Bqew7j)AJD~utPscb2$GHLjKEIcy$fBCqOXy) zl3sryLgM5xu;zMJIpa;duCeGXhJ0DP_vz&lQ1UB;w%DRC2Rfjf8M>0@x8Xt5iWxpN z07T!ppMotz*Klo3k#28F%xh1YhsSZ%hR6X|&)U~es**TJW%#*f1j;2HCuels(vJA3 z1&fuS1pyT{G&<(&g{Y_$Av&<%?;&1QpNN0tEW>NuwdWxbXO~S_*5L0T0$~2`H+x@d zh;7Xso7t{EwW=N_RkFwg>DOeS7sG$`gb^+Ba;A+xmOR4FbS(hOCt#A+T4+SR2wB~| z4{6^-18oixJiTwYGM3|!XE3ECqb#k^2|(5?tM6X^p^2_QX+jJ$XPt<3uxu%Tm?(c* zjpdx%&x*J4(6V@yd?eiKogYU$$)PMQ%fTf|y6s?kFN{?kn$9`iq#TT>Gr3wcxKlMd zGU-16i&7pxyF-x>YuZus1UanVhi9#TOuhBnl@L_l9*SuFGQ;uP&N3K2PE)1qa?=@a znfaI)253Sup{B-JJXulE1=ducFWi6ca74Ko({!=5XTPv(xr!ntI)D7Gv9JhAiK@m#EC;C{K5mUMEqf75M+Q;3SI0 zAKrDmxPbYio^2t(M7FLye@6x4g847tIx^!*Dq(L!fl6jhTAZ?-W z9q8MKwX4yx`kOoRdV$A)Q>}kkk0D>XK1XehMHo(YVb32IdIP49U|F_GC-&>04!Tjh z6XPT{)^`L2_*b~3;3xc$(#SUy_Ow)bP{PGOzGzJ7O`WIi<}W706ZDQ3QmUW1esF3eob0>R{Gt-F)5D7@ zWdX>C*^>+2qn#=oHDmbuLfG%5WC)*@Fyic#*!CGP!{PlJzk+}0gxS8$k*gk`-y(V$ zh2q%SHbw;jLUA@rljDClul@~e_dTB~=$zjtu<}eR5o5IsBhp=m{~g)|xU!(u{EcAu z0#M>L<+JS>B_%=hqTdAD^%0_spsa#~ zt6HdFn+vo+z{>5$iepggFlT3b>;2xD6T9^6{Lmr)?6N&0@gRSb?;+a6A}gxnB6J63 zI3Nw(@g?cs93s)?M2^O~T4fsn>df#&B#`>(Kdf3h9fv7wFZ3tA;dq!nt%4Q9*N{3E zz*@ffvTn=ig$91i3!a$s_1oDL036@PQGMjSUpq5OaOEtwEKm;x6u#XA0JgmTKxUhc?VVqexORacWZFrp(BU7en~H!?t*=L@I9C~ zgIgK|F+w9obRnccl7V+-JKtakCRzW`Hx=c{W>~xv!r05$vFop}?M`*>z6?R9_}g=N z5E{gmSg|*bB}<1l15=dyH7j#g>V zQ@6MK?-E~ZQ^c7SA;FDct@&4`tc`@Aau==Z&O{9rOxTqipYmC*%lLfpBe`DZcfo~=8%7& zzk43p4n%@nAkgk#>z=!h7b!x^9}@xFlJ6a{v*m@uVXjS~xTsq;_;a#;>36j6SaPs! z`uDp)%d>)o2c?Y+923Oeqj5yH+`x&zR)ls3J8lB-JX3Zb6$ivU49P0j!&=eoZ87Fj z6fOD5+jR$BxfuiCPZ)=hJ7+lmujhY?n`{A*A-yO3FDqB9t-pq=_oh=bte6iT}UtglY1~$ zGgZgE>Ka!Q8r!hTu?mS)K|b&&JoG=&4~d`%8fZeSfbGKUxV#o)Sj+QpYD<3z3>gV1 z$&uWu-Nw`NmNm@|!dI-DSDlGZ9^~_I1;w@ zTZSTCEh+iFrlE&eZiu)MU3#?#6>0)z!R9C58F)rUm$!=5up9p8TgmjWqA7$Erh zdHDf)?yq-8(s*_9HNX=D+`dK={TwS!>5U*aB`Y(RWqK$)<)Q)S&V@LbmPn(l*t(9| zs!|DEYdCg*nKG_HLP_@@ix1;iA<#%lA^xQiXBy+ZFuP$GQPso2jjcp!j&~}Z!+kfa z~5ZkQ9K_l(@=MP<_7uc_k_SA{a9?C(aGE zGLxeP2t_LsN=zG16zo~074$=g?~imWa$d}?g0ytg-p7hXRKqbzGPTfu%jCKS5}u7r zC8@!zUjzki=%%k=dv9VXTlc6yvB$b z1{5o5rATvp4!P%8M198Ly7;s_-$(1;B4Xv328F}mN@zv;j(SkA`ykO zq-hma-%tWzH$#6(;i3V=_v=J{D^y48U;Pb)fV3xlWw^x$Ts%S{^ah!5q)Cu>jY;IL zXe@TsGI$YiLZs?NfwgMaze~;SlDL5y?rODvHA44KbJVOSD$zx=TVP&(qNbMAW~$8j z>#-LIprJ#ACk+E10${N*KuXVpXIR6l=cr^O^AuMk8{U7)xHWjHN)ELJu&*>lx^#dt zaH@mQvK2Zo$ZeD$znWLJAu4|Mb5Y#ws7?gY zJORGk%iG47HN20Ro8Vn3;KQB}O3_iYcX&UjnhR#^Xm9MXkh`6enW^0(n)VhZ%A}Gt z-cj4akv>Zt-P_WC$Pk~}suKkhIaw~UVpc3gbfl)UtWf?CF8JPy# zRP;}*&^7i9m|IuV&Y8iBU{Z7V7kauV;=03H#0h*$VyYCPVFE0|)F0~3j+HXr?jNTk zTDU6YY(+7sopHcl7hX%x9G_ag_`OcjZXveN;ZBg78k_eLERg9^^ zY{D0$r2j-WR?n5&-K=88nsqfQ=G^`6A{H@wViOfbT8?|0S%lhtX7zm0-tf(Icek?sb7I>gY)qtGawJB zEMbOhXJMYm~!`9*G?Vz zz-MrOI!c2Zj3