{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:15:58",
  "duplicates" : [ {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editBuildTypeSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 174,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 1,
      "endLine" : 18,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editUserSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 282,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 245,
      "startLine" : 1,
      "endLine" : 18,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/BuildTypeSlackNotifierDescriptor.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 42,
      "endLine" : 59,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/UserSlackNotifierDescriptor.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 31,
      "endLine" : 46,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/NewVerboseMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 129,
      "startLine" : 153,
      "endLine" : 173,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/VerboseMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 171,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 148,
      "endLine" : 168,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editBuildTypeSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 174,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 59,
      "endLine" : 73,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editUserSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 282,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 245,
      "startLine" : 226,
      "endLine" : 240,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 178
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/VerboseMessageBuilderFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 46,
      "endLine" : 55,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/VerboseMessageBuilderFactory.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 66,
      "endLine" : 75,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/PlainMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 224,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 92,
      "endLine" : 101,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/PlainMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 224,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 134,
      "endLine" : 143,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/NewVerboseMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 129,
      "startLine" : 59,
      "endLine" : 67,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/VerboseMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 171,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/PlainMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 224,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 151,
      "endLine" : 160,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 109
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/PlainMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 224,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 179,
      "endLine" : 188,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/auth/SlackOauthController.kt",
        "extension" : "kt",
        "linesOfCode" : 103,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/auth/TestAuthController.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editBuildTypeSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 174,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 111,
      "endLine" : 117,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editUserSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 282,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 245,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 221,
      "endLine" : 226,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 119,
      "endLine" : 124,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 232,
      "endLine" : 237,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackInvalidBuildFeatureExtension.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackInvalidConnectionExtension.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 37,
      "endLine" : 48,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/NewVerboseMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 187,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 129,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/VerboseMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 171,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editBuildTypeSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 174,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editUserSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 282,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 245,
      "startLine" : 251,
      "endLine" : 256,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 192
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 78,
      "endLine" : 83,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 175,
      "endLine" : 180,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackConnectionHealthReport.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 57,
      "endLine" : 62,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackConnectionHealthReport.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editBuildTypeSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 174,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "src/main/resources/buildServerResources/editUserSlackNotifierSettings.jsp",
        "extension" : "jsp",
        "linesOfCode" : 282,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 245,
      "startLine" : 243,
      "endLine" : 248,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackConnectionHealthReport.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 57,
      "endLine" : 62,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackConnectionHealthReport.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/PlainMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 224,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 207,
      "endLine" : 212,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/PlainMessageBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 224,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 235,
      "endLine" : 240,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 145,
      "endLine" : 150,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/notification/SlackNotifier.kt",
        "extension" : "kt",
        "linesOfCode" : 404,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 301,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/BuildTypeSlackNotifierDescriptor.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/UserSlackNotifierDescriptor.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 24,
      "endLine" : 29,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackConnectionHealthReport.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/healthReport/SlackConnectionHealthReport.kt",
        "extension" : "kt",
        "linesOfCode" : 117,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    } ]
  } ],
  "overallDuplication" : null
}