Compare commits
8 Commits
8a4032e850
...
bbe964110e
| Author | SHA1 | Date | |
|---|---|---|---|
| bbe964110e | |||
| 100449c76c | |||
| 51b5f638a4 | |||
| 767dacc742 | |||
| 978a7585b6 | |||
| 71b3c7fb7f | |||
| 420f50c40f | |||
| 69a131df38 |
@@ -182,10 +182,13 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING)
|
||||
target_compile_options(driver_skip_list PRIVATE ${TEST_FLAGS})
|
||||
target_link_libraries(driver_skip_list PRIVATE skip_list)
|
||||
|
||||
# enable to test skip list
|
||||
if(0)
|
||||
foreach(TEST ${CORPUS_TESTS})
|
||||
get_filename_component(hash ${TEST} NAME)
|
||||
add_test(NAME skip_list_${hash} COMMAND driver_skip_list ${TEST})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# ad hoc testing
|
||||
add_executable(conflict_set_main ConflictSet.cpp)
|
||||
|
||||
324
ConflictSet.cpp
324
ConflictSet.cpp
@@ -2488,102 +2488,6 @@ downLeftSpine:
|
||||
return n->entry.rangeVersion <= readVersion;
|
||||
}
|
||||
|
||||
namespace {
|
||||
// Return true if the max version among all keys that start with key[:prefixLen]
|
||||
// that are < key is <= readVersion
|
||||
bool checkRangeRightSide(Node *n, std::span<const uint8_t> key, int prefixLen,
|
||||
InternalVersionT readVersion, ReadContext *tls) {
|
||||
auto remaining = key;
|
||||
int searchPathLen = 0;
|
||||
|
||||
for (;; ++tls->range_read_iterations_accum) {
|
||||
assert(searchPathLen <= int(key.size()));
|
||||
if (remaining.size() == 0) {
|
||||
goto downLeftSpine;
|
||||
}
|
||||
|
||||
if (searchPathLen >= prefixLen) {
|
||||
if (n->entryPresent && n->entry.pointVersion > readVersion) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!checkMaxBetweenExclusive(n, -1, remaining[0], readVersion, tls)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (searchPathLen > prefixLen && n->entryPresent &&
|
||||
n->entry.rangeVersion > readVersion) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Node *child = getChild(n, remaining[0]);
|
||||
if (child == nullptr) {
|
||||
auto c = getChildGeq(n, remaining[0]);
|
||||
if (c != nullptr) {
|
||||
n = c;
|
||||
goto downLeftSpine;
|
||||
} else {
|
||||
goto backtrack;
|
||||
}
|
||||
}
|
||||
|
||||
n = child;
|
||||
remaining = remaining.subspan(1, remaining.size() - 1);
|
||||
++searchPathLen;
|
||||
|
||||
if (n->partialKeyLen > 0) {
|
||||
int commonLen = std::min<int>(n->partialKeyLen, remaining.size());
|
||||
int i = longestCommonPrefix(n->partialKey(), remaining.data(), commonLen);
|
||||
searchPathLen += i;
|
||||
if (i < commonLen) {
|
||||
++searchPathLen;
|
||||
auto c = n->partialKey()[i] <=> remaining[i];
|
||||
if (c > 0) {
|
||||
goto downLeftSpine;
|
||||
} else {
|
||||
if (searchPathLen > prefixLen && n->entryPresent &&
|
||||
n->entry.rangeVersion > readVersion) {
|
||||
return false;
|
||||
}
|
||||
goto backtrack;
|
||||
}
|
||||
}
|
||||
if (commonLen == n->partialKeyLen) {
|
||||
// partial key matches
|
||||
remaining = remaining.subspan(commonLen, remaining.size() - commonLen);
|
||||
} else if (n->partialKeyLen > int(remaining.size())) {
|
||||
goto downLeftSpine;
|
||||
}
|
||||
}
|
||||
}
|
||||
backtrack:
|
||||
for (;;) {
|
||||
// searchPathLen > prefixLen implies n is not the root
|
||||
if (searchPathLen > prefixLen && maxVersion(n) > readVersion) {
|
||||
return false;
|
||||
}
|
||||
if (n->parent == nullptr) {
|
||||
return true;
|
||||
}
|
||||
auto next = getChildGeq(n->parent, n->parentsIndex + 1);
|
||||
if (next == nullptr) {
|
||||
searchPathLen -= 1 + n->partialKeyLen;
|
||||
n = n->parent;
|
||||
} else {
|
||||
searchPathLen -= n->partialKeyLen;
|
||||
n = next;
|
||||
searchPathLen += n->partialKeyLen;
|
||||
goto downLeftSpine;
|
||||
}
|
||||
}
|
||||
downLeftSpine:
|
||||
for (; !n->entryPresent; n = getFirstChildExists(n)) {
|
||||
}
|
||||
return n->entry.rangeVersion <= readVersion;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
#ifdef __x86_64__
|
||||
// Explicitly instantiate with target avx512f attribute so the compiler can
|
||||
// inline compare16_32bit_avx512, and generally use avx512f within more
|
||||
@@ -2990,14 +2894,22 @@ PRESERVE_NONE void complete(CheckJob *job, CheckContext *context) {
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
PRESERVE_NONE void down_left_spine(CheckJob *job, CheckContext *context) {
|
||||
if (job->n->entryPresent) {
|
||||
job->setResult(job->n->entry.rangeVersion <= job->readVersion);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->n = getFirstChildExists(job->n);
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
namespace check_point_read_state_machine {
|
||||
|
||||
PRESERVE_NONE void begin(CheckJob *, CheckContext *);
|
||||
|
||||
template <class NodeT> PRESERVE_NONE void iter(CheckJob *, CheckContext *);
|
||||
|
||||
PRESERVE_NONE void down_left_spine(CheckJob *, CheckContext *);
|
||||
|
||||
static Continuation iterTable[] = {iter<Node0>, iter<Node3>, iter<Node16>,
|
||||
iter<Node48>, iter<Node256>};
|
||||
|
||||
@@ -3118,16 +3030,6 @@ template <class NodeT> void iter(CheckJob *job, CheckContext *context) {
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
void down_left_spine(CheckJob *job, CheckContext *context) {
|
||||
if (job->n->entryPresent) {
|
||||
job->setResult(job->n->entry.rangeVersion <= job->readVersion);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->n = getFirstChildExists(job->n);
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
} // namespace check_point_read_state_machine
|
||||
|
||||
namespace check_prefix_read_state_machine {
|
||||
@@ -3136,8 +3038,6 @@ PRESERVE_NONE void begin(CheckJob *, CheckContext *);
|
||||
|
||||
template <class NodeT> PRESERVE_NONE void iter(CheckJob *, CheckContext *);
|
||||
|
||||
PRESERVE_NONE void down_left_spine(CheckJob *, CheckContext *);
|
||||
|
||||
static Continuation iterTable[] = {iter<Node0>, iter<Node3>, iter<Node16>,
|
||||
iter<Node48>, iter<Node256>};
|
||||
|
||||
@@ -3253,16 +3153,6 @@ template <class NodeT> void iter(CheckJob *job, CheckContext *context) {
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
void down_left_spine(CheckJob *job, CheckContext *context) {
|
||||
if (job->n->entryPresent) {
|
||||
job->setResult(job->n->entry.rangeVersion <= job->readVersion);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->n = getFirstChildExists(job->n);
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
} // namespace check_prefix_read_state_machine
|
||||
|
||||
namespace check_range_read_state_machine {
|
||||
@@ -3278,21 +3168,23 @@ static Continuation commonPrefixIterTable[] = {
|
||||
common_prefix_iter<Node16>, common_prefix_iter<Node48>,
|
||||
common_prefix_iter<Node256>};
|
||||
|
||||
template <class NodeT, bool kFirst>
|
||||
template <class NodeT>
|
||||
PRESERVE_NONE void left_side_iter(CheckJob *, CheckContext *);
|
||||
|
||||
PRESERVE_NONE void left_side_down_left_spine(CheckJob *, CheckContext *);
|
||||
|
||||
PRESERVE_NONE void done_left_side_iter(CheckJob *, CheckContext *);
|
||||
|
||||
static Continuation leftSideIterTable[2][5] = {
|
||||
{left_side_iter<Node0, false>, left_side_iter<Node3, false>,
|
||||
left_side_iter<Node16, false>, left_side_iter<Node48, false>,
|
||||
left_side_iter<Node256, false>},
|
||||
{left_side_iter<Node0, true>, left_side_iter<Node3, true>,
|
||||
left_side_iter<Node16, true>, left_side_iter<Node48, true>,
|
||||
left_side_iter<Node256, true>},
|
||||
};
|
||||
static Continuation leftSideIterTable[] = {
|
||||
left_side_iter<Node0>, left_side_iter<Node3>, left_side_iter<Node16>,
|
||||
left_side_iter<Node48>, left_side_iter<Node256>};
|
||||
|
||||
template <class NodeT>
|
||||
PRESERVE_NONE void right_side_iter(CheckJob *, CheckContext *);
|
||||
|
||||
static Continuation rightSideIterTable[] = {
|
||||
right_side_iter<Node0>, right_side_iter<Node3>, right_side_iter<Node16>,
|
||||
right_side_iter<Node48>, right_side_iter<Node256>};
|
||||
|
||||
PRESERVE_NONE void begin(CheckJob *job, CheckContext *context) {
|
||||
job->lcp = longestCommonPrefix(job->begin.data(), job->end.data(),
|
||||
@@ -3393,11 +3285,49 @@ PRESERVE_NONE void done_common_prefix_iter(CheckJob *job,
|
||||
job->commonPrefixNode = job->n;
|
||||
|
||||
if (job->lcp == int(job->begin.size())) {
|
||||
job->setResult(checkRangeRightSide(job->n, job->end, job->lcp,
|
||||
job->readVersion, context->tls));
|
||||
job->remaining = job->end;
|
||||
if (job->lcp == 0) {
|
||||
if (job->n->entryPresent &&
|
||||
job->n->entry.pointVersion > job->readVersion) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
|
||||
if (!checkMaxBetweenExclusive(job->n, -1, job->remaining[0],
|
||||
job->readVersion, context->tls)) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
}
|
||||
|
||||
// This is a hack
|
||||
--job->lcp;
|
||||
|
||||
auto c = getChild(job->n, job->remaining[0]);
|
||||
Node *child = c;
|
||||
if (child == nullptr) {
|
||||
auto c = getChildGeq(job->n, job->remaining[0]);
|
||||
if (c != nullptr) {
|
||||
job->n = c;
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
} else {
|
||||
job->n = nextSibling(job->n);
|
||||
if (job->n == nullptr) {
|
||||
job->setResult(true);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
}
|
||||
}
|
||||
|
||||
job->n = child;
|
||||
job->continuation = rightSideIterTable[c.getType()];
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
// If this were not true we would have returned above
|
||||
assert(job->begin.size() > 0);
|
||||
|
||||
@@ -3433,14 +3363,14 @@ PRESERVE_NONE void done_common_prefix_iter(CheckJob *job,
|
||||
}
|
||||
|
||||
job->n = child;
|
||||
job->continuation = leftSideIterTable[true][c.getType()];
|
||||
job->continuation = leftSideIterTable[c.getType()];
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
// Return true if the max version among all keys that start with key[:prefixLen]
|
||||
// that are >= key is <= readVersion
|
||||
template <class NodeT, bool kFirst>
|
||||
template <class NodeT>
|
||||
PRESERVE_NONE void left_side_iter(CheckJob *job, CheckContext *context) {
|
||||
assert(NodeT::kType == job->n->getType());
|
||||
NodeT *n = static_cast<NodeT *>(job->n);
|
||||
@@ -3454,7 +3384,7 @@ PRESERVE_NONE void left_side_iter(CheckJob *job, CheckContext *context) {
|
||||
if (i < commonLen) {
|
||||
auto c = n->partialKey()[i] <=> job->remaining[i];
|
||||
if (c > 0) {
|
||||
if constexpr (kFirst) {
|
||||
if (n->parent == job->commonPrefixNode) {
|
||||
if (i < job->lcp) {
|
||||
job->continuation = left_side_down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
@@ -3539,18 +3469,40 @@ PRESERVE_NONE void left_side_iter(CheckJob *job, CheckContext *context) {
|
||||
}
|
||||
|
||||
job->n = child;
|
||||
job->continuation = leftSideIterTable[false][c.getType()];
|
||||
job->continuation = leftSideIterTable[c.getType()];
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
PRESERVE_NONE void done_left_side_iter(CheckJob *job, CheckContext *context) {
|
||||
|
||||
job->setResult(checkRangeRightSide(job->commonPrefixNode, job->end,
|
||||
job->lcp + 1, job->readVersion,
|
||||
context->tls));
|
||||
job->n = job->commonPrefixNode;
|
||||
job->remaining = job->end;
|
||||
|
||||
auto c = getChild(job->n, job->remaining[0]);
|
||||
Node *child = c;
|
||||
if (child == nullptr) {
|
||||
auto c = getChildGeq(job->n, job->remaining[0]);
|
||||
if (c != nullptr) {
|
||||
job->n = c;
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
} else {
|
||||
job->n = nextSibling(job->n);
|
||||
if (job->n == nullptr) {
|
||||
job->setResult(true);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
}
|
||||
}
|
||||
|
||||
job->n = child;
|
||||
job->continuation = rightSideIterTable[c.getType()];
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
void left_side_down_left_spine(CheckJob *job, CheckContext *context) {
|
||||
if (job->n->entryPresent) {
|
||||
@@ -3566,6 +3518,102 @@ void left_side_down_left_spine(CheckJob *job, CheckContext *context) {
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
// Return true if the max version among all keys that start with key[:prefixLen]
|
||||
// that are < key is <= readVersion
|
||||
template <class NodeT>
|
||||
PRESERVE_NONE void right_side_iter(CheckJob *job, CheckContext *context) {
|
||||
assert(NodeT::kType == job->n->getType());
|
||||
NodeT *n = static_cast<NodeT *>(job->n);
|
||||
|
||||
job->remaining = job->remaining.subspan(1, job->remaining.size() - 1);
|
||||
|
||||
if (n->partialKeyLen > 0) {
|
||||
int commonLen = std::min<int>(n->partialKeyLen, job->remaining.size());
|
||||
int i =
|
||||
longestCommonPrefix(n->partialKey(), job->remaining.data(), commonLen);
|
||||
if (i < commonLen) {
|
||||
auto c = n->partialKey()[i] <=> job->remaining[i];
|
||||
if (c > 0) {
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
} else {
|
||||
if ((n->parent != job->commonPrefixNode || i >= job->lcp) &&
|
||||
n->entryPresent && n->entry.rangeVersion > job->readVersion) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
if ((n->parent != job->commonPrefixNode || i >= job->lcp) &&
|
||||
maxVersion(n) > job->readVersion) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->n = nextSibling(job->n);
|
||||
if (job->n == nullptr) {
|
||||
job->setResult(true);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
}
|
||||
}
|
||||
if (commonLen == n->partialKeyLen) {
|
||||
// partial key matches
|
||||
job->remaining =
|
||||
job->remaining.subspan(commonLen, job->remaining.size() - commonLen);
|
||||
} else if (n->partialKeyLen > int(job->remaining.size())) {
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
}
|
||||
}
|
||||
|
||||
++context->tls->range_read_iterations_accum;
|
||||
|
||||
if (job->remaining.size() == 0) {
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
}
|
||||
|
||||
if (n->entryPresent && (n->entry.pointVersion > job->readVersion ||
|
||||
n->entry.rangeVersion > job->readVersion)) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
|
||||
if (!checkMaxBetweenExclusive(n, -1, job->remaining[0], job->readVersion,
|
||||
context->tls)) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
|
||||
auto c = getChild(job->n, job->remaining[0]);
|
||||
Node *child = c;
|
||||
if (child == nullptr) {
|
||||
auto c = getChildGeq(n, job->remaining[0]);
|
||||
if (c != nullptr) {
|
||||
job->n = c;
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
} else {
|
||||
if (n != job->commonPrefixNode && maxVersion(n) > job->readVersion) {
|
||||
job->setResult(false);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->n = nextSibling(job->n);
|
||||
if (job->n == nullptr) {
|
||||
job->setResult(true);
|
||||
MUSTTAIL return complete(job, context);
|
||||
}
|
||||
job->continuation = down_left_spine;
|
||||
MUSTTAIL return job->continuation(job, context);
|
||||
}
|
||||
}
|
||||
|
||||
job->n = child;
|
||||
job->continuation = rightSideIterTable[c.getType()];
|
||||
__builtin_prefetch(job->n);
|
||||
MUSTTAIL return keepGoing(job, context);
|
||||
}
|
||||
|
||||
} // namespace check_range_read_state_machine
|
||||
|
||||
void CheckJob::init(const ConflictSet::ReadRange *read,
|
||||
|
||||
BIN
corpus/0480d4ba79c290ac8ecfb000bc62f204326a6e2d
Normal file
BIN
corpus/0480d4ba79c290ac8ecfb000bc62f204326a6e2d
Normal file
Binary file not shown.
BIN
corpus/076a28139f92f4925500f0b41b21aeddc2a29ae9
Normal file
BIN
corpus/076a28139f92f4925500f0b41b21aeddc2a29ae9
Normal file
Binary file not shown.
BIN
corpus/0ad70cc2a529b6d840f769816d3f7e2ab8acc68c
Normal file
BIN
corpus/0ad70cc2a529b6d840f769816d3f7e2ab8acc68c
Normal file
Binary file not shown.
BIN
corpus/0b8cdd849f754ceb9950905ea35ad04f6593b6ae
Normal file
BIN
corpus/0b8cdd849f754ceb9950905ea35ad04f6593b6ae
Normal file
Binary file not shown.
BIN
corpus/0ba096610c940d2c622c714000c4ac5db73e999c
Normal file
BIN
corpus/0ba096610c940d2c622c714000c4ac5db73e999c
Normal file
Binary file not shown.
BIN
corpus/0c6f460d9012fc295ac4ae3c23d9c9904ae9f496
Normal file
BIN
corpus/0c6f460d9012fc295ac4ae3c23d9c9904ae9f496
Normal file
Binary file not shown.
BIN
corpus/0df8f73f7238fb993fc6c77b03dfbe0d88a668cf
Normal file
BIN
corpus/0df8f73f7238fb993fc6c77b03dfbe0d88a668cf
Normal file
Binary file not shown.
BIN
corpus/1b26d87f2975bed8f916f83d7f2b3f845027b187
Normal file
BIN
corpus/1b26d87f2975bed8f916f83d7f2b3f845027b187
Normal file
Binary file not shown.
BIN
corpus/1b5ebb97d4da21695a091b51ffc69bf027c3dc0a
Normal file
BIN
corpus/1b5ebb97d4da21695a091b51ffc69bf027c3dc0a
Normal file
Binary file not shown.
BIN
corpus/1e7b21596110259d1b737af8f1b59173b4ba97a3
Normal file
BIN
corpus/1e7b21596110259d1b737af8f1b59173b4ba97a3
Normal file
Binary file not shown.
BIN
corpus/1fcf195a172bb0b37deaaae4fcc78c65948e7593
Normal file
BIN
corpus/1fcf195a172bb0b37deaaae4fcc78c65948e7593
Normal file
Binary file not shown.
BIN
corpus/25203ceec2f5fb9ddd1fbbda885b3a951c738fd8
Normal file
BIN
corpus/25203ceec2f5fb9ddd1fbbda885b3a951c738fd8
Normal file
Binary file not shown.
BIN
corpus/25933e7f6af7ad941dadfc8f9f9e6832d84020e1
Normal file
BIN
corpus/25933e7f6af7ad941dadfc8f9f9e6832d84020e1
Normal file
Binary file not shown.
BIN
corpus/33fa57e6f3b7be1359911247f0df2795a81323c2
Normal file
BIN
corpus/33fa57e6f3b7be1359911247f0df2795a81323c2
Normal file
Binary file not shown.
BIN
corpus/36470d5d55fc7332b538e745a687697fb978a9ab
Normal file
BIN
corpus/36470d5d55fc7332b538e745a687697fb978a9ab
Normal file
Binary file not shown.
BIN
corpus/3a0ef7524a88a9f485a47122d852fc941bd5e775
Normal file
BIN
corpus/3a0ef7524a88a9f485a47122d852fc941bd5e775
Normal file
Binary file not shown.
BIN
corpus/3e2db1d15ebcf5d10e824e9ada8728a0002365c7
Normal file
BIN
corpus/3e2db1d15ebcf5d10e824e9ada8728a0002365c7
Normal file
Binary file not shown.
BIN
corpus/3f82a5f08d829d2eacdbfbf01f77c6883e96ace0
Normal file
BIN
corpus/3f82a5f08d829d2eacdbfbf01f77c6883e96ace0
Normal file
Binary file not shown.
BIN
corpus/411711c5ffa19db86904d157ce9d2a2beee6f099
Normal file
BIN
corpus/411711c5ffa19db86904d157ce9d2a2beee6f099
Normal file
Binary file not shown.
BIN
corpus/431cedf519610b73d8f014f13671016855c3fc44
Normal file
BIN
corpus/431cedf519610b73d8f014f13671016855c3fc44
Normal file
Binary file not shown.
BIN
corpus/4bfc147dc651090d8d6b151c350734d49bbd3c91
Normal file
BIN
corpus/4bfc147dc651090d8d6b151c350734d49bbd3c91
Normal file
Binary file not shown.
BIN
corpus/4c3e9e2abb8506a2ad2e2b7115aeaee1124c1959
Normal file
BIN
corpus/4c3e9e2abb8506a2ad2e2b7115aeaee1124c1959
Normal file
Binary file not shown.
BIN
corpus/4ddb6558c8966899964d7038e24304de68aefc55
Normal file
BIN
corpus/4ddb6558c8966899964d7038e24304de68aefc55
Normal file
Binary file not shown.
BIN
corpus/4dfbfea78ae039c3150ee09c52003cade81a0c1b
Normal file
BIN
corpus/4dfbfea78ae039c3150ee09c52003cade81a0c1b
Normal file
Binary file not shown.
BIN
corpus/4f403016f121b4ceaf410e5f29ce01badc7e79d2
Normal file
BIN
corpus/4f403016f121b4ceaf410e5f29ce01badc7e79d2
Normal file
Binary file not shown.
BIN
corpus/5406e0c7c5e15ce545f9f64d3c12080e3d8a9a11
Normal file
BIN
corpus/5406e0c7c5e15ce545f9f64d3c12080e3d8a9a11
Normal file
Binary file not shown.
BIN
corpus/57a9971632ef672d859f01e7269d84ffc20df8a8
Normal file
BIN
corpus/57a9971632ef672d859f01e7269d84ffc20df8a8
Normal file
Binary file not shown.
BIN
corpus/5db974f6906bfed2e0aa3391f45d8007826ef057
Normal file
BIN
corpus/5db974f6906bfed2e0aa3391f45d8007826ef057
Normal file
Binary file not shown.
BIN
corpus/5ee454471a29f5ab0b79b5599a7112442f50eb34
Normal file
BIN
corpus/5ee454471a29f5ab0b79b5599a7112442f50eb34
Normal file
Binary file not shown.
BIN
corpus/5f9a665d2931aa13359f5ed4722e70810622418f
Normal file
BIN
corpus/5f9a665d2931aa13359f5ed4722e70810622418f
Normal file
Binary file not shown.
BIN
corpus/5fbd55c8ca94fe07a9cdf0d6d1507f0fda8a55d8
Normal file
BIN
corpus/5fbd55c8ca94fe07a9cdf0d6d1507f0fda8a55d8
Normal file
Binary file not shown.
BIN
corpus/5ff5cb8b906e43a9d254e1bc1fdef66b306d8e12
Normal file
BIN
corpus/5ff5cb8b906e43a9d254e1bc1fdef66b306d8e12
Normal file
Binary file not shown.
BIN
corpus/624dfbfaeaaaa4952509d2a513a41a57c04187d7
Normal file
BIN
corpus/624dfbfaeaaaa4952509d2a513a41a57c04187d7
Normal file
Binary file not shown.
BIN
corpus/64cd00d2626c67e31205a27a2943f99c1907edd4
Normal file
BIN
corpus/64cd00d2626c67e31205a27a2943f99c1907edd4
Normal file
Binary file not shown.
BIN
corpus/65e9a2c89589a40e49c34d058d3e77014139e69a
Normal file
BIN
corpus/65e9a2c89589a40e49c34d058d3e77014139e69a
Normal file
Binary file not shown.
BIN
corpus/6e6b0d43be52254c955c8f2a0fedbfd34b6cfa8a
Normal file
BIN
corpus/6e6b0d43be52254c955c8f2a0fedbfd34b6cfa8a
Normal file
Binary file not shown.
BIN
corpus/747bb7751c5b3f3726f838d23f7b8a3fc9227311
Normal file
BIN
corpus/747bb7751c5b3f3726f838d23f7b8a3fc9227311
Normal file
Binary file not shown.
BIN
corpus/74f69ae1851f3d4319a79209ff06e295ddce4120
Normal file
BIN
corpus/74f69ae1851f3d4319a79209ff06e295ddce4120
Normal file
Binary file not shown.
BIN
corpus/7530403c875965d0c3b2758dc1e327d0ba0aa9ca
Normal file
BIN
corpus/7530403c875965d0c3b2758dc1e327d0ba0aa9ca
Normal file
Binary file not shown.
BIN
corpus/77866f89f27a583ff467af190c63a8f6461edae8
Normal file
BIN
corpus/77866f89f27a583ff467af190c63a8f6461edae8
Normal file
Binary file not shown.
BIN
corpus/778833e0ddc9ab3c0ef3437debaba5b19e342997
Normal file
BIN
corpus/778833e0ddc9ab3c0ef3437debaba5b19e342997
Normal file
Binary file not shown.
BIN
corpus/790db4db25e497be64fca68b0f9edfd685195103
Normal file
BIN
corpus/790db4db25e497be64fca68b0f9edfd685195103
Normal file
Binary file not shown.
BIN
corpus/7932294bf4a87ec6b3abae404de308ee40ab569a
Normal file
BIN
corpus/7932294bf4a87ec6b3abae404de308ee40ab569a
Normal file
Binary file not shown.
BIN
corpus/7b4f214c3319f0f38b74a3a9d0f42ae3fb50b8ac
Normal file
BIN
corpus/7b4f214c3319f0f38b74a3a9d0f42ae3fb50b8ac
Normal file
Binary file not shown.
BIN
corpus/7c8555158a358f5bf3e1cb726f711fce2f6cc5d4
Normal file
BIN
corpus/7c8555158a358f5bf3e1cb726f711fce2f6cc5d4
Normal file
Binary file not shown.
BIN
corpus/7edeeda6fa169467d43aca47d9f910f2fef87e1f
Normal file
BIN
corpus/7edeeda6fa169467d43aca47d9f910f2fef87e1f
Normal file
Binary file not shown.
BIN
corpus/815c45312f314c9686e5734277d0b4b138966bb2
Normal file
BIN
corpus/815c45312f314c9686e5734277d0b4b138966bb2
Normal file
Binary file not shown.
BIN
corpus/81c60e421d4ae9e9bda478cdbb61a108952eff56
Normal file
BIN
corpus/81c60e421d4ae9e9bda478cdbb61a108952eff56
Normal file
Binary file not shown.
BIN
corpus/83fe95d5916bbcb51ced9a49785c600f319e2720
Normal file
BIN
corpus/83fe95d5916bbcb51ced9a49785c600f319e2720
Normal file
Binary file not shown.
BIN
corpus/8604b051db7ef7bc6b03ce78008f19ba87612468
Normal file
BIN
corpus/8604b051db7ef7bc6b03ce78008f19ba87612468
Normal file
Binary file not shown.
BIN
corpus/89c70ef265066fb92ff6de04195492cf31dd86c9
Normal file
BIN
corpus/89c70ef265066fb92ff6de04195492cf31dd86c9
Normal file
Binary file not shown.
BIN
corpus/8a52b86fa432a3cc268c117aebf18b4ffe77ecb1
Normal file
BIN
corpus/8a52b86fa432a3cc268c117aebf18b4ffe77ecb1
Normal file
Binary file not shown.
BIN
corpus/91301ae9fadf7b6a9bcb27bf85805630be3f391a
Normal file
BIN
corpus/91301ae9fadf7b6a9bcb27bf85805630be3f391a
Normal file
Binary file not shown.
BIN
corpus/93cfd8cfb3b979a38d00c1dbcf0773c51953e82c
Normal file
BIN
corpus/93cfd8cfb3b979a38d00c1dbcf0773c51953e82c
Normal file
Binary file not shown.
BIN
corpus/97e2e1e76813f50dca56da6c12dd985d4a05a14a
Normal file
BIN
corpus/97e2e1e76813f50dca56da6c12dd985d4a05a14a
Normal file
Binary file not shown.
BIN
corpus/9a1ee187621336fd5fab56ef6352a551fae2a562
Normal file
BIN
corpus/9a1ee187621336fd5fab56ef6352a551fae2a562
Normal file
Binary file not shown.
BIN
corpus/9b062bf8ddfc6f270943680c13b01aa9bea87333
Normal file
BIN
corpus/9b062bf8ddfc6f270943680c13b01aa9bea87333
Normal file
Binary file not shown.
BIN
corpus/9b6e7a528f2d77bb959a9ebe16f4aa89e5ee3b6f
Normal file
BIN
corpus/9b6e7a528f2d77bb959a9ebe16f4aa89e5ee3b6f
Normal file
Binary file not shown.
BIN
corpus/9d153794de08093460d81cbf764e1f560b3cadd9
Normal file
BIN
corpus/9d153794de08093460d81cbf764e1f560b3cadd9
Normal file
Binary file not shown.
BIN
corpus/9fd70df2f5d75b4897dbed5c94a7026320385967
Normal file
BIN
corpus/9fd70df2f5d75b4897dbed5c94a7026320385967
Normal file
Binary file not shown.
BIN
corpus/a2046f26923763675bc213148cb73882b51ccf0f
Normal file
BIN
corpus/a2046f26923763675bc213148cb73882b51ccf0f
Normal file
Binary file not shown.
BIN
corpus/a455e6023dfa09dbafe88fa2939fe1a8a1a06d0b
Normal file
BIN
corpus/a455e6023dfa09dbafe88fa2939fe1a8a1a06d0b
Normal file
Binary file not shown.
BIN
corpus/a494db6c3655d42b0facb5f74d38fdfb1df421bd
Normal file
BIN
corpus/a494db6c3655d42b0facb5f74d38fdfb1df421bd
Normal file
Binary file not shown.
BIN
corpus/a77c6b5d1375d882316ef76ab6eb037d578dae09
Normal file
BIN
corpus/a77c6b5d1375d882316ef76ab6eb037d578dae09
Normal file
Binary file not shown.
BIN
corpus/a94f83506e69c0b6f12523eec983617459c42861
Normal file
BIN
corpus/a94f83506e69c0b6f12523eec983617459c42861
Normal file
Binary file not shown.
BIN
corpus/aa57b527aa08caa076c090eeca8fce8c08b65016
Normal file
BIN
corpus/aa57b527aa08caa076c090eeca8fce8c08b65016
Normal file
Binary file not shown.
BIN
corpus/abf75a67674d1c0667a0b50ca1695daa6be6b13c
Normal file
BIN
corpus/abf75a67674d1c0667a0b50ca1695daa6be6b13c
Normal file
Binary file not shown.
BIN
corpus/abffd8b54d96b914c74c783308c176da7e19d3f9
Normal file
BIN
corpus/abffd8b54d96b914c74c783308c176da7e19d3f9
Normal file
Binary file not shown.
BIN
corpus/ad3c94b58bbf67bc52a366ea79747f00ee242436
Normal file
BIN
corpus/ad3c94b58bbf67bc52a366ea79747f00ee242436
Normal file
Binary file not shown.
BIN
corpus/ad6350e3358875cdf57a7cafd200a6f7cc815fa9
Normal file
BIN
corpus/ad6350e3358875cdf57a7cafd200a6f7cc815fa9
Normal file
Binary file not shown.
BIN
corpus/ae7e7430d52d85515617f0bd5dba556bcf4c5561
Normal file
BIN
corpus/ae7e7430d52d85515617f0bd5dba556bcf4c5561
Normal file
Binary file not shown.
BIN
corpus/b0294630a52cb02c7c3349f9a6b15f272c3cb0a5
Normal file
BIN
corpus/b0294630a52cb02c7c3349f9a6b15f272c3cb0a5
Normal file
Binary file not shown.
BIN
corpus/b2819c53caf1603ac6479e125d2888d84d5c63ab
Normal file
BIN
corpus/b2819c53caf1603ac6479e125d2888d84d5c63ab
Normal file
Binary file not shown.
BIN
corpus/baea1ea966c1035affd891dd90fb82221e007bfb
Normal file
BIN
corpus/baea1ea966c1035affd891dd90fb82221e007bfb
Normal file
Binary file not shown.
BIN
corpus/bcf25de55b947deef1d5d68217eb8f5c1f07ef6e
Normal file
BIN
corpus/bcf25de55b947deef1d5d68217eb8f5c1f07ef6e
Normal file
Binary file not shown.
BIN
corpus/bfbf2e07fa104cb2b47a726fde702ebccbe4e94c
Normal file
BIN
corpus/bfbf2e07fa104cb2b47a726fde702ebccbe4e94c
Normal file
Binary file not shown.
BIN
corpus/c384040defd1a4c5ed8e8b37de2281d6e8b1113b
Normal file
BIN
corpus/c384040defd1a4c5ed8e8b37de2281d6e8b1113b
Normal file
Binary file not shown.
BIN
corpus/c4907ed9715be683ab81fd3d4807939359740872
Normal file
BIN
corpus/c4907ed9715be683ab81fd3d4807939359740872
Normal file
Binary file not shown.
BIN
corpus/c52a22c6a054352e774bb3a013365db5a2c59073
Normal file
BIN
corpus/c52a22c6a054352e774bb3a013365db5a2c59073
Normal file
Binary file not shown.
BIN
corpus/c553245caca7f74c51f9cba7d881d13deacc98bb
Normal file
BIN
corpus/c553245caca7f74c51f9cba7d881d13deacc98bb
Normal file
Binary file not shown.
BIN
corpus/c7facc814ff401cb5f4df7f971c6473e53bbbdb5
Normal file
BIN
corpus/c7facc814ff401cb5f4df7f971c6473e53bbbdb5
Normal file
Binary file not shown.
BIN
corpus/c84ccab34425096f69be00264170d434788bc574
Normal file
BIN
corpus/c84ccab34425096f69be00264170d434788bc574
Normal file
Binary file not shown.
BIN
corpus/c9c842369f6fbacf2e9e9dbcb4cd472253811e0c
Normal file
BIN
corpus/c9c842369f6fbacf2e9e9dbcb4cd472253811e0c
Normal file
Binary file not shown.
BIN
corpus/c9fefd26b629984305b8dd21d3bfcd07738067db
Normal file
BIN
corpus/c9fefd26b629984305b8dd21d3bfcd07738067db
Normal file
Binary file not shown.
BIN
corpus/d5be84c83e44286449add98a190cdc897776fa87
Normal file
BIN
corpus/d5be84c83e44286449add98a190cdc897776fa87
Normal file
Binary file not shown.
BIN
corpus/d695014dcb1bf48fe4649b4bc177467001ab1ae2
Normal file
BIN
corpus/d695014dcb1bf48fe4649b4bc177467001ab1ae2
Normal file
Binary file not shown.
BIN
corpus/d9c1cb8a848a03e73cfce55b891c3ac9d1d401e5
Normal file
BIN
corpus/d9c1cb8a848a03e73cfce55b891c3ac9d1d401e5
Normal file
Binary file not shown.
BIN
corpus/da08594abeba0dadeb357792c9bb964221f3b652
Normal file
BIN
corpus/da08594abeba0dadeb357792c9bb964221f3b652
Normal file
Binary file not shown.
BIN
corpus/dadb93b1ec902baf86c6a20fefff4e1678d1c1a1
Normal file
BIN
corpus/dadb93b1ec902baf86c6a20fefff4e1678d1c1a1
Normal file
Binary file not shown.
BIN
corpus/db29345eb68d960e11a47f73762c480da097fcaf
Normal file
BIN
corpus/db29345eb68d960e11a47f73762c480da097fcaf
Normal file
Binary file not shown.
BIN
corpus/dd47e61aefaf473af375a438f9db47eed20b6920
Normal file
BIN
corpus/dd47e61aefaf473af375a438f9db47eed20b6920
Normal file
Binary file not shown.
BIN
corpus/de7f636faf30d427e13183c6d4cd1f559f57604b
Normal file
BIN
corpus/de7f636faf30d427e13183c6d4cd1f559f57604b
Normal file
Binary file not shown.
BIN
corpus/df0cafc757806b4e08beb6fef8fbaa0199e4bd08
Normal file
BIN
corpus/df0cafc757806b4e08beb6fef8fbaa0199e4bd08
Normal file
Binary file not shown.
BIN
corpus/e16c45d98f4ee20749456b030a8d20672f786ba2
Normal file
BIN
corpus/e16c45d98f4ee20749456b030a8d20672f786ba2
Normal file
Binary file not shown.
BIN
corpus/e4f3acadf4300fe074fa30659c4c44bf41679527
Normal file
BIN
corpus/e4f3acadf4300fe074fa30659c4c44bf41679527
Normal file
Binary file not shown.
BIN
corpus/e65ab966b939f1d6bd291e126a7e6222fe5d8427
Normal file
BIN
corpus/e65ab966b939f1d6bd291e126a7e6222fe5d8427
Normal file
Binary file not shown.
BIN
corpus/ea90bb4f9bb1455ec68ec2374698319d77c03890
Normal file
BIN
corpus/ea90bb4f9bb1455ec68ec2374698319d77c03890
Normal file
Binary file not shown.
BIN
corpus/ee19db2d27816567e1fc996dfbffaa9febfb33fc
Normal file
BIN
corpus/ee19db2d27816567e1fc996dfbffaa9febfb33fc
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user