diff --git a/win64/c3-0.1.6.win64/c3s.exe b/win64/c3-0.1.6.win64/c3s.exe
index 2701d9b..0ca8312 100755
Binary files a/win64/c3-0.1.6.win64/c3s.exe and b/win64/c3-0.1.6.win64/c3s.exe differ
diff --git a/win64/c3-0.1.6.win64/ic3.exe b/win64/c3-0.1.6.win64/ic3.exe
index 4ed28b0..a182683 100755
Binary files a/win64/c3-0.1.6.win64/ic3.exe and b/win64/c3-0.1.6.win64/ic3.exe differ
diff --git a/win64/c3-0.1.6.win64/ic3_debug.exe b/win64/c3-0.1.6.win64/ic3_debug.exe
index e9d3d6f..7c97521 100755
Binary files a/win64/c3-0.1.6.win64/ic3_debug.exe and b/win64/c3-0.1.6.win64/ic3_debug.exe differ
diff --git a/win64/c3-0.1.6.win64/lib/c3/0.1/c3.facts b/win64/c3-0.1.6.win64/lib/c3/0.1/c3.facts
index e549515..4afb051 100644
--- a/win64/c3-0.1.6.win64/lib/c3/0.1/c3.facts
+++ b/win64/c3-0.1.6.win64/lib/c3/0.1/c3.facts
@@ -1,99 +1,177 @@
%{module: C3.Facts.Dump,
version: 1}
-add {C3, :is_a, :module}
-add {C3, :symbol, C3.!}
-add {C3, :symbol, C3.&&}
-add {C3, :symbol, C3.*}
-add {C3, :symbol, C3.+}
-add {C3, :symbol, C3.-}
-add {C3, :symbol, C3./}
-add {C3, :symbol, C3.<=}
-add {C3, :symbol, C3.<}
-add {C3, :symbol, C3.=}
-add {C3, :symbol, C3.==}
-add {C3, :symbol, C3.>=}
-add {C3, :symbol, C3.>}
-add {C3, :symbol, C3._"()"}
-add {C3, :symbol, C3._"[]"}
-add {C3, :symbol, C3.break}
-add {C3, :symbol, C3.first}
-add {C3, :symbol, C3.xor}
-add {C3, :symbol, C3.||}
-replace {C3.+, :arity, 2}
-replace {C3.+, :cfn, cfn :tag "tag_add" (:tag, :tag, :&result)}
-add {C3.+, :is_a, :operator}
-replace {C3.+, :operator_precedence, 1}
-replace {C3.+, :operator_associativity, :left}
-replace {C3.-, :arity, 2}
-replace {C3.-, :cfn, cfn :tag "tag_sub" (:tag, :tag, :&result)}
-add {C3.-, :is_a, :operator}
-replace {C3.-, :operator_precedence, 1}
-replace {C3.-, :operator_associativity, :left}
-replace {C3.*, :arity, 2}
-replace {C3.*, :cfn, cfn :tag "tag_mul" (:tag, :tag, :&result)}
-add {C3.*, :is_a, :operator}
-replace {C3.*, :operator_precedence, 2}
-replace {C3.*, :operator_associativity, :left}
-replace {C3./, :arity, 2}
-replace {C3./, :cfn, cfn :tag "tag_div" (:tag, :tag, :&result)}
-add {C3./, :is_a, :operator}
-replace {C3./, :operator_precedence, 2}
-replace {C3./, :operator_associativity, :left}
-replace {C3.<, :arity, 2}
-replace {C3.<, :cfn, cfn :bool "tag_lt" (:tag, :tag)}
-add {C3.<, :is_a, :operator}
-replace {C3.<, :operator_precedence, 3}
-replace {C3.<, :operator_associativity, :left}
-replace {C3.<=, :arity, 2}
-replace {C3.<=, :cfn, cfn :bool "tag_lte" (:tag, :tag)}
-add {C3.<=, :is_a, :operator}
-replace {C3.<=, :operator_precedence, 3}
-replace {C3.<=, :operator_associativity, :left}
-replace {C3.=, :arity, 2}
-replace {C3.=, :cfn, cfn :tag "tag_equal" (:tag, :tag, :&result)}
-add {C3.=, :is_a, :operator}
-add {C3.=, :is_a, :special_operator}
-replace {C3.=, :operator_precedence, 5}
-replace {C3.=, :operator_associativity, :left}
-replace {C3.==, :arity, 2}
-replace {C3.==, :cfn, cfn :bool "tag_eq" (:tag, :tag)}
-add {C3.==, :is_a, :operator}
-replace {C3.==, :operator_precedence, 3}
-replace {C3.==, :operator_associativity, :left}
-replace {C3.>=, :arity, 2}
-replace {C3.>=, :cfn, cfn :bool "tag_gte" (:tag, :tag)}
-add {C3.>=, :is_a, :operator}
-replace {C3.>=, :operator_precedence, 3}
-replace {C3.>=, :operator_associativity, :left}
-replace {C3.>, :arity, 2}
-replace {C3.>, :cfn, cfn :bool "tag_gt" (:tag, :tag)}
-add {C3.>, :is_a, :operator}
-replace {C3.>, :operator_precedence, 3}
-replace {C3.>, :operator_associativity, :left}
-replace {C3.!, :arity, 1}
-replace {C3.!, :cfn, cfn :bool "tag_not" (:tag)}
-add {C3.!, :is_a, :operator}
-replace {C3._"()", :arity, 1}
-replace {C3._"()", :cfn, cfn :tag "tag_paren" (:tag, :&result)}
-add {C3._"()", :is_a, :operator}
-replace {C3._"[]", :arity, 2}
-replace {C3._"[]", :cfn, cfn :tag "tag_brackets" (:tag, :tag, :&result)}
-replace {C3.&&, :arity, 2}
-replace {C3.&&, :cfn, cfn :bool "tag_and" (:tag, :tag)}
-add {C3.&&, :is_a, :operator}
-replace {C3.&&, :operator_precedence, 4}
-replace {C3.&&, :operator_associativity, :left}
-replace {C3.||, :arity, 2}
-replace {C3.||, :cfn, cfn :bool "tag_or" (:tag, :tag)}
-add {C3.||, :is_a, :operator}
-replace {C3.||, :operator_precedence, 4}
-replace {C3.||, :operator_associativity, :left}
-replace {C3.xor, :arity, 2}
-replace {C3.xor, :cfn, cfn :bool "tag_xor" (:tag, :tag)}
-add {C3.xor, :is_a, :operator}
-replace {C3.xor, :operator_precedence, 4}
-replace {C3.xor, :operator_associativity, :left}
-replace {C3.break, :cfn, cfn :void "c3_break" ()}
+replace {C3, :is_a, :module}
+replace {C3, :operator, C3.operator00}
+replace {C3.operator00, :is_a, :operator}
+replace {C3.operator00, :symbol, :"()"}
+replace {C3.operator00, :arity, 1}
+replace {C3.operator00, :cfn, cfn Tag "tag_paren" (Tag, Result)}
+replace {C3.operator00, :operator_precedence, 13}
+replace {C3.operator00, :operator_associativity, :left}
+add {C3, :operator, C3.operator01}
+replace {C3.operator01, :is_a, :operator}
+replace {C3.operator01, :symbol, :"[]"}
+replace {C3.operator01, :arity, 2}
+replace {C3.operator01, :cfn, cfn Tag "tag_brackets" (Tag, Tag, Result)}
+replace {C3.operator01, :operator_precedence, 13}
+replace {C3.operator01, :operator_associativity, :left}
+add {C3, :operator, C3.operator02}
+replace {C3.operator02, :is_a, :operator}
+replace {C3.operator02, :symbol, :!}
+replace {C3.operator02, :arity, 1}
+replace {C3.operator02, :cfn, cfn :bool "tag_not" (Tag)}
+replace {C3.operator02, :operator_precedence, 12}
+replace {C3.operator02, :operator_associativity, :right}
+add {C3, :operator, C3.operator03}
+replace {C3.operator03, :is_a, :operator}
+replace {C3.operator03, :symbol, :~}
+replace {C3.operator03, :arity, 1}
+replace {C3.operator03, :cfn, cfn Tag "tag_bnot" (Tag, Result)}
+replace {C3.operator03, :operator_precedence, 12}
+replace {C3.operator03, :operator_associativity, :right}
+add {C3, :operator, C3.operator04}
+replace {C3.operator04, :is_a, :operator}
+replace {C3.operator04, :symbol, :-}
+replace {C3.operator04, :arity, 1}
+replace {C3.operator04, :cfn, cfn Tag "tag_neg" (Tag, Result)}
+replace {C3.operator04, :operator_precedence, 12}
+replace {C3.operator04, :operator_associativity, :right}
+add {C3, :operator, C3.operator05}
+replace {C3.operator05, :is_a, :operator}
+replace {C3.operator05, :symbol, :*}
+replace {C3.operator05, :arity, 2}
+replace {C3.operator05, :cfn, cfn Tag "tag_mul" (Tag, Tag, Result)}
+replace {C3.operator05, :operator_precedence, 11}
+replace {C3.operator05, :operator_associativity, :left}
+add {C3, :operator, C3.operator06}
+replace {C3.operator06, :is_a, :operator}
+replace {C3.operator06, :symbol, :/}
+replace {C3.operator06, :arity, 2}
+replace {C3.operator06, :cfn, cfn Tag "tag_div" (Tag, Tag, Result)}
+replace {C3.operator06, :operator_precedence, 11}
+replace {C3.operator06, :operator_associativity, :left}
+add {C3, :operator, C3.operator07}
+replace {C3.operator07, :is_a, :operator}
+replace {C3.operator07, :symbol, :mod}
+replace {C3.operator07, :arity, 2}
+replace {C3.operator07, :cfn, cfn Tag "tag_mod" (Tag, Tag, Result)}
+replace {C3.operator07, :operator_precedence, 11}
+replace {C3.operator07, :operator_associativity, :left}
+add {C3, :operator, C3.operator08}
+replace {C3.operator08, :is_a, :operator}
+replace {C3.operator08, :symbol, :+}
+replace {C3.operator08, :arity, 2}
+replace {C3.operator08, :cfn, cfn Tag "tag_add" (Tag, Tag, Result)}
+replace {C3.operator08, :operator_precedence, 10}
+replace {C3.operator08, :operator_associativity, :left}
+add {C3, :operator, C3.operator09}
+replace {C3.operator09, :is_a, :operator}
+replace {C3.operator09, :symbol, :-}
+replace {C3.operator09, :arity, 2}
+replace {C3.operator09, :cfn, cfn Tag "tag_sub" (Tag, Tag, Result)}
+replace {C3.operator09, :operator_precedence, 10}
+replace {C3.operator09, :operator_associativity, :left}
+add {C3, :operator, C3.operator10}
+replace {C3.operator10, :is_a, :operator}
+replace {C3.operator10, :symbol, :<<}
+replace {C3.operator10, :arity, 2}
+replace {C3.operator10, :cfn, cfn Tag "tag_shift_left" (Tag, Tag, Result)}
+replace {C3.operator10, :operator_precedence, 9}
+replace {C3.operator10, :operator_associativity, :left}
+add {C3, :operator, C3.operator11}
+replace {C3.operator11, :is_a, :operator}
+replace {C3.operator11, :symbol, :>>}
+replace {C3.operator11, :arity, 2}
+replace {C3.operator11, :cfn, cfn Tag "tag_shift_right" (Tag, Tag, Result)}
+replace {C3.operator11, :operator_precedence, 9}
+replace {C3.operator11, :operator_associativity, :left}
+add {C3, :operator, C3.operator12}
+replace {C3.operator12, :is_a, :operator}
+replace {C3.operator12, :symbol, :<}
+replace {C3.operator12, :arity, 2}
+replace {C3.operator12, :cfn, cfn :bool "tag_lt" (Tag, Tag)}
+replace {C3.operator12, :operator_precedence, 8}
+replace {C3.operator12, :operator_associativity, :left}
+add {C3, :operator, C3.operator13}
+replace {C3.operator13, :symbol, :<=}
+replace {C3.operator13, :is_a, :operator}
+replace {C3.operator13, :arity, 2}
+replace {C3.operator13, :cfn, cfn :bool "tag_lte" (Tag, Tag)}
+replace {C3.operator13, :operator_precedence, 8}
+replace {C3.operator13, :operator_associativity, :left}
+add {C3, :operator, C3.operator14}
+replace {C3.operator14, :symbol, :>}
+replace {C3.operator14, :is_a, :operator}
+replace {C3.operator14, :arity, 2}
+replace {C3.operator14, :cfn, cfn :bool "tag_gt" (Tag, Tag)}
+replace {C3.operator14, :operator_precedence, 8}
+replace {C3.operator14, :operator_associativity, :left}
+add {C3, :operator, C3.operator15}
+replace {C3.operator15, :symbol, :>=}
+replace {C3.operator15, :is_a, :operator}
+replace {C3.operator15, :arity, 2}
+replace {C3.operator15, :cfn, cfn :bool "tag_gte" (Tag, Tag)}
+replace {C3.operator15, :operator_precedence, 8}
+replace {C3.operator15, :operator_associativity, :left}
+add {C3, :operator, C3.operator16}
+replace {C3.operator16, :is_a, :operator}
+replace {C3.operator16, :symbol, :==}
+replace {C3.operator16, :arity, 2}
+replace {C3.operator16, :cfn, cfn :bool "tag_eq" (Tag, Tag)}
+replace {C3.operator16, :operator_precedence, 7}
+replace {C3.operator16, :operator_associativity, :left}
+add {C3, :operator, C3.operator17}
+replace {C3.operator17, :is_a, :operator}
+replace {C3.operator17, :symbol, :!=}
+replace {C3.operator17, :arity, 2}
+replace {C3.operator17, :cfn, cfn :bool "tag_not_eq" (Tag, Tag)}
+replace {C3.operator17, :operator_precedence, 7}
+replace {C3.operator17, :operator_associativity, :left}
+add {C3, :operator, C3.operator18}
+replace {C3.operator18, :is_a, :operator}
+replace {C3.operator18, :symbol, :&}
+replace {C3.operator18, :arity, 2}
+replace {C3.operator18, :cfn, cfn :bool "tag_band" (Tag, Tag)}
+replace {C3.operator18, :operator_precedence, 6}
+replace {C3.operator18, :operator_associativity, :left}
+add {C3, :operator, C3.operator19}
+replace {C3.operator19, :is_a, :operator}
+replace {C3.operator19, :symbol, :^}
+replace {C3.operator19, :arity, 2}
+replace {C3.operator19, :cfn, cfn :bool "tag_bxor" (Tag, Tag)}
+replace {C3.operator19, :operator_precedence, 5}
+replace {C3.operator19, :operator_associativity, :left}
+add {C3, :operator, C3.operator20}
+replace {C3.operator20, :is_a, :operator}
+replace {C3.operator20, :symbol, :bor}
+replace {C3.operator20, :arity, 2}
+replace {C3.operator20, :cfn, cfn :bool "tag_bor" (Tag, Tag)}
+replace {C3.operator20, :operator_precedence, 4}
+replace {C3.operator20, :operator_associativity, :left}
+add {C3, :operator, C3.operator21}
+replace {C3.operator21, :is_a, :operator}
+replace {C3.operator21, :symbol, :&&}
+replace {C3.operator21, :arity, 2}
+replace {C3.operator21, :cfn, cfn :bool "tag_and" (Tag, Tag)}
+replace {C3.operator21, :operator_precedence, 3}
+replace {C3.operator21, :operator_associativity, :left}
+add {C3, :operator, C3.operator22}
+replace {C3.operator22, :is_a, :operator}
+replace {C3.operator22, :symbol, :||}
+replace {C3.operator22, :arity, 2}
+replace {C3.operator22, :cfn, cfn :bool "tag_or" (Tag, Tag)}
+replace {C3.operator22, :operator_precedence, 2}
+replace {C3.operator22, :operator_associativity, :left}
+add {C3, :operator, C3.operator23}
+replace {C3.operator23, :is_a, :operator}
+add {C3.operator23, :is_a, :special_operator}
+replace {C3.operator23, :symbol, :=}
+replace {C3.operator23, :arity, 2}
+replace {C3.operator23, :cfn, cfn Tag "tag_equal" (Tag, Tag, Result)}
+replace {C3.operator23, :operator_precedence, 1}
+replace {C3.operator23, :operator_associativity, :right}
+replace {C3.break, :cfn, cfn Void "c3_break" ()}
+replace {C3, :symbol, C3.first}
replace {C3.first, :fn, fn {
((a | _b)) { a }
({a, _b}) { a }
diff --git a/win64/c3-0.1.6.win64/libffi-8.dll b/win64/c3-0.1.6.win64/libffi-8.dll
index 9937a11..3f9d5ff 100755
Binary files a/win64/c3-0.1.6.win64/libffi-8.dll and b/win64/c3-0.1.6.win64/libffi-8.dll differ
diff --git a/win64/c3-0.1.6.win64/msys-c3-0.dll b/win64/c3-0.1.6.win64/msys-c3-0.dll
index 235e251..8a40175 100755
Binary files a/win64/c3-0.1.6.win64/msys-c3-0.dll and b/win64/c3-0.1.6.win64/msys-c3-0.dll differ
diff --git a/win64/c3-0.1.6.win64/msys-c3_debug-0.dll b/win64/c3-0.1.6.win64/msys-c3_debug-0.dll
index 6e5af6a..fff7a48 100755
Binary files a/win64/c3-0.1.6.win64/msys-c3_debug-0.dll and b/win64/c3-0.1.6.win64/msys-c3_debug-0.dll differ
diff --git a/win64/c3-0.1.6.win64/test/facts_test_dump_file.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_dump_file.expected.facts
new file mode 100644
index 0000000..4d3a9e9
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_dump_file.expected.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {a, a, a}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_load_file.facts b/win64/c3-0.1.6.win64/test/facts_test_load_file.facts
new file mode 100644
index 0000000..cd38dd2
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_load_file.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_log_add.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_log_add.expected.facts
new file mode 100644
index 0000000..7f1260b
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_log_add.expected.facts
@@ -0,0 +1,23 @@
+add {"a", "a", "a"}
+add {:a, :a, :a}
+add {A, A, A}
+add {a, a, a}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_log_remove.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_log_remove.expected.facts
new file mode 100644
index 0000000..57fb991
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_log_remove.expected.facts
@@ -0,0 +1,46 @@
+add {"a", "a", "a"}
+add {:a, :a, :a}
+add {A, A, A}
+add {a, a, a}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {4294967296, 4294967296, 4294967296}
+remove {65536, 65536, 65536}
+remove {256, 256, 256}
+remove {10, 10, 10}
+remove {1, 1, 1}
+remove {0, 0, 0}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {((), ()), ((), ()), ((), ())}
+remove {(), (), ()}
+remove {a, a, a}
+remove {A, A, A}
+remove {:a, :a, :a}
+remove {"a", "a", "a"}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_open_file.1.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_open_file.1.expected.facts
new file mode 100644
index 0000000..0c95440
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_open_file.1.expected.facts
@@ -0,0 +1,71 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {"a", "a", "a"}
+remove {:a, :a, :a}
+remove {A, A, A}
+remove {a, a, a}
+remove {(), (), ()}
+remove {((), ()), ((), ()), ((), ())}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {0, 0, 0}
+remove {1, 1, 1}
+remove {10, 10, 10}
+remove {256, 256, 256}
+remove {65536, 65536, 65536}
+remove {4294967296, 4294967296, 4294967296}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {-1, -1, -1}
+remove {-10, -10, -10}
+remove {-256, -256, -256}
+remove {-65536, -65536, -65536}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {"b", "b", "b"}
+add {:b, :b, :b}
+add {B, B, B}
+add {b, b, b}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
+add {{b, b}, {b, b}, {b, b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-2, -2, -2}
+add {-11, -11, -11}
+add {-257, -257, -257}
+add {-65537, -65537, -65537}
+add {-4294967297, -4294967297, -4294967297}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_open_file.1.in.facts b/win64/c3-0.1.6.win64/test/facts_test_open_file.1.in.facts
new file mode 100644
index 0000000..cd38dd2
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_open_file.1.in.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_open_file.2.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_open_file.2.expected.facts
new file mode 100644
index 0000000..e49f9ef
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_open_file.2.expected.facts
@@ -0,0 +1,48 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {b, b, b}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-4294967297, -4294967297, -4294967297}
+add {-65537, -65537, -65537}
+add {-257, -257, -257}
+add {-11, -11, -11}
+add {-2, -2, -2}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {"b", "b", "b"}
+add {B, B, B}
+add {:b, :b, :b}
+add {{b, b}, {b, b}, {b, b}}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_open_file.2.in.facts b/win64/c3-0.1.6.win64/test/facts_test_open_file.2.in.facts
new file mode 100644
index 0000000..e49f9ef
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_open_file.2.in.facts
@@ -0,0 +1,48 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {b, b, b}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-4294967297, -4294967297, -4294967297}
+add {-65537, -65537, -65537}
+add {-257, -257, -257}
+add {-11, -11, -11}
+add {-2, -2, -2}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {"b", "b", "b"}
+add {B, B, B}
+add {:b, :b, :b}
+add {{b, b}, {b, b}, {b, b}}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_open_file.3.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_open_file.3.expected.facts
new file mode 100644
index 0000000..34357b8
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_open_file.3.expected.facts
@@ -0,0 +1,94 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {a, a, a}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
+remove {0, 0, 0}
+remove {1, 1, 1}
+remove {10, 10, 10}
+remove {256, 256, 256}
+remove {65536, 65536, 65536}
+remove {4294967296, 4294967296, 4294967296}
+remove {(), (), ()}
+remove {((), ()), ((), ()), ((), ())}
+remove {"a", "a", "a"}
+remove {A, A, A}
+remove {:a, :a, :a}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {"a", "a", "a"}
+add {:a, :a, :a}
+add {A, A, A}
+add {a, a, a}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {"b", "b", "b"}
+add {:b, :b, :b}
+add {B, B, B}
+add {b, b, b}
+add {(() | ()), (() | ()), (() | ())}
+add {((() | ()), ()), ((() | ()), ()), ((() | ()), ())}
+add {{:b, :b}, {:b, :b}, {:b, :b}}
+add {{{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}, {{:b, :b}, {:c, :d}}}
+add {{b, b}, {b, b}, {b, b}}
+add {{{b, b}, {c, d}}, {{b, b}, {c, d}}, {{b, b}, {c, d}}}
+add {2, 2, 2}
+add {3, 3, 3}
+add {11, 11, 11}
+add {257, 257, 257}
+add {65537, 65537, 65537}
+add {4294967297, 4294967297, 4294967297}
+add {18446744073709551617, 18446744073709551617, 18446744073709551617}
+add {-2, -2, -2}
+add {-11, -11, -11}
+add {-257, -257, -257}
+add {-65537, -65537, -65537}
+add {-4294967297, -4294967297, -4294967297}
+add {-18446744073709551617, -18446744073709551617, -18446744073709551617}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_open_file.3.in.facts b/win64/c3-0.1.6.win64/test/facts_test_open_file.3.in.facts
new file mode 100644
index 0000000..6215c21
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_open_file.3.in.facts
@@ -0,0 +1,48 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {a, a, a}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{a, b}, {a, b}, {a, b}}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+remove {a, a, a}
+remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
+remove {0, 0, 0}
+remove {1, 1, 1}
+remove {10, 10, 10}
+remove {256, 256, 256}
+remove {65536, 65536, 65536}
+remove {4294967296, 4294967296, 4294967296}
+remove {(), (), ()}
+remove {((), ()), ((), ()), ((), ())}
+remove {"a", "a", "a"}
+remove {A, A, A}
+remove {:a, :a, :a}
+remove {{a, b}, {a, b}, {a, b}}
+remove {{:a, :b}, {:a, :b}, {:a, :b}}
+remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/win64/c3-0.1.6.win64/test/facts_test_save.expected.facts b/win64/c3-0.1.6.win64/test/facts_test_save.expected.facts
new file mode 100644
index 0000000..4d3a9e9
--- /dev/null
+++ b/win64/c3-0.1.6.win64/test/facts_test_save.expected.facts
@@ -0,0 +1,25 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
+add {18446744073709551616, 18446744073709551616, 18446744073709551616}
+add {(), (), ()}
+add {((), ()), ((), ()), ((), ())}
+add {"a", "a", "a"}
+add {A, A, A}
+add {:a, :a, :a}
+add {{:a, :b}, {:a, :b}, {:a, :b}}
+add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
+add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
+add {{a, b}, {a, b}, {a, b}}
+add {a, a, a}
diff --git a/win64/c3-0.1.6.win64/test/ic3/array.out b/win64/c3-0.1.6.win64/test/ic3/array.out
deleted file mode 100644
index a510d31..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/array.out
+++ /dev/null
@@ -1,100 +0,0 @@
-(U8) {0, 1}
-(U8) {0, 1}
-a[0]
-a[1]
-0
-1
-(U8) {{0, 1}, {2, 3}}
-(U8) {{0, 1}, {2, 3}}
-b[0][0]
-b[0][1]
-b[1][0]
-b[1][1]
-0
-1
-2
-3
-(U8) {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}
-c[0][0][0]
-c[0][0][1]
-c[0][1][0]
-c[0][1][1]
-c[1][0][0]
-c[1][0][1]
-c[1][1][0]
-c[1][1][1]
-0
-1
-2
-3
-4
-5
-6
-7
-(U8) {{{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}, {{{8, 9}, {10, 11}}, {{12, 13}, {14, 15}}}}
-d[0][0][0][0]
-d[0][0][0][1]
-d[0][0][1][0]
-d[0][0][1][1]
-d[0][1][0][0]
-d[0][1][0][1]
-d[0][1][1][0]
-d[0][1][1][1]
-d[1][0][0][0]
-d[1][0][0][1]
-d[1][0][1][0]
-d[1][0][1][1]
-d[1][1][0][0]
-d[1][1][0][1]
-d[1][1][1][0]
-d[1][1][1][1]
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-(U8) {2}
-2
-(U8) {2, 4}
-2
-4
-(U8) {2, 4, 6}
-2
-4
-6
-(U8) {0, 1, 2}
-0
-1
-2
-(U16) {256, 257, 258}
-256
-257
-258
-(U32) {256, 257, 258}
-256
-257
-258
-(U64) {256, 257, 258}
-256
-257
-258
-(Integer) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
-(Integer) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
-1000000000000000000000000000000001
-2000000000000000000000000000000002
-(List) {(1, 2), (3, 4)}
-(List) {(1, 2), (3, 4)}
-(List) {(1, 2), (3, 4)}
-(1, 2)
-(3, 4)
diff --git a/win64/c3-0.1.6.win64/test/ic3/array.ret b/win64/c3-0.1.6.win64/test/ic3/array.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/array.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/bool.out b/win64/c3-0.1.6.win64/test/ic3/bool.out
deleted file mode 100644
index d6c1644..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/bool.out
+++ /dev/null
@@ -1,30 +0,0 @@
-true
-false
-true
-false
-false
-false
-false
-true
-false
-true
-true
-true
-true
-false
-false
-true
-false
-true
-false
-true
-true
-false
-true
-false
-true
-true
-false
-false
-true
-false
diff --git a/win64/c3-0.1.6.win64/test/ic3/bool.ret b/win64/c3-0.1.6.win64/test/ic3/bool.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/bool.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/call.out b/win64/c3-0.1.6.win64/test/ic3/call.out
deleted file mode 100644
index b9a0bb3..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/call.out
+++ /dev/null
@@ -1,13 +0,0 @@
-test()
-test(1)
-test(1, 2)
-test(1, 2, 3)
-Test.test()
-Test.test(1)
-Test.test(1, 2)
-Test.test(1, 2, 3)
-first((1, 2))
-C3.first((1, 2))
-1
-2
-3
diff --git a/win64/c3-0.1.6.win64/test/ic3/call.ret b/win64/c3-0.1.6.win64/test/ic3/call.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/call.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/cast.out b/win64/c3-0.1.6.win64/test/ic3/cast.out
deleted file mode 100644
index bcf07a7..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/cast.out
+++ /dev/null
@@ -1,26 +0,0 @@
-(U8) 0
-0
-(U8) 1
-1
-(U8) 255
-255
-(U8) 256
-0
-(U16) 256
-256
-(U16) 65535
-65535
-(U16) 65536
-0
-(U32) 65536
-65536
-(U32) 4294967296
-0
-(U64) 4294967296
-4294967296
-(U64) 18446744073709551616
-0
-(Integer) 18446744073709551616
-18446744073709551616
-(Integer) 340282366920938463463374607431768211455
-340282366920938463463374607431768211455
diff --git a/win64/c3-0.1.6.win64/test/ic3/cast.ret b/win64/c3-0.1.6.win64/test/ic3/cast.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/cast.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/character.out b/win64/c3-0.1.6.win64/test/ic3/character.out
deleted file mode 100644
index 94813fc..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/character.out
+++ /dev/null
@@ -1,14 +0,0 @@
-'0'
-'9'
-'A'
-'Z'
-'a'
-'z'
-'Π'
-'ÿ'
-'꒴'
-'𐅀'
-'🎳'
-'😄'
-'🟣'
-'🤩'
diff --git a/win64/c3-0.1.6.win64/test/ic3/character.ret b/win64/c3-0.1.6.win64/test/ic3/character.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/character.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/comment.out b/win64/c3-0.1.6.win64/test/ic3/comment.out
deleted file mode 100644
index 9df02fe..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/comment.out
+++ /dev/null
@@ -1,3 +0,0 @@
-"a"
-"b"
-"c"
diff --git a/win64/c3-0.1.6.win64/test/ic3/comment.ret b/win64/c3-0.1.6.win64/test/ic3/comment.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/comment.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/equal.out b/win64/c3-0.1.6.win64/test/ic3/equal.out
deleted file mode 100644
index b6d8518..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/equal.out
+++ /dev/null
@@ -1,4 +0,0 @@
-1
-1
-2
-(1, 2)
diff --git a/win64/c3-0.1.6.win64/test/ic3/equal.ret b/win64/c3-0.1.6.win64/test/ic3/equal.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/equal.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/fn.out b/win64/c3-0.1.6.win64/test/ic3/fn.out
deleted file mode 100644
index 175d540..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/fn.out
+++ /dev/null
@@ -1,29 +0,0 @@
-fn (x) { x }
-fn (x, _y) { x }
-fn ((x | _y)) { x }
-fn {
- (()) { :error }
- ((x | _y)) { x }
- (_) { :error }
-}
-fn (x) {
- "Hello, world !"
- x * 2
-}
-fn (x) { x }
-1
-fn (x, _y) { x }
-1
-fn ((x | _y)) { x }
-1
-fn {
- (()) { :error }
- ((x | _y)) { x }
- (_) { :error2 }
-}
-1
-fn (x) {
- "Hello, world !"
- x * 2
-}
-4
diff --git a/win64/c3-0.1.6.win64/test/ic3/fn.ret b/win64/c3-0.1.6.win64/test/ic3/fn.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/fn.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/hello.out b/win64/c3-0.1.6.win64/test/ic3/hello.out
deleted file mode 100644
index 68b3cbd..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/hello.out
+++ /dev/null
@@ -1 +0,0 @@
-"Hello, world !"
diff --git a/win64/c3-0.1.6.win64/test/ic3/hello.ret b/win64/c3-0.1.6.win64/test/ic3/hello.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/hello.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/ident.out b/win64/c3-0.1.6.win64/test/ic3/ident.out
deleted file mode 100644
index d3a5815..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/ident.out
+++ /dev/null
@@ -1,27 +0,0 @@
-_" "
-_"\n"
-_"\0"
-_"\n"
-_"\r"
-_" "
-_"\t"
-_"\v"
-_0
-_9
-_A
-_Z
-a
-z
-_À
-_É
-_Ÿ
-à
-é
-ÿ
-_Π
-꒴
-𐅀
-🎳
-😄
-🟣
-🤩
diff --git a/win64/c3-0.1.6.win64/test/ic3/ident.ret b/win64/c3-0.1.6.win64/test/ic3/ident.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/ident.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/integer.out b/win64/c3-0.1.6.win64/test/ic3/integer.out
deleted file mode 100644
index b83ea51..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/integer.out
+++ /dev/null
@@ -1,2860 +0,0 @@
--170141183460469231731687303715884105728
--170141183460469231731687303715884105728
--170141183460469231731687303715884105728
--170141183460469231731687303715884105727
--170141183460469231731687303715884105727
--170141183460469231731687303715884105727
--9223372036854775808
--9223372036854775808
--9223372036854775808
--9223372036854775807
--9223372036854775807
--9223372036854775807
--2147483648
--2147483648
--2147483648
--2147483647
--2147483647
--2147483647
--32768
--32768
--32768
--32767
--32767
--32767
--128
--128
--128
--127
--127
--127
-255
-255
-255
-256
-256
-256
-65535
-65535
-65535
-65536
-65536
-65536
-4294967295
-4294967295
-4294967295
-4294967296
-4294967296
-4294967296
-18446744073709551615
-18446744073709551615
-18446744073709551615
-18446744073709551616
-18446744073709551616
-18446744073709551616
-340282366920938463463374607431768211455
-340282366920938463463374607431768211455
-340282366920938463463374607431768211455
-340282366920938463463374607431768211456
-340282366920938463463374607431768211456
-340282366920938463463374607431768211456
--340282366920938463463374607431768211456
--340282366920938463463374607431768211455
--170141183460469231740910675752738881536
--170141183460469231740910675752738881535
--170141183460469231731687303718031589376
--170141183460469231731687303718031589375
--170141183460469231731687303715884138496
--170141183460469231731687303715884138495
--170141183460469231731687303715884105856
--170141183460469231731687303715884105855
--170141183460469231731687303715884105473
--170141183460469231731687303715884105472
--170141183460469231731687303715884040193
--170141183460469231731687303715884040192
--170141183460469231731687303711589138433
--170141183460469231731687303711589138432
--170141183460469231713240559642174554113
--170141183460469231713240559642174554112
-170141183460469231731687303715884105727
-170141183460469231731687303715884105728
--340282366920938463463374607431768211455
--340282366920938463463374607431768211454
--170141183460469231740910675752738881535
--170141183460469231740910675752738881534
--170141183460469231731687303718031589375
--170141183460469231731687303718031589374
--170141183460469231731687303715884138495
--170141183460469231731687303715884138494
--170141183460469231731687303715884105855
--170141183460469231731687303715884105854
--170141183460469231731687303715884105472
--170141183460469231731687303715884105471
--170141183460469231731687303715884040192
--170141183460469231731687303715884040191
--170141183460469231731687303711589138432
--170141183460469231731687303711589138431
--170141183460469231713240559642174554112
--170141183460469231713240559642174554111
-170141183460469231731687303715884105728
-170141183460469231731687303715884105729
--170141183460469231740910675752738881536
--170141183460469231740910675752738881535
--18446744073709551616
--18446744073709551615
--9223372039002259456
--9223372039002259455
--9223372036854808576
--9223372036854808575
--9223372036854775936
--9223372036854775935
--9223372036854775553
--9223372036854775552
--9223372036854710273
--9223372036854710272
--9223372032559808513
--9223372032559808512
-9223372036854775807
-9223372036854775808
-340282366920938463454151235394913435647
-340282366920938463454151235394913435648
--170141183460469231740910675752738881535
--170141183460469231740910675752738881534
--18446744073709551615
--18446744073709551614
--9223372039002259455
--9223372039002259454
--9223372036854808575
--9223372036854808574
--9223372036854775935
--9223372036854775934
--9223372036854775552
--9223372036854775551
--9223372036854710272
--9223372036854710271
--9223372032559808512
--9223372032559808511
-9223372036854775808
-9223372036854775809
-340282366920938463454151235394913435648
-340282366920938463454151235394913435649
--170141183460469231731687303718031589376
--170141183460469231731687303718031589375
--9223372039002259456
--9223372039002259455
--4294967296
--4294967295
--2147516416
--2147516415
--2147483776
--2147483775
--2147483393
--2147483392
--2147418113
--2147418112
-2147483647
-2147483648
-18446744071562067967
-18446744071562067968
-340282366920938463463374607429620727807
-340282366920938463463374607429620727808
--170141183460469231731687303718031589375
--170141183460469231731687303718031589374
--9223372039002259455
--9223372039002259454
--4294967295
--4294967294
--2147516415
--2147516414
--2147483775
--2147483774
--2147483392
--2147483391
--2147418112
--2147418111
-2147483648
-2147483649
-18446744071562067968
-18446744071562067969
-340282366920938463463374607429620727808
-340282366920938463463374607429620727809
--170141183460469231731687303715884138496
--170141183460469231731687303715884138495
--9223372036854808576
--9223372036854808575
--2147516416
--2147516415
--65536
--65535
--32896
--32895
--32513
--32512
-32767
-32768
-4294934527
-4294934528
-18446744073709518847
-18446744073709518848
-340282366920938463463374607431768178687
-340282366920938463463374607431768178688
--170141183460469231731687303715884138495
--170141183460469231731687303715884138494
--9223372036854808575
--9223372036854808574
--2147516415
--2147516414
--65535
--65534
--32895
--32894
--32512
--32511
-32768
-32769
-4294934528
-4294934529
-18446744073709518848
-18446744073709518849
-340282366920938463463374607431768178688
-340282366920938463463374607431768178689
--170141183460469231731687303715884105856
--170141183460469231731687303715884105855
--9223372036854775936
--9223372036854775935
--2147483776
--2147483775
--32896
--32895
--256
--255
-127
-128
-65407
-65408
-4294967167
-4294967168
-18446744073709551487
-18446744073709551488
-340282366920938463463374607431768211327
-340282366920938463463374607431768211328
--170141183460469231731687303715884105855
--170141183460469231731687303715884105854
--9223372036854775935
--9223372036854775934
--2147483775
--2147483774
--32895
--32894
--255
--254
-128
-129
-65408
-65409
-4294967168
-4294967169
-18446744073709551488
-18446744073709551489
-340282366920938463463374607431768211328
-340282366920938463463374607431768211329
--170141183460469231731687303715884105473
--170141183460469231731687303715884105472
--9223372036854775553
--9223372036854775552
--2147483393
--2147483392
--32513
--32512
-127
-128
-510
-511
-65790
-65791
-4294967550
-4294967551
-18446744073709551870
-18446744073709551871
-340282366920938463463374607431768211710
-340282366920938463463374607431768211711
--170141183460469231731687303715884105472
--170141183460469231731687303715884105471
--9223372036854775552
--9223372036854775551
--2147483392
--2147483391
--32512
--32511
-128
-129
-511
-512
-65791
-65792
-4294967551
-4294967552
-18446744073709551871
-18446744073709551872
-340282366920938463463374607431768211711
-340282366920938463463374607431768211712
--170141183460469231731687303715884040193
--170141183460469231731687303715884040192
--9223372036854710273
--9223372036854710272
--2147418113
--2147418112
-32767
-32768
-65407
-65408
-65790
-65791
-131070
-131071
-4295032830
-4295032831
-18446744073709617150
-18446744073709617151
-340282366920938463463374607431768276990
-340282366920938463463374607431768276991
--170141183460469231731687303715884040192
--170141183460469231731687303715884040191
--9223372036854710272
--9223372036854710271
--2147418112
--2147418111
-32768
-32769
-65408
-65409
-65791
-65792
-131071
-131072
-4295032831
-4295032832
-18446744073709617151
-18446744073709617152
-340282366920938463463374607431768276991
-340282366920938463463374607431768276992
--170141183460469231731687303711589138433
--170141183460469231731687303711589138432
--9223372032559808513
--9223372032559808512
-2147483647
-2147483648
-4294934527
-4294934528
-4294967167
-4294967168
-4294967550
-4294967551
-4295032830
-4295032831
-8589934590
-8589934591
-18446744078004518910
-18446744078004518911
-340282366920938463463374607436063178750
-340282366920938463463374607436063178751
--170141183460469231731687303711589138432
--170141183460469231731687303711589138431
--9223372032559808512
--9223372032559808511
-2147483648
-2147483649
-4294934528
-4294934529
-4294967168
-4294967169
-4294967551
-4294967552
-4295032831
-4295032832
-8589934591
-8589934592
-18446744078004518911
-18446744078004518912
-340282366920938463463374607436063178751
-340282366920938463463374607436063178752
--170141183460469231713240559642174554113
--170141183460469231713240559642174554112
-9223372036854775807
-9223372036854775808
-18446744071562067967
-18446744071562067968
-18446744073709518847
-18446744073709518848
-18446744073709551487
-18446744073709551488
-18446744073709551870
-18446744073709551871
-18446744073709617150
-18446744073709617151
-18446744078004518910
-18446744078004518911
-36893488147419103230
-36893488147419103231
-340282366920938463481821351505477763070
-340282366920938463481821351505477763071
--170141183460469231713240559642174554112
--170141183460469231713240559642174554111
-9223372036854775808
-9223372036854775809
-18446744071562067968
-18446744071562067969
-18446744073709518848
-18446744073709518849
-18446744073709551488
-18446744073709551489
-18446744073709551871
-18446744073709551872
-18446744073709617151
-18446744073709617152
-18446744078004518911
-18446744078004518912
-36893488147419103231
-36893488147419103232
-340282366920938463481821351505477763071
-340282366920938463481821351505477763072
-170141183460469231731687303715884105727
-170141183460469231731687303715884105728
-340282366920938463454151235394913435647
-340282366920938463454151235394913435648
-340282366920938463463374607429620727807
-340282366920938463463374607429620727808
-340282366920938463463374607431768178687
-340282366920938463463374607431768178688
-340282366920938463463374607431768211327
-340282366920938463463374607431768211328
-340282366920938463463374607431768211710
-340282366920938463463374607431768211711
-340282366920938463463374607431768276990
-340282366920938463463374607431768276991
-340282366920938463463374607436063178750
-340282366920938463463374607436063178751
-340282366920938463481821351505477763070
-340282366920938463481821351505477763071
-680564733841876926926749214863536422910
-680564733841876926926749214863536422911
-170141183460469231731687303715884105728
-170141183460469231731687303715884105729
-340282366920938463454151235394913435648
-340282366920938463454151235394913435649
-340282366920938463463374607429620727808
-340282366920938463463374607429620727809
-340282366920938463463374607431768178688
-340282366920938463463374607431768178689
-340282366920938463463374607431768211328
-340282366920938463463374607431768211329
-340282366920938463463374607431768211711
-340282366920938463463374607431768211712
-340282366920938463463374607431768276991
-340282366920938463463374607431768276992
-340282366920938463463374607436063178751
-340282366920938463463374607436063178752
-340282366920938463481821351505477763071
-340282366920938463481821351505477763072
-680564733841876926926749214863536422911
-680564733841876926926749214863536422912
-0
--1
--170141183460469231722463931679029329920
--170141183460469231722463931679029329921
--170141183460469231731687303713736622080
--170141183460469231731687303713736622081
--170141183460469231731687303715884072960
--170141183460469231731687303715884072961
--170141183460469231731687303715884105600
--170141183460469231731687303715884105601
--170141183460469231731687303715884105983
--170141183460469231731687303715884105984
--170141183460469231731687303715884171263
--170141183460469231731687303715884171264
--170141183460469231731687303720179073023
--170141183460469231731687303720179073024
--170141183460469231750134047789593657343
--170141183460469231750134047789593657344
--510423550381407695195061911147652317183
--510423550381407695195061911147652317184
-1
-0
--170141183460469231722463931679029329919
--170141183460469231722463931679029329920
--170141183460469231731687303713736622079
--170141183460469231731687303713736622080
--170141183460469231731687303715884072959
--170141183460469231731687303715884072960
--170141183460469231731687303715884105599
--170141183460469231731687303715884105600
--170141183460469231731687303715884105982
--170141183460469231731687303715884105983
--170141183460469231731687303715884171262
--170141183460469231731687303715884171263
--170141183460469231731687303720179073022
--170141183460469231731687303720179073023
--170141183460469231750134047789593657342
--170141183460469231750134047789593657343
--510423550381407695195061911147652317182
--510423550381407695195061911147652317183
-170141183460469231722463931679029329920
-170141183460469231722463931679029329919
-0
--1
--9223372034707292160
--9223372034707292161
--9223372036854743040
--9223372036854743041
--9223372036854775680
--9223372036854775681
--9223372036854776063
--9223372036854776064
--9223372036854841343
--9223372036854841344
--9223372041149743103
--9223372041149743104
--27670116110564327423
--27670116110564327424
--340282366920938463472597979468622987263
--340282366920938463472597979468622987264
-170141183460469231722463931679029329921
-170141183460469231722463931679029329920
-1
-0
--9223372034707292159
--9223372034707292160
--9223372036854743039
--9223372036854743040
--9223372036854775679
--9223372036854775680
--9223372036854776062
--9223372036854776063
--9223372036854841342
--9223372036854841343
--9223372041149743102
--9223372041149743103
--27670116110564327422
--27670116110564327423
--340282366920938463472597979468622987262
--340282366920938463472597979468622987263
-170141183460469231731687303713736622080
-170141183460469231731687303713736622079
-9223372034707292160
-9223372034707292159
-0
--1
--2147450880
--2147450881
--2147483520
--2147483521
--2147483903
--2147483904
--2147549183
--2147549184
--6442450943
--6442450944
--18446744075857035263
--18446744075857035264
--340282366920938463463374607433915695103
--340282366920938463463374607433915695104
-170141183460469231731687303713736622081
-170141183460469231731687303713736622080
-9223372034707292161
-9223372034707292160
-1
-0
--2147450879
--2147450880
--2147483519
--2147483520
--2147483902
--2147483903
--2147549182
--2147549183
--6442450942
--6442450943
--18446744075857035262
--18446744075857035263
--340282366920938463463374607433915695102
--340282366920938463463374607433915695103
-170141183460469231731687303715884072960
-170141183460469231731687303715884072959
-9223372036854743040
-9223372036854743039
-2147450880
-2147450879
-0
--1
--32640
--32641
--33023
--33024
--98303
--98304
--4295000063
--4295000064
--18446744073709584383
--18446744073709584384
--340282366920938463463374607431768244223
--340282366920938463463374607431768244224
-170141183460469231731687303715884072961
-170141183460469231731687303715884072960
-9223372036854743041
-9223372036854743040
-2147450881
-2147450880
-1
-0
--32639
--32640
--33022
--33023
--98302
--98303
--4295000062
--4295000063
--18446744073709584382
--18446744073709584383
--340282366920938463463374607431768244222
--340282366920938463463374607431768244223
-170141183460469231731687303715884105600
-170141183460469231731687303715884105599
-9223372036854775680
-9223372036854775679
-2147483520
-2147483519
-32640
-32639
-0
--1
--383
--384
--65663
--65664
--4294967423
--4294967424
--18446744073709551743
--18446744073709551744
--340282366920938463463374607431768211583
--340282366920938463463374607431768211584
-170141183460469231731687303715884105601
-170141183460469231731687303715884105600
-9223372036854775681
-9223372036854775680
-2147483521
-2147483520
-32641
-32640
-1
-0
--382
--383
--65662
--65663
--4294967422
--4294967423
--18446744073709551742
--18446744073709551743
--340282366920938463463374607431768211582
--340282366920938463463374607431768211583
-170141183460469231731687303715884105983
-170141183460469231731687303715884105982
-9223372036854776063
-9223372036854776062
-2147483903
-2147483902
-33023
-33022
-383
-382
-0
--1
--65280
--65281
--4294967040
--4294967041
--18446744073709551360
--18446744073709551361
--340282366920938463463374607431768211200
--340282366920938463463374607431768211201
-170141183460469231731687303715884105984
-170141183460469231731687303715884105983
-9223372036854776064
-9223372036854776063
-2147483904
-2147483903
-33024
-33023
-384
-383
-1
-0
--65279
--65280
--4294967039
--4294967040
--18446744073709551359
--18446744073709551360
--340282366920938463463374607431768211199
--340282366920938463463374607431768211200
-170141183460469231731687303715884171263
-170141183460469231731687303715884171262
-9223372036854841343
-9223372036854841342
-2147549183
-2147549182
-98303
-98302
-65663
-65662
-65280
-65279
-0
--1
--4294901760
--4294901761
--18446744073709486080
--18446744073709486081
--340282366920938463463374607431768145920
--340282366920938463463374607431768145921
-170141183460469231731687303715884171264
-170141183460469231731687303715884171263
-9223372036854841344
-9223372036854841343
-2147549184
-2147549183
-98304
-98303
-65664
-65663
-65281
-65280
-1
-0
--4294901759
--4294901760
--18446744073709486079
--18446744073709486080
--340282366920938463463374607431768145919
--340282366920938463463374607431768145920
-170141183460469231731687303720179073023
-170141183460469231731687303720179073022
-9223372041149743103
-9223372041149743102
-6442450943
-6442450942
-4295000063
-4295000062
-4294967423
-4294967422
-4294967040
-4294967039
-4294901760
-4294901759
-0
--1
--18446744069414584320
--18446744069414584321
--340282366920938463463374607427473244160
--340282366920938463463374607427473244161
-170141183460469231731687303720179073024
-170141183460469231731687303720179073023
-9223372041149743104
-9223372041149743103
-6442450944
-6442450943
-4295000064
-4295000063
-4294967424
-4294967423
-4294967041
-4294967040
-4294901761
-4294901760
-1
-0
--18446744069414584319
--18446744069414584320
--340282366920938463463374607427473244159
--340282366920938463463374607427473244160
-170141183460469231750134047789593657343
-170141183460469231750134047789593657342
-27670116110564327423
-27670116110564327422
-18446744075857035263
-18446744075857035262
-18446744073709584383
-18446744073709584382
-18446744073709551743
-18446744073709551742
-18446744073709551360
-18446744073709551359
-18446744073709486080
-18446744073709486079
-18446744069414584320
-18446744069414584319
-0
--1
--340282366920938463444927863358058659840
--340282366920938463444927863358058659841
-170141183460469231750134047789593657344
-170141183460469231750134047789593657343
-27670116110564327424
-27670116110564327423
-18446744075857035264
-18446744075857035263
-18446744073709584384
-18446744073709584383
-18446744073709551744
-18446744073709551743
-18446744073709551361
-18446744073709551360
-18446744073709486081
-18446744073709486080
-18446744069414584321
-18446744069414584320
-1
-0
--340282366920938463444927863358058659839
--340282366920938463444927863358058659840
-510423550381407695195061911147652317183
-510423550381407695195061911147652317182
-340282366920938463472597979468622987263
-340282366920938463472597979468622987262
-340282366920938463463374607433915695103
-340282366920938463463374607433915695102
-340282366920938463463374607431768244223
-340282366920938463463374607431768244222
-340282366920938463463374607431768211583
-340282366920938463463374607431768211582
-340282366920938463463374607431768211200
-340282366920938463463374607431768211199
-340282366920938463463374607431768145920
-340282366920938463463374607431768145919
-340282366920938463463374607427473244160
-340282366920938463463374607427473244159
-340282366920938463444927863358058659840
-340282366920938463444927863358058659839
-0
--1
-510423550381407695195061911147652317184
-510423550381407695195061911147652317183
-340282366920938463472597979468622987264
-340282366920938463472597979468622987263
-340282366920938463463374607433915695104
-340282366920938463463374607433915695103
-340282366920938463463374607431768244224
-340282366920938463463374607431768244223
-340282366920938463463374607431768211584
-340282366920938463463374607431768211583
-340282366920938463463374607431768211201
-340282366920938463463374607431768211200
-340282366920938463463374607431768145921
-340282366920938463463374607431768145920
-340282366920938463463374607427473244161
-340282366920938463463374607427473244160
-340282366920938463444927863358058659841
-340282366920938463444927863358058659840
-1
-0
-28948022309329048855892746252171976963317496166410141009864396001978282409984
-28948022309329048855892746252171976963147354982949671778132708698262398304256
-1569275433846670190958947355801916604025588861116008628224
-1569275433846670190788806172341447372293901557400124522496
-365375409332725729550921208179070754913983135744
-365375409162584546090451976447383451198099030016
-5575186299632655785383929568162090376495104
-5575016158449195316152197880858374492389376
-21778071482940061661655974875633165533184
-21607930299479592429924287571917281427456
--43386001782419654091580262447550446960640
--43556142965880123323311949751266331066368
--11150202458081851101536127449020464868884480
--11150372599265311570767859136324180752990208
--730750818495310275641373184626454206112082165760
--730750818665451459101842416358141509827966271488
--3138550867693340381747753528143363976319490418516133150720
--3138550867693340381917894711603833208051177722232017256448
--57896044618658097711785492504343953926464851149359812787997104700240680714240
--57896044618658097711785492504343953926634992332820282019728792003956564819968
-28948022309329048855892746252171976963147354982949671778132708698262398304256
-28948022309329048855892746252171976962977213799489202546401021394546514198529
-1569275433846670190958947355801916604016365489079153852416
-1569275433846670190788806172341447372284678185363269746689
-365375409332725729550921208179070754911835652096
-365375409162584546090451976447383451195951546369
-5575186299632655785383929568162090376462336
-5575016158449195316152197880858374492356609
-21778071482940061661655974875633165533056
-21607930299479592429924287571917281427329
--43386001782419654091580262447550446960385
--43556142965880123323311949751266331066112
--11150202458081851101536127449020464868818945
--11150372599265311570767859136324180752924672
--730750818495310275641373184626454206107787198465
--730750818665451459101842416358141509823671304192
--3138550867693340381747753528143363976301043674442423599105
--3138550867693340381917894711603833208032730978158307704832
--57896044618658097711785492504343953926124568782438874324533730092808912502785
--57896044618658097711785492504343953926294709965899343556265417396524796608512
-1569275433846670190958947355801916604025588861116008628224
-1569275433846670190958947355801916604016365489079153852416
-85070591730234615865843651857942052864
-85070591730234615856620279821087277056
-19807040628566084398385987584
-19807040619342712361531211776
-302231454903657293676544
-302222231531620438900736
-1180591620717411303424
-1171368248680556527616
--2351959869397967831040
--2361183241434822606848
--604453686435277732577280
--604462909807314587353088
--39614081247908796759917199360
--39614081257132168796771975168
--170141183460469231722463931679029329920
--170141183460469231731687303715884105728
--3138550867693340381917894711603833208041954350195162480640
--3138550867693340381917894711603833208051177722232017256448
-1569275433846670190788806172341447372293901557400124522496
-1569275433846670190788806172341447372284678185363269746689
-85070591730234615856620279821087277056
-85070591730234615847396907784232501249
-19807040628566084396238503936
-19807040619342712359383728129
-302231454903657293643776
-302222231531620438867969
-1180591620717411303296
-1171368248680556527489
--2351959869397967830785
--2361183241434822606592
--604453686435277732511745
--604462909807314587287552
--39614081247908796755622232065
--39614081257132168792477007872
--170141183460469231704017187605319778305
--170141183460469231713240559642174554112
--3138550867693340381577612344682894744578579742763394269185
--3138550867693340381577612344682894744587803114800249044992
-365375409332725729550921208179070754913983135744
-365375409332725729550921208179070754911835652096
-19807040628566084398385987584
-19807040628566084396238503936
-4611686018427387904
-4611686016279904256
-70368744177664
-70366596694016
-274877906944
-272730423296
--547608330240
--549755813888
--140735340871680
--140737488355328
--9223372034707292160
--9223372036854775808
--39614081257132168794624491520
--39614081257132168796771975168
--730750818665451459101842416358141509825818787840
--730750818665451459101842416358141509827966271488
-365375409162584546090451976447383451198099030016
-365375409162584546090451976447383451195951546369
-19807040619342712361531211776
-19807040619342712359383728129
-4611686016279904256
-4611686014132420609
-70368744144896
-70366596661249
-274877906816
-272730423169
--547608329985
--549755813632
--140735340806145
--140737488289792
--9223372030412324865
--9223372032559808512
--39614081238685424720914939905
--39614081238685424723062423552
--730750818325169092180903952894766902394050576385
--730750818325169092180903952894766902396198060032
-5575186299632655785383929568162090376495104
-5575186299632655785383929568162090376462336
-302231454903657293676544
-302231454903657293643776
-70368744177664
-70368744144896
-1073741824
-1073709056
-4194304
-4161536
--8355840
--8388608
--2147450880
--2147483648
--140737488322560
--140737488355328
--604462909807314587320320
--604462909807314587353088
--11150372599265311570767859136324180752957440
--11150372599265311570767859136324180752990208
-5575016158449195316152197880858374492389376
-5575016158449195316152197880858374492356609
-302222231531620438900736
-302222231531620438867969
-70366596694016
-70366596661249
-1073709056
-1073676289
-4194176
-4161409
--8355585
--8388352
--2147385345
--2147418112
--140733193355265
--140733193388032
--604444463063240877768705
--604444463063240877801472
--11150032316898390632304395761716748984745985
--11150032316898390632304395761716748984778752
-21778071482940061661655974875633165533184
-21778071482940061661655974875633165533056
-1180591620717411303424
-1180591620717411303296
-274877906944
-274877906816
-4194304
-4194176
-16384
-16256
--32640
--32768
--8388480
--8388608
--549755813760
--549755813888
--2361183241434822606720
--2361183241434822606848
--43556142965880123323311949751266331066240
--43556142965880123323311949751266331066368
-21607930299479592429924287571917281427456
-21607930299479592429924287571917281427329
-1171368248680556527616
-1171368248680556527489
-272730423296
-272730423169
-4161536
-4161409
-16256
-16129
--32385
--32512
--8322945
--8323072
--545460846465
--545460846592
--2342736497361113055105
--2342736497361113055232
--43215860598959184859848575143834562854785
--43215860598959184859848575143834562854912
--43386001782419654091580262447550446960640
--43386001782419654091580262447550446960385
--2351959869397967831040
--2351959869397967830785
--547608330240
--547608329985
--8355840
--8355585
--32640
--32385
-65025
-65280
-16711425
-16711680
-1095216660225
-1095216660480
-4703919738795935661825
-4703919738795935662080
-86772003564839308183160524895100893921025
-86772003564839308183160524895100893921280
--43556142965880123323311949751266331066368
--43556142965880123323311949751266331066112
--2361183241434822606848
--2361183241434822606592
--549755813888
--549755813632
--8388608
--8388352
--32768
--32512
-65280
-65536
-16776960
-16777216
-1099511627520
-1099511627776
-4722366482869645213440
-4722366482869645213696
-87112285931760246646623899502532662132480
-87112285931760246646623899502532662132736
--11150202458081851101536127449020464868884480
--11150202458081851101536127449020464868818945
--604453686435277732577280
--604453686435277732511745
--140735340871680
--140735340806145
--2147450880
--2147385345
--8388480
--8322945
-16711425
-16776960
-4294836225
-4294901760
-281470681677825
-281470681743360
-1208907372870555465089025
-1208907372870555465154560
-22300404916163702203072254898040929737703425
-22300404916163702203072254898040929737768960
--11150372599265311570767859136324180752990208
--11150372599265311570767859136324180752924672
--604462909807314587353088
--604462909807314587287552
--140737488355328
--140737488289792
--2147483648
--2147418112
--8388608
--8323072
-16711680
-16777216
-4294901760
-4294967296
-281474976645120
-281474976710656
-1208925819614629174640640
-1208925819614629174706176
-22300745198530623141535718272648361505914880
-22300745198530623141535718272648361505980416
--730750818495310275641373184626454206112082165760
--730750818495310275641373184626454206107787198465
--39614081247908796759917199360
--39614081247908796755622232065
--9223372034707292160
--9223372030412324865
--140737488322560
--140733193355265
--549755813760
--545460846465
-1095216660225
-1099511627520
-281470681677825
-281474976645120
-18446744065119617025
-18446744069414584320
-79228162495817593515539431425
-79228162495817593519834398720
-1461501636990620551282746369252908412219869364225
-1461501636990620551282746369252908412224164331520
--730750818665451459101842416358141509827966271488
--730750818665451459101842416358141509823671304192
--39614081257132168796771975168
--39614081257132168792477007872
--9223372036854775808
--9223372032559808512
--140737488355328
--140733193388032
--549755813888
--545460846592
-1095216660480
-1099511627776
-281470681743360
-281474976710656
-18446744069414584320
-18446744073709551616
-79228162514264337589248983040
-79228162514264337593543950336
-1461501637330902918203684832716283019651637575680
-1461501637330902918203684832716283019655932542976
--3138550867693340381747753528143363976319490418516133150720
--3138550867693340381747753528143363976301043674442423599105
--170141183460469231722463931679029329920
--170141183460469231704017187605319778305
--39614081257132168794624491520
--39614081238685424720914939905
--604462909807314587320320
--604444463063240877768705
--2361183241434822606720
--2342736497361113055105
-4703919738795935661825
-4722366482869645213440
-1208907372870555465089025
-1208925819614629174640640
-79228162495817593515539431425
-79228162514264337589248983040
-340282366920938463426481119284349108225
-340282366920938463444927863358058659840
-6277101735386680763495507056286727952620534092958556749825
-6277101735386680763495507056286727952638980837032266301440
--3138550867693340381917894711603833208051177722232017256448
--3138550867693340381917894711603833208032730978158307704832
--170141183460469231731687303715884105728
--170141183460469231713240559642174554112
--39614081257132168796771975168
--39614081238685424723062423552
--604462909807314587353088
--604444463063240877801472
--2361183241434822606848
--2342736497361113055232
-4703919738795935662080
-4722366482869645213696
-1208907372870555465154560
-1208925819614629174706176
-79228162495817593519834398720
-79228162514264337593543950336
-340282366920938463444927863358058659840
-340282366920938463463374607431768211456
-6277101735386680763835789423207666416083908700390324961280
-6277101735386680763835789423207666416102355444464034512896
--57896044618658097711785492504343953926464851149359812787997104700240680714240
--57896044618658097711785492504343953926124568782438874324533730092808912502785
--3138550867693340381917894711603833208041954350195162480640
--3138550867693340381577612344682894744578579742763394269185
--730750818665451459101842416358141509825818787840
--730750818325169092180903952894766902394050576385
--11150372599265311570767859136324180752957440
--11150032316898390632304395761716748984745985
--43556142965880123323311949751266331066240
--43215860598959184859848575143834562854785
-86772003564839308183160524895100893921025
-87112285931760246646623899502532662132480
-22300404916163702203072254898040929737703425
-22300745198530623141535718272648361505914880
-1461501636990620551282746369252908412219869364225
-1461501637330902918203684832716283019651637575680
-6277101735386680763495507056286727952620534092958556749825
-6277101735386680763835789423207666416083908700390324961280
-115792089237316195423570985008687907852589419931798687112530834793049593217025
-115792089237316195423570985008687907852929702298719625575994209400481361428480
--57896044618658097711785492504343953926634992332820282019728792003956564819968
--57896044618658097711785492504343953926294709965899343556265417396524796608512
--3138550867693340381917894711603833208051177722232017256448
--3138550867693340381577612344682894744587803114800249044992
--730750818665451459101842416358141509827966271488
--730750818325169092180903952894766902396198060032
--11150372599265311570767859136324180752990208
--11150032316898390632304395761716748984778752
--43556142965880123323311949751266331066368
--43215860598959184859848575143834562854912
-86772003564839308183160524895100893921280
-87112285931760246646623899502532662132736
-22300404916163702203072254898040929737768960
-22300745198530623141535718272648361505980416
-1461501636990620551282746369252908412224164331520
-1461501637330902918203684832716283019655932542976
-6277101735386680763495507056286727952638980837032266301440
-6277101735386680763835789423207666416102355444464034512896
-115792089237316195423570985008687907852929702298719625575994209400481361428480
-115792089237316195423570985008687907853269984665640564039457584007913129639936
-1
-1
-18446744073709551616
-18446744073709551618
-79228162514264337593543950336
-79228162551157825758142922760
-5192296858534827628530496329220096
-5192455319695707014120526862876800
-1329227995784915872903807060280344576
-1339694357956450643556592942644756738
--667220327295957771496812955748565120
--664613997892457936451903530140172288
--2596188043953143079754136014585856
--2596148429267413814265248164610048
--39614081266355540835774234624
--39614081257132168796771975168
--9223372036854775808
--9223372036854775808
-0
-0
-0
-1
-18446744073709551615
-18446744073709551618
-79228162514264337593543950335
-79228162551157825758142922760
-5192296858534827628530496329220095
-5192455319695707014120526862876800
-1329227995784915872903807060280344575
-1339694357956450643556592942644756738
--667220327295957771496812955748565120
--664613997892457936451903530140172287
--2596188043953143079754136014585856
--2596148429267413814265248164610047
--39614081266355540835774234624
--39614081257132168796771975167
--9223372036854775808
--9223372036854775807
-0
-0
-0
-0
-1
-1
-4294967296
-4294967298
-281474976710656
-281483566907400
-72057594037927936
-72624976668147841
--36170086419038336
--36028797018963968
--140739635871744
--140737488355328
--2147483648
--2147483648
-0
-0
-0
-0
-0
-0
-0
-1
-4294967295
-4294967298
-281474976710655
-281483566907400
-72057594037927935
-72624976668147841
--36170086419038336
--36028797018963967
--140739635871744
--140737488355327
--2147483648
--2147483647
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-65536
-65538
-16777216
-16909320
--8421504
--8388608
--32768
--32768
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-65535
-65538
-16777215
-16909320
--8421504
--8388607
--32768
--32767
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-256
-258
--128
--128
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-255
-258
--128
--127
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
--1
--2
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
--2
--2
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
--1
--2
--511
--516
-257
-255
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
--2
--2
--512
--516
-257
-256
-1
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
-0
--1
--2
--131071
--131076
--33554431
--33818640
-16843009
-16777215
-65537
-65535
-1
-0
-0
-0
-0
-0
-0
-0
-0
-0
--2
--2
--131072
--131076
--33554432
--33818640
-16843009
-16777216
-65537
-65536
-1
-1
-0
-0
-0
-0
-0
-0
--1
--2
--8589934591
--8589934596
--562949953421311
--562967133814800
--144115188075855871
--145249953336295682
-72340172838076673
-72057594037927935
-281479271743489
-281474976710655
-4294967297
-4294967295
-1
-0
-0
-0
-0
-0
--2
--2
--8589934592
--8589934596
--562949953421312
--562967133814800
--144115188075855872
--145249953336295682
-72340172838076673
-72057594037927936
-281479271743489
-281474976710656
-4294967297
-4294967296
-1
-1
-0
-0
--1
--2
--36893488147419103231
--36893488147419103236
--158456325028528675187087900671
--158456325102315651516285845520
--10384593717069655257060992658440191
--10384910639391414028241053725753600
--2658455991569831745807614120560689151
--2679388715912901287113185885289513476
-1334440654591915542993625911497130241
-1329227995784915872903807060280344575
-5192376087906286159508272029171713
-5192296858534827628530496329220095
-79228162532711081671548469249
-79228162514264337593543950335
-18446744073709551617
-18446744073709551615
-1
-0
--2
--2
--36893488147419103232
--36893488147419103236
--158456325028528675187087900672
--158456325102315651516285845520
--10384593717069655257060992658440192
--10384910639391414028241053725753600
--2658455991569831745807614120560689152
--2679388715912901287113185885289513476
-1334440654591915542993625911497130241
-1329227995784915872903807060280344576
-5192376087906286159508272029171713
-5192296858534827628530496329220096
-79228162532711081671548469249
-79228162514264337593543950336
-18446744073709551617
-18446744073709551616
-1
-1
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
-false
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-true
-false
diff --git a/win64/c3-0.1.6.win64/test/ic3/integer.ret b/win64/c3-0.1.6.win64/test/ic3/integer.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/integer.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/list.out b/win64/c3-0.1.6.win64/test/ic3/list.out
deleted file mode 100644
index 6b61ae3..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/list.out
+++ /dev/null
@@ -1,24 +0,0 @@
-()
-(() | ())
-((), ())
-((), (), ())
-((), (), (), ())
-((), ())
-((), (), ())
-((), (), ())
-((), (), (), ())
-((), ())
-((), (), ())
-((), (), (), ())
-(((), ()), (), ())
-((() | ()), ())
-(:a | ())
-(:a, :b)
-(:a, :b, :c)
-(:a | :b)
-(:a, :b | :c)
-(:a, :b, :c, :d)
-(:a, :b, :c | :d)
-(:a, :b, :c | :d)
-(2, 4, 6, 8)
-(4, 3, 2, 1)
diff --git a/win64/c3-0.1.6.win64/test/ic3/list.ret b/win64/c3-0.1.6.win64/test/ic3/list.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/list.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/op.in b/win64/c3-0.1.6.win64/test/ic3/op.in
index 1247df2..dc7e749 100644
--- a/win64/c3-0.1.6.win64/test/ic3/op.in
+++ b/win64/c3-0.1.6.win64/test/ic3/op.in
@@ -1,10 +1,14 @@
-quote 1 + 2
-quote 1 + 2 / 3
-quote 1 + 2 / 3 * 4
-quote 1 + 2 / 3 * 4 - 5
-1 + 2
-1 + 2 / 3
-1 + 2 / 3 * 4
-1 + 2 / 3 * 4 - 5
-(1 + 2)
-a = (1 + 2)
+quote 1 + 20
+1 + 20
+quote 1 + 20 / 3
+1 + 20 / 3
+quote 1 + 20 / 3 * 4
+1 + 20 / 3 * 4
+quote 1 + 20 / 3 * 4 - 5
+1 + 20 / 3 * 4 - 5
+quote 20 / 3 * 4 - 5
+20 / 3 * 4 - 5
+quote (1 + 20)
+(1 + 20)
+quote a = (1 + 20)
+a = (1 + 20)
diff --git a/win64/c3-0.1.6.win64/test/ic3/op.out b/win64/c3-0.1.6.win64/test/ic3/op.out
deleted file mode 100644
index 7759641..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/op.out
+++ /dev/null
@@ -1,10 +0,0 @@
-1 + 2
-1 + 2 / 3
-1 + 2 / 3 * 4
-1 + 2 / 3 * 4 - 5
-3
-1
-1
--4
-3
-3
diff --git a/win64/c3-0.1.6.win64/test/ic3/op.out.expected b/win64/c3-0.1.6.win64/test/ic3/op.out.expected
index 7759641..7ff43c5 100644
--- a/win64/c3-0.1.6.win64/test/ic3/op.out.expected
+++ b/win64/c3-0.1.6.win64/test/ic3/op.out.expected
@@ -1,10 +1,14 @@
-1 + 2
-1 + 2 / 3
-1 + 2 / 3 * 4
-1 + 2 / 3 * 4 - 5
-3
-1
-1
--4
-3
-3
+1 + 20
+21
+1 + 20 / 3
+7
+1 + 20 / 3 * 4
+25
+1 + 20 / 3 * 4 - 5
+20
+20 / 3 * 4 - 5
+19
+(1 + 20)
+21
+a = (1 + 20)
+21
diff --git a/win64/c3-0.1.6.win64/test/ic3/op.ret b/win64/c3-0.1.6.win64/test/ic3/op.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/op.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/str.out b/win64/c3-0.1.6.win64/test/ic3/str.out
deleted file mode 100644
index 769ed5e..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/str.out
+++ /dev/null
@@ -1,33 +0,0 @@
-" "
-"\n"
-"\0"
-"\n"
-"\r"
-" "
-"\t"
-"\v"
-"0"
-"9"
-"A"
-"Z"
-"a"
-"z"
-"À"
-"É"
-"Ÿ"
-"à"
-"é"
-"ÿ"
-"Π"
-"꒴"
-"𐅀"
-"🎳"
-"😄"
-"🟣"
-"🤩"
-"abc"
-"abc"
-"abc\ndef"
-"abc\ndef\n"
-"abc\ndef"
-"abc\ndef"
diff --git a/win64/c3-0.1.6.win64/test/ic3/str.ret b/win64/c3-0.1.6.win64/test/ic3/str.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/str.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/sym.out b/win64/c3-0.1.6.win64/test/ic3/sym.out
deleted file mode 100644
index b175d40..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/sym.out
+++ /dev/null
@@ -1,27 +0,0 @@
-:" "
-:"\n"
-:"\0"
-:"\n"
-:"\r"
-:" "
-:"\t"
-:"\v"
-:0
-:9
-A
-Z
-:a
-:z
-À
-É
-Ÿ
-:à
-:é
-:ÿ
-Π
-:꒴
-:𐅀
-:🎳
-:😄
-:🟣
-:🤩
diff --git a/win64/c3-0.1.6.win64/test/ic3/sym.ret b/win64/c3-0.1.6.win64/test/ic3/sym.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/sym.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3/tuple.out b/win64/c3-0.1.6.win64/test/ic3/tuple.out
deleted file mode 100644
index b8de9cc..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/tuple.out
+++ /dev/null
@@ -1,19 +0,0 @@
-{(), ()}
-{"", ""}
-{(), ""}
-{"", ()}
-{:a, :b}
-{:a, :b, :c}
-{:a, :b, :c, :d}
-{:a, :b, :c, :d, :e}
-{:a, :b, :c, :d, :e, :f}
-{:a, :b, :c, :d, :e, :f, :g}
-{:a, :b, :c, :d, :e, :f, :g, :h}
-{:a, :b, :c, :d, :e, :f, :g, :h, :i}
-{:a, :b, :c, :d, :e, :f, :g, :h, :i, :j}
-{{:a, :b}, {:c, :d}}
-{{:a, :b}, {:c, :d}, {:e, :f}}
-{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}}
-{{:a, :b}, {:c, :d}, {:e, :f}, {:g, :h}, {:i, :j}}
-{:a, :b, :c}
-{:a, :b, :c}
diff --git a/win64/c3-0.1.6.win64/test/ic3/tuple.ret b/win64/c3-0.1.6.win64/test/ic3/tuple.ret
deleted file mode 100644
index 573541a..0000000
--- a/win64/c3-0.1.6.win64/test/ic3/tuple.ret
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/win64/c3-0.1.6.win64/test/ic3_test b/win64/c3-0.1.6.win64/test/ic3_test
index 9b80c1c..280d9e7 100755
--- a/win64/c3-0.1.6.win64/test/ic3_test
+++ b/win64/c3-0.1.6.win64/test/ic3_test
@@ -9,7 +9,11 @@ TEST_KO=0
TEST_OK=0
if [ "x$IC3" = "x" ]; then
- IC3=../../ic3/ic3
+ if [ -f ../../ic3/ic3 ]; then
+ IC3=../../ic3/ic3
+ elif [ -f ../../ic3 ]; then
+ IC3=../../ic3
+ fi
fi
test_ko() {
diff --git a/win64/c3-0.1.6.win64/test/libc3_test.exe b/win64/c3-0.1.6.win64/test/libc3_test.exe
index d119e95..ce5da19 100755
Binary files a/win64/c3-0.1.6.win64/test/libc3_test.exe and b/win64/c3-0.1.6.win64/test/libc3_test.exe differ
diff --git a/win64/c3-0.1.6.win64/test/libc3_test_debug.exe b/win64/c3-0.1.6.win64/test/libc3_test_debug.exe
index 05b5db9..6a0fcb7 100755
Binary files a/win64/c3-0.1.6.win64/test/libc3_test_debug.exe and b/win64/c3-0.1.6.win64/test/libc3_test_debug.exe differ
diff --git a/win64/c3-0.1.6.win64/test/libffi-8.dll b/win64/c3-0.1.6.win64/test/libffi-8.dll
index 9937a11..3f9d5ff 100755
Binary files a/win64/c3-0.1.6.win64/test/libffi-8.dll and b/win64/c3-0.1.6.win64/test/libffi-8.dll differ
diff --git a/win64/c3-0.1.6.win64/test/msys-c3-0.dll b/win64/c3-0.1.6.win64/test/msys-c3-0.dll
index 235e251..8a40175 100755
Binary files a/win64/c3-0.1.6.win64/test/msys-c3-0.dll and b/win64/c3-0.1.6.win64/test/msys-c3-0.dll differ
diff --git a/win64/c3-0.1.6.win64/test/msys-c3_debug-0.dll b/win64/c3-0.1.6.win64/test/msys-c3_debug-0.dll
index 6e5af6a..fff7a48 100755
Binary files a/win64/c3-0.1.6.win64/test/msys-c3_debug-0.dll and b/win64/c3-0.1.6.win64/test/msys-c3_debug-0.dll differ