{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:37:47",
  "duplicates" : [ {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 188,
      "endLine" : 198,
      "cleanedStartLine" : 138,
      "cleanedEndLine" : 147
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 63,
      "endLine" : 73,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 164,
      "endLine" : 174,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 75,
      "endLine" : 85,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 176,
      "endLine" : 186,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 136
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 120,
      "endLine" : 129,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 221,
      "endLine" : 230,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 176
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 109,
      "endLine" : 118,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 210,
      "endLine" : 219,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 166
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 200,
      "endLine" : 208,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 170,
      "endLine" : 176,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 62,
      "endLine" : 68,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 148,
      "endLine" : 154,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 118
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/lang/JavaLanguageSupport.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 59,
      "endLine" : 71,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/lang/PythonLanguageSupport.kt",
        "extension" : "kt",
        "linesOfCode" : 87,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 58,
      "endLine" : 70,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 158,
      "endLine" : 164,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 53,
      "endLine" : 59,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 101
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 54,
      "endLine" : 59,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 140,
      "endLine" : 145,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 210,
      "endLine" : 215,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/PsiActions.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/PsiActions.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 210,
      "endLine" : 215,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/lang/JavaScriptLanguageSupport.kt",
        "extension" : "kt",
        "linesOfCode" : 87,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 59,
      "endLine" : 70,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/lang/PythonLanguageSupport.kt",
        "extension" : "kt",
        "linesOfCode" : 87,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 59,
      "endLine" : 70,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 210,
      "endLine" : 215,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/lang/JavaLanguageSupport.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 60,
      "endLine" : 71,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/lang/JavaScriptLanguageSupport.kt",
        "extension" : "kt",
        "linesOfCode" : 87,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 59,
      "endLine" : 70,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 221,
      "endLine" : 226,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 145,
      "endLine" : 150,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/CompletionPopupSuggester.kt",
        "extension" : "kt",
        "linesOfCode" : 102,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/suggesters/ReplaceCompletionSuggester.kt",
        "extension" : "kt",
        "linesOfCode" : 125,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 62,
      "endLine" : 67,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 118
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 159,
      "endLine" : 164,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 63,
      "endLine" : 68,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 159,
      "endLine" : 164,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/PsiActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/PsiActions.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 53,
      "endLine" : 58,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/PsiActions.kt",
        "extension" : "kt",
        "linesOfCode" : 85,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 118
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 221,
      "endLine" : 226,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 142,
      "endLine" : 147,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 210,
      "endLine" : 215,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 221,
      "endLine" : 226,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/actions/EditorActions.kt",
        "extension" : "kt",
        "linesOfCode" : 163,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 221,
      "endLine" : 226,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/jetbrains/plugins/feature/suggester/listeners/EditorActionsListener.kt",
        "extension" : "kt",
        "linesOfCode" : 250,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 192,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  } ],
  "overallDuplication" : null
}