{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:40:40",
  "duplicates" : [ {
    "blockSize" : 54,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/HashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 36,
      "endLine" : 119,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/LinkedHashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 35,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 46,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 147,
      "endLine" : 208,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 147,
      "endLine" : 208,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortOnInitIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 26,
      "endLine" : 79,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortTwoSidesIterable.java",
        "extension" : "java",
        "linesOfCode" : 106,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 26,
      "endLine" : 79,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 54,
      "endLine" : 96,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 56,
      "endLine" : 98,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 97,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 107,
      "endLine" : 143,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 241,
      "endLine" : 278,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 335,
      "endLine" : 373,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 91,
      "endLine" : 127,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterableWithValueGetter.java",
        "extension" : "java",
        "linesOfCode" : 136,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 93,
      "endLine" : 129,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 50,
      "endLine" : 81,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 50,
      "endLine" : 81,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithPropertyIterable.java",
        "extension" : "java",
        "linesOfCode" : 93,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 72,
      "endLine" : 102,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertiesIterable.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 132,
      "endLine" : 162,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 64,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 76,
      "endLine" : 106,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 55,
      "endLine" : 89,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterableWithValueGetter.java",
        "extension" : "java",
        "linesOfCode" : 136,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 57,
      "endLine" : 91,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/InMemoryMergeSortIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 41,
      "endLine" : 74,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/InMemoryMergeSortIterableWithValueGetter.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 48,
      "endLine" : 81,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 133,
      "endLine" : 159,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 158,
      "endLine" : 184,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/binop/MinusIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 182,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 80,
      "endLine" : 109,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/binop/MinusIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 182,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 135,
      "endLine" : 164,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 60,
      "endLine" : 92,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 63,
      "endLine" : 95,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 134,
      "endLine" : 164,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterableWithValueGetter.java",
        "extension" : "java",
        "linesOfCode" : 136,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 132,
      "endLine" : 162,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 258,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 159
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 258,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 91,
      "endLine" : 116,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 91,
      "endLine" : 116,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/LinkedHashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 49,
      "endLine" : 76,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/QueueDecorator.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 45,
      "endLine" : 72,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIndirectIterable.java",
        "extension" : "java",
        "linesOfCode" : 264,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 87,
      "endLine" : 114,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 70
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 86,
      "endLine" : 113,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeDup.java",
        "extension" : "java",
        "linesOfCode" : 204,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 161,
      "startLine" : 52,
      "endLine" : 77,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeDupMutable.java",
        "extension" : "java",
        "linesOfCode" : 118,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 42,
      "endLine" : 67,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 90,
      "endLine" : 114,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 108,
      "endLine" : 132,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/HashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 50,
      "endLine" : 77,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/QueueDecorator.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 45,
      "endLine" : 72,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/InMemoryMergeSortIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 76,
      "endLine" : 100,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/InMemoryMergeSortIterableWithValueGetter.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 83,
      "endLine" : 107,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/IntArrayList.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 95,
      "startLine" : 31,
      "endLine" : 59,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongArrayList.java",
        "extension" : "java",
        "linesOfCode" : 135,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 30,
      "endLine" : 58,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 35,
      "endLine" : 56,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 37,
      "endLine" : 58,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 49,
      "endLine" : 75,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedSetEntityIdCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 39,
      "endLine" : 65,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 369,
      "endLine" : 389,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 422,
      "endLine" : 442,
      "cleanedStartLine" : 269,
      "cleanedEndLine" : 284
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 167,
      "endLine" : 192,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 220,
      "endLine" : 245,
      "cleanedStartLine" : 135,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 86,
      "endLine" : 111,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortResultIterable.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 28,
      "endLine" : 53,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 76,
      "endLine" : 103,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 78,
      "endLine" : 103,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 110,
      "endLine" : 127,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 81,
      "endLine" : 98,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIndirectIterable.java",
        "extension" : "java",
        "linesOfCode" : 264,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 87,
      "endLine" : 112,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortResultIterable.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 28,
      "endLine" : 53,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 56,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 54,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 34,
      "endLine" : 55,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongLongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 33,
      "endLine" : 54,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 146,
      "endLine" : 167,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 123,
      "endLine" : 144,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 224,
      "endLine" : 243,
      "cleanedStartLine" : 126,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 214,
      "endLine" : 233,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 108,
      "endLine" : 123,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 119,
      "endLine" : 134,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 90,
      "endLine" : 105,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 119,
      "endLine" : 134,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/OrderedEntityIdCollectionIterator.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 40,
      "endLine" : 58,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseOrderedEntityIdCollectionIterator.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 40,
      "endLine" : 58,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/IntArrayList.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 95,
      "startLine" : 157,
      "endLine" : 178,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongArrayList.java",
        "extension" : "java",
        "linesOfCode" : 135,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 160,
      "endLine" : 181,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTree.java",
        "extension" : "java",
        "linesOfCode" : 71,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 78,
      "endLine" : 91,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeBase.java",
        "extension" : "java",
        "linesOfCode" : 170,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 136,
      "endLine" : 149,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 79,
      "endLine" : 94,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 91,
      "endLine" : 106,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 80,
      "endLine" : 99,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 169,
      "endLine" : 188,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentBackupStrategyImpl.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 135,
      "startLine" : 140,
      "endLine" : 160,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentBackupStrategyImpl.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 135,
      "startLine" : 178,
      "endLine" : 198,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityIteratorFixingDecorator.java",
        "extension" : "java",
        "linesOfCode" : 37,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 35,
      "endLine" : 55,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 512,
      "endLine" : 532,
      "cleanedStartLine" : 351,
      "cleanedEndLine" : 364
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 54,
      "endLine" : 73,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 89,
      "endLine" : 108,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 56,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 89,
      "endLine" : 108,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/ContextualTemporaryEmptyStore.java",
        "extension" : "java",
        "linesOfCode" : 66,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 34,
      "endLine" : 50,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/TemporaryEmptyStore.java",
        "extension" : "java",
        "linesOfCode" : 73,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 43,
      "endLine" : 59,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 64,
      "endLine" : 84,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 81,
      "endLine" : 101,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 178,
      "endLine" : 194,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 171,
      "endLine" : 187,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 178,
      "endLine" : 194,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 203,
      "endLine" : 221,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 228,
      "endLine" : 246,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 144
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 171,
      "endLine" : 187,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 178,
      "endLine" : 194,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 171,
      "endLine" : 187,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 171,
      "endLine" : 187,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 178,
      "endLine" : 194,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 186,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 123
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 57,
      "endLine" : 71,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 60,
      "endLine" : 74,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 150,
      "endLine" : 167,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongLongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 207,
      "endLine" : 224,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeDup.java",
        "extension" : "java",
        "linesOfCode" : 83,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 92,
      "endLine" : 109,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeDupMutable.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 129,
      "startLine" : 185,
      "endLine" : 202,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 69,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeDup.java",
        "extension" : "java",
        "linesOfCode" : 204,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 161,
      "startLine" : 142,
      "endLine" : 153,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeDup.java",
        "extension" : "java",
        "linesOfCode" : 204,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 161,
      "startLine" : 158,
      "endLine" : 169,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/MultiPageImmutableNode.kt",
        "extension" : "kt",
        "linesOfCode" : 394,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 306,
      "startLine" : 102,
      "endLine" : 113,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/MultiPageImmutableNode.kt",
        "extension" : "kt",
        "linesOfCode" : 394,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 306,
      "startLine" : 154,
      "endLine" : 165,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/OrderedEntityIdCollectionIterator.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 62,
      "endLine" : 77,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseOrderedEntityIdCollectionIterator.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 62,
      "endLine" : 77,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinkSetIterable.java",
        "extension" : "java",
        "linesOfCode" : 190,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 122,
      "endLine" : 138,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinksIterable.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 88,
      "endLine" : 104,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/env/CopyEnvironment.kt",
        "extension" : "kt",
        "linesOfCode" : 159,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 48,
      "endLine" : 61,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/env/CopyEnvironment.kt",
        "extension" : "kt",
        "linesOfCode" : 159,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 93,
      "endLine" : 105,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 40,
      "endLine" : 56,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortTwoSidesIterable.java",
        "extension" : "java",
        "linesOfCode" : 106,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 34,
      "endLine" : 50,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 141,
      "endLine" : 155,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 46,
      "endLine" : 60,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/PersistentEntityStoreRefactorings.kt",
        "extension" : "kt",
        "linesOfCode" : 1051,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 795,
      "startLine" : 345,
      "endLine" : 362,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 237
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/PersistentEntityStoreRefactorings.kt",
        "extension" : "kt",
        "linesOfCode" : 1051,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 795,
      "startLine" : 414,
      "endLine" : 431,
      "cleanedStartLine" : 270,
      "cleanedEndLine" : 281
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 217,
      "endLine" : 235,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 143
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 219,
      "endLine" : 237,
      "cleanedStartLine" : 138,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 40,
      "endLine" : 56,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortOnInitIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 34,
      "endLine" : 50,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 130,
      "endLine" : 143,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 136,
      "endLine" : 149,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortOnInitIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 36,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryTimSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 184,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 50,
      "endLine" : 64,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 136,
      "endLine" : 149,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 130,
      "endLine" : 143,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 42,
      "endLine" : 56,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryTimSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 184,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 50,
      "endLine" : 64,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/INode.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 34,
      "endLine" : 50,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/ILeafNode.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 50,
      "endLine" : 66,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeKV.java",
        "extension" : "java",
        "linesOfCode" : 30,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 30,
      "endLine" : 46,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeMutable.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 36,
      "endLine" : 52,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 70,
      "endLine" : 84,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 97,
      "endLine" : 111,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 541,
      "endLine" : 557,
      "cleanedStartLine" : 316,
      "cleanedEndLine" : 326
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 675,
      "endLine" : 691,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 100,
      "endLine" : 115,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 97,
      "endLine" : 112,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortTwoSidesIterable.java",
        "extension" : "java",
        "linesOfCode" : 106,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 36,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryTimSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 184,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 50,
      "endLine" : 64,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 192,
      "endLine" : 202,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 217,
      "endLine" : 227,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 130,
      "endLine" : 143,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 130,
      "endLine" : 143,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BottomPage.java",
        "extension" : "java",
        "linesOfCode" : 176,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 119,
      "endLine" : 134,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNode.java",
        "extension" : "java",
        "linesOfCode" : 137,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 150,
      "endLine" : 165,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/FileSystemBlobVault.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 75,
      "endLine" : 85,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/FileSystemBlobVaultOld.java",
        "extension" : "java",
        "linesOfCode" : 499,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 374,
      "startLine" : 481,
      "endLine" : 490,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 307
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SkipEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 73,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 44,
      "endLine" : 57,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/TakeEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 44,
      "endLine" : 57,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryMergeSortIterableWithArrayList.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 40,
      "endLine" : 53,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 39,
      "endLine" : 53,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 40,
      "endLine" : 54,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 108,
      "endLine" : 119,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 146,
      "endLine" : 157,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 176,
      "endLine" : 192,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 221,
      "endLine" : 237,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryMergeSortIterableWithArrayList.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortTwoSidesIterable.java",
        "extension" : "java",
        "linesOfCode" : 106,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 34,
      "endLine" : 47,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 245,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 221,
      "endLine" : 237,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BottomPage.java",
        "extension" : "java",
        "linesOfCode" : 176,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 115,
      "endLine" : 129,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPage.java",
        "extension" : "java",
        "linesOfCode" : 172,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 167,
      "endLine" : 181,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 118,
      "endLine" : 132,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 137,
      "endLine" : 151,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertiesIterable.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 132,
      "endLine" : 143,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 124,
      "endLine" : 135,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithPropertyIterable.java",
        "extension" : "java",
        "linesOfCode" : 93,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 72,
      "endLine" : 83,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 124,
      "endLine" : 135,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1920,
      "endLine" : 1929,
      "cleanedStartLine" : 1274,
      "cleanedEndLine" : 1283
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1945,
      "endLine" : 1954,
      "cleanedStartLine" : 1293,
      "cleanedEndLine" : 1302
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 221,
      "endLine" : 237,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 245,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 219,
      "endLine" : 235,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 143
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 245,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 153,
      "endLine" : 163,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 318,
      "endLine" : 328,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 219,
      "endLine" : 235,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 143
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 245,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreImpl.java",
        "extension" : "java",
        "linesOfCode" : 2226,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1737,
      "startLine" : 1192,
      "endLine" : 1204,
      "cleanedStartLine" : 799,
      "cleanedEndLine" : 808
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreImpl.java",
        "extension" : "java",
        "linesOfCode" : 2226,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1737,
      "startLine" : 1256,
      "endLine" : 1267,
      "cleanedStartLine" : 843,
      "cleanedEndLine" : 852
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 154,
      "endLine" : 166,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 112,
      "endLine" : 124,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 66
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 62,
      "endLine" : 76,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongLongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 61,
      "endLine" : 75,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 167,
      "endLine" : 179,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 153,
      "endLine" : 165,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 140,
      "endLine" : 158,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 140,
      "endLine" : 158,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryMergeSortIterableWithArrayList.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortOnInitIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 34,
      "endLine" : 47,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/ContextualTemporaryEmptyStore.java",
        "extension" : "java",
        "linesOfCode" : 66,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 73,
      "endLine" : 86,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/TemporaryEmptyStore.java",
        "extension" : "java",
        "linesOfCode" : 73,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 95,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 176,
      "endLine" : 192,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 229,
      "endLine" : 245,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 219,
      "endLine" : 235,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 143
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 176,
      "endLine" : 192,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 75,
      "endLine" : 85,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 77,
      "endLine" : 87,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 36,
      "endLine" : 45,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 76,
      "endLine" : 85,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 162,
      "endLine" : 171,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 76,
      "endLine" : 85,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 38,
      "endLine" : 47,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 705,
      "endLine" : 714,
      "cleanedStartLine" : 418,
      "cleanedEndLine" : 426
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 1095,
      "endLine" : 1104,
      "cleanedStartLine" : 678,
      "cleanedEndLine" : 686
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 38,
      "endLine" : 47,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 78,
      "endLine" : 87,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentLong23TreeMap.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 62,
      "endLine" : 73,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentLong23TreeMap.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 95,
      "endLine" : 106,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeDup.java",
        "extension" : "java",
        "linesOfCode" : 83,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeDupMutable.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 129,
      "startLine" : 173,
      "endLine" : 181,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaCursorDecorator.java",
        "extension" : "java",
        "linesOfCode" : 351,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 275,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaCursorDecorator.java",
        "extension" : "java",
        "linesOfCode" : 351,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 275,
      "startLine" : 152,
      "endLine" : 160,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 94,
      "endLine" : 106,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/hash/LongLongHashMap.kt",
        "extension" : "kt",
        "linesOfCode" : 186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 151,
      "endLine" : 163,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/SelectDistinctIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 107,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 37,
      "endLine" : 48,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/SelectManyIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 124,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 40,
      "endLine" : 51,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 219,
      "endLine" : 231,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 188,
      "endLine" : 200,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 105,
      "endLine" : 117,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 105,
      "endLine" : 117,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 156,
      "endLine" : 167,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 158,
      "endLine" : 169,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 279,
      "endLine" : 287,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 302,
      "endLine" : 310,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 48,
      "endLine" : 57,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 48,
      "endLine" : 57,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 162,
      "endLine" : 171,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 500,
      "endLine" : 512,
      "cleanedStartLine" : 325,
      "cleanedEndLine" : 333
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 566,
      "endLine" : 578,
      "cleanedStartLine" : 372,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 106,
      "endLine" : 118,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 205,
      "endLine" : 217,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 50,
      "endLine" : 61,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 64,
      "endLine" : 75,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 279,
      "endLine" : 287,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 91,
      "endLine" : 103,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SingleEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 91,
      "endLine" : 103,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 302,
      "endLine" : 310,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 348,
      "endLine" : 356,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 213
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryMergeSortIterableWithArrayList.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 44,
      "endLine" : 55,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryTimSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 184,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 50,
      "endLine" : 61,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 256,
      "endLine" : 264,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 302,
      "endLine" : 310,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 256,
      "endLine" : 264,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 256,
      "endLine" : 264,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 279,
      "endLine" : 287,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 279,
      "endLine" : 287,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 348,
      "endLine" : 356,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 213
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 302,
      "endLine" : 310,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 348,
      "endLine" : 356,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 213
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterableWithValueGetter.java",
        "extension" : "java",
        "linesOfCode" : 136,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 93,
      "endLine" : 105,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SingleEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 91,
      "endLine" : 103,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 50,
      "endLine" : 63,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 48,
      "endLine" : 61,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 256,
      "endLine" : 264,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 348,
      "endLine" : 356,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 213
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/execution/JobProcessorAdapter.java",
        "extension" : "java",
        "linesOfCode" : 232,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 207,
      "endLine" : 215,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/execution/ThreadJobProcessor.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 36,
      "endLine" : 45,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 78,
      "endLine" : 87,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 391,
      "endLine" : 403,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 256
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 451,
      "endLine" : 463,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 299
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/BackupMetadata.java",
        "extension" : "java",
        "linesOfCode" : 76,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 83,
      "endLine" : 94,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/StartupMetadata.java",
        "extension" : "java",
        "linesOfCode" : 228,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 180,
      "startLine" : 267,
      "endLine" : 278,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 79,
      "endLine" : 90,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 245,
      "endLine" : 256,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 154
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 74,
      "endLine" : 85,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 99,
      "endLine" : 110,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/IntObjectCacheBase.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 23,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/LongObjectCacheBase.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 23,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 200,
      "endLine" : 211,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 189,
      "endLine" : 200,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 267,
      "endLine" : 278,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 291,
      "endLine" : 303,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 64,
      "endLine" : 75,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 84,
      "endLine" : 95,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/PatriciaTreeMutable.kt",
        "extension" : "kt",
        "linesOfCode" : 474,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 378,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/PatriciaTreeMutable.kt",
        "extension" : "kt",
        "linesOfCode" : 474,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 378,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 189,
      "endLine" : 200,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 214,
      "endLine" : 225,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 62,
      "endLine" : 71,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/binop/MinusIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 182,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 111,
      "endLine" : 121,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 70
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/binop/MinusIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 182,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 166,
      "endLine" : 176,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/InMemoryMergeSortIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 26,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/InMemoryMergeSortIterableWithValueGetter.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithLinkSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 92,
      "endLine" : 101,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 225,
      "endLine" : 234,
      "cleanedStartLine" : 138,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 531,
      "endLine" : 542,
      "cleanedStartLine" : 310,
      "cleanedEndLine" : 317
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 879,
      "endLine" : 890,
      "cleanedStartLine" : 539,
      "cleanedEndLine" : 546
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/HashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 86,
      "endLine" : 97,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/QueueDecorator.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 77,
      "endLine" : 88,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinksIterable.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 159,
      "endLine" : 168,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 225,
      "endLine" : 234,
      "cleanedStartLine" : 138,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 46,
      "endLine" : 59,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/PersistentEntityStoreRefactorings.kt",
        "extension" : "kt",
        "linesOfCode" : 1051,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 795,
      "startLine" : 210,
      "endLine" : 217,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/PersistentEntityStoreRefactorings.kt",
        "extension" : "kt",
        "linesOfCode" : 1051,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 795,
      "startLine" : 225,
      "endLine" : 232,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 894,
      "endLine" : 905,
      "cleanedStartLine" : 548,
      "cleanedEndLine" : 555
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 1070,
      "endLine" : 1081,
      "cleanedStartLine" : 663,
      "cleanedEndLine" : 670
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 739,
      "endLine" : 747,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 1147,
      "endLine" : 1155,
      "cleanedStartLine" : 712,
      "cleanedEndLine" : 719
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/MultiTypeEntityIdSet.java",
        "extension" : "java",
        "linesOfCode" : 121,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 85,
      "startLine" : 40,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/SingleTypeEntityIdSet.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 53,
      "endLine" : 63,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 241,
      "endLine" : 253,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 217,
      "endLine" : 228,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 369,
      "endLine" : 377,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 238
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 478,
      "endLine" : 486,
      "cleanedStartLine" : 308,
      "cleanedEndLine" : 315
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/LinkedHashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 85,
      "endLine" : 96,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/QueueDecorator.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 77,
      "endLine" : 88,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithLinkSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 92,
      "endLine" : 101,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinksIterable.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 159,
      "endLine" : 168,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BottomPage.java",
        "extension" : "java",
        "linesOfCode" : 176,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 74,
      "endLine" : 85,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPage.java",
        "extension" : "java",
        "linesOfCode" : 172,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 86,
      "endLine" : 97,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 997,
      "endLine" : 1006,
      "cleanedStartLine" : 617,
      "cleanedEndLine" : 624
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 1284,
      "endLine" : 1293,
      "cleanedStartLine" : 816,
      "cleanedEndLine" : 823
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 220,
      "endLine" : 231,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 200,
      "endLine" : 211,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 121
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 68,
      "endLine" : 77,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 97,
      "endLine" : 106,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 220,
      "endLine" : 231,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 214,
      "endLine" : 225,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorNullTypeId.java",
        "extension" : "java",
        "linesOfCode" : 44,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 44,
      "endLine" : 55,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorNullTypeId.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 42,
      "endLine" : 53,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 371,
      "endLine" : 378,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 393,
      "endLine" : 400,
      "cleanedStartLine" : 232,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/LogAwareFixedLengthByteIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 59,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "openAPI/src/main/java/jetbrains/exodus/FixedLengthByteIterable.java",
        "extension" : "java",
        "linesOfCode" : 93,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 101,
      "endLine" : 112,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 78,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 63,
      "endLine" : 73,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 78,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 93,
      "endLine" : 106,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 104,
      "endLine" : 117,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 60,
      "endLine" : 71,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 66,
      "endLine" : 77,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 160,
      "endLine" : 171,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 143,
      "endLine" : 154,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 291,
      "endLine" : 303,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 361,
      "endLine" : 373,
      "cleanedStartLine" : 214,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 46,
      "endLine" : 59,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 62,
      "endLine" : 75,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 149,
      "endLine" : 157,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 172,
      "endLine" : 180,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 62,
      "endLine" : 71,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 665,
      "endLine" : 676,
      "cleanedStartLine" : 394,
      "cleanedEndLine" : 401
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 1055,
      "endLine" : 1066,
      "cleanedStartLine" : 654,
      "cleanedEndLine" : 661
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/BackupMetadata.java",
        "extension" : "java",
        "linesOfCode" : 76,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/StartupMetadata.java",
        "extension" : "java",
        "linesOfCode" : 228,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 180,
      "startLine" : 289,
      "endLine" : 297,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 174
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/MultiPageLoggable.java",
        "extension" : "java",
        "linesOfCode" : 59,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 44,
      "endLine" : 55,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/SinglePageLoggable.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 61,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 172,
      "endLine" : 180,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/dataStructures/persistent/JMHPersistentLongSetIterationBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 66,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 59,
      "endLine" : 69,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/dataStructures/persistent/JMHPersistentLongSetIterationBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 66,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 72,
      "endLine" : 82,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreImpl.java",
        "extension" : "java",
        "linesOfCode" : 2226,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1737,
      "startLine" : 1015,
      "endLine" : 1028,
      "cleanedStartLine" : 679,
      "cleanedEndLine" : 686
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreImpl.java",
        "extension" : "java",
        "linesOfCode" : 2226,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1737,
      "startLine" : 1675,
      "endLine" : 1688,
      "cleanedStartLine" : 1146,
      "cleanedEndLine" : 1153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIndirectIterable.java",
        "extension" : "java",
        "linesOfCode" : 264,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 272,
      "endLine" : 280,
      "cleanedStartLine" : 185,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIndirectIterable.java",
        "extension" : "java",
        "linesOfCode" : 264,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 284,
      "endLine" : 292,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 422,
      "endLine" : 430,
      "cleanedStartLine" : 269,
      "cleanedEndLine" : 276
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 478,
      "endLine" : 486,
      "cleanedStartLine" : 308,
      "cleanedEndLine" : 315
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 200,
      "endLine" : 211,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 214,
      "endLine" : 225,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/UpdatableEntityIdSortedSetCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 195,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 141,
      "endLine" : 150,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 99,
      "endLine" : 108,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/PropertyContainsValueEntityIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 105,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/PropertyValueIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 156,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 478,
      "endLine" : 485,
      "cleanedStartLine" : 308,
      "cleanedEndLine" : 314
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 532,
      "endLine" : 539,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 217,
      "endLine" : 225,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 815,
      "endLine" : 822,
      "cleanedStartLine" : 499,
      "cleanedEndLine" : 505
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 1268,
      "endLine" : 1275,
      "cleanedStartLine" : 805,
      "cleanedEndLine" : 811
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/DupLeafNodeMutable.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeKV.java",
        "extension" : "java",
        "linesOfCode" : 30,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 77,
      "endLine" : 83,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 97,
      "endLine" : 104,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 196,
      "endLine" : 204,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 225,
      "endLine" : 233,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/env/CopyEnvironment.kt",
        "extension" : "kt",
        "linesOfCode" : 159,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 53,
      "endLine" : 60,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/env/CopyEnvironment.kt",
        "extension" : "kt",
        "linesOfCode" : 159,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 163,
      "endLine" : 170,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 95,
      "endLine" : 105,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 91,
      "endLine" : 101,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertiesIterable.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 255,
      "endLine" : 263,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertyRangeIterable.java",
        "extension" : "java",
        "linesOfCode" : 237,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 227,
      "endLine" : 235,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 146
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/Persistent23TreeMap.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 60,
      "endLine" : 69,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/Persistent23TreeMap.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 81,
      "endLine" : 90,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityReverseIterable.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortResultIterable.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 28,
      "endLine" : 38,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 20,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 14,
      "endLine" : 23,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "environment/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 23,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 11,
      "endLine" : 20,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 95,
      "endLine" : 105,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 74,
      "endLine" : 84,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/UpdatableEntityIdSortedSetCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 195,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 141,
      "endLine" : 150,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 74,
      "endLine" : 83,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 488,
      "endLine" : 498,
      "cleanedStartLine" : 317,
      "cleanedEndLine" : 323
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 548,
      "endLine" : 558,
      "cleanedStartLine" : 360,
      "cleanedEndLine" : 366
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/dataStructures/JMHSmallHashMapBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/dataStructures/JMHSmallHashMapBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 432,
      "endLine" : 442,
      "cleanedStartLine" : 278,
      "cleanedEndLine" : 284
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 548,
      "endLine" : 558,
      "cleanedStartLine" : 360,
      "cleanedEndLine" : 366
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/MultiTypeEntityIdSet.java",
        "extension" : "java",
        "linesOfCode" : 121,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 85,
      "startLine" : 136,
      "endLine" : 143,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/SingleTypeEntityIdSet.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreImpl.java",
        "extension" : "java",
        "linesOfCode" : 2226,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1737,
      "startLine" : 827,
      "endLine" : 836,
      "cleanedStartLine" : 549,
      "cleanedEndLine" : 555
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreImpl.java",
        "extension" : "java",
        "linesOfCode" : 2226,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1737,
      "startLine" : 876,
      "endLine" : 884,
      "cleanedStartLine" : 580,
      "cleanedEndLine" : 586
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/UpdatableEntityIdSortedSetCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 195,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 141,
      "endLine" : 150,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 66,
      "endLine" : 75,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 203,
      "endLine" : 211,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/Persistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 194,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 155,
      "endLine" : 162,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/Persistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 194,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 194,
      "endLine" : 201,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BottomPage.java",
        "extension" : "java",
        "linesOfCode" : 176,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNode.java",
        "extension" : "java",
        "linesOfCode" : 137,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 217,
      "endLine" : 225,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 432,
      "endLine" : 442,
      "cleanedStartLine" : 278,
      "cleanedEndLine" : 284
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 488,
      "endLine" : 498,
      "cleanedStartLine" : 317,
      "cleanedEndLine" : 323
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 78,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 94,
      "endLine" : 104,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 71,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 150,
      "endLine" : 158,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 248,
      "endLine" : 256,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityReverseIterable.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 54,
      "endLine" : 64,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 101,
      "endLine" : 111,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/env/CopyEnvironment.kt",
        "extension" : "kt",
        "linesOfCode" : 159,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 97,
      "endLine" : 104,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/env/CopyEnvironment.kt",
        "extension" : "kt",
        "linesOfCode" : 159,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 163,
      "endLine" : 170,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 206,
      "endLine" : 214,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 235,
      "endLine" : 243,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 369,
      "endLine" : 376,
      "cleanedStartLine" : 231,
      "cleanedEndLine" : 237
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 532,
      "endLine" : 539,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 150,
      "endLine" : 158,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 156,
      "endLine" : 165,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 167,
      "endLine" : 176,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 203,
      "endLine" : 211,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/SinglePageImmutableNode.java",
        "extension" : "java",
        "linesOfCode" : 564,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 433,
      "startLine" : 173,
      "endLine" : 180,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/SinglePageImmutableNode.java",
        "extension" : "java",
        "linesOfCode" : 564,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 433,
      "startLine" : 317,
      "endLine" : 323,
      "cleanedStartLine" : 203,
      "cleanedEndLine" : 209
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 217,
      "endLine" : 225,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityReverseIterable.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 86,
      "endLine" : 96,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithLinkIterable.java",
        "extension" : "java",
        "linesOfCode" : 81,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 74,
      "endLine" : 82,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinksIterable.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 67,
      "endLine" : 75,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 613,
      "endLine" : 622,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 822,
      "endLine" : 831,
      "cleanedStartLine" : 505,
      "cleanedEndLine" : 511
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/FileSystemBlobVaultOld.java",
        "extension" : "java",
        "linesOfCode" : 499,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 374,
      "startLine" : 412,
      "endLine" : 421,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 255
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentBackupStrategyImpl.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 135,
      "startLine" : 211,
      "endLine" : 221,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/ImmutableSingleTypeEntityIdBitSet.java",
        "extension" : "java",
        "linesOfCode" : 186,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 186,
      "endLine" : 194,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/ImmutableSingleTypeEntityIdBitSet.java",
        "extension" : "java",
        "linesOfCode" : 186,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 211,
      "endLine" : 219,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 169,
      "endLine" : 177,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 140,
      "endLine" : 148,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 203,
      "endLine" : 211,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/UpdatableEntityIdSortedSetCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 195,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 141,
      "endLine" : 150,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 268,
      "endLine" : 278,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageMutable.java",
        "extension" : "java",
        "linesOfCode" : 197,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 270,
      "endLine" : 280,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/BlockDataIterator.java",
        "extension" : "java",
        "linesOfCode" : 166,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 130,
      "startLine" : 62,
      "endLine" : 69,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/BufferedDataWriter.java",
        "extension" : "java",
        "linesOfCode" : 801,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 630,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/EmptyCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 34,
      "endLine" : 44,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 46,
      "endLine" : 56,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 40,
      "endLine" : 48,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorNullTypeId.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 203,
      "endLine" : 211,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityIdArrayWithSetIterableWrapper.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortResultIterable.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 48,
      "endLine" : 58,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 156,
      "endLine" : 165,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 147,
      "endLine" : 159,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 129,
      "endLine" : 141,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortTwoSidesIterable.java",
        "extension" : "java",
        "linesOfCode" : 106,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryTimSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 184,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 89,
      "endLine" : 99,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 59,
      "endLine" : 69,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 206,
      "endLine" : 214,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 225,
      "endLine" : 233,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 206,
      "endLine" : 214,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 196,
      "endLine" : 204,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 203,
      "endLine" : 211,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 217,
      "endLine" : 225,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/PropertyContainsValueEntityIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 105,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/PropertyValueIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 156,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 133,
      "endLine" : 142,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 167,
      "endLine" : 176,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityReverseIterable.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 54,
      "endLine" : 64,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortResultIterable.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 43,
      "endLine" : 53,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/HashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 36,
      "endLine" : 46,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/QueueDecorator.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 39,
      "endLine" : 47,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 127,
      "endLine" : 137,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 139,
      "endLine" : 149,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/DupLeafNodeMutable.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeMutable.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 40,
      "endLine" : 48,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/binop/AddNullDecoratorIterable.java",
        "extension" : "java",
        "linesOfCode" : 69,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/AddNullStaticTypedEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 71,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 91,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryMergeSortIterableWithArrayList.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 87,
      "endLine" : 95,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 125,
      "endLine" : 133,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 235,
      "endLine" : 243,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 196,
      "endLine" : 204,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/LinkedHashSetDecorator.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 35,
      "endLine" : 45,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/decorators/QueueDecorator.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 379,
      "endLine" : 389,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 548,
      "endLine" : 558,
      "cleanedStartLine" : 360,
      "cleanedEndLine" : 366
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 66,
      "endLine" : 75,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 74,
      "endLine" : 83,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 133,
      "endLine" : 142,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 152,
      "endLine" : 158,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 379,
      "endLine" : 389,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 488,
      "endLine" : 498,
      "cleanedStartLine" : 317,
      "cleanedEndLine" : 323
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/TreeCursor.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 159,
      "startLine" : 246,
      "endLine" : 255,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/AddressIterator.java",
        "extension" : "java",
        "linesOfCode" : 76,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 95,
      "endLine" : 104,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ConcurrentObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 115,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 85,
      "startLine" : 54,
      "endLine" : 67,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/FakeObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 68,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 32,
      "endLine" : 47,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 90,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortOnInitIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryTimSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 184,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityReverseIterable.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIndirectIterable.java",
        "extension" : "java",
        "linesOfCode" : 264,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 158,
      "endLine" : 167,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityReverseIterable.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 54,
      "endLine" : 64,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIndirectIterable.java",
        "extension" : "java",
        "linesOfCode" : 264,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 102,
      "endLine" : 112,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 362,
      "endLine" : 373,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageMutable.java",
        "extension" : "java",
        "linesOfCode" : 197,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 270,
      "endLine" : 280,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/MultiTypeEntityIdSet.java",
        "extension" : "java",
        "linesOfCode" : 121,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 85,
      "startLine" : 72,
      "endLine" : 81,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/SingleTypeEntityIdSet.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 85,
      "endLine" : 94,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 217,
      "endLine" : 225,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 74,
      "endLine" : 83,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 245,
      "endLine" : 253,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/ImmutableSingleTypeEntityIdBitSet.java",
        "extension" : "java",
        "linesOfCode" : 186,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/ImmutableSingleTypeEntityIdBitSet.java",
        "extension" : "java",
        "linesOfCode" : 186,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 69,
      "endLine" : 76,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 39,
      "endLine" : 47,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorNullTypeId.java",
        "extension" : "java",
        "linesOfCode" : 44,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 293,
      "endLine" : 303,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageMutable.java",
        "extension" : "java",
        "linesOfCode" : 197,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 270,
      "endLine" : 280,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 160,
      "endLine" : 169,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 160,
      "endLine" : 169,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashSet.java",
        "extension" : "java",
        "linesOfCode" : 173,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 422,
      "endLine" : 429,
      "cleanedStartLine" : 269,
      "cleanedEndLine" : 275
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 532,
      "endLine" : 539,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SeparateLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 26,
      "endLine" : 32,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/SharedLogCache.kt",
        "extension" : "kt",
        "linesOfCode" : 134,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 27,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 108,
      "endLine" : 118,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 71,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 250,
      "endLine" : 258,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 242,
      "endLine" : 250,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 167,
      "endLine" : 176,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongHashSet.java",
        "extension" : "java",
        "linesOfCode" : 205,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 158,
      "endLine" : 167,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 46,
      "endLine" : 53,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 68,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 259,
      "endLine" : 264,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 373,
      "endLine" : 378,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/LinksEqualDecorator.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/Or.kt",
        "extension" : "kt",
        "linesOfCode" : 100,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 259,
      "endLine" : 264,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 395,
      "endLine" : 400,
      "cleanedStartLine" : 234,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentImpl.java",
        "extension" : "java",
        "linesOfCode" : 1247,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 937,
      "startLine" : 885,
      "endLine" : 891,
      "cleanedStartLine" : 535,
      "cleanedEndLine" : 540
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentImpl.java",
        "extension" : "java",
        "linesOfCode" : 1247,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 937,
      "startLine" : 896,
      "endLine" : 902,
      "cleanedStartLine" : 543,
      "cleanedEndLine" : 548
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 62,
      "endLine" : 68,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 100,
      "endLine" : 106,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/AbstractHashMap.java",
        "extension" : "java",
        "linesOfCode" : 167,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 176,
      "endLine" : 185,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 97
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/AbstractHashMap.java",
        "extension" : "java",
        "linesOfCode" : 167,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 209,
      "endLine" : 218,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 328,
      "endLine" : 333,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 373,
      "endLine" : 378,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaTraverser.java",
        "extension" : "java",
        "linesOfCode" : 334,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 263,
      "startLine" : 259,
      "endLine" : 265,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 170
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaTraverser.java",
        "extension" : "java",
        "linesOfCode" : 334,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 263,
      "startLine" : 296,
      "endLine" : 302,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 328,
      "endLine" : 333,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 395,
      "endLine" : 400,
      "cleanedStartLine" : 234,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaCursorDecorator.java",
        "extension" : "java",
        "linesOfCode" : 351,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 275,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaCursorDecorator.java",
        "extension" : "java",
        "linesOfCode" : 351,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 275,
      "startLine" : 218,
      "endLine" : 223,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 144
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 282,
      "endLine" : 287,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 395,
      "endLine" : 400,
      "cleanedStartLine" : 234,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 20,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 16,
      "endLine" : 23,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "utils/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 18,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 13,
      "endLine" : 19,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 282,
      "endLine" : 287,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 373,
      "endLine" : 378,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/crypto/EncryptedBlobVault.kt",
        "extension" : "kt",
        "linesOfCode" : 115,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/DummyBlobVault.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 47,
      "endLine" : 52,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/FilterEntityTypeIterable.java",
        "extension" : "java",
        "linesOfCode" : 83,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 106,
      "endLine" : 113,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SkipEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 73,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 62,
      "endLine" : 68,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/IterableDecorator.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/LinksEqualDecorator.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 100,
      "endLine" : 106,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 62,
      "endLine" : 68,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/MergeSortedIterableWithValueGetter.java",
        "extension" : "java",
        "linesOfCode" : 136,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 127,
      "endLine" : 135,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1443,
      "endLine" : 1448,
      "cleanedStartLine" : 955,
      "cleanedEndLine" : 960
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1469,
      "endLine" : 1474,
      "cleanedStartLine" : 976,
      "cleanedEndLine" : 981
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/DistinctIterable.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 95,
      "endLine" : 105,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 365,
      "endLine" : 373,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 251
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyNotNull.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 23,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 13,
      "endLine" : 20,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "openAPI/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 15,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 9,
      "endLine" : 15,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 23,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 13,
      "endLine" : 20,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "utils/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 18,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 13,
      "endLine" : 19,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaCursorDecorator.java",
        "extension" : "java",
        "linesOfCode" : 351,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 275,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/PatriciaCursorDecorator.java",
        "extension" : "java",
        "linesOfCode" : 351,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 275,
      "startLine" : 143,
      "endLine" : 150,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 78,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 61,
      "endLine" : 69,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 351,
      "endLine" : 356,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 395,
      "endLine" : 400,
      "cleanedStartLine" : 234,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 318,
      "endLine" : 324,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistentHashSet.java",
        "extension" : "java",
        "linesOfCode" : 398,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 299,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 38,
      "endLine" : 45,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorNullTypeId.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 58,
      "endLine" : 65,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1103,
      "endLine" : 1110,
      "cleanedStartLine" : 732,
      "cleanedEndLine" : 737
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1121,
      "endLine" : 1126,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 750
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeMutable.java",
        "extension" : "java",
        "linesOfCode" : 336,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 229
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeMutable.java",
        "extension" : "java",
        "linesOfCode" : 336,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 255,
      "startLine" : 379,
      "endLine" : 384,
      "cleanedStartLine" : 235,
      "cleanedEndLine" : 240
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentImpl.java",
        "extension" : "java",
        "linesOfCode" : 1247,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 937,
      "startLine" : 741,
      "endLine" : 746,
      "cleanedStartLine" : 448,
      "cleanedEndLine" : 453
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentImpl.java",
        "extension" : "java",
        "linesOfCode" : 1247,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 937,
      "startLine" : 770,
      "endLine" : 775,
      "cleanedStartLine" : 466,
      "cleanedEndLine" : 471
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 38,
      "endLine" : 45,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 605,
      "endLine" : 610,
      "cleanedStartLine" : 357,
      "cleanedEndLine" : 362
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 982,
      "endLine" : 987,
      "cleanedStartLine" : 606,
      "cleanedEndLine" : 611
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ConcurrentObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 115,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 85,
      "startLine" : 130,
      "endLine" : 137,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/SoftObjectCacheBase.java",
        "extension" : "java",
        "linesOfCode" : 92,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 40,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinksIterable.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertiesIterable.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 255,
      "endLine" : 262,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 173,
      "endLine" : 180,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 337,
      "endLine" : 344,
      "cleanedStartLine" : 210,
      "cleanedEndLine" : 215
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 67,
      "endLine" : 75,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityIdArrayCachedInstanceIterableFactory.java",
        "extension" : "java",
        "linesOfCode" : 233,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 190,
      "endLine" : 195,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 69,
      "endLine" : 74,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 20,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 16,
      "endLine" : 23,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "openAPI/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 15,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 9,
      "endLine" : 15,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 92,
      "endLine" : 98,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 59,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "openAPI/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 15,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 9,
      "endLine" : 15,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "utils/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 18,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 13,
      "endLine" : 19,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 140,
      "endLine" : 146,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 121,
      "endLine" : 127,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 24,
      "endLine" : 29,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 24,
      "endLine" : 29,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 293,
      "endLine" : 299,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/ChildReferenceSet.java",
        "extension" : "java",
        "linesOfCode" : 155,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 362,
      "endLine" : 368,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 220
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/ChildReferenceSet.java",
        "extension" : "java",
        "linesOfCode" : 155,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentBackupStrategyImpl.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 135,
      "startLine" : 212,
      "endLine" : 221,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/NodeBase.java",
        "extension" : "java",
        "linesOfCode" : 249,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 237,
      "endLine" : 246,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 91,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/FileSystemBlobVault.java",
        "extension" : "java",
        "linesOfCode" : 72,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 88,
      "endLine" : 98,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/FileSystemBlobVaultOld.java",
        "extension" : "java",
        "linesOfCode" : 499,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 374,
      "startLine" : 493,
      "endLine" : 502,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 314
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/crypto/MessageDigestUtil.java",
        "extension" : "java",
        "linesOfCode" : 88,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/crypto/MessageDigestUtil.java",
        "extension" : "java",
        "linesOfCode" : 88,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 103,
      "endLine" : 108,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithLinkIterable.java",
        "extension" : "java",
        "linesOfCode" : 81,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithLinkSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 43,
      "endLine" : 50,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/FileSystemBlobVaultOld.java",
        "extension" : "java",
        "linesOfCode" : 499,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 374,
      "startLine" : 413,
      "endLine" : 421,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 255
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/NodeBase.java",
        "extension" : "java",
        "linesOfCode" : 249,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 237,
      "endLine" : 246,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 83,
      "endLine" : 89,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/dataStructures/JMHHashMapBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 44,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/dataStructures/JMHObjectCacheBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 44,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 60,
      "endLine" : 66,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 142,
      "endLine" : 152,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 133,
      "endLine" : 143,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 305,
      "endLine" : 310,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 395,
      "endLine" : 400,
      "cleanedStartLine" : 234,
      "cleanedEndLine" : 239
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdPacked.java",
        "extension" : "java",
        "linesOfCode" : 78,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/ImmutableSingleTypeEntityIdBitSet.java",
        "extension" : "java",
        "linesOfCode" : 186,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 196,
      "endLine" : 204,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/ImmutableSingleTypeEntityIdBitSet.java",
        "extension" : "java",
        "linesOfCode" : 186,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 221,
      "endLine" : 229,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 133
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 261,
      "endLine" : 268,
      "cleanedStartLine" : 161,
      "cleanedEndLine" : 166
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 261,
      "endLine" : 268,
      "cleanedStartLine" : 161,
      "cleanedEndLine" : 166
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/crypto/EnvKrypt.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 23,
      "endLine" : 28,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/crypto/EnvKrypt.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 305,
      "endLine" : 310,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 373,
      "endLine" : 378,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1931,
      "endLine" : 1939,
      "cleanedStartLine" : 1285,
      "cleanedEndLine" : 1290
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 1956,
      "endLine" : 1964,
      "cleanedStartLine" : 1304,
      "cleanedEndLine" : 1309
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Root.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 119,
      "endLine" : 127,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 70
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 283,
      "endLine" : 291,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 612,
      "endLine" : 619,
      "cleanedStartLine" : 363,
      "cleanedEndLine" : 368
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 992,
      "endLine" : 1000,
      "cleanedStartLine" : 615,
      "cleanedEndLine" : 620
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BottomPageMutable.java",
        "extension" : "java",
        "linesOfCode" : 231,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 178,
      "startLine" : 168,
      "endLine" : 177,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPageMutable.java",
        "extension" : "java",
        "linesOfCode" : 287,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 223,
      "startLine" : 257,
      "endLine" : 266,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/ConversionWildcard.java",
        "extension" : "java",
        "linesOfCode" : 35,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 49,
      "endLine" : 56,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "openAPI/src/main/java/jetbrains/exodus/FileByteIterable.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "openAPI/src/main/java/jetbrains/exodus/FixedLengthByteIterable.java",
        "extension" : "java",
        "linesOfCode" : 93,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 519,
      "endLine" : 524,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 347
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 532,
      "endLine" : 537,
      "cleanedStartLine" : 353,
      "cleanedEndLine" : 358
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/SinglePageImmutableNode.java",
        "extension" : "java",
        "linesOfCode" : 564,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 433,
      "startLine" : 235,
      "endLine" : 243,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/SinglePageImmutableNode.java",
        "extension" : "java",
        "linesOfCode" : 564,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 433,
      "startLine" : 438,
      "endLine" : 446,
      "cleanedStartLine" : 272,
      "cleanedEndLine" : 277
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 457,
      "endLine" : 463,
      "cleanedStartLine" : 296,
      "cleanedEndLine" : 301
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 474,
      "endLine" : 480,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 314
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/binop/BinaryOperatorEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 215,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 203,
      "endLine" : 210,
      "cleanedStartLine" : 126,
      "cleanedEndLine" : 131
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/binop/BinaryOperatorEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 215,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 221,
      "endLine" : 228,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 144
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Sort.java",
        "extension" : "java",
        "linesOfCode" : 39,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 53,
      "endLine" : 60,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPage.java",
        "extension" : "java",
        "linesOfCode" : 172,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPageMutable.java",
        "extension" : "java",
        "linesOfCode" : 287,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 223,
      "startLine" : 239,
      "endLine" : 245,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/log/MultiPageByteIterableWithAddress.java",
        "extension" : "java",
        "linesOfCode" : 147,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 112,
      "startLine" : 68,
      "endLine" : 77,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "openAPI/src/main/java/jetbrains/exodus/ByteIterableBase.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::openAPI" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 171,
      "startLine" : 122,
      "endLine" : 131,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 431,
      "endLine" : 436,
      "cleanedStartLine" : 267,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/log/Log.kt",
        "extension" : "kt",
        "linesOfCode" : 1613,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1320,
      "startLine" : 439,
      "endLine" : 444,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/EntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkEqual.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashSet.java",
        "extension" : "java",
        "linesOfCode" : 207,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 83,
      "endLine" : 89,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 60,
      "endLine" : 66,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentBitTreeLongMap.java",
        "extension" : "java",
        "linesOfCode" : 488,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 191,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 140,
      "endLine" : 146,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 46,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/IterableDecorator.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/Or.kt",
        "extension" : "kt",
        "linesOfCode" : 100,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/ConcurrentIntObjectCache.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 55,
      "endLine" : 60,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "utils/src/main/kotlin/jetbrains/exodus/core/dataStructures/ConcurrentLongObjectCache.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 57,
      "endLine" : 62,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageMutable.java",
        "extension" : "java",
        "linesOfCode" : 197,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 270,
      "endLine" : 276,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/ChildReferenceSet.java",
        "extension" : "java",
        "linesOfCode" : 155,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/MultiPageImmutableNode.kt",
        "extension" : "kt",
        "linesOfCode" : 394,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 306,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/MultiPageImmutableNode.kt",
        "extension" : "kt",
        "linesOfCode" : 394,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 306,
      "startLine" : 253,
      "endLine" : 258,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 167
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/MultiPageImmutableNode.kt",
        "extension" : "kt",
        "linesOfCode" : 394,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 306,
      "startLine" : 192,
      "endLine" : 202,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 127
    }, {
      "file" : {
        "relativePath" : "environment/src/main/kotlin/jetbrains/exodus/tree/patricia/MultiPageImmutableNode.kt",
        "extension" : "kt",
        "linesOfCode" : 394,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 306,
      "startLine" : 291,
      "endLine" : 301,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 198
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/BackupUtil.java",
        "extension" : "java",
        "linesOfCode" : 482,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 377,
      "startLine" : 332,
      "endLine" : 338,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/util/BackupUtil.java",
        "extension" : "java",
        "linesOfCode" : 482,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 377,
      "startLine" : 379,
      "endLine" : 385,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentLong23TreeMap.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/PersistentLong23TreeMap.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntityFromLinkSetIterable.java",
        "extension" : "java",
        "linesOfCode" : 190,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 142,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertiesIterable.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentEntityStoreStatistics.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/env/EnvironmentStatistics.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BasePageImmutable.java",
        "extension" : "java",
        "linesOfCode" : 312,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 253,
      "startLine" : 268,
      "endLine" : 274,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 156
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/patricia/ChildReferenceSet.java",
        "extension" : "java",
        "linesOfCode" : 155,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeMutatingTraverser.java",
        "extension" : "java",
        "linesOfCode" : 18,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 12,
      "startLine" : 26,
      "endLine" : 35,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeMutatingTraverserDup.java",
        "extension" : "java",
        "linesOfCode" : 18,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 12,
      "startLine" : 26,
      "endLine" : 35,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/DupLeafNodeMutable.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNodeMutable.java",
        "extension" : "java",
        "linesOfCode" : 54,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 70,
      "endLine" : 79,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistentHashSet.java",
        "extension" : "java",
        "linesOfCode" : 398,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 299,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/EntitiesWithLinkSortedIterable.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 94,
      "endLine" : 101,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/PropertiesIterable.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 255,
      "endLine" : 262,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 230,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 164,
      "startLine" : 195,
      "endLine" : 204,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ObjectCache.java",
        "extension" : "java",
        "linesOfCode" : 223,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 185,
      "endLine" : 194,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 551,
      "endLine" : 557,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 567,
      "endLine" : 573,
      "cleanedStartLine" : 381,
      "cleanedEndLine" : 386
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 53,
      "endLine" : 61,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/util/JMHStringInternerMacroBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 75,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Concat.java",
        "extension" : "java",
        "linesOfCode" : 85,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeCursorDup.java",
        "extension" : "java",
        "linesOfCode" : 36,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 42,
      "endLine" : 50,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/BTreeCursorDupMutable.java",
        "extension" : "java",
        "linesOfCode" : 69,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 75,
      "endLine" : 83,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/EntitiesOfTypeIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 149,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 117,
      "startLine" : 170,
      "endLine" : 175,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/EntitiesOfTypeIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 149,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 117,
      "startLine" : 183,
      "endLine" : 188,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 193,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/env/tokyo/JMHEnvTokyoCabinetReadBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 59,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 60,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/jetbrains/exodus/benchmark/env/tokyo/JMHEnvTokyoCabinetWriteBenchmark.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 412,
      "endLine" : 418,
      "cleanedStartLine" : 265,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 474,
      "endLine" : 480,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 314
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntHashMap.java",
        "extension" : "java",
        "linesOfCode" : 181,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 155,
      "endLine" : 166,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/IntLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 206,
      "endLine" : 217,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 132
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/PropertyValueIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 156,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 61,
      "endLine" : 66,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/PropertyValueIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 156,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 121,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorMultiTypeIdUnpacked.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 81,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/iterator/ReverseEntityIdArrayIteratorNullTypeId.java",
        "extension" : "java",
        "linesOfCode" : 43,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 58,
      "endLine" : 65,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPage.java",
        "extension" : "java",
        "linesOfCode" : 172,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 171,
      "endLine" : 181,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/LeafNode.java",
        "extension" : "java",
        "linesOfCode" : 137,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 150,
      "endLine" : 160,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistent23Tree.java",
        "extension" : "java",
        "linesOfCode" : 1186,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 913,
      "startLine" : 199,
      "endLine" : 205,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/persistent/AbstractPersistentHashSet.java",
        "extension" : "java",
        "linesOfCode" : 398,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 299,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 351,
      "endLine" : 356,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/kotlin/jetbrains/exodus/entitystore/iterate/UpdatablePropertiesCachedInstanceIterable.kt",
        "extension" : "kt",
        "linesOfCode" : 323,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 241,
      "startLine" : 373,
      "endLine" : 378,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashSet.java",
        "extension" : "java",
        "linesOfCode" : 212,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 100,
      "endLine" : 106,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LongLinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 214,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetAll.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/FilterEntityTypeIterable.java",
        "extension" : "java",
        "linesOfCode" : 83,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 106,
      "endLine" : 113,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/TakeEntityIterable.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/GetLinks.java",
        "extension" : "java",
        "linesOfCode" : 63,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyContains.java",
        "extension" : "java",
        "linesOfCode" : 58,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 102,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/MultiTypeSortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 109,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/cached/SingleTypeUnsortedEntityIdArrayCachedInstanceIterable.java",
        "extension" : "java",
        "linesOfCode" : 138,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ConcurrentStablePriorityQueue.java",
        "extension" : "java",
        "linesOfCode" : 194,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 53,
      "endLine" : 59,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/ConcurrentStablePriorityQueue.java",
        "extension" : "java",
        "linesOfCode" : 194,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 123,
      "endLine" : 129,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/LinksEqualDecorator.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 69,
      "endLine" : 76,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/Or.kt",
        "extension" : "kt",
        "linesOfCode" : 100,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 75,
      "endLine" : 82,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPageMutable.java",
        "extension" : "java",
        "linesOfCode" : 287,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 223,
      "startLine" : 159,
      "endLine" : 169,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "environment/src/main/java/jetbrains/exodus/tree/btree/InternalPageMutable.java",
        "extension" : "java",
        "linesOfCode" : 287,
        "components" : [ "primary::environment" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 223,
      "startLine" : 177,
      "endLine" : 186,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/DistinctIterable.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 95,
      "endLine" : 105,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/DistinctIterable.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 132,
      "endLine" : 141,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/And.java",
        "extension" : "java",
        "linesOfCode" : 96,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyRange.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqual.java",
        "extension" : "java",
        "linesOfCode" : 56,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 122,
      "endLine" : 131,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortOnInitIterable.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 52,
      "endLine" : 61,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 77,
      "endLine" : 83,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 140,
      "endLine" : 146,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "query/src/main/kotlin/jetbrains/exodus/query/QueryEngine.kt",
        "extension" : "kt",
        "linesOfCode" : 345,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 240,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/UnaryNot.java",
        "extension" : "java",
        "linesOfCode" : 31,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Minus.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 34,
      "endLine" : 40,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/DistinctIterable.java",
        "extension" : "java",
        "linesOfCode" : 113,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 132,
      "endLine" : 141,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/iterate/SortIterable.java",
        "extension" : "java",
        "linesOfCode" : 457,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 366,
      "startLine" : 365,
      "endLine" : 373,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 251
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortIterable.java",
        "extension" : "java",
        "linesOfCode" : 114,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 122,
      "endLine" : 131,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/InMemoryQuickSortTwoSidesIterable.java",
        "extension" : "java",
        "linesOfCode" : 106,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 52,
      "endLine" : 61,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 77,
      "endLine" : 83,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 121,
      "endLine" : 127,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/execution/JobProcessorAdapter.java",
        "extension" : "java",
        "linesOfCode" : 232,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 289,
      "endLine" : 296,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/execution/JobProcessorAdapter.java",
        "extension" : "java",
        "linesOfCode" : 232,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 309,
      "endLine" : 316,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 167
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/HashMap.java",
        "extension" : "java",
        "linesOfCode" : 229,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 77,
      "endLine" : 83,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/hash/LinkedHashMap.java",
        "extension" : "java",
        "linesOfCode" : 210,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 46,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 412,
      "endLine" : 418,
      "cleanedStartLine" : 265,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 457,
      "endLine" : 463,
      "cleanedStartLine" : 296,
      "cleanedEndLine" : 301
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 1457,
      "endLine" : 1464,
      "cleanedStartLine" : 944,
      "cleanedEndLine" : 949
    }, {
      "file" : {
        "relativePath" : "entity-store/src/main/java/jetbrains/exodus/entitystore/PersistentStoreTransaction.java",
        "extension" : "java",
        "linesOfCode" : 1328,
        "components" : [ "primary::entity-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1023,
      "startLine" : 1473,
      "endLine" : 1480,
      "cleanedStartLine" : 954,
      "cleanedEndLine" : 959
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyStartsWith.java",
        "extension" : "java",
        "linesOfCode" : 55,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 53,
      "endLine" : 59,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/Wildcard.java",
        "extension" : "java",
        "linesOfCode" : 53,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/IntArrayList.java",
        "extension" : "java",
        "linesOfCode" : 134,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 95,
      "startLine" : 142,
      "endLine" : 149,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "utils/src/main/java/jetbrains/exodus/core/dataStructures/LongArrayList.java",
        "extension" : "java",
        "linesOfCode" : 135,
        "components" : [ "primary::utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/LinkNotNull.java",
        "extension" : "java",
        "linesOfCode" : 48,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "query/src/main/java/jetbrains/exodus/query/PropertyEqualToPropertyNoNull.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::query" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  } ],
  "overallDuplication" : null
}