{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:16:37",
  "duplicates" : [ {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-core/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 47,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 27,
      "endLine" : 49,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "test-recorder/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 42,
        "components" : [ "primary::test-recorder" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 20,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 254,
      "startLine" : 325,
      "endLine" : 338,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 215
    }, {
      "file" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 254,
      "startLine" : 348,
      "endLine" : 361,
      "cleanedStartLine" : 220,
      "cleanedEndLine" : 230
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
        "extension" : "kt",
        "linesOfCode" : 229,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 157,
      "startLine" : 265,
      "endLine" : 274,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
        "extension" : "kt",
        "linesOfCode" : 229,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 157,
      "startLine" : 280,
      "endLine" : 289,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 354,
      "endLine" : 363,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 260
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 374,
      "endLine" : 383,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 276
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 239,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 155,
      "endLine" : 163,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 239,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 170,
      "endLine" : 178,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 84,
      "endLine" : 92,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 150,
      "endLine" : 158,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-core/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 47,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "test-recorder/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 42,
        "components" : [ "primary::test-recorder" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 1,
      "endLine" : 16,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 299,
      "endLine" : 305,
      "cleanedStartLine" : 210,
      "cleanedEndLine" : 216
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 229
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 229,
      "endLine" : 235,
      "cleanedStartLine" : 156,
      "cleanedEndLine" : 162
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 229
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "ide-launcher/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 31,
        "components" : [ "primary::ide-launcher" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 12,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "remote-robot/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 37,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 27,
      "endLine" : 35,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 182,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 182,
      "startLine" : 202,
      "endLine" : 211,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 148
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 249,
      "endLine" : 255,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 266,
      "endLine" : 272,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 193
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 37,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 21,
      "endLine" : 31,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "test-recorder/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 42,
        "components" : [ "primary::test-recorder" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 20,
      "endLine" : 30,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 37,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 21,
      "endLine" : 31,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "robot-server-core/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 47,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 27,
      "endLine" : 37,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 138,
        "components" : [ "primary::test-recorder" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 92,
      "startLine" : 43,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 147,
        "components" : [ "primary::test-recorder" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 43,
      "endLine" : 51,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 40,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "remote-robot/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 37,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 27,
      "endLine" : 35,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 182,
      "startLine" : 180,
      "endLine" : 189,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 133
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 182,
      "startLine" : 202,
      "endLine" : 211,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 148
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "ide-launcher/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 31,
        "components" : [ "primary::ide-launcher" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 12,
      "endLine" : 20,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 40,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
        "extension" : "kt",
        "linesOfCode" : 130,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 97,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
        "extension" : "kt",
        "linesOfCode" : 130,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 97,
      "startLine" : 111,
      "endLine" : 117,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 182,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 182,
      "startLine" : 180,
      "endLine" : 189,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 133
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 229,
      "endLine" : 235,
      "cleanedStartLine" : 156,
      "cleanedEndLine" : 162
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 299,
      "endLine" : 305,
      "cleanedStartLine" : 210,
      "cleanedEndLine" : 216
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 152,
      "endLine" : 158,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 216,
      "endLine" : 221,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 300,
      "endLine" : 305,
      "cleanedStartLine" : 211,
      "cleanedEndLine" : 216
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 108,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
        "extension" : "kt",
        "linesOfCode" : 82,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 216,
      "endLine" : 221,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 315,
      "endLine" : 320,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 229
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 40,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "remote-robot/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 37,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ActionLinkFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 11,
      "endLine" : 17,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JLabelFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 13,
      "endLine" : 18,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "ide-launcher/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 31,
        "components" : [ "primary::ide-launcher" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 22,
      "endLine" : 27,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "remote-fixtures/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 40,
        "components" : [ "primary::remote-fixtures" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 254,
      "startLine" : 297,
      "endLine" : 304,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 254,
      "startLine" : 312,
      "endLine" : 319,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 202
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 216,
      "endLine" : 221,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "components" : [ "primary::robot-server-plugin" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 279,
      "startLine" : 230,
      "endLine" : 235,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "ide-launcher/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 31,
        "components" : [ "primary::ide-launcher" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 22,
      "endLine" : 27,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "remote-robot/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 37,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 145,
      "endLine" : 150,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 49,
      "endLine" : 54,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 254,
      "startLine" : 181,
      "endLine" : 186,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "components" : [ "primary::robot-server-core" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 254,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 146
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 180,
      "endLine" : 185,
      "cleanedStartLine" : 136,
      "cleanedEndLine" : 141
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 192,
      "endLine" : 197,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 239,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ContainerFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 21,
      "endLine" : 29,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 170,
      "endLine" : 175,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 133
    }, {
      "file" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
        "extension" : "kt",
        "linesOfCode" : 179,
        "components" : [ "primary::remote-robot" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 195,
      "endLine" : 200,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 154
    } ]
  } ],
  "overallDuplication" : null
}