{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:31:11",
  "duplicates" : [ {
    "blockSize" : 110,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxObservable.kt",
        "extension" : "kt",
        "linesOfCode" : 153,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 29,
      "endLine" : 203,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 111
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxObservable.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 29,
      "endLine" : 203,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 53,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxScheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 16,
      "endLine" : 113,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxScheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 16,
      "endLine" : 113,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 45,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/internal/CopyOnWriteList.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 13,
      "endLine" : 73,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/internal/CopyOnWriteList.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 7,
      "endLine" : 67,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 34,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxAwait.kt",
        "extension" : "kt",
        "linesOfCode" : 132,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 97,
      "startLine" : 241,
      "endLine" : 291,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 97
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxAwait.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 221,
      "endLine" : 271,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 34,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 121,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 44,
      "endLine" : 108,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 26,
      "endLine" : 90,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 32,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 15,
      "endLine" : 55,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 15,
      "endLine" : 55,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 27,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 20,
      "endLine" : 55,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 20,
      "endLine" : 55,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/resources/META-INF/com.android.tools/proguard/coroutines.pro",
        "extension" : "pro",
        "linesOfCode" : 25,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 3,
      "endLine" : 31,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/resources/META-INF/proguard/coroutines.pro",
        "extension" : "pro",
        "linesOfCode" : 25,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 3,
      "endLine" : 31,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxScheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 132,
      "endLine" : 176,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxScheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 132,
      "endLine" : 176,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 1,
      "endLine" : 38,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 1,
      "endLine" : 38,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/optimizations/FlowableSplit.java",
        "extension" : "java",
        "linesOfCode" : 262,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 207,
      "endLine" : 236,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 144
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/optimizations/FlowableSplit.java",
        "extension" : "java",
        "linesOfCode" : 262,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 277,
      "endLine" : 306,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 118,
      "endLine" : 139,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 27,
      "endLine" : 48,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 34,
      "endLine" : 76,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 33,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 174,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 124,
      "endLine" : 168,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 46,
      "endLine" : 90,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 174,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 124,
      "endLine" : 168,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 121,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 64,
      "endLine" : 108,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/resources/META-INF/com.android.tools/proguard/coroutines.pro",
        "extension" : "pro",
        "linesOfCode" : 25,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 9,
      "endLine" : 31,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/resources/META-INF/com.android.tools/r8/coroutines.pro",
        "extension" : "pro",
        "linesOfCode" : 22,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 5,
      "endLine" : 27,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/resources/META-INF/com.android.tools/r8/coroutines.pro",
        "extension" : "pro",
        "linesOfCode" : 22,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 5,
      "endLine" : 27,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/resources/META-INF/proguard/coroutines.pro",
        "extension" : "pro",
        "linesOfCode" : 25,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 9,
      "endLine" : 31,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/Exceptions.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 1,
      "endLine" : 35,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/Exceptions.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 1,
      "endLine" : 35,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 439,
      "endLine" : 456,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 166
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 549,
      "endLine" : 566,
      "cleanedStartLine" : 257,
      "cleanedEndLine" : 274
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 35,
      "endLine" : 51,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 40,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1278,
      "endLine" : 1293,
      "cleanedStartLine" : 737,
      "cleanedEndLine" : 752
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1339,
      "endLine" : 1354,
      "cleanedStartLine" : 792,
      "cleanedEndLine" : 807
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 46,
      "endLine" : 72,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 58,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/flow/internal/SafeCollector.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 1,
      "endLine" : 26,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/flow/internal/SafeCollector.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 1,
      "endLine" : 26,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 14,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 15,
      "endLine" : 39,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 105,
      "endLine" : 123,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 88,
      "endLine" : 106,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 15,
      "endLine" : 39,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 14,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 28,
      "endLine" : 46,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 40,
      "endLine" : 58,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxConvert.kt",
        "extension" : "kt",
        "linesOfCode" : 74,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 42,
      "endLine" : 90,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxConvert.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 42,
      "endLine" : 90,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxConvert.kt",
        "extension" : "kt",
        "linesOfCode" : 74,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 103,
      "endLine" : 136,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxConvert.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 103,
      "endLine" : 136,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/selects/SelectOld.kt",
        "extension" : "kt",
        "linesOfCode" : 93,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 36,
      "endLine" : 55,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/selects/SelectOld.kt",
        "extension" : "kt",
        "linesOfCode" : 93,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 64,
      "endLine" : 99,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 126,
      "endLine" : 139,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 40,
      "endLine" : 53,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 174,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 223,
      "endLine" : 264,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 121,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 159,
      "endLine" : 200,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 94,
      "endLine" : 109,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 31,
      "endLine" : 46,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 426,
      "endLine" : 437,
      "cleanedStartLine" : 230,
      "cleanedEndLine" : 241
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 504,
      "endLine" : 515,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 94,
      "endLine" : 109,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 43,
      "endLine" : 58,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 30,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 14,
      "endLine" : 35,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 30,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 14,
      "endLine" : 35,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 41,
      "endLine" : 56,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 41,
      "endLine" : 56,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxConvert.kt",
        "extension" : "kt",
        "linesOfCode" : 74,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 149,
      "endLine" : 161,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxConvert.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 139,
      "endLine" : 151,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/Runnable.kt",
        "extension" : "kt",
        "linesOfCode" : 14,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 22,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/Runnable.kt",
        "extension" : "kt",
        "linesOfCode" : 14,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 22,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/akka/PingPongAkkaBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 83,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 40,
      "endLine" : 54,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/akka/StatefulActorAkkaBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 112,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 49,
      "endLine" : 63,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxCancellable.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 20,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxCancellable.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 20,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 43,
      "endLine" : 61,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 60,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 22,
      "endLine" : 33,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 27,
      "endLine" : 38,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 62,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 60,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/Builders.kt",
        "extension" : "kt",
        "linesOfCode" : 86,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 71,
      "endLine" : 83,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/Builders.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 51,
      "endLine" : 63,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 62,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 43,
      "endLine" : 61,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxScheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 116,
      "endLine" : 130,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxScheduler.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 116,
      "endLine" : 130,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 43,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 376,
      "endLine" : 384,
      "cleanedStartLine" : 188,
      "cleanedEndLine" : 196
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 426,
      "endLine" : 434,
      "cleanedStartLine" : 230,
      "cleanedEndLine" : 238
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 43,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 111,
      "endLine" : 123,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 43,
      "endLine" : 55,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 43,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 458,
      "endLine" : 466,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 568,
      "endLine" : 576,
      "cleanedStartLine" : 276,
      "cleanedEndLine" : 284
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 376,
      "endLine" : 384,
      "cleanedStartLine" : 188,
      "cleanedEndLine" : 196
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 504,
      "endLine" : 512,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 306
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1695,
      "endLine" : 1703,
      "cleanedStartLine" : 1091,
      "cleanedEndLine" : 1099
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1752,
      "endLine" : 1760,
      "cleanedStartLine" : 1139,
      "cleanedEndLine" : 1147
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 43,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 455,
      "endLine" : 464,
      "cleanedStartLine" : 259,
      "cleanedEndLine" : 267
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 529,
      "endLine" : 538,
      "cleanedStartLine" : 323,
      "cleanedEndLine" : 331
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/js/src/JSDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 8,
      "endLine" : 20,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/JSDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 9,
      "endLine" : 21,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 43,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 111,
      "endLine" : 123,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 31,
      "endLine" : 43,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/TakeBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 19,
      "endLine" : 31,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/benchmarks/jvm/kotlin/kotlinx/coroutines/flow/TakeWhileBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 17,
      "endLine" : 29,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/internal/LimitedDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 93,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 43,
      "endLine" : 62,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/internal/SoftLimitedDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 107,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 62,
      "endLine" : 80,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxSingle.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 43,
      "endLine" : 56,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxCompletable.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/common/src/MainDispatcherTestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 221,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 170,
      "startLine" : 199,
      "endLine" : 211,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "test-utils/common/src/MainDispatcherTestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 221,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 170,
      "startLine" : 237,
      "endLine" : 249,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/debug/internal/DebugCoroutineInfoImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 152,
      "endLine" : 162,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-debug/src/CoroutineInfo.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::kotlinx-coroutines-debug" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 46,
      "endLine" : 56,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1033,
      "endLine" : 1051,
      "cleanedStartLine" : 601,
      "cleanedEndLine" : 608
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1093,
      "endLine" : 1111,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 633
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 174,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 35,
      "endLine" : 44,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 174,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 121,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 53,
      "endLine" : 62,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 446,
      "endLine" : 453,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 257
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 520,
      "endLine" : 527,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 429,
      "endLine" : 436,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 146
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 539,
      "endLine" : 546,
      "cleanedStartLine" : 247,
      "cleanedEndLine" : 254
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/CoroutineScope.kt",
        "extension" : "kt",
        "linesOfCode" : 301,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/CoroutineScope.kt",
        "extension" : "kt",
        "linesOfCode" : 301,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 321,
      "endLine" : 328,
      "cleanedStartLine" : 241,
      "cleanedEndLine" : 248
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 76,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 1,
      "endLine" : 29,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongWithBlockingContext.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 1,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "integration-testing/jpmsTest/src/debugDynamicAgentJpmsTest/kotlin/DynamicAttachDebugJpmsTest.kt",
        "extension" : "kt",
        "linesOfCode" : 28,
        "components" : [ "primary::integration-testing" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "integration-testing/src/debugDynamicAgentTest/kotlin/DynamicAttachDebugTest.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::integration-testing" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 10,
      "endLine" : 18,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxFlowable.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxFlowable.kt",
        "extension" : "kt",
        "linesOfCode" : 15,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 27,
      "endLine" : 33,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/ConcurrentStatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 1,
      "endLine" : 54,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongWithBlockingContext.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 1,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 2031,
      "endLine" : 2039,
      "cleanedStartLine" : 1276,
      "cleanedEndLine" : 1282
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 2174,
      "endLine" : 2180,
      "cleanedStartLine" : 1335,
      "cleanedEndLine" : 1341
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 88,
      "endLine" : 95,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 153,
      "endLine" : 164,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 97
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 175,
      "endLine" : 186,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/FlatMapMergeBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/SafeFlowBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 117,
      "endLine" : 123,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/CycledActorsBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 32,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 76,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 1,
      "endLine" : 29,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/ConcurrentStatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 1,
      "endLine" : 54,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/StatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 80,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 1,
      "endLine" : 35,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/CycledActorsBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 32,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongWithBlockingContext.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 1,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-reactive/src/Publish.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 117,
      "endLine" : 123,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxObservable.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 126,
      "endLine" : 132,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Zip.kt",
        "extension" : "kt",
        "linesOfCode" : 165,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 194,
      "endLine" : 200,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Zip.kt",
        "extension" : "kt",
        "linesOfCode" : 165,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 217,
      "endLine" : 223,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/CombineFlowsBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/CombineTwoFlowsBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 36,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/ConcurrentStatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 1,
      "endLine" : 54,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 76,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 1,
      "endLine" : 29,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/FlatMapMergeBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 35,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/NumbersBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 1,
      "endLine" : 17,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1258,
      "endLine" : 1264,
      "cleanedStartLine" : 717,
      "cleanedEndLine" : 723
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1302,
      "endLine" : 1308,
      "cleanedStartLine" : 755,
      "cleanedEndLine" : 761
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/CycledActorsBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 32,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/StatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 80,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 1,
      "endLine" : 35,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1270,
      "endLine" : 1276,
      "cleanedStartLine" : 729,
      "cleanedEndLine" : 735
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/BufferedChannel.kt",
        "extension" : "kt",
        "linesOfCode" : 2112,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 1811,
      "startLine" : 1318,
      "endLine" : 1324,
      "cleanedStartLine" : 771,
      "cleanedEndLine" : 777
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/js/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 14,
      "endLine" : 21,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmWasi/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 12,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 8,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 76,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 1,
      "endLine" : 29,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/StatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 80,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 1,
      "endLine" : 35,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 117,
      "endLine" : 123,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/internal/LimitedDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 93,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/internal/SoftLimitedDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 107,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 127,
      "endLine" : 134,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 126,
      "endLine" : 132,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 69,
      "endLine" : 75,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/jvm/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 161,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/ConcurrentStatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 1,
      "endLine" : 54,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/CycledActorsBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 32,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 136,
      "endLine" : 146,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 145,
      "endLine" : 155,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 98
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/NumbersBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 1,
      "endLine" : 17,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/SafeFlowBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-reactive/src/Publish.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 117,
      "endLine" : 123,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxObservable.kt",
        "extension" : "kt",
        "linesOfCode" : 153,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/PingPongWithBlockingContext.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 1,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/StatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 80,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 1,
      "endLine" : 35,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 20,
      "endLine" : 28,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxMaybe.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 20,
      "endLine" : 28,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 69,
      "endLine" : 75,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 1,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 69,
      "endLine" : 75,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 18,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 11,
      "endLine" : 16,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 832,
      "endLine" : 837,
      "cleanedStartLine" : 528,
      "cleanedEndLine" : 533
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 867,
      "endLine" : 872,
      "cleanedStartLine" : 561,
      "cleanedEndLine" : 566
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/ConcurrentStatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/scheduler/actors/ConcurrentStatefulActorBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/jvm/src/migration/TestBuildersDeprecated.kt",
        "extension" : "kt",
        "linesOfCode" : 133,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/jvm/src/migration/TestBuildersDeprecated.kt",
        "extension" : "kt",
        "linesOfCode" : 133,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/Debug.kt",
        "extension" : "kt",
        "linesOfCode" : 10,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 1,
      "endLine" : 10,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmWasi/src/Debug.kt",
        "extension" : "kt",
        "linesOfCode" : 6,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 10,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/TakeBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 12,
      "endLine" : 17,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/benchmarks/jvm/kotlin/kotlinx/coroutines/channels/SimpleChannelBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 7,
      "endLine" : 12,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 832,
      "endLine" : 837,
      "cleanedStartLine" : 528,
      "cleanedEndLine" : 533
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 884,
      "endLine" : 889,
      "cleanedStartLine" : 577,
      "cleanedEndLine" : 582
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/benchmarks/jvm/kotlin/kotlinx/coroutines/channels/SimpleChannelBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 7,
      "endLine" : 12,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/benchmarks/jvm/kotlin/kotlinx/coroutines/flow/TakeWhileBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 159,
      "endLine" : 164,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/native/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/wasmJs/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/ChannelSinkBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/ChannelSinkDepthBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 1,
      "endLine" : 13,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/TakeBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Limit.kt",
        "extension" : "kt",
        "linesOfCode" : 84,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 51,
      "endLine" : 60,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 18,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 1,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 1,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Lint.kt",
        "extension" : "kt",
        "linesOfCode" : 116,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 181,
      "endLine" : 186,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/debug/internal/DebugCoroutineInfoImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 167,
      "endLine" : 172,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-debug/src/CoroutineInfo.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::kotlinx-coroutines-debug" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 61,
      "endLine" : 66,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 18,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 11,
      "endLine" : 16,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/CoroutineScope.kt",
        "extension" : "kt",
        "linesOfCode" : 301,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 135,
      "endLine" : 140,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/CoroutineScope.kt",
        "extension" : "kt",
        "linesOfCode" : 301,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 330,
      "endLine" : 335,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 255
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmJs/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 505,
      "endLine" : 510,
      "cleanedStartLine" : 214,
      "cleanedEndLine" : 219
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Produce.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 229,
      "endLine" : 234,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/js/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/native/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 11,
      "endLine" : 16,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleOpt.kt",
        "extension" : "kt",
        "linesOfCode" : 164,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-reactive/src/Publish.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 92,
      "endLine" : 104,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx3/src/RxObservable.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 77,
      "endLine" : 89,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jsAndWasmShared/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 10,
      "endLine" : 17,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/CoroutineContext.kt",
        "extension" : "kt",
        "linesOfCode" : 121,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/native/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/wasmWasi/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "test-utils/native/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/js/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/wasmWasi/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-reactive/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 41,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-reactor/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 35,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/js/src/JSDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 23,
      "endLine" : 32,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/wasmJs/src/JSDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 24,
      "endLine" : 33,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/jvm/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 1,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/native/src/internal/ThreadContext.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 1,
      "endLine" : 12,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 18,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SaneFlowPlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/MainCoroutineDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "ui/kotlinx-coroutines-android/src/HandlerDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 124,
        "components" : [ "primary::ui" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-reactive/src/Publish.kt",
        "extension" : "kt",
        "linesOfCode" : 212,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 92,
      "endLine" : 104,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "reactive/kotlinx-coroutines-rx2/src/RxObservable.kt",
        "extension" : "kt",
        "linesOfCode" : 153,
        "components" : [ "primary::reactive" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 77,
      "endLine" : 89,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/TakeBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 12,
      "endLine" : 17,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/benchmarks/jvm/kotlin/kotlinx/coroutines/flow/TakeWhileBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-utils/js/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "test-utils/wasmWasi/src/TestBase.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::test-utils" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/terminal/Reduce.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/terminal/Reduce.kt",
        "extension" : "kt",
        "linesOfCode" : 110,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/js/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/wasmJs/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/internal/NamedDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 16,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 15,
      "endLine" : 23,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/internal/NamedSoftParallelismDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 28,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 20,
      "endLine" : 28,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/wasmJs/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/wasmWasi/src/internal/TestMainDispatcher.kt",
        "extension" : "kt",
        "linesOfCode" : 8,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 6,
      "startLine" : 1,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 18,
      "endLine" : 23,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/SequencePlaysScrabble.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 149,
      "endLine" : 155,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabbleOpt.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 159,
      "endLine" : 165,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Zip.kt",
        "extension" : "kt",
        "linesOfCode" : 165,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/flow/operators/Zip.kt",
        "extension" : "kt",
        "linesOfCode" : 165,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 144,
      "startLine" : 174,
      "endLine" : 179,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/java/benchmarks/flow/scrabble/RxJava2PlaysScrabble.java",
        "extension" : "java",
        "linesOfCode" : 120,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/scrabble/FlowPlaysScrabbleBase.kt",
        "extension" : "kt",
        "linesOfCode" : 111,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 11,
      "endLine" : 16,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 867,
      "endLine" : 872,
      "cleanedStartLine" : 561,
      "cleanedEndLine" : 566
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-core/common/src/channels/Channel.kt",
        "extension" : "kt",
        "linesOfCode" : 1167,
        "components" : [ "primary::kotlinx-coroutines-core" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1125,
      "startLine" : 884,
      "endLine" : 889,
      "cleanedStartLine" : 577,
      "cleanedEndLine" : 582
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/jvm/src/migration/TestBuildersDeprecated.kt",
        "extension" : "kt",
        "linesOfCode" : 133,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 50,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/jvm/src/migration/TestBuildersDeprecated.kt",
        "extension" : "kt",
        "linesOfCode" : 133,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/jvm/src/migration/TestBuildersDeprecated.kt",
        "extension" : "kt",
        "linesOfCode" : 133,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 50,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "kotlinx-coroutines-test/jvm/src/migration/TestBuildersDeprecated.kt",
        "extension" : "kt",
        "linesOfCode" : 133,
        "components" : [ "primary::kotlinx-coroutines-test" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/NumbersBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 64,
      "endLine" : 69,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "benchmarks/src/jmh/kotlin/benchmarks/flow/NumbersBenchmark.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::benchmarks" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  } ],
  "overallDuplication" : null
}